Игнорировать папку во время обновления SVN
Если я svn: проигнорирую действительно большую папку, это улучшит производительность во время обновлений SVN?
У меня есть эта действительно огромная (>600 МБ) папка в моем проекте. Файлы в этой папке не должны меняться вообще. Проблема в том, что каждый раз, когда я называю "svn update", это занимает вечность. Есть ли способ игнорировать эту папку во время обновлений, чтобы ускорить процесс обновления?
4 ответа
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-обновление и конкретно указать все остальные каталоги, например
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 не сможет обновляться, а другая папка первого уровня все еще останется в основной папке