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

Re: Improving the git remote command

From
Jeff King <peff@peff.net>
Date
Aug 26, 2014, 16:37 UTC
Message-ID
<20140826163741.GA14983@peff.net>
In-Reply-To
<CAGK7Mr7BPvV6oO_t4x_1m9sDtWBgPWUqDq+3kZx6rVYAhY+wqA@mail.gmail.com>
On Tue, Aug 26, 2014 at 06:19:20PM +0200, Philippe Vaucher wrote:
Show 9 quoted lines
> > Perhaps "-v" should have been the default all along.  I do not use "git
> > remote" myself, so I don't know if "-v" is what most people use. But
> > changing the output of "git remote" now is probably a bad thing (I
> > expect some people may depend on parsing it to get the list of remotes;
> > they should probably use the git-config plumbing to do the same thing,
> > but it's actually rather tricky to do it that way).
> 
> Just to be clear, the proposal is not about changing the output of
> "git remote".
I know. But we are left with three options:
  1. Add "git remote list" with verbose output. This is bad because it
     differs gratuitously from "git remote".
  2. Add "git remote list" with non-verbose output. This is good because
     it means "git remote" is just a shortcut for "git remote list",
     which is consistent with other parts of git. But it is potentially
     bad if "-v" is a better output format.
  3. Add "git remote list" with verbose output, and tweak "git remote"
     to match. This is bad because it breaks backwards compatibility.

The proposal is for (1). I think we agree that (3) is out. The question is whether (1) or (2) is the least bad.

> Anyway, it got me curious about other git commands reguarding "list",
> and I was very surprised because I couldn't find another one. I mean
> "git remote" actually behaves like "git branch" and "git tag". I have
> no clue why I expect "list" to work with "git remote".

Branch and tag take "--list". Remote is the odd one out in that its subcommands do not have dashes. git-stash also takes commands without dashes (and has a list command), but its default mode is to create a stash, not to list.

Show 5 quoted lines
> It's probably because "git branch" and "git tag" expect a name, and
> there "list" can only be expressed by "no name" or with some flags. On
> the other hand, "git remote" expects a subcommand (add, delete, etc)
> and there what logically maps to "list" is the subcommand "list", "no
> name" being more expected to produce a list of the subcommands.

Yeah. Branch and tag need dashed subcommands because otherwise it is ambiguous with creating tag called "list", functionality that existed before "--list" was added. Git-remote was defined with subcommands from day one, so it can get away with it. Git-stash is sort of in the category as git-remote there, except that "save" can actually take an argument. So to provide it you can't say "git stash foobar", but instead have to say "git stash save foobar" (it actually used to allow the former, but you can imagine the annoyance when you typo "git stash lsit").

-Peff
Previous: Philippe VaucherNext: Junio C Hamano
Message 5 of 10 in “Improving the git remote command”
  1. Rémy HubscherAug 26, 2014
  2. Philippe VaucherAug 26, 2014
  3. Jeff KingAug 26, 2014
  4. Philippe VaucherAug 26, 2014
  5. Jeff KingAug 26, 2014
  6. Junio C HamanoAug 26, 2014
  7. Jeff KingAug 26, 2014
  8. David AguilarAug 27, 2014
  9. Junio C HamanoAug 27, 2014
  10. Keller, Jacob EAug 27, 2014

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.