git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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/
Previous: Matthieu MoyNext: Matthieu Moy
Message 9 of 11 in “WIP: log: allow "-" as a short-hand for "previous branch"”
  1. WIP: log: allow "-" as a short-hand for "previous branch"Siddharth Kannan, Feb 5, 2017
  2. Pranit BauvaFeb 5, 2017
  3. Junio C HamanoFeb 6, 2017
  4. Siddharth KannanFeb 6, 2017
  5. Siddharth KannanFeb 6, 2017
  6. Junio C HamanoFeb 6, 2017
  7. Siddharth KannanFeb 7, 2017
  8. Matthieu MoyFeb 8, 2017
  9. Siddharth KannanFeb 8, 2017
  10. Matthieu MoyFeb 9, 2017
  11. Siddharth KannanFeb 9, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.