lamento usar un poco de espacio solo para reiterar la respuesta dada anteriormente, pero esto es algo con lo que siempre termino en problemas.
Digamos que actualicé los archivos locales a la última revisión, que es 854. Luego, me gustaría obtener una revisión anterior: la versión del archivo de algunas revisiones anteriores, digamos la revisión 851.
Copiar funcionaría:
svn copy -r 851 svn+ssh://<repository URL>/l3toks.dtx ./l3toks.dtx
.. sin embargo, no puedo molestarme grepping para la URL del repositorio :)
La actualización aparentemente podría funcionar:
svn up -r 851 ./l3toks.dtx
... sin embargo, también marca la copia local como "recién retirada", o más bien "igual que la revisión en línea" (es decir, en Tortoise / RabbitVCS obtienes una marca de verificación verde OK), lo que significa que no puedes hacerlo svn ci -m "rolled back to r 851"
: simplemente porque el local subversion
El ejecutable no notará ningún cambio local y no se molestará en cargar nada en el repositorio en línea.
Y, como ya se respondió, la fusión inversa funciona, pero en este caso, no se debe confiar en la sintaxis de acceso directo; pero específicamente declara:
svn merge -r HEAD:851 l3toks.dtx
--- Reverse-merging r854 through r852 into 'l3toks.dtx':
U l3toks.dtx
Debo admitir que nunca entendería la frase " Fusión inversa de r854 a r852 en el archivo " que significa " Acabo de obtener r851 de su archivo y sobrescribí lo que tenía anteriormente localmente, y está marcado como diferente de la última revisión en línea, así que puedes volver a revisarlo en línea como una nueva revisión de " reversión ", pero supongo (y espero :) que eso es lo que hace :)
Después de esto, uno puede usar svn diff
para asegurarse rápidamente si recuperamos localmente la revisión correcta; y también, el archivo estará marcado con un signo de exclamación rojo en Tortoise / RabbitVCS (es decir, diferente de la última versión confirmada), por lo que svn ci -m "rolled back to r 851"
puede ejecutarse esta vez.
Además, tenga en cuenta que si finalmente cambia de opinión después de la fusión inversa ( es decir, de todos modos quiere seguir trabajando en la última revisión HEAD, aquí 854) después de haber regresado a 851 localmente, pero aún no ha cometido la reversión ), no debe usarlo svn up
, ya que simplemente dirá que ya está " en la revisión 854 "; utilizar en su lugar svn revert --recursive .
o similar ...
¡Salud!
Ref: Cómo deshacer los cambios usando Subversion - Jacob Wright - Flex, AIR, PHP, etc.
EDITAR: ... y aparentemente, el mismo efecto que svn merge -r HEAD:851 l3toks.dtx
se puede lograr con:
svn export -r 851 l3toks.dtx
A l3toks.dtx
Export complete.