Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
  • TortoiseGit TortoiseGit
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 364
    • Issues 364
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 14
    • Merge requests 14
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • TortoiseGitTortoiseGit
  • TortoiseGitTortoiseGit
  • Issues
  • #2891
Closed
Open
Created Dec 14, 2016 by tophf@tophf

"Show log" on a repo with 200k files is extremely slow due to each file attributes being queried individually

What steps will reproduce the problem?

  1. Clone and checkout a repo with 200k+ files like https://github.com/chromium/chromium
  2. Invoke TortoiseGit's Show log

What is the expected output?

The log is shown immediately

What do you see instead?

The log is shown after 1-10 minutes depending on the drive speed, SysInternals ProcMon shows TortoiseGit performs attribute query for each of 200k+ files individually instead of bulk reading the directories entirely, which should happen, if I remember correctly, when using FindFirstFile WINAPI (or whatever method other programs are using, for which ProcMon shows that only a single actual IO operation was performed on the directory itself).

What version of TortoiseGit and Git are you using? On what operating system?

TortoiseGit 2.3.0.0 x64
git 2.10.0 x64 from https://git-for-windows.github.io/ Windows 7 SP1 x64

Please provide any additional information below.

Switching to the fast reading of directories won't be sufficient to make Show log instantaneous though. Apparently, the files are being checked to show their status/icons in "Working tree changes". However, I see no need to check the entire source directory recursively in a blocking fashion preemptively. Why not do it in a background thread? Or don't do it at all until the user wants to see "Working tree changes"?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking