Tag: 责备

有没有办法自定义混帐的输出?

git log有一个很好的–format选项来指定输出的格式。 但git blame似乎并没有相当的,虽然blame默认输出是不太人性化。 我想看得更less。 例如,而不是: 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; 我觉得我可以写一个脚本来parsinggit blame –porcelain的输出,但是考虑到可怕的默认输出,我觉得有人在那里肯定已经做了些什么。 有任何想法吗? […]

“责备”命令的简化语义是一件好事吗?

我正在研究一种新的基于织物的数据结构来存储版本控制历史。 这无疑会引发一些宗教的战争,是否是正确的做法,但这不是我现在的问题。 我的问题与输出责任应该给予什么。 当一行代码被添加,删除,并合并到自己多次,并不总是清楚什么修订应该是责怪它。 值得注意的是,这意味着当一段代码被删除时,它的所有logging已经消失了,并且没有责任去除。 我曾经与这个问题交往过的每个人都表示,试图做得更好就是不值得的。 有时候,人们把这个被删除的部分后面的那一行的内容,从删除的那一部分改为修改的时候,就会把这个责任改变了。 据推测,如果该部分是在最后,最后一行得到的责备改变,如果文件结束空责任真的消失在以太,因为几乎没有任何地方留下的责备信息。 由于各种技术原因,我不会使用这个黑客攻击,但是假设持续的,但是这个完全没有logging但事实上的标准实践将是没有争议的(但是可以随意激发我,并将它从你的系统中取出)。 转到我的实际问题。 对于每一行,通常应该指责它们在历史中被添加和删除的完整历史,并且使用三向合并(或者在交叉合并的情况下是随机废话),并且基于这些关系你根据它的历史来确定这条线是否应该在那里,如果它不应该,那么你用现在的修订标记它是新的。 如果一条线出现在不同责任的多个祖先中,则select哪一个任意inheritance。 再次,我认为继续这种完全没有logging但事实上的标准做法是没有争议的。 我的新系统分歧的地方在于,不是根据对整个历史的复杂计算,而是对现行版本是否应该进行复杂的计算,而只是看直接的祖先,如果是在任何他们挑选一个任意的inheritance责任。 我在很大程度上是因为技术上的原因进行了这种改变(其他的指责实现完全可能做同样的事情,由于类似的技术原因和缺乏关怀),但考虑到这一点后,我实际上更喜欢新的行为比旧的更直观,更可预测。 大家怎么想?

Git:发现哪些提交触及了一系列的行

我很难搞清楚如何使用git blame来获取曾经触及给定范围的行的提交集。 有类似这样的问题,但接受的答案并没有让我更进一步。 假设我有一个从foo.rb第1000行开始的定义。 它只有5行,但是改变这些行的提交次数是巨大的。 如果我做 git blame foo.rb -L 1000,+5 我引用(最多)五个不同的提交,改变了这些线,但我也对“背后”的提交感兴趣。 同样的, git rev-list HEAD — foo.rb | xargs git log –oneline 几乎是我想要的,但我不能指定行范围git rev-list 我可以通过一个标志来git blame以获得曾经触及这五行的提交列表,或者build立一个提取这些信息的脚本的最快方法是什么? 让我们暂时忽略定义曾经多于或less于5行的可能性。

Git责备没有历史

当我在一个文件(使用msysgit)上运行git blame的时候,我总是得到如下的打印输出: 00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 1) package co 00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 2) { 00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 3) impor 00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 4) impor 00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 5) impor 00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 […]