OndroMih opened a new pull request, #9304: URL: https://github.com/apache/netbeans/pull/9304
Use IndexDiffFilter in StatusCommand to skip clean files JGit's TreeWalk in StatusCommand previously visited every file in the working tree without a diff-pruning filter, causing it to call WorkingTreeIterator.isModified() (which may compute SHA1 content hashes for racily-clean files) for all tracked files on every status scan. Replace the plain PathFilterGroup-only filter with IndexDiffFilter, which first compares HEAD vs index using fast object-id equality, and only falls back to the more expensive working-tree comparison for files where a difference is actually possible. Path filters are combined with IndexDiffFilter via AndTreeFilter when present. On a Eclipe GlassFish repository with ~380k tracked files this reduces the time to populate the commit dialog from ~5 seconds to ~0.5 seconds. On Apache Netbeans repository, this reduces the time from about 17 seconds to about 5 seconds. ### PR approval and merge checklist: 1. [ ] Was this PR [correctly labeled](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=240884239#PRsandYouAreviewerGuide-PRtriggeredCIJobs(conditionalCIpipeline)), did the right tests run? When did they run? 2. [ ] Is this PR [squashed](https://cwiki.apache.org/confluence/display/NETBEANS/git%3A+squash+and+merge)? 3. [ ] Are author name / email address correct? Are [co-authors](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors#creating-co-authored-commits-on-the-command-line) correctly listed? Do the commit messages need updates? 3. [ ] Does the PR title and description still fit after the Nth iteration? Is the description sufficient to appear in the release notes? If this PR targets the delivery branch: [don't merge](https://cwiki.apache.org/confluence/display/NETBEANS/Pull+requests+for+delivery). ([full wiki article](https://cwiki.apache.org/confluence/display/NETBEANS/PRs+and+You+-+A+reviewer+Guide)) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
