Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 687
ChrisM Avatar asked Dec 11 '11 07:12

ChrisM


2 Answers

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.

like image 96
bialix Avatar answered Sep 19 '22 11:09

bialix


  1. Create a folder outside your current repository.
  2. Call bzr init-repo to create a shared repository
  3. From your working tree push to the newly created shared repo.

You can now work directly on the shared repo

like image 22
TridenT Avatar answered Sep 18 '22 11:09

TridenT