I'm using windows 7 and sourcetree 22.214.171.124 with following in my git config file
You notice the core.longpaths option there. I can checkout my project from bitbucket perfectly and work on it in inteliJ. However when I try to stage a file longer then 260 chars sourcetree stages it for delete. I can commit the file just fine with command line git or even in inteliJ.
Is this a bug in the current sourcetree or can this be fixed with a parameter ? This is a very dangerous development cause if a code reviewer misses this in one pull request the project code if not unit tested properly could get messed up.
Hi Kenny! The 260 character file path limit comes from the Windows side and was fixed on Windows 10, you can read more about it at Why does the 260 character path limit exist in Windows?
Regarding the long name files being staged for deletion, you can follow these steps to fix the issue:
After this, you'll be warned with a “Filename too long” message instead of having your files staged for deletion.
Thanks to Matej Drolc for putting this together in his blog msysgit-longpath. I'll also open a bug ticket to see if we can get SourceTree's embedded Git to respect the longpath settings.
Hope this helps, Kenny :)
I followed all the steps but the problem persists. This is my current git config
core.symlinks=false core.autocrlf=true core.fscache=true color.diff=auto color.status=auto color.branch=auto color.interactive=true help.format=html diff.astextplain.textconv=astextplain rebase.autosquash=true http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt diff.astextplain.textconv=astextplain filter.lfs.clean=git-lfs clean -- %f filter.lfs.smudge=git-lfs smudge -- %f filter.lfs.required=true filter.lfs.process=git-lfs filter-process credential.helper=manager user.name=<<My User>> user.email=<<My Email>> core.excludesfile=C:\Users\MyUser\Documents\gitignore_global.txt core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true core.symlinks=false core.ignorecase=true core.longpaths=true remote.origin.url=<< my remote orgin url >> remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.develop.remote=origin branch.develop.merge=refs/heads/develop branch.master.remote=origin branch.master.merge=refs/heads/master gitflow.branch.master=master gitflow.branch.develop=develop gitflow.prefix.feature=feature/ gitflow.prefix.release=release/ gitflow.prefix.hotfix=hotfix/ gitflow.prefix.support=support/
This is my git version now
$ git --version
git version 2.12.2.windows.2
I double checked and sourcetree is using the system git instead of the embedded git, I checked three times to be sure. I also fully rebooted my machine cause well ... windows ... but the problem still persists. I can commit and push fine using git bash just sourcetree keeps staging for delete.
Maybe it just can't work on windows 7 ?
I'm on Windows 10 with SourceTree 126.96.36.199 and Git 2.18.0 and I had a problem staging a file path of 268 character.
SourceTree error message was : "fatal: pathspec 'my_very_long_path' did not match any files
I had the "longpaths = true" line under the [core] section of my ".gitconfig" file.
I solved the problem staging file with "Git Bash terminal" and command line :
git add "my_very_long_path"
Supported Platforms macOS Windows We recently introduced support for additional hosting services such as GitHub Enterprise, GitLab (Cloud, Community Edition, Enterprise Edition), and...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events