svn - subir - ¿Cómo comparo una rama contra el tronco en subversión?
svn guia (6)
En Subversion, creé una rama desde un tronco usando svn copy
. Según el manual SVN 1.5 , "Esta es la forma más fácil de" etiquetar "una revisión en su repositorio, simplemente svn copie esa revisión (generalmente HEAD) en su directorio de etiquetas".
svn copy file:////svn/projectX/trunk file:///svn/projectX/branches/stefanl
Luego, realizo mis modificaciones a la rama stefanl
. Quiero enviar mis cambios al tronco, pero antes de hacerlo me gustaría ver una diferencia de los cambios.
¿Cómo puedo diferir la rama ''stefanl'' contra la rama ''trunk''? Intenté svn diff
, pero no proporcionó mucha información:
% svn diff file:////svn/projectX/trunk file:///svn/projectX/branches/stefanl
Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
Reverse-merged /trunk:r1699-1870
Agregando a las respuestas anteriores (si usa Tortoise SVN en Windows):
- Haga clic derecho en cualquier carpeta. Desde el menú contextual, selecciona TortoiseSVN -> Repo-navegador .
- Ingrese su dirección de repos en el cuadro URL .
- Navega a la primera carpeta que quieras comparar. Haga clic derecho y seleccione Marcar para comparación .
- Navega a la segunda carpeta. Haga clic con el botón derecho y seleccione Comparar URL
Basado en las otras respuestas y un poco de investigación, escribí un guión que lo hace automáticamente.
#!/bin/bash
url=$(svn info | grep ^URL: | sed -e ''s,^URL: ,,'' )
root=$(svn info | grep ''^Repository Root:'' | sed -e ''s,.*Root: ,,'' )
trunk=$root/trunk
if [[ -n "$1" && ! -e "$1" ]]
then
echo "What? svn diff /"$1/"? really?"
exit
fi
svn diff $url/$1 $trunk/$1 > trunk.diff
Lo ejecuta justo debajo de la rama. Puede pasar una ruta (dir o archivo) y funcionará como se esperaba. Si no, entonces solo diferirá la rama y el tronco.
Gracias por la información chicos, agregaría algo para mejorar la legibilidad de los resultados diff. Si usaste: svn diff svn: // url: 9090 / branches / PRD_0002 svn: // url: 9090 / branches / TST_0003> svn_diff_filename. TXT
También puede usar: findstr "Index:" C: / path / svn_diff_filename.txt> svn_diff_file_list.txt
Eso le traerá una lista legible de archivos que tienen alguna diferencia.
Saludos, Kra.
Puede diferenciar Unix para comparar directorios.
Para encontrar los archivos faltantes:
diff -r svn/projectX/trunk svn/projectX/branches/stefanl | grep -i only
Para encontrar las diferencias entre archivos:
diff -ru svn/projectX/trunk svn/projectX/branches/stefanl
Tenía la misma pregunta y encontré la sugerencia en un hilo de correo: http://svn.haxx.se/users/archive-2003-08/0538.shtml
Si está utilizando el complemento subversivo con eclipse (other ide?) Cambie a la perspectiva de búsqueda del repositorio. En el panel de repositorios SVN, haga clic con el botón derecho en cualquier elemento y seleccione la opción "Comparar ...". Debería ser intuitivo desde allí.
Utilizar:
svn diff ^/trunkUrl/fileName ^/branchUrl/fileName
Esto le dará la diferencia entre un archivo en la rama y el tronco.