Каталог subgit import и несколько филиалов

Я пытаюсь сделать импорт с использованием 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/глав /*, вы можете переименовать их позже с помощью скрипта):

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
Другие вопросы по тегам