2013-10-18 106 views
3

我繼承了一個Subversion版本庫的管理一羣人,這是令人難以置信的缺乏組織的目錄結構的重大重組是這樣的:如何執行顛覆庫

/root 
    /branches 
     /branch_1_with_cryptic_name 
     /branch_2_with_different_cryptic_name 
     /branch_3_with_super_cryptic_name 
     ... 
     /branch_N_with_another_cryptic_name 
    /tags 
     /tag_1_with_yet_another_cryptic_name 
     /tag_2_with_another_different_cryptic_name 
     ... 
     /tag_M_with_some_other_cryptic_name 
    /trunk 
     /project_1 
     /project_2 
     ... 
     /project_K 

公告稱,分支並且標籤沒有針對其各自的項目進行組織,所以不可能知道哪個分支/標籤與哪個項目相關,除非您已經熟悉它了。

我想重新組織目錄結構以下列方式

/root 
    /project_1 
     /branches 
      /branch_1_with_some_name 
      /but_at_least_i_know_which_project 
     /tags 
      /some_tag_1 
      /some_tag_2 
     /trunk 
    /project_2 
     /branches 
     /tags 
     /trunk 
    ... 
    /project_K 
     /branches 
     /tags 
     /trunk 

此外,我想保持每個文件的歷史記錄,並允許開關/現有的樹枝和樹幹之間的合併每個項目。

我正在使用龜SVN,並試圖簡單地在回購瀏覽器中移動目錄,但切換隻適用於如果我「忽略祖先」,併合並每個文件有樹衝突的結果。

有沒有更好的方法來做到這一點?

回答

0

如果你有你的機器(樹幹+分公司+標籤)上的全部回購,你可以使用左右烏龜SVN移動它們。這不是很明顯(我知道我必須努力)。

選擇文件夾(S)和複印或用Ctrl-C/Ctrl-X鍵或上下文菜單 - >複製/剪切照常切割它們。進入到目標文件夾,然後右鍵單擊右鍵菜單 - > TortoiseSVN的 - >粘貼。你不用DARE使用普通粘貼(但我相信你知道這一點)。

替代方法:選擇要移動的文件夾並將它們移動,就像使用上的任何文件一樣右鍵點擊。在釋放鼠標右鍵時,請選擇SVN在此處移動/複製版本化文件。

這應該圍繞安全移動您的文件夾,保存版本歷史記錄。我認爲可以使用回購瀏覽器做相同的,但我沒有太多使用它。

我希望這適合你!

Source

0

如果我是你,我會忘了切換,並使用純醇」 svn movesvn rmsvn mkdir達到理想的結構。由於這些命令跟蹤所有文件的歷史,你應該能可合併爲可合併之前的文件夾。

行動的一個可能的過程可能是以下幾點:

  1. 創建project_1project_2等。使用svn mkdir
  2. 在每個項目目錄,創建tagsbranches目錄
  3. 移動原始項目目錄到他們的新位置trunk/
  4. 移動原科到各自的新位置在project_x/branches/
  5. 移動原標籤分別放入各自的新位置project_x/tags/