Каков эквивалент Mercurial для отображения коммитов в одной ветке, а не в другой? - PullRequest
9 голосов
/ 11 октября 2011

В git я могу сделать следующее:

git log foo ^bar

для отображения наборов изменений в ветви foo, но не в ветви bar. Есть ли способ сделать это в Mercurial?

Редактировать: Чтобы объяснить немного больше случай использования. Скажем, у меня есть филиал в Mercurial (назовите его foo), который имеет ответвление от default. Что я хочу знать, так это то, что коммиты находятся в ветке foo и поэтому не были объединены с default. Возможно, я думаю об этом неправильно, но в git я мог бы начать работать с foo, объединиться с master, а затем поработать еще над foo и использовать команду выше, чтобы увидеть, какие коммиты еще не были быть объединенным.

Таким образом, конкретный вариант использования - это знание, завершена ли ветвь и объединена с дефолтом. Используя Mercurial, если я запускаю ветку foo с default для работы с одной функцией, то оставляю ее там, так что нужно объединить и отделить от foo для создания bar, которая содержит другую функцию, построенную поверх вещей в foo, foo заканчивается неактивностью, потому что bar содержит все наборы изменений в foo, но я могу объединить только наборы изменений в foo, потому что я знаю, что они хороши, в то время как bar все еще в развитии. Надеюсь, это полезно.

Ответы [ 3 ]

30 голосов
/ 11 октября 2011

Попробуйте использовать revsets (hg help revsets)

hg log -r "branch(foo) and not branch(bar)"

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

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

hg log -r "::a and not ::b"

В любом случае, страница справки revsets должна помочь вам начать.

11 голосов
/ 11 октября 2011

Что именно вы подразумеваете под коммитами в ветке foo, а не в bar?Коммиты в основном только в одной ветке ртути.

hg log -b foo  #lists all commits that are in branch foo
1 голос
/ 17 ноября 2014

для отображения наборов изменений в ветке foo, но не в панели ветвей

hg log -r "::foo and not ::bar and ! destination(branch(bar)) and ! origin(branch(bar))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...