Игнорировать папку во время обновлений SVN - PullRequest
37 голосов
/ 13 мая 2011

Если я svn: проигнорирую действительно большую папку, это улучшит производительность во время обновлений SVN?

У меня есть эта действительно огромная (> 600 МБ) папка в моем проекте.Файлы в этой папке не должны меняться вообще.Проблема в том, что каждый раз, когда я называю «svn update», это занимает вечность.Есть ли способ игнорировать эту папку во время обновлений, чтобы ускорить процесс обновления?

Ответы [ 4 ]

52 голосов
/ 13 мая 2011

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
...
10 голосов
/ 13 мая 2011

Вы можете сделать svn-обновление и указать все остальные каталоги, например,

svn update dir1 dir2 dir3

Или, grep -v, что вы не хотите.

svn update `ls | grep -v big_dir`

Или отправьте svn mv big_dir в другую папку и измените свою систему сборки, чтобы получить содержимое из другого каталога.

9 голосов
/ 13 июня 2013

Просто сделай:

svn up `svn ls | grep -v big_dir`

Использование "svn ls" Вы можете обновлять не только локально существующие каталоги и файлы, но и новые файлы из репозитория. Итак, обновление является более полным, чем просто исключение. И вам не нужно удалять уже существующие файлы, как, видимо, делает "--set-deep exclude".

3 голосов
/ 13 мая 2011

Помимо того, что сказал @Bill Brasky, одно из предложений - переместить огромную папку во внешнюю. Таким образом, вы можете сделать svn up --ignore-externals

Если вам не нужна огромная папка в вашей рабочей копии, вы можете взглянуть на редкие проверки:

svn checkout repo . --depth empty
svn up other dirs
...