42 votos

El paso a través de un archivo de la historia en git es similar a la de p4v timelapse

Estoy buscando una herramienta para ayudar al sondeo de un archivo de la historia. Específicamente, quiero ver todo el contenido del archivo, pero ser capaz de dar un paso hacia atrás y hacia adelante en el tiempo. La alegría Extra para las decoraciones que indica la diferencia con la anterior rev o algún otro especificado apo.

Actualmente yo uso git blame, y puede ver qué cambios impactado cada línea de corriente. Entonces tengo que relanzar un visor para ese archivo con particular cometer. Es intensivo en trabajo, y si una herramienta ya automatiza este me encantaría usarlo!

Perforce del timelapse vista es la mejor herramienta de la que hasta la fecha he visto para esta tarea.

14voto

Karl Bielefeldt Puntos 15469

gitk -- filename debe hacer lo que quieras, si te tiro de las líneas de contexto en el medio, y desplácese hacia arriba y hacia abajo a través de las revisiones.

9voto

Vincent Scheib Puntos 2702

Tig, un modo de texto de la interfaz de git, ofrece una culpa de la vista que ofrece algunos de esta funcionalidad:

  • Paso atrás en el tiempo para la confirmación de una determinada línea (b ).
  • Paso atrás para los padres confirmación de una determinada línea (, ).
  • Volviendo atrás en el tiempo a una vista en la que estaban en anteriormente (< key).

No preservar la ubicación de visión cuando paso a un padre commit (parece que cuando se utiliza la línea del commit).

4voto

mpb Puntos 43

Si usted está usando vim, el git-time-lapse complemento también puede ayudar.

Te permite navegar a través de la historia para un archivo, la presentación de cada uno de comprometerse en vimdiff forma, con el mensaje de confirmación por separado, en un vsplit a continuación.

2voto

Keith Thompson Puntos 85120

Tengo un script en Perl (demasiado grande y demasiado general para post como una respuesta a esta pregunta) que agarra una copia de cada una de las revisiones de un archivo especificado en git. (También funciona con RCS y CVS).

EDIT : por fin he llegado en torno a la liberación en Github.

El núcleo de la misma es este (pseudo-código):

  • Ejecutar git log --date=raw -- filename
  • La búsqueda de la salida para commit y Date: líneas.
  • Para cada commit-id:
    • Ejecutar git show commit-id ./filename > target-filename

El objetivo-nombre de archivo es construido a partir de una combinación de la confirmación-id, la marca de tiempo, y/o secuencial de índice.

El resultado podría ser, por ejemplo, un montón de archivos como:

foo__001.txt
foo__002.txt
foo__003.txt

donde cada uno es una versión de foo.txt desde el repositorio git. A continuación, puedo ver cada archivo y/o diff consecutivos versiones de ella.

Esto no le da todo lo que estás pidiendo, pero debe ser un buen comienzo.

2voto

johnny Puntos 1055

Usted también podría usar algo como github, si quería - su historia para ver un archivo en particular, se muestra una sinopsis de cada archivo, fue editado y por quién, y le da la mano los enlaces para ver el diff de ese archivo para que se comprometan, la versión actual del archivo en el que se comprometen, etc.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X