SVN更新多个文件

时间:2008-10-25 15:45:10

标签: svn

如何对位于不同目录下的多个文件进行svn更新?

为了提交来自不同目录的多个文件,我们可以将它们全部放在一个文本文件中,并将该文件作为参数提供给svn commit,它将很乐意提交所有这些文件。但是更新

编辑: Fooz先生的回答绝对是一个选项,我可以创建一个包含所有svn更新的.bat或.sh文件。但我想知道svn提供的是否有任何特殊参数可以用来代替带有svn update命令的文件。请注意,svn commit使用的文件仅包含 文件名而不包含svn命令。

5 个答案:

答案 0 :(得分:9)

鉴于当有大量可用的下游更改时,有充分的理由选择从存储库进行更新,我的问题是您是否尝试在UNIX / Linux /等上执行此操作。系统或Windows。如果是Windows,我不知道如何做以下相同的事情:

svn update `cat list_of_files`

(有一些角落情况,类似于运行“find ... | xargs cmd ...”,文件名中的空格或shell敏感字符可能会导致问题。你必须处理那些正确地逃避这些问题。)

如果由于某些可怕的原因,您的文件列表非常大,以至于它会破坏shell命令行长度限制,您可以这样做:

cat list_of_files | xargs svn update

使用其中任何一项时要记住两件事:

  1. 所有文件名必须是绝对的,或者相对于您运行命令的点。
  2. 如果列表中的某个“文件”实际上是一个目录, 所有 将更新该目录中可用更改的文件。

答案 1 :(得分:5)

Subversion有一个“更改列表”功能(我相信是1.5中的新功能),它允许您通过执行以下操作来定义命名的更改列表:

svn changelist yourlist file1 file2 file3 ...

定义后,您可以将--changelist传递给多个命令,包括svn update,它们只会对与该更改列表关联的文件进行操作。例如:

svn update --changelist yourlist

答案 2 :(得分:3)

您可以在更新命令中指定多个文件夹

svn update docs foo/bar/ /repos/bar

如果您真的想限制自己更新单个文件,我必须同意Jon Topper您可能会偏离正轨。

答案 3 :(得分:1)

如果您不介意使用固定的目录列表创建单独的文件,可以将其设置为shell脚本或.bat文件(取决于您的平台),并在其中放置N个单独的svn更新调用。

答案 4 :(得分:0)

事实上,你甚至想要这样做,这表明你可能没有特别明智地使用颠覆。