У меня есть плоский репозиторий svn, который выглядит так:
my_repo/
├── file1.c
├── file2.c
├── file3.c
└── README
В этом репо нет веток или тегов, и все, что я пытаюсь сделать, это преобразовать его в репозиторий git и сохранить историю коммитов.
Я пытался:
git svn clone --trunk=/ -A users.txt svn+ssh://[email protected]/projects/my_repo dest_dir
Что, как я предполагал, сработает, однако, когда я перехожу к dest_dir
и выполняю git svn fetch
, похоже, ничего не получается. Использование git log
дает:
fatal: bad default revision 'HEAD'
Если я использую svn checkout svn+ssh://[email protected]/projects/my_repo
, он возвращает:
A my_repo/file1.c
A my_repo/file2.c
A my_repo/file3.c
A my_repo/README
Checked out revision 57.
Так что репозиторий жив и доступен.
Я пробовал различные инструменты, включая subgit
, который выдавал мне эту ошибку: svn: E170003: 'stat' not implemented
, и я думаю, что это связано с тем, что сервер, на котором размещен репозиторий, использует старую версию subversion. У меня нет контроля над сервером, поэтому я не могу выполнить обновление.
Я также пытался использовать svn2git
, используя команду
svn2git svn+ssh://[email protected]/projects/my_repo --rootistrunk -authors users.txt --verbose
но это дало мне еще одну ошибку:
E: 'svn+ssh:/[email protected]/projects/my_repo' is not a complete URL and a separate URL is not specified command failed
Это поставило меня в тупик, и я понятия не имею, почему это не работает. В основном мне было интересно, как мне превратить репозиторий svn в репозиторий git, сохраняя при этом историю. Надеюсь, кто-то может мне помочь или указать мне правильное направление. Никогда не думал, что будет так сложно перенести этот простой репозиторий в git!
Спасибо
git svn clone
не выдал ошибку? Это должно было сработать. Кроме того, послеgit svn clone
, если вы войдете в каталог и сделаетеgit svn fetch
, что произойдет? - person janos   schedule 06.04.2014svnsync
для загрузки всех версий SVN на локальный компьютер, а затем попробуйте импортировать этот локальный репозиторий в Git. - person vadishev   schedule 07.04.2014