threads / bug / 46160

bug? fetching from empty unnamed remote repos

Subject: bug? fetching from empty unnamed remote repos

## tl;dr

2 messages between Jun 12, 2017 and Jun 12, 2017.

replies: 1people: 2as markdown or json

David Turner· Jun 12, 2017, 17:50 UTC · lore

$ git init empty-1 $ git init empty-2 $ cd empty-1 $ git fetch ../empty-2 fatal: Couldn't find remote ref HEAD fatal: The remote end hung up unexpectedly

But: $ git init empty-1 $ git init empty-2 $ cd empty-1 $ git remote add other ../empty-2 $ git fetch other # this works

I haven't spent a lot of time looking into the code, because we can use the second option.  But it does seem weird.
Junio C Hamano· Jun 12, 2017, 18:08 UTC · re: David Turner · lore

Re: bug? fetching from empty unnamed remote repos

David Turner <David.Turner@twosigma.com> writes:
Show 6 quoted lines
> $ git init empty-1
> $ git init empty-2 
> $ cd empty-1
> $ git fetch ../empty-2
> fatal: Couldn't find remote ref HEAD
> fatal: The remote end hung up unexpectedly

The current repository does not know anything about empty-2 repository. It does not have [remote "name"] section that points at ../empty-2 and it does not have a refspec to fetch.

Hence "git fetch ../empty-2" tries to fetch HEAD from that repository by default. It does not exist, and it fails.

Show 5 quoted lines
> But:
> $ git init empty-1
> $ git init empty-2 
> $ cd empty-1
> $ git remote add other ../empty-2

You told to your current repository to have [remote "other"] section, that points at ../empty-2 and fetch with refs/heads/*:refs/remotes/other/* as the refspec.

> $ git fetch other

Hence "git fetch other" tries to fetch refs/heads/* into refs/remotes/other/*; not having any matching source is not a crime---it is a simple noop.

> # this works

So there is nothing surprising about all of the above as far as I can see.

← back to recent threads