Как импортировать часть репозитория SVN в базар
Ситуация
Я работаю на базаре 2.4.1
Компания "Хостинг проектов" размещает мой svn-репозиторий для Project A в:
https://svn.example.com/myrepo/trunk/ProjectA/
У меня нет доступа svn-admin к репо на svn.example.com,
В пределах projectA репо, есть каталог, который содержит весь код для Component X, Свое местоположение:
https://svn.example.com/myrepo/trunk/ProjectA/ComponentX
Цель
Я пытаюсь отколоться Component X от Project ASVN репо стать Project B, куда Project B версия на базаре.
План
Мой план состоит в том, чтобы:
- Создайте локальное хранилище bzr для
Project B - использование
bzr svn-importимпортироватьComponent XотProject Aв мой местныйProject B - Затем нажмите
Project Bна панель запуска - Затем,
svn-deleteСтарыйComponent XDirecotry из SVN РЕПО.
Я застрял на шаге 2.
Все идет нормально
Итак, на моей Windows XP я создал BZR репо для Project B:
# cd C:\me\OpenSource\
# bzr init-repo ProjectB
Затем я перешел в этот каталог:
# cd ProjectB
Это идет немного не так
Затем я попытался bzr svn-import чтобы получить каталог svn:
# bzr svn-import https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/
Это, однако, генерирует ошибку:
bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').
Я пробовал разные вещи и продолжаю получать одну и ту же ошибку.
Вещи, которые я пробовал
Попытка: изменение subversion.conf, чтобы указать, что ComponentX является ветвью
Посмотрев на 'bzr help svn-layout'Я изменил C:\Documents and Settings\Me\Application Data\bazaar\2.0\subversion.conf и добавил строку, чтобы указать, что /ComponentX следует рассматривать как ветку:
[203ae883-c723-44c9-aabd-cb56e4f81c9a]
branches = */ComponentX
Это не сработало. Та же ошибка:
bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').
Попытка: указание другого макета хранилища в качестве аргумента
т.е. передавая это в качестве аргумента: --layout=root (Потому что я хотел, чтобы этот путь рассматривался как корень нового репозитория bzr):
# bzr svn-import --layout=root https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/
Это не сработало. Та же ошибка:
bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').
Итак, я попытался просто сказать --layout=none:
# bzr svn-import --layout=none https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/
Это не сработало. Та же ошибка:
bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').
Если честно, я сейчас взломал.
Я просто не знаю, где я иду не так.
2 ответа
svn-import специально предназначен для импорта всех веток в хранилище Subversion. Параметр --layout используется для указания того, что он считает ветвью. Кажется, вы пытаетесь клонировать одну ветку, для которой "bzr branch" - действительно правильная команда.
Чтобы объяснить макеты:
Звездочки в настройке "ветки = " не пересекают более одного уровня каталогов. Установка "branch = trunk/*/ComponentX" в subversion.conf будет правильным значением. Кажется, что ошибка от bzr-svn немного сбивает с толку. Действительно, следует сказать, что указанный вами путь не содержит ветвей.
Это означает, что --layout=root просто заставит его считать https://svn.example.com/myrepo ответвлением. Это объясняет, почему вы получаете ошибку об указании ветви внутри пути.
В ответ на мой собственный вопрос.
Вместо того, чтобы бороться с bzr svn-import обойти проблему с помощью bzr branch вместо. Это на самом деле не отвечает на вопросы, почему bzr svn-import выдает ошибки, но решает проблему.
Итак, в ситуации, когда компания "Хостинг проектов" размещает ваш svn-репозиторий для Project A в:
https://svn.example.com/myrepo/trunk/ProjectA/
и в пределах projectA репо, есть каталог, который содержит весь код для Component X, Свое местоположение:
https://svn.example.com/myrepo/trunk/ProjectA/ComponentX
и где цель отколоться Component X от Project A SVN репо стать Project B, куда Project B версия на базаре.
План должен быть:
- Создайте локальное хранилище bzr для
Project B - использование
bzr branchсброситьComponent XотProject Aв мой местныйProject B - Затем нажмите
Project Bна панель запуска - Рекомендуется: не забудьте svn-удалить
Component XотProject Aчтобы избежать дублирования.
Вот так:
1. Создайте локальный репозиторий bzr для Project B
Итак, на моей Windows XP я создаю BZR репо для Project B:
# cd C:\me\OpenSource\
# bzr init-repo ProjectB
Затем перейдите в этот каталог:
# cd ProjectB
2. Используйте bzr branch сбросить Component X от Project A в мой местный Project B
Затем создайте локальную ветку из подкаталога svn repo:
# bzr branch https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/ ComponentX
3. Затем нажмите Project B на панель запуска
Затем нажмите его, чтобы создать ветвь, размещенную на панели запуска, в соответствии с инструкциями в документации на базаре:
# bzr push lp:~mylaunchpadteam/mylaunchpadproject/trunk
Затем, возможно, настройте структуру каталогов и добавьте файлы, чтобы преобразовать их в "проект".