Mercurial に 50 以上のフィーチャー ブランチがあるとします。私が行った場合:
hg tag some-tag
機能ブランチの 1 つで、すべてのブランチに伝播しているようです。どの機能ブランチにいるかに関係なく、hg tags
すべてのタグが表示されます。それはすべて順調です。しかしhg log
、そうすると、変更を含む変更セットが.hgtags
特定のブランチで発生したことがわかります。
changeset: 4:ea48c727fbcd
branch: feat1
tag: tip
user: Daniel <xxxx@yyyy.com>
date: Mon Dec 21 20:15:11 2015 +0100
files: .hgtags
description:
Added tag feat-1.0 for changeset 3c81a17d4b31
Mercurial はどのよう.hgtags
にすべてのブランチ間で同期を維持していますか? Mercurial Tag Designを読みましたが、詳細については言及されていません。
私が尋ねている理由は、仕事で Mercurial 用の Rhodecode を使用しており、負荷が高いとこの伝播が大幅に遅れるように見えるからです。
.hgtags
ファイルに最新のタグが表示されますが、最新のタグが表示されないため、この遅延は非常に厄介ですhg tags
。さらに別のタグを実行すると問題が解決する場合があります (Rhodecode のバグかもしれません) が、基になるメカニズムをよりよく理解するために、これがどのように機能するかを知りたいです。