Code Monkey home page Code Monkey logo

git-completion's People

Contributors

felipec avatar iloveitaly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

git-completion's Issues

`make test` fails

Failures:

#2 (comment)

Result of:

cd test
dash completion.t -v -i
ok 53 - setup for ref completion

expecting success:
    cat >expected <<-EOF &&
    HEAD
    main
    matching-branch
    other/branch-in-other
    other/main-in-other
    matching-tag
    EOF
    (
        cur= &&
        __git_refs >"$actual"
    ) &&
    test_cmp expected "$actual"

--- expected    2022-02-10 15:26:56.628681536 +0000
+++ "/home/ruifm/repos/git-completion/test/trash directory.completion/actual"   2022-02-10 15:26:56.632014829 +0000
@@ -3,4 +3,4 @@
 matching-branch
 other/branch-in-other
 other/main-in-other
-matching-tag
+tag-in-other
not ok 54 - __git_refs - simple
#
#       cat >expected <<-EOF &&
#       HEAD
#       main
#       matching-branch
#       other/branch-in-other
#       other/main-in-other
#       matching-tag
#       EOF
#       (
#           cur= &&
#           __git_refs >"$actual"
#       ) &&
#       test_cmp expected "$actual"
#

Failed tests

This might be the same issue as #5 but I installed git-completion from the AUR and didn't do any manual configurations. It used to work for me in the past. When I run a system update, I now get the following errors:

