2014-11-14 2 views
3

В Mercurial, я хочу построить журнал изменений всех сообщений фиксации для ревизий моей ветви stable. В настоящее время я использую:С Mercurial, как вы hg регистрируете ветку с предками кросс-ветви?

hg log -r <oldid>::<newid>

где пересмотр идентификатор ревизии из последнего времени мы вытолкнули код, и stable «s наконечник. Это отлично работает для изменений кода, которые находятся только на ветке stable, но если я слияю другой филиал (например, новую основную версию с собственной ветвью развития), все эти сообщения commit опущены! Вместо этого я получаю только 1 фиксацию, из которой она объединяется в stable. Я хотел бы каким-то образом (желательно w/hg log), чтобы увидеть их.

Я НЕ хочу, чтобы какие-либо «неопубликованные» коммиты в этом списке, т. Е. Совершаются на любых ветвях, которые не были объединены в stable.

Вот пример того, что я ищу: HG Graph example

В этом примере, последний толкнул пересмотр 540. Из-за этого, я ничего на 540 или ниже, не хотят. Есть несколько филиалов в default и обратно в stable, и я хочу все это (539, 541-557 в зеленом цвете). Однако есть некоторые изменения, которые НЕ объединены обратно в stable (558-563), которые я хочу опустить. Обратите особое внимание на версию 539; он не был объединен с stable, когда было опубликовано 540, и поэтому не было включено. Но теперь он с тех пор был объединен с stable, поэтому я хотел бы включить его!

Любые советы, которые вы, ребята, были бы весьма благодарны. Благодаря!

ответ

5

Не 100% уверены, что если это будет работать:

hg log -r '::stable - ::540' 

Я неопределенный об этом, потому что я бы подумал, что команда, которую вы предоставили, в основном правильная, за исключением ревизии 539. Вы не проходите -b stable по hg log по ошибке, не так ли?

+0

Именно так! Благодаря! – DOOManiac

+0

Да, это правильный способ сделать это: вы хотите, чтобы все, что попало в стабильную (':: stable'), кроме вещей, уже опубликованных' - :: 540'. –

3

Посмотрите на revsets. Кевин отправил короткую форму, что вы хотите - вот длинная форма:

hg log -r "ancestors('stable') and not ancestors(540)" 

Revsets невероятно мощный, и вы можете просто ввести их в фильтр бар TortoiseHg.