marrying bundle and directive? (Re: [MERGE] Merge directive format 2, Bundle format 4)
aaron.bentley at utoronto.ca
Mon Jul 2 05:25:24 BST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Adeodato Simó wrote:
> * Aaron Bentley [Fri, 29 Jun 2007 17:24:42 -0400]:
> I *personally* think that, from an UI point of view (and UI is
> important), there should be a single command, despite both being
> separate things inside bzrlib.
> My reasoning is that for the user, there is (or would be, and IMHO
> should preferrably be) only one concept: "the file/format to send my
> changes to the author of a branch, which is equivalent to publishing my
> branch, and which most of the time include a diff representation of its
What you're describing is bundles, and merge directives encompass more
than that. A major use is to send merge directives *without* bundles.
> So, in my opinion, there would be a single command, preferably `bundle`,
> that would take care of all the possible use cases, always producing
> merge directives (almost always, anyway):
I also pondered making the 'bundle' command emit merge directives.
The problem is that the merge directive command is the better UI. It
includes the concept of merge directives without bundles. It includes
signing and mailing.
With "bundle", the -r specifier controls the range of revisions included
in the preview. This makes it easy to create unmergeable bundles. With
"merge-directive", the -r specifier controls the target and base
revisions to be merged. It's not easy to create an unmergeable bundle.
And it allows cherrypicks.
merge-directive also introduces the concept of a submit branch. Since
it must sometimes be specified, it should be a positional argument, not
an option. But 'bundle' has an optional filename argument. Merging the
commands would mean breaking someone's usage.
> 3. `bzr bundle --no-bundle` # heh
> A merge directive without the bundle (needs URL).
Yeah, this is what starts to be too much of a departure. I expect
bundle-less merge directives to be reasonably common, so I don't think
"bundle --no-bundle" is a reasonable command.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
More information about the bazaar