2014-03-05 66 views
4

背景故事:找到了入門級Web開發人員的工作。首席開發人員在我開始時離開。對我負責。從未使用過SVN。失明。烏龜SVN合併「@ ###必須與@ ###祖先相關」錯誤

問題
我不斷收到類似

'svn://svn/svn/xxx/project_name/branches/[email protected]' must be 
ancestrally related to 'svn://svn/svn/xxx/project_name/[email protected]' 

錯誤,由我開始新項目的過程是:

  1. 建立一個目錄,我的計算機上的項目子文件夾:
    project_name/branches
    project_name/branches/dev
    project_name/tags
    project_name/trunk

  2. 右鍵單擊項目根目錄,選擇我的項目的根,並Add它到倉庫

    (所有下面就是我對當前的項目要做,這作品在他們沒有問題,但在合併減免新項目)

  3. Commit「開發」分支

  4. Merge 「開發」 到 「箱子」(即合併所有修訂)* BREAKS這裏 *
  5. Commit 「主幹」
  6. svn up

不熟悉SVN,我有一個非常艱難與此時間。正如我所說的,在現有項目上做3-6的工作,但在新的項目上,合併時出現must be ancestrally related to錯誤。 那麼,我做錯了什麼?全部和任何幫助非常感謝。

+1

這聽起來像問題是你沒有創建通過SVN副本Dev分支,而只是通過在目錄結構的目錄。因此dev文件夾沒有中繼作爲祖先(它不是從中繼創建的)。我不知道TortoiseSVN,但在IDE中打開你的主幹文件夾,然後選擇分支,然後切換到你的新分支。 – thatidiotguy

+0

@thatidiotguy我不能夠感謝你。我想到了!非常感謝。 –

回答

6

[thatidiotguy] [1]可能是正確的關於不通過從中繼副本創建。

如果您在dev分支上使用svn log --verbose --stop-on-copy,則最早的條目應顯示您從中複製分支的位置。

TortoiseSVN的svn日誌功能以相同的方式工作;停止複製是日誌窗口中的複選框。

如果您沒有從副本創建它,則無法合併回來。

您需要重新創建開發分支並重新應用您的更改。

更新:通過「重新創建開發分支」,我的意思是做一個新的分支開發,這是一個實際的SVN副本(分支)的樹幹。如果使用svn copy trunk/[應用程序子文件夾]分支/ [應用程序子文件夾 - 分支名稱]創建分支,svn將記錄原始源版本。這允許將幹線/基礎版本的變化智能合併到分支中(以修復缺陷,添加特徵等)。) 複製完成後,您可以從原始來源複製已更改的文件,並將其作爲代碼的正常更改提交。

How to replace a branch in subversion?

https://stackoverflow.com/users/821722/thatidiotguy

+0

也謝謝。日誌也有幫助。 –

+0

「重新創建開發分支」是什麼意思? – dokaspar