2016-07-14 37 views
0

如果這是一個非常明顯的問題,我會提前道歉 - 我是SVN的新手。我盡了最大的努力去尋找答案,但我找不到任何具體解決這個問題的方法。爲什麼SVN認爲這是一個衝突?

由於程序頂部的註釋塊而合併分支時,我遇到了頻繁的衝突。

我們在每個程序的頂部使用註釋塊來解釋程序是什麼,並跟蹤更改。每次我們更改程序時,都會注意到我們在那裏發生的新變化說直播節目的註釋塊結束這樣的:

* <developer 1> <date> <comment> * 
* ******** END COMMENTS ******** * 

兩個新的開發者開始了自己的分支機構,並添加下面的開發商1.自己的意見。當開發人員2把他們的代碼直播,顯影劑3將其合併回到自己的分公司。我可以看到這是一個明顯的衝突,因爲他們都添加了不同的新行。

直播:

* <developer 1> <date> <comment> * 
* <developer 2> <date> <comment> * 
* ******** END COMMENTS ******** * 

開發3的分支:

* <developer 1> <date> <comment> * 
* <developer 3> <date> <comment> * 
* ******** END COMMENTS ******** * 

所以開發商3解決衝突本人。當他嘗試將他的更改合併到Live時,問題就出現了。

直播:

* <developer 1> <date> <comment> * 
* <developer 2> <date> <comment> * 
* ******** END COMMENTS ******** * 

開發3的分支:

* <developer 1> <date> <comment> * 
* <developer 2> <date> <comment> * 
* <developer 3> <date> <comment> * 
* ******** END COMMENTS ******** * 

當然這最後的場景是不是有衝突?開發人員3的代碼只是有一個額外的行,所以這必須是一個簡單的合併。但這種反覆被標記爲衝突,這個結果:

* <developer 1> <date> <comment> * 
<<<<<<< .working 
* <developer 2> <date> <comment> * 
* ******** END COMMENTS ******** * 
======= 
* <developer 2> <date> <comment> * 
* <developer 3> <date> <comment> * 
* ******** END COMMENTS ******** * 
>>>>>>> .merge-right 

因此,這實際上是一個正確的衝突,或者是SVN犯了一個錯誤? 我能做些什麼來防止這種情況重複發生?

謝謝!

+1

我會假設SVN是正確的,並解決它。這不像是說「這是Subversion的錯誤」會讓你到任何地方。就我個人而言,我會刪除這些評論塊。這就是源代碼管理系統的用途。讓開發人員在評論中添加描述性檢查。 – duffymo

+0

感謝您的回覆(和@Bathsheba)。 我們使用SVN提交消息與個人登錄,所以我同意代碼頂部的評論塊是不必要的。這是我們使用SVN之前的一個延期。 我只是想知道是否有任何方法來防止這些衝突的產生,因爲它們很簡單,但如果經常發生這種衝突很費時間。 – djchallis

+0

是的。刪除評論。停止使用它們。 – duffymo

回答

2

此行爲是設計使然。

不要考慮使用SVN的方式是使用設計的來使用。讓開發人員提交使用特定於他們的登錄信息,並堅持提交消息。將它嵌入到程序源中沒有什麼意義。

相關問題