1. 程式人生 > >程式碼管理平臺SVN

程式碼管理平臺SVN

22.1 程式碼管理平臺介紹
22.2 安裝svn
22.3 客戶端上使用svn(linux)
22.4 客戶端上使用svn(windows)

擴充套件內容
同學分享的svn文件  http://note.youdao.com/noteshare?id=1bb87a28a2973ae5722bf765882c2d8f
svn 多倉庫管理  http://elim.iteye.com/blog/1171108
svn+ssh  http://www.linuxfly.org/post/450/
svn清除儲存的使用者名稱和密碼  http://holy2010.blog.51cto.com/1086044/645944
svn命令詳解  http://blog.sina.com.cn/s/blog_963453200101eiuq.html
svn的鉤子  http://coolnull.com/1716.html

 

 

一、程式碼管理平臺介紹

版本控制,記錄若干檔案內容變化,以便將來查閱特定版本修訂情況
版本管理工具發展簡史,cvs svn  git  參考http://luckypoem14.github.io/test/2012/04/24/scm-history/
svn全稱subversion,是一個開源版本控制系統,始於2000年
git是linux創始人linus發起的,2005年釋出,最初目的是更好管理linux核心程式碼
git和svn不同在於git不需要依賴服務端就可以工作,即git是分散式的
關於git和svn的比較大家參考http://blog.lishiming.net/?p=305
github是基於git的線上web頁面程式碼託管平臺,可以選擇付費服務
gitlab可以認為是一個開源的github,兩者沒有直接關係

二、安裝svn服務端

yum install -y subversion

 建立目錄和版本庫 

mkdir -p /data/svnroot/myproject
 svnadmin create /data/svnroot/myproject   在這個空目錄下,初始化檔案

cd /data/svnroot/myproject/conf         #authz為許可權配置檔案,passwd為密碼檔案,svnserve倉庫的配置檔案,通過此配置檔案啟動服務

vim authz        //配置檔案新增如下內容:

[groups]    #groups定義組的
admins = tobe,user1
[/]            #這個/(根)指的是/data/svnroot/myproject/這個目錄
@admins = rw        #@後跟組名,許可權是rw,除了admins組外,其餘的都是r許可權
*= r
[myproject:/]    #myproject專案名字,即myproject目錄,在svnroot下有多個專案的情況下使用
user1 = rw

vim passwd        //加入如下內容,左邊使用者名稱,右邊密碼    

[users]
tobe = tobe_!(*$123
user1 = user1_^^^123
user2 = user2_***123

vim svnserver.conf    //更改或增加如下內容

[general]
anon-access = none        #匿名使用者
auth-access = write        #被授權的使用者
password-db = passwd    #使用者密碼檔案存放位置,db指檔案,檔案在當前目錄下,針對svnserver檔案的相對路徑
authz-db = authz        #許可權控制檔案位置,db指檔案
realm = /data/svnroot/myproject        對哪個專案生效,寫絕對路徑


svnserve -d -r /data/svnroot     //這樣就啟動了,-d後臺啟動,-r 指定路徑

三、客戶端上使用svn(linux)

使用前注意防火牆和iptables

為了試驗便捷,把001這臺機器即作為服務端,也作為客戶端使用,002也作為客戶端


客戶端也需要安裝:    yum install -y subversion

001:

home下建立一個試驗目錄svntest
svn checkout svn://192.168.183.3/myproject --username=tobe        檢出程式碼,ip後跟要檢出的程式碼專案

即使用者名稱密碼存在目錄為:/root/.subversion/servers

002:

yum install -y subversion

svn checkout svn://192.168.183.3/myproject --username=user1

在002客戶端本地建立弄一個檔案,把這個檔案傳到服務端:

svn add ./fstab    新增到版本控制中心

svn commit -m "add file"    把檔案上傳到伺服器

 

此時服務端還沒有顯示

svn up   up全稱update,同步,把當前目錄下的檔案都更新到最新版

系統會記錄曾經使用的使用者名稱密碼,如果不想記錄密碼,把/root/.subversion/auth/svn.simple目錄下的隨機檔案刪除8caedf9bc22e731ce02c3e821d227594

刪除檔案

svn delete fstab      在伺服器上刪除

svn commit -m "delete fstab"        刪除完成需要提交

001:

002:

在002上   svn up   同步

svn log //檢視變更日誌

四、客戶端上使用svn(windows)

 官網 https://tortoisesvn.net/index.zh.html
 下載TortoiseSVN 並安裝
使用教程 http://www.jians