#28·exa

libgit2 git_status_list_new is really slow.

Author: StebalienCreated Feb 23, 2015Updated Sep 28, 2023
Labelsfeatures › gitperformance

For me, exa takes ~3 seconds to run on the rust repository and most of this time is spent in libgit2's git_status_list_new function (specifically, it appears that most of this time is spent calculating SHA1 hashes). However, git status --porcelain runs in about .1 seconds. The correct fix would be to fix libgit2 however, in the meantime, you might consider using git directly.

Note git2::Repository::statuses(opts) is a wrapper for libgit2's git_status_list_new function.