Re: [PATCH/RFC] WIP: log: allow "-" as a short-hand for "previous branch"
- From
Siddharth Kannan <kannan.siddharth12@gmail.com>
- Date
- Feb 8, 2017, 17:23 UTC
- Message-ID
- <CAN-3QhoZN_wYvqbVdU_c1h4vUOaT5FOBFL7k+FemNpqkxjWDDA@mail.gmail.com>
- In-Reply-To
- <vpqh944eof7.fsf@anie.imag.fr>
Hello Matthieu,
On 8 February 2017 at 20:10, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:
Show 9 quoted lines
> In a previous discussion, I made an analogy with "cd -" (which is the
> source of inspiration of this shorthand AFAIK): "-" did not magically
> become "the last visited directory" for all Unix commands, just for
> "cd". And in this case, I'm happy with it. For example, I never need
> "mkdir -", and I'm happy I can't "rm -fr -" by mistake.
>
> So, it's debatable whether it's a good thing to have all commands
> support "-". For example, forcing users to explicitly type "git branch
> -d @{1}" and not providing them with a shortcut might be a good thing.builtin/branch.c does not call setup_revisions and remains unaffected by this patch :)
In my original patch post, I was not explicit about what files call setup_revisions. I would like to rectify that with this (grep-ed) list:
* builtin/blame.c * builtin/diff.c * builtin/diff-files.c * builtin/diff-index.c * builtin/diff-tree.c * builtin/log.c * builtin/rev-list.c * builtin/shortlog.c * builtin/fast-export.c * builtin/fmt-merge-msg.c builtin/add.c builtin/checkout.c builtin/commit.c builtin/merge.c builtin/pack-objects.c builtin/revert.c
* marked commands only show information, and don't change anything.
As you might notice, in this list, most commands are not of the `rm` variety, i.e. something that would delete stuff.
In the next version of this patch, I will definitely include the list of commands which are "rm-ish" and affected by this patch.
Show 5 quoted lines
> > I don't have strong opinion on this: I tend to favor consistency and > supporting "-" everywhere goes in this direction, but I think the > downsides should be considered too. A large part of the exercice here is > to write a good commit message!
Yes, I prefer consistency very much as well! Having "-" mean the same thing across a lot of commands is better than having that shorthand only in a few commands, as it is now. Unless there is a specific confusion that might arise because of this shorthand inclusion, I think that this shorthand should be supported across the board. (I especially like typing `git checkout - <filename>` which is very handy!)
Show 8 quoted lines
> > Another issue with this is: - is also a common way to say "use stdin > instead of a file", so before enabling - for "previous branch", we need > to make sure it does not introduce any ambiguity. Git does not seem to > use "- for stdin" much (most commands able to read from stdin have an > explicit --stdin option for that), a quick grep in the docs shows only > "git blame --contents -" which is OK because a revision wouldn't make > sense here anyway.
Yes, just to jog your memory, this was discussed here [1]
Junio said:
As long as the addition is carefully prepared so that we know it
will not conflict (or be confused by users) with possible other uses
of "-", I do not think we would mind "git branch -D -" and other
commands to learn "-" as a synonym for @{-1}.> > -- > Matthieu Moy > http://www-verimag.imag.fr/~moy/
Thanks a lot for the review on this patch, Matthieu!
-- Best Regards, - Siddharth. [1]: https://public-inbox.org/git/7vmwpitb6k.fsf@alter.siamese.dyndns.org/