2012-03-26 7 views
13

任意の2つのチェンジセットの間で変更されたファイルのリストを取得するにはどうすればよいですか?Mercurial: "hg diff"ファイルをリストする

# files where something has been added 
hg diff -r AA -r BB|grep -- +++|cut -f1|cut -d/ -f2- >/tmp/ka 

# files where something has been removed 
hg diff -r AA -r BB|grep -- ---|cut -f1|cut -d/ -f2- >>/tmp/ka 

# filtering out "dev/null": it appears when a file is added or removed from the repository 
sort -u /tmp/ka |grep -v dev/null 

たぶん私は気付かなかったのMercurialのコマンドがあります:

私の唯一の推測では、このような恐ろしい何かがありますか?


NOT単一のチェンジセットの変更されたファイル。
編集:私はの.diffが何であるかを理解していない青銅器時代からいくつかのプログラマーで働いているので、私はこれを行う必要があり、私と一緒にクマ...

+0

してください、イタリア語で書きます。 「2つの任意のチェンジセットから変更された」は、予測できないノイズと誤解の部分です。 2つの間、またはこれらの2つだけ? –

+1

チェンジセットごとのレポチェンジセットで何が起こったのかを確認しようとしています.1つのファイルの差分ヒストリーを変更ごとに調べるのと同じです。 –

+0

変更セットAAとチェンジセットBBの間でファイルが変更されました。 "hg diff -r AA -r BB"のようなものだが、ファイル名は、diff全体ではなく、コマンドラインで示唆したものである。 –

答えて

30

hg diff -r 182 -r 193 --stat

または下さい

hg status --rev 182:193

+0

ああ、ありがとう、それだ! –

+0

'--rev'と' -r'は私のシステムで同じように動作します...それは2012年のバグでしたか? – mpen

+0

今のところ固定されているようです。 –

0

ソリューション1。差分ベース

>hg diff -r 3 -r 4 --stat 
comments.php | 14 +++----------- 
functions.php | 15 +++++++++++++-- 
header.php | 2 +- 
readme.txt | 17 ++++++++++++++--- 
sidebar.php | 43 ++++--------------------------------------- 
style.css  | 18 ++++++++++++------ 
6 files changed, 47 insertions(+), 62 deletions(-) 

"|"でグリッピングして変更したファイルを取得できます。文字、または正確に4つのフィールドとレコードの$ 1

ソリューション2を印刷、gawkへのパイプ出力、(私のPOVからより良く、よりよいアプローチ)。ログ+テンプレート+ revsets

>hg log -r "3::4" --template "{file_mods}\n" 
footer.php functions.php header.php search.php style.css 
comments.php functions.php header.php readme.txt sidebar.php style.css 

リストに変換、(可能な)重複を削除私は、ファイルの状態について何かを知りたいときに調べるための基本的なコマンドがhg statusあるあなた

8

のために残しておきます。 statusコマンドはというファイル名の指向のコマンドであり、いくつかのファイル名を知りたいとします。

あなたは

$ hg status 

としてそれを実行すると、それが作業コピーの親リビジョン(.)で作業コピーの状態を比較します。あなたは

$ hg status --rev AA:BB 

として、それを実行した場合でも、それはAABBの間で変更されたファイルが表示されます!グレープ、カット、ソート、テンプレートの必要はありません。

(私はherehere、およびhere前にこれを説明しましたが、より多くのヒントについてはこれらの質問と回答をご参照ください。)

+0

"-r --removedは削除されたファイルのみを表示する"ため、-rとはうまく動作しません。 –

+0

@asaddude:ups!申し訳ありませんが、代わりに '--rev'を使用するように修正しました。 –

関連する問題