У меня есть два ответвления, прослеженные в репозитории Мерзавца от SVN. Ответвление B было создано в r6 в SVN путем копирования r5 Ответвления A. Когда я добавил Ответвление B к мерзавцу-svn, оно только отслеживает назад к r6. Я ожидал, что это соединит фиксацию Мерзавца проводом r6 на Ответвлении B к фиксации Мерзавца r5 на Ответвлении A.
Я попытался git rebase $(git svn find-rev r6 git-svn-BranchA) master-BranchB
, но это не работало на меня в этом сценарии, так как это повреждается последующий git svn rebase
попытки. Это думает, что должно объединиться и появляется как он, пытается повторно базироваться от git-svn-BranchA вместо git-svn-BranchB.
Как я добавляю, что SVN создал происходящее ответвление в мерзавце-svn?
Посредством взламывания и перевзламывания у меня был прорыв :)
Повторно основывайте удаленное к точке разветвления в SVN:
git rebase $(git svn find-rev r5 git-svn-BranchA) git-svn-BranchB
Непосредственно перепишите SHA мерзавца-svn, удаленного для Ответвления B:
git rev-parse HEAD > .git/refs/remotes/git-svn-BranchB
Удалите отслеживание ответвления BranchB из SVN:
git branch -D BranchB
Получите новое ответвление отслеживания для BranchB от SVN:
git checkout -b BranchB git-svn-BranchB
Восстановите информацию об отслеживании:
git svn rebase
Необходимо видеть вывод как:
Partial-rebuilding .git/svn/refs/remotes/git-svn-BranchB/.rev_map.########-####-####-####-############ ...
Currently at 9 = ########################################
r6 = ########################################
r7 = ########################################
r8 = ########################################
r9 = ########################################
Done rebuilding .git/svn/refs/remotes/git-svn-BranchB/.rev_map.########-####-####-####-############
Current branch BranchB is up to date.
Я действительно надеюсь, что у кого-то есть намного менее ужасная версия шага 2. Это походит на гротескный взлом мне.