x64 tortoise subversion para net manager cliente svn

tortoise - SVN fusión inversa?



tortoise>- svn (8)

Mi repositorio SVN fue perfecto en la revisión 497. Realicé varios commits malos, por lo que ahora está en la revisión HEAD. Veo que para deshacer, debe usar un comando como este:

svn merge -r HEAD:497 .

mientras está en el directorio de trabajo (y el directorio de trabajo está en la revisión HEAD). ¿Pero ese es el comando correcto? ¿O uso HEAD: 498? o 496? Ya ejecuté ese comando y la revisión actual no parece ser la misma que la 497, porque cuando actualizo -r 497 (o cuando tengo una copia de trabajo 497 y actualizo -r HEAD), ocurren muchas actualizaciones de archivos .

¿Tengo algún tipo de problema de fencepost, donde HEAD: 497 realmente revierte a 496, o algo así? ¿O es que cuando actualizo, SVN retrocede en cada revisión, a pesar de que HEAD y 497 son idénticos?

Editar:

Solo para aclarar, como dije antes cuando actualizo entre 497 y mi HEAD fusionado, veo que se producen muchos cambios de archivos. Pensé que si 497 y HEAD eran idénticos, lo detectaría y no se producirían cambios en los archivos; simplemente diría "Actualizado a la revisión 497". Entonces, ¿mi comando está equivocado o es incorrecto? (y si es así, ¿por qué?)



Considere HEAD: 150 revertir r1 = 100 y r2 = 90

  1. svn up
  2. svn merge -r 100: 99
  3. svn merge -r 90:89

Nota: ¡Estos cambios no revertirán la carpeta EXTERNALS!




Para revertir un cambio no deseado (quizás haya cometido otros archivos que contenían declaraciones de depuración, junto con algo que realmente deseaba confirmar), diga que el cambio malo fue -r10:

svn update svn merge -r10:9 <URL of your repository base> .

Ahora puedes recuperar el archivo que deseas comprometer:

svn update svn update -r10 svn commit <just that one file> # this is the command you meant to type from the beginning


Si desea deshacer r123, necesita svn merge -r 123:122 .

Esto significa que debes correr

svn merge -r HEAD:497 .

Para verificar la ejecución:

svn diff -r 497


Si desea una manera rápida y confiable para deshacer una revisión en particular, simplemente revise la versión anterior del repositorio.

Ejecute svn info para recordar cuál es la URL de su repositorio, luego cree una nueva carpeta y revise la revisión que desea:

cd <your new folder> svn checkout <URL> -r 497 .

Luego puede diferenciar esa carpeta de su carpeta existente y puede volver a enviar esa revisión completa al repositorio si es necesario.


Si su repositorio se encontraba en perfectas condiciones en la revisión 497, entonces creo que está en lo correcto, debe hacer una:

svn merge -r HEAD:497 .

Ese comando de fusión solo cambiará los archivos en su copia de trabajo, así que recuerde también comprometer los cambios para actualizar HEAD en el repositorio.

Después de hacer la fusión, seguido de la confirmación, intente comparar la revisión 497 con HEAD y deberían ser idénticos.