2009-08-17 28 views
1

我們在這裏有一個非常複雜的存儲庫,我試圖最大限度地利用我們最近切換到Subversion。我們一般都有這樣的設置:在Subversion中同時提交多個模塊

parent_dir (unversioned) 
->module1_dir (versioned) 
->module2_dir (versioned) 
->module3_dir (versioned) 
->etc 

等等。模塊1-x通常是同一分支的各種模塊。在模塊1(服務器)和模塊2(客戶端)中需要修改代碼是比較常見的情況。以前在CVS下,我只需手動檢查每個模塊的更改。我希望能夠做的是同時提交我的服務器和客戶端更改(兩個不同模塊(或更多模塊)中的每一箇中的更改)。

反正有沒有做到這一點的顛覆(特別在烏龜SVN/Windows)中?如果我只是導航到該parent_dir,選擇文件夾和不提交,提交對話框出現,甚至列出了我的所有文件,但實際提交失敗說:

Error 'D:\parent_dir' is not a working copy 

好像我也許只有一步或兩個離開做這項工作,但不太清楚我需要做什麼。哦,我們不會很快改變這個目錄結構,所以請不要將它作爲一種可能性。另外,如果我要求的內容不明確,請詢問後續問題。提前致謝。

獎勵要點:有沒有辦法將多個模塊的更改同時提交到多個分支?例如。我做了一個客戶端+服務器更改,需要進入1.0和2.0分支。

回答

2

模塊1,模塊2和模塊3在存儲庫中是否有共同的父項?如果是這樣,你可以檢查出父目錄。 (當然你可以有很多的工作拷貝中的多餘的文件不相關的結束)

+0

不,他們沒有共同的父母。這肯定會讓這一切變得更容易。 – Morinar 2009-08-17 17:59:54

+2

他們有一個共同的父 - 存儲庫的根。如果您可以站立以重新定位已簽出的目錄,則可以從根目錄執行稀疏簽出操作,並僅獲取所需的文件和目錄。 – 2009-08-17 18:01:36

+0

如果您無法重新定位它們,那麼無論如何您都可以這樣做,然後使用文件系統連接將它們現在的位置鏈接到它們需要位於稀疏結帳中的位置。 – 2009-08-17 18:03:55

-1

我不知道是否有辦法解決這用龜,但一個小的腳本和使用的命令行 像Slik SVN這樣的SVN客戶端可以完成這項工作。

+0

當然。我們使用Slik SVN來執行我們的自動ANT構建,所以我已經安裝了。腳本不會那麼複雜,但是我會失去來自Tortoise GUI的易用性,這肯定會讓我難過。 – Morinar 2009-08-17 18:03:15

1

在Subversion 1.7中,可以從命令行對多個模塊進行原子提交更改。只要像這樣做:

$ svn commit module1_dir/ module2_dir/ ... 

雖然我不能嘗試在TortoiseSVN中,你提到的錯誤在顛覆1.6和更早的版本做同樣的命令時發生。因此,我認爲有理由相信它在TortoiseSVN 1.7.X中「正常工作」。