Ver confirmaciones sin cambios de espacios en blanco en GitHub

3 minutos de lectura

avatar de usuario
Martín Toth

¿Hay alguna manera de mostrar una confirmación en github.com sin mostrar cambios en los espacios en blanco?

¿Hay alguna manera de mostrar eso desde la consola? es decir, clonar y luego mirar la confirmación (árbol) localmente ignorando todos los cambios de espacio en blanco?

Uso mucho Trac; busco algo parecido Ignore White space changes (que se puede encontrar en la vista de conjunto de cambios).

  • gist.github.com/xPaw/de6ee132a2e267ef6960: agrega un botón en la interfaz de usuario de GitHub para ignorar los cambios de espacios en blanco en las confirmaciones

    – Martin Toth

    20 de junio de 2015 a las 15:45

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

  • Parece que no está funcionando para todos por alguna razón. Lástima, esto habría sido una gran característica.

    – Artem Goutsoul

    8 febrero 2014 a las 9:30

  • Descubrí que esto funciona en las páginas de diferencias de GitHub, pero no en las páginas de culpa de GitHub

    – Nathan Bell

    6 de marzo de 2015 a las 3:07

  • Tenga en cuenta que si la URL ya contiene un signo de interrogación, debe agregar &w=1 en lugar de ?w=1.

    – wovano

    10 de marzo a las 14:05

avatar de usuario
cascabel

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

  • --ignore-space-at-eol Ignore 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 Ignore 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 los tiene.

No creo que github haya implementado nada usando estas opciones.

  • A partir de github.com/blog/967-github-secretos — puede Agregar ?w=1 a la URL para ver la diferencia con los espacios en blanco ignorados.

    – Alejandro

    28/10/2011 a las 15:15

  • desafortunadamente, ?w=1 no parece ignorar los caracteres de nueva línea, ¿qué diablos

    – Alejandro Mills

    29/10/2015 a las 21:27

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

Después de buscar en el HTML fuente de la página de confirmación, descubrí que github marca los cambios de espacios en blanco puros con la clase CSS “x” … Lo que hace posible el siguiente trazador de líneas:

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 recorrer todas las filas de la tabla de confirmación y ocultar las filas si la línea dada y la siguiente tienen el elemento “.x” en ellas.

Aquí está el JS completo:

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

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad