microsoft / team-explorer-everywhere

Team Explorer Everywhere Plugin for Eclipse
Other
300 stars 96 forks source link

Local path limits, even on platforms that don't have them. #320

Open awilkins opened 4 years ago

awilkins commented 4 years ago

Firstly, I'll qualify this with the following ; the server imposes these limits as well (!!) so even though I patched the client, I was still unable to get the files into my local folder without putting it nearer the root of my filesystem. Submitting this issue mostly so people can find it and know what's going on.

TEE imposes local path length limits of 259 chars (one less than MAX_PATH)

However, TEE runs on platforms that don't have these limits. Linux can accommodate 4,096 char paths. NTFS supports path lengths of 65kchar! This is solely about legacy limits imposed by older filesystems that are still held over in the Windows API AFAICT.

There are limits coded into the client, specifically in LocalPath.java at line 1348, that check for long paths (along with a comment about .NET not supporting long paths) that was probably true when the code was written.

I patched this out and rebuilt the client ... but the error I was getting was a SOAP error being thrown by the server! Apparently the server Has Opinions about where you should put files in your local filesystem. Given that it's the TFVC server at Azure Devops, I imagine this is never going to get patched out.

Hopefully my ticket at least explains this to someone.