2008-09-18 17 views
11

Tengo 4 versiones del archivo A.txt en mi repositorio de subversión, por ejemplo: A.txt.r1, A.txt.r2, A.txt.r3 y A.txt.r4. Mi copia de trabajo del archivo es r4 y quiero volver a r2. No quiero utilizar "svn update -r 2 A.txt" porque esto eliminará todas las revisiones después de r2, es decir, r3 y r4.¿Cómo volver a una versión anterior de un archivo sin borrar sus revisiones posteriores?

Entonces, ¿hay alguna forma de actualizar mi copia de trabajo a r2 y aún tener la opción de cambiar a r3 y r4 más tarde? Dicho de otra manera, aún quiero poder ver las 4 revisiones usando "svn log A.txt" después de hacer la actualización.

Respuesta

3

No tengo mucha experiencia con Subversion así que discúlpeme si este método no funciona en este entorno.

En esta situación siga estos pasos:

  1. desproteger el archivo en cuestión listo para su edición como R4
  2. sobrescribir la copia local del archivo con la revisión que necesita, en este caso r2
  3. Entrada/cometen este " nueva " revisión del archivo como R5 con un comentario apropiado

esta manera, cuando usted va a través y nuestra historia archivo que va a ver algo como:

  • r1
  • r2
  • R3
  • R4
  • R5 (comentario: "volvió a contenido r2")
2

al actualizar a una versión anterior no se eliminarán las nuevas versiones.

por lo que podría hacer svn up -r2 file, luego svn up -r4 file.

Además, no podría confirmar el archivo r2 de esta manera, porque tendría que actualizar antes de confirmar y terminaría con r4 nuevamente.

2

"No quiero usar" svn update -r 2 A.txt "porque esto eliminará todas las revisiones después de r2, es decir, r3 y r4."

Uh ... no lo hará, en realidad. Pruébalo: haz una actualización regular de svn después de -r 2 one y verás la copia de trabajo actualizada de nuevo a r4.

+0

Sí, tiene razón! – Martin08

1

La actualización no eliminará ninguna revisión en el servidor. Los únicos cambios que hace son a su copia de trabajo local:

SVN Update Command

"trae cambios del repositorio a su copia de trabajo"

"sincroniza la copia de trabajo para la revisión propuesta por el --revision cambiar "

10

El comando svn up -r 4 solo actualiza su local copia a la revisión 4.

El servidor todavía tiene todas las versiones 1 a lo que sea.

Lo que se quiere hacer, es crear una nueva revisión, número de revisión 5, que es idéntico al número de revisión 2.

cd /repo 
svn up -r 2 
cp /repo/file /tmp/file_2 
svn up -r 4 
cp /tmp/file_2 /repo/file 
svn commit -m "Making 5 from 2" 

Si alguna vez cambia de opinión y desea volver 4, se puede hacerlo mediante la creación de revisión 6 de revisión 4.

cd /repo 
svn up -r 4 
cp /repo/file /tmp/file_4 
svn up -r 5 
cp /tmp/file_4 /repo/file 
svn commit -m "Making 6 from 4" 

feliz piratería.

(Hay, por supuesto, una manera de hacer lo anterior en tan sólo 2 comandos creo, pero ha sido un tiempo desde que hice y puede ser un poco confuso)

26

Para hacer una nueva revisión de una .txt que es igual a la revisión 2:

svn up -r HEAD 
svn merge -r HEAD:2 A.txt 
svn commit 

véase también la descripción en Undoing changes.

3
svn update -r 2 A.txt 

Este comando no eliminar las versiones en el repositorio. Se fijará su copia de trabajo de A.txt sea la revisión 2. Se puede ver esto haciendo

> svn status -u A.txt 
    *  2 A.txt 

La salida de este comando show que está viendo la versión 2, y que hay actualizaciones (que es el *)

Después de hacer esta actualización, tendrá todavía ser capaz de hacer " svn log" y ver todas las revisiones.

Realizando "svn update A.txt "le devolverá a la última versión (en su caso, r4).

Cuestiones relacionadas