2008-10-25 125 views
2

如何執行svn更新位於不同目錄中的多個文件?SVN更新多個文件

對於從不同目錄提交多個文件,我們可以將它們全部放在一個文本文件中,並將該文件作爲svn commit的參數,它會愉快地提交所有這些文件。但更新

編輯: Fooz先生的答案絕對是一個選項,我可以創建一個帶有所有svn更新的.bat或.sh文件。但是我想知道是否有任何svn提供的特殊參數可以用來代替其中包含svn update命令的文件。請注意,由svn commit使用的文件僅包含的文件名,並且不包含svn命令。

+0

我很想知道如何將svn提交一個文件列表作爲參數。從我在某些svn資源上看到的情況,交換機-F/- 文件僅用於提交消息 – jpdelatorre 2010-05-18 17:13:58

回答

8

鑑於當存在大量可用的下游更改時,從存儲庫有選擇性地更新是有正當理由的,我的問題是您是否試圖在UNIX/Linux /等上執行此操作。系統或Windows。如果Windows,我不知道該怎麼做以下等效:

svn update `cat list_of_files` 

(有角的情況下,類似於運行「查找... | xargs的CMD ...」,在空格或如果出於某種令人恐懼的原因,你的文件列表如此天文數字般大,以至於不能用它打破了shell命令行長度限制,您可以這樣做:

cat list_of_files | xargs svn update 

使用以下任一方法時要牢記兩件事:

  1. 所有文件名都必須是絕對的,或者相對於您運行命令的點而言。
  2. 如果列表中的某個「文件」實際上是目錄,則全部該目錄中有可用更改的文件將被更新。
1

如果你不介意創建一個帶有罐裝目錄列表的單獨文件,你可以使它成爲一個shell腳本或.bat文件(取決於你的平臺),並在其中放置N個單獨的svn更新調用。

0

事實上,你甚至想這樣做,這表明你可能沒有特別明智地使用顛覆。

+0

你是理想的情況,但多個項目可能並不總能很好地工作。在我們的案例中,我們有一個平臺和多個客戶項目。客戶項目必須進入單獨的存儲庫,以便他們不能訪問其他日誌/數據等。 – 2008-10-25 16:10:48

3

您可以在更新命令指定多個文件夾

svn update docs foo/bar/ /repos/bar 

如果你真的想限制自己更新單獨的文件我有Jon Topper,你可能會偏離軌道同意。

5

Subversion有一個「changelists」功能(新增功能1。5,我相信),允許你做定義一個名爲變更列表:

svn changelist yourlist file1 file2 file3 ... 

一旦定義,你可以通過--changelist幾個命令,包括svn update,他們將只在與該變更列表有關的文件進行操作。例如:

svn update --changelist yourlist