我在共享服务器上有一个bazaar存储库。我想清理回购并从头开始设置,但保留了我的历史。我不知道最初是如何创建存储库的(有没有办法找到?)。
这是一个可行的过程:
bzr init-repo --no-trees /home/bzr/myrepository
cd /home/bzr/myrepository
bzr init stable
cp /home/oldbzr/branch_taken_from_current_repo/* ./stable/
cp /home/oldbzr/branch_taken_from_current_repo/.bzr ./stable/
由于
答案 0 :(得分:5)
Bazaar中的“分支”和“回购”是完全独立的概念。您不会将分支转换为回购。您通常将其视为回购(例如,在SVN或Git中)实际上是Bazaar中的一个分支。你想要做的是创建一个新的仓库,然后将旧的分支复制到新的仓库。
你差不多正确,但你不想使用“cp”,你想使用“bzr branch”。注意:当您希望Bazaar将分支移入,移出或跨存储库时,您通常可以使用“cp”复制分支除之外 - 然后您需要“bzr分支”来智能地重新打包历史。所以这就是你想要做的:
bzr init-repo --no-trees /home/bzr/myrepository
cd /home/bzr/myrepository
bzr branch /home/oldbzr/branch_taken_from_current_repo stable
请注意,我没有做“bzr init” - 我不想创建一个新分支,只需复制旧分支。我不是手动复制旧分支或其.bzr目录。如果复制旧分支的.bzr,它将不会最终使用新的存储库。通过执行“bzr分支”,它将“嘿,我正在进入存储库。因此,我将把所有提交数据放入共享存储库,并将一个轻量级分支放入'稳定'。”
答案 1 :(得分:5)
您可以像mgiuca建议的那样在您的共享仓库中使用普通分支,但您也可以将独立分支转换为使用共享存储库。为此,您应该使用bzr reconfigure
调用
bzr init-repo --no-trees /home/bzr/myrepository
cd /home/bzr/myrepository
bzr init stable
cp /home/oldbzr/branch_taken_from_current_repo/* ./stable/
cp /home/oldbzr/branch_taken_from_current_repo/.bzr ./stable/
cd stable
bzr reconfigure --use-shared
因此,如果我们省略cp
,那么您可以在您的分支周围创建一个共享存储库:
cd /path/to/my/branch
bzr info # you should see you branch is standalone,
# i.e. not using shared repo
bzr init-repo ../ # create shared repo in parent directory
bzr reconfigure --use-shared # convert standalone branch to repository branch
bzr info # now you should see your branch is using shared repo