svn 合併分支代碼

1, 查找到分支版本
方法一:cd branch
svn log --stop-on-copy
最後一個r11340就是創建分支時的reversion

方法二:cd trunk
命令:svn -q --stop-on-copy 分支URL,這條命令會查詢出自創建分支以後分支上的所有修改,最下面的那個版本號就是我們要找的版本號.
示例:svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24

2, 合併到主幹
命令:svn -r 分支版本號:HEAD 分支的URL
解釋:HEAD爲當前主幹上的最新版本
示例:
cd trunk
svn merge -r 12:HEAD svn://192.168.1.177/tags/beta_2009_12_24


解決衝突:
使用svn st | grep ^C 查找合併時的衝突文件,手工解決衝突
使用svn resolved filename 告知svn衝突已解決
使用svn commit -m "" 提示合併後的版本


(p)  postpone    – mark the conflict to be resolved later //讓文件在更新完成之後保持衝突狀態。
(df) diff-full   – show all changes made to merged file //使用標準區別格式顯示base修訂版本和衝突文件本身的區別。
(e)  edit        – change merged file in an editor //用你喜歡的編輯器打開衝突的文件,編輯器是環境變量EDITOR設置的。
(r)  resolved    – accept merged version of file //完成文件編輯之後,通知svn你已經解決了文件的衝突,它必須接受當前的內容—從本質上講就是你已經“解決了”衝突。
(mf) mine-full   – accept my version of entire file (ignore their change//丟棄新從服務器接收的變更,並只使用你查看文件的本地修改。
(tf) theirs-full – accept their version of entire file (lose my changes)//丟棄你對查看文件的本地修改,只使用從服務器新接收的變更。
(l)  launch      – launch external tool to resolve conflict//啓動一個外置程序來執行衝突解決,這需要一些預先的準備。
(h)  help        – show this list //顯示所有在衝突解決時可能使用的命令。


svn: Aborting commit: '/path/resources/noc' remains in conflict

$ svn revert resources/noc


Reverted 'resources/noc' 


-手動解決:衝突發生時,通過和其他用戶溝通之後,手動更新目標文件。然後執行svn resolved filename來解除衝突,最後提交。
-放棄自己的更新,使用別人的更新。使用最新獲取的版本覆蓋目標文件,執行svn resolved filename並提交。
-放棄自己的更新,使用svnrevert,然後提交。在這種方式下不需要使用svn resolved。
對於svn resolved命令需要非常小心,必須是非常確定衝突已經解決才能使用。否則,會導致Subversion以爲衝突解決,而使代碼庫不正確。


SVN命令:http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章