tutorial - ¿Cómo ver qué se actualizará del repositorio antes de emitir el comando "svn update"?
tortoisesvn español (7)
He realizado cambios en numerosos archivos en un repositorio SVN de Eclipse.
Luego, voy al directorio del sitio web en el cuadro de Linux donde quiero actualizar estos cambios desde el repositorio al directorio allí.
Quiero decir "svn update project100" que actualizará los directorios en "project100" con todos mis archivos agregados y cambiados, etc.
SIN EMBARGO, no quiero actualizar necesariamente los cambios que no hice. Así que pensé que podría decir "svn status project100", pero cuando hago esto, obtengo una lista totalmente diferente de los cambios que se realizarán, ninguno de los míos está en la lista, lo cual es extraño.
Por lo tanto, para estar seguro de que solo se actualizan mis cambios en el directorio web, me veo obligado a navegar a cada directorio donde sé que hay un cambio que hice y actualizar explícitamente solo esos archivos, por ejemplo, "svn update newfile1.php", etc. que es tedioso
¿Puede alguien arrojar alguna luz sobre el procedimiento de trabajo estándar aquí, es decir, cómo puedo obtener una lista precisa de todos los cambios que están por hacerse antes de ejecutar el comando "svn update"? Pensé que era el comando de "estado".
Dependiendo de lo que quiera saber entre su copia de trabajo y el último repositorio del servidor svn, sin actualizar su copia local de trabajo, esto es lo que puede hacer:
si quiere saber qué ha cambiado en el repositorio del servidor svn, ejecute el comando:
$ svn st -u
si desea saber si el mismo archivo ha sido modificado tanto en su copia de trabajo local como en el repositorio del servidor svn, ejecute el comando:
$ svn st -u | grep -E ''^M {7}/*''
si desea obtener una lista de archivos modificados entre una revisión en particular y HEAD, ejecute el comando:
$ svn diff -r revisionNumber:HEAD --summarize
si desea obtener una lista de archivos modificados entre revisiones particulares, ejecute el comando:
$ svn diff -r revisionNumber:anotherRevisionNumber --summarize
si desea ver qué se actualizará (sin actualizar realmente), ejecute el comando:
$ svn merge --dry-run -r BASE:HEAD .
si desea saber qué contenido de un archivo en particular se ha cambiado en el repositorio del servidor svn en comparación con su copia de trabajo, ejecute el comando:
$ svn diff -r BASE:HEAD ./pathToYour/file
si desea saber qué contenidos de todos los archivos se han cambiado en el repositorio del servidor svn en comparación con su copia de trabajo, ejecute el comando:
$ svn diff -r BASE:HEAD .
En teoría, podría hacer todos los cambios en una rama que haya creado para su propio uso. Entonces estarás razonablemente seguro de que eras el único que se comprometió a ello.
El desarrollo de la característica en mi humilde opinión debe hacerse así.
Luego, puede actualizar esta máquina objetivo desde esta rama en lugar de desde la línea externa.
Esto es lo que estaba buscando. Comprobé primero a Google, pero la svn help
terminó por venir :)
svn diff -r BASE:HEAD .
Lo mismo, pero más corto, más corto :):
svn st -u
Puede usar ''svn diff'' para ver la diferencia entre su copia de trabajo y el repositorio.
Puede ver lo que se actualizará (sin actualizar) al emitir:
svn merge --dry-run -r BASE:HEAD .
Más detalles here .
Tratar:
svn status --show-updates
o (lo mismo pero más corto):
svn status -u