tipos tag remove qué practices last existen etiquetas crear commits best git github trac

tag - qué tipos de etiquetas existen en git



Confirmar sin cambios de espacios en blanco en github (4)

¿Hay una manera de mostrar un compromiso en github.com sin mostrar los cambios de espacios en blanco?

¿Hay alguna manera de mostrar eso desde la consola? es decir, clone y luego mire a commit (árbol) localmente ignorando todos los cambios de espacios en blanco?

Yo uso Trac extensivamente; Estoy buscando algo similar a Ignore White space changes (que se pueden encontrar en la vista de conjunto de cambios).


Agregue ?w=1 a la URL en cualquier página de github.com que muestre un diff e ignorará los espacios en blanco. Ver esta entrada de blog .


Después de buscar en HTML fuente de la página de confirmación, descubrí que github marca los cambios de espacios en blanco puros con "x" clase CSS ... Lo que hace posible el siguiente 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();

Lo que hace, es correr a través de todas las filas de la tabla de confirmación, y oculta las filas si se da una línea y la siguiente tiene un elemento ".x" en ellas.

Aquí está lleno 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();


Hay un trío de opciones que puede usar en la línea de comandos (con cualquiera de los comandos de git diff) para esto:

  • --ignore-space-at-eol Ignora los cambios en los espacios en blanco en EOL.
  • -b, --ignore-space-change Ignora los cambios en la cantidad de espacios en blanco. Esto ignora los espacios en blanco al final de la línea y considera que todas las demás secuencias de uno o más caracteres de espacios en blanco son equivalentes.
  • -w, --ignore-all-space Ignora los espacios en blanco al comparar líneas. Esto ignora las diferencias incluso si una línea tiene espacios en blanco donde la otra línea no tiene espacios en blanco.

No creo que Github haya implementado nada usando estas opciones.


Lamentablemente, la cosa X se ha ido y, junto con el fragmento anterior, se vuelve inútil. Aquí hay algo que debería funcionar por ahora:

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''; } }