2008-08-30 15 views
73

Digamos que he cometido algunos cambios incorrectos en el repositorio de Subversion. Luego, realizo buenos cambios, que deseo mantener.Revertir los cambios incorrectos con svn en Eclipse

¿Cuál sería la forma más fácil de deshacer esos malos cambios en Eclipse y conservar los buenos cambios? Suponiendo que los archivos relacionados con los malos cambios no son los mismos que los relacionados con los buenos cambios. ¿Cómo cambian las cosas si se hicieron buenos cambios en los mismos archivos que en los malos?

Principalmente busco la forma de hacerlo a través de los complementos de Eclipse (Subclipse o Subversivo) pero los comandos de línea de comandos también son interesantes.

Respuesta

30

Tiene dos opciones para hacer esto.

La rápida y sucia es seleccionar los archivos (usando ctrl ) en el Proyecto de vista del explorador, haga clic en ellos, elegir Replace with... y luego elegir la mejor opción para usted, desde Latest from Repository, o alguna versión Branch. Después de obtener esos archivos, los modifica (con un espacio, o corrige algo, su llamada y los compromete a crear una revisión más reciente.

Una forma más limpia es elegir Merge en el menú del equipo y navegar por el asistente que le ayudará . a la recuperación de la antigua versión de la revisión real

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

+0

Lo último del Repositorio es el que se registró incorrectamente, por lo que no veo dónde debería ser útil. Además de esto, eclipse no quiere ayudarte con este problema porque solo la opción de mención está disponible si seleccionas varios archivos (probablemente porque su última versión es diferente). – Macilias

1

el svnbook tiene una sección sobre cómo Subversion le permite revertir los cambios de una revisión en particular sin afectando los cambios que ocurrieron en revisiones posteriores:

http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo

No consumo Eclipse mucho, pero en TortoiseSVN que puedo hacer esto desde el registro del diálogo; 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" hayan tenido "buenos cambios" en las revisiones posteriores, el proceso es el mismo. Los cambios de la revisión "incorrecta" se revertirán dejando intactos los cambios de las revisiones "buenas", sin embargo, es posible que se generen conflictos.

70

En Eclipse Ganimedes (Subclipse)

Seleccionar proyecto/archivo que contiene mal el cambio, y desde el menú emergente elija:

equipo -> Mostrar historia

Las revisiones relacionadas con ese proyecto/archivo se muestra en la ficha Historial.

Búsqueda de revisión donde se cometieron "malos cambios" y en el menú emergente, seleccione:

Revertir cambios de Revisión X

Esto combinar los cambios en el archivo (s) modificados dentro mala revisión, con revisión antes de la mala revisión.

Hay dos escenarios de aquí:

  1. Si cometió ningún cambio para ese archivo (mala revisión es la última revisión de ese archivo), simplemente retire los cambios realizados en la mala revisión. Esos cambios se combinan con su copia de trabajo, por lo que debe comprometerlos.

  2. Si ha realizado algunos cambios para ese archivo (la mala revisión no es la última revisión de ese archivo), tendrá que resolver manualmente el conflicto. Supongamos que tiene el archivo readme.txt con, y el número de revisión incorrecto es 33. Además, ha realizado otro commit para ese archivo en la revisión 34. Después de elegir Revert Changes from Revision 33, tendrá los siguientes pasos en su trabajo copia:

readme.txt.merge-left.r33 - mala revisión

readme.txt.merge-right.r32 - antes de mala revisión

léame.txt .w RABAJAR - trabajando versión impresa (igual que en r34 si usted no tiene ninguna cambios no confirmados)

léame.txt original estará marcado en conflicto, y contendrá la versión fusionada (donde se eliminan los cambios de mala revisión) con un poco de marcadores (< < < < < < < .trabajo, etc.). Si solo desea eliminar los cambios de la mala revisión y mantener los cambios realizados después, 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 en el archivo original. Lo que elija, cuando haya terminado, el conflicto resuelto por la marca

equipo - Marcos resuelve

archivos temporales serán eliminados y su archivo serán marcados cambiada. Como en 1, debe 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 la mala revisión.

10

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

En la vista Historial, encuentre la última versión correcta de ese archivo, haga clic con el botón 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.

5

En Eclipse mediante subversivo:

Haga clic derecho en su proyecto> equipo> Combinar

En la ventana de fusión, seleccione la revisión que desea revertir lo más normal sino que también permiten casilla de verificación "Invertida fusión".

Combínelo como siempre.

0

Tengo el mismo problema pero la opción CleanUp eclipse no funciona para mí.

1) instalar TortoiseSVN
2) vaya a Windows Explorer y haga clic derecho en el directorio del proyecto opción
3 Elección CleanUp (por la opción de bloqueo de ruptura comprobación)

Es obras.

Espero que esto ayude a alguien.

Cuestiones relacionadas