/bin/sh prompt.t 
Initialized empty Git repository in /home/tai/.cache/paru/clone/git-completion/src/git-completion/test/trash directory.prompt/.git/
ok 1 - setup for prompt tests
not ok 2 - prompt - branch name
#	
#		printf " (master)" >expected &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 3 - prompt - branch name - symlink symref
#	
#		printf " (master)" >expected &&
#		test_when_finished "git checkout master" &&
#		test_config core.preferSymlinkRefs true &&
#		git checkout master &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 4 - prompt - unborn branch
#	
#		printf " (unborn)" >expected &&
#		git checkout --orphan unborn &&
#		test_when_finished "git checkout master" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 5 - prompt - with newline in path
#	
#	    repo_with_newline="repo
#	with
#	newline" &&
#		mkdir "$repo_with_newline" &&
#		printf " (master)" >expected &&
#		git init "$repo_with_newline" &&
#		test_when_finished "rm -rf \"$repo_with_newline\"" &&
#		mkdir "$repo_with_newline"/subdir &&
#		(
#			cd "$repo_with_newline/subdir" &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 6 - prompt - detached head
#	
#		printf " ((%s...))" $(git log -1 --format="%h" --abbrev=13 b1^) >expected &&
#		test_config core.abbrev 13 &&
#		git checkout b1^ &&
#		test_when_finished "git checkout master" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 7 - prompt - describe detached head - contains
#	
#		printf " ((t2~1))" >expected &&
#		git checkout b1^ &&
#		test_when_finished "git checkout master" &&
#		(
#			GIT_PS1_DESCRIBE_STYLE=contains &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 8 - prompt - describe detached head - branch
#	
#		printf " ((tags/t2~1))" >expected &&
#		git checkout b1^ &&
#		test_when_finished "git checkout master" &&
#		(
#			GIT_PS1_DESCRIBE_STYLE=branch &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 9 - prompt - describe detached head - describe
#	
#		printf " ((t1-1-g%s))" $(git log -1 --format="%h" b1^) >expected &&
#		git checkout b1^ &&
#		test_when_finished "git checkout master" &&
#		(
#			GIT_PS1_DESCRIBE_STYLE=describe &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 10 - prompt - describe detached head - default
#	
#		printf " ((t2))" >expected &&
#		git checkout --detach b1 &&
#		test_when_finished "git checkout master" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
ok 11 - prompt - inside .git directory
ok 12 - prompt - deep inside .git directory
ok 13 - prompt - inside bare repository
not ok 14 - prompt - interactive rebase
#	
#		printf " (b1|REBASE 2/3)" >expected &&
#		write_script fake_editor.sh <<-\EOF &&
#			echo "exec echo" >"$1"
#			echo "edit $(git log -1 --format="%h")" >>"$1"
#			echo "exec echo" >>"$1"
#		EOF
#		test_when_finished "rm -f fake_editor.sh" &&
#		test_set_editor "$TRASH_DIRECTORY/fake_editor.sh" &&
#		git checkout b1 &&
#		test_when_finished "git checkout master" &&
#		git rebase -i HEAD^ &&
#		test_when_finished "git rebase --abort" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 15 - prompt - rebase merge
#	
#		printf " (b2|REBASE 1/3)" >expected &&
#		git checkout b2 &&
#		test_when_finished "git checkout master" &&
#		test_must_fail git rebase --merge b1 b2 &&
#		test_when_finished "git rebase --abort" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 16 - prompt - rebase am # TODO known breakage
not ok 17 - prompt - merge
#	
#		printf " (b1|MERGING)" >expected &&
#		git checkout b1 &&
#		test_when_finished "git checkout master" &&
#		test_must_fail git merge b2 &&
#		test_when_finished "git reset --hard" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 18 - prompt - cherry-pick
#	
#		printf " (master|CHERRY-PICKING)" >expected &&
#		test_must_fail git cherry-pick b1 b1^ &&
#		test_when_finished "git cherry-pick --abort" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual" &&
#		git reset --merge &&
#		test_must_fail git rev-parse CHERRY_PICK_HEAD &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 19 - prompt - revert
#	
#		printf " (master|REVERTING)" >expected &&
#		test_must_fail git revert b1^ b1 &&
#		test_when_finished "git revert --abort" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual" &&
#		git reset --merge &&
#		test_must_fail git rev-parse REVERT_HEAD &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 20 - prompt - bisect
#	
#		printf " (master|BISECTING)" >expected &&
#		git bisect start &&
#		test_when_finished "git bisect reset" &&
#		__git_ps1 >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 21 - prompt - dirty status indicator - clean
#	
#		printf " (master)" >expected &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 22 - prompt - dirty status indicator - dirty worktree
#	
#		printf " (master *)" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 23 - prompt - dirty status indicator - dirty index
#	
#		printf " (master +)" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		git add -u &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 24 - prompt - dirty status indicator - dirty index and worktree
#	
#		printf " (master *+)" >expected &&
#		echo "dirty index" >file &&
#		test_when_finished "git reset --hard" &&
#		git add -u &&
#		echo "dirty worktree" >file &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 25 - prompt - dirty status indicator - orphan branch - clean
#	
#		printf " (orphan #)" >expected &&
#		test_when_finished "git checkout master" &&
#		git checkout --orphan orphan &&
#		git reset --hard &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 26 - prompt - dirty status indicator - orphan branch - dirty index
#	
#		printf " (orphan +)" >expected &&
#		test_when_finished "git checkout master" &&
#		git checkout --orphan orphan &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 27 - prompt - dirty status indicator - orphan branch - dirty index and worktree
#	
#		printf " (orphan *+)" >expected &&
#		test_when_finished "git checkout master" &&
#		git checkout --orphan orphan &&
#		>file &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 28 - prompt - dirty status indicator - shell variable unset with config disabled
#	
#		printf " (master)" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		test_config bash.showDirtyState false &&
#		(
#			sane_unset GIT_PS1_SHOWDIRTYSTATE &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 29 - prompt - dirty status indicator - shell variable unset with config enabled
#	
#		printf " (master)" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		test_config bash.showDirtyState true &&
#		(
#			sane_unset GIT_PS1_SHOWDIRTYSTATE &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 30 - prompt - dirty status indicator - shell variable set with config disabled
#	
#		printf " (master)" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		test_config bash.showDirtyState false &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 31 - prompt - dirty status indicator - shell variable set with config enabled
#	
#		printf " (master *)" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		test_config bash.showDirtyState true &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
ok 32 - prompt - dirty status indicator - not shown inside .git directory
not ok 33 - prompt - stash status indicator - no stash
#	
#		printf " (master)" >expected &&
#		(
#			GIT_PS1_SHOWSTASHSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 34 - prompt - stash status indicator - stash
#	
#		printf " (master $)" >expected &&
#		echo 2 >file &&
#		git stash &&
#		test_when_finished "git stash drop" &&
#		git pack-refs --all &&
#		(
#			GIT_PS1_SHOWSTASHSTATE=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
ok 35 - prompt - stash status indicator - not shown inside .git directory
not ok 36 - prompt - untracked files status indicator - no untracked files
#	
#		printf " (master)" >expected &&
#		(
#			GIT_PS1_SHOWUNTRACKEDFILES=y &&
#			cd otherrepo &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
ok 37 - prompt - untracked files status indicator - untracked files
not ok 38 - prompt - untracked files status indicator - empty untracked dir
#	
#		printf " (master)" >expected &&
#		mkdir otherrepo/untracked-dir &&
#		test_when_finished "rm -rf otherrepo/untracked-dir" &&
#		(
#			GIT_PS1_SHOWUNTRACKEDFILES=y &&
#			cd otherrepo &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 39 - prompt - untracked files status indicator - non-empty untracked dir
#	
#		printf " (master %%)" >expected &&
#		mkdir otherrepo/untracked-dir &&
#		test_when_finished "rm -rf otherrepo/untracked-dir" &&
#		>otherrepo/untracked-dir/untracked-file &&
#		(
#			GIT_PS1_SHOWUNTRACKEDFILES=y &&
#			cd otherrepo &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
ok 40 - prompt - untracked files status indicator - untracked files outside cwd
ok 41 - prompt - untracked files status indicator - shell variable unset with config disabled
ok 42 - prompt - untracked files status indicator - shell variable unset with config enabled
ok 43 - prompt - untracked files status indicator - shell variable set with config disabled
ok 44 - prompt - untracked files status indicator - shell variable set with config enabled
ok 45 - prompt - untracked files status indicator - not shown inside .git directory
not ok 46 - prompt - format string starting with dash
#	
#		printf -- "-master" >expected &&
#		__git_ps1 "-%s" >"$actual" &&
#		test_cmp expected "$actual"
#	
not ok 47 - prompt - pc mode
#	
#		printf "BEFORE: (\${__git_ps1_branch_name}):AFTER\\nmaster" >expected &&
#		(
#			__git_ps1 "BEFORE:" ":AFTER" >"$actual" &&
#			test_must_be_empty "$actual" &&
#			printf "%s\\n%s" "$PS1" "${__git_ps1_branch_name}" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 48 - prompt - bash color pc mode - branch name
#	
#		printf "BEFORE: (${c_green}\${__git_ps1_branch_name}${c_clear}):AFTER\\nmaster" >expected &&
#		(
#			GIT_PS1_SHOWCOLORHINTS=y &&
#			__git_ps1 "BEFORE:" ":AFTER" >"$actual" &&
#			printf "%s\\n%s" "$PS1" "${__git_ps1_branch_name}" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 49 - prompt - bash color pc mode - detached head
#	
#		printf "BEFORE: (${c_red}\${__git_ps1_branch_name}${c_clear}):AFTER\\n(%s...)" $(git log -1 --format="%h" b1^) >expected &&
#		git checkout b1^ &&
#		test_when_finished "git checkout master" &&
#		(
#			GIT_PS1_SHOWCOLORHINTS=y &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s\\n%s" "$PS1" "${__git_ps1_branch_name}" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 50 - prompt - bash color pc mode - dirty status indicator - dirty worktree
#	
#		printf "BEFORE: (${c_green}\${__git_ps1_branch_name}${c_clear} ${c_red}*${c_clear}):AFTER\\nmaster" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			GIT_PS1_SHOWCOLORHINTS=y &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s\\n%s" "$PS1" "${__git_ps1_branch_name}" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 51 - prompt - bash color pc mode - dirty status indicator - dirty index
#	
#		printf "BEFORE: (${c_green}\${__git_ps1_branch_name}${c_clear} ${c_green}+${c_clear}):AFTER\\nmaster" >expected &&
#		echo "dirty" >file &&
#		test_when_finished "git reset --hard" &&
#		git add -u &&
#		(
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			GIT_PS1_SHOWCOLORHINTS=y &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s\\n%s" "$PS1" "${__git_ps1_branch_name}" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 52 - prompt - bash color pc mode - dirty status indicator - dirty index and worktree
#	
#		printf "BEFORE: (${c_green}\${__git_ps1_branch_name}${c_clear} ${c_red}*${c_clear}${c_green}+${c_clear}):AFTER\\nmaster" >expected &&
#		echo "dirty index" >file &&
#		test_when_finished "git reset --hard" &&
#		git add -u &&
#		echo "dirty worktree" >file &&
#		(
#			GIT_PS1_SHOWCOLORHINTS=y &&
#			GIT_PS1_SHOWDIRTYSTATE=y &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s\\n%s" "$PS1" "${__git_ps1_branch_name}" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
ok 53 - prompt - bash color pc mode - dirty status indicator - before root commit
ok 54 - prompt - bash color pc mode - inside .git directory
not ok 55 - prompt - bash color pc mode - stash status indicator
#	
#		printf "BEFORE: (${c_green}\${__git_ps1_branch_name}${c_clear} ${c_lblue}\$${c_clear}):AFTER\\nmaster" >expected &&
#		echo 2 >file &&
#		git stash &&
#		test_when_finished "git stash drop" &&
#		(
#			GIT_PS1_SHOWSTASHSTATE=y &&
#			GIT_PS1_SHOWCOLORHINTS=y &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s\\n%s" "$PS1" "${__git_ps1_branch_name}" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
ok 56 - prompt - bash color pc mode - untracked files status indicator
not ok 57 - prompt - zsh color pc mode
#	
#		printf "BEFORE: (%%F{green}master%%f):AFTER" >expected &&
#		(
#			ZSH_VERSION=5.0.0 &&
#			GIT_PS1_SHOWCOLORHINTS=y &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s" "$PS1" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 58 - prompt - hide if pwd ignored - env var unset, config disabled
#	
#		printf " (master)" >expected &&
#		test_config bash.hideIfPwdIgnored false &&
#		(
#			cd ignored_dir &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 59 - prompt - hide if pwd ignored - env var unset, config disabled, pc mode
#	
#		printf "BEFORE: (\${__git_ps1_branch_name}):AFTER" >expected &&
#		test_config bash.hideIfPwdIgnored false &&
#		(
#			cd ignored_dir &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s" "$PS1" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 60 - prompt - hide if pwd ignored - env var unset, config unset
#	
#		printf " (master)" >expected &&
#		(
#			cd ignored_dir &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 61 - prompt - hide if pwd ignored - env var unset, config unset, pc mode
#	
#		printf "BEFORE: (\${__git_ps1_branch_name}):AFTER" >expected &&
#		(
#			cd ignored_dir &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s" "$PS1" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 62 - prompt - hide if pwd ignored - env var set, config disabled
#	
#		printf " (master)" >expected &&
#		test_config bash.hideIfPwdIgnored false &&
#		(
#			cd ignored_dir &&
#			GIT_PS1_HIDE_IF_PWD_IGNORED=y &&
#			__git_ps1 >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
not ok 63 - prompt - hide if pwd ignored - env var set, config disabled, pc mode
#	
#		printf "BEFORE: (\${__git_ps1_branch_name}):AFTER" >expected &&
#		test_config bash.hideIfPwdIgnored false &&
#		(
#			cd ignored_dir &&
#			GIT_PS1_HIDE_IF_PWD_IGNORED=y &&
#			__git_ps1 "BEFORE:" ":AFTER" &&
#			printf "%s" "$PS1" >"$actual"
#		) &&
#		test_cmp expected "$actual"
#	
ok 64 - prompt - hide if pwd ignored - env var set, config unset
ok 65 - prompt - hide if pwd ignored - env var set, config unset, pc mode
ok 66 - prompt - hide if pwd ignored - inside gitdir
# still have 1 known breakage(s)
# failed 46 among remaining 65 test(s)
1..66
make[1]: *** [Makefile:11: prompt.t] Error 1
make[1]: Leaving directory '/home/tai/.cache/paru/clone/git-completion/src/git-completion/test'
make: *** [Makefile:8: test] Error 2
==> ERROR: A failure occurred in check().
    Aborting...
error: failed to build 'git-completion-1.3.7-1':
error: packages failed to build: git-completion-1.3.7-1

My config

  • Installed via the AUR package
  • git version: 2.37.1
  • git config --list:
    filter.lfs.process=git-lfs filter-process
    filter.lfs.required=true
    filter.lfs.clean=git-lfs clean -- %f
    filter.lfs.smudge=git-lfs smudge -- %f
    core.editor=nvim
    

I've I tried deleting ~/.cache/paru/clone/git-completion.

Please let me know if I can provide any additional information.

install failure: not ok 14 - prompt - interactive rebase

Putting this here to rubber duck this failure I am seeing installing from the Arch User Repository (AUR).

https://aur.archlinux.org/packages/git-completion/ (also posted comment here)

[elijah@archlinux]$ bash --version
GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
# failed 1 among 66 test(s)
1..66
make[1]: *** [Makefile:11: prompt.t] Error 1
make[1]: Leaving directory '/home/elijah/.cache/yay/git-completion/src/git-completion/test'
make: *** [Makefile:8: test] Error 2
==> ERROR: A failure occurred in check().
    Aborting...
error making: git-completion
ok 13 - prompt - inside bare repository                                 
not ok 14 - prompt - interactive rebase                                 
#                                                                       
#               printf " (b1|REBASE 2/3)" >expected &&                  
#               write_script fake_editor.sh <<-\EOF &&                  
#                       echo "exec echo" >"$1"                          
#                       echo "edit $(git log -1 --format="%h")" >>"$1"  
#                       echo "exec echo" >>"$1"                         
#               EOF                                                     
#               test_when_finished "rm -f fake_editor.sh" &&            
#               test_set_editor "$TRASH_DIRECTORY/fake_editor.sh" &&    
#               git checkout b1 &&                                      
#               test_when_finished "git checkout master" &&             
#               git rebase -i HEAD^ &&                                  
#               test_when_finished "git rebase --abort" &&              
#               __git_ps1 >"$actual" &&                                 
#               test_cmp expected "$actual"                             
#                                                                       
ok 15 - prompt - rebase merge 

