繁体   English   中英

在 SVN 更新期间忽略文件夹

[英]Ignore a folder during SVN updates

如果我 svn:ignore 一个非常大的文件夹,它会在 SVN 更新期间提高性能吗?

我的项目中有这个非常大(> 600MB)的文件夹。 此文件夹中的文件根本不应更改。 问题是每次我调用“svn update”都需要很长时间。 有没有办法在更新过程中忽略此文件夹以加快更新过程?

svn:ignore仅用于尚未在 Subversion 存储库中的文件。 这个文件夹已经是。

您可以使用svn update --set-depth exclude folderName从您的工作目录中删除此文件夹:

$ svn update --set-depth exclude bigFolder  #Removes "bigFolder" from workdir
D bigFolder

$

下次进行更新时, bigFolder将不会出现在您的工作目录中。 如果你想要它回来,你必须重置深度:

$ svn update --set-depth infinity
U bigFolder
U bigFolder/File1
U bigFolder/File2
...

你可以做一个 svn update 并特别提到每个其他目录,例如

svn update dir1 dir2 dir3

或者, grep -v 找出你不想要的东西。

svn update `ls | grep -v big_dir`

或者, svn mv big_dir 到另一个文件夹并更改构建系统以从另一个目录获取内容。

做就是了 :

svn up `svn ls | grep -v big_dir`

使用“svn ls”您不仅可以更新本地现有的目录和文件,还可以更新存储库中的新文件。 因此,更新更完整,而不仅仅是排除。 而且您不需要删除已经存在的文件,就像“--set-depth exclude”显然那样。

除了@Bill Brasky 所说的,一个建议是将巨大的文件夹移到外部。 这样你就可以做svn up --ignore-externals

如果您不想在工作副本中使用大文件夹,则可以查看稀疏结帐:

svn checkout repo . --depth empty
svn up other dirs
svn file structure:
trunk
|___ folder1
|___ folder2
|___ folder3
|___ other_folder

首先结帐时,使用立即数,仅结帐一级文件夹和文件:

  • svn co svn://svn-xxxx.com/svn/develop/trunk --depth 即时中继,

然后,设置一些文件夹以供稍后更新:

  • CD后备箱
  • svn up folder1 folder2 folder3 --set-depth infinity

ok,现在只有123文件夹可以更新了,其他一级文件夹还在trunk文件夹里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM