SVN更新多个文件

Vij*_*Dev 2 svn

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

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

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

rjr*_*ray 9

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

svn update `cat list_of_files`
Run Code Online (Sandbox Code Playgroud)

(有一些角落情况,类似于运行"find ... | xargs cmd ...",文件名中的空格或shell敏感字符可能会导致问题.您必须通过正确转义这些字符来处理这些问题.问题的字符.)

如果出于某种可怕的原因,您的文件列表是如此天文大,以至于它破坏了shell命令行长度限制,您可以这样做:

cat list_of_files | xargs svn update
Run Code Online (Sandbox Code Playgroud)

使用以下任何一项时要记住两件事:

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


Ken*_*Ken 5

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

svn update docs foo/bar/ /repos/bar
Run Code Online (Sandbox Code Playgroud)

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


mit*_*ndi 5

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

svn changelist yourlist file1 file2 file3 ...
Run Code Online (Sandbox Code Playgroud)

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

svn update --changelist yourlist
Run Code Online (Sandbox Code Playgroud)