2010-10-18 102 views
40

git log有一个不错的--format选项来指定如何格式化输出。有没有办法自定义git blame的输出?

但是git blame似乎没有等效,尽管blame的默认输出不太人性化。我希望看到更少。

例如,而不是:

5600cab7 js/sidebar/VehicleGrid.js  (Rene Saarsoo 2009-10-08 18:55:24 +0000 127) if (x > y) { 
b5f1040c js/map/monitoring/VehicleGrid.js (Mihkel Muhkel 2010-05-31 07:20:13 +0000 128)  return x; 

我想有:

5600cab7 Rene Saarsoo (1 year ago)  127: if (x > y) { 
b5f1040c Mihkel Muhkel (5 months ago) 128:  return x; 

我想,我可以写一个脚本来分析的git blame --porcelain的输出,但考虑到可怕的默认输出blame我觉得有人在那里肯定已经做了些什么。

任何想法?或者实现这样的脚本的任何提示?

编辑:通过编写small script解决了这个问题。

+2

您可以随时使用'git的GUI怪':-) – 2010-10-18 14:28:52

+6

嗯,我敢肯定它不会通过SSH工作。 – 2010-10-18 15:47:22

+1

它会工作(至少当双方都使用X窗口),如果你启用** X11转发** ...虽然我不会推荐它,因为它可能会很慢。 – 2010-10-18 18:38:42

回答

2

像Trac系统或管理平台考虑到Web界面集成git blame结果,我想这样的分析已经完成。

可以在此Redmine Defect 3832与此红宝石脚本的例子请参阅:

+0

谢谢,这个来源实际上有帮助。 – 2010-10-18 13:47:09

+0

** gitweb **也包含'blame'(和'blame_incremental')视图,虽然它默认关闭(因为它是CPU猪)。 – 2010-10-18 14:22:57

18

可以使用备用输出格式:git annotategit blame -c

您可以更改日期的格式与--date=<format>选项(或blame.date配置变量),其中<format>相对的,局部的,默认情况下,ISO,RFC之一,短。详细信息请参阅git-blamegit-log联机帮助页。

+0

是的,--date选项有点帮助,但它仍然不如我想要的那么好。并注释产生恕我直言只是一个替代丑陋的输出:P – 2010-10-18 15:40:55

+0

+1'git blame -c'。 awk很好地工作。 – Utopik 2013-09-09 14:23:51

+0

@ReneSaarsoo:有责任/注释的GUI,其中之一是'git gui blame'。 – 2013-09-09 15:23:52

5

对于我来说,-s标志的作品,因为所有我需要的是SHA1 ID,在这之后我抬头提交的详细信息。一个脚本绝对看起来像矫枉过正。 -s标志在一年前不可用吗?

+1

我已经使用了[我的小脚本](https://github.com/nene/config/blob/master/bin/git-praise)一年多了,我可以说这是一个耗费精力的小小努力。 -s标志对我来说是不够的 - 我真的关心作者和日期,如果我能避免它,我不想深入挖掘。另外我的脚本生成一个很好的彩色输出。 – 2012-01-16 18:09:01

相关问题