Игнорировать папку во время обновления SVN

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

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

4 ответа

Решение

svn:ignore только для файлов, которых еще нет в хранилище Subversion. Эта папка уже есть.

Вы можете использовать svn update --set-depth excludefolderName чтобы удалить эту папку из вашего рабочего каталога:

$ 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-обновление и конкретно указать все остальные каталоги, например

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-deep 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 - установить бесконечность глубины

хорошо, теперь никакая папка 123 не сможет обновляться, а другая папка первого уровня все еще останется в основной папке

Другие вопросы по тегам