Как мне перечислить ветви, созданные определенным пользователем в Mercurial? - PullRequest
5 голосов
/ 23 апреля 2019

Не так много, чтобы добавить к названию. hg branches --help --verbose не показывает ничего полезного, хотя я не уверен, что пользователя можно показать с помощью опции --template (в этом случае могут помочь такие инструменты, как grep). Или, может быть, я смотрю не в ту сторону?

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

Ответы [ 2 ]

4 голосов
/ 23 апреля 2019

Bashism @Jello довольно хорош, но ... это bashism.

Некоторые шаги (не готовые к использованию решения) почти до чистого стиля hg

  1. Перечитайте hg help revsets + hg help templates

Все начальные точки ветвей (именованные и анонимные) являются дочерними точками ветвей.Все ревизии имеют авторов.Поскольку в каждой ветви может быть любое количество точек ветвления (а каждая точка ветвления означает 2 ветви дочерних элементов), побочные имена могут быть продублированы при выводе предлагаемой команды (и мне лень ее очищать)

Задача 1 - найти все начальные ревизии веток

-r "children(branchpoint())"

Задача 2 - вывести только ветку и автораchangeset

--template "{branch} - {author}"

полная команда (T1 + T2, все ветви всех пользователей), что-то вроде этого

hg log -r "children(branchpoint())" --template "{branch} - {author}\n"

в качестве запускаpoint.

Вы можете:

  • добавить ifeq логику в шаблон (не печатать "старое" фирменное имя для наборов изменений с помощью branch(r)=branch(p1))
  • добавить ANDedвведите "USER" в revset, определите полную команду как параметризованный псевдоним и получите готовое к использованию совместное решение
1 голос
/ 23 апреля 2019

Попробуйте цикл bash следующим образом:

for branch in $(hg branches -q); do hg log -r "branch($branch)and 0:" -u "username" -l 1; done

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