如何对位于不同目录下的多个文件进行svn更新?
为了提交来自不同目录的多个文件,我们可以将它们全部放在一个文本文件中,并将该文件作为参数提供给svn commit,它将很乐意提交所有这些文件。但是更新?
编辑: Fooz先生的回答绝对是一个选项,我可以创建一个包含所有svn更新的.bat或.sh文件。但我想知道svn提供的是否有任何特殊参数可以用来代替带有svn update命令的文件。请注意,svn commit使用的文件仅包含 文件名而不包含svn命令。
答案 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 :(得分:5)
Subversion有一个“更改列表”功能(我相信是1.5中的新功能),它允许您通过执行以下操作来定义命名的更改列表:
svn changelist yourlist file1 file2 file3 ...
定义后,您可以将--changelist
传递给多个命令,包括svn update
,它们只会对与该更改列表关联的文件进行操作。例如:
svn update --changelist yourlist
答案 2 :(得分:3)
答案 3 :(得分:1)
如果您不介意使用固定的目录列表创建单独的文件,可以将其设置为shell脚本或.bat文件(取决于您的平台),并在其中放置N个单独的svn更新调用。
答案 4 :(得分:0)
事实上,你甚至想要这样做,这表明你可能没有特别明智地使用颠覆。