msysgit/git — pull request #122 by kblees (2014-02-08 18:51:26+00:00)
Title: Support long paths v2

Changes since v1 (#117):
* based on @dcho's #114
* add a test case for long repository paths (i.e. checkout things that _really_ exceed MAX_PATH)
* if len(cwd) + len(path) exceeds MAX_PATH, but the absolute path does not (e.g. due to eliminating '..'), use the absolute path.

The latter fixes @vangdfang's submodule test case: `is_git_directory`tries to `access("../test/$longpath")` from cwd `"somedir/$longpath"`. All involved paths (cwd, the relative path and the final path on disk) are shorter than `MAX_PATH`, yet `waccess/GetFileAttributesW` fails with an error. So I guess the popular MSDN clause "the name is limited to MAX_PATH characters" must have some hidden meaning that I missed completely ;-)

Here's an installer with this patch included:
https://drive.google.com/file/d/0BxXUoUg2r8ftSVA3YmdLMjdJMkk/edit?usp=sharing