如果我svn:忽略一个非常大的文件夹会改善SVN更新期间的性能吗?
我的项目中有这个非常庞大的(> 600MB)文件夹。此文件夹中的文件根本不应更改。问题是每次我调用“svn update”都需要永远。有没有办法在更新期间忽略此文件夹以加快更新过程?
答案 0 :(得分:50)
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
...
答案 1 :(得分:10)
您可以执行svn更新并特别提及其他所有目录,例如
svn update dir1 dir2 dir3
或者,grep -v你不想要的东西。
svn update `ls | grep -v big_dir`
或者,将big_dir转到另一个文件夹并更改构建系统以从其他目录获取内容。
答案 2 :(得分:8)
只是做:
svn up `svn ls | grep -v big_dir`
使用“svn ls”您不仅可以更新本地现有目录和文件,还可以更新存储库中的新文件。因此,更新比完全排除更完整。而且您不需要删除现有的文件,例如“--set-depth exclude”。
答案 3 :(得分:3)
除了@Bill Brasky所说的,一个建议是将巨大的文件夹移动到外部。这样你可以做svn up --ignore-externals
如果你不想要工作副本中的大文件夹,你可以查看稀疏检查:
svn checkout repo . --depth empty
svn up other dirs
答案 4 :(得分:0)
svn file structure:
trunk
|___ folder1
|___ folder2
|___ folder3
|___ other_folder
先结帐时,请使用即时,仅结帐第一级文件夹和文件:
然后,设置一些文件夹以供以后更新:
好,现在只有文件夹123能够更新,而其他第一级文件夹仍保留在中继文件夹中