Ответ 1
Просто удалите опцию --stdlayout
. Это означает структуру соединительных линий/ветвей/тегов.
Я пытаюсь преобразовать репозиторий svn в git, но у меня нет большого успеха. Репозиторий, о котором идет речь, не имеет ничего похожего на "багажник". Макет следующий:
/home/svn/ |--- /project1/ |--- /project2/ |--- /repos/project3/
И под этими папками проекта находятся файлы. Никакой багажник, никаких ветвей, ничего особенного. В то время это было все, что мне было нужно, и теперь он кусает меня в задницу.
Я следую этому руководству: http://john.albin.net/git/convert-subversion-to-git
Когда я запускаю эту команду:
git svn clone svn+ssh://[email protected]/home/svn/repos/kiflea --no-metadata -A authors-transform.txt --stdlayout ~/kiflea
В нем говорится, что он создал пустой репозиторий git... Но я действительно не хочу, чтобы он был пустым.
Я также не знаю, как выглядят следующие команды, так как мой репозиторий имеет другой макет.
Команды типа git symbolic-ref HEAD refs/heads/trunk
или git config remote.bare.push 'refs/remotes/*:refs/heads/*'
Просто удалите опцию --stdlayout
. Это означает структуру соединительных линий/ветвей/тегов.
Если у вас есть локальный доступ к вашему репозиторию SVN, я бы рекомендовал вам использовать SubGit для преобразования. Есть несколько простых шагов:
$ subgit configure path/to/svn/repository
$ #edit path/to/svn/repository/conf/subgit.conf to specify "core.authorsFile" option to point to your authors-transform.txt
$ subgit install path/to/svn/repository
После этого будет создан репозиторий Git, и репозитории будут находиться в постоянной синхронизации. При желании вы можете запустить
$ subgit uninstall path/to/svn/repository
чтобы отключить синхронизацию.
Если у вас нет локального доступа к вашему репозиторию, вы клонируете свой репозиторий SmartGit. Эффект будет похож на "git svn clone", но такие понятия SVN, как игнорирование, варианты обработки EOL, теги будут также переведены на Git (то же самое я могу сказать и о SubGit).
Ни одно из этих решений не основано на "git -svn".