2009-12-03 60 views
3

假設我有來自我的SVN存儲庫的多個不同文件夾的工作副本分散在我的文件系統中。他們的父目錄不是存儲庫的一部分。例如。Subversion:我可以同時提交多個簽出的文件夾嗎?

somedir1\ 
    workingcopyOfA\ 
    workingcopyOfB\ 
somedir2\ 
    somedir3\ 
     workingcopyOfC\ 
    workingcopyOfD\ 

現在,它們都含有這是我想檢查,在一次(主叫svn只有一次爲了方便,只使用一個新的版本號爲簡單起見)的變化。

這可能嗎?這是改變列表的意思嗎?如果我使用svn < v1.5,該怎麼辦?

(這裏還有一些類似的問題上如此,但它們指的是不同的問題。)

編輯:爲了澄清:工作副本都屬於同一個資源庫,但不同的部分,即庫長相像這樣:

RepoDirA\ 
RepoDirB\ 
RepoDirC\ 
RepoDirD\ 

回答

3

正如其他人指出的,這是不可能的,因爲很好的理由(請參閱加西亞的回答值得注意)。

如果eclipse支持類似的東西,我懷疑它會在背後創建多個checkin。

然而,可能的是,區分一個工作目錄中的更改並將這些更改應用到其他工作目錄(如果它們重疊)。完成之後,所有更改都位於您可以從中檢入的單個工作目錄中。 D Garcia指出的合併問題現在是您在補丁時解決的責任。

如果您的工作目錄不與重疊,並且您擁有多個工作目錄的唯一原因是,例如,你不想拉動整個存儲庫,我建議檢查出你的工作目錄的共同根目錄的層次結構,但不是遞歸地(使用svn co -N root),然後爲中間目錄獲取具有svn update path/to/subsetOfInterest的特定工作目錄)。這樣,他們都住在同一個工作目錄內,並允許以原子方式處理它們。

1

我知道,Eclipse可以做到這一點,但也許他們使用的一些技巧裏面(因爲你可以提交它們使用不同的存儲庫的項目也是如此,例如其中一個是在CVS和其他在SVN )。

我建議只嘗試與您的客戶。如果它不起作用,它會打印一個錯誤。你不可能破壞任何東西。

0

我認爲這是不可能的,而不是通過命令行,而不是與TortoiseSVN。但可能有工具可以使這成爲可能。你也可以爲它寫一個bach腳本。

更改列表是別的東西,在這裏您可以將一個工作副本的一些更改分組在一起,以便您可以單獨提交它們。

+0

像SVN-Monitor kan這樣的工具幫助了很多,它有一個功能來更新多個工作副本,但我還沒有找到一個提交。 – Jochen 2009-12-04 09:59:06

1

它似乎沒有你可以。我在這裏嘗試過,在那裏我經常檢查多份工作副本。 Subversion對你試圖檢入的文件夾的公共根目錄中沒有.svn目錄感到胡思亂想。

當然,如果你所有的工作拷貝都引用同一個版本庫路徑 - 那將是一個真正的討厭的事情,以允許。你基本上會期望顛覆在將它們放入存儲庫之前在本地合併4組更改,這可能會使衝突解決的樂趣:)

請注意,這是與顛覆1.4.5。

在1.5中,更改列表似乎更多地是在同一工作目錄中具有多個工作集的更改,並且能夠分別對待它們,而不是具有多個工作目錄並將它們視爲一個實體。

0

我認爲更改列表集合是通過存儲庫基礎在存儲庫上維護的 - 所以在您的示例工作副本中,A B & C必須位於同一個存儲庫中。 然後,您必須將每個工作副本分別添加到同一個更改列表中。

我無法測試它(完成),但設置似乎工作。

相關問題