Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,552,696
Community Members
 
Community Events
184
Community Groups

Staging files with to long filenames (260+) stages the file for delete instead of modify

I'm using windows 7 and sourcetree 1.9.10.0  with following in my git config file

core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
credential.helper=manager
core.longpaths=true
user.name=myuser
user.email=myuser@mail.com
core.excludesfile=C:\Users\myuser\Documents\gitignore_global.txt

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.

8 answers

4 votes
Ana Retamal
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
Apr 21, 2017

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:

  • Download and install the latest Git 
  • Enable longpaths with ‘git config core.longpaths true’
  • Make sure that SourceTree is using the System’s Git and not the embedded one. You can check that at Tools > Options > Git > Use System Git

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 :)

Cheers,

Ana

Hey Ana,

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 ?

Ana Retamal
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 02, 2017 • edited

Hi Kenny, I've submitted a bug report for that, you can track it at SRCTREEWIN-7075. Please watch that pages for updates on this issue :)

Edit: Realised there was already a ticket for that, please follow SRCTREEWIN-6606.

Cheers!

Ana

Add the line

longpaths = true 

to your .gitconfig file under the [core] section.

The .gitconfig file is probably in your C:\Users\<username>\   folder

Restart bitbucket and try the clone again.

 

gitconfig.png

Hi,

I'm on Windows 10 with SourceTree 2.6.10.0 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"

You can use tools like Long path tool

Use "Long Path This very useful if you are having problems
in deleting, unlocking, copying and even renaming files, also very easy.


"Long path tool" is very helpful for this problem. You can solve this problem like copy, delete, long path files by using this tool.I used to have similar problems too, but after using "long path tool" everything was solved.

I would like to suggest you, try LongPathTool program to resolve this issue.

Add the line

longpaths = true 

to your .gitconfig file under the [core] section.

The .gitconfig file is probably in your C:\Users\<username>\   folder

Restart bitbucket and try the clone again.

 gitconfig.png

The problem of too long file names can be solved easily with programs like Long Path Tool.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events