如何svn更新位于不同目录的多个文件?
为了提交来自不同目录的多个文件,我们可以将它们全部放在一个文本文件中,并将该文件作为参数提供给svn commit,它将很乐意提交所有这些文件.但更新?
编辑: Fooz先生的答案肯定是一个选项,我可以创建一个包含所有svn更新的.bat或.sh文件.但我想知道svn提供的是否有任何特殊参数可以用来代替带有svn update命令的文件.请注意,svn commit 使用的文件仅包含文件名而不包含svn命令.
鉴于当存在大量可用的下游更改时,有充分的理由选择从存储库进行更新,我的问题是您是否尝试在UNIX/Linux /等上执行此操作.系统或Windows.如果是Windows,我不知道如何做以下等价物:
svn update `cat list_of_files`
(有一些角落情况,类似于运行"find ... | xargs cmd ...",文件名中的空格或shell敏感字符可能会导致问题.您必须通过正确转义这些字符来处理这些问题.问题的字符.)
如果出于某种可怕的原因,您的文件列表是如此天文大,以至于它破坏了shell命令行长度限制,您可以这样做:
cat list_of_files | xargs svn update
使用以下任何一项时要记住两件事:
所有文件名必须是绝对的,或者相对于您运行命令的点.
如果列表中的某个"文件"实际上是一个目录,则该目录中所有可用更改的文件都将更新.
Subversion有一个"更改列表"功能(我认为是新的1.5),它允许您通过执行以下操作来定义命名的更改列表:
svn changelist yourlist file1 file2 file3 ...
一旦定义,您可以传递--changelist
给几个命令,包括svn update
,它们只会对与该更改列表关联的文件进行操作.例如:
svn update --changelist yourlist