2016-11-16 23 views
0

У меня есть структура проекта в следующем формате. Он расположен на https://ip/svn/siguard/DSA/Ошибка команды миграции svn2git: git checkout -f master

  • ветвей/

  • Docs/

  • теги/

  • багажник/

Я установил svn2 мерзавца и сделать все установок. Я хочу запустить процесс миграции с помощью следующей команды:

svn2git https://ip/svn/siguard/ --trunk DSA/trunk --branches DSA/branches --branches DSA/docs --tags DSA/tags --authors author.txt --verbose 

и это выход.

Running command: git svn init **--prefix=svn/** --no-metadata --trunk='DSA/trunk' --tags='DSA/tags' --branches='DSA/branches' --branches='DSA/docs' https://141.29.113.138/svn/siguard/ 
Initialized empty Git repository in C:/GitMigration/DSA/.git/ 
Running command: git config --local --get user.name 
Running command: git config --local svn.authorsfile authors.txt 
Running command: git svn fetch 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '/svn/siguard/!svn/bc/100' path not found: Additional errors:: File not found: revision 100, path '/'DSA' 
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. 
This may take a while on large repositories 
Checked through r100 
Checked through r200 
Checked through r300 
Checked through r400 
Checked through r500 
Checked through r600 
Checked through r700 
Checked through r800 
Checked through r900 
Checked through r1000 
Checked through r1100 
Checked through r1200 
Checked through r1300 
Checked through r1400 
Checked through r1500 
Checked through r1600 
Checked through r1700 
Checked through r1800 
Checked through r1900 
Checked through r2000 
Checked through r2100 
Checked through r2200 
Checked through r2300 
Checked through r2400 
Checked through r2500 
Checked through r2600 
Checked through r2700 
Checked through r2800 
Checked through r2900 
Checked through r3000 
Checked through r3100 
Checked through r3200 
Checked through r3300 
Checked through r3400 
Checked through r3500 
Checked through r3600 
Checked through r3700 
Checked through r3800 
Checked through r3900 
Checked through r4000 
Checked through r4017 
Running command: git branch -l --no-color 
Running command: git branch -r --no-color 
Running command: git config --local --get user.name 
Running command: git config --local --get user.email 
Running command: git checkout -f master 
error: pathspec 'master' did not match any file(s) known to git. 
command failed: 
git checkout -f master 

Я не знаю, в чем проблема. Когда я google svn2git, кажется, все в порядке с этой утилитой.

ответ

1

Есть инструменты pleny под названием svn2git, вероятно, лучший из них - KDE один от https://github.com/svn-all-fast-export/svn2git. Я настоятельно рекомендую использовать этот инструмент svn2git. Это лучшее, что я знаю, доступный там, и он очень гибкий в том, что вы можете делать с его файлами правил.

svn2git вы использовали основан на git-svn и git-svn является не правильного инструмента для преобразования разовых хранилищ или хранилища частей. Это отличный инструмент, если вы хотите использовать Git как интерфейс для существующего сервера SVN, но для одноразовых конверсий вы должны не использовать git-svn, но svn2git, который гораздо более подходит для этого прецедента.

Если вы не 100% об истории своего репозитория, svneverever от http://blog.hartwork.org/?p=763 - отличный инструмент для изучения истории хранилища SVN при переносе его на Git.


Несмотря на то, ГИТ-SVN (или неправильно svn2git в вашем случае) проще начать, вот некоторые другие причины, почему с помощью KDE svn2git вместо git-svn превосходит, кроме своей гибкости:

  • история перестраивается гораздо лучше и чище по svn2git (если правильно используется), это особенно характерно для более сложных историй с филиалами и слияниях и так далее
  • теги реальные теги и не филиалы в Git
  • с git-svn теги содержат дополнительную пустую фиксацию, которая также делает их не частью ветвей, поэтому нормальный fetch не получит их до тех пор, пока вы не дадите команду --tags, так как по умолчанию выбираются только теги, указывающие на извлеченные ветви.С правильными тегами svn2git, где они принадлежат
  • если вы изменили макет в SVN вы можете легко настроить это с svn2git, с git-svn вы потеряете историю в конце концов
  • с svn2git вы можете также разделить один репозиторий SVN на нескольких хранилищ Git легко
  • или объединить несколько репозиториев SVN в том же корне SVN в один репозиторий Git легко
  • преобразование является Gazillion раз быстрее с правильным svn2git чем с git-svn

Существует много причин, по которым git-svn хуже, и KDE svn2git является превосходным. :-)

+0

Благодарим вас за поддержку. Теперь я мигрировал с помощью git-svn – user725455