Медленный переключатель в Subversion - PullRequest
4 голосов
/ 01 апреля 2011

У нас есть проект в нашем хранилище, который разветвлен от ствола. Он существует около 18 месяцев, и в него было внесено около 500 изменений. Все изменения в стволе за это время были последовательно объединены в ветку.

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

Для тестирования я удалил всю информацию о слиянии, но безуспешно.

В качестве дальнейшего теста я создал новую ветку вне ствола. Затем я объединил различия между исходной ветвью и стволом и перенес их в новую ветвь.

Новые и старые ветки теперь идентичны в соответствии с утилитами svn.

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

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

Мы используем SVN 1.6 и работаем через файл: протокол.

Есть идеи?

1 Ответ

0 голосов
/ 02 апреля 2011

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

Чтобы «исправить» те последние времена записи, которые могут быть неправильными, может помочь запуск команды очистки.

...