Ho usato git-svn
per creare un mirror git di un repository SVN. La struttura all'interno di SVN era un po 'fuori standard, quindi git ha creato un ramo che non ha commit in comune con il ramo master
.git - impostazione di un genitore di commit senza rebase
A---B---C topic
D---E---F---G master
So che commettere A
è basato commettere E
e sono abbastanza positivo che ho risolto i problemi che causano git non riconoscere questo fatto (tramite filter-branch
). Quello che voglio fare è riattaccare topic
al ramo master
, impostando E
come il genitore di A
:
A---B---C topic
/
D---E---F---G master
git-rebase
non sembra funzionare per me, perché il diff per commettere A
liste la creazione di un un numero intero di file già esistenti in master
, con un numero enorme di conflitti.
Dalla mia comprensione di git è sufficiente impostare E
come genitore di A
dovrebbe essere sufficiente per risolvere tutti i problemi.
È possibile? Se lo è, come posso farlo?
Qualsiasi possibilità di riavviare il mirror git della svn che punta "rami" alla directory giusta? O aggiustando prima la struttura svn? – stefanw
in realtà il repository ha utilizzato il layout standard tronco/tag/rami. Tuttavia, il ramo che stavo cercando di risolvere è stato creato copiando solo un sottotracciato del trunk - indovina un po 'troppo per git-svn da gestire. –
rebase ha l'opzione 'root'. Usalo con 'on' e' preserve-merges' se ne hai bisogno. –