Web lists-archives.com

git blame completion add <rev> completion?


I use git blame sometimes to blame against specific revisions, i.e.
"git blame <branch> -- <file>" and it would be nice if blame could
figure out how to complete the <branch> or revision reference..

I tried to take a stab at adding support for this, but I couldn't
figure out which completion function to use...

I want "git blame <TAB>" to complete files like normal, (as this is
the most general use case), but to have "git blame xyz<TAB>" to
complete revisions if there's any that match, (while still also
completing files). Additionally, it should only complete a revision
for the first argument, and go back to strict file names after.

In an *ideal* world, it'd be nice if it could figure out say:

git blame <branch> xyz<TAB>

and complete xyz as a file found in branch, not actually checking
local files but the ls-files of that branch instead. (i.e. it should
be able to complete a file that was deleted in the current checkout
but exists on that ref).

any ideas on where to start with that?