Skip to content
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

Long Path Support #1481

Closed
Silvenga opened this issue Mar 17, 2014 · 16 comments
Closed

Long Path Support #1481

Silvenga opened this issue Mar 17, 2014 · 16 comments
Labels

Comments

@Silvenga
Copy link
Contributor

Windows has supported long paths (32K characters) for many years now. Sparkleshare (running on .Net) also has access to long paths. I do understand that msysgit only supports 260 characters (MAX_PATH) - however, Cygwin Git can handle 4k characters (limited by Git itself to 1K).

It seems like we should, as a committee, start supporting long file paths. How feasible would it to switch to Cygwin Git (since we do not need the Git tools provided by msysgit)

@BarryThePenguin
Copy link
Contributor

You might find this helpful msysgit/git#122

@hbons
Copy link
Owner

hbons commented Mar 17, 2014

i'd be fine switching to a different version/distribution of Git if it fixes this problem.
anyone who'd like to explore this possibility?

@Silvenga
Copy link
Contributor Author

@BarryThePenguin very nice find. This means we would not have to switch the current Git backend implementation (although a upgrade of the shipped Msysgit may be required).

Although, thinking about the impacts of supporting long paths, I am now concerned about the unified source for Windows, MAC, and Linux systems. Can Mono handle the \\?\ syntax for long file names? Does Mono support long file paths on Linux systems?

@BarryThePenguin
Copy link
Contributor

None of those concerns are an issue as msysgit is windows only and *nix doesn't have the same path length issue as windows.

I think you can just download msysgit 1.9.0 and replace the contents of
C:{installdir}\SparkleShare\msysgit with the newer version. Or build an installer from source using the newer version of msysgit.

@Silvenga
Copy link
Contributor Author

@BarryThePenguin But can Mono support > 260 characters using native methods or the \\?\ syntax (to my knowledge a call to the Windows API to bypass Windows and hand the request directly to the file system device driver). The native Windows FileInfo object in .Net will fail at reaching the constant MAX_PATH.

@hbons
Copy link
Owner

hbons commented Apr 18, 2014

@BarryThePenguin i don't know where Mono comes into the equation here. it doesn't deal with the paths, the Git binary does so there shouldn't be any issues.

has anyone been able to test this further?

@BarryThePenguin
Copy link
Contributor

@hbons, I think that question should be directed at @Silvenga

@Silvenga
Copy link
Contributor Author

I can confirm that Git works (even TortoiseGit works now) with paths of 400 characters at least, however, when I allow SparkleShare to auto commit files it deletes the files from Git that are outside of the MAX_PATH zone. I am unsure of why at the moment.

@hbons
Copy link
Owner

hbons commented Apr 19, 2014

@Silvenga did you build a SparkleShare installer with the new msysgit?

@Silvenga
Copy link
Contributor Author

@hbons No, but I copied my installation of msysgit into the SparkleShare install directory. SparkleShare should be using the newest binaries.

@genrymich
Copy link

@Silvenga you can use Long Path Tool. It works..

@hbons
Copy link
Owner

hbons commented May 14, 2014

@genrymich what's Long Path Tool?

@Silvenga
Copy link
Contributor Author

@hbons http://longpathtool.com/Order.html

@genrymich This costs money and realistically does very little. I understand how to move files and delete files out size of MAX_PATH.

Many applications have support for long path (Windows 8 Explorer, Java, Visual Studio, etc.) Longpathtool would fix issues but not the root cause.

@hbons hbons added the Windows label Nov 7, 2014
@hbons
Copy link
Owner

hbons commented Jan 13, 2015

closing this. this will be fixed when we bundle a new msysgit.

@hbons hbons closed this as completed Jan 13, 2015
@BarryThePenguin
Copy link
Contributor

Which msysgit will be used?

@hbons
Copy link
Owner

hbons commented Jan 13, 2015

latest.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants