Commit sans changements d'espaces sur github

Existe-t-il un moyen d'afficher un commit sur github.com sans afficher les changements d'espaces?

Existe-t-il un moyen d'afficher cela depuis la console? c'est-à-dire cloner et ensuite regarder commit (tree) en ignorant localement tous les changements d'espace blanc?

J'utilise beaucoup Trac; je cherche quelque chose de similaire à Ignore White space changes (qui peut être trouvé sur la vue changeset).

23
demandé sur Cascabel 2010-12-15 15:25:10

4 réponses

Ajoute ?w=1 à L'URL de github.com page qui montre un diff et il ignorera les espaces. Voir ce billet de blog .

62
répondu balexand 2011-12-14 00:32:32

Il y a un trio d'options que vous pouvez utiliser sur la ligne de commande (avec n'importe laquelle des commandes diff de git) pour ceci:

  • --ignore-space-at-eol ignorer les changements dans les espaces à EOL.
  • -b, --ignore-space-change ignorer les changements dans la quantité d'espaces. Cela ignore les espaces à la fin de la ligne et considère toutes les autres séquences d'un ou plusieurs caractères d'espaces comme équivalentes.
  • -w, --ignore-all-space ignorer les espaces lors de la comparaison des lignes. Cela ignore les différences même si une ligne a des espaces où l'autre ligne a aucun.

Je ne crois pas que github ait implémenté quoi que ce soit en utilisant ces options.

20
répondu Cascabel 2010-12-16 10:47:33

Malheureusement, la chose X a disparu et à côté de l'extrait précédent est rendu inutile. Voici quelque chose qui devrait fonctionner pour l'instant:

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'; }
}
1
répondu helmer 2011-09-06 21:07:26

Après avoir regardé dans le HTML source de la page de validation, j'ai découvert que github marque des changements d'espaces purs avec la classe CSS "x"... Ce qui rend le oneliner suivant possible:

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();

Ce qu'il fait, est parcourt toutes les lignes de la table de validation, et Cache Les lignes si la ligne donnée et celle après ont ".x " élément en eux.

Voici js complet:

// 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();
0
répondu Martin Tóth 2010-12-22 08:13:56