4

Git コマンドの同様の出力を取得したい:

$ git whatchanged <old_rev>..<new_rev> --pretty=oneline --name-status

私はそれが役立つことを読みましたhg outgoingが、ヘルプページにはリビジョンに関連するものは何もありません:

$ hg diff <old_rev>..<new_rev>違いを与えましたが、出力は次のとおりです。

diff -r d3ed0d3eb928 -r 63329069147f hello.rb
--- a/hello.rb  Tue Jul 31 16:52:40 2012 +0530
+++ b/hello.rb  Wed Aug 01 11:15:33 2012 +0530
@@ -1,1 +1,1 @@
-print "Hello"
+print "Hello World"

次のようなものが必要ですが:

bb3b9a6bc00b7203ab6491dbd062641fa60efb95 Fix for #4 and other small errors
M       .gitignore
A       config.ru
D       db/database.db
M       views/setup.haml
1c4ff29e5c7fc707c6fe314c060cd1935b300dd9 Added keyboard shortcuts and reload
M       README.md
A       public/javascript/keys.js
d0755d0b54cb4129fbf7730fe0bdf21a3996e224 Basic player completed
M       README.md
D       public/javascript/jquery-ui-1.8.21.custom.min.js
...

私が得るgit whatchanged 1c4ff29e5c7fc707c6fe314c060cd1935b300dd9 bb3b9a6bc00b7203ab6491dbd062641fa60efb95 --pretty=oneline --name-status

4

3 に答える 3

2

あなたはそのchangelogスタイルを試してみることができます。もちろん、まったく同じようには見えませんが、コミットによって変更されたファイルが一覧表示されます。これは、あなたが探しているものだと思います。例:

hg log --style changelog
hg outgoing --style changelog

そして、Christianが言ったように、テンプレートを使用して正確な出力を無限大にカスタマイズできます。詳細については、を参照してくださいhg help templating

于 2012-08-01T10:31:55.020 に答える
1

変更されたファイルを取得する方法を探しているが、フォーマットが git のようであることをあまり心配していない場合は、通常は差分を出力するコマンドの diffstat スイッチが非常に気に入っています。

# hg in --stat
# hg out --stat
# hg diff -r <old_rev>:<new_rev> --stat
... and a load more

まったく同じ情報ではありません。変更セットごとではなく、ファイルが追加/変更/削除されたかどうかはわかりませんが、一方で、変更の程度についてある程度のアイデアが得られます。

于 2012-08-01T16:26:59.200 に答える
1

hg logこれに使用して、テンプレートで出力をカスタマイズできます。

例:

hg log -r <old_rev>:<new_rev> --template "{node} {desc}\n{files}\n\n"

これは、Git の例に似ています。
ただし、ファイルのリストは同じようには見えません (改行はありません)。

自分で試したことはありませんが、出力をスタイルでカスタマイズすることもできます(テンプレートに似ていますが、スタイルをファイルに保存し、名前で参照するだけです)。
これに関するドキュメントは、ページの下部にある、上で投稿したのと同じリンクにあります。
どうやら、ファイル間に改行を入れることも可能です (ページに例があります)。

于 2012-08-01T09:30:30.440 に答える