Re: [PATCH 1/3] t7700: add failing --path-walk test
- From
Elijah Newren <newren@gmail.com>
- Date
- Aug 21, 2025, 23:21 UTC
- Message-ID
- <CABPp-BH5OLfCcAgwtLfUdT6_=ZhiXYUBd+HwUgNzQ+LyRoA=jA@mail.gmail.com>
- In-Reply-To
- <5b19173c03da676b3e1effda7ba6d2ef5666cad6.1755715196.git.gitgitgadget@gmail.com>
On Wed, Aug 20, 2025 at 11:39 AM Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com> wrote:
Show 5 quoted lines
> > From: Derrick Stolee <stolee@gmail.com> > > Users reported an issue where objects were missing from their local > enlistments after a full repack using 'git repack -adf --path-walk'.
What is an enlistment?
> This was alarming, but took a while to create a reproducer.
but => and ?
Show 19 quoted lines
> The root cause is that certain objects existed in the index and had no > second versions. These objects are usually blobs, though trees can be > included if a cache-tree exists. The issue is that the revision walk > adds these objects to the "pending" list and the path-walk API forgets > to mark the lists it creates at this point as "maybe_interesting". If > these paths only ever have a single version in the history of the repo > (including the current staged version) then the parent directory never > tries to add a new object to the list and mark the list as > "maybe_interesting". Thus, when walking the list later, the group is > skipped as it is expected that no objects are interesting. This happens > even when there are actually no UNINTERESTING objects at all! This is > based on the optimization enabled by the pack.useSparse=true config > option, which is the default. > > Thus, we create a test case that demonstrates the many cases of this > issue for reproducibility: > > 1. File a/b/c has only one committed version. > 2. Files a/i and x/y only exists as staged changes.
exists => exist
I didn't have any questions or spot any issues on the rest of the patch.