On 2019.10.14 17:12, Jonathan Tan wrote: > The specification of promisor packfiles (in partial-clone.txt) states > that the .promisor files that accompany packfiles do not matter (just > like .keep files), so whenever a packfile is fetched from the promisor > remote, Git has been writing empty .promisor files. But these files > could contain more useful information. > > So instead of writing empty files, write the refs fetched to these > files. This makes it easier to debug issues with partial clones, as we > can identify what refs (and their associated hashes) were fetched at the > time the packfile was downloaded, and if necessary, compare those hashes > against what the promisor remote reports now. > > This is implemented by teaching fetch-pack to write its own non-empty > .promisor file whenever it knows the name of the pack's lockfile. This > covers the case wherein the user runs "git fetch" with an internal > protocol or HTTP protocol v2 (fetch_refs_via_pack() in transport.c sets > lock_pack) and with HTTP protocol v0/v1 (fetch_git() in remote-curl.c > passes "--lock-pack" to "fetch-pack"). > > Signed-off-by: Jonathan Tan <jonathantanmy@xxxxxxxxxx> > --- > Changes from v1: > - commit message explains scope of change ("it knows the name of the > pack's lockfile) > - explained what .promisor contains in comment in builtin/repack.c > - moved .promisor writing until after we know that index-pack succeeded > --- Thanks, this looks good to me.