Subgit импортирует корневой каталог без стандартной компоновки - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть следующая структура хранилища SVN.Это не специально, кто-то сделал что-то странное, прежде чем я стал участвовать.

https://server/svn/repo
https://server/svn/repo/rootfolder1
https://server/svn/repo/rootfolder2
https://server/svn/repo/trunk
https://server/svn/repo/trunk/trunkfolder1
https://server/svn/repo/trunk/trunkfolder2

Я пытаюсь импортировать две папки rootfolder1 и rootfolder2 в репозиторий Git (потом я их разделюдля разделения репозиториев с помощью git-filter-branch).

Запуск subgit import --svn-url https://server/svn/repo repo-root, у меня остался Git-репозиторий с trunkfolder1 и trunkfolder2.Проход --trunk repo дает мне пустой репозиторий Git.Запуск от имени subgit import --svn-url --trunk repo https://server/svn repo-root выдает следующую ошибку:

IMPORT FAILED

error: svn: E175002: PROPFIND of '/': 405 Method Not Allowed (https://server)

Я также пытался subgit --import --trunk . --svn-url https://server/svn/repo repo-root, однако subgit жалуется на параметр --trunk.

Любые предложения по решению этой проблемы

1 Ответ

0 голосов
/ 17 декабря 2018

Если вы в конечном итоге намереваетесь разместить эти «корневые папки» в отдельных репозиториях, то, я думаю, целесообразно импортировать их в разные репозитории Git на стадии импорта.Это можно сделать с помощью следующих двух команд:

subgit import --trunk rootfolder1 --username <svn user name> --password <svn user password> --non-interactive --trust-server-cert --svn-url https://server/svn/repo <GIT_REPO>

subgit import --trunk rootfolder2 --username <svn user name> --password <svn user password> --non-interactive --trust-server-cert --svn-url https://server/svn/repo <GIT_REPO_2>

В этом случае «rootfolder1» будет импортирован в GIT_REPO, а «rootfolder2» - в GIT_REPO_2, поэтому вам не нужно будет разбивать их.

Кроме того, я бы порекомендовал предоставить файл авторов во время импорта, чтобы пользователи SVN были переведены на подходящих пользователей Git, подробнее см. Здесь:

https://subgit.com/documentation/import-book.html#authors_file

Импорт обоих'rootfolders' в одном репозитории Git также возможен, но для избавления от 'trunk' требуются дополнительные шаги:

  • подготовка нового репозитория Git для импорта:

    настройка subgit https://server/svn/repo GIT_REPO

  • открыть файл конфигурации SubGit в текстовом редакторе:

    GIT_REPO / subgit / config

  • изменить конфигурацию сопоставления следующим образом:

    [svn]
    
        trunk:refs/heads/master
        excludePath = /trunk
    

    сохранить и закрыть файл.

  • запустить импорт:

    импорт subgit GIT_REPO

В этом случае GIT_REPO будет содержать только 'rootfolders 'as' trunk 'исключается директивой excludePath.

...