-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
enable fscache while iterating every local refs #1372
Conversation
Doesn't this (enable_fscache) need switching off at some point? The Which ever way it is, could you clarify the result in the commit message? (force push you branch to create the updated PR in this thread..) |
a99b5e1
to
25bfebc
Compare
Thank you for comment. I updated commit to disable fscache after iteration. |
It took me a bit of searching.. The The It wasn't clear to me why we do not need to unset it in the other two use cases. The message should help clarify (maybe it depends on whether we have a long running command/ command in multiple threads) |
de9b3dc
to
d2c69f4
Compare
When I do git fetch, git reads entries in .git/objects/pack for every refs in local repository. By enabling fscache, directory list up in .git/objects/pack for each refs is cached. Without fscache, such behavior causes long running time when we do git fetch in local repository having many refs. This patch improves execution time in such case, especially in very large repository like chromium. In my windows workstation, this patch improves git fetch time from more than 3 minutes to less than 20 seconds for chromium repository. Signed-off-by: Takuto Ikuta <[email protected]>
d2c69f4
to
09ccec4
Compare
Updated bit again, do I understand what you said? |
It is always a pleasure to come back from vacation and see new contributions, in particular when two contributors worked together to further improve them. Thank you so much @atetubou and @PhilipOakley! |
@dscho thanks for the support. The main praise must go to @atetubou for the work. I was mainly reflecting on my ignorance of fscache_enable (and enable_fscache ;) , hence my requests to see if the code needed the 'off' swich step. Plus I thought it was already switched on in GfW by default. Any thoughs @dscho? |
I did that in some topic branch for testing, it needs a patch: dscho@f3cac14 Stupidly, I forgot to record details of the "why?", so I'll have to reconstruct them before I can cherry-pick that to Also, there were some bad interactions between sparse checkouts and fscache, that was the reason I did not switch it to "on" by default. I'll have to check back with @jeffhostetler who performed those tests whether the issues have been resolved. |
Running `git fetch` in a repository with lots of refs [is now considerably faster](git-for-windows/git#1372). Signed-off-by: Johannes Schindelin <[email protected]>
When I do git fetch, git reads entries in .git/objects/pack for every refs in local repository.
By enabling fscache, directory list up in .git/objects/pack for each refs is cached.
Without fscache, such behavior causes long running time when we do git fetch in local repository having many refs.
This patch improves execution time in such case, especially in very large repository like chromium.
In my windows workstation, this patch improves git fetch time from more than 3 minutes to less than 20 seconds for chromium repository.
Signed-off-by: Takuto Ikuta [email protected]