SVN: ¿Cómo puedo mover una twig por encima de la otra?

Debido a una mala administración de nuestro repository SVN, terminamos creando una twig, denominada Stable, que contenía una compilation estable de nuestro código (la twig realmente comenzó a partir de una label de la última versión, en lugar de la troncal).

Básicamente, el tronco ha sido "infectado" por algunos cambios realizados por nuestro nuevo progtwigdor, que realmente no sabía lo que estaban haciendo.

Lo que quiero lograr es hacer que la twig estable sea la troncal, descartando todos estos cambios desde que se produjo la twig, sin embargo, debo asegurarme de conservar toda la historia antes de la sucursal.

¿La twig contiene todo el historial antes de que ocurra la twig? (¿En cuyo caso creo que puedo mover la twig para convertirme en el tronco?)

Todos los tutoriales que puedo encontrar hablan sobre la fusión … Pero estoy nervioso por eso, porque si mi entendimiento es correcto, si hay cambios en el enlace que no suceden en conflicto, terminaría con estos en la versión estable.

Entonces, la pregunta es ¿cuál es mi mejor opción para esta situación?

¡Gracias de antemano por sus comentarios!

En su situación, le recomendaría deshacer los cambios en su troncal mediante fusión. Puede especificar los numbers de revisión en el order inverso al command de combinación utilizando el enlace troncal como fuente y destino para la fusión. Por ejemplo, en el directory de trabajo para el enlace troncal (tenga en count que puede preferir utilizar las URL del repository):

svn merge .@Y .@X . 

revertirá los cambios realizados desde la revisión X a la revisión Y. También tenga en count que el command svn merge tiene una opción –dry-run para que pueda verificar lo que se hará antes de realizar cambios.

Recuerde que una de las razones por las que utiliza el control de versiones es para poder mantener un historial de los cambios y hacerlos retroceder si es necesario. Incluso si no lo crees ahora, los commits erróneos en el trunk son tal vez algo a lo que querrás referirte en el futuro.

Sí, la twig contiene todo el historial anterior a la copy … por lo que puede simplemente eliminar su troncal actual, y copyr o cambiar el nombre de su twig al tronco y debe estar listo para continuar.

Desde svn log --help :

Cada post de logging se imprime solo una vez, incluso si se solicitaron explícitamente más de una de las routes afectadas para esa revisión. Los loggings siguen el historial de copys de forma pnetworkingeterminada. Utilice –top-on-copy para deshabilitar este comportamiento, que puede ser útil para determinar puntos de ramificación.

Hay algunas opciones:

  1. Puede mover sus directorys en SVN como si (casi) estuviera organizando sus directorys locales. Toda la historia se mantendrá. (que includeía sus 'movimientos por supuesto)

  2. Si desea llevar el repository a un estado donde este error no estará en el historial, puede usar las funciones de administración para eliminar los sets de cambios no deseados y agregarlos manualmente al lugar apropiado. Esto puede ser tedioso y es posible que tenga que examinar sus numbers de revisión si se hace reference a ellos en otro lugar.

Mientras tanto, sugiero que se decida una estrategia con el equipo para evitar confusiones.

Me encantó la manera en que describiste los cambios de este progtwigdor. Así que si:

  • Realmente odias a este progtwigdor y quieres borrar todo rastro de sus acciones
  • tienes acceso de administrador al repository

podrías intentar hacer un svnadmin dump -rX:Y para volcar el repository hasta la revisión infectada , borrar el repository actual y restaurarlo con el no infectado .