SVN命令解析以及問題解決(update...)


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命令,即會出現讓您輸入用戶名和密碼。


免責聲明!

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



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