Как я могу найти мою рабочую ревизию в Mercurial - PullRequest
58 голосов
/ 02 декабря 2010

В ртутном репозитории я могу запустить hg up {revision}, чтобы изменить ревизию моего рабочего каталога, но какую команду можно запустить, чтобы узнать, на какую ревизию я смотрю?

Ответы [ 6 ]

70 голосов
/ 02 декабря 2010

Эта команда:

hg parent
23 голосов
/ 03 декабря 2010

В дополнение к 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.

15 голосов
/ 02 декабря 2010

hg identify (или hg id для краткости) напечатает (сокращенный 12-значный идентификатор) родительских хэшей и +, если в вашей рабочей копии есть какие-либо незафиксированные изменения.

Для получения полных хешей вы можете использовать hg identify --debug.

4 голосов
/ 02 декабря 2010

Другой вариант - включить расширение 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
| | | |

Узел / ревизия с символом @ - это то, где вы находитесь.

1 голос
/ 13 мая 2016

Это также будет полезно,

hg log -v -r `hg id -i`
1 голос
/ 26 ноября 2015

Наиболее конкретная команда, не являющаяся УСТАРЕВШЕЙ, которая из-за наличия --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.

Обратите внимание, что при незафиксированном слиянии , . (точка) отображает только первого родителя двух родителей рабочей группы.

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