我想得到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
答案 0 :(得分:2)
您可以尝试changelog
样式。它当然看起来并不完全相同,但它确实列出了提交所触及的文件,我认为这是你正在寻找的。例子:
hg log --style changelog
hg outgoing --style changelog
正如Christian所说,您可以使用模板自定义输出到无穷大。有关详细信息,请参阅hg help templating
。
答案 1 :(得分:1)
您可以使用hg log
和customize the output with a template。
示例:
hg log -r <old_rev>:<new_rev> --template "{node} {desc}\n{files}\n\n"
这将与您的Git示例相似 但是,文件列表看起来并不相同(没有换行符)。
我自己从未尝试过,但也可以使用样式自定义输出(类似于模板,但您将样式保存在文件中,只需通过名称引用它)。登记/> 此文档位于我在上面的页面底部发布的链接上 显然,也可以在文件之间放置换行符(页面上有一个例子)。
答案 2 :(得分:1)
如果你正在寻找一种方法来获取哪些文件已经改变,但你并不太担心格式化就像git,那么我非常喜欢在任何通常打印差异的命令上使用diffstat开关。 / p>
# hg in --stat
# hg out --stat
# hg diff -r <old_rev>:<new_rev> --stat
... and a load more
这不是完全相同的信息。它不是每个变更集,也不是说文件是否被添加/修改/删除,但另一方面它提供了一些变化程度的概念。