2011-05-16 70 views
2

我在Windows上使用的是Tortoise svn客戶端,我需要能夠在一次提交中同時提交來自不同子文件夾的已更改文件。就像在提交之前將文件添加到隊列中一樣?我怎樣才能做到這一點?svn一次全部提交(隊列)?

在Windows上有另一個svn客戶端可以做到這一點嗎?

+0

你如何用龜來做到這一點?烏龜svn客戶端允許提交子文件夾。也許你試圖以錯誤的方式使用它。 – 2011-05-16 17:00:04

回答

0

它們全都在同一個存儲庫中嗎?如果是這樣,只要到工作副本的根目錄並從那裏提交

0

從子目錄中右鍵單擊目錄,然後單擊「SVN提交..」。然後在「更改已完成」窗格中,只選擇(和全部)您想一次提交的子目錄。

1

如果它們都是同一存儲庫的一部分,那麼您只需從該存儲庫的根文件夾進行提交。如果它們來自不同的存儲庫,那麼這個概念有點沒有道理,因爲你會分開提交來分離存儲庫,所以它不能真正成爲「一個提交」。如果你有一些子文件夾都是不同的版本庫,但你只想在客戶端上執行1次提交操作來提交它們,那麼你可以製作某種.bat腳本來遍歷子文件夾,並運行相同的提交命令相同的提交消息。

也許增加更多這些「子文件夾」是什麼的細節?

5

如果您的工作副本具有所有這些文件夾的根目錄,則可以轉到此根目錄並提交。如果您已經在沒有root的情況下單獨檢出這些子文件夾,則必須進行多次提交。

+0

我認爲TortoiseSVN允許您在一個未版本化的目錄中選擇多個工作副本,並且如果它們都指向同一個存儲庫,請將它們一起提交。至少,我很確定我之前做過這些:-) – Ben 2014-09-11 01:57:14

1

嘗試從您的頂級文件夾提交。它會向您顯示修改和未更改的文件,即使它們位於子文件夾中。

1

已經提供的幾個答案給出了基本相同(正確)的答案 - 從您的工作副本根提交。但我認爲只給出幾個更多細節是有用的。

首先,從根提交確認不是意味着您必須提交所有內容(如果您擔心還沒有提交一些不相關的編輯)。提交對話框允許您從所有已更改文件的集合中選擇或取消選擇。

其次,也許是最相關的問題,不管你選擇多少文件提交,提交操作是原子,即它提交所有的文件,或者,如果有任何一個出現問題或更多,它承諾。因此,Subversion保證將您的更改作爲一個更改集合組合在一起。第三,需要注意的一點是稍微不直接,但在這裏仍然值得一提:需要注意的是,Subversion操作(以外的回購瀏覽器)在兩階段流程下運行:首先進行本地更改,然後執行更改。對於編輯操作,這似乎幾乎是一種同義:首先進行編輯,然後提交;編輯本身的行爲不會影響存儲庫。很明顯,對嗎?當你考慮增加操作時,這並不是那麼明顯:首先你添加,然後你提交;添加的行爲不會影響存儲庫!因此,建立您的更改集時,請將此與您的問題相關聯,編輯各種文件,添加各種文件,刪除各種文件等。完成後,從工作副本的根目錄打開提交對話框,並選擇變更集中的所有文件,並在一次原子操作中提交它們。

1

因此,我經常使用TortoiseSVN的一個功能,我認爲它可能與您的請求類似,只是將文件夾或文件拖動到提交對話框。只要他們都在一個單一的根目錄工作文件夾下,它就會解決這個問題,並讓您在一次提交中提交它們。這是一個非常方便的功能,我一直在使用。

此功能的進一步擴展,我希望看到的是Araxis Merge提供的功能。您可以右鍵點擊一個文件或文件夾,然後選擇「隊列比較」:

Araxis Merge context menu selections - Queue for Comparison

然後用鼠標右鍵單擊另一個文件夾/文件,它允許你做的一個或多個項目的比較該被排隊:

Araxis Merge context menu selections - Compare with Araxis Merge (+n in queue)

我很想龜甲支持「隊列爲提交」,然後加入到「提交(帶+ n的隊列)」菜單,如果隊列不爲空。