La clave aquí es cuánto historial se requiere. Como han señalado otros, la respuesta corta es: svn blame
(ver svn help blame
para más detalles). Si está llegando a la historia o lidiando con cambios significativos, es probable que necesite algo más que este solo comando.
Yo solo tenía que hacer esto yo mismo, y encontré este hilo (viejo) aquí en SO. Esto es lo que hice para resolverlo solo con el CLI
, específicamente para mi caso en que una API había cambiado (por ejemplo, mientras transfería el trabajo obsoleto de alguien (no en una sucursal, arrgh!) a una rama de características basada en un up -todo el enlace). P.ej. los nombres de las funciones habían cambiado lo suficiente como para que no fuera aparente qué función necesitaba ser llamada.
Paso uno
El siguiente comando me permitió a la página a través de las confirmaciones cuando las cosas habían cambiado en el archivo "fileName.h" y ver el número de revisión correspondiente (nota: puede que tenga que alterar el '10' para más o menos contexto según el texto del registro svn).
svn log | grep -C 10 "fileName.h" | less
Esto se traduce en una lista de revisiones en las cuales se modificó este archivo.
Paso dos
entonces era una simple cuestión de utilizar blame
(o como otros han señalado, annotate
) para reducir a las revisiones de interés.
cd trunk
svn blame [email protected] | less
E.g. encontraron la revisión de interés fue 35948.
Paso tres
Después de haber encontrado la revisión (s) de interés a través de culpa, un diff puede ser producido para aprovechar la herramienta SVN.
svn diff -r35948:PREV fileName.h
Conclusión
Tener una visual de diferencias hecho que sea mucho más fácil identificar los nombres antiguos de la API con los nombres de las API más nuevos/actualizados.
Ha solucionado el problema del OP, pero aún me pregunto si hay alguna manera de rastrear el historial de una línea en particular, cuando hay demasiadas líneas y demasiadas revisiones para examinar manualmente. – JohnK
Muchas herramientas gui, p. tortoiseSVN (en Windows) hace un buen trabajo al aprovechar esta funcionalidad para que puedas recorrer la historia. Por lo general, resalta las líneas adyacentes que cambiaron juntas y facilita el paso hacia esa diferencia, luego toma el número de línea relevante de la revisión anterior y repite. Me he remontado feliz y rápidamente a grandes repositorios (> 10 años de edad) que han incluido migraciones de CVS e incluso cortar y pegar la clonación de repositorios como parte de la historia. Para una mayor automatización, tal vez podría importar el repositorio en git y usar su capacidad de culpa basada en contenido más avanzada. – morechilli