2012-06-18 71 views
3

我們正面臨SVN標記問題。下圖顯示了我們的項目是如何在SVN內部組織的。我們使用Tortoise SVN來完成我們的結帳和Visual SVN作爲我們的服務器。SVN多分支標記

SVN File Organization

這是怎麼了我們的項目中SVN

  • 科A(主要工作分支)分支樹幹組織,因此駐留在分行內folder.There是這裏面不同的模塊分支
  • 分支B(一種稱爲RNS的特定模塊)稍後分支A分支(這是爲了一個新的增強功能)
  • 請注意,兩個分支都不是主幹。
  • 在對分行A的發展,一些新的文件相繼出臺,只有分行A
  • 沒有發展是RNS模塊上進行A.科內

我們想標記一個版本我們的最新工作項目,即包含RNS模塊B分支的分支A,如何實現?

這就是我們如何結帳我們最新的工作區從SVN

  • 我們籤分公司整個項目的一個版本。
  • 完成後,我們右鍵單擊RNS模塊,然後使用SVN-switch選項,我們將其更新爲此模塊的分支B(QUAL_RNS)版本。
  • 這構成了我們最新的工作設置(黃色)。
  • 所以除了RNS模塊每個模塊將屬於科A.

我們試圖做從父文件夾這個最新的工作設置的創建標籤/分支 - 文件夾-1(與工作副本選項),但這只是創建了一個分支A的標籤,不包括RNS模塊的分支B.

UPDATE: 我的烏龜SVN幫助菜單

  • 您還可以創建一個分支或標記看到這個而不是在工作副本。爲此,請打開存儲庫瀏覽器。你可以在那裏拖動文件夾到一個新的位置。您必須在按住Ctrl鍵的同時拖動以創建副本,否則文件夾會移動,而不會被複制。
  • 您也可以用鼠標右鍵拖動文件夾。鬆開鼠標按鈕後,您可以從上下文菜單中選擇是否要移動或複製文件夾。當然,要創建分支或標籤,您必須複製該文件夾,而不是移動它。

所以我嘗試了這個工作副本。我創建了一個新的標籤文件夾,並將我的整個項目按住Ctrl鍵。這似乎有效,但是這是否會佔用額外的空間(是否會創建額外的副本,因爲複製整個工作空間需要大約5分鐘(470MB)),還是會創建與存儲庫中文件的正確鏈接?

+0

「svn切換」工作副本「分支A」內的目錄到完整的「分支B」?如果你這樣做,我認爲是不正確的。你必須使用svn externals:http://svnbook.red-bean.com/en/1.6/svn.advanced.externals.html –

+0

謝謝你的回覆。是的,我檢查分支A,然後爲RNS模塊做一個SVN切換,將其更新到分支B.我沒有嘗試外部分支,但導致我們使用TortoiseSVN作爲GUI。我會給你一個建議。 –

回答

0

你必須做正常或sparse工作拷貝,並與工作副本標記爲http://svnbook.red-bean.com/en/1.6/svn.branchmerge.tags.html#svn.branchmerge.tags.mkcomplex

解釋在TortoiseSVN(或命令行),你可以做全庫的標籤(從做根),但這不是推薦的,因爲它可能會干擾某些工具在標準佈局中轉發的行爲。

+0

非常感謝您的回覆。我們在Windows機器上安裝了VisualSVN服務器,並在Windows中執行所有簽入操作,然後將我們的代碼移至Linux機器中。我試圖從你提到的鏈接的工作副本中創建一個複雜的標籤,但我使用了TortoiseSVN exe文件,就像我在windows上工作一樣。 (例如:TortoiseProc.exe複製我的工作拷貝\ http://svn.example.com/repos/calc/tags/mytag \ -m「標記我現有的工作拷貝狀態。」) 我不是確定我是否正確地做,或者如果這不被Windows支持。 –

+1

我認爲你對Subversion缺乏一些基本的理解。您正在嘗試使用圖形客戶端而不瞭解基礎知識。請閱讀http://svnbook.red-bean.com/en/1.6。 –