公司采用SVN作為版本控制工具,因此熟練應用SVN的一些操作也可以提高日常工作效率。想回自己用到的一些稍麻煩的操作如下:
-
從歷史版本中創建代碼分支:打開SVN客戶端,單擊URL右邊的HEAD彈出選擇版本窗口,輸入要創建分支的歷史版本號(SVN同一URL下的文件版本是依次遞增的,每次提交文件或目錄都會增加相應的版本號);
回溯到歷史版本后右鍵單擊要創建分支的文件夾選擇copy to 彈出如下窗口
輸入要創建分支的URL及對應的目錄名稱,單擊OK再輸入注釋即可。以前總是先把歷史版本導出到本地,然后再在分支目錄中創建文件夾,然后提交到該分支文件夾中,這樣操作太繁瑣。
2.其它可能經常遇到的問題:
(1)更新時提示文件發生沖突:"One or more files are not a conflicted state。"
多人同時修改同一文件的同一部分,SVN無法自動進行合並,會導致該錯誤;解決方法:對工作復本中的文件和服務器的文件進行比較,手工合並即可。
(2)"Commit failed;File already exists"提交失敗,文件**已存在。
版本管理系統在改變你的計算機上的工作副本時,是非常的小心的。在做任何事情之前,它都盡可能把您的意圖寫到你的計算機上的日志文件中去。但如果偶然地操作中斷了(例如:突然停電了,您的計算機死機了),那么日志文件記錄就可能同您最后的工作狀態不一致。一種建議解決途徑:先把要提交的東西拷出來放到其它目錄,再更新本地文件,然后把拷出來的文件重新放回去提交。
(3)Working copy'**'locked. Please execute the 'Clean up'command.
Subversion客戶端在提交內容之前會在本地的工作拷貝寫日志,防止其他客戶端再次作操作,如果這個提交過程中發生錯誤,就會存在未清理的日志,解決這個問題之需要執行"清理"操作,整理你的計算機上的工作副本,清理錯誤的日志記錄,使您可以繼續操作。
(4)執行clean up時,出現錯誤"Subversion reported an error while doing a cleanup!" \'**\' is not a working copy directory "
遇到這種情況,先刪除隱藏文件夾.svn中的tmp下面的臨時文件,再執行clean up。
(5)在SVN中選中一個目錄show log時,出現了某些版本只顯示版本號和(no date),沒有其他信息,什么原因引起的?
出現了(no date)的revision,為其他人修改了你所沒有權限訪問的某個目錄下的文件。