Я пытаюсь перенести репозиторий SVN размером 11 ГБ с более чем 24 тыс. Ревизий внутри в один репозиторий GIT.
Я сделал дамп одного файла SVN с помощью команды svnrdump
и загрузил его на мой локальный сервер SVN, размещенный на моем компьютере MacBook.
Я загрузил svn2 git из репозитория https://github.com/svn-all-fast-export/svn2git.
Из-за различий в способах как SVN и GIT обрабатывают теги, я использовал merged-branch-tags.rules из каталога svn2 git sample, который выглядит следующим образом (я удалил комментарии): создать репозиторий myproject end репозиторий
match /trunk/
repository myproject
branch master
end match
match /(branches|tags)/([^/]+)/
repository myproject
branch \2
end match
Затем я использовал решение для изображений docker, как описано в документации (в моей консоли это была одна строка. Я разделил ее, чтобы прояснить, что я делал):
docker run --rm -it \
-v /Users/me/work/SVN/dest:/workdir \
-v /Users/me/work/svnServer/repositories/my_svn_repo:/tmp/svn \
-v /Users/me/work/SVN/svn2git/samples:/tmp/conf \
svn2git /usr/local/svn2git/svn-all-fast-export \
--rules /tmp/conf/merged-branches-tags.rules \
--add-metadata --svn-branches --debug-rules --svn-ignore --empty-dirs \
/tmp/svn/
Во время первой попытки я получил ошибку между ревизиями 12600 и 126001:
Exporting revision 12601 /tags/7.0M0p0000 was copied from /tags rev 12600
rev 12601 /tags/7.0M0p0000/ matched rule: "/tmp/conf/merged-branches-tags.rules:28 /(branches|tags)/([^/]+++++
)/" exporting.
.WARN: SVN reports a "copy from" @ 12601 from /tags @ 12600 but no matching rules found! Ignoring copy, treating as a modification
WARN: Transaction: "7.0M0p0000" is not a known branch in repository "myproject"
Going to create it automatically
add/change dir ( /tags/7.0M0p0000 -> "7.0M0p0000" "" )
+++++
WARN: Branch "7.0M0p0000" in repository "myproject" doesn't exist at revision 12601 -- did you resume from the wrong revision?
Failed to write to process: Process crashed for repository myproject
6223345 modifications from SVN /tags/7.0M0p0000/ to myproject/7.0M0p0000%
Я проверил это, и в версии 12601 есть новый тег с именем «7.0M0p0000», который я ' m собираюсь импортировать как ветку и которой не было в репо в версии 12600.
У вас есть идеи, что я могу сделать, чтобы исправить это и продолжить миграцию? Любая помощь будет очень признательна.