SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上不少版本控制服務已從CVS遷移到Subversion。也是就是CVS的接班人!
CVS是一個C/S系統,是一個經常使用的代碼版本控制軟件。主要在開源軟件管理中使用。與它相相似的代碼版本控制軟件有subversion。多個開發人員經過一箇中心版本控制系統來記錄文件版本,從而達到保證文件同步的目的。CVS版本控制系統是一種GNU軟件包,主要用於在多人開發環境下的源碼的維護。可是因爲以前CVS編碼的問題,如今大多數軟件開發公司都使用SVN替代了
CVS。
官方網站:http://subversion.apache.org/
Windows客戶端 TortoiseSVN:http://tortoisesvn.net/
SVN的運行方式及端口
獨立服務器 3690端口 訪問方式SVN:// C/S模式
藉助apache運行 80端口 訪問方式 http://
實戰:
服務端:Centos_65 客戶端:Centos_67 windows7客戶端
軟件安裝:
[root@Cent65 ~]# yum install -y subversion httpd mod_dav_svn
//包括HTTP所需模塊一塊兒裝
建立版本庫目錄
[root@Cent65 ~]# mkdir /webdept
//存放版本庫的主目錄
建立版本庫
[root@Cent65 ~]# svnadmin create /webdept/www.xuegod.cn
[root@Cent65 ~]# svnadmin create /webdept/www.godxue.cn
//建立了兩個版本庫
[root@Cent65 ~]# ls /webdept/www.xuegod.cn/ 查看版本庫
conf db format hooks locks README.txt
dav目錄:是提供apache與mod_dav_svn使用的目錄,讓他們存儲內部數據,剛開始新建時此目錄沒有
db目錄:就是全部版本控制的數據存放文件
hooks目錄:放置hook腳本文件的目錄
locks目錄:用來放置subversion監控鎖定數據的目錄,用來追蹤存取文件庫的客戶端
format文件:是一個文本文件,裏面只放了一個整數。表示當前文件庫配置的版本號
conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問帳號、權限等),也是咱們要關注的配置文件
[root@Cent65 ~]# ls /webdept/www.xuegod.cn/conf/
authz passwd svnserve.conf
authz #認證權限相關
passwd #用戶名和密碼
svnserve.conf #服務器配置文件
針對不一樣版本庫修改配置文件
[root@Cent65 ~]# vim /webdept/www.xuegod.cn/conf/svnserve.conf
[general]
anon-access = read #原先註釋掉了,匿名用戶能夠讀,使用none的話就是匿名用戶不能夠訪問
auth-access = write #這幾行都要取消註釋,認證用戶能夠寫,能夠是read,write,none
password-db = passwd #密碼庫文件,默認使用的是同一目錄下的passwd文件做爲用戶密碼庫
authz-db = authz #認證權限文件
realm = www.xuegod.cn #登錄提示信息
注意:此配置文件的全部內容必須頂格,不然會報錯
配置用戶和密碼及認證權限
[root@Cent65 ~]# vim /webdept/www.xuegod.cn/conf/passwd
Make =123456
CAT =123456
top =123456
#末尾添加上面三行
[root@Cent65 ~]# vim /webdept/www.xuegod.cn/conf/authz
[groups] #此行默認存在了
Check = Make,CAT #定義組,在[groups]下面添加
#用戶組格式 用戶組名 = 用戶1,用戶2
#一個組能夠包含多個用戶,英文逗號間隔,用戶名必須是在passwd中存在的
[/] #/表示我當前所在版本庫目錄,這裏表明www.xuegod.cn
top = rw
@Check = r #@Check表示這個組的權限,就是上面定義的組的成員
*= #除了上面的有賦予權限成員以外,其餘的成員都沒有權限html
SVN目錄格式:
[/目錄名]
@用戶組名 =權限
用戶名 =權限
*=
[root@Cent65 ~]# svnserve -d -r /webdept/
//啓動了全部版本庫,若是隻須要某一個版本庫,在-r
後面添加/webdept/www.xuegod.cn/的版本庫便可 -d=daemon -r=root of directory of save指定根目錄
使用svn導入測試代碼
導入測試代碼格式: svn [選項] 源碼 svn://server ip/項目名
常見的選項:
import:將未版本化的文件歸入版本控制並提交
checkout:從版本庫中檢出一個修訂版
update:更新工做拷貝
add,delete,copy,move:增、刪、複製、移動文件或目錄
在Centos_67客戶端:
安裝svn客戶端:
[root@cent67 ~]# yum -y install subversion
[root@cent67 ~]# mkdir localsvn
[root@cent67 ~]# cd localsvn;touch 1.html 2.html ; cd
[root@cent67 ~]# svn import localsvn/ svn://192.168.1.65/www.xuegod.cn/ -m "first edit"
//本地導入代碼,使用file,僅僅能在服務器本地導入, -m=messages,相似註釋,首次加入代碼使用import
代碼取出
[root@cent67 ~]# svn checkout svn://192.168.1.65/www.xuegod.cn/ downsource
認證領域: <svn://192.168.1.65:3690> 203b6e00-f811-402e-88c7-02fc7069f0a4
「top」的密碼: web
注意! 你的密碼,對於認證域:apache
<svn://192.168.1.65:3690> 203b6e00-f811-402e-88c7-02fc7069f0a4vim
只能明文保存在磁盤上! 若是可能的話,請考慮配置你的系統,讓 Subversion
能夠保存加密後的密碼。請參閱文檔以得到詳細信息。windows
保存未加密的密碼(yes/no)?no
A downsource/1.html
A downsource/2.html
取出版本 1。
配置apache支持svn
[root@Cent65 ~]# vim /etc/httpd/conf.d/subversion.conf
//末尾添加這些行
<Location /webdept>
DAV svn
SVNParentPath /webdept #svn根目錄
AuthType Basic #Basic認證方式
AuthName "www.xuegod.cn website Dept" #認證顯示信息,提示信息
AuthUserFile /webdept/svn/passwd #用戶密碼文件
AuthzSVNAccessFile /webdept/svn/authz #訪問控制權限文件
Require valid-user #要求正式用戶,不能匿名
</Location>
要把註釋刪除掉
建立用戶passwd文件
[root@Cent65 ~]# mkdir /webdept/svn/
[root@Cent65 ~]# htpasswd -c /webdept/svn/passwd webuser
//第一次用c,建立,第二次就不用
[root@Cent65 ~]# htpasswd /webdept/svn/passwd userweb
//不能用-c,不然會覆蓋webuser
[root@Cent65 ~]# htpasswd /webdept/svn/passwd userhh
[root@Cent65 ~]# cat /webdept/svn/passwd
webuser:ukukbxpE2OG6g
userweb:SLeiQfpWvYyZ6
userhh:XhDx6u./RtpAk
建立權限authz文件
[root@Cent65 ~]# vim /webdept/svn/authz
//建立權限控制文件
[groups]
all = webuser,userweb
[/] #「/」表示全部倉庫的跟目錄下
webuser = rw
[www.xuegod.cn:/] #第一個倉庫,webuser和userweb能夠讀寫
@all = rw
[www.godxue.cn:/] #第二個倉庫目錄,userweb和userhh能夠讀寫
userweb = rw
userhh = rw
刪除掉註釋
webuser用戶能夠讀取www.xuegod.cn,userhh不可讀取
userweb能夠讀取www.godxue.cn,webuser不能夠
啓動服務測試
[root@Cent65 ~]# service httpd restart
Windows客戶端下操做
Windows下使用TortoiseSVN工具來配置,官方網站:http://tortoisesvn.net/downloads.html服務器