Нет прямого эквивалента (или, если есть, я хотел бы знать :-)).
Некоторые из них просто потому, что некоторые вещи не применяются в Mercurial, где любое данное коммитирование относится к одной и только одной ветви, а hg log
по умолчанию показывает все фиксации на всех ветвях. Точно так же нет такой вещи, как HEAD
: существует текущая ветвь и текущая фиксация, которую вы можете назвать веткой .
или ревизией .
. Они функционируют как HEAD
, за исключением того, что они не могут быть анонимной ветвью.
Невозможно просмотреть удаленный отдельно, так как нет ветвей дистанционного отслеживания. Либо у вас есть какие-либо входящие коммиты (hg incoming
ничего не печатает), так что он уже будет в выводе журнала, или вы этого не сделаете (поэтому вы должны запустить hg pull
, обычно без -u
, чтобы получить его, , чтобы его увидеть).
Ток фиксации показывается в hg log -G
(ака hg glog
) выводится как @
вместо o
, так что, как вы его идентифицировать.
Вот что я использую (не вполне удовлетворительным, и я всегда скучаю топографическую-сортировочный):
[alias]
# lga comes from
# http://jamie-wong.com/2012/07/11/my-mercurial-setup-and-workflow-at-khan-academy/
lga = glog --style ~/.hgstuff/map-cmdline.lg
URL-адрес по-прежнему работает в данный момент, но вот содержимое моего map-cmdline.lg
файла. Обратите внимание, что цвета жестко закодированы; в то время я написал это, hg
не назвали цвет слова (возможно, до сих пор нет, я довольно из даты новейших ¯hG обновлений):
changeset = '\033[0;31m{rev}:{node|short}:{phase} {branches}{bookmarks}{tags} \033[0;34m{author|person}\033[0m\n{desc|firstline|strip} \033[0;32m({date|age})\033[0m\n\n'
changeset_verbose = '\033[0;31m{rev}:{node}:{phase} \033[0;34m{author|person}\033[0m {desc|firstline|strip} \033[0;32m({date|age}) {branches}{bookmarks}{tags}\n\n'
start_branches = ' '
branch = '\033[0;32m{branch}\033[0m'
start_bookmarks = ' '
bookmark = '\033[0;32m[{bookmark}]\033[0m '
last_bookmark = '\033[0;31m[{bookmark}]\033[0m'
start_tags = ' '
tag = '\033[0;32m{tag}\033[0m, '
last_tag = '\033[0;32m{tag}\033[0m'
Обратите внимание, что существует незначительный недостаток здесь, если вы попытаетесь приравнять некоторые рабочие процессы Hg с эквивалентами Git или наоборот. В частности, hg incoming
может перечислить 5 коммитов, затем hg pull
может извлечь 12 из этих 5, потому что кто-то нажал еще 7 между этими двумя шагами.Разделительные разъемы Git's fetch
шаг и дистанционное отслеживание решают это для вас. Другой метод борьбы с ним, который я использовал некоторое время по другим причинам, заключается в том, чтобы сохранить локальный промежуточный репозиторий Mercurial для pull и push из общего.
То есть, если мы обозначаем репо U как вверх по течению общего хранилища, мы сделать клон я локально, то клон я в W для выполнения работы. Затем мы обновляем I (используя hg pull -u
), затем просмотрите hg incoming
(и hg outgoing
) в W для скорости и согласованности. Лучше всего нажать прямо от W до U, чтобы избежать суеты с фазами фиксации, но это боль по другим причинам. Я никогда не находил по-настоящему удовлетворительную настройку и оставил промежуточный репозиторий всякий раз, когда я работал на месте: это было больше для работы с медленными сетями.
Просто к сведению - Mecurial * есть * именованные цветы сегодня, но: очень ограниченный набор (по крайней мере, в Win-консоли) с 'наклейкой()' , образец из моего картографического файла, датированный мартом 2016: 'changeset =" {label ('red', rev)} {label ('blue', author | person)} {desc | firstline | strip} {label ('green ', date | age)} {label (' yellow ', branch)} {label (' yellow ', bookmarks)} {label (' yellow ', tags)} \ n \ n "' –
Откуда вы взяли эти ' changeset_verbose' и 'start_branches'? Когда активируется? –
@RobertSiemer: в общем случае X применяется к 'log', а X_verbose относится к' log -v'. Имена start_foo испускаются до любого из имен foo, но только если вызывается какое-либо из имен foo. Я выбрал их из разных мест, я не уверен, насколько хороша документация, или сейчас. – torek