Subject: Re: [PATCH 00/28] Create a reference backend for packed refs

From: Junio C Hamano <[email-masked]>
Date: Mon, 19 Jun 2017 11:51:39 -0700

Michael Haggerty <[email-masked]> writes:

> I've developed these patches on top of master plus the following
> patches, which are followups to mh/packed-refs-store-prep:
>
> * lock_packed_refs(): fix cache validity check
> * for_each_bisect_ref(): don't trim refnames
>
> The patches can also be obtained from my GitHub fork [2] as branch
> "packed-ref-store".
>
> Michael
>
> [1] http://public-inbox.org/git/[email-masked]/
> [2] https://github.com/mhagger/git

Thanks.

Both in the version I queued and a fresh fetching of c13b2fad
("read_packed_refs(): die if `packed-refs` contains bogus data",
2017-06-12) from your https://github.com/mhagger/git repository
seems to exhibit an annoying error message in my local repository I
use for the primary work:

    $ git fetch https://github.com/mhagger/git packed-ref-store
    $ git checkout FETCH_HEAD
    $ make
    $ ./git describe next
    error: refs/notes/amlog does not point to a valid object!
    v2.13.1-611-g7e3b11ae1b
    $ grep refs/notes/amlog .git/packed-refs
    ed07e83cff8e407464fb2f5e84bd311da9c87565 refs/notes/amlog
    $ git rev-parse refs/notes/amlog
    b3079212325398e406078585c785c892d6e572f0
    $ git cat-file -t ed07e83cff8e407464fb2f5e84bd311da9c87565
    fatal: git cat-file: could not get object info
    $ git cat-file -t b3079212325398e406078585c785c892d6e572f0
    commit

Is the iterator over packed-refs correctly skipping over what are
covered by loose refs?  The entries in the packed-refs file that are
superseded by loose refs should be allowed to point at an already
expired object.