2011-04-11 23 views
8

¿Es posible generar un archivo, que incluya un resumen (qué, cuándo, por quién) de todos los cambios realizados en un determinado archivo? Solía ​​tener esa opción en VSS (creo que se llamaba "Historial"), y fue genial para volver y hacer un seguimiento de quién hizo un determinado cambio y cuándo.Generar el historial de cambios en un archivo en svn

Por cierto, estoy usando tortoisesvn

gracias de antemano

+1

En 'svn' se llama' svn log'. Intenta usar torty svn 'Show log' u otra opción similar (no recuerdo exactamente). También debería haber alguna opción de exportar a archivo. – pajton

+0

@pajton - Mostrar registro no me muestra la información que quiero. Muestra en qué revisiones se realizó un cambio al archivo + 'mensaje'. Pero necesito información más detallada, incluidos todos los cambios, cuándo se realizaron y quién los hizo. –

Respuesta

2

Como @pajton mencionado, se puede usar svn log <filename>. El documentation proporciona los detalles/limitaciones.

+0

@Jack Juiceson: el enlace de Emzy a la documentación de svn es lo que necesita. Te dirigiría hacia el -g/- use-merge-history para obtener información de las ramas que se fusionaron de nuevo en el tronco. También indicó que necesita más información en un comentario a su pregunta, intente también usar la opción -v/- verbose. Debería proporcionar más información sobre quién y cuándo. En cuanto a lo que ha cambiado, será un comando completamente nuevo.Ambas opciones están en TortoiseSVN como casillas de verificación. Raramente utilizo Tortoise, así que no puedo dar referencias exactas. – jgifford25

+0

@ jgifford25 - Estoy usando TortoiseSVN, no veo svn.exe en el directorio de TortoiseSvn bin para probar -v –

+0

@Jack Juiceson: Tortoise no tiene un cliente de línea de comandos. Puede obtener los archivos binarios de línea de comando de varios proveedores. Creo que lo más fácil de conseguir e instalar es en CollabNet: http://www.open.collab.net/downloads/subversion/. Recuerde, solo necesita el cliente de la línea de comandos, no el conjunto completo (servidor, apache y otras herramientas que vienen con Edge). – jgifford25

2

Puede encontrar svn blame <filename> para ser más útil porque le dirá quién/qué/cuándo para una revisión específica de un archivo.

+1

Soy consciente de culpa y lo uso mucho. sin embargo, a veces hay casos en los que recuerda que tenía un código en el archivo, alguien lo borró y quiere saber quién era. En vss días, generaría un archivo de historial y buscaría un fragmento de código, y luego buscaría quién lo eliminó, cuándo y por qué. –

+0

@Jack Es posible que desee considerar la aplicación de commiters para agregar comentarios apropiados a sus commits. La funcionalidad de registro debe indicarlo todo entonces o al menos proporcionar un enlace a las entradas de Jira/Trac/... que describen los cambios. – vickirk

13

Haga clic derecho en el archivo en el explorador, luego "TortoiseSVN", "Mostrar registro".

Desactive la opción "Ocultar caminos cambiado no relacionadas" Desactive la opción "Parar en copia/renombrado" Comprobar "Incluir revisiones fusionadas" Haga clic en "Mostrar todos"

Ahora, en el panel superior que una lista de revisiones con nombre de usuario , fecha y registro Haga clic en una revisión que le interese y puede ver el registro completo en el segundo panel. El tercer panel muestra cada archivo que se modificó en la revisión elegida. Haga doble clic en su archivo en este panel y podrá ver los cambios realizados en ese archivo.

Como se mencionó anteriormente, Tortoise tiene una funcionalidad de "Culpar" que a menudo es muy perspicaz pero solo puede mostrar la edición más reciente en cada línea de fuente. Y si alguien ha eliminado líneas, no ve su cambio en absoluto.

Editar:

Si usted está dispuesto a ir a la herramienta de línea de comandos y bash, esta pregunta ha sido respondida antes: How can I view all historical changes to a file in SVN

En un PC con Windows, la mejor manera de conseguir bash y línea de comando SVN es mediante la instalación de Cygwin.

+0

"Mostrar solo los caminos afectados" maldición, ojalá supiera esto antes, ¡gracias! –

12

He aquí una traducción de archivos por lotes de escritura del golpe de bendin en How can I view all historical changes to a file in SVN:

@echo off 

set file=%1 

if [%file%] == [] (
    echo Usage: "%0 <file>" 
    exit /b 
) 

rem first revision as full text 
for /F "tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
    svn log -r %%R %file% 
    svn cat -r %%R %file% 
    goto :diffs 
) 

:diffs 

rem remaining revisions as differences to previous revision 
for /F "skip=2 tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
    echo. 
    svn log -r %%R %file% 
    svn diff -c %%R %file% 
) 

Tenga en cuenta que este archivo por lotes requiere una línea de comandos del cliente de SVN (no TortoiseSVN) para estar en su camino. Yo personalmente uso SilkSVN, pero hay several.

0

me gustaría añadir que la versión reciente de la tortuga también incluye herramientas de línea de comandos, sólo tiene que seleccionarlos en la instalación

Cuestiones relacionadas