SVN常用指令
1.Repo-browser(瀏覽版本庫)
通過“瀏覽版本庫”可以直接查看服務器上指定目錄下的所有目錄結構(需要有相關權限),包括特定版本的作者,提交時間等,並且在瀏覽版本庫里面鏈接了很多SVN常用的功能。如顯示日志,檢出,導出,檢入文件/文件夾,改名,刪除文件,分支建立等。
2.Checkout(檢出)
從SVN服務器上得到數據,即建立本地副本,並且修改后可以commit到SVN服務器上。相對於CC來說,SVN的checkout可以說完成了建立本地視圖和checkout兩個動作。checkout命令可以在本地計算機上,瀏覽版本庫,顯示日志等多個地方找到。
3.Update(更新)
更新本地副本,得到SVN服務器上最新的數據。一般check out建立本地副本后,都在該本地副本上修改提交,若想再次得到服務器上的最新版本,即需用Update。在修改之前,一般我們都需要執行Update動作,以保證在最新版本上做修改,以減少提交時沖突。特別是用鎖定的模式開發,修改前必須先更新並獲得鎖后才能修改(后面會具體描述)提交。
4.Commit(提交)
提交修改到SVN服務器上。所有需提交到SVN服務器上本地副本的修改都需要用Commit命令完成。
Checkout和export區別
check out跟check in對應,export跟import對應。
check out導出獲得文件后,導出的文件仍處於SVN版本控制中,與版本庫保持關聯,比如你可以進行Svn Update或者Svn Commit操作。同時導出文件夾下有一個.svn的隱藏文件夾,存儲着一些版本的元數據信息。
export 簡單導出一個版本的數據,導出的文件脫離SVN版本控制,修改后無進行Update和Commit操作。導出文件夾下沒有.svn目錄。
詳細命令
- show log :查看SVN上當前代碼庫的最新版本號是多少.打開右鍵看到一系列版本更新歷史,最上面的那一行,即是最新版本號,所謂的 head revision.顯示為粗體 的那一行即你本地當前的版本
- TortoiseSVN—Repo-browser:
打開你要比較的兩個版本所在的地址,選擇一個版本做為比較的基礎(單擊右鍵—選擇mark for comparison),再選擇另外一個版本(單擊右鍵—選擇show difference as unified diff),然后就會生成一個兩個版本的不同之處的文本
通過“瀏覽版本庫”可以直接查看服務器上指定目錄下的所有目錄結構(需要有相關權限),包括特定版本的作者,提交時間等,並且在瀏覽版本庫里面鏈接了很多SVN常用的功能。如顯示日志,檢出,導出,檢入文件/文件夾,改名,刪除文件,分支建立等
-
check for modification:檢查更新,可以檢查哪些文件做了修改。在這些做了修改的文件上單擊右鍵可以進一步的操作。
-
Revision Graph:版本分支圖
版本分支圖主要顯示以下內容:
1.建立分支和標簽的時間和版本
2.文件夾名稱的修改
3.最新的版本
4.本地副本的版本
- 1
- 2
- 3
- 4
- 5
- 6
- 7
另外鼠標滑過任意版本框,都會顯示該版本的日期、作者和備注信息等;選中版本框按右鍵可以使用另外很多的功能,如顯示日志,合並版本等等;還可通過“CTRL+左鍵”選中兩個版本進行比較等。
-
Resolve
-
update to revision: 更新版本可以使本地副本更新到任意一個歷史版本,方便用戶詳細查看某一版本的具體內容。(更新后本地副本僅作為顯示某一版本內容,不能復原為該版本,與復原命令不同)
-
Revert: 本地副本還原, 放棄本地副本的修改,將其還原到本地修改前的版本(最后提交或者更新的版本)
還原至某一歷史版本(Revert to this revision)將本地副本復原到選中的某一個歷史版本,若需將該復原版本提交到服務器上,則還需Commit!
還原某一歷史版本的修改(Revert changes from this revision)放棄某一歷史版本的修改。該動作只還原某一個特定版本的修改,並不還原該版本之前所有版本的修改,若需將該復原版本提交到服務器上,則還需Commit!
-
Clean up:
-
get lock:獲取鎖定,在加鎖原因中加入備注,其他人可以瀏覽版本庫/日志里面看到添加的信息,包括誰,什么時間,為什么鎖定等
-
Release lock:解除鎖定,修改完文件並提交后,需及時的解鎖,這樣其他人才可以獲取鎖定,既而修改文件。
-
Branch/Tag:
分支用途
1.軟件開發時以主干為基礎,實現並行開發,不斷將分支上的修改合並到主干上。
2.同一軟件的發布版本BUG修改和升版的並行開發等。
- 1
- 2
創建分支
命令1:Branches/Tags(工作副本使用)
命令2:copy to(瀏覽版本庫使用)
命令3:Create branche/tag form this revision(show log使用)
- 1
- 2
- 3
-
Switch:
-
Merge:合並
-
Export:導出,有時只想需得到配置庫的某些資料,但不想受SVN版本控制,此時可以用Exprot。 Exprot與check out一樣都是從服務器中得到數據資料,但是Exprot的數據資料不受版本的控制,無.SVN文件夾。
-
Add:添加
- Create Patch:
- Apply Patch:
- Properties:
- setting:設置
- help:幫助
- about:關於SVN
- relocate:重新定位,當URL修改(服務器搬遷IP地址修改等),但本地副本還需繼續使用,則需重新定位URL,將先前checkout時的URL重新定位為最新的URL。
圖標

