2008-10-25 76 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