2009-10-03 78 views
2

對subversion模型的工作原理有些困惑。所以說我和我的同事檢出了同一個文件,但我們在文件的不同位置工作,顛覆只是合併了這兩個更改?subversion如何合併

大多數時候我們將使用php和xml文件,這是否意味着我們應該使用顛覆默認模型,而不是鎖定文件?

回答

8

的情況如下:

  • 的你倆簽出同一個文件。
  • 你們倆都對文件進行了一些更改
  • 你們其中一人首先提交更改。
  • 另一個試圖去提交會得到一個錯誤,該文件需要更新,因爲它已經在存儲庫,因爲最後結賬
  • 更新文件的時候改變了,svn客戶端嘗試合併從庫中的差異當地的

結果取決於變化。如果更改位於代碼的不同部分,則合併將自動完成。

如果改變重疊的Subversion告訴你的是北達科相沖突,你必須決定,是否該文件:你

  • 手動合併
  • 您覆蓋從庫中的最新變化與更改
  • 回覆您更改並使用版本庫中的版本

解決衝突後,您必須再次提交該文件,以使您的更改生效噸。

3

對,如果你在同一個文件的不同區域工作,那麼Subversion可以對它進行排序。只有當您在文件的相同的(或非常接近)區域工作時,您是否需要處理合並衝突。

1

弗蘭克說。

這裏還有一篇很棒的文章。也許它專注于敏捷版本控制,但也應該幫助你瞭解svn的工作原理: http://www.infoq.com/articles/agile-version-control

+0

+1有趣的鏈接。不知道然而,這與問題有多相關:) – 2009-10-05 14:46:27

1

是的,顛覆併發版本模型將爲你明確工作。

如果你都編輯同一個文件,該方案將在以下幾點:

對於提交的文件中的第一個,該行爲是直接的。該文件在存儲庫中更新。

對於第二個,這個過程是有點不同,他將由ool指導。

  1. 當試圖提交時,他會被要求首先更新文件,因爲存儲庫已經同時更新。更新將盡可能自動合併,並識別可能的衝突。

  2. 當本地副本已合併時,衝突(如果有的話)應手動解決,應執行一輪測試以確認您的更改沒有衝突。

  3. 當本地代碼是好的,提交將更新資源庫(當時倉庫考慮您的本地代碼是基於最新的版本。

相關問題