如何从svn切换到bzr以便在本地工作

时间:2010-12-17 06:00:44

标签: svn repository bazaar bzr-svn

我已在互联网上导入(结帐)一些只读存储库

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

现在我想要处理这个只读(我也有更好的bzr经验而不是svn),所以我想将这个存储库从svn更改为bzr存储库以便在本地工作我该怎么办呢?还有一件事svn是否支持像bzr

这样的本地存储库

3 个答案:

答案 0 :(得分:4)

您不应直接使用Subversion签出代码。使用Bazaar来做到这一点。例如

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

检查the documentation,bzr wiki上的Subversion Migration pagebzr help svn-import以获取更多详细信息。

解决第二个问题

  

svn是否支持本地存储库   比如bzr

Subversion基于服务器 - 客户端模型,而在像git,bzr和Mercurial这样的分布式VCS中,它可以归为一类。您可以在本地运行Subversion服务器,但是,一个SVN存储库应由一个SVN服务器提供服务,而一个SVN服务器。使用分布式VCS,您可以克隆整个存储库(或者至少是一个分支,在bzr的情况下),这意味着您拥有了为克隆提供服务并拥有其他人所需的所有数据和元数据克隆你。与分布式VCS不同,当您执行svn checkout时,不会在本地创建存储库的完整副本;您只创建存储库的本地工作副本,这是修订控制下的文件和一些(但不是全部)元数据。 SVN存储库的工作本地副本不足以充当存储库本身;你不能把这个工作副本放在服务器上,让其他人从它那里办理结账。

答案 1 :(得分:3)

你有没有看过使用bzr-svn这是一个使用集市来检查SVN存储库的工具?

您需要查看documentation for bzr-svn,其中介绍了如何使用bzr从SVN中退房。

此外,对于SVN,您必须在您的机器上设置本地SVN服务器/存储库,而不是像git / mercurial / bazaar那样简单。

答案 2 :(得分:0)

Bazaar实际上可以直接在Subversion工作副本上运行。虽然最好签出/克隆到Bazaar存储库(使用bzr checkoutbzr clone;不需要使用svn-import),但大多数Bazaar命令应该像您完成的一样工作一个“轻量级结账”。为了解决这个问题,Bazaar在“.svn”目录中创建了一个“bzr”目录。

但是,这不允许本地提交,因此在这种情况下不起作用。幸运的是,您可以通过克隆现有存储库(或直接从主SVN存储库执行此操作)移至Bazaar结账:

# 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