2013-08-26 65 views
4

當我使用第二個SVN合併選項,即「重新合併分支/自動合併」時,我收到上面的錯誤消息。我明白爲什麼我得到的錯誤,即它是因爲在創建分支時,我只是拖放項目進樹幹一個新的分支(使用回購瀏覽器),而不是下列方法之一:SVN:必須與祖先相關

  1. 使用複製到選項在庫瀏覽器
  2. 使用分支/標籤選項(右在Windows Explorer中單擊項目,選擇TortoiseSVN /科/標籤)

我有三個問題:

  1. 爲什麼項目必須與祖先相關?這個問題表明,如果選擇此選項,SVN只是進行文件比較:What are the differences between merging a range of revisions vs. reintegrate in SVN?
  2. 以上兩個選項是否使項目祖先相關?
  3. 從Trunk到項目的簡單拖拽項目是否使項目無關聯?

回答

13

爲什麼項目必須與祖先相關?這個問題表明,如果選擇了這個選項,SVN只是做一個文件比較:SVN合併一系列修訂與重新合併。

合併不僅僅複製文件的更改從一個分支到另一個,這是最後的共同祖先與這兩個文件被合併的比較。這是一個三種方式合併。

比方說,你對樹幹文件:

Line #1 
Line #2 
Line #3 
Line #4 

你讓這個文件的一個分支。

在樹枝上,你作爲4號線改變:

Line #1 
Line #2 
Line #3 
Line #4 FOO FOO FOO 

在樹幹上,你變線#3

Line #1 
Line #2 
Line #3 BAR BAR BAR 
Line #4 

顛覆之前的最後一個共同祖先(該文件版本進行比較任何更改)與您正在合併的文件版本。如果我將樹幹合併到樹枝上,Subversion會看到我在樹幹上更改了3號線,但沒有更改4號線。因此,第3行的更改需要結束,但第4行的差異是分支更改的結果,我不應該通過中繼線的第4行復制

合併文件看起來像這樣:

Line #1 
Line #2 
Line #3 BAR BAR BAR 
Line #4 FOO FOO FOO 

顛覆也考慮到先前合併的變化,改變了你想跳過。這實際上是一個非常好的合併工具,除非你開始重新命名文件並在批發中移動它們。 (這個假設在Subversion 1.9中得到糾正)。

因此,爲了使合併工作,這兩個文件必須份額可以用作合併基地一個共同的祖先。如果沒有它,Subversion將無法分辨出主幹上的文件行更改與分支上更改的內容。否則,它只是將文件從一個分支複製到另一個分支。

你可以嘗試--ignore-ancestry參數。這會導致Subversion將合併視爲差異。

做兩種選擇上面使祖先相關的項目?

這兩個選項(我認爲你在考慮--reintegrate vs沒有這個選項)使項目祖先相關。這來自通過svn cp分支。與不重新融合相比,--reintegrate與合併的方式有關。當您從基流(通常爲主幹)合併到您的支流,要合併是您基流發生在支流的的變化。這會產生新的修訂。當你重新合併,顛覆看到了新的修訂,並希望這些修訂合併到您的基流,在再集成選項的發生刪除此。

而且,當你重新融入社會,創建你的基流一個新的版本,這是爲什麼你不要以爲一旦你使用了--reintegrate從您支流回你基流合併。您可以通過--reintegrate後從您的支流--record-only合併到您的基流克服這一點。

從Trunk到項目的簡單拖放項目是否使項目與祖先無關?

取決於Subversion客戶端。一些GUI Subversion客戶端可以理解爲拖拽爲svn cp,而不是僅僅將文件複製到另一個目錄。但是,TortoiseSVN通過Windows資源管理器工作,因此默認情況下的拖放操作是文件系統副本。有一個選項,當你用鼠標右鍵點擊拖放來做svn cp而不是Windows文件系統副本。

+0

感謝全面的答案。 +1。我唯一的疑問是,複製似乎使項目與祖先相關? – w0051977

+0

是的,如果你在談論***'svn cp' ***。讓Subversion知道各個分支是如何相互關聯的。使用操作系統版本的副本(即Windows拖動和複製)進行復制不會將Subversion提示到分支的關係。相反,Subversion將該分支上的文件視爲一組完全不同的文件。其他版本控制系統不會遭受同樣的命運,因爲分支是文件內部的。如果您使用TortoiseSVN,請在拖動時單擊鼠標右鍵並選擇'SVN Copy versioned item(s)here''。 –

+0

謝謝。我假設在Windows資源管理器中右鍵單擊工作副本並選擇烏龜svn /分支就相當於在回購瀏覽器中選擇「複製到」了嗎? – w0051977

相關問題