Search code examples
repositorybazaartrunk

Bzr: Create a shared repository from an existing stand-alone repository


I have been using Bzr for version control of my project over the last few months. I am the sole developer, and currently I just have everything in a single local project directory, to which I commit and which I sync to DriveHQ.

I now have some large-scale experiments in mind which would likely break this main line, so I've been looking into the concepts of branches and shared repositories. So my question is, basically: how should I go about creating a new, shared repository from this already-version-controlled base?

I am familiar with the SVN project structure of trunk, branches and tags, and I'm going to adopt this structure. My plan is to just go ahead and do a fresh init-repo, and copy all my code (plus .bzr) over into the trunk folder. So is this OK? Or is there some way to convert what I have already into a shared repository?

Many thanks in advance for any help.

Christopher


Solution

  • OK, so you have some work directory where your standalone branch is. You want to create trunk and feature branches in new shared repo.

    At first you need to create a shared repository itself:

    bzr init-repo /path/to/repo
    

    Now you can put your code to repo/trunk. You can use push, branch or you can copy work and use reconfigure.

    1. cd work; bzr push /path/to/repo/trunk
    2. cd path/to/repo; bzr branch /path/to/work trunk
    3. or copy/move work to /path/to/repo/trunk then cd /path/to/repo/trunk; bzr reconfigure --use-shared

    In all cases you'll have branch trunk as a copy of your old work, and this trunk will use shared repository to save the revisions.

    You can also look at bzr-colo plugin.