SVN/TortoiseSVN мучительно медленно

Я испытываю мучительно медленные операции с одним из наших репозиториев/проектов SVN.

Например, он занимает 5-10 минут, чтобы отменить изменения в одном маленьком файле (10 KB). Или около 40-60 минут, чтобы проверить проект 100 Мб.

На одном и том же сервере существует около 30 других проектов, некоторые из которых намного больше, чем этот, и ни одна из них не преподается таким образом.

Следует отметить, что этот проект представляет собой проект Magento. Он не очень большой с точки зрения дискового пространства, но у меня есть 23k Files и 11k папок, и я плохо читал преформы SVN, когда есть много маленьких файлов; Это правда? И есть ли что-нибудь, что я могу сделать, чтобы ускорить процесс?

Ответ 1

Рабочая копия Subversion работает довольно плохо, когда имеется огромное количество каталогов, например, в вашем случае. Для операций записи (даже только локально) в рабочую копию рабочая копия должна быть заблокирована, что означает, что файл блокировки создается в каждой директории (который создается файл 11k), затем действие выполняется, и эти файлы 11k снова удалено.

Subversion 1.7 переходит в другой формат рабочей копии, который должен решить эти проблемы. До тех пор есть несколько трюков, которые вы могли бы попытаться ускорить, например, исключить рабочую копию из вашего антивирусного сканера, отключить мониторы файлов в каталоге (например, TortoiseSvnCache) и попытаться сократить общее количество каталогов. (Возможно, просмотрев несколько отдельных рабочих копий)

Ответ 2

Существует известная проблема с использованием корзины с возвратом, что приводит к медленному возврату. Опорожняя корзину и установив TortoiseSVN, чтобы не использовать ее во время повторных операций, ускорите эту операцию (см. http://www.nabble.com/Revert-is-too-slow-td18222196.html).

Это определенно ускорило мои возвратные операции.

Ответ 3

Я пережил чрезвычайную медленность с Subversion в Windows после смены пароля. Мне пришлось удалить все каталоги и файлы из %APPDATA%\Subversion\auth.

Теперь SVN быстро, как заяц. Моя медлительность произошла как через TortoiseSVN, так и в командной строке.

Ответ 4

SVN работает медленно, если вы используете NFS (Network File System) для рабочей копии. Это может быть вашей проблемой.

Ответ 5

Возвращение изменений в SVN - это локальная операция, которая не должна вообще переходить на сервер. Так звучит, как будто проблема в вашей рабочей копии проекта.

Попробуйте запустить 'svn cleanup' в рабочей копии; вы также можете проверить, есть ли у вас проблемы с жестким диском или файловой системой.

Ответ 6

Наш SVN работал медленно медленнее через TortoiseSVN, Eclipse и командной строки. Обязательства и экспорт были медленными. Наши Zend Framework основанные на PHP проекты потребовали бы возраста для обновления, а появление небольшого коммита примерно из трех файлов займет 5-10 минут.

Наша виртуальная машина SVN (CentOS) имела только 700 МБ ОЗУ, что казалось разумным для CLI Linux, работающего только под Subversion через Apache и работает около года. У нас только около 20 проектов и всего три разработчика.

Я увеличил его до 1,5 ГБ оперативной памяти, и теперь все работает намного быстрее, назад к нашим старым скоростям.

Ответ 7

Попробуйте временно отключить антивирусное ПО.

Ответ 8

Я также сильно пострадал после обновления до TortoiseSVN 1.7.3.

Затем я обнаружил, что у меня была отдельная установка SVN 1.6.5. Я удалил и переустановил TortoiseSVN, и теперь все намного лучше. Первое обновление дня в TortoiseSVN все еще медленное (1-2 минуты), но быстро после этого.

Ответ 9

У меня есть несколько проектов, которые используют Eclipse IDE. Если вы запишете каталоги проектов Eclipse, вы получите сотни и сотни крошечных файлов, которые имеют такой же эффект для моего проекта, как вы страдаете от вашего.

Я думаю, что когда вы проверяете файлы, SVN делает это по одному, что означает, что проекты с огромным количеством файлов всегда будут медленными, и вы не можете с этим справиться (кроме того, чтобы избежать частого целостного хранилища операции).

Внесение изменений в один файл не должно быть медленным.

Вы можете попробовать предложения в другом сообщении о переполнении стека о медленном SVN. Это также может быть связано с с использованием базы данных BDB.

Ответ 10

У нас есть аналогичная проблема, проблема была TortoiseSvn (версия 1.9.7). Например, repo browser заняло приблизительно 10 минут до первоначального.

Мы обернули функцию Show Locks и исправили каждую вещь!

Щелкните правой кнопкой мыши по папке и выберите Tortoise\Settings, затем General\Dialog 3, затем снимите выделение Show Locks

Также некоторые хорошие подсказки можно найти на http://tigris-scm.10930.n7.nabble.com/Workaround-for-slow-RepositoryBrowser-on-large-repositories-td92324.html