git svn clone https://projectsvn.googlecode.com/svn/trunk --authors-file=/home/user/authors --no-metadataФайл authors нужен, чтобы сопоставить svn-юзеров с git-юзерами в новом репозитории, у меня он был такой:
user@gmail.com = darkbarker <user@gmail.com> (no author) = darkbarker <user@gmail.com>"(no author)" нужен для коммитов без автора (например, инициальный коммит svn-сервера).
Дальше можно отфильтровать дерево коммитов, исключив пустые коммиты, которые при конвертации образуются по разным причинам, т.к. не всем изменениям в svn-коммитах соответствуют изменения в git-коммитах (изменения в директориях, например).
git filter-branch --commit-filter 'git_commit_non_empty_tree "$@"' HEADЭто отпочкует ветку от низа дерева и перенесёт туда master, оставив старые коммиты в старой ветке git-svn. Ну а дальше как обычно, заливаем в новый существующий git-репозиторий (надо создать его, конечно).
git remote add origin git@github.com:user/projectgit.git git push origin masterДля bitbucket то же самое потребуется сделать:
git remote add origin https://user@bitbucket.org/user/projectgit.git git push origin master
Комментариев нет:
Отправить комментарий