一、說明:
SVN是Subversion的簡(jiǎn)稱,是一個(gè)開放源代碼的版本控制系統(tǒng),相較于RCS、CVS,它采用了分支管理系統(tǒng),它的設(shè)計(jì)目標(biāo)就是取代CVS。互聯(lián)網(wǎng)上很多版本控制服務(wù)已從CVS遷移到Subversion。說得簡(jiǎn)單一點(diǎn)SVN就是用于多個(gè)人共同開發(fā)同一個(gè)項(xiàng)目,共用資源的目的。
集中式代碼管理的核心是服務(wù)器,所有開發(fā)者在開始新一天的工作之前必須從服務(wù)器獲取代碼,然后開發(fā),最后解決沖突,提交。所有的版本信息都放在服務(wù)器上。如果脫離了服務(wù)器,開發(fā)者基本上可以說是無法工作的。下面舉例說明:

開始新一天的工作:
1、從服務(wù)器下載項(xiàng)目組最新代碼。
2、進(jìn)入自己的分支,進(jìn)行工作,每隔一個(gè)小時(shí)向服務(wù)器自己的分支提交一次代碼(很多人都有這個(gè)習(xí)慣。因?yàn)橛袝r(shí)候自己對(duì)代碼改來改去,最后又想還原到前一個(gè)小時(shí)的版本,或者看看前一個(gè)小時(shí)自己修改了哪些代碼,就需要這樣做了)。
3、下班時(shí)間快到了,把自己的分支合并到服務(wù)器主分支上,一天的工作完成,并反映給服務(wù)器。
這就是經(jīng)典的svn工作流程,從流程上看,有不少缺點(diǎn),但也有優(yōu)點(diǎn)。
二、存儲(chǔ)類型格式:
CVS是個(gè)基于RCS文件的版本控制系統(tǒng)。每個(gè)CVS文件都不過是普通的文件,加上一些額外信息。這些文件會(huì)簡(jiǎn)單的重復(fù)本地文件的樹結(jié)構(gòu)。因此,不必?fù)?dān)心有什么數(shù)據(jù)損失,如果必要的話可以手工修改RCS文件。
SVN是基于關(guān)系數(shù)據(jù)庫的(BerkleyDB)或一系列二進(jìn)制文件的(FS_FS)。一方面這解決了許多問題 (例如,并行讀寫共享文件)以及添加了許多新功能(例如運(yùn)行時(shí)的事務(wù)特性。)。然而另一方面,數(shù)據(jù)存儲(chǔ)由此變得不透明。
三、安裝:
我們可以使用 yum install subversion 命令進(jìn)行安裝。
[runoob@centos6 root]$ su -
密碼:
[root@centos6 ~]# yum install subversion
已加載插件:fastestmirror, security
設(shè)置安裝進(jìn)程
Loading mirror speeds from cached hostfile
- base: mirrors.aliyun.com
- epel: mirrors.neusoft.edu.cn
- extras: mirrors.zju.edu.cn
- updates: mirrors.aliyun.com
解決依賴關(guān)系
--> 執(zhí)行事務(wù)檢查
...
安裝成功之后,執(zhí)行 svn --version 命令。
[root@centos6 ~]# svn --version
svn,版本 1.6.11 (r934486)
四、SVN啟動(dòng):


五、編輯svnserve.conf

六、在hooks文件夾下創(chuàng)建post-commit文件


七、啟動(dòng)SVN服務(wù)

八、使用Windows的svn連接,并測(cè)試上傳更新





九、自動(dòng)備份腳本


十、設(shè)置每天自動(dòng)備份(每晚23點(diǎn)59分自動(dòng)備份),備份到/server/backup/svn/

