-
Notifications
You must be signed in to change notification settings - Fork 317
Win32: fix checkout problem with directories exceeding MAX_PATH #212
Win32: fix checkout problem with directories exceeding MAX_PATH #212
Conversation
Is that bug also present in master? |
@kblees do you want to address that before or after the merge? |
Yes. I cherry-picked it. |
Wooooow! I should not have done that. Not at all. @kblees we cannot use I am pretty confident that I unbroke it (BuildHive did not yet respond, but I am sure it will) with these three commits: d49a708...b31f626 @kblees could you have a look and adjust the PR accordingly? It really should apply very cleanly, and I'd suggest moving the |
@dscho sorry for the mess, I probably should have marked this as preliminary more clearly. This round compiles and passes the test suite on both Windows (on the maint-1.9 branch, master seems to be completely broken ATM) and Linux (Junio's master). Also fixes a segfault in git-status with long paths. |
MSysGit - the development behind Git for Windows » git #240 SUCCESS |
I only noticed when I started playing with my shiny new Windows VM (sponsored by Microsoft!) that there were test failures. However, last time I ran the test suite on |
'git checkout' fails if a directory is longer than PATH_MAX, because the lstat_cache in symlinks.c checks if the leading directory exists using PATH_MAX-bounded string operations. Remove the limitation by using strbuf instead. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rename cache_def_free to cache_def_clear as it doesn't free the struct cache_def, but just clears its content. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Karsten Blees <blees@dcon.de>
There is no actual nested struct here. Move it out for clarity. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Karsten Blees <blees@dcon.de>
This also fixes the problem of silently ignoring .gitignore if the full path exceeds PATH_MAX. Now add_excludes_from_file() will report if it gets ENAMETOOLONG. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Karsten Blees <blees@dcon.de>
Use a suffciently large buffer to strip the trailing slash. Signed-off-by: Karsten Blees <blees@dcon.de>
Updated the PR with the patches that are queued upstream. |
MSysGit - the development behind Git for Windows » git #242 SUCCESS |
I've seen that nd/path-max-must-go was merged upstream. The others also? |
@t-b everything is in upstream/master except for the last patch, which depends on long path support |
@kblees Thanks. So, just to be sure, we can merge the PR to maint-1.9? |
@t-b Yes, ready to merge |
The test suite runs trough with this PR. Only some svn tests have the usual problems. |
…ries Win32: fix checkout problem with directories exceeding MAX_PATH
When this will be released? I need it sooooo much |
@fetis we made it soooooo easy to make your own installer from the current Why don't you give it a try? |
I did and it's unclear for me how can I build HEAD of maint-1.9 branch. It always reset to v1.9.4.msysgit.0 tag :(( |
I read it twice. My set of command is
but it stull use 1.9.4 |
any help on this? |
…ries Win32: fix checkout problem with directories exceeding MAX_PATH
This fixes issue msysgit/msysgit#227
TODO: change symlinks.c upstream to use strbuf instead of fixed length buffers.