web-dev-qa-db-ja.com

hgバージョン間で変更されたファイルのリストの生成

Mercurialの特定のディレクトリにある2つのリビジョン間で変更されたファイルのリストを生成したいと思います。

特に、私はwhat変更には興味がありませんが、which filesはそのディレクトリで変更されました。

たとえば、thenotherthenの間で、2つのファイルのみが変更されたと仮定すると:

>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>

架空のコマンドは何ですか? diffとlogを試しましたが、どうすればそれらを実行させるかわかりません。patch(diff)を取得するか、repo(log)全体を取得します。

116
Paul Nathan
hg status --rev x:y

ここで、xおよびyは、目的のリビジョン番号(またはタグ名またはブランチ名)です。

Windowsでターミナルを使用している場合は、hg status --rev x:y> your-file.txtリストをファイルに保存します。

162
alemjerus

statusが必要です。

ただし、「2つのリビジョン間」の意味に応じて、「x :: y(DAG-Directed Acyclic Graph)」の範囲を使用することも検討できます。

並行チェンジセットが与えられると、

1--2---4 \---3

hg status --rev 1:4は、(1,2,3,4)、つまりローカルの数値revに従って、エンドポイント間およびエンドポイントを含むすべてを返します。これは、他の-関連している-リポジトリで異なる結果を返す可能性があります(ほとんどの場合はそうなります)!

hg status --rev 1::4は(1,2,4)、つまりエンドポイント、および(1)の子孫および祖先 '4'の。

後者の場合、x :: yは通常、実際のアプリケーションでより便利です。これはTortoiseHg\Visual Diffを介して取得するものです。


> hgヘルプリビジョン:

"x :: y" DAG範囲。xおよびy自体を含む、xの子孫でありyの祖先であるすべてのチェンジセットを意味します。最初のエンドポイントが省略されている場合、これは「ancestors(y)」と同等です。2番目のエンドポイントが省略されている場合、「descendants(x)」と同等です。

14
martind2112