Pregunta

Digamos que he cometido algunos cambios incorrectos en el repositorio de Subversion.Luego hago buenos cambios que quiero conservar.

¿Cuál sería la forma más sencilla de revertir esos cambios incorrectos en Eclipse y mantener los cambios buenos?Suponiendo que los archivos relacionados con cambios incorrectos no son los mismos que los relacionados con cambios buenos.¿Cómo cambian las cosas si se realizaron cambios buenos en los mismos archivos que cambios malos?

Principalmente estoy buscando una manera de hacer esto a través de complementos de Eclipse (Subclipse o Subversive), pero los comandos de línea de comandos también son interesantes.

¿Fue útil?

Solución

Tienes dos opciones para hacer esto.

Quick and Dirty selecciona sus archivos (usando control) en la vista Explorador de proyectos, haga clic derecho en ellos, elija Replace with... y luego eliges la mejor opción para ti, desde Latest from Repository, o algunos Branch versión.Después de obtener esos archivos, los modifica (con un espacio, o arregla algo, los llama y los confirma para crear una revisión más nueva).

Una forma más limpia es elegir Merge en el menú del equipo y navegue por el asistente que le ayudará a recuperar la versión anterior en la revisión actual.

Ambos comandos tienen sus equivalentes en la línea de comandos: svn revert y svn merge.

Otros consejos

En Eclipse Ganímedes (Subclipse)

Seleccione el proyecto/archivo que contiene cambios incorrectos 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 donde se cometieron "cambios incorrectos" y en el menú emergente elija:

Revertir cambios de la Revisión X

Esto fusionará los cambios en los archivos modificados dentro de una revisión incorrecta, con la revisión anterior a la revisión incorrecta.

Hay dos escenarios a partir de aquí:

  1. Si no realizó ningún cambio 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 combinan con su copia de trabajo, por lo que debe confirmarlos.

  2. Si realizó algunos cambios para ese archivo (la revisión incorrecta no es la última revisión de ese archivo), tendrá que resolver el conflicto manualmente.Digamos que tiene el archivo readme.txt y el número de revisión incorrecto es 33.Además, realizó 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:

Léame.txt.merge-left.r33 - mala revisión

Léame.txt.merge-right.r32 - antes de una mala revisión

readme.txt.trabajando - versión de copia de trabajo (igual que en r34 si no tiene ningún cambio no confirmado)

El archivo readme.txt original se marcará como conflictivo y contendrá una versión fusionada (donde se eliminan los cambios de una mala revisión) con algunos marcadores (<<<<<<< .working, etc.).Si solo desea eliminar los cambios de una revisión incorrecta y conservar los cambios realizados después de eso, entonces 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, debes realizar cambios.

Tenga en cuenta que esto no elimina la revisión del historial de revisiones en el repositorio svn.Simplemente realizó una nueva revisión donde se eliminan los cambios de una mala revisión.

Si desea crear 1 archivo a la vez, puede ir a la vista Historial del archivo, asumiendo que tiene instalado un complemento Eclipse SVN."Equipo->Mostrar historial"

En la vista Historial, busque la última versión buena de ese archivo, haga clic derecho y elija "Obtener contenido".Esto reemplazará su versión actual con el contenido de esa versión.Luego podrás confirmar los cambios cuando lo hayas arreglado todo.

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 active la casilla de verificación "Fusión invertida".

Fusionar como de costumbre.

He escrito un par de publicaciones de 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/first-chances/

El svnbook tiene una sección sobre cómo Subversion le permite revertir los cambios de una revisión 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 puedes hacer esto desde el diálogo de registro;simplemente haga clic derecho en la revisión que desea revertir y seleccione "Revertir cambios de esta revisión".

En el caso de que los archivos para los que desea revertir "cambios incorrectos" tuvieran "cambios buenos" en revisiones posteriores, entonces 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.

Tengo el mismo problema pero la opción CleanUp eclipse no me funciona.

1) instalar TortoiseSVN
2) Vaya al Explorador de Windows y haga clic derecho en el directorio de su proyecto.
Opción de limpieza de 3 opciones (marcando la opción de bloqueo de rotura)

Funciona.

Espero que esto ayude a alguien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top