Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

$

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

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

Ответ 2

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

svn update dir1 dir2 dir3

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

svn update `ls | grep -v big_dir`

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

Ответ 3

Просто выполните:

svn up `svn ls | grep -v big_dir`

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

Ответ 4

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

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

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