iOS 使用SVN tree conflicts 解決

最近在對項目進行重構,另一方又在進行開發。而且項目用的SVN進行的版本控制所以就悲劇了,因為普通的沖突很好解決,但是不普通的沖突還是遇到了,svn中提交文件時出現tree conflicts。

目錄結構沖突比較繁瑣以下是產生目錄結構沖突的表現:

1、本地刪除,更新后傳入修改

產生原因:

(1)、A修改文件Foo.c后提交到版本庫中,B將Foo.c重命名為Bar.c或者刪除了Foo.c或者直接將Foo.c的父目錄Foo直接刪除 (2)、B更新工作副本會提示該沖突,在working copy顯示為Foo.c在本地刪除,被標記為沖突。如果是重命名,則Bar.c被標記為新增,但是不包括A的修改。

解決:A與B要確認是否采用A的修改與是否重命名。如果采用A的修改,并且要重命名則修改后,標記沖突解決,svn resolved,最后提交;如果不采用A的修改,直接標記沖突解決提交即可。

2、本地編輯,更新后傳入刪除

產生原因:

(1)、A對Foo.c重命名為Bar.c并提交到版本庫(或者A將Foo.c的上級目錄Foo修改為Bar),B在他的工作副本中對Foo.c進行修改。

(2)、B提交前更新,會提示如此錯誤。

解決:同樣需要兩個人進行協商后修改。

3、本地刪除,更新后傳入刪除

產生原因:

(1)、A將Foo.c重命名為Bar.c后提交,B對Foo.c重命名為Bix.c。

(2)、B更新本地工作副本是會提示該樹沖突。

解決:通過日志查找文件被刪除即重命名的原因,A與B協商后最終確認采用哪個名稱。

4、本地丟失,合并后傳入修改

產生原因:

(1)、A在主干上修改Foo.c,B在分支上將Foo.c重命名為Bar.c。

(2)、B合并A在主干上的修改。

解決:B先標記沖突解決,然后將Foo.c拷貝至本地,將A的修改合并至自己的文件中或者直接放棄A的修改,采用自己的修改。

5、本地修改,合并后傳入刪除

產生原因:

(1)、A將Foo.c重命名為Bar.c(或者將Foo.c的父目錄Foo改為Bar),B在分支上修改Foo.c。

(2)、B合并A的修改時提示該沖突。Bar.c被標記為增加,Foo.c被標記為沖突。

解決:同樣根據日志查找到修改的源頭,兩人協商后解決。

6、本地刪除,合并后傳入刪除

產生原因:

(1)、A在主干上將Foo.c重命名為Bar.c,B在分支上將Foo.c重命名為Bix.c。

(2)、B合并A的修改時會提示沖突。重命名后的文件被標記為新增,原來文件被標記為樹沖突。

解決:通過日志查找到文件被改名的時刻,兩人協商后解決。

當然當提交的時候有目錄沖突就會有tree conflicts報錯,這個時候可能你的修改已經不存在了,也就是別人修改的目錄移動的文件剛好是你修改的,這樣你就悲劇了。我也不知道恢復刪除,所以只能再做一遍,所以最好不要改動目錄結構,或者改動的時候告訴別人,讓別人又準備,否則很悲劇的

這里說解決tree conflicts的問題,解決讓后提交才是硬道理

$ svn resolve --accept working -R XXX。

其中XXX為提示沖突的目錄,tree conflicts沖突的前綴是 ?C >這個標識,然后就可以提交了。OK

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 解決沖突 偶爾,當你從版本庫更新、合并文件時,或者切換工作副本至一個不同的 URL 時你會遇到沖突。有兩種沖突:文...
    jianghu000閱讀 2,663評論 0 2
  • 前言 很多人因為不知道處理沖突就很久很久都不愿意更新代碼, 另一些人就是不管三七二十一就選了"theirs con...
    登高而望遠閱讀 87,833評論 2 27
  • 最近在寫個性化推薦的論文,經常用到Python來處理數據,被pandas和numpy中的數據選取和索引問題繞的比較...
    shuhanrainbow閱讀 4,590評論 6 19
  • 蓮蓬頭下全身在發疼。一種想要被狠狠地擁抱住地感覺。腦子里閃過小名逗比說段子的樣子,烙喆甩發耍帥的樣子,歐文鎮定裝紳...
    冰羯閱讀 238評論 0 0