1. 程式人生 > >linux下SVN衝突的解決方法

linux下SVN衝突的解決方法

衝突的發生

當有多個人使用同一分支的時候,在我 update 到 commit 之間,只要有人commit 同一份檔案,那麼我的 commit 就會出現衝突,提示  提交不成功。

此時可以選擇的做法有:

選擇: (p) 推遲,(df) 顯示全部差異,(e) 編輯,
(mc) 我的版本, (tc) 他人的版本,
(s) 顯示全部選項:

一般選擇推遲(自信的話,當然可以選擇mc),然後與其他開發人員協商解決。

衝突的解決

推遲之後,可以發現資料夾中存在的檔案為

test.php.mine  test.php.r123  test.php  test.php.r107

  • .mine是我的修改,尚未update前的 test.php。
  • .r107 是別人提交前的版本,尚未導致衝突的版本。
  • .r123是別人提交後的版本,導致衝突的版本。
  • test.php 包含了我和現有版本的衝突內容

在 test.php 檔案中可以看到,多了一些以<<<<<<<、=======、>>>>>>>分隔符號

  • <<<<<<<.mine和=======之間是我剛剛修改的內容;
  • =======與>>>>>>>.r123之間是別人修改的內容

修改內容之後,執行命令

svn resolve –-accept working test.php

此時會刪除.mine 、 .r 等檔案

然後再重新提交檔案

svn ci -m  ’’