svn版本庫操作(四)


一、使用命令行模式訪問 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 文件創建用戶 
# 用戶名=密碼
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 
 4. 在 password 中創建用戶
[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: 條目不可讀”錯誤。
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM