All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Finn Arne Gangstad <finnag@pvv.org>
Cc: git@vger.kernel.org
Subject: Re: [RFC/PATCH] git push usability improvements and default change
Date: Mon, 09 Mar 2009 17:07:08 -0700	[thread overview]
Message-ID: <7vfxhmdyvn.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <1236638151-6465-1-git-send-email-finnag@pvv.org> (Finn Arne Gangstad's message of "Mon, 9 Mar 2009 23:35:44 +0100")

Finn Arne Gangstad <finnag@pvv.org> writes:

> "-" is now an alias for the current remote (the remote of the current
> branch or "origin" as a fallback). This works both for push, fetch,
> pull, remote (and possibly some others), creating a lot of nice
> shortcuts I think:
> git remote prune - : prune the current remote
> git push - HEAD : push the current branch to a branch of the same name
> git fetch - next : fetch the next branch from the current remote
>
> git push has learned two new command line options --matching and
> --current, which override any configuration.  'matching' pushes all
> branches that already exist at the remote, while 'current' pushes the
> current branch to whatever it is tracking
>
> I chose this behaviour for 'current', since it is the one that I find
> most useful, and there seems to be no good way of expressing it from
> the command line.  Pushing a branch to an identically named branch on
> a remote can now easily be done by "git push - HEAD".
>
> Also added a new configuration option push.default, which can have values
> "nothing", "matching" and "current". This variable will only be used if
> you have not specificed any refspecs at all, no command line options imply
> any refspecs, and the current branch has no push configuration.
>
> This is implemented in 1-3

I think the last four are more or less sane, but I am not sure about the
first three, which makes it very unfortunate that the former depends on
the latter.

Some design issues and questions regarding the first three; not all of
them are objections:

 * Do we use a short-hand for "the default thing" anywhere else in the
   current UI (not just "git push" but in the "git" command set)?

   - If the answer to the above question is "yes", does it use '-' as the
     short-hand too?  In other words, is this new short-hand consistent
     with it, or is it introducing "git-push uses '-' as the short-hand
     for the default, while git-frotz uses something else" confusion?

   - Even if the answer to the above question is "no", are there other
     commands that we currently do not allow a quick shorthand to mean
     "the default thing", but would benefit from having one?  If so, how
     good does it look to use '-' as such a short-hand?

     In other words, is it safe to establish a precedent to use '-' to
     denote "the default thing"?  Would we later regret, saying that
     "'git-frotz command would benefit from a short-hand notation for 'the
     default thing', but - is already taken -- it means send the output to
     the stdout"?

   - Do we use a short-hand '-' to mean something entirely different in
     the UI, making this new use of '-' to mean the default confusing?

     I think '-' for checkout means "the previous one", which already
     answers this question somewhat.

 * What's the point of having --matching option, when you can already say
   ':', i.e.

	$ git push origin :

 * What's the point of having --current option, when you can already say
   HEAD, i.e.

	$ git push origin HEAD

 * Is push.default still necessary if we had "remote.*.push" (where '*' is
   literally an "asterisk") that is used as a fall-back default when there
   is no "remote.<name>.push" for the remote we are about to push to?

  parent reply	other threads:[~2009-03-10  0:08 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-09 22:35 [RFC/PATCH] git push usability improvements and default change Finn Arne Gangstad
2009-03-09 22:35 ` [PATCH 1/7] remote: Make "-" an alias for the current remote Finn Arne Gangstad
2009-03-09 22:35 ` [PATCH 2/7] New config option push.default Finn Arne Gangstad
2009-03-09 22:35 ` [PATCH 3/7] git push: New options --matching and --current Finn Arne Gangstad
2009-03-09 23:49   ` Daniel Barkalow
2009-03-10  8:54     ` Finn Arne Gangstad
2009-03-09 22:35 ` [PATCH 4/7] git push: Display warning on unconfigured default push Finn Arne Gangstad
2009-03-10  0:25   ` Jay Soffian
2009-03-09 22:35 ` [PATCH 5/7] git push: Document that "nothing" is the future push default Finn Arne Gangstad
2009-03-09 22:35 ` [PATCH 6/7] git push: Change default for "git push" to nothing Finn Arne Gangstad
2009-03-09 22:35 ` [PATCH 7/7] git push: Remove warning for "git push" default change Finn Arne Gangstad
2009-03-09 23:35 ` [RFC/PATCH] git push usability improvements and " Johannes Schindelin
2009-03-10  0:12   ` Junio C Hamano
2009-03-10  8:46   ` Finn Arne Gangstad
2009-03-10 11:01     ` Johannes Schindelin
2009-03-10 11:12       ` Finn Arne Gangstad
2009-03-10  0:07 ` Junio C Hamano [this message]
2009-03-10  0:19   ` Junio C Hamano
2009-03-10 10:04   ` Finn Arne Gangstad
2009-03-10 16:20     ` Jay Soffian
2009-03-11 20:35     ` Junio C Hamano
2009-03-12  3:01       ` Nanako Shiraishi
2009-03-12 10:22         ` Finn Arne Gangstad
2009-03-12 10:52           ` Miles Bader
2009-03-12 12:20             ` Finn Arne Gangstad
2009-03-13  8:28               ` Miles Bader
2009-03-13 10:07                 ` John Tapsell
2009-03-10 17:52 ` Jeff King
2009-03-10 22:04   ` Finn Arne Gangstad
2009-03-10 22:10     ` Jeff King
2009-03-11  1:57     ` Jay Soffian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vfxhmdyvn.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=finnag@pvv.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.