Użyłem git-svn
do utworzenia lustra git z repozytorium SVN. Struktura wewnątrz SVN była trochę poza standardem, więc git stworzył gałąź, która nie ma wspólnego z podziałem na gałąź master
.git - ustawianie elementu macierzystego commit bez podstawy bazy
A---B---C topic
D---E---F---G master
wiem, że zobowiązują A
opiera się popełnić E
i jestem całkiem pewny, że Naprawiłem problemy powodujące git nie uznać tego faktu (używając filter-branch
). Co chcę zrobić to ponownie załączyć topic
do master
branży, ustanawiając E
jako rodzica A
:
A---B---C topic
/
D---E---F---G master
git-rebase
nie wydają się działać dla mnie, bo diff do popełnienia A
list stworzenia cała masa plików, które już istnieją w master
, co powoduje ogromną liczbę konfliktów.
Z mojego rozumienia gita samo ustawienie E
jako rodzica A
powinno wystarczyć, aby rozwiązać wszystkie problemy.
Czy to możliwe? Jeśli tak, jak mogę to zrobić?
Czy istnieje szansa na ponowne zainicjowanie git mirror dla svn wskazując "branches" w prawym katalogu? Albo najpierw ustalając strukturę svn? – stefanw
W rzeczywistości repo wykorzystywał standardowy układ trunk/tags/branches. Jednak gałąź, którą próbowałem naprawić, została stworzona przez skopiowanie tylko ścieżki podrzędnej pnia - zgadnij, że było to trochę za dużo dla obsługi git-svn. –
rebase ma opcję 'root'. Użyj tego z 'na' i' zachowaj-scalenia', jeśli potrzebujesz. –