Mercurial - нужно ли объединять.hgtags?

Если вы объединяете изменения из хранилища B в хранилище A, следует ли объединять изменения в.hgtags?

В репозитории B могли быть теги 1.01, 1.02, 1.03, которых нет в A. Почему вы бы вообще слили их в файл.hgtags репозитория A? Если бы мы объединились, а затем попытались просмотреть хранилище A, посмотрев на тег 1.01, я бы подумал, что это не сработает.

2 ответа

Решение

Краткий ответ: это работает правильно, и вы должны объединить .hgtags

Почему вы должны слить .hgtags и почему это имеет смысл?

Так что у тебя есть

  • Repo A с изменениями 3 (a1), 4 (a2), 5 (a3)
  • Repo B с ревизиями 3 (b1), 4 (b2), 5 (b3), тег 1.01

Вышеприведенное перечислено как тег Номер изменения (длинный уникальный шестнадцатеричный идентификатор)

Таким образом, вы объединяете репо B с Repo A и получаете что-то похожее.

      9 (a4) merge 
     /   \
    |   8 (b3) tag 1.01
    |    |
    |   7 (b2)
    |    |
    |   6 (b1)
 5 (a3)  |
    |    |
 4 (a2)  |
    |    |
 3 (a1)  |
     \   /
     2 (a0) 

Если вы обновите репо до тега 1.01, вы получите именно то, как выглядел код в тот момент времени, когда он был в Репо Б, точно так же, как ртутные обещания.

Вы должны объединить их, так как наборы изменений из Repo B, которые были помечены, теперь являются частью дерева наборов изменений в Repo A, поэтому поэтому наборы изменений, которые вы пометили в Repo B, теперь помечены в Repo A. Не объединение их просто приведет к потере теги, которые вы создали для наборов изменений.

Интересная вещь, которую нужно знать (из ртутной вики)

"Эффективные" теги взяты из файлов.hgtags на заголовках всех ветвей. Теги, ближайшие к подсказке, имеют приоритет.

Поэтому, когда вы объединяете (объединяете две головы), вам нужно объединить .hgtags или некоторые теги исчезнут.

Другие вопросы по тегам