Этот вопрос похож на этот и этот , но сценарий немного сложнее.
Я начал несколько лет назад с частного svn-репозитория (который я использую в основном для общих конфигурационных файлов и т.п. между различными машинами). Я не был слишком осторожен с макетом хранилища (где ветки, переходы и т. Д.), Поэтому со временем он сильно изменился. Это было, конечно, ошибкой, но сейчас уже слишком поздно. Совсем недавно я переместил его в более стандартную схему svn trunk / branch / tags, в основном с помощью команд svn move, но, конечно, старая история все еще присутствует в репозитории (и, честно говоря, немного беспорядок) .
Теперь я бы хотел преобразовать это навсегда в репозиторий git. Я пытался использовать git-svn, но кажется, что он обрабатывает только ситуации, когда соблюдается согласованное соглашение о соединительных линиях / ветвях / тегах (да, вы можете указать альтернативные имена, но, по-видимому, только одно для каждого). Довольно большая часть истории моего репозитория имеет ствол эффективно в корне репозитория, например, с тегами / и ветвями / в качестве подкаталогов.
Какой лучший способ справиться со всем этим? В идеале мне бы хотелось, чтобы в репозитории git, с которым я в конечном итоге работал, была как минимум вся доступная история, даже если ветви и теги не представлены должным образом как первоклассные концепции в git.
Точнее говоря, как svn-git будет обрабатывать файлы вне подкаталогов транка / ветвей / тегов, которые он предоставляет? Мои наблюдения пока таковы, что иногда они пропускают их (определенно, не в порядке), а иногда добавляют их в новый репозиторий.
Любые мысли приветствуются.