# [PATCH/RFC] completion: support git blame

1 messages from 2011-01-09 to 2011-01-09. Participants: Martin von Zweigbergk.
Thread: https://gitlist.dev/t/26245

## Martin von Zweigbergk, 2011-01-09 16:38

Subject: [PATCH/RFC] completion: support git blame
Message-ID: <1294591119-19701-1-git-send-email-martin.von.zweigbergk@gmail.com>
URL: https://gitlist.dev/e/1294591119-19701-1-git-send-email-martin.von.zweigbergk%40gmail.com

```
Add basic support for completion of refs with git blame.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
---

Maybe leave --porcelain and --incremental out since they are intended
for scripts?

blame is pretty uninteresting on untracked files. It would be nice if
to only complete files that exist in the specified commit, just like
'git show $rev:$file' does. I think this applies to some other
commands as well, like 'git checkout $rev [--] $file'. Has this been
discussed before? I didn't find anything when searching the
archives. I can imagine it might have been rejected because of
performance problems.


 contrib/completion/git-completion.bash |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 645549c..d9074ba 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1128,6 +1128,26 @@ _git_bisect ()
 	esac
 }
 
+_git_blame ()
+{
+	__git_has_doubledash && return
+
+	local cur
+	_get_comp_words_by_ref -n =: cur
+	case "$cur" in
+	--*)
+		__gitcomp "
+			--root --show-stats --reverse --encoding=
+			--contents --date --score-debug --show-name
+			--show-number --show-email
+			"
+		;;
+	*)
+		__gitcomp "$(__git_refs)"
+		;;
+	esac
+}
+
 _git_branch ()
 {
 	local i c=1 only_local_ref="n" has_r="n" cur words cword
-- 
1.7.3.2.864.gbbb96

```
