自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解SVN文件沖突和樹沖突解決方法

開發(fā) 項目管理
本文向大家介紹一下SVN沖突問題中的SVN文件沖突和樹沖突問題,在這里和大家分享一下,希望通過本文的學(xué)習(xí)大家對SVN沖突問題有清晰的認(rèn)識。

本節(jié)和大家一起學(xué)習(xí)一下SVN文件沖突和樹沖突,主要包括SVN文件沖突樹沖突如何出現(xiàn),以及怎樣解決這些沖突,希望通過本文的學(xué)習(xí)大家能夠掌握住這些方法。
解決沖突
偶爾,當(dāng)你從版本庫更新、合并文件時,或者切換工作副本至一個不同的URL時你會遇到?jīng)_突。有兩種沖突:
SVN文件沖突
當(dāng)兩名(或更多)開發(fā)人員修改了同一個文件中相鄰或相同的行時就會發(fā)生文件沖突。
SVN樹沖突
當(dāng)一名開發(fā)人員移動、重命名、刪除一個文件或文件夾,而另一名開發(fā)人員也對它們進(jìn)行了移動、重命名、刪除或者僅僅是修改時就會發(fā)生樹沖突。
SVN文件沖突
當(dāng)兩名或更多開發(fā)人員修改了同一個文件中相鄰或相同的行時就會發(fā)生文件沖突。由于Subversion不知道你的項目的具體情況,它把解決沖突的工作留給了開發(fā)人員。一旦出現(xiàn)沖突,你就應(yīng)該打開有問題的文件,查找以字符串<<<<<<<開頭的行。有沖突的區(qū)域用如下的方式標(biāo)記:
<<<<<<<文件名你的修改=======合并自版本庫中的代碼>>>>>>>版本
對于每個沖突的文件Subversion在你的目錄下放置了三個文件:
文件名.ext.mine
這是你的文件,在你更新你的工作副本之前存在于你的的工作副本中——也就是說,沒有沖突標(biāo)志。這個文件除了你的***修改外沒有別的東西。
文件名.ext.r舊版本
這是在你更新你的工作副本之前的基礎(chǔ)版本(BASErevision)文件。也就是說,它是在你做***修改之前所檢出的文件。
文件名.ext.r新版本
這個文件是當(dāng)你更新你的工作副本時,你的Subversion客戶端從服務(wù)器接收到的。這個文件對應(yīng)于版本庫中的***版本。
你可以通過TortoiseSVN→編輯沖突運行外部合并工具/沖突編輯器,或者你可以使用任何別的編輯器手動解決沖突。你需要沖定哪些代碼是需要的,做一些必要的修改然后保存。
然后,執(zhí)行命令TortoiseSVN→已解決并提交人的修改到版本庫。需要注意的是已解決命令并不是真正的解決了沖突,它只是刪除了filename.ext.mine和filename.ext.r*兩個文件,允許你提交修改。
如果你有二進(jìn)制SVN文件沖突,Subversion不會試圖合并文件。本地文件保持不變(完全是你***修改時的樣子),但你會看到filename.ext.r*文件。如果你要撤消你的修改,保留版本庫中的版本,請使用還原(Revert)命令。如果你要保持你的版本覆蓋版本庫中的版本,使用已解決命令,然后提交你的版本。
你可以右擊父文件夾,選擇TortoiseSVN→已解決...,使用“已解決”命令來解決多個文件。這個操作會出現(xiàn)一個對話框,列出文件夾下所有有沖突的文件,你可以選擇將哪些標(biāo)記成已解決。
樹沖突
當(dāng)一名開發(fā)人員移動、重命名、刪除一個文件或文件夾,而另一名開發(fā)人員也對它們進(jìn)行了移動、重命名、刪除或者僅僅是修改時就會發(fā)生樹沖突。有很多種不同的情形可以導(dǎo)致樹沖突,而且不同的情形需要不同的步驟來解決沖突。
當(dāng)一個文件通過Subversion在本機刪除后,文件也從本機文件系統(tǒng)中刪除。因此即使它是樹沖突的一部分,卻既不能顯示沖突的疊加圖標(biāo)也不能通過右鍵單擊來解決沖突。使用檢查修改對話框來獲得編輯沖突選項。
TortoiseSVN能夠協(xié)助找到合并更改的正確位置,但是需要作一些額外的工作來整理沖突。請牢記:當(dāng)進(jìn)行一次更新操作后,工作副本的基礎(chǔ)文件將會包括每一個項目在執(zhí)行更新操作時版本庫中的版本。如果你在進(jìn)行更新后再撤銷更改,工作副本將返回到版本庫的狀態(tài),而不是你開始進(jìn)行更改前的狀態(tài)。
本地刪除,當(dāng)更新時有更改進(jìn)入開發(fā)人員A修改Foo.c并將其提交至版本庫中
開發(fā)人員B同時在他的工作副本中將文件Foo.c改名為Bar.c,或者僅僅是刪除了Foo.c或它的父文件夾。
更新開發(fā)人員B的工作副本會導(dǎo)致樹沖突:
在工作副本中,F(xiàn)oo.c被刪除了,但是被標(biāo)記為樹沖突。
如果沖突是由于更改文件名引起的而不是刪除文件引起的,那么Bar.c被標(biāo)記為添加,但是其中卻不包括開發(fā)人員A修改的內(nèi)容。
開發(fā)人員B現(xiàn)在必須做出選擇是否保留開發(fā)人員A的更改。在更改文件名的案例中,他可以將Foo.c的更改合并到改名后的文件Bar.c中去。對于刪除文件或文件夾的案例中,他可以選擇保留包含開發(fā)人員A更改內(nèi)容的項目并放棄刪除操作。或什么也不做而直接將沖突標(biāo)記為已解決,那樣他實際上丟棄了開發(fā)人員A的更改。
如果TortoiseSVN能夠找到被改名為Bar.c的原始文件,沖突編輯對話框?qū)⒖梢院喜⒏?。這取決于在什么地方調(diào)用更新操作,它也許不能找到原始文件。
本地更改,當(dāng)更新時有刪除進(jìn)入開發(fā)人員A將文件Foo.c改名為Bar.c并將其提交至版本庫中。
開發(fā)人員B在他的工作副本中修改文件Foo.c?;蛘咴谝粋€文件夾改名的案例中...
開發(fā)人員A將父文件夾FooFolder改名為BarFolder并將其提交至版本庫中。
開發(fā)人員B在他的工作副本中修改文件Foo.c。
更新開發(fā)人員B的工作副本會導(dǎo)致樹沖突。對于一個簡單的SVN文件沖突:
Bar.c被當(dāng)作一個正常文件添加到工作副本中。
Foo.c被標(biāo)記為添加(包括其歷史記錄)并且產(chǎn)生樹沖突。
對于一個文件夾沖突:
BarFolder被當(dāng)作一個正常文件夾添加到工作副本中。
FooFolder被標(biāo)記為添加(包括其歷史記錄)并且產(chǎn)生樹沖突。
Foo.c被標(biāo)記為已修改。
開發(fā)人員B現(xiàn)在需要做出決定是否接受開發(fā)人員A作出的結(jié)構(gòu)改變并且合并她的更改到新結(jié)構(gòu)下適當(dāng)?shù)奈募?,或者直接放棄開發(fā)人員A的更改并保留本地文件。
要合并她的本機更改到新布局中,開發(fā)人員B必須先找出沖突的文件Foo.c經(jīng)過改名/移動后在版本庫中的新文件名是什么。可以使用日志對話框來完成這個任務(wù)。更改必須要手工合并,因為沒有辦法自動的或者簡單的完成此操作。一旦更改移植完畢,沖突的路徑就是多余的并且可以刪除。在此案例中,使用沖突編輯對話框中的刪除按鈕進(jìn)行清理并將沖突標(biāo)記為已解決。
如果開發(fā)人員B認(rèn)為A的更改是錯誤的,那么在沖突編輯對話框中她必須選擇保留按鈕。這樣就會標(biāo)記沖突的文件/文件夾為已解決,但是需要手工刪除開發(fā)人員A的更改。又是通過日志對話框幫助追蹤哪些文件移動了。請期待下節(jié)SVN文件沖突和樹沖突問題講解。

