Как я могу добавить одну пост-фиксацию для нескольких репозиториев в перехватчиках Subversion

У нас есть настройки Subversion, такие как / var / svn / repoA, / var / svn / repoB, / var / svn / repoC и т. Д. Мы используем Redmine для управления проектами.

Чтобы автоматизировать некоторые задачи, такие как обновление проектов Redmine, мы используем перехватчик subversion после фиксации.

Поскольку у нас есть несколько репозиториев для нескольких проектов, когда нам нужно реализовать общую ловушку для всех проектов в Redmine, мы редактируем все перехватчики после фиксации внутри нескольких репозиториев. Определенно это становится раздражающим и проблематичным.

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

Спасибо.


person Habib Ullah Bahar    schedule 18.03.2011    source источник


Ответы (2)


использовать символические ссылки на один хук после фиксации

person Peter Parker    schedule 18.03.2011

У нас была аналогичная проблема, решение ПОЧТИ такое же хорошее, как наличие одного скрипта перехвата после фиксации. Я написал ОДИН скрипт, который выполняет всю интеграцию с Redmine. Этот скрипт принимает в качестве входных данных идентификатор проекта в Redmine. Все, что нам нужно сделать сейчас, это вызвать сценарий интеграции из сценария ловушки после фиксации для каждого репозитория, передав идентификатор проекта Redmine. Итак, да, каждый репозиторий должен иметь свой собственный хук после фиксации, но это просто однострочный вызов другого скрипта с параметром.

Против:

  • У вас по-прежнему будет один хук после фиксации для каждого репозитория. ОДНАКО, это всего лишь однострочный скрипт, передающий идентификатор проекта Redmine в качестве параметра. Это ведь не будет все время меняться, не так ли?

Плюсы:

  • При изменении вы измените только сценарий интеграции. Вы никогда не прикоснетесь к крючкам после фиксации

  • Со временем вам может понадобиться выполнять разные действия в разных проектах / репозиториях. Это выполнимо с помощью представленного подхода. Вы не получите такой гибкости, используя подход с одним крючком после фиксации. В конце концов, именно поэтому у вас есть ловушка после фиксации для каждого репозитория. Возможно, у вас даже есть другое средство отслеживания проблем для какого-то репозитория, верно?

person Adriano Carneiro    schedule 31.03.2011
comment
разве это не похоже на мою текущую ситуацию? Если я приму ваше решение, вместо того, чтобы изменять отдельные перехватчики после фиксации, мне придется изменить отдельный сценарий интеграции. Или мне что-то здесь не хватает? - person Habib Ullah Bahar; 01.04.2011
comment
Я думал, что это то, что вы ищете (изменение только в одном месте один раз, и изменение доступно для всех репозиториев), так как вы искали единственную ловушку после фиксации для всего репозитория. AFAIK, решение, которое мы используем здесь, максимально близко к этому. Надеюсь, это поможет. - person Adriano Carneiro; 01.04.2011