Как повторно синхронизировать Git с SVN-деревом? - PullRequest
4 голосов
/ 29 марта 2010

Фон

Я добавляю некоторые функции в проект, который использует subversion - я использую git-svn для клонирования его в свой локальный репозиторий, git-svn rebase, чтобы сохранить последние изменения в официальном стволе и сохранить историю линейной ,

Недавно я забыл о себе и сделал несколько слияний, которые испортили мой перебазирование - короче говоря, мне нужно было потратить некоторое время на вишневый пик, чтобы история снова стала линейной. После этого 1 rebase прошел нормально, но теперь попытка сделать git-svn rebase показывает конфликт между коммитами subversion 2008 года (около 700 коммитов назад), хотя история кажется линейной.

Вопрос

  1. Есть ли способ пересобрать / повторно синхронизировать мой git-репозиторий с svn trunk?
  2. Если я клонирую свой репозиторий git на другом компьютере (без папки .git / svn) - возможно ли перебазировать его с помощью svn, зная URL-адрес репо и последнюю ревизованную версию?

1 Ответ

2 голосов
/ 29 марта 2010

Вы можете сбросить вашу ветку на коммит, который определенно синхронизирован (какой-то старый), а затем выполнить ребаз для синхронизации.

Чтобы сохранить изменения, сделанные локально, вы, возможно, захотите выполнить ветвление раньше (и выберите нужные изменения из этой новой ветки afterwatds)

git branch branch_with_my_changes
git reset --hard very_old_commit_that_is_synced
git svn rebase
...