私はこの質問に本当に遅れた疑似回答を追加するつもりです。なぜなら、私を含めて多くの、多くの人々がMercurialを使っている人が、私たちが持っていたいと思っているものと期待しているもの、 svnプロパティのようなツール。
私が知る限り、Mercurialの拡張はありません。まだ。
はい、Mercurialの方法はファイルとファイルのみを追跡するようです。そのような拡張を行うには、repo/.hg *ファイルに必要なメタデータを置くことが正しいかもしれません。
OK。私はそのことに取り組んできました。ツールを書く前に手作業でやっています。
バージョン管理された.hgファイルアプローチの弱点は、非先端バージョンをチェックアウトすると、 "hg update -r OLD-VERSION"を実行すると、旧バージョンのメタデータが取得されます。
私は重要なことは、メタデータを... repo/.hg *ファイルに入れることです。
ほとんどの操作は、このようなファイルの最新バージョンで実行する必要があります。私。私はそのようなメタデータファイルはバージョンを超越している、つまりバージョン管理されたいと思っていますが、理想的な状況では、古いバージョンのファイルをチェックアウトしている可能性がある通常のバージョンファイルに重ねて表示されます。
さらに、多くの場合、そのようなメタデータファイルの分岐を別々に処理する必要があります。例えば。すべてのブランチの説明を一緒に書き込もうとしているファイルを想像してください。おそらく、 "branch1.1はbranch1のより新しいバージョンです"のように、ブランチを比較します。その説明がどちらのブランチにも存在することは望ましくありません。むしろ、両方のブランチに同時に、同時に、両方のブランチに変更が反映されるようにする必要があります。
このような推定拡張子は、 "hg cat -r tip ... repo/.hg-my-new-metadata"のいずれかで動作します。あるいは、バージョン管理されたファイルを通常のバージョンの超過メタデータファイルでオーバーレイすることになります。
私はsubreposでこれを行うにいくつかの進歩を遂げている。
superrepo
files // normally-versioned-files <-- a subrepo
metadata // version transcending metadata <-- a subrepo
これは私がチェックアウトするので、それはかなりありませんファイル
の古いバージョンと一緒に最新のメタデータをチェックアウトすることができます特定のバージョンのスーパーレポが古いバージョンのメタデータ・サブペーポを取得する可能性があります。しかし、少なくとも新しいバージョンはサブバージョンにあります。
私はまた、あなたが隣のsubrepoにメタデータを置くかどうか、ということに注意してください、または同じレポでそれを維持する(ただし、先端に動作)してみましょう、あなたは
hg clone -r OLD-REVISION repo newrepo
を行うことができます問題がありますこれにより、OLD-REVISIONより後でメタデータが取り除かれます。 「OLD-REVISIONはすべてのテストに合格しました」というメタデータを含めます。つまり、OLD-REVISIONに適用される可能性のある最新のリビジョンのメタデータを取り除きます。
同じ問題がhgタグで発生します。
「よく、決してそれをしない」と言う人もいます。残念なことに、これはしばしばリポジトリを「整理」する方法として推奨されます。
Mercurialでこれを避けるのは難しいようです。
水銀メールリストを試しましたか?そこにもいくつかの回答があるかもしれません。 (いくつかのMercurial開発者だけがSOにあり、悲しいことにすべてではありません)。 – Macke