преобразование репозитория svn в git с помощью reposurgeon

Я пытаюсь преобразовать репозиторий svn в git, используя reposurgeon.

Вот что я сделал (есть файл repo.map с именем svn -> отображение имени git):

svnadmin dump /home/subversion > repo.svn
reposurgeon "verbose 1" "repo.svn" "authors read" "write repo.fi"

reposurgeon работает много часов (много подкачки, так как это файл дампа размером 12 ГБ), и все выглядит хорошо. Вот что я получаю:

    reposurgeon: verbose 1
    reposurgeon: from repo.svn...copynodes+filemaps+copysets+commits+branches+parents+root+branchlinks+svn-mergeinfo+tagifying+tagify-empty+polishing+canonicalizing+resets+debubbling+renumbering+14163 revisions (1/s)...(9810.18 sec) done.
reposurgeon: r13: deleting parentless zero-op commit.
.
.
.
reposurgeon: r13726: deleting parentless zero-op commit.
    2012-12-24T01:16:23Z * repo.svn

В этот момент репохирург просто сидит. Я не уверен, где искать решение на данный момент, так как на самом деле он никогда не выдает мне сообщение об ошибке. Любые предложения приветствуются.


person Daniel Jacobs    schedule 24.12.2012    source источник
comment
Вы должны попробовать спросить где-нибудь, где тусуется ESR, например IRC. Это похоже на множество коммитов, недавно он представил некоторые оптимизации производительности, которые могут вас заинтересовать.   -  person mikewaters    schedule 07.07.2013
comment
@DanielJacobs: вы пытались запустить задание в интерактивном режиме? Я заметил небольшие расхождения между запуском программ из командной строки и из скрипта. Я также использую интерактивную подсказку для разработки своего сценария подъема.   -  person 0xC0000022L    schedule 18.03.2015


Ответы (2)


Он успешно импортировал репозиторий, но потом идет обработка команды authors read, а вы не указали файл. На данный момент он фактически ожидает появления файла на стандартном вводе. Используйте authors read <author-map, где author-map — это имя файла, содержащего карту.

Вы также захотите изменить команду записи на write >repo.fi по тем же причинам.

person db48x    schedule 13.05.2013
comment
Как мне получить такую ​​авторскую карту? - person rubo77; 28.03.2014
comment
карта автора — это просто созданный вами текстовый файл, содержащий строки вида ferd = Ferd J. Foonly ‹[email protected]› -0500. - person db48x; 29.03.2014

Если вы рассматриваете альтернативу reposurgeon и git-svn, взгляните на SubGit.

$ subgit configure /home/subversion
#edit /home/subversion/conf/subgit.conf to set 'core.authorsFile' option to path to "repo.map" file
$ subgit install /home/subversion
$ subgit uninstall --purge /home/subversion

Преобразованный репозиторий будет находиться в каталоге /home/subversion/.git. В качестве бонуса вы получите все свойства в стиле svn:ignore и svn:eol, преобразованные в их аналог Git.

Обычно репозиторий SVN примерно в 4 раза компактнее соответствующего файла дампа, поэтому преобразование исходного репозитория может быть быстрее, чем преобразование на основе дампа.

person Dmitry Pavlenko    schedule 26.12.2012