what should be done to merge nested trees patch to bzr-core?

Alexander Belchenko bialix at ukr.net
Wed Jun 15 22:37:08 UTC 2011


16.06.2011 1:08, Alexander Belchenko пишет:
> Anyway, we have 2 problems with feature branches for nested components:
> 
> a) the problem with disappearance of component branches is more
> painful in bzr than in git/hg, because bzr operates with single branch
> per URL, rather than with single repository per URL, repository that
> allows fetching an arbitrary revisions, required for recreating a
> state of nested trees.
> 
> b) automatic creation of feature branch remote counterpart for nested
> component. If I want to create a feature branch for my root component,
> my actions are straightforward. But if I want to be sure I won't
> accidentally push changes introduced by this feature from nested
> components to their trunk branches I have to be very very careful. In
> git/hg you can just push to main repository (because see "a" above),
> but with bzr I have to manually create feature branches on the server
> for all affected nested components, and won't forget update the
> project config.

I've just realized that to workaround this nasty problem with feature
branches and nested trees bzr should allow branch, pull, push and
merge commands to be allowed to work with shared repositories as
source/destination if explicit revision-id is provided, i.e.

bzr branch /path/url/to/shared/repository -r revid:xxx foo

will create a branch "foo", using revid:xxx as tip revision of the
branch, extracting the branch history from shared repository. But we
lose tags in this case.

Similarly:

bzr pull /path/url/to/shared/repository -r revid:yyy

will pull changes up to revid:yyy;

bzr merge /path/url/to/shared/repository -r revid:zzz

will merge changes up to revid:zzz.

And finally:

bzr push /path/url/to/shared/repository -r revid:abc

will transfer the revisions absent in shared repository up to revid:abc.

AIUI it won't require a new format, just teaching an old dog new
tricks? Err, teaching bzr to work with shared repositories as if
they're branches *if* there is specified *revision-id*.



More information about the bazaar mailing list