RepoIndex and RepoLog should no longer take longer on bigger repositories. all endpoints are still backwards compatible.
Signed-off-by: oppiliappan me@oppi.li
RepoIndex and RepoLog should no longer take longer on bigger repositories. all endpoints are still backwards compatible.
Signed-off-by: oppiliappan me@oppi.li
RepoIndex and RepoLog should no longer take longer on bigger
repositories. all endpoints are still backwards compatible.
Signed-off-by: oppiliappan <me@oppi.li>
uses `git log --name-only` to speed things along. the performance
tradeoff here is that active repositories tend to load last-commit times
really quickly, but directories with one file that was modified 20k
commits ago will result in the entire log being walked through.
git-log command is parsed as it streams to avoid having to wait for the
entire command to complete, and as soon as the entire directory's
listing is hydrated, we cancel the command. most of the time, this
results in hydration of subdirectories also (this gets cached),
resulting in good experience when browsing a repo (typically moving down
directories gets faster with each click, as fewer files need hydration).
Signed-off-by: oppiliappan <me@oppi.li>