Subgit импортирует корневой каталог без стандартной компоновки
У меня есть следующая структура хранилища 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
Однако Субгит жалуется на --trunk
параметр.
Есть предложения по решению этой проблемы?
1 ответ
Если вы в конечном итоге намереваетесь поместить эти "корневые папки" в отдельные репозитории, то, на мой взгляд, разумно импортировать их в разные репозитории 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
Импорт обеих "корневых папок" в один репозиторий Git также возможен, но для избавления от "ствола" требуются дополнительные шаги:
подготовить новый репозиторий Git для импорта:
subgit configure https://server/svn/repo GIT_REPO
откройте файл конфигурации SubGit в текстовом редакторе:
GIT_REPO / subgit / конфигурации
изменить конфигурацию сопоставления следующим образом:
[svn] trunk:refs/heads/master excludePath = /trunk
Сохраните и закройте файл.
запустите импорт:
импорт субгитов GIT_REPO
В этом случае GIT_REPO будет содержать только "корневые папки", так как "транк" исключен директивой "excludePath".