一、使用命令行模式訪問 SVN 服務器
1. 檢出(checkout)
(1) 首先進入自己的工作目錄,例如:D:\svnSpace
cd D:\svnSpace
(2) 運行 svn checkout 命令,命令格式如下
# svn checkout svn://SVN 服務器主機地址/具體倉庫目錄 保存檢出內容的目錄 svn checkout svn://localhost/OA MyOA
運行 checkout 命令后進入 MyOA 目錄,里面有一個隱藏目錄.svn,用來保存與服務器交互的重要信息,其中包括從服務器端取回的最新版本信息、文件狀態、更新時間等。SVN 正是以此為依據判斷當前目錄中文件的狀態。這個隱藏目錄千萬不要刪除或修改其中的內容。如果服務器端保存的文件可以視為一個“正本”,那么每個開發人員檢出到本地目錄的文件可以視為“副本”,通常稱為工作副本。
2. 提交(commit)
進入 D:\svnSpace\MyOA 目錄,創建一個test.txt文件
(1) 首先執行svn add命令,將其納入版本控制,這一步是必須的,否則沒法提交到服務器
svn add test.txt
(2) 執行 svn commit 命令
-
使用-m 參數附加日志信息
- 開啟訪問權限
svn commit -m "My first commit" test.txt
暫時先開啟匿名訪問權限 :
- 進入對應的版本庫目錄下的 conf 目錄:D:\svnDep\OA\conf
-
打開 svnserve.conf
-
將第 19 行的# anon-access = read 改為 anon-access = write,也就是去掉“# ”,將 read 改為 write。注意前面不要留空格,一定要頂格寫。
-
不需要重啟 SVN 服務,甚至命令行窗口都不需要重新打開。
其實 svn commit 命令最后可以不指定具體文件,此時表示提交當前工作副本中的所有修改。
3. 更新(update)
執行 svn update 命令
4. 將工作副本整體回復到某一個歷史版本
svn update --revision 想要取回的版本號 #svn update --revision 1
5. 將某個文件恢復到某個版本中的狀態,同時不涉及其他文件
svn update 文件名 --revision 想要取回的版本號 #svn update pp.txt –revision 10
二、單一版本庫權限配置
要設置授權訪問就需要創建用戶,並為用戶設定權限。
1. 配置授權訪問
(1) 打開conf/svnserve.conf
(2) 將第 19 行 anon-access = write 注釋掉:# anon-access = write,表明該版本庫不接受匿名訪問
(3) 將第 20 行# auth-access = write 注釋打開:auth-access = write,表明該版本庫使用授權訪問
(4) 將第 27 行注釋打開:password-db = passwd,表明使用同目錄下的 passwd 文件保存用戶信息
(5) 將第 36 行注釋打開:authz-db = authz,表明使用同目錄下的 authz 文件保存權限信息
2. 打開 passwd 文件創建用戶
(4) 將第 27 行注釋打開:password-db = passwd,表明使用同目錄下的 passwd 文件保存用戶信息
(5) 將第 36 行注釋打開:authz-db = authz,表明使用同目錄下的 authz 文件保存權限信息
2. 打開 passwd 文件創建用戶
# 用戶名=密碼
userWrite01 = 123456 userWrite02 = 123456 userRead = 123456 userOther = 123456
3. 打開 authz 文件:#后面注釋的是例子
(1) 創建用戶組[groups]
# 組名稱=成員列表 # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe canWrite = userWrite01,userWrite02
(2) 指定路徑,給用戶和用戶組授權
# [/foo/bar] # harry = rw # &joe = r # * =屏蔽那些未設定的用戶,讓它們沒有任何權限
# 指定路徑:根目錄 [/]
# canWrite組具有讀寫權限 @canWrite = rw
# userRead用戶具有讀權限 userRead = r
# 除了上面設置的,其他的用戶或組沒有任何權限 * =
(3) 權限的繼承性:父目錄設置的權限,對子目錄同樣有效——除非子目錄進行更為具體的設定
[/subDir] userOther = rw * =
這個例子表示當前版本庫下的 subDir 目錄只有 userOther用戶有讀寫權限,其它用戶無任何權限。
三、多版本庫共享配置
1. 在版本庫根目錄 D:\svnDep 下創建 commConf 目錄2. 將未修改的 authz 和 passwd 文件拷貝到 commConf 目錄下
3. 修改需要設置權限的版本庫的 svnserve.conf 文件
-
password-db = ../commConf/passwd
-
authz-db = ../commConf/authz
[users] # harry = harryssecret # sally = sallyssecret userERP = 123456 userCRM = 123456 userOA = 123456
5. 在 authz 中針對不同版本庫為不同用戶授予權限
# [repository:/baz/fuz] # @harry_and_sally = rw # * = r [ERP:/] userERP = rw * = [OA:/] userOA = rw * = [CRM:/] userCRM = rw * =
四、查看工作副本信息
使用svn info查看某個版本庫的信息

使用svn info 文件名 查看某個文件的信息

五、查看目錄或文件日志信息
使用 svn log 命令
注意:使用這個命令的前提是設置匿名訪問為 none,即:anon-access = none,否則會出現“svn: E220001: 條目不可讀”錯誤。