Как перенести репозиторий SVN с пользовательской структурой в Git? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть многомодульный унаследованный проект в SVN, где отдельные модули были выпущены и помечены отдельно, что привело к следующей структуре:

trunk/
  project/
    moduleX/
    moduleY/
    moduleZ/
tags/
  moduleX-1.0/
  moduleX-1.1/
  moduleY-0.1/
  moduleZ-2.0/

Похоже, что теги были созданы с svn copy trunk/project/moduleX/ tags/moduleX-1.0/ и т. Д., А не svn copy trunk/project/ tags/moduleX-1.0

Можно ли перенести такой проект в Git как единый репозиторий, сохранив историю и создав соответствующие теги?

1 Ответ

0 голосов
/ 18 мая 2018

Вам необходимо вручную настроить git-svn.

  1. Создать пустые репозитории: git init moduleX ; git init moduleY ; git init moduleZ
  2. Отредактировать каждый gitconfig и добавить раздел git-svn, например:

moduleX / .git / config:

[svn-remote "svn"]
    url = svn://your-server/svn-repo
    fetch = trunk/project/moduleX:refs/remotes/svn/trunk
    tags = tags/moduleX-*:refs/remotes/svn/tags/*

moduleY / .git / config:

[svn-remote "svn"]
    url = svn://your-server/svn-repo
    fetch = trunk/project/moduleY:refs/remotes/svn/trunk
    tags = tags/moduleY-*:refs/remotes/svn/tags/*

moduleZ / .git / config:

[svn-remote "svn"]
    url = svn://your-server/svn-repo
    fetch = trunk/project/moduleZ:refs/remotes/svn/trunk
    tags = tags/moduleZ-*:refs/remotes/svn/tags/*
git svn fetch в каждом экземпляре.
...