«back

bzr graft

this plugin is unmaintained, and you should expect to have to do a lot of porting to the latest API if you want to use it. Please drop me a note if you do, so I can put a link here to your new branch.

Graft a bzr branch onto another branch.

graft is a plugin for grafting a branch onto the end of another. It iterates over the revisions in a source branch and applies and commits them to a target branch, preserving revision data such as committer, timestamp, and message.

This plugin is most useful for concatenating lines of development on the same code, from different eras: one may have an old branch in CVS, and a newer branch that started from an import of a tarball in another VCS. After converting both to bzr, one can use graft to join the two together for a continuous line of development.

graft can be used to unify a line of development that has been spread across several branches in a single RCS, or across many RCSes, that have been interspersed with imports of the codebase, and thus have lost history. graft recreates the history of a project by reapplying the sequence of revisions in a later branch to an earlier branch.

If branch A contains a project from its inception until a point X when development stopped, and branch B contains an import of the code of the same project from point X onwards, you can use graft to concatenate branch B onto the end of branch A.

The caveat is that B must be a future version of the last revision in A. graft will do strange things if this is not the case

graft is not for regular use. You should only need it once per branch. You should use it before publishing bzr branches, otherwise other developers will have to re-branch (if they previously branched from branch B) (or they can use graft to realign their branches with the new upstream branch.

graft is available to you all under the GNU General Public License.

The latest version of the source code is kept in bazaar:

bzr get http://repo.spacepants.org/bzr/plugins/graft/
      

ln -s `pwd`/graft ~/.bazaar/plugins

Send any patches or suggestions to Jamie Wilkinson