Допустим, у меня есть более 50 веток функций в Mercurial. Если я сделаю:
hg tag some-tag
в одной из ветвей функций он, кажется, распространяется на все ветки. Независимо от того, в какой функциональной ветке я нахожусь, hg tags
покажет все теги. Это все хорошо и хорошо. Но если я сделаю hg log
, он скажет мне, что набор изменений, содержащий изменение на .hgtags
, произошел в определенной ветке:
changeset: 4:ea48c727fbcd
branch: feat1
tag: tip
user: Daniel <[email protected]>
date: Mon Dec 21 20:15:11 2015 +0100
files: .hgtags
description:
Added tag feat-1.0 for changeset 3c81a17d4b31
Как Mercurial обеспечивает синхронизацию .hgtags
во всех ветках? Я прочитал Дизайн тегов Mercurial, но там не упоминается никаких подробностей.
Причина, по которой я спрашиваю, заключается в том, что мы используем Rhodecode для Mercurial на работе, и это распространение, похоже, значительно отстает, когда оно находится под большой нагрузкой.
Это отставание действительно раздражает, так как я вижу последний тег в файле .hgtags
, но hg tags
не отображает последний тег. Создание еще одного тега иногда решает проблему (и, возможно, это ошибка в Rhodecode), но я хотел бы знать, как это работает, чтобы лучше понять лежащий в основе механизм.