restaurar - Gitk equivalente de git log--follow<ruta completa al archivo>
gitk windows (1)
El problema es que gitk --follow
por ahora será diferente del git log --follow
, considerando, según Linux Torvalds, --follow
es principalmente un hack:
Estoy bastante seguro de que mencioné este problema exacto cuando
--follow
parches de seguimiento originales, y básicamente se reduce a: "--follow
" es un hack total, y no usa la función de filtro de confirmación regular, y como resultado Las cosas elegantes como "--parent
" no funcionan bien con eso.IOW, no estoy seguro de que sea corregible. "
--follow
es una cosa muy importante que no se puede hacer, y realmente es un hack completo. Es un hack bastante pequeño - si no supieras mejor y miraste el código fuente, podrías pensar que encaja muy naturalmente en git. Pero no.Ahora, es posible que podamos hackear
--parent
para trabajar--follow
también, pero francamente, no sé cómo. Debido a que el hackeo siguiente básicamente se reduce a:
- no podar los compromisos en absoluto (esto es lo que normalmente simplifica la paternidad y elimina los compromisos sin interés)
- Para la lista completa de confirmaciones normales en "
git log
", haga la generación de parches con un truco especial mágico que busque renombrados.- si se trata de un cambio de nombre, cambie la ruta que rastreamos mágicamente, de modo que la próxima confirmación que veamos, sigamos la ruta nueva (más antigua).
- si el parche está vacío,
rev->always_show_header = 0;
ocultar la confirmación (internamente, esto es "rev->always_show_header = 0;
" cosa)y la clave aquí es que hacemos toda la magia al final de la cola, mucho después de que hayamos hecho la poda de los compromisos que normalmente hace el cambio de nombre de la paternidad.
Lo siento. He usado
--follow
ocasionalmente, pero es un truco para ver "ok, ahí fue rebautizado". Sería bueno si "gitk --follow <pathname>
" funcionara correctamente, pero no es algo que me importe mucho.
Así que tengo un archivo llamado one.txt que he estado modificando a lo largo de los años en la rama maestra. gitk one.txt mostrará el historial completo de ese archivo en particular. Sin embargo, después de cambiar one.txt => two.txt, gitk two.txt no muestra ningún cambio antes del cambio de nombre.
Intenté gitk --follow two.txt, pero solo di el comentario para cada confirmación, pero no la información de cambio de archivo real.
Sé que puedo hacer git log --follow two.txt, pero tienes que gitk cada valor SHA1 para cada uno de los cambios que se están cambiando.
¿Algún consejo?