【編輯推薦】

  1. 揭開SVN沖突神秘面紗
  2. SVN沖突解決方法大全
  3. SVN沖突解決方法名師介紹
  4. SVN沖突問題專家詳解
  5. SVN服務(wù)器安裝指導(dǎo)手冊

 

責(zé)任編輯:佚名
相關(guān)推薦

2010-05-27 10:08:39

SVN樹沖突

2010-05-27 09:33:04

SVN沖突

2010-05-27 09:17:48

SVN沖突

2010-05-27 09:41:05

SVN沖突

2013-07-24 19:15:01

Android開發(fā)學(xué)習(xí)Android Git代碼沖突解決方法

2023-11-13 18:22:14

Docker開發(fā)

2010-05-26 19:12:41

SVN沖突

2015-07-10 09:08:52

IP地址IP地址沖突

2012-05-08 10:22:47

Windows系統(tǒng)硬件

2023-05-30 18:13:59

Git代碼

2023-10-11 12:35:29

Maven

2009-01-20 10:51:00

局域網(wǎng)IP地址分配

2009-06-12 17:03:51

JBoss和log4j

2019-06-03 15:52:21

WindowsLinux端口

2010-06-01 16:27:21

SVN插件報錯

2010-05-26 17:13:54

SVN提交

2010-05-26 11:08:33

SVN管理

2010-06-01 15:58:14

SVN錯誤

2022-01-14 08:08:11

Java依賴沖突

2013-05-21 10:49:59

Windows硬件沖突
點贊
收藏

51CTO技術(shù)棧公眾號