Pregunta Revertir o revertir el repositorio svn completo a una revisión anterior


Me equivoqué en mi repositorio SVN y ahora necesito revertir todo el repositorio desde la revisión 28 a la 24 y no quiero lidiar con diferencias o conflictos. ¿Hay una manera rápida y simple de hacer esto? Pude revertir los archivos individuales antes de solucionarlos con el comando de combinación, pero en este caso quiere volver a agregar todos los archivos en el repositorio desde la revisión 28 cuando lo único que realmente quiero hacer es eliminarlos.

Estoy usando la línea de comando en un cuadro de Linux (bash).

Gracias

EDITAR

¡Gracias por toda la ayuda! Lo arreglé por:

svnadmin create /svnroot/<repo>.fixed
svnadmin dump -r 1:24 /svnroot/<repo> --incremental > dump.svn
svnadmin load /svnroot/<repo>.fixed < dump.svn

Luego, colocando el repositorio anterior en una ubicación de respaldo y moviendo el archivo repo.fixed al repositorio.

¡Gracias de nuevo!


74
2017-12-31 02:36


origen


Respuestas:


Echa un vistazo a svnadmin dump / load. Crea un archivo de texto con cada versión de tus archivos. Es posible eliminar todo lo anterior / debajo de cierto punto y volver a importarlo.

Ver por ejemplo Migración de datos de repositorio en otros lugares


26
2017-12-31 03:23



Una combinación "inversa" puede ser lo que necesita. Ver "deshacer cambios" sección de svn book.

P.ej.   svn merge -r 28:24 [ruta a svn]


25
2017-12-31 03:00



Si realmente necesita borrar la 'evidencia' de que los archivos alguna vez existieron, debe hacer las acciones svndump / svnload descritas anteriormente.

En una situación "normal", en la que cometió un error, debe usar fusión inversa. Esto asegura que deshacer los cambios después de r24 también se puede revertir, diferir, etc.

El siguiente comando debería funcionar para deshacer los cambios (debe confirmar el resultado de la fusión para reflejar la fusión en el repositorio)

svn merge -r 28:24

14
2017-12-31 19:41



Si tiene acceso al servidor SVN, puede simplemente editar path/db/current, coloque allí el número de revisión anterior que desea revertir (aquí: 24) y elimine los archivos de revisión que ya no necesite (es decir, 25, 26, 27, 28) desde path/db/revs/0/. Al menos esto funcionó para mí hoy, después de haber eliminado accidentalmente un directorio en el repositorio.


13
2017-10-26 22:14



Si no haces uso de los derechos de administrador, entonces no puedes borrar ninguna revisión anterior, PERO aún puedes ocultarlos extremadamente bien con solo un comando "svn copy" increíblemente simple (nickf y JesperE ya lo mencionan, pero de una manera bastante críptica)

svn delete protocol: // svnserver / some / resource
  svn copy protocol: // svnserver / some / resource @ 24 protocolo: // svnserver / some / resource

Y eso es todo, las revisiones 25 a 28 han desaparecido por completo de svn log. No es un truco en absoluto, es una característica segura y (apenas ...) documentada.

Si "resource" es un directorio, debe quitarlo de la última URL:

svn copy protocol: // svnserver / some / directory @ 24 protocolo: // svnserver / some /

(de lo contrario, lo copiarías dentro de sí mismo)


6
2017-08-30 11:37



Para cualquiera que use TortoiseSVN, la solución es simple:

  • ver registro de cambios
  • haga clic derecho en la revisión que desea revertir a ...
  • ... selecciona "Volver a esta revisión"
  • cometer sus cambios

Este método conserva el historial de versiones (es decir, todas las revisiones que ha revertido).


5
2018-02-20 02:03



Puede hacer un nuevo pago de una revisión en particular. http://svnbook.red-bean.com/en/1.1/re04.html

svn co path/to/my/repo -r 24

3
2017-12-31 02:41



Si realmente desea eliminar por completo los archivos del repositorio, debe hacer una svndump en un archivo, filtrar las revoluciones y / o rutas de archivos que no desea, crear un nuevo repositorio y svnload el volcado filtrado en el nuevo repositorio. Querrá leer detenidamente la sección del libro SVN sobre el mantenimiento del repositorio antes de hacer nada de esto, y asegúrese de no eliminar el repositorio existente hasta que esté seguro de que el nuevo tiene lo que desea.


2
2017-12-31 03:40