Re: Improving the git remote command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 26, 2014 at 06:19:20PM +0200, Philippe Vaucher wrote:

> > 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.

> 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
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]