git <TAB> doesn't complete Git aliases with ZSH

Hello,

I added a Git alias with

$ git config --global alias.foo '!echo foo'

However, typing git followed by <TAB> only prints out what's defined in __git_zsh_cmd_common().
Is there a way to make Git aliases completion work?

Alternatively, is there a way to add a custom completion for git foo when git-foo() is a custom command of mine that doesn't come with upstream Git?

Noob friendly instructions

Hi, thanks for making this. I tried the official file for zsh and it didn't work, then I found this on your answer on SO.

It is not very clear to me how to install this. I made it work by just copying the git-completion.zsh and adding fpath=(~/.zsh $fpath) to the .zshrsc. Thus I am not able to use the configurations described in the wiki.

It would be great if you could explain the installation a bit more, eg make file is not clear to me. Should I copy the folder, cd to the folder and then run make file?

Also in git-completion.zsh there are some additional instructions on installing this (from the official file) but I guess they are not applicable to your method. There is also stated that "You need git's bash completion script installed..." which is also not applicable since it shows a message that this method is deprecated. Maybe they could be removed to avoid confusion.

Cheers!

doc: Bash: also mention Git aliases

Hi @felipec !

Thanks for putting this project together. I have two comments:

  1. In the "Bash" page of the wiki, you mention how to make completion work for custom Bash aliases to Git commands or to the git command itself. It would be nice to mention that the trick for Bash aliases also works for Git aliases that shell out, like this:
$ git config --get alias.logv
!f() { git -C "$GIT_PREFIX" --work-tree=$PWD -c color.ui=always log --abbrev-commit --decorate --format=format:"%C(yellow)%h%C(reset) %C(normal)%s%C(reset) %C(dim white)%an%C(reset) %C(dim blue)(%ad)%C(reset) %C(auto)%d%C(reset) %C(green)%H%C(reset)" "$@" | git -p name-rev --stdin --name-only --tags; }; f
$ git logv --[TAB][TAB] # nothing happens
$ __git_complete 'git logv' _git_log
$ git logv --[TAB][TAB]
Display all 121 possibilities? (y or n)
--abbrev                   --dense                    --ignore-cr-at-eol         --no-max-parents           --reverse 
# ...
  1. I noticed you recently created the wiki, and before that the doc was in the README. I think having the doc in the repo itself is more PR-friendly, since you can't do a PR to the wiki.

Cheers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.