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

Re: Bug in "revision.c: --all adds HEAD from all worktrees" ?

From
Luke Diamand <luke@diamand.org>
Date
Nov 15, 2017, 21:38 UTC
Message-ID
<CAE5ih79TojvBv4OZnHejm3Huypg=6KVmDqJURGN+uk+izkH0xw@mail.gmail.com>
In-Reply-To
<CAGZ79kZrZckX=xTgTH4cMper6BPAQ-_LT_x721SBEBB+Ks06jw@mail.gmail.com>
+Jeff King
On 13 November 2017 at 22:15, Stefan Beller <sbeller@google.com> wrote:
Show 36 quoted lines
> On Mon, Nov 13, 2017 at 2:03 PM, Luke Diamand <luke@diamand.org> wrote:
>> On 13 November 2017 at 19:51, Luke Diamand <luke@diamand.org> wrote:
>>> Hi!
>>>
>>> I think there may be a regression caused by this change which means
>>> that "git fetch origin" doesn't work:
>>>
>>> commit d0c39a49ccb5dfe7feba4325c3374d99ab123c59 (refs/bisect/bad)
>>> Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
>>> Date:   Wed Aug 23 19:36:59 2017 +0700
>>>
>>>     revision.c: --all adds HEAD from all worktrees
>>>
>>> $ git fetch origin
>>> fatal: bad object HEAD
>>> error: ssh://my_remote_host/reponame did not send all necessary objects
>>>
>>> I used git bisect to find the problem, and it seems pretty consistent.
>>> "git fetch" with the previous revision works fine.
>>>
>>> FWIW, I've got a lot of git worktrees associated with this repo, so
>>> that may be why it's failing. The remote repo is actually a git-p4
>>> clone, so HEAD there actually ends up pointing at
>>> refs/remote/p4/master.
>>>
>>> Thanks,
>>> Luke
>>
>> Quite a few of the worktrees have expired - their head revision has
>> been GC'd and no longer points to anything sensible
>> (gc.worktreePruneExpire). The function other_head_refs() in worktree.c
>> bails out if there's an error, which I think is the problem. I wonder
>> if it should instead just report something and then keep going.
>
> Also see
> https://public-inbox.org/git/CAGZ79kYP0z1G_H3nwfmSHraWHMBOcik5LepUXKj0nveeBrihiw@mail.gmail.com/
So is this a bug or user error on my part?

Surely at the very least "git fetch" shouldn't give a cryptic error message just because one of my git worktrees has expired!

Previous: Stefan BellerNext: Jeff King
Message 4 of 9 in “Bug in "revision.c: --all adds HEAD from all worktrees" ?”
  1. Luke DiamandNov 13, 2017
  2. Luke DiamandNov 13, 2017
  3. Stefan BellerNov 13, 2017
  4. Luke DiamandNov 15, 2017
  5. Jeff KingNov 17, 2017
  6. Junio C HamanoNov 15, 2017
  7. Luke DiamandNov 16, 2017
  8. Ævar Arnfjörð BjarmasonMar 12, 2018
  9. Duy NguyenMar 13, 2018

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.