Finn Arne Gangstad <finnag@xxxxxxx> 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? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html