Mostrar la list de líneas eliminadas entre dos revisiones

Tengo dos revisiones r1 y r2. r1 agregó líneas diferentes a diferentes files (e hizo otras modificaciones también). r2 eliminó algunas de las líneas introducidas por r1 de algunos de los files. ¿Hay alguna manera de get una list de esos files desde los cuales r2 eliminó las líneas que introdujo r1?

Sí.

svn diff te da una diferencia unificada entre dos revisiones. El uso de la bandera --summarize muestra solo los nombres de los files.

Entonces, svn diff -rR1:R2 --summarize dará una list de todos los files afectados entre las revisiones R1 y R2 .

Ahora, para cada uno de esos files, puede usar grep para get una list de líneas eliminadas mediante la búsqueda en contra de "^-" (es decir, líneas que comienzan con el carácter - ).

El command general sería:

 R1="your first revision value" R2="your second revision value" for i in $(svn diff -r${R1}:${R2} --summarize | cut -c9-) do echo "Listing lines deleted between revisions ${R1} and ${R2} in file:${i}" echo "====================================================================" svn diff -r${R1}:${R2} ${i} | grep -in "^-" echo "====================================================================" done 

El command de cut se usa para eliminar los indicadores y espacios de estado principales de la salida de svn -diff --summarize , mientras que el command grep busca las líneas marcadas como eliminadas entre las revisiones. El argumento -n para grep también le dice que imprima el número de línea para el cambio afectado en la diferencia. Esto no es lo mismo que el número de línea en el file original, pero está en el mismo vecindario.

¿Has intentado usar svn diff ?

Si desea cambiar una list de files, quiere usar svn log con la bandera --verbose

svn manual

p.ej:

 svn log -v http://myrepo/files