В Mercurial, как увидеть теги только для набора изменений вместо всех?
-
12-10-2019 - |
Вопрос
hg tags
Всегда показывает все теги, так как я могу получить только те теги, которые указывают на конкретную ревизию и всех его предков?
В случае использования реального мира заключается в том, что, если я использую локальные теги для обозначения функций (или исправлений ошибок) на сменных сетях, и мне нужно выяснить совокупные функции/ошибки до определенного оборота.
Одним из решений будет добавление команды обертки, которая добавляет "-r" tags
. Анкет Тогда как лучше всего его реализовать? Используйте Revsets, чтобы получить все исконные обороты и отфильтровать теги?
Решение
Это должно сделать свое дело (требует Mercurial 1.7):
hg log -r "ancestors(<rev>) and tag()"
куда <rev>
это хэш или местный номер ревизии. Тем не менее, помечение каждого аппарата и функции кажется излишним.
Вместо того, чтобы отметить, вы можете просто следовать соглашению, в которой вы помещаете «Bugfix: XYZ» или «Функция: ABC» в сообщения о своих коммита. Затем вы можете извлечь все аппараты и функции, подобные этим:
hg log -r "ancestors(<rev>) and (keyword(bugfix) or keyword(feature))"
Сохраняйте теги для важных этапов или других изменений, которые имеют особое значение.
Другие советы
Если я правильно вас понимаю, вы хотите:
- Укажите ревизию
- Отфильтруйте журнал только на то, что меняет + все его предки
- Извлеките все теги, которые есть в этих сменах
Вы можете сделать это, если сможете ограничить себя меткой имена:
hg log -r "ancestors(HASH)" --template "{tags}"