6

特定のファイルへのすべての変更を見つけるために、TortoiseHg (または他の可能性が存在しない場合は単純な hg) を使用する方法を探しています。

リビジョン セット クエリを使用してみました merge() and file("path/to/filename.cs") が、探しているものが得られませんでした。空のセットを返します。これは、merge()マージを返すfile()だけで、非マージを返す (ように見える) だけであるため、交差点が空であるためだと思います。

私も試してみましたが、それは (との和集合のように見えます) とmodifies(pattern)十分に異なるfile(pattern)ようには見えません。要素をまったく返しません。file()adds()modifies()contains(pattern)

では、特定のファイルが何らかの方法で変更された変更セットのリストを取得することは可能ですか?

4

3 に答える 3

4

「私の変更がどのようにしてこのブランチに入ったのか」という問題に直面しているようです。変更セットをブランチにマージすると、Mercurial はそれを変更として記録しません。代わりに、マージされた変更セットが宛先ブランチの一部になったことを通知します。マージがファイルが変更されたことを示すのは、マージの競合があった場合のみであり、その結果、新しい変更セットが作成されます。

どのマージが変更セットをブランチにもたらしたかを見つけることは、2 段階のプロセスです。まず、関心のある変更が発生した変更セットを見つける必要があります。

 hg log -r "file('<PATTERN>')

そのリビジョンを取得したら、宛先ブランチで最初の子孫変更セットを見つけます。

hg log -r "first(branch(<BRANCH>) and descendants(<REVISION>))"
于 2013-07-04T04:05:57.310 に答える
0
hg log grep name_of_your_file

特定のファイルに変更をもたらしたすべての変更セットを見つけるという点で、私にとってはうまくいきます。もちろん、きれいなものが欲しい場合:

thg log name_of_your_file
于 2013-07-04T09:12:25.940 に答える
0

hg log -r "branch(BRANCH) and file('PATTERN')"

Revset を使用して、THG Workbench の Filter Toolbar に入力することもできます

于 2013-07-03T21:35:34.090 に答える