Oxyd
@Oxyd
Linux enthusiast

Как правильно перенести SVN репозиторий, с проблемами в структуре, c sourceforge.net на GIT (github)?

Всем привет!
В общем есть такая проблема. Есть SVN репа проекта на sourceforge с любовно разложенными граблями и есть желание как можно более незаметно, по коммитам, и как можно более правильно, перенести его на гитхаб. Текущая структура не сложная -- транк, одна ветка, один тэг, всё по стандартным путям. Проблема в том, что до ревизии 774 ничего этого не было, даже транка! То-есть, по сути, транк проекта лежал непосредственно в корне репозитория, потом опомнились, но грабли остались. Итак, хочется: Перенести проект на GitHub с сохранением всех коммитов, тэгов и веток так, как буд-то досадного недоразумения в виде лежащих в корне файлов проекта никогда не было.
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
Oxyd
@Oxyd Автор вопроса
Linux enthusiast
Всё, проблема решена! Спасибо камраду pavel_mayorov со StackOverflow. Короче, если у кого-то подобная проблема, то делаем так:
git svn clone -r1:1 --ignore-paths="^[^/]+/(?:branches|tags)" --preserve-empty-dirs --placeholder-filename=dummy.txt -A svn-git_users.txt url://to.root.of.svn.repo/ local/path/to/git-repo
Этим мы проиничиваем репозиторий и сливаем самый первый коммит. Далее сливаем репу но только по тот коммит который последним жил в корне репозитория: cd local/path/to/git-repo && git svn fetch -r2:773 После этого, "по совету друзей" (C) правим ./.git/config и вновь фетчим уже оставшиеся коммиты: git svn fetch, сбрасываем HEAD на действительно последний коммит: git reset --hard e4a54bd9(Хэш последнего слитого коммита) всё, телемаркет. Выкачивание веток и тэгов, приведение репы в удобоваримое состояние и pull на гитхаб, остаётся уже чисто технической задачей, про которую написано во всем известной книжке и статьях на хабре. Результаты можно посмотреть здесь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
Есть стандартное средство git svn
Он пройдется по истории и сделает все как надо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы