在github上没有空格更改的提交

时间:2010-12-15 12:25:11

标签: git github trac

有没有办法在github.com上显示提交而不显示空格更改?

有没有办法从控制台显示?即克隆,然后在本地查看提交(树)忽略所有空格更改?

我广泛使用Trac;我正在寻找类似于Ignore White space changes的东西(可以在变更集视图中找到)。

4 个答案:

答案 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 ('&nbsp;' !== 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();