svn軟件下載地址
http://subversion.apache.org/packages.html
在安裝TortoiseSVN時安裝客戶端和服務端
下以svn在windows下使用為例,linux上類似
一:svn使用
1.創建多個svn倉庫
svnadmin create E:/svnServer/web
svnadmin create E:/svnServer/ot
2.啟動倉庫服務
svnserve -d(獨立端口運行) -r(倉庫地址)
svnserve -d -r E:/svnServer/web //啟動web倉庫服務
svn服務走svn協議,端口號碼是3690
E:/svnLocal/hkui>svn co svn://127.0.0.1
svn co --username 用戶名 --password 密碼 svn://127.0.0.1/web
3.使用svn服務
在E:/svnLocal/hkui下新建 a.php
添加到svn倉庫:svn add 文件或者目錄(多個文件或目錄以空格隔開即可)
svn add E:/svnLocal/hkui/a.php
提交到遠程倉庫
svn ci 文件路徑 -m "注釋內容" (不想寫注釋內容就 -m --force-log)
svn commit E:/svnLocal/hkui/a.php -m "第一個文件"
更新
svn update --username 用戶名 --password 密碼 --force --no-auth-cache 目標目錄 (鈎子可利用此同步倉庫)
4.開啟倉庫匿名賬號權限
在操作倉庫的conf/svnserve.conf里配置匿名賬號的權限
anon-access = write
無需重啟服務即可
日志:db/revprops 下
內容:db/revs 下
5.運行多個倉庫服務
把所有倉庫的上級目錄當成服務啟動起來
更換倉庫地址 刪除.svn 重新check out
6.svn沖突
在不同地方修改 update下來后合並
在相同的地方修改,調整代碼,刪除沖突的其它三個文件 再提交即可
7.賬號和權限
一:給具體用戶設置權限
在conf/svnserve.conf 中開啟
password-db和authz-db = authz
在passwd中添加用戶和密碼
hkui=hkui123
tom=tom123
在authz里配置相應權限
配置完passwd后必須給相應的用戶在authz里配置權限
給指定的倉庫賬號設置權限
倉庫有種類型設置
1.啟動運行多個倉庫服務
svnserve -d -r E:/svnServer (svnServer下有web和ot兩個倉庫)
[web:/] 表示要給多個倉庫的web倉庫配置訪問權限
[ot:/] 當然是在ot倉庫的配置文件里配置 權限
2.運行啟動單一倉庫服務 svnserve -d -r E:/svnServer/web
[/] 表示給單一的倉庫設置訪問權限
*= 表示其它用戶沒有操作權限
r只能update rw能update和commit
比如這里是 運行多個倉庫服務的
hkui能夠讀寫,tom只能讀,其它用戶無任何權限
[web:/]
hkui=rw
tom=r
*=
二:給一個組別設置權限
再在passwd中添加
php=php123
js=js123
java=java123
在authz里
[groups]
language=php,js,java #表示同屬一個組
[web:/]
hkui=rw
tom=r
@language=rw #表示language組的權限是rw
*=
三:開啟只操作某個目錄的權限
比如web目錄下的Video
1.管理員創建video目錄,提交到svn倉庫
2.給外部團隊設置賬號和設置工作目錄,和其分支目錄權限
passwd中
[users]
hkui=hkui123
tom=tom123
php=php123
js=js123
java=java123
w1=w123
w2=w223
w3=w323
authz中
[groups]
language=php,js,java
w=w1,w2,w3
[web:/]
hkui=rw
tom=r
@language=rw
*=
[web:/video]
@w=rw
*= (如果設置該項 ,只有w組的成員能操作video目錄,管理員也不可以)
3.外部團隊建立與倉庫的聯系 (checkout)
svn co svn://127.0.0.1/web/video (只有權限和video聯系)
4.外部團隊 操作文件並提交到倉庫
5.管理員更新即可
四:設置開機啟動項服務
sc create svnd binPath= "D:/install/TortoiseSVN/192/bin/svnserve.exe -r E:/svnServer --service" start= auto
刪除服務
sc delete svnd
五:查看工作日志
開啟賬號並配置權限后注意把svnserve.conf里的
anon-access = write改為anon-access = none而不是注釋
修改完記得先清空緩存
鈎子
在windows下為post-commit.bat
在Linux下post-commit 記得給可執行權限即可
export LANG=en_US.UTF-8
/usr/bin/svn update --username ybjmobile --password 123456 /alidata/www/mobile
svn update --username 用戶名 --password 密碼 目標目錄
------------------------------------------
在centos下查看svn服務
ps aux|grep svn
[root@localhost web]# ps aux|grep svn
root 3243 0.0 0.0 174512 1012 ? Ss 21:35 0:00 svnserve -d -r /var/www/svn_db
root 5623 0.0 0.0 103320 864 pts/1 S+ 22:13 0:00 grep svn