Как найти конкретный набор изменений внутри родительских элементов в mercurial

#mercurial

#mercurial

Вопрос:

Я являюсь фоном git и только что перешел в проект, в котором используется mercurial, проекты разветвляются на модели heads.

Прежде чем отправлять данные на наш сервер тестирования, я хочу убедиться, что production head является одним из моих родительских списков. есть ли для этого команда?

Ответ №1:

на самом деле я нашел способ сделать это, используя «revsets» mercurial.

чтобы перечислить всех предков для конкретного набора изменений, мы можем использовать команду

 hg log -r "ancestors(84e5bc6fd673)"
  

теперь, чтобы найти конкретный набор изменений в этих родительских элементах, мы можем использовать функцию сопоставления, как показано ниже

 hg log -r "ancestors(84e5bc6fd673) and id(hh6cjb9c48se)"
  

итак, если hh6cjb9c48se является частью родительских элементов 84e5bc6fd673, он будет напечатан на терминале.

Комментарии:

1. matching() это неправильный выбор. Используйте id() для cset-hash (или используйте hash напрямую)

2. Некоторые улучшения 1) revset можно определить как параметризованный [revsetalias] (без повторного ввода) 2) вы можете форматировать выходные данные с помощью шаблона для более умного представления, что-то вроде (как есть, без параметров и псевдонимов) (TBT!) -T "{ifeq(node, hh6cjb9c48se, 'Found', 'Not found')}n"