Как перейти с SVN на BZR для локальной работы

Я импортировал (извлекаю) какой-то репозиторий только для чтения в Интернете

$ svn co http://some.repo/at/somesite read-only

теперь я хочу работать над этим только для чтения (также у меня есть лучший опыт работы с bzr, чем svn), поэтому я хочу изменить этот репозиторий с svn на репозиторий bzr для локальной работы, как я могу это сделать, и еще одна вещь поддерживает svn локальные репозитории, такие как BZR

3 ответа

Решение

Вы не должны использовать Subversion напрямую для проверки кода. Используйте Базар, чтобы сделать это. Например

bzr svn-import http://feedparser.googlecode.com/svn/ feedparser
cd feedparser
bzr branch trunk mybranch
cd mybranch
bzr checkout
# hack...

Проверьте документацию, страницу миграции Subversion на вики bzr и bzr help svn-import Больше подробностей.

Чтобы ответить на ваш второй вопрос

svn поддерживает локальные репозитории, такие как bzr

Subversion основан на модели сервер-клиент, в то время как в распределенных VCS, таких как git, bzr и Mercurial, все это в некотором роде объединено. Сервер Subversion может работать локально, однако хранилище SVN должно обслуживаться одним и только одним сервером SVN. С распределенной VCS вы клонируете целый репозиторий (или, по крайней мере, ветвь, в случае bzr), что означает, что у вас есть все данные и метаданные, необходимые для обслуживания вашего клона, а другие люди клонируют вас. В отличие от распределенных VCS, вы не создаете полную копию хранилища локально, когда вы делаете svn checkout; вы создаете только локальные рабочие копии репозитория, которые представляют собой файлы, находящиеся под контролем ревизии, и некоторые (но не все) метаданные. Работающей локальной копии SVN-репозитория недостаточно, чтобы выступать в качестве самого репозитория; Вы не можете поместить эту рабочую копию на сервер и позволить другим людям делать с нее заказы.

Вы смотрели на использование bzr-svn, который является инструментом для работы с SVN-репозиториями, проверяя с помощью bazaar?

Возможно, вы захотите взглянуть на документацию по bzr-svn, в которой описано, как просто извлечь данные из SVN с помощью bzr.

Кроме того, для SVN вам придется настроить локальный сервер SVN / репо на вашем компьютере, не такой простой, как git/mercurial/bazaar.

Базар может работать непосредственно с рабочими копиями Subversion. Хотя может быть предпочтительнее оформить заказ / клонировать в хранилище Bazaar (используя bzr checkout или же bzr clone; нет необходимости использовать svn-import), большинство команд Bazaar должны работать так, как если бы вы сделали "облегченную проверку". Для этого Bazaar создает каталог "bzr" в каталоге ".svn".

Тем не менее, это не позволяет локальные коммиты, и поэтому не работает в этой ситуации. К счастью, вы можете перейти к проверке Bazaar, клонировав существующий репозиторий (или сделайте это прямо из основного репозитория SVN):

# you can clone from the old working copy directory:
bzr clone old-svn-working-copy new-bzr-branch-directory
# or from the original repository:
bzr clone http://some.repo/at/somesite new-bzr-branch-directory

тогда вы можете перейти к любым незафиксированным изменениям, которые вы сделали следующим образом:

cd new-bzr-branch-directory
bzr merge --uncommitted ../old-svn-working-copy
Другие вопросы по тегам