Как у меня может быть рычаг постфиксации, который только называют, когда фиксации сделаны СОЕДИНИТЬ МАГИСТРАЛЬЮ?

У меня есть репозиторий, который имеет следующие каталоги:

  • ответвления
  • теги
  • соединительная линия

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

Это выглядит примерно так:

/usr/bin/svn update /path/to/a/working/copy

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

Существует ли способ, которым я могу изменить или свой сценарий рычага постфиксации или настройку, которую я могу установить, который только обновил бы рабочую копию, если бы фиксация была сделана к магистральному каталогу и не какому-либо другому каталогу?

5
задан Paul Wagland 27 January 2010 в 18:42
поделиться

2 ответа

Как вы можете видеть в в этой документации , параметры передаются в сценарий после коммитария.

Репозиторий проходит два аргумента этой программе: путь к репозитории, а новый номер редакции, который был создан.

Крюк после фиксации может быть любая программа любого типа: скрипт Bash, программа C, сценарий Python ... Что произойдет, в том, что оболочка запускает эту программу с двумя параметрами.

Вы можете найти список интересных сценариев здесь . Хорошее начало будет этот сценарий Python , который использует Python SVN Libs.

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

4
ответ дан 14 December 2019 в 13:36
поделиться

В дополнение к ответу от Bishiboosh , стоит отметить, что крючки могут быть любой программы . То есть, если вы хотите, вы можете написать программу в C . Параметры, которые передаются, описаны в документе .

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

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

Вот другой пример (в Perl), что явно проверяет путь файлов в регионом. Это гораздо более сложный скрипт, но, скорее всего, выделенные детали могут быть вырваны и повторно использованы.

2
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: