Как перенести часть репозитория SVN с историей в новый репозиторий Git? - PullRequest
4 голосов
/ 18 января 2012

Мне нужно перенести часть репозитория SVN в git.

Например, корень SVN: http://example.com/svn/project и мне нужно перенести подкаталог проекта, например http://example.com/svn/project/trunk/foo/bare.

Я пытался использовать:

git svn clone http://example.com/svn/project \
    -Ttrunk/foo/bare --no-metadata -A ~/authors-transform.txt ~/temp

После этой команды я получаю git-репо с двумя ветвями: trunk и trunk@61, но мне нужна только одна ветвь.Мне нужно сделать, чтобы получить только одну ветку после миграции?

1 Ответ

2 голосов
/ 18 января 2012

Удалите ветку, которая вам не нужна, конечно.Но вы потеряете историю до версии 61.

trunk@61 существует, потому что импортируемый каталог был заменен.Таким образом, git svn не видит продолжения истории.Поэтому он записал значение ref в этой ревизии и начал заново.

Поскольку это однократное преобразование, вы можете использовать graft для подключения истории, filter-branch для перезаписи, поэтому файл graftне требуется (см. документацию ветки фильтра), а затем удалите ненужную ветку.

...