常見錯誤
1.SVN修訂號不連續
原因:SVN修訂號是相對於整個配置庫的,更新時看到的版本也是整個配置庫的修訂號,並不是某一個目錄的修訂號。
解決方法:無,SVN特色。
2.修改工作副本后,提交時提示“Resource out of date”,提交失敗。
原因:工作副本不是最新版本,提交失敗。
解決方法:先更新后再提交,遇沖突時解決沖突后再提交。
3.提示400錯誤
原因:操作者某些操作不准確,引起混亂,可能屬於SVN客戶端本身的bug
解決方法:暫時無很好的解決方法。
4.提示403錯誤
原因:不能進行該操作。比如URL不對;未開通該目錄相關權限;用戶名密碼不對等。
解決方法:檢查操作對應的URL是否正確,是否有權限,輸入的用戶名和密碼是否正確等,根據錯誤解決問題。
5.提示需“清理(clean up)”
原因:服務器問題,一個SVN指令不能成功地完成,你的工作副本因此被滯留在一個不一致的狀態。
解決方法:在上一層目錄執行清理動作(clean up),若執行不成功,根據錯誤提示,刪除引起不能清理的文件夾,然后update。
6.不能正常檢出,提示URL過長
原因:目錄過深,即URL過長,SVN客戶端的bug,目前發現V1.5.3版本存在該問題。
解決方法:在上一層目錄檢出,或許更換SVN客戶端安裝版本,同時注意建立配置庫目錄時不易建立過深的目錄。
7.本地副本不能刪除,提示text-base過長
原因:目錄過深。
解決方法:修改目錄的名字,縮短工作副本目錄名字。
8.刪除/重命名/移動/拷貝文件,提交后,服務器上與預期結果不一致
可能原因:使用WINDOWS刪除或者重命名/移動命令進行操作. SVN有專有的Delete/Rename/move/copy命令,對於WINDOWS命令不能識別,使用WINDOWS命令會出現混亂。
解決方法:還原到前一版本,重新使用SVN自身Delete/Rename/move/copy命令。
9.將所有修改都提交后紅色感嘆號不消失
原因:頁面刷新比較慢。
解決方法:刷新頁面或者重啟電腦。
10.使用比較功能時,提示“ is not a valid text file”!*
原因:不可編輯的文件不能比較具體的內容。
解決方法:暫時無。
11.能執行歷史版本的日志信息修改動作,但是“ok”確定卻不成功,提示出錯
原因:SVN默認狀態下不允許修改日志信息。
解決方法:在SVN上服務器上增加 pre-revprop-change hook.但不建議使用
12.受版本控制的文件,顯示”奇怪的“符號,如灰色的勾勾等
原因:SVN的特色圖標重載:處於不同的狀態,顯示不同的圖標。
解決方法:可以通過TortoiserSVN-Setting中的Icon Set中查看各個圖標表示的狀態。
13.域帳戶密碼修改后,SVN的命令不能成功執行
原因:密碼錯誤,先前使用SVN命令時保存了認證信息,所以SVN命令的不能執行成功。
解決方法:在桌面上按右鍵,選擇Setting命令,進入Save date,將認證信息這一項clear掉。這樣重新執行所需的SVN命令,即會出現讓您輸入用戶名和密碼。
