Зафиксируйте без пробельных изменений на github - PullRequest
24 голосов
/ 15 декабря 2010

Есть ли способ отобразить коммит на github.com, не показывая изменения пробелов?

Есть ли способ отобразить это с консоли?то есть клонировать, а затем посмотреть на коммит (дерево) локально, игнорируя все изменения пробелов?

Я широко использую Trac;Я ищу что-то похожее на Ignore White space changes (которое можно найти в представлении набора изменений).

Ответы [ 4 ]

62 голосов
/ 14 декабря 2011

Добавьте ?w=1 к URL-адресу на любой странице github.com, на которой отображается разница, и он будет игнорировать пробелы. См. это сообщение в блоге .

20 голосов
/ 15 декабря 2010

Для этого есть три опции, которые вы можете использовать в командной строке (с любой из команд git diff):

  • --ignore-space-at-eol Игнорировать изменения пробелов в EOL.
  • -b, --ignore-space-change Игнорировать изменения количества пробелов. Это игнорирует пробелы в конце строки и считает все другие последовательности одного или нескольких пробельных символов эквивалентными.
  • -w, --ignore-all-space Игнорировать пробелы при сравнении строк. Это игнорирует различия, даже если в одной строке есть пробел, а в другой нет ни одной.

Я не верю, что github реализовал что-либо, используя эти опции.

1 голос
/ 07 сентября 2011

К сожалению, вещь 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'; }
}
0 голосов
/ 22 декабря 2010

Изучив исходный HTML-код страницы коммита, я обнаружил, что github помечает чистые изменения пробелов с помощью CSS-класса "x" ... Что делает возможным следующий oneliner:делает, проходит по всем строкам таблицы коммитов и скрывает строки, если задана строка, а в одной после нее есть элемент ".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();
...