Better name for dpush wanted

Stephen J. Turnbull stephen at xemacs.org
Sat May 2 06:24:41 BST 2009


Andrew Bennetts writes:

 > I should point out that "pull" seems like a good name to me because it's
 > very much like "push" but in the opposite direction.  The options that they
 > both take and the effects of those options are basically the same, except
 > that pull cannot create a new branch whereas push can.

I see your point.  So the identification of content that git
accomplishes by simply declaring that the same content is the same
object (and optimizes by using content digests as names for copies of
objects), in Bazaar is accomplished by restricting the behavior of
push and pull to exact synchronization.

I guess that this argument puts me in the "dpush should be a separate
command but needs a better name" camp, since it's not possible to do
an exact sync across VCSs.

It makes me like Bazaar's model a lot less than I did a few minutes
ago, though, because it implies that Bazaar itself really does think
of the content on the local disk as "the branch".  But since push and
pull cannot be the only modes of communication, I suspect that this
failure to identify content with "objecthood" costs Bazaar a lot of
theoretically unnecessary interbranch communication.

Isn't the inability of pull to create branches is an implementation
detail?  I see no reason why a pull couldn't create a new branch, a
new stacked branch, or even an unnamed colocated head (a la Mercurial)
waiting to be merged, in the same way that push does.

Actually I find it sort of unnatural that push can create branches; I
would think it more natural to give this capability to the branch
command.  Alteratively, nuke the branch command in favor of pull and
push.  You could even nuke the init command, and create de novo
branches by pulling or pushing from a special null branch.  (Yeah, I
know: "Steve, you're weird.  No sane person would think of branch
initialization as pulling from a null branch!")



More information about the bazaar mailing list