help requested for stitching the history of 3 VCSes

James Henstridge james at jamesh.id.au
Thu May 1 03:58:56 BST 2008


On 01/05/2008, Jeff <web.kiddo at free.fr> wrote:
>
>  Hello, I have some nice puzzle for you folks. There is a project called
> Specto, which, across its lifetime, used 3 different version control
> systems. Those are CVS, Subversion and Bazaar. And each time, we did not
> keep the history.
>
> cvs:
> https://code.launchpad.net/~vcs-imports/specto/cvs-main
> svn: http://specto.googlecode.com/svn/trunk/
> bzr: https://code.launchpad.net/~woutc/specto/specto-woutc
> Those are the various repositories that have been used for developing
> Specto, from the oldest to the newest. In theory, the code should be
> compatible, it's just that we did not migrate the history metadata between
> them.

Using "bzr merge" will not give you a branch with the combined history
of all three sources.  Your best bet is to use the bzr-rebase plugin:

    http://bazaar-vcs.org/Rebase

I'd recommend reading the documentation on the plugin first.  The
steps will be something like this:

1. Collect bazaar branches for all three history segments.
2. Identify the revision in the Subversion history that has identical
content to the last CVS revision.  Do the same for the svn/bzr
boundary.
3. From the CVS branch, run "bzr replay -rN.. ../svn-history" where N
is the revision after the cutover point you identified in (2).
4. Now replay the bazaar history onto the combined branch in a similar fashion.

The resulting branch will have different revision IDs to your original
Bazaar branch, so if you have any other Bazaar branches you still want
to use you'll need to rebase them too (on top of the appropriate
revision in the new history).  There isn't any way around this when
rebasing a branch.

James.


More information about the bazaar mailing list