Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Redirected from page "BzrForeignBranches"

Clear message

Introduction

Foreign branches is a feature that was proposed by AaronBentley in BzrWishList:

  • It would be really nice if you could branch from an SVN or other semi-sane system, do multiple commits, then submit your changes back to the mainline using the 'submit' command. Doing this with CVS would probably be an exercise in misery, but any SCM with atomic commits could be a target. We could ensure that all imports of the same source produced the same data, so that parallel imports could merge from each other.

    I think ForeignBranches have killer ease of use. The qualitative difference between working on an imported branch and just bzr branching it is huge.

Implementations

Subversion

There is a plugin that adds support for foreign Subversion branches. It allows most Bazaar operations to work against Subversion branches, including merge, push, pull, commit and uncommit. Includes SVK support.

Git

There is a plugin that adds support for foreign Git branches. It supports pull from local and remote git branches and support dpushing into git branches from Bazaar.

Mercurial

There is a plugin that adds support for foreign Mercurial branches. It supports pull from local and remote mercurial branches.

Other VCSes

Darcs

There is no support for foreign Darcs branches yet, though this should be very well doable. There needs to be some care because of what Darcs considers to be idempotent versus what Bazaar would consider the same. (Darcs treats a branch as a set of revisions, while Bazaar considers it a history of revisions. So in Darcs the histories (A, B, C, D) and (A, C, B, D) are considered equivalent, it just means Bazaar needs to be careful with what it considers ancestry for a Darcs branch).

Baz

There is a baz-import plugin that can convert Baz repositories to Bazaar repositories.

CVS

There is no support for foreign CVS branches at. Creating it may also prove hard as CVS lacks atomic commits or unique identifiers to identify branches.

However, there are options for converting from CVS without foreign branches:

Launchpad

https://launchpad.net offers a CVS repository tracking service. This is great for tracking a branch that is in CVS.

CVSPS

On the http://bazaar-vcs.org/BzrPlugins there is a cvsps plugin from JohnMeinel which allows single-shot conversion of CVS repositories to bzr. This should be used for migration.

Monotone

There is no support for foreign Monotone branches yet, but it should in theory be possible.