2009-05-05 102 views
2

我正在嘗試重新組織有分支機構的Subversion 1.6版本庫。看起來,如果你在trunk中移動一個文件,並且該文件在分支中發生了變化,那麼當這些變化合併到分支中時,它們就不再存在。用分支機構重組subversion版本庫

我會嘗試下面來說明:

1. Repo before move 
    trunk/a.txt 
    trunk/b.txt 
    branches/feature/a.txt 
    branches/feature/b.txt 

2. File branches/feature/b.txt is changed. 

3. Repo reorganized 
    trunk/a.txt 
    trunk/new-location/b.txt 
    branches/feature/a.txt 
    branches/feature/b.txt 

4. Changes from trunk merged to feature 
    trunk/a.txt 
    trunk/new-location/b.txt 
    branches/feature/a.txt 
    branches/feature/new-location/b.txt 

文件夾分支/功能幹線的副本。

完成步驟4後,對功能分支中文件b.txt的所有更改都不再存在。

我認爲這是固定在svn 1.5?

如果這不是一個選項,我仍然需要以某種方式重新組織我的整個倉庫。當分支機構全部合併到主幹時做這個舉動不是一種選擇。在任何時候,我總是至少有1個分支和中繼線。

+0

你是否在subversion郵件列表上提出這個問題?你可能有更大的機會在那裏得到答案。 – lothar 2009-05-05 00:27:54

+0

我沒有。我在那邊張貼,看看我得到了什麼。 – 2009-05-05 00:40:31

回答

1

合併移動的文件是known problem。然而,顛覆不向您發出此消息,如果它doesn't find the merge target

跳過缺少的目標:如果您看到此消息「baz.c」

,你可能需要採取手動操作。如果文件被移動並且新位置應該接收到更改,則可以考慮在重命名的實體之間進行子樹合併。

我不知道任何版本控制系統會自動進行此類合併。 編輯:看起來像mercurial,例如merges do follow copies

0

提供步驟3和步驟4的詳細信息。Subversion合併與複製不同。

0

您需要確保在步驟3中使用SVN重命名方法,以確保文件位置與未來的更改保持關聯。

(我正在拉出這個......以及我不確定以下內容)移動/重命名文件時存在血統問題。確保在合併忽略祖先選項時未選中。