2014-09-08 3 views
1

Можно ли определить, создает ли фиксация новую закладку или ветку через крючки в .hgrc?Обнаружение создания ветвей или закладок в HG

Я пытался увидеть, если я могу узнать с помощью журнала рт.ст., но это только показывает, на какой ветви/закладки фиксации создан: http://hgbook.red-bean.com/read/customizing-the-output-of-mercurial.html

Там, кажется, не быть крючки для него: http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html

Было бы разумно, я полагаю, что для этого нет крюка, потому что также невозможно сделать фиксацию, которая является «просто», создание ветки, указывающей ветви/закладки, существует только при добавлении к конкретная фиксация.

Я понял, что могу проверить ветви hg и закладки hg до и после каждой фиксации и определить, какие удалены и добавлены, но есть ли более чистый способ обнаружения ветвей/закладок добавляет/удаляет?

ответ

0
  1. закладка
    • Закладка-обработка не требуют фиксаций
    • Закладка может быть создана | модифицирована для любой ревизии в истории, а не только для текущего
    • Закладки (ы) может отображаются как результат обмена данными (pull | push), а не действия локального пользователя
    • Только часть всех возможных случаев может быть покрыта крюком
  2. Отрасль
    • Изменения ветвь всегда отражается в фиксации
    • филиала в ревизии может отличаться от филиала родителей не только как результат hg branch (см «слияние ветвей» и «mergesets») - и убежища I «т красиво и легко и готовые к использованию решения для этого случая
  3. Общие замечания
    • вы с использование стандартный precommit крюк (выполняется до фиксации и может позволить | отключить фиксации) для тестирования различных условий в фиксации или или pretxncommit
    • Mercurial шаблон двигатель имеет ключевые слова для отрасли и закладок для использования в hg log -T
    • В pretxncommit крюке фиксации уже существует, но не завершено - это означает, что вы можете манипулировать с данными совершают, используя родительский -r tip и TIP в любой Mercurial команды

Грязного скелет для тела крючка

hg log -T "{KEYWORD}\n" -r "tip + tip^" | ....

, где СЛОВО могут быть branch или bookmarks. Результат журнала - двухстрочный вывод, который может быть идентичным разным (не уверен для закладки, TBT !!), которые вы должны сравнить (как вы хотите и может)

PS: Идеи вдохновила EnsureCommitPolicy Wiki и Mercurial pre commit hook topic здесь

+0

Обновите ссылку для обеспеченияCommitPolicy по адресу: https://www.mercurial-scm.org/wiki/EnsureCommitPolicy – marcinkuzminski

2

В pushkey и prepushkey крючков может обнаружить добавление, удаление и двигается закладки ,

В hgrc:

[hooks] 
prepushkey=echo %HG_NAMESPACE% %HG_KEY% %HG_OLD% %HG_NEW%\n >> out.txt 

HG_NAMESPACE будет содержать "закладку" и HG_KEY будет содержать имя закладки.

HG_OLD будет содержать хеш фиксации, сделанной закладкой до операции. Он не будет установлен, если создается закладка.

HG_NEW будет содержать хеш фиксации, которую закладка будет после операции. Он не будет установлен, если закладка будет удалена.

 Смежные вопросы

  • Нет связанных вопросов^_^