2009-11-24 20 views

Respuesta

56

usted podría comenzar con:

svn diff http://REPOS/trunk http://REPOS/branches/B 

(. Cuando http://REPOS es su ruta de repositorio incluyendo los padres de trunk y branches)

Esto imprimirá una gran cantidad de texto, incluidos todos los cambios de texto, pero no los cambios binarios, excepto para decir dónde y cuándo se produjeron. .

+12

Gracias! Su respuesta me llevó a este http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-diff.html que explica cómo hacer lo mismo con TortoiseSVN – tukushan

+0

Taquigrafía -> 'svn diff ^/trunk ^/branches/B' – cchamberlain

0

Aquí hay una post from Murray Cumming que describe el proceso no evidente:

  • Descubrir los números de revisión: Es necesario conocer los números de revisión de las últimas versiones de cada una de las ramas. Parece que svn log es la única forma de hacerlo.
  • cd en uno de los directorios de bifurcación, como el enlace troncal.
  • Suministro de los números de revisión en el comando svn diff: svn diff -r123:145
+1

¿No le dirá esto qué ha cambiado en 'trunk' desde la última vez que se ha comprometido con la sucursal? Disculpas si me falta algo, se está haciendo tarde aquí ... – SimonJ

+0

No necesita buscar el último número de revisión en cada rama: simplemente use 'HEAD'. Pero esto no es lo que el OP estaba pidiendo, quería comparar su rama y su tronco, no entre dos revisiones en la misma rama. – Ether

1

Gracias por la información chicos, agregaría algo para mejorar la legibilidad de los resultados diff. Si usó: svn diff svn: // url: 9090/branches/PRD_0002 svn: // url: 9090/branches/TST_0003> svn_diff_filename.txt

se puede utilizar: findstr "Índice:" C: \ ruta \ svn_diff_filename.txt> svn_diff_file_list.txt

que le llevará una lista de lectura de los archivos que tienen las diferencias.

4

Normalmente comprobo las dos ramas (o la rama y el tronco) en los directorios. Luego uso una herramienta gráfica como Kompare o similar (según sus preferencias, sistema operativo, ...). Esto es realmente útil para mí cuando necesito realizar fusiones complejas.

0

para ver las diferencias entre dos revisiones de una rama:

svn diff -r rLATEST:rOLD 

Uso svn log para obtener los diferentes revisiones. El uso puede limitar el número de revisiones en el registro usando svn log -l 5. solo se mostrarán las últimas 5 revisiones.

12

Si estás en busca de alto nivel de lo que los archivos son diferentes y no quieren ver todo el contenido, utilice:

svn diff ^/trunk ^/branches/dev --summarize

(Esto se compara tronco y rama dev)

2

Como la falta de reputación no me permite agregar esto como un comentario en contra de una respuesta existente, tengo que agregarlo como uno separado.

Una opción útil para svn diff para mí era --ignore-properties. Mis dos ramas habían terminado idénticas en código, pero con diferentes historias de fusión.

El uso de --ignore-properties me permitió probarme que este era el caso, sin tener que pasar por la gran cantidad de cambios de propiedad de "svn: mergeinfo".