Поиск коммитов, создающих новые ветки в Mercurial - PullRequest
2 голосов
/ 01 октября 2019

Я пытаюсь написать некоторые процессы автоматизации, связанные с ртутным хранилищем. Одна из вещей, которую я хотел бы иметь, - это определить коммиты, которые создали новые ветви. Я не могу найти простой способ сделать это.

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

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

1 Ответ

1 голос
/ 02 октября 2019

Первая итерация (пока не работает, как было запрошено: вернуть «больше, чем нужно» наборов изменений, обрабатывать только именованные ветви без анонимного / полностью легально в HG /) из revset для журнала:

children(branchpoint()) - merge() - branch(default)

Для такого довольно обычного дерева я до сих пор не могу написать последнюю часть revset (исключить ревизии в «?») И подумать о revset () в шаблоне для фильтрации «плохих потомков» на этапе вывода

Test-repo Tree

Вторая итерация, простая как «один, два, три»

Я был очень глупым и тупым, когда ярешение на основе витой ревсеты. Я видел это, потому что

hg log -T"{ifeq(p1.branch, branch,'','{myrev}: {sob}')}"

(где последняя часть ifeq() - просто моя пользовательская строка с некоторыми [templatealias] для забавы) делают трюк

>hg log -T"{ifeq(p1.branch, branch,'','{myrev}: {sob}')}"
r4: New branch detected - two
r2: New branch detected - one

иреальный кандидат на псевдоним.

Приветствуется тестирование на реальных репозиториях

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