sublimehq / sublime_merge

Issue tracker for Sublime Merge
https://www.sublimemerge.com
276 stars 14 forks source link

Performance degraded due to changes in my repo, but "git gui"/"git status" no problem #877

Open jasonb01 opened 4 years ago

jasonb01 commented 4 years ago

Version info

Description

Very slow (10 - 15 seconds) listing the unstaged/uncommited changes after some administrators in my repo have us running a tool that creates a ".pkgrefgen" directory in nearly every single directory (recursively) of said repo and each directory has 1 or two untracked files in each and added this ".pkgrefgen" to our top level ".gitignore" file. "git gui" and "git status" have no problem at all with this situation and is as fast as before. Sublime Merge seems like it has an n^2 algorithm somewhere with its .gitignore handling since if I remove the item from the .gitignore it can list the 1000s of files with ease very fast (nearly instantly).

Steps to reproduce

I can't give a repro as it's a non-public repository.

Expected behavior

No perf problem with all these hidden files.

srbs commented 4 years ago

Might be related to #876.

jasonb01 commented 4 years ago

An update after I experimented some more: It seems the issue is about a count of directories (or count of same named directories) involved since it turns out we have ~195K ignored files in the repo and only ~6.5K files under these .pkgrefgen dirs. All the other ignored files are in a much smaller number of directories total. I figured this out by removing the .pkgrefgen from our .gitignore and added 5 wildcard expressions for the 5 current different types of files under these directories and then the perf went back to previous ~1 second response.