Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH] _git: Complete files after 'reset' when there are no commits, when the 'verbose' style is set.



---
 Completion/Unix/Command/_git | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index ce8a4049d..032cbad1e 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -1462,6 +1462,12 @@ _git-reset () {
   case $state in
     (file)
       local tree=HEAD
+      if zstyle -t :completion:${curcontext}: verbose; then
+        if ! _call_program headed git rev-parse --verify HEAD 2>/dev/null; then
+          # well-known sha1 of the empty tree
+          tree=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+        fi
+      fi
       if [[ -n $line[1] ]] && __git_is_treeish $line[1]; then
         tree=$line[1]
       fi

That magic value has been used by vcs_info for a while.

I opted for making this conditional upon 'verbose' since this is a bit of an
edge case, and forks aren't free everywhere.

Cheers,

Daniel



Messages sorted by: Reverse Date, Date, Thread, Author