Digamos que he realizado algunos cambios incorrectos en el repositorio de Subversion. Entonces cometo buenos cambios, que quiero mantener.
¿Cuál sería la forma más fácil de revertir esos malos cambios en Eclipse y mantener los buenos cambios? Suponiendo que los archivos relacionados con cambios malos no son los mismos que los relacionados con cambios buenos. ¿Cómo cambian las cosas si se realizan cambios buenos en los mismos archivos que cambios incorrectos?
Principalmente estoy buscando una forma de hacer esto a través de los complementos de Eclipse (Subclipse o Subversive), pero los comandos de la línea de comandos también son interesantes.
fuente
En Eclipse Ganímedes (Subclipse)
Seleccione el proyecto / archivo que contenga un cambio incorrecto y, en el menú emergente, elija:
Equipo -> Mostrar historial
Las revisiones relacionadas con ese proyecto / archivo se mostrarán en la pestaña Historial.
Busque la revisión en la que se cometieron "cambios incorrectos" y, en el menú emergente, elija:
Revertir los cambios de la revisión X
Esto combinará los cambios en los archivos modificados dentro de una revisión incorrecta, con una revisión anterior a la revisión incorrecta.
Hay dos escenarios a partir de aquí:
Si no ha realizado cambios para ese archivo (la revisión incorrecta es la última revisión de ese archivo), simplemente eliminará los cambios realizados en la revisión incorrecta. Esos cambios se fusionan con su copia de trabajo, por lo que debe confirmarlos.
Si realizó algunos cambios para ese archivo (la revisión incorrecta no es la última revisión para ese archivo), tendrá que resolver el conflicto manualmente. Supongamos que tiene el archivo readme.txt con, y el número de revisión incorrecta es 33. Además, ha realizado otra confirmación para ese archivo en la revisión 34. Después de elegir Revertir cambios de la revisión 33 , tendrá lo siguiente en su copia de trabajo:
readme.txt.merge-left.r33 - revisión incorrecta
readme.txt.merge-right.r32 - antes de una mala revisión
readme.txt.working - versión de copia de trabajo (igual que en r34 si no tiene ningún cambio sin confirmar)
El archivo readme.txt original se marcará en conflicto y contendrá una versión combinada (donde se eliminan los cambios de la revisión incorrecta) con algunos marcadores (<<<<<<<. Funcionando, etc.). Si solo desea eliminar los cambios de una revisión incorrecta y mantener los cambios realizados después de eso, todo lo que tiene que hacer es eliminar los marcadores. De lo contrario, puede copiar el contenido de uno de los 3 archivos mencionados anteriormente al archivo original. Elija lo que elija, cuando haya terminado, marque el conflicto resuelto por
Equipo - Mark resuelto
Los archivos temporales se eliminarán y su archivo se marcará como modificado. Como en 1, debe confirmar los cambios.
Tenga en cuenta que esto no elimina la revisión del historial de revisiones en el repositorio svn. Simplemente hizo una nueva revisión donde se eliminan los cambios de la revisión incorrecta.
fuente
Si desea hacer 1 archivo a la vez, puede ir a la vista Historial del archivo asumiendo que tiene un complemento Eclipse SVN instalado. "Equipo-> Mostrar historial"
En la vista Historial, busque la última versión buena de ese archivo, haga clic derecho y seleccione "Obtener contenido". Esto reemplazará su versión actual con el contenido de esa versión. Luego, puede confirmar los cambios cuando lo haya arreglado todo.
fuente
En Eclipse usando Subversive:
Haga clic derecho en su proyecto> Equipo> Fusionar
En la ventana de combinación, seleccione las revisiones que desea revertir normalmente, pero también habilite la casilla de verificación "Combinación invertida".
Fusionar como de costumbre.
fuente
He escrito un par de publicaciones en el blog sobre este tema. Uno que esté centrado en Subclipse: http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html y uno que esté centrado en la línea de comandos: http: //blogs.collab. net / subversion / 2007/07 / second-chance /
fuente
El svnbook tiene una sección sobre cómo Subversion le permite revertir los cambios de una revisión en particular sin afectar los cambios que ocurrieron en revisiones posteriores:
http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo
No uso mucho Eclipse, pero en TortoiseSVN puede hacer esto desde el diálogo de registro; simplemente haga clic con el botón derecho en la revisión que desea revertir y seleccione "Revertir los cambios de esta revisión".
En el caso de que los archivos para los que desea revertir "cambios malos" tuvieran "cambios buenos" en revisiones posteriores, el proceso es el mismo. Los cambios de la revisión "mala" se revertirán dejando intactos los cambios de las revisiones "buenas", sin embargo, es posible que surjan conflictos.
fuente
Tengo el mismo problema, pero la opción CleanUp eclipse no me funciona.
1) instale TortoiseSVN
2) Vaya al explorador de Windows y haga clic derecho en el directorio de su proyecto
3 Opción de limpieza de elección (marcando la opción de bloqueo de rotura)
Funciona.
Espero que esto ayude a alguien.
fuente