Хук post-commit SVN делает коммит очень медленным - как это исправить? - PullRequest
0 голосов
/ 06 января 2012

Я добавил хук после фиксации в свой репозиторий на сервере Windows 2008. Поэтому каждый раз, когда что-то фиксируется, я захожу в папку своих приложений и запускаю svn update . Это работает, но очень медленно, и TortoiseSVN не завершает работу, пока не завершится ловушка после фиксации. Как я могу сделать это быстрее? Один из способов может заключаться в том, чтобы не переходить на какое-либо приложение, а только на то, где произошла фиксация. Как я могу выяснить, какое приложение получило коммит? Некоторые регулярные выражения и $ 1? Я попробовал только одно приложение и его все еще 1,5 минуты для одного файла, способ долго.

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 января 2012

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

0 голосов
/ 06 января 2012

Снимите крючок Subversion и посмотрите на Дженкинс . Jenkins - это сервер непрерывной сборки, но он выполняет процесс после фиксации в Subversion. Обычно это может быть сборка, но также может выполняться обновление Subversion на вашем сервере.

Jenkins будет регистрировать все и уведомлять вас (по электронной почте, в Твиттере, IM или даже на светофоре ), если что-то пойдет не так.

Легко увидеть изменения, историю и т. Д. Плюс, это не замедляет Subversion.

Кстати, я рекомендую следующий процесс:

  • Ваш сервер запущен, скажем, C:\inetd\www.
  • Создайте новый каталог с именем C:\inetd\www2 и выполните svn export для этого каталога.
  • Переименуйте C:\inetd\www2 в C:\inetd\www. Возможно, вам придется отказов вашего сервера.

Это гарантирует, что ваш сервер никогда не будет работать там, где некоторые файлы в его каталоге имеют версию 2000, а другие - версию 2001. Таким образом, все ваши изменения вносятся одновременно. Кроме того, у вас нет всех этих .svn каталогов повсюду (хотя клиент Subversion 1.7 немного улучшил это).

...