bzr-svn branch/tag integration problem

Alexander Belchenko bialix at ukr.net
Wed Jul 29 16:13:12 BST 2009


For backporting fixes to older releases I'm successfully using Daggy 
Fixes method, see:
http://www.monotone.ca/wiki/DaggyFixes/

This method is very useful for DVCS (e.g. bzr) but maybe a bit 
problematic to use with svn. Of course this method is not silver bullet 
in some situations (when trunk and releases branches is diverged a lot 
around bugfix code) but generally it works nice for me.


Greg Hanson пишет:
> Alexander,
> 
> Thanks for the response.  I need to play around a little more with the 
> dpush command...I had not heard about that before.  It seems to do what 
> I want, which is push without tags.
> 
> I like your suggestion for the merge (regular merge to trunk, then 
> cherrypick to back port to previous releases).  I may look into changing 
> the way we do our backporting to match this (even if we are using 
> subversion tools instead of bazaar).  Eliminating our entire tagging 
> scheme would make this much, much easier.
> 
> Thanks again, I hope to return with a Bazaar success story :-)
> 
> -- 
> Greg Hanson
> 
> On Wed, Jul 29, 2009 at 3:54 AM, Alexander Belchenko <bialix at ukr.net 
> <mailto:bialix at ukr.net>> wrote:
> 
>     Because nobody of bzr-svn power users is answer yet I'll try to
>     provide some hints.
>     Note: I'm not regular bzr-svn user but I think I understand how
>     bzr-svn could work, so I'll try to help.
> 
>     1) You don't need to use svn tags when you're using bzr to track
>     issue branch.
>     2) You can store either original bzr issue branch in svn repo or
>     convert it to svn format (via dpush?) and lose bzr metainfo.
> 
>     So, if you want/can use bzr to do work on specific issue branch I
>     think you can do following:
> 
>     1) Made the local copy of your trunk in bzr format:
> 
>     bzr branch $SVN_REPO/project_a/trunk trunk.bzr
> 
>     2) Create local issue branch in bzr format:
> 
>     bzr branch trunk.bzr issue.$JIRA_NUMBER
> 
>     3) Work in local issue branch, commit your changes as often as needed:
> 
>     bzr commit
> 
>     4) Publish your issue branch for review:
> 
>     bzr push issue.$JIRA_NUMBER
>     $SVN_REPO/project_a/issues/branches/$JIRA_NUMBER
> 
>     You can use dpush command instead to push branch without bzr metadata.
> 
>     5) Once your issue branch us ready to merge do merge via bzr:
> 
>     cd trunk.bzr
>     bzr pull        # update your copy of trunk
>     bzr merge ../issue.$JIRA_NUMBER
>     # check & resolve conflicts & test it
>     bzr commit -m "issue $JIRA_NUMBER completed"
> 
>     Now you have trunk with merged changes from issue branch. Either
>     dpush it to svn trunk or `push --overwrite` to
>     $SVN_REPO/project_a/issues/branches/$JIRA_NUMBER or to separate
>     integration branch
>     $SVN_REPO/project_a/issues/branches/$JIRA_NUMBER.integration
> 
>     In the first case you don't need to do cherrypick merge via svn at
>     all, in other cases you'll have only one revision to cherrypick.
> 
>     HTH
> 
> 
> 
> 
> 
> -- 
> Greg Hanson




More information about the bazaar mailing list