有没有办法在github.com上显示提交而不显示空格更改?
有没有办法从控制台显示?即克隆,然后在本地查看提交(树)忽略所有空格更改?
我广泛使用Trac;我正在寻找类似于Ignore White space changes
的东西(可以在变更集视图中找到)。
答案 0 :(得分:62)
将?w=1
附加到显示差异的任何github.com页面上的URL,它将忽略空格。请参阅this blog post。
答案 1 :(得分:20)
您可以在命令行中使用三个选项(使用任何git的diff命令):
--ignore-space-at-eol
忽略EOL中的空格更改。-b, --ignore-space-change
忽略空白量的变化。这会忽略行尾的空格,并认为一个或多个空白字符的所有其他序列都是等效的。-w, --ignore-all-space
比较直线时忽略空格。这会忽略差异,即使一行有空格而另一行也没有。我不相信github使用这些选项实现了任何东西。
答案 2 :(得分:1)
可悲的是,X的东西已经消失了,并且前面的代码段也没用了。这是现在应该有用的东西:
var i, e, tr, tdL, tdR, textL, textR, text = function (el) { return el.parentNode.children[2].children[1].children[0].textContent.replace(/\s/g, '').substr(1); }
for (i = 0, e = document.getElementsByClassName('gd'); i < e.length; ++i) {
tr = e[i].parentNode.parentNode.parentNode;
if (' ' !== tr.children[1].innerHTML) { continue; }
tdL = tr.children[0];
tdR = document.getElementById(tdL.id.replace(/^L(\d+)L/, 'L$1R')),
textL = text(tdL);
textR = text(tdR);
if (textL === textR) { tdL.parentNode.style.display = tdR.parentNode.style.display = 'none'; }
}
答案 3 :(得分:0)
在查看提交页面的源HTML之后,我发现github用“x”CSS类标记了纯空白更改...这使得以下oneliner成为可能:
jQuery.expr[':'].hasX = function(obj) { var $this = $(obj); return ($this.find('.x').length && $this.next().find('.x').length); }; jQuery('.data tbody tr:hasX').toggle().next().toggle();
它的作用是遍历提交表的所有行,并且如果给定行则隐藏行,之后的行确实包含“.x”元素。
这是完整的JS:
// create new selector
jQuery.expr[':'].hasX = function(obj) {
// cache
var $this = $(obj);
// whether this and next line do have '.x' element as child
return $this.find('.x').length && $this.next().find('.x').length;
}
// select all rows and hide (ones containing "-")
jQuery('.data tbody tr:hasX').toggle()
// hide the ones after selected (ones containing "+")
.next().toggle();