¿Qué comando svn enumeraría todos los archivos modificados en una rama?

81

En svn, tengo una rama que se creó, digamos en la revisión 22334. Luego, se hicieron confirmaciones en la rama.

¿Cómo obtengo una lista de todos los archivos que se cambiaron en la rama en comparación con lo que hay en el tronco? No quiero ver archivos que se cambiaron en el tronco entre el momento en que se creó la rama y "ahora".

Trenton
fuente
Vuelvo a esta pregunta con bastante frecuencia y la respuesta más útil es la que se eliminó de @AndrewMedico, con svn log:-D
Daniel W.

Respuestas:

84

Esto lo hará, creo:

svn diff -r 22334:HEAD --summarize <url of the branch>
Andy
fuente
2
Gracias. Ni siquiera sabía de qué revisión es mi rama, así que lo hago svn log <url of the branch> | tailpara obtener el número de revisión más pequeño.
fikr4n
1
Después de ejecutar esto para obtener un resumen de todos los cambios, si desea revisar cada cambio que ha realizado en su rama, puede usar svn diff -r 22334(tenga en cuenta que no se especifica una diferencia en HEAD). Esto se diferenciará de su copia de trabajo local y le permitirá realizar cambios desde su aplicación diff.
Cherno
43

También puede obtener una lista rápida de archivos modificados si eso es todo lo que está buscando usando el comando de estado con la opción -u

svn status -u

Esto le mostrará qué revisión tiene el archivo en el código base actual frente a la última revisión en el repositorio. Solo uso diff cuando realmente quiero ver diferencias en los archivos.

Aquí hay un buen tutorial sobre el comando svn que explica muchos de estos escenarios comunes: Referencia del comando SVN

Robert Duchnik
fuente
3
svn statussolo le mostrará las modificaciones locales. el OP estaba buscando cómo ver todos los cambios de archivo que se han comprometido en su rama desde que se creó desde el tronco.
webnesto
25

Puede utilizar el siguiente comando:

svn status -q

Según svnbook :

With --quiet (-q), it prints only summary information about locally modified items.

ADVERTENCIA: La salida de este comando solo muestra su modificación. Así que sugiero hacer una svn uppara obtener la última versión del archivo y luego usarla svn status -qpara obtener los archivos que ha modificado.

maskarih
fuente
Respuesta corta pero dulce.
Alumno
@maskarih respuesta impecable!
Gaurav
14

Esto mostrará solo los archivos modificados:

svn status -u | grep M
cazador
fuente
El estado de svn solo muestra las modificaciones del área de trabajo local. esto no responde a la pregunta original con respecto a todos los cambios en la rama, después de su creación.
webnesto
2
y archivos que contienen Men el nombre
Manolete
7
svn status -u | grep ^ M
rhel.user
Yo uso status -u | grep "M"
Mark Kahn
2

La opción -u se mostrará incluidos los archivos de objeto si se agregan durante la compilación.

Entonces, para superar eso, también puede usar esto.

svn status -u | grep -v '\?' 
Binny Jeshan
fuente
2
echo You must invoke st from within branch directory
SvnUrl=`svn info | grep URL | sed 's/URL: //'`
SvnVer=`svn info | grep Revision | sed 's/Revision: //'`
svn diff -r $SvnVer --summarize $SvnUrl
Hasski
fuente
0

svn log -q -vmuestra rutas y oculta comentarios. Todas las rutas están sangradas para que pueda buscar líneas que comiencen con espacios en blanco. Luego canalice hacia cuty sortpara ordenar:

svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u

Esto obtiene todas las rutas mencionadas en la rama desde su punto de ramificación. Tenga en cuenta que enumerará los archivos eliminados y agregados, así como los modificados. Solo usé esto para obtener las cosas que debería preocuparme por revisar en una rama un poco desordenada de un nuevo desarrollador.

Sweavo
fuente