Подтвердить что ты не робот

Mercurial: как изменить имя тега

Так же, как гласит: я сделал тэг в меркуриальном.

hg tag release_123

Но позже я узнал, что имя было неправильным, оно должно быть release_124. Можно ли просто переименовать тег или мне нужно создать новый?

4b9b3361

Ответ 1

Я бы сделал это, удалив тег, а затем добавив новый тег с новым именем

Вики-страница Mercurial tag объясняет, как удалить тег:

Как удалить тег?

Либо

  • hg tag --remove tagname

(это ближайший эквивалент cvs tag -d)

  • добавление тэга 000000000000000000000000000000000000000000 до конца .hgtags

  • удаление всех ссылок на тэг в .hgtags(но это может путайте алгоритм разрешения столкновений с несколькими заголовками)

Ответ 2

Вы должны иметь возможность редактировать обычные теги в файле .hgtags (и зафиксировать его)

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

Этот старый поток упоминает, что вам нужно сделать это во всех HEADS репо, хотя.

Ответ 3

Как то, что сказал @matt-ellen, но наоборот. Поскольку мне нравится быть уверенным, что исправление помечено правильно, прежде чем я удалю старый тег.

Здесь я создаю пример репо с 4 ревизиями.

  • Просмотр журнала
  • Просмотр тегов (нет и подсказка)
  • Создайте тег при ревизии # 2 (используя хэш)
  • Просмотр тегов (теперь есть один и подсказка)
  • Создать новое имя тега
  • Просмотр тегов (теперь их два, и подсказка)
  • Удалить имя плохого тега
  • Просмотр тегов (теперь есть один и подсказка)

Пример:

$ hg log

changeset:   3:271cb2836c23
user:        user <[email protected]>
date:        Sat Mar 01 13:49:55 2014 -0600
summary:     Very important things.

changeset:   2:3c953ee62faf
user:        user <[email protected]>
date:        Wed Feb 26 00:17:55 2014 -0600
summary:     Did some changes.

changeset:   1:54e2275eed1e
user:        user <[email protected]>
date:        Tue Feb 25 01:34:31 2014 -0600
summary:     So, lots of things here.

changeset:   0:3f3e1aee4e14
user:        user <[email protected]>
date:        Sat Feb 22 00:42:29 2014 -0600
summary:     Inital project checkin.

$ hg tags
tip          3:271cb2836c23

$ hg tag -r 3c953ee62faf release_123
$ hg tags
tip           3:271cb2836c23
release_123   2:3c953ee62faf

$ hg tag -r 3c953ee62faf release_124
$ hg tags
tip           3:271cb2836c23
release_123   2:3c953ee62faf
release_124   2:3c953ee62faf

$ hg tag --remove release_123
$ hg tags
tip           3:271cb2836c23
release_124   2:3c953ee62faf

Ответ 4

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

Переименуйте тег:

hg tag -f -r

Чтобы удалить старый тег:

hg tag --remove