Skip to content
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

Asynchronous blaming #70

Open
figsoda opened this issue Mar 16, 2023 · 4 comments
Open

Asynchronous blaming #70

figsoda opened this issue Mar 16, 2023 · 4 comments
Labels
enhancement Improve the expected

Comments

@figsoda
Copy link
Contributor

figsoda commented Mar 16, 2023

Currently, in a large git repository, it takes a long time (~30s for https://github.com/nixos/nixpkgs) to start up git-dive. It would be nice if it starts immediately with just the plain file and gradually fills in blame information over the 30s.

@epage epage added the enhancement Improve the expected label Mar 16, 2023
@epage epage added this to the 0.2 - Interactive Pager milestone Mar 16, 2023
@epage
Copy link
Collaborator

epage commented Mar 16, 2023

Yeah, git2 is quite a bit slower than git for blaming.

Loading asynchronously is a good idea! It won't quiet work in one-shot mode but this should work well for TUI mode. I've put tag this to be part of the TUI work.

@Byron
Copy link

Byron commented Mar 17, 2023

gitoxide has all the functionality that's needed to do blaming (i.e. full rename and copy tracking, diffing/hunk generation), but lacks a convenient API. When that changes, using it would definitely speed up the synchronous mode while enabling efficient multi-threading.

@epage
Copy link
Collaborator

epage commented Mar 17, 2023

Yeah, I either might prototype blame support on top of gitoxide or contribute it. Another major feature I want is reverse blame support (#21) and git2 doesn't support that either.

@Byron
Copy link

Byron commented Mar 17, 2023

It looks like git dive is envisioned to become the blame tool I always wanted. Once there is a timeline ideally with the ability to track a particular set of consecutive lines a dream will come true. Or if its too specific, a way to understand how a particular hunk of code came to be over time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improve the expected
Projects
None yet
Development

No branches or pull requests

3 participants