¿Cuál es la diferencia entre “–tree-filter” y “–index-filter” en la “rama de filtro de git”?

2 minutos de lectura

Aprendo “árbol” e “índice” de este artículo: Aprendiendo Git Internals por ejemplo

pero cuando se trata del comando “git filter-branch”, no sé cuál es la diferencia entre “–tree-filter” y “–index-filter”.

  • ¿Has leído el documentación ?

    – Tim Biegeleisen

    28 de marzo de 2016 a las 2:58

  • @TimBiegeleisen Sí, pero creo que este concepto de Git es difícil de entender…

    – Ve arriba

    28 de marzo de 2016 a las 3:13

  • ¡Uno no simplemente lee los documentos @TimBiegeleisen! ¡Hay insignias para ganar! (Gran nombre por cierto 😉 )

    – timhc22

    24 de febrero a las 2:48


La versión corta es que --tree-filter verifica cada confirmación en un directorio temporal, ejecuta su comando de filtro y crea una nueva confirmación a partir de lo que sea que esté ahora en el directorio temporal; tiempo --index-filter copia cada confirmación en el índice, ejecuta su comando de filtro y crea una nueva confirmación a partir de lo que esté ahora en el índice.

Copiar un compromiso en el índice es mucho1 más rápido que verificar el compromiso. Crear una confirmación desde el índice es más rápido que crear una confirmación desde un directorio. Como resultado, usar el filtro de índice es mucho más rápido que usar el filtro de árbol. Sin embargo, no es tan fácil escribir un guión.


1La diferencia de velocidad exacta depende de su directorio temporal: un sistema de archivos en memoria es más rápido que un sistema de archivos en SSD, que es más rápido que en medios giratorios, por lo que gana más si usa medios giratorios que si puede apunte el filtro de árbol a un sistema de archivos en memoria. Pero incluso entonces, el filtro de índice es aún más rápido.

En discos reales, he visto un factor de 100 más o menos (por lo tanto, un filtro de índice que tarda 2 minutos se traduce en un filtro de árbol que tarda más de 3 horas).

  • ¡Increíble investigación adicional allí @torek, no puedo aprender estas cosas simplemente leyendo los documentos!

    – timhc22

    24 de febrero a las 2:51

  • @ timhc22: Me estoy aproximando a partir de algunos valores históricos aquí. Hice muchas cirugías de depósito a mediados de 200x o principios de 201x. Tuve que usar medios giratorios reales por un tiempo, luego tuve un sistema de archivos ramdisk para usar para algunos de ellos más tarde…

    – torek

    24 de febrero a las 10:54

¿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