-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Support core.longpaths
on Windows
#5347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
25c1a29
to
c87570a
Compare
Awesome!
I think we should honor it. There are just too many tools on windows that don’t understand long paths that this should be opt in so that people who shoot themselves in the foot had to explicitly load the gun. |
dcb8bef
to
557fd6f
Compare
ec9cd39
to
99edaed
Compare
core.longpaths
on Windowscore.longpaths
on Windows
A few updates:
I'm sure this still needs more tests for the longpaths case, however I believe it's ready to go functionally. |
This should be removed once libgit2/libgit2#5347 is merged
99edaed
to
e24949b
Compare
Includes unmerged PRs: - libgit2/libgit2#5384 - libgit2/libgit2#5347 - libgit2/libgit2#4205
Includes unmerged PRs: - libgit2/libgit2#5384 - libgit2/libgit2#5347 - libgit2/libgit2#4205
/rebuild |
Sorry @ianhattendorf, an error occurred while trying to requeue the build. |
33f6144
to
40a3c13
Compare
@ethomson rebased onto latest master. I'm sure you're busy with the holidays coming up, when you have the time it would be great if you could leave any feedback you have. |
33311e2
to
5389ccb
Compare
This depends on #5823. I'm deleting "me too!" or "why isn't this merged yet!" comments. Please don't post those. (If you want this feature as-is, include this PR in your own build of libgit2.) |
I opened #5857 with this, and a few minor changes. Of note:
|
Thanks for this @ianhattendorf! I'm going to bring it in over at #5857! 🎉 |
Initial test run at supporting paths >
260
on Windows (#3053). Works as far as I can tell (clone, commit, checkout, etc.) but definitely needs more testing.TODO:
Do we need to respectcore.longpaths
, or can we simply always support long paths? I'm assuming we need to respect it (https://xkcd.com/1172/), but AFAIK this exists because CLI Git for Windows doesn't support long paths across all commands/internal scripts, and is seen as experimental.Potentially keep static buffers at260
, dynamically allocate past that. Is an increase in path static buffer size from532
/778
bytes to8204
/12286
bytes too much for Win32? Static is nice here since there is no allocation performance penalty regardless of whether short or long paths are used. Do we support variants of Windows with small stack sizes (e.g. Windows CE)?DeleteFileW(buffer)
)