Usé git-svn
para crear un espejo git de un repositorio SVN. La estructura dentro del SVN estaba un poco fuera de estándar, por lo que git creó una rama que no tiene una confirmación común con la rama master
.git - configuración de un padre de commit sin rebase
A---B---C topic
D---E---F---G master
Sé que cometen A
se basa de cometer E
y estoy bastante seguro de que lo he arreglado los problemas que causan git no reconocer ese hecho (usando filter-branch
). Lo que quiero hacer es volver a conectar topic
a la rama master
, el establecimiento de E
como padre de A
:
A---B---C topic
/
D---E---F---G master
git-rebase
no parece funcionar para mí porque el diff para cometer A
listas de la creación de una una gran cantidad de archivos que ya existen en master
, lo que resulta en una gran cantidad de conflictos.
Desde mi comprensión de git acaba de establecer E
como el padre de A
debería ser suficiente para resolver todos los problemas.
¿Esto es posible? Si es así, ¿cómo puedo hacerlo?
¿Alguna posibilidad de volver a iniciar el espejo git del svn apuntando "ramas" al directorio correcto? ¿O arreglando la estructura svn primero? – stefanw
en realidad el repositorio usó el diseño estándar de troncales/etiquetas/ramas. Sin embargo, la rama que estaba tratando de corregir se creó al copiar solo un subcampo del tronco, supongo que eso fue demasiado para git-svn. –
rebase tiene una opción 'root'. Úselo con 'onto' y' preserve-merges' si lo necesita. –