[DRAFT] for testing : Fix 4Gb limit for large files on Git for Windows#2179
[DRAFT] for testing : Fix 4Gb limit for large files on Git for Windows#2179PhilipOakley wants to merge 14 commits into
Conversation
|
The DCO bot is in error (at least from my viewpoint). The ref commit was provided by the signed off by author. It was a necessary pre-requisite, though does have some obvious conflict fixes with the upstream pu. Not sure if I should just double sign Torsten's patch? |
|
I went back and rebase the series Unsure how to get the CI testing to get started. |
5539b3d to
f293144
Compare
c686e70 to
ed36d4f
Compare
ff345ba to
66c432b
Compare
ed04f07 to
2e5a910
Compare
Probably, but you will want to make sure that the recorded author matches the first Signed-off-by: line. |
|
Could I ask you to re-target this PR to |
|
(You will of course want to run |
|
@dscho I'll rebuild/rebase the series in the next day or three, applying Torsten's patch directly at the start of the series. I'd deliberately targeted pu to at least be ahead of the game for the conflicts with the As a side issue, I'm having problems fathoming how the MSVC=1 build should work seeing as I need to patch compat\vcbuild\MSVC-DEFS-GEN which is generated apparently by the vcpkg but I can't find where. See my 8f635b2f-a42b-b160-bc51-5fdcb552f6f3@iee.org on the googlegroups list https://groups.google.com/forum/#!topic/git-for-windows/Y99a0dzlVJY. |
f866bf0 to
71122ee
Compare
71122ee to
aa65c89
Compare
|
I've decided against fighting the conflicts until the (What's cooking in git.git (May 2019, #1; Thu, 9))
Once that's landed my rebase should be cleaner and easier - it was too easy to get confused as to which way all the conflicts were going, especially as they are, for the purpose of the series, incidental irrelevances. |
Makes a ton of sense to me, @PhilipOakley ! |
@dscho I see Junio has announced |
|
just seen (follow up to the rc0 announcement): So I hope to get on it today. |
Oh, sorry! I was so heads-down into getting Git for Windows v2.22.0-rc0 out the door (and then on trying to tie up a few loose ends in Git v2.22.0-rc0 in time for -rc1) that I missed this. The update of You may ask "why?" and it is a very legitimate question. The answer boils down to "I want to keep the door open for Git for Windows v2.21.1, if need be". You see, I am not at all a fan of many release branches. And my automation really is centered around So the update to However, hope is near ;-) I do, of course, make those -rc* previews from Git commits, but those live on And once Git v2.22.0 is close enough (I won't publish a Git for Windows v2.21.1 if I expect to publish a v2.22.0 within a week, unless there are serious security concerns), I will fast-forward Therefore, I would suggest to simply re-target your branch to |
I understand that. Yet I think some of that caution erred on the side of redundancy, and I would rather not spend the time on the mailing list trying to defend unnecessary casts... |
|
@dscho: https://github.com/tboegi/git/tree/tb.190828_convert_size_t_mk_size_t |
Having reviewed many patch series, I much prefer reviewing a dozen relatively short patch series over the course of a dozen weeks to having to review all the changes in one big patch. Remember: there are patches so simple and elegant that there is no obvious place for bugs to hide, and there are patches so gigantic and repetitive that there is no obvious place for bugs to hide (but plenty of non-obvious places). No, I still think we need to do our best job to make this thing easy to review. If you can augment that big patch by a small Coccinelle patch that generates it, that would make it reviewable, of course. But that enormous wall of diff? Not reviewable at all. |
|
@dscho The first size_t commit is not going away. It has always been that big because there are compilers that do not accept less. This is part of the inconsistent behaviours of these implementation defined behaviours (the type It maybe that someone wants to split it into a few "won't compile on my machine" patches, but I'd rather we stay with what we have. Torsten was compiling for Rasbian (gcc (Raspbian 6.3.0-18+rpi1+deb9u1) 6.3.0 20170516), not GfW anyway. Martin Koegler's series (mk/use-size-t-in-zlib still on pu) was started in 2017 as a >4Gb issue (found by searching the archive for The size_t stuff actually had compile warnings back as far as 2007. see https://public-inbox.org/git/7vabr0djqr.fsf@gitster.siamese.dyndns.org/, so at some point maybe we need to bite the bullet and actually do the big change. ... my main problem is the test system, which is something I'm not that familiar with. I now see the tests as being: Maybe need a size graded test: 1.5Gb, 3.5Gb, 5.5Gb to walk through the two potential barriers at 2Gb and 4Gb. We also need an easily accessible compiler that has something equivalent to the former |
I remember clearly that I was able to split out a part from it, earlier this year, into a self-contained commit. Yes, it is possible to do this incrementally. It absolutely is. You can easily pass |
I think I even mentioned this somewhere in this PR or in a related one. And note: I did not even try hard. So I don't buy the argument "this patch is big, it cannot be broken down further". I don't buy that at all. |
Test whether the Git CI system allows, or fails, when LLP64 systems need variable type coercion from size_t back to unsigned long. All the *nix systems should pass, but compile checks for LLP64 systems may fail. This is a crucial information spike for Git files > 4Gb, i.e. Issues: git-lfs git-for-windows#2434, GfW git-for-windows#2179, git-for-windows#1848, git-for-windows#3306. Signed-off-by: Philip Oakley <philipoakley@iee.email>
Let #3487 serve as a counter argument, Tiny, well-contained changes from @PhilipOakley If you are truly interested in pushing this forward, I encourage you to have a look at the end of this PR comment, where I follow the rabbit hole of the call chain of Granted, that won't be as easily written as a semi-automated search-and-replace. But then, such a semi-automated, huge commit has not a slither of a chance to get reviewed on the Git mailing list, let alone accepted. |
I had a simplistic look at the call tree to see how many times each was referenced. following your rabbit hole of the call chain (URLs in link) of read_object_file(). My first wondering was : Depth first or Width first? I noticed there were two identical I may, as a narrow starter, just do |
You could try both approaches, and then go with the one that is easier to review. |
|
I guess we can close this in favor of #6068... |
This patch series should fix the large file limit on Windows where 'long' is only 32 bits.
Hopefully this PR will go through the CI/Test pipeline to check if all the patches pass the test suit
in a proper incremental manner. Plus test the MSVC=1 option.
Signed-off-by: Philip Oakley philipoakley@iee.org
The series did compile at every step, and rebased cleanly on the latest shears/pu.