2013-07-25 2 views
7

Теперь я получаю исходный код ВИМ по Mercurial (hg):Как узнать текущий тег Mercurial?

[email protected]:/work/ABC/VIM_HG# hg tags |more 
tip        5228:3f65dc9c8840 
v7-4a-039      5227:a08fa2919f2b 
v7-4a-038      5225:8f983df0299f 
v7-4a-037      5223:91d478da863e 
v7-4a-036      5221:9982ec574beb 
v7-4a-035      5218:4ceacc1b0054 
v7-4a-034      5216:947edb6335d1 
v7-4a-033      5214:fa024ce48542 
v7-4a-032      5212:2741b46e96bf 
v7-4a-031      5210:839ebe7c1b2f 

затем

[email protected]:/work/ABC/VIM_HG# hg update v7-4a-018 
216 files updated, 0 files merged, 0 files removed, 0 files unresolved 

После нескольких часов, как я знаю, какой тег я работал?

Есть ли какая-то команда Mercurial сообщить текущую информацию об этом теге?

+1

Заметьте, что вы на самом деле не «работает на теге». Тег является фиксированным положением в истории, а не тем, над чем вы работаете. Возможно, вам нужны закладки? –

ответ

17

Последние теги в предках, используя журнал и шаблонов

hg log -r "." --template "{latesttag}\n"

15

Если вы уверены, что вы на меченых ревизии, просто используйте:

hg id 

Это покажет ревизии хэш и любые тэги (и название филиала, если она существует).

Если текущая версия не имеет тег, и вы хотите, чтобы найти ближайший помеченный предка, вы можете вместо этого использовать:

hg id -r 'ancestors(.) and tag()' 

или эквивалент, но короче:

hg id -r '::. and tag()' 

Оба работая путем нахождения пересечения всех предков и всех помеченных ревизий.

Вы также можете посмотреть на выходе hg log -G, чтобы выяснить, где вы (текущий узел в графе ревизий будут отмечены '@' вместо 'o'), а затем найти ближайший тег.

+0

revset должен быть 'ancestorS (.) И tag()' и лучше, потому что AND также производит revset (не одну ревизию) 'last (ancestors() и tag())' –

+0

Исправит 'ancestors()' typo , но 'last()' должен быть неявным в 'hg id'. –

+0

В моей среде работает только hg id. другие два всегда сообщают об ошибке «прервать: неизвестная ревизия XXX» – harris

Смежные вопросы