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
или некоторые теги исчезнут.