Каталог импорта субтитров и несколько веток

Я пытаюсь сделать импорт, используя subgit. Просто одноразовая миграция. Моя структура SVN содержит:

  • ветки
    • branch1
    • Особенности
      • branch2
  • исправлениях
    • branch3

Я хотел бы преобразовать все три в ветки в git. Я пробовал:

proj=myproject; subgit import --svn-url <correctPath>/$proj --authors-file
  ~/authors --branches branches --branches branches/features
  --branches hotfixes --tags tags  $i

Похоже, что использовать только "исправления" как единственное место для импорта. (Я использую SubGit версии 2.0.2 ('Patrick') build # 2731.) Я также попытался использовать:

--branches "branches;branches/features;hotfixes"

Но это полностью провалилось (вероятно, он искал каталог с полуколонами в нем).

Любое предложение для одноразового импорта?

(Заметьте, я видел этот связанный вопрос.)

Ответ 1

Вы можете использовать комбинацию команд 'configure' + 'install' + 'uninstall'. Я полагаю, ваш репозиторий имеет следующую структуру:

$ svn ls --depth infinity <SVN_URL>                                                                                                                                                     
branches/                                                                                                                                                                                                                         
branches/branch1/                                                                                                                                                                                                                 
branches/branch2/                                                                                                                                                                                                                 
branches/features/                                                                                                                                                                                                                
branches/features/feature1/                                                                                                                                                                                                       
branches/features/feature2/                                                                                                                                                                                                       
hotfixes/                                                                                                                                                                                                                         
hotfixes/hotfix1/
hotfixes/hotfix2/
tags/
tags/tag1/
tags/tag2/
trunk/

Затем сделайте следующее. Запустите команду "configure":

$ subgit configure --svn-url <SVN_URL> repo

Редактировать файл repo/subgit/config в этой структуре репозитория (или вы можете придумать свои собственные refs/heads/namespaces, единственное требование: не должно быть одинаковым для разных видов веток, импорт времени и все в соответствии с refs/heads/*, вы можете переименовать их позже с помощью script):

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
branches = branches/features/*:refs/heads/features/*
branches = hotfixes/*:refs/heads/hotfixes/*
tags = tags/*:refs/tags/*
shelves = shelves/*:refs/shelves/*

Запустите команду 'install':

$ subgit install repo

Затем, если вы запустите "git branch -a" из каталога "repo", вы увидите что-то вроде этого:

$ git branch -a
  branch1
  branch2
  features/feature1
  features/feature2
  hotfixes/hotfix1
  hotfixes/hotfix2
* master

Возможно, вы можете запустить команду "удалить", чтобы отключить синхронизацию временно или навсегда (опция -purge)

$ subgit uninstall [--purge] repo