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

Re: [PATCH] ls-remote: default to 'origin' when no remote specified

From
Jeff King <peff@peff.net>
Date
Apr 8, 2010, 06:34 UTC
Message-ID
<20100408063422.GD30473@coredump.intra.peff.net>
In-Reply-To
<l2xbe6fef0d1004072307ma8dff5c2ic5dce170b28e5957@mail.gmail.com>
On Thu, Apr 08, 2010 at 02:07:11PM +0800, Tay Ray Chuan wrote:
Show 11 quoted lines
> > I don't really see a problem with this. The current behavior produces an
> > error, so it is not as if we are breaking somebody's workflow, and the
> > only sensible default is the same one used by the other commands.
> 
> I'm trying to make it behave like the other commands that deal with
> remotes, such as git-fetch and git-push; when they are run without any
> arguments, they default to "origin" or branch.<name>.remote.
> 
> Assuming that you and I are talking about the same "other commands",
> than the default isn't an issue; the rules used to determine the
> default remote is done in remote_get(), so they are similar.

The commands I meant were push, fetch, and pull. I couldn't think of any others.

Show 7 quoted lines
> >> +     if (!remote)
> >> +             die("Where do you want to list from today?");
> >
> > Heh.
> 
> Do you think this is too light-hearted for ls-remote's role? If so,
> I'll just revert back exiting with the usage text.

Perhaps. In general that is not a helpful message to show to the user, but it is very unlikely to be shown at all. You would have to have no configured remote for your current branch, _and_ you would have had to delete the config for the "origin" remote.

Fetch's message is equally hard to trigger, I think, which is perhaps why nobody has complained about it yet.

Show 6 quoted lines
> > This seems like a very odd thing to be testing. Should you not instead
> > test that "git ls-remote $foo" still treats $foo as a remote and lists
> > it, which is what we really care about?
> 
> There are already existing tests to test "git ls-remote $foo" (unless
> you mean '$' to have a special significance, like '*' does).
No, I meant $foo as a variable, as you interpreted.
> The test was to let current and future git hackers/users know that the
> usage of <pattern> as the remote by git-ls-remote ("<pattern> does not
> appear to be a git repository") is indeed expected behaviour.

I think documenting that in the commit message would be fine, but I don't have a strong opinion. It seems like the existing "git ls-remote $foo" tests would cover this by correctly interpreting $foo as a remote.

If you do keep it, it also should use test_must_fail.
Also, I note that you are testing for:
  fatal: 'refs*master' does not appear to be a git repository
  fatal: The remote end hung up unexpectedly

which is coming from two separate processes, which means the output may have a race condition. I suspect we're OK because the second message is triggered by closing the fd which must happen after the first message is printed.

-Peff
Previous: Tay Ray ChuanNext: Junio C Hamano
Message 6 of 18 in “ls-remote: default to 'origin' when no remote specified”
  1. ls-remote: default to 'origin' when no remote specifiedTay Ray Chuan, Apr 8, 2010
  2. Jeff KingApr 8, 2010
  3. Junio C HamanoApr 8, 2010
  4. Jeff KingApr 8, 2010
  5. Tay Ray ChuanApr 8, 2010
  6. Jeff KingApr 8, 2010
  7. Junio C HamanoApr 8, 2010
  8. Jeff KingApr 8, 2010
  9. Junio C HamanoApr 8, 2010
  10. Tay Ray ChuanApr 8, 2010
  11. ls-remote: fall-back to default remotes when no remote specifiedTay Ray Chuan, Apr 8, 2010
  12. ls-remote: fall-back to default remotes when no remote specifiedTay Ray Chuan, Apr 8, 2010
  13. Jeff KingApr 8, 2010
  14. Tay Ray ChuanApr 8, 2010
  15. ls-remote: fall-back to default remotes when no remote specifiedTay Ray Chuan, Apr 8, 2010
  16. Jeff KingApr 8, 2010
  17. Peter KjellerstedtApr 9, 2010
  18. Tay Ray ChuanApr 9, 2010

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.