客戶端訪問方式 |
說明 |
svn:// |
通過TCP/IP自定義協議訪問svnserve服務器。 |
http:// |
通過WebDAV協議訪問支持Subversion的Apache服務器 |
https:// |
與http://相似,但是用SSL加密訪問。 |
file:// |
直接通過本地磁盤或者網絡磁盤訪問版本庫。 |
svn+ssh:// |
通過認證並加密的TCP/IP自定義協議訪問svnserve服務器 |
TortoiseSVN軟件不僅是svn客戶端,也包含了svn服務端。
VisualSVN Server是配合了http server來使用。
1 file:/// & file://
file:///D:/path/to/repos/ |
本機訪問 |
file://ServerName/path/to/repos/ |
訪問網絡共享中的版本庫,你可以使用驅動器影射或使用UNC路徑 |
優點:不需要運行任何程序,就可以達到文件版本管理目標。
1.1 創建庫
1.1.1 右鍵菜單創建
創建空白文件夾:d:\ svnRepositoryTest
1.1.1.1 創建庫時創建默認目錄結構
一般不使用這種方式,因為實際中使用庫/項目名/目錄結構
1.1.1.2 通過導入創建目錄結構
找到要導入的目錄,目錄自身不會被導入
1.1.2 svnadmin創建
svnadmin create d:\svnREPOS
服務端命令
1. svnserver - 控制svn系統服務的啟動等
2. svnadmin - 版本庫的創建/導出/導入/刪除等
3. svnlook - 查看版本庫的信息等
客戶端命令
1. svn - 版本庫的檢出/更新/提交/重定向等
1.1.3 svn客戶端檢出與提交
更新/檢出 |
提交 |
2 svn://ip/
2.1 創建庫
與file///方式一樣,D:\svnRepository\
2.2 配置庫
2.2.1 conf\svnserve.conf(庫默認配置)
默認全部是注釋的
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz |
anon-access:匿名用戶權限 auth-access:訪問用戶權限 password-db:用戶與密碼文件路徑(相對路徑/絕對路徑) authz-db:用戶組與權限的文件路徑(相對路徑/絕對路徑) |
通過指定相同的文件,達到多庫使用一套權限
read 指允許更新代碼
write 指允許更新代碼,也允許提交代碼
none 指什么都干不了
2.2.2 conf\passwd (用戶與密碼)
[users] user1 = 123456 user2 = abcdef |
用戶 = 密碼 |
2.2.3 conf\authz(用戶組與權限)
2.2.3.1 別名配置
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
2.2.3.2 用戶組配置
組名 = 用戶1,用戶2,...,用戶n
[groups]
admin = user1,user2
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
2.2.3.3 版本庫的目錄授權
[/] 表示版本庫的根目錄,[/foo/bar] 表示版本庫根目錄下的 foo 文件夾下面的 bar 文件夾,注意區分大小寫
r更新 w提交 @用戶組不是用戶 *除了以上的所有其他用戶 ~反向選擇
$authenticated通過驗證的用戶 $anonymous匿名用戶
[/]
@admin = rw
# [/foo/bar]
# harry = rw
# &joe = r
# * =
2.2.3.4 repository版本庫下目錄
[repository:/] 表示repository版本庫的根目錄,[repository:/baz/fuz] 表示repository版本庫目錄下的 baz 文件夾下面的 fuz 文件夾
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
注意:多版本庫時,通過 一份conf\svnserve.conf文件配置所有庫的權限。
2.3 啟動服務端
start svnserve -d -r d:\svnRepository
2.3.1 注冊系統服務
sc create SVN binPath= "\"%ProgramFiles%\TortoiseSVN\bin\svnserve.exe\" --service --root d:\svnRepository" depend= TCPIP start= delayed-auto DisplayName= " TortoiseSVN Server"
net start SVN
net stop SVN
sc delete SVN
2.4 svn客戶端訪問
svn://192.168.17.1/Axure/Sunlord