2011-12-11 251 views
7

过去几个月,我一直在使用Bzr来管理项目的版本控制。我是唯一的开发人员,目前我只拥有一个本地项目目录中的所有内容,我将其提交给DriveHQ,并将其同步到DriveHQ。Bzr:从现有独立存储库创建共享存储库

我现在有一些可能会破坏这条主线的大规模实验,所以我一直在研究分支和共享存储库的概念。所以我的问题基本上是:我应该如何从这个已经版本控制的库中创建一个新的共享库?

我熟悉SVN项目的树干,分支和标签结构,我将采用这种结构。我的计划是继续做一个新的init-repo,并将我的所有代码(加上.bzr)复制到中继文件夹中。那么这是好的吗?或者有什么方法可以将我已经存在的共享存储库转换成共享存储库?

非常感谢您的任何帮助。

克里斯托弗

回答

10

OK直接工作,所以你有一些work目录,你的独立分支。 您想要在新的共享库中创建trunk和功能分支。

首先,你需要创建一个共享库本身:

bzr init-repo /path/to/repo 

现在你可以把你的代码repo/trunk。您可以使用push,branch或者您可以复制work并使用reconfigure

  1. cd work; bzr push /path/to/repo/trunk
  2. cd path/to/repo; bzr branch /path/to/work trunk
  3. 或复制/移动work/path/to/repo/trunk然后cd /path/to/repo/trunk; bzr reconfigure --use-shared

在任何情况下,你将有分支trunk作为旧work副本,这trunk会使用共享库来保存修订。

你也可以看看bzr-colo插件。

+0

非常感谢。最后我选择了#3。 – ChrisM

+0

对我来说,我用#1,它也完美(我认为)。我有同样的情况,并使用#1。为了确认,我'cd/path/to/repo',在那里我输入'bzr info'并且得到'带有树的共享仓库(格式:2a)'(newline)'位置:'(newline)'共享仓库:。 '。然后我输入'bzr info trunk',它给出了'Repository tree(format:2a)'(newline)'Location:'(newline)'shared repository:。 '(换行符)'储存库分支:trunk'。谢谢@ bialix! – Kalin

4
  1. 创建您的当前库之外的文件夹中。
  2. 致电bzr init-repo创建共享存储库
  3. 从您的工作树推到新创建的共享存储库。

现在,您可以在共享回购

+1

我想建议相同的,但不是推,从旧的代表分支到新的代表。有区别吗? –

+1

@Gil:你可以从旧的工作副本中分支出新的共享库,它也可以工作。 – TridenT

+1

@TridenT:非常感谢,非常有帮助。只是为了澄清,我可以安全地删除旧的存储库吗?我应该从Bzr那里做到,还是可以将它拖到垃圾箱? – ChrisM