2

我已经在 Internet 上导入(结帐)了一些只读存储库

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

现在我想处理这个只读的(我也有比 svn 更好的 bzr 经验),所以我想将此存储库从 svn 更改为 bzr 存储库以便在本地工作我该怎么做,还有一个额外的事情做 svn 支持本地存储库,例如 bzr

4

3 回答 3

4

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

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

查看文档、bzr wiki 上的Subversion 迁移页面bzr help svn-import以及更多详细信息。

解决你的第二个问题

svn 是否支持像 bzr 这样的本地存储库

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

于 2010-12-17T06:33:17.677 回答
3

您是否看过使用bzr-svn,它是一种通过使用 bazaar 签出来处理 SVN 存储库的工具?

您将需要查看bzr-svn 的文档,该文档描述了如何使用 bzr 从 SVN 中简单地签出。

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

于 2010-12-17T06:24:27.167 回答
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
于 2011-01-26T22:17:18.043 回答