1

Наша команда разработчиков в настоящее время использует SVN для управления разработкой наших веб-приложений. Разработчик, управляющий сервером SVN, пытается перенести его со старого сервера Win XP на другой сервер, но попытаться вывести дамп хранилища не удается (повреждение или что-то в этом роде). Почему это не так - это отдельный вопрос.

Разработчик, управляющий репозиторием SVN, предложил экспортировать текущий HEAD старого репо для использования в качестве основы нового репозитория SVN, но мы потеряем всю нашу историю SVN. Я использую git-svn локально, что означает, что у меня есть 1,5 года коммитной информации, хранящейся локально. Есть ли способ получить эти коммиты из git-svn и поместить их в новый репозиторий SVN?

1 ответ1

0

Если вы создаете новое пустое репозиторий SVN, можете ли вы вставить все коммиты из git-svn прямо в репо? (я не использовал git или git-svn, но это то, что я сделал бы с одним из моих репозиториев hg, если мне нужно было поместить его в репозиторий svn)

Редактировать: мне удалось заставить это работать с ручным перебазированием через Mercurial. Единственное, что кажется особенным, это ручная перебазировка вместо автоматической перебазировки svn. Вы можете попробовать это в git-svn перед тем, как добавить в смесь Mercurial.

  1. Создать новый SVN Repo: svnadmin create targetSVN
  2. Сделайте начальную фиксацию на новом репозитории SVN:

    svn co file://targetSVN svnCopy cd svnCopy
    touch test
    svn add test; svn commit -m "Initial Import"

  3. Проверьте репо через hg: hg clone file://targetSVN hgCopy; cd hgCopy
  4. Извлеките изменения из git (через hg-git): hg pull git://yourrepo.git
  5. Ручная перебазировка: hg rebase -s tip -d 0 (0 должен быть начальным коммитом SVN, а tip должен быть главой материала, который вы извлекли из git. Убедитесь, что наборы изменений git являются линейными (без слияний!). Замените tip на фактический номер набора изменений для головы мерзавца (найденный через hg heads), если необходимо). Примите все удаленные изменения, когда он спрашивает о конфликтах.
  6. hg push пока все изменения не будут в репозитории svn. Это выдвигает 1 набор изменений за раз.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .