2009-10-29 12 views

Respuesta

9

Lo que quiere hacer es hacer un Blame en ese archivo fuente y le mostrará las revisiones que cambiaron cada una de las líneas de código.

No conozco ningún comando que pueda proporcionarle todas las revisiones para una determinada línea de código ... lo que puede hacer es hacer un registro de muestra en un solo archivo y luego observar cada una de las revisiones que tuvieron lugar a lo largo del tiempo.

+0

¿Hay alguna forma de encontrar * todas * las revisiones de una determinada línea modificada? La culpa solo me dará la última revisión. –

+0

No, solo le mostrará quién cambió la línea al último. Quería algo que pudiera señalar en una línea y mostrar en qué revisiones se había cambiado esta línea (mi entendimiento de la pregunta). –

+0

No conozco ningún comando que pueda darle todas las revisiones para una línea de código determinada ... lo que puede hacer es hacer un registro de espectáculos en un solo archivo y luego ver cada una de las revisiones que se llevó a cabo con el tiempo. – mezoid

1

Puede hacer clic con el botón derecho en un archivo de su repositorio y seleccionar TortoiseSVN-> Mostrar registro para obtener las revisiones a las que se vio afectado este archivo. Línea por línea, no hay manera de que yo sepa.

2

Mezoid's Blame suena correcto. Por otro lado, me gustaría compartir una técnica que los usuarios de svn de línea de comando pueden encontrar útil. (Se trata de svn culpa, pero yo uso el sinónimo "annotate", o "svn ann", porque "culpa" suena un poco duro!)

OK, entonces usted tiene una línea que le interesa, y tiene una cadena distintiva en él "distinctiveString". Desea leer el mensaje de confirmación cuando se introdujo la línea por primera vez, pero puede haber sido editado varias veces. Por lo tanto, seguir adelante y hacer esto:

# svn ann that.file | grep distinctiveString 
2345  yada yada distinctiveString blah blah 

Un vistazo a su interfaz web TRAC para SVN r2345 muestra que simplemente cambia el sangrado de la línea, que no era la revisión en el que se introdujo la línea. Así que la próxima utiliza el indicador -R (o -r, hacer SVN ayuda ann para asegurarse) para especificar la revisión uno menos que la revisión que encontró en el paso anterior:

# svn ann -R 2344 that.file|grep distinctiveString 
2211 yada yada distinctiveString blah blah 

Enjuague y repita hasta que encuentre el original.

Puede omitir la búsqueda de TRAC en cada paso simplemente repitiendo hasta que ya no vea la línea y tomando el resultado de la penúltima iteración.

OK, es un poco laborioso, pero si realmente quiere saber quién introdujo esa línea, hará el trabajo. Puede ahorrarle tiempo si el mensaje de confirmación original explica la intención de una pieza oscura de código que de otra manera podría eliminarse.

+0

Me gusta. Tendré que intentarlo un tiempo. – mezoid

Cuestiones relacionadas