Web lists-archives.com

test suite: why does git add large_file create a pack, rather than an object?

I'm looking at the Git-for-Windows(GfW) >4Gb  large file problem following Torsten and Thomas's work (and others). [1,2,3, etc.]

I've added a few more changes to my branch [2] to get the zlib to properly count past its 32bit limit when wrapped in the git_inflate (etc) wrapper code. [4]

At the moment I'm using an extended _test_ case that starts by adding a ~5.1Gb file and then using verify-pack, which aborts with an error.

        dd if=/dev/zero of=file bs=1M count=5100 &&
        git config core.compression 0 &&
        git config core.looseCompression 0 &&
        git add file &&
        git verify-pack -s .git/objects/pack/*.pack &&
        git fsck --verbose --strict --full &&

If however I simple execute the commands from the GfW bash, the added file is stored as a blob object, rather than a pack.

I'm at a loss to understand the reason for the change in behaviour [store file as pack, vs store as object] between running the code as a test script and at the terminal. What am I missing?

I have 'good' output from the test script on the WSL (and have identified the packs' specific byte differences), but my gdb experience is limited so executing that test while within the test script meant I couldn't start debugging there. Hence the direct execution from the terminal that raised the issue.


[1] <20190131203842.633ztr4yckn7kl2d@tb-raspi4>
[2] https://github.com/gitgitgadget/git/pull/115#issuecomment-4753008375
[3] https://github.com/git-for-windows/git/issues/1848
[4] https://github.com/PhilipOakley/git/tree/size_t2