В Mercurial repo я могу запустить hg up {revision}
, чтобы изменить ревизию моего рабочего каталога, но какую команду я могу запустить, чтобы узнать, какую ревизию я ищу?
Как я могу найти свою рабочую ревизию в меркуриальном
Ответ 1
Эта команда:
hg parent
Ответ 2
В дополнение к hg parents
вы можете использовать hg summary
, чтобы получить самую важную итоговую информацию о вашем текущем состоянии. Это выглядит так:
% hg summary
parent: 13051:120eccaaa522 tip
encoding: fix typo in variable name
branch: default
commit: 2 unknown (clean)
update: (current)
mq: 20 unapplied
и сразу рассказывает мне, что я в редакции 13051, что я на ветке по умолчанию с чистой рабочей копией (хотя есть 2 файла без следа). Это верхушка ревизии в моем репозитории, поэтому обновление ничего не сделает. Наконец, у меня есть 20 непримененных патчей MQ.
Ответ 3
hg identify
(или hg id
для краткости) напечатает (сокращенный 12-символьный идентификатор) родительских хэшей и +
, если в вашей рабочей копии есть какие-либо незавершенные изменения.
Чтобы получить полные хэши, вы можете использовать hg identify --debug
вместо этого.
Ответ 4
Другой вариант - включить расширение graphlog, затем запустите hg glog
. Вы увидите такой вывод (помните, что я использую шаблон для изменения вывода):
o changeset: 200:c8c281cf0a6d
|\ branch: craig-aspinall
| | tag: tip
| | parent: 199:1a692f3b9134
| | parent: 187:2d0e0ed9d31c
| | user: Craig Aspinall
| | date: Tue Nov 23 21:36:30 2010 +1000
| | summary: Merged latest changes
| |
| o changeset: 199:1a692f3b9134
| | branch: craig-aspinall
| | parent: 123:1dc90c9b7ede
| | user: Craig Aspinall
| | date: Tue Nov 23 21:35:22 2010 +1000
| | summary: Final solutions to L04
| |
| | @ changeset: 198:78b488c2607d <==== This is where I am currently.
| | |\ branch: OJ
| | | | parent: 119:70ec3d9e4d3a
| | | | parent: 197:44bac809d37d
| | | | user: OJ Reeves
| | | | date: Tue Nov 23 20:19:07 2010 +1000
| | | | summary: Merged with the mainline
| | | |
| | | o changeset: 197:44bac809d37d
| | | | user: Tony Morris
| | | | date: Tue Nov 23 18:40:03 2010 +1000
| | | | summary: Started parallel anagrams
| | | |
| | | o changeset: 196:92241b51970b
| | | | user: Tony Morris
| | | | date: Tue Nov 23 17:52:32 2010 +1000
| | | | summary: Started parallel anagrams
| | | |
node/версия с символом @
находится там, где вы находитесь.
Ответ 5
Самая конкретная команда, отличная от DEPRECATED, которая из-за наличия --template
может печатать только информацию о ревизии, если требуется такая лаконичность (как это подразумевается в вопросе):
hg log -l 1 -b . -T '{rev}:{node|short}\n'
Или:
hg log -l 1 -b . -T '{rev}\n'
Или:
hg log -l 1 -r . -T '{rev}\n'
Или для уникальной длинной формы хэша:
hg log -l 1 -r . -T '{node}\n'
-b .
или branch(.)
(точка для имени ветки) означает текущую ветку рабочего каталога и -r .
означает текущую версию рабочего каталога, которая документально в hg help revsets
и hg help revisions
.
Обратите внимание, что если существует uncommitted merge, .
(точка) отображает только первый родитель двух родителей рабочей группы.
Ответ 6
Это также поможет,
hg log -v -r `hg id -i`