Mercurial - нужно ли объединять .hgtags? - PullRequest
11 голосов
/ 22 февраля 2011

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

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

Ответы [ 2 ]

12 голосов
/ 22 февраля 2011

Интересная вещь (из Mercurial Wiki )

«Эффективные» теги взяты из файлы .hgtags на головах всех ветви. Теги ближе всего к чаевым старшинство.

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

12 голосов
/ 22 февраля 2011

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

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

Итак, у вас есть

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

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

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

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

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

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

...