如何使svn更新排除具有特定名称的文件夹

时间:2014-06-24 07:53:32

标签: svn command-line

我需要更新一些svn存储。我不需要在这些存储中更新很多文件夹。所有这些文件夹的名称相同,例如FolderToSkip。这些文件夹很重,对我目前来说并不重要。所以,我想更新svn存储空间来浏览这些FolderToSkip个文件夹。

我无法使用svn:ignore,因为它仅适用于Subversion存储库中尚未存在的文件。这些文件夹已经是。

我无法使用svn update --set-depth exclude FolderToSkip,因为它只适用于指定的路径,我需要名称为FolderToSkip的所有文件夹

是否有可能得到,我想要什么以及如何做到这一点?

编辑: 要跳过的文件夹放在不同的存储路径中。例如,

~/loom/svnstore/foo/FolderToSkip
~/loom/svnstore/bar/trunk/2.1.0/var/FolderToSkip
~/loom/svnstore/a/b/c/d/e/f/g/h/FolderToSkip
...

更新所有文件的命令如下:

~/loom/svnstore$ svn up

1 个答案:

答案 0 :(得分:0)

  1. 您不能使用单个命令,它将设置为svn up(至少2个)
  2. 您的树的根必须单独更新,因为要求定义--depth 'files'--set-depth 'files',而所有可更新文件夹都可以使用默认值'无限远“
  3. 如果您可以准备以空格分隔的可更新文件夹列表,则可以使用(在根目录svn up --depth 'files'之后)svn up PATH1 PATH2 ... PATHN,并获取仅更新枚举文件夹的结果
  4. 如果你不能准备列表,但是可以使用带有grep和xargs和管道的良好操作系统,带有长路径列表的svn可以用类似
  5. 的东西替换

    svn ls | grep -v FolderToSkip | xargs svn up