win10之Subversion(SVN)基本操作
win10之Subversion(SVN)基本操作
- 一、環境說明
- 二、安裝Subversion
- 三、Subversion基本操作
- 1.配置版本庫
- 2.啟動服務器端程序
- 3.檢出
- 4.提交
- 5.更新
- 6.工作副本中文件的集中狀態
- 7.恢復歷史版本
- 四、權限設置
- 1.單一版本庫權限配置
- 2.多版本庫共享配置
- 五、刪除保存的認證數據(借助TortoiseSVN)
一、環境說明
1.操作系統:window10家庭中文版
2.Subversion安裝包:Setup-Subversion-1.8.17.msi
二、安裝Subversion
1.雙擊Setup-Subversion-1.8.17.msi安裝即可
PS:安裝位置不要有中文、空格等非法字符
2.設置環境變量
將Subversion根目錄下的bin目錄添加至系統環境變量(過程略)
3.查看svn版本
svn --version三、Subversion基本操作
1.配置版本庫
- 這里小編將D:\MyUtil\Test\Subversion規定為根目錄,下面放這許多版本庫。這里創建兩個版本庫one、two
- 實驗所用到的路徑可自定義,但不要有中文、空格等非法字符
- 在cmd命令行操作
創建one版本庫:
svnadmin create D:\MyUtil\Test\Subversion\one創建two版本庫:
svnadmin create D:\MyUtil\Test\Subversion\two查看結果(以one為例,two同理)
文件說明:
2.啟動服務器端程序
svnserve -d -r D:\MyUtil\Test\Subversion命令解釋:
- svnserve:主命令
- -d:表示后臺進行
- -r:表示版本庫目錄
- D:\MyUtil\Test\Subversion svn倉庫根目錄
PS:運行命令后,不能關閉cmd窗口
3.檢出
命令格式:svn checkout svn://SVN 服務器主機地址/具體倉庫目錄 保存檢出內容的目錄
svn checkout svn://localhost/one D:\MyUtil\Test\Subversion\threePS:這里小編把保存檢出內容的目錄以絕對路徑寫出,如果上述命令只寫three,是在cmd命令所在的目錄下檢出one倉庫為three目錄
4.提交
(1)開啟匿名訪問權限
- 檢出的倉庫如果匿名提交,要先在源倉庫(three的源倉庫是one)里修改下配置文件,開放匿名訪問權限
- 打開倉庫根目錄/conf/svnserve.conf文件
- 將第 19 行的# anon-access = read 改為 anon-access = write,也就是去掉“# ”。注意前面不要留空格,一定要頂格寫。
(2)現在自己檢出的three倉庫內創建一個文本文件,隨便寫點東西
(3)執行 svn add 命令,將 test.txt 納入版本控制
svn add test.txtPS:
- 執行命令前,命令行要進入到three目錄(即工作副本)下
- Windows10在cmd進入一個目錄的快捷方式:打開那個目錄,在上面地址欄輸入“cmd”,回車即可
(4)執行提交命令
svn commit -m "My first commit" test.txt- commit:svn提交命令
- -m:添加描述信息
- test.txt:添加的文件
5.更新
(1)新檢出一個three2目錄
svn checkout svn://localhost/one D:\MyUtil\Test\Subversion\three2(2)cmd進入到three2文件目錄里,在three2倉庫里修改test.txt文件,并且重新提交
重新提交
(3)執行更新操作
svn update
(4)cmd回到three目錄,執行更新操作,可以獲得最新版本
6.工作副本中文件的集中狀態
①沒有修改,現行版本
本檔案在工作目錄中沒有被修改,而且自當前版本之后,其他終端也沒有任何該
文件的修改被提交到服務器,即當前工作副本的版本和服務器端最新版本是一致
的。對它執行 svn commit 和 svn update 都不會發生任何事。
②本地修改, 現行版本
這個文件被修改過,但這個修改還沒有提交到服務器,而且自當前版本之后,其
他終端也沒有任何該文件的修改被提交到服務器,所以當前工作副本的版本和服
務器端最新版本仍然是一致的。由于有尚未送交回去的本地修改,所以對它的
svn commit 會成功提交你的修改,而 svn update 則不會作任何事。
③沒有修改,過時版本
這個文件沒有修改,但是版本庫中有其他終端提交的修改。此時當前工作副本的
版本比服務器端的版本落后了,我們稱之為“過時”。對當前文件的 svn commit 不
會發生任何事,而 svn update 會讓工作目錄中的文件更新至最新版本。
④本地修改,過時版本
服務器端存在沒有更新到本地的修改,導致當前版本過時。如果這個文件在
本地有未提交的修改,則無法提交,對它執行 svn commit 會產生“out-of-date”
錯誤。
此時應該先嘗試更新本地文件。更新時 SVN 會嘗試將服務器端的更新與本地
文件進行合并,合并的結果有兩種可能:一個是服務器端和本地修改位于文件的
不同位置,合并成功;另一個是服務器端的修改正好和本地修改位于同一個位置,
發生沖突。
7.恢復歷史版本
將工作副本整體回復到某一個歷史版本命令
svn update --revision 版本號四、權限設置
1.單一版本庫權限配置
1.1匿名訪問,上述已提及,不再闡述
1.2授權訪問
思想:創建用戶,然后為用戶設定權限
打開要設置權限的倉庫的根目錄\conf\svnserve.conf文件(要全新的svnserve.conf文件)
- 將第 19 行# auth-access = write 注釋打開,設置匿名用戶操作為none
- 將第 20 行# auth-access = write 注釋打開:auth-access = write,表明該版本庫不接受匿名訪問
- 將第 27 行注釋打開:password-db = passwd,表明使用同目錄下的 passwd 文件保存用戶信息
- 將第 34 行注釋打開:authz-db = authz,表明使用同目錄下的 authz 文件保存權限信息
1.3 打開 passwd 文件創建用戶
表示新建4個用戶,密碼都是123456
1.4 打開 authz 文件,設置用戶權限
在這文件可以設置用戶組和用戶組或者用戶的目錄權限
新增用戶組:
這表示創建用戶組canWrite,組里有用戶userWrite01、userWrite02
設置版本庫路徑權限:
[/] @canWrite = rw userRead = r * =表示版本庫根路徑下,canWrite用戶組的用戶有讀寫權限,userRead用戶有讀權限,其他用戶沒有任何權限
設置版本庫下/subDir目錄權限:
[/subDir] userOther = rw * =表示當前版本庫下的 subDir 目錄只有 userOther 有讀寫權限,其它用戶無任何權限
PS:父目錄設置的權限,對子目錄同樣有效——除非子目錄進行了更為具體的設定,如上面的[/subDir]目錄權限比[/]目錄更具體
2.多版本庫共享配置
2.1 在版本庫根目錄 D:\MyUtil\Test\Subversion下創建 commConf 目錄
2.2 將未修改的 authz 和 passwd 文件拷貝到 commConf 目錄下
2.3 修改需要設置權限的版本庫的 svnserve.conf 文件
- 將第 20 行# auth-access = write 注釋打開:auth-access = write,表明該版本庫不接受匿名訪問
- 將第 27 行注釋打開:password-db = passwd,這里使用絕對路徑,表明使用commConf目錄下的 passwd 文件保存用戶信息
- 將第 36 行注釋打開:authz-db = authz,這里使用絕對路徑,表明使用commConf目錄下的 authz 文件保存權限信息
2.4 在password 中創建用戶
userone = 123456 usertwo = 1234562.5 在 authz 中針對不同版本庫為不同用戶授予權限
[one:/] userone = rw * =[two:/] usertwo = rw * =表示userone用戶在one的版本庫下有讀寫權限,其他用戶沒有權限,usertwo同理。
五、刪除保存的認證數據(借助TortoiseSVN)
1.右鍵–》“TortoiseSVN”–》“設置”
2.進入“已保存數據”
3.勾選要刪除的數據即可
總結
以上是生活随笔為你收集整理的win10之Subversion(SVN)基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软官方下载纯净系统镜像
- 下一篇: CCSP 2018,杭州电子科技大学,2