Better name for dpush wanted

Russel Winder russel.winder at concertant.com
Sat Apr 18 09:14:58 BST 2009


On Fri, 2009-04-17 at 21:09 +0200, Joseph Wakeling wrote:

> Something like 'push --shove' is very funny and apt after you know what
> it's for, but not useful before it, because as a command name it doesn't
> give a good idea as to what it's actually for.  By contrast something
> like push-foreign or push --foreign gives you a pretty good idea what it
> does even before you read the 'How do I push to another VCS?' documentation.

I think this discussion (aka argument) is going to become a bit
interminable unless there is a move to create some form of agreement.
For good or ill the current name is "dpush" as a separate command name.
Given the (weak) analogy of "git commit" and "git svn dcommit" to "bzr
push" and "bzr dpush", the status quo actually works fine for me.

So Issue 1 is

	Separate command or option?

I argue that because "dpush" changes the source branch from which the
pushing occurs  a separate command is essential.  "push" never changes
the source branch, it always only changes the push branch.  This seems
like a nice safe haven for users, they can guarantee that no matter what
disaster happens during the push, the source branch is safe.  If "dpush"
becomes an option to "push" then this invariant is not available.

Issue 2 is of course dependent on Issue 1 but can be made at the same
time by judicious choice of labels.

	What command name?

To be honest "dpush" works for me exactly because it is bizarre and yet
abstract.  Clearly it is some form of push, but it is a separate command
with a weird d that no-one knows the reason for.  Excellent -- the very
bizarreness is a great flag that there is an issue here, "dpush" pushes
but in a weird way.

If there has to be an alternative, it needs to be descriptive of what it
is doing.  Most of the suggestions to date have been related to the
nouns in the system which isn't necessarily helpful since a command
should be a verb form.  So this leads to things like "push-with-rebase"
being preferred since it is going to describe what will happen, not what
it is happening to.  The "to" here are well known the source branch and
the push branch -- which in this case will actually be a Subversion, Git
or Mercurial repository.

Clearly there is the issue of whether the activity (be it a separate
command or an option to "push") is allowed where the push branch is a
Bazaar branch.  Personally I would say no.  I think this is why the
"push-foreign" / "push --foreign" is gaining some support, it just
doesn't describe what is going to happen, it tags that the push branch
must not be a Bazaar branch.  So if this is true it is relevant, but a
misnomer if the command is allowed to a Bazaar branch.  If it is
relevant then perhaps "push-to-foreign" / "push --to-foreign"? 

Hopefully the above is helpful and will allow movement to an agreement.

-- 
Russel.
============================================================
Dr Russel Winder                 Partner

Concertant LLP          t: +44 20 7585 2200, +44 20 7193 9203
41 Buckmaster Road,     f: +44 8700 516 084    voip:  sip:russel.winder at ekiga.net
London SW11 1EN, UK.    m: +44 7770 465 077    xmpp: russel at russel.org.uk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20090418/6166cdf1/attachment.pgp 


More information about the bazaar mailing list