Tengo un repository SVN grande (~ 40k de revisiones), en el que se creó una twig de características particular hace mucho time (aproximadamente 15k) para la versión actual del producto. Sin embargo, otras cosas tuvieron prioridad y se retrasaron algunas versiones, hasta ahora.
Con el time, la sucursal se mantuvo actualizada con fusiones de troncales y otras subdivisiones, y aún se desarrolla y funciona bien en su estado actual.
Sin embargo, intentar switch
entre esta twig y el tronco da como resultado muchas acciones de borrado de lectura (presumiblemente porque desde el punto de bifurcación común, los files se agregaron a la troncal y luego se fusionaron a la twig de características, por lo que ahora se ven como reemploops en lugar de modificaciones). Si bien esto no es directamente dañino en sí mismo en un tree limpio, sí se pierde el time y el tráfico de la networking y causa conflictos importantes en lugar de fusiones silenciosas si se cambia con un tree sucio.
En consecuencia, me gustaría volver a establecer una base de esta sucursal borrándola, creando una nueva bifurcación nueva desde el tronco actual, y luego fusionando todos los cambios "reales" de la twig anterior. (La idea es que esto simplificará los conmutadores futuros y hará que sea más fácil ver cuáles son los cambios reales).
La mayoría de los consejos que puedo encontrar sobre el tema dicen simplemente merge old-feature-branch
y dejar que el seguimiento de fusión se encargue del rest. Sin embargo, lo he intentado (hasta ahora solo con el button Prueba de combinación de TSVN) algunas veces y con algunos subsets más pequeños de revisiones, pero inevitablemente tengo conflictos masivos en todo tipo de files que nunca deberían haber sido tocados por los viejos. feature-branch en primer lugar.
Cuando lo bash con una combinación real (a partir de una copy de trabajo en new-feature-branch, svn merge svn://url/branches/old-feature-branch
), svn merge svn://url/branches/old-feature-branch
este error:
svn: E160013: File not found: revision 38143, path '/branches/new-feature-branch'
Lo cual, está bien, claro, la nueva twig de características no se creó hasta 38509, entonces no existe. Pero no sé por qué parece pensar que podría ser así. Esa revisión en particular no era nada sofisticada, solo un pequeño cambio al trunk que ya debería estar en la historia de la nueva function de la twig y por lo tanto no se fusionó de todos modos.
¿Hay alguna herramienta o procedimiento que pueda seguir que simplifique esto o solo tengo que abrirme paso a través de todas las revisiones y conflictos manualmente? Estoy de acuerdo con "aplastar" el historial en una única confirmación o una serie más pequeña de confirmaciones que las que se hicieron originalmente en la sucursal.
old-feature-branch
en trunk
y old-feature-branch
en new-feature-branch
no será muy diferente: ambas fusiones comenzarán desde el mismo (muy antiguo) branchpoint, new-feature-branch path ser incluso 1 revisión más time old-feature-branch
) svn mergeinfo --show-revs eligible ...
entre treees svn mergeinfo --show-revs eligible ...
y fusionarse paso a paso ( svn merge -c
– less desastres en cada combinación) old-feature-branch
) no es importante y no es necesario en new-feature-branch
, puede replace el contenido en una nueva twig
old-feature-branch
en $ ALGO new-feature-branch
de new-feature-branch
desde HEAD del trunk y tráelo new-feature-branch
con $ ALGO new-feature-branch
old-feature-branch