jhillyerd / plugin-git

Git aliases plugin for the Fish shell (similar to oh-my-zsh git)
MIT License
622 stars 85 forks source link

make package compatible with fisher 4.x #49

Closed patrickfatrick closed 3 years ago

patrickfatrick commented 3 years ago

closes out #48

jhillyerd commented 3 years ago

Thanks. Do I need to test this w/ OMF, or did you already do that?

patrickfatrick commented 3 years ago

I tested OMF and Fisher and the hooks seemed to work just fine for both but if you have some time to do your own testing probably not a bad idea! I'm new to fish / this plugin.

In the meantime here are some logs from fisher:

fisher install patrickfatrick/gitfisher                                                                                                     08:47:58
fisher install version 4.1.0
fetching https://codeload.github.com/patrickfatrick/gitfisher/tar.gz/HEAD
installing patrickfatrick/gitfisher
           /Users/pfricano/.config/fish/functions/__git.branch_has_wip.fish
           /Users/pfricano/.config/fish/functions/__git.current_branch.fish
           /Users/pfricano/.config/fish/functions/__git.destroy.fish
           /Users/pfricano/.config/fish/functions/__git.init.fish
           /Users/pfricano/.config/fish/functions/gbage.fish
           /Users/pfricano/.config/fish/functions/gbda.fish
           /Users/pfricano/.config/fish/functions/gdnolock.fish
           /Users/pfricano/.config/fish/functions/gdt.fish
           /Users/pfricano/.config/fish/functions/gdv.fish
           /Users/pfricano/.config/fish/functions/gfg.fish
           /Users/pfricano/.config/fish/functions/ggf.fish
           /Users/pfricano/.config/fish/functions/ggfl.fish
           /Users/pfricano/.config/fish/functions/ggl.fish
           /Users/pfricano/.config/fish/functions/ggp.fish
           /Users/pfricano/.config/fish/functions/ggpnp.fish
           /Users/pfricano/.config/fish/functions/ggsup.fish
           /Users/pfricano/.config/fish/functions/ggu.fish
           /Users/pfricano/.config/fish/functions/gignored.fish
           /Users/pfricano/.config/fish/functions/git-svn-dcommit-push.fish
           /Users/pfricano/.config/fish/functions/glp.fish
           /Users/pfricano/.config/fish/functions/gpoat.fish
           /Users/pfricano/.config/fish/functions/grename.fish
           /Users/pfricano/.config/fish/functions/groh.fish
           /Users/pfricano/.config/fish/functions/grt.fish
           /Users/pfricano/.config/fish/functions/gtl.fish
           /Users/pfricano/.config/fish/functions/gtv.fish
           /Users/pfricano/.config/fish/functions/gunwip.fish
           /Users/pfricano/.config/fish/functions/gwip.fish
           /Users/pfricano/.config/fish/functions/init.fish
           /Users/pfricano/.config/fish/functions/uninstall.fish
           /Users/pfricano/.config/fish/conf.d/git.fish
installed 1 plugin/s

gitfisher on  master took 934ms
❯ echo $__git_plugin_abbreviations                                                                                                            08:48:22
g ga gaa gapa gap gb gba gban gbd gbD gbl gbs gbsb gbsg gbsr gbss gc gc! gcn! gca gca! gcan! gcv gcav gcav! gcm gcam gscam gcfx gcf gcl gclean gclean! gclean!! gcount gcp gcpa gcpc gd gdca gds gdsc gdw gdwc gignore gf gfa gfm gfo gl gll glr glg glgg glgga glo glog glom glod gloo gm gmt gp gp! gpo gpo! gpv gpv! ggp! gpu gr gra grb grba grbc grbi grbm grbmi grbmia grbd grbdi grbdia grbs grev grh grhh grm grmc grmv grrm grs grset grss grup grv gsh gsd gsr gss gst gsta gstd gstp gsts gsu gsur gsuri gts gtv gsw gswc gunignore gup gwch gco gcb gcod gcom gfb gff gfr gfh gfs gfbs gffs gfrs gfhs gfss gfbt gfft gfrt gfht gfst gfp

gitfisher on  master
❯ abbr -s                                                                                                                                     08:48:43
abbr -a -U -- g git
abbr -a -U -- ga 'git add'
abbr -a -U -- gaa 'git add --all'
abbr -a -U -- gap 'git apply'
abbr -a -U -- gapa 'git add --patch'
abbr -a -U -- gb 'git branch -vv'
abbr -a -U -- gbD 'git branch -D'
abbr -a -U -- gba 'git branch -a -v'
abbr -a -U -- gban 'git branch -a -v --no-merged'
abbr -a -U -- gbd 'git branch -d'
abbr -a -U -- gbl 'git blame -b -w'
abbr -a -U -- gbs 'git bisect'
abbr -a -U -- gbsb 'git bisect bad'
abbr -a -U -- gbsg 'git bisect good'
abbr -a -U -- gbsr 'git bisect reset'
abbr -a -U -- gbss 'git bisect start'
abbr -a -U -- gc 'git commit -v'
abbr -a -U -- gc! 'git commit -v --amend'
abbr -a -U -- gca 'git commit -v -a'
abbr -a -U -- gca! 'git commit -v -a --amend'
abbr -a -U -- gcam 'git commit -a -m'
abbr -a -U -- gcan! 'git commit -v -a --no-edit --amend'
abbr -a -U -- gcav 'git commit -a -v --no-verify'
abbr -a -U -- gcav! 'git commit -a -v --no-verify --amend'
abbr -a -U -- gcb 'git checkout -b'
abbr -a -U -- gcf 'git config --list'
abbr -a -U -- gcfx 'git commit --fixup'
abbr -a -U -- gcl 'git clone'
abbr -a -U -- gclean 'git clean -di'
abbr -a -U -- gclean! 'git clean -dfx'
abbr -a -U -- gclean!! 'git reset --hard; and git clean -dfx'
abbr -a -U -- gcm 'git commit -m'
abbr -a -U -- gcn! 'git commit -v --no-edit --amend'
abbr -a -U -- gco 'git checkout'
abbr -a -U -- gcod 'git checkout develop'
abbr -a -U -- gcom 'git checkout master'
abbr -a -U -- gcount 'git shortlog -sn'
abbr -a -U -- gcp 'git cherry-pick'
abbr -a -U -- gcpa 'git cherry-pick --abort'
abbr -a -U -- gcpc 'git cherry-pick --continue'
abbr -a -U -- gcv 'git commit -v --no-verify'
abbr -a -U -- gd 'git diff'
abbr -a -U -- gdca 'git diff --cached'
abbr -a -U -- gds 'git diff --stat'
abbr -a -U -- gdsc 'git diff --stat --cached'
abbr -a -U -- gdw 'git diff --word-diff'
abbr -a -U -- gdwc 'git diff --word-diff --cached'
abbr -a -U -- gf 'git fetch'
abbr -a -U -- gfa 'git fetch --all --prune'
abbr -a -U -- gfb 'git flow bugfix'
abbr -a -U -- gfbs 'git flow bugfix start'
abbr -a -U -- gfbt 'git flow bugfix track'
abbr -a -U -- gff 'git flow feature'
abbr -a -U -- gffs 'git flow feature start'
abbr -a -U -- gfft 'git flow feature track'
abbr -a -U -- gfh 'git flow hotfix'
abbr -a -U -- gfhs 'git flow hotfix start'
abbr -a -U -- gfht 'git flow hotfix track'
abbr -a -U -- gfm 'git fetch origin master --prune; and git merge FETCH_HEAD'
abbr -a -U -- gfo 'git fetch origin'
abbr -a -U -- gfp 'git flow publish'
abbr -a -U -- gfr 'git flow release'
abbr -a -U -- gfrs 'git flow release start'
abbr -a -U -- gfrt 'git flow release track'
abbr -a -U -- gfs 'git flow support'
abbr -a -U -- gfss 'git flow support start'
abbr -a -U -- gfst 'git flow support track'
abbr -a -U -- ggp! 'ggp --force-with-lease'
abbr -a -U -- gignore 'git update-index --assume-unchanged'
abbr -a -U -- gl 'git pull'
abbr -a -U -- glg 'git log --stat --max-count=10'
abbr -a -U -- glgg 'git log --graph --max-count=10'
abbr -a -U -- glgga 'git log --graph --decorate --all'
abbr -a -U -- gll 'git pull origin'
abbr -a -U -- glo 'git log --oneline --decorate --color'
abbr -a -U -- glod 'git log --oneline --decorate --color develop..'
abbr -a -U -- glog 'git log --oneline --decorate --color --graph'
abbr -a -U -- glom 'git log --oneline --decorate --color master..'
abbr -a -U -- gloo git\ log\ --pretty=format:\'\%C\(yellow\)\%h\ \%Cred\%ad\ \%Cblue\%an\%Cgreen\%d\ \%Creset\%s\'\ --date=short
abbr -a -U -- glr 'git pull --rebase'
abbr -a -U -- gm 'git merge'
abbr -a -U -- gmt 'git mergetool --no-prompt'
abbr -a -U -- gp 'git push'
abbr -a -U -- gp! 'git push --force-with-lease'
abbr -a -U -- gpo 'git push origin'
abbr -a -U -- gpo! 'git push --force-with-lease origin'
abbr -a -U -- gpu 'ggp --set-upstream'
abbr -a -U -- gpv 'git push --no-verify'
abbr -a -U -- gpv! 'git push --no-verify --force-with-lease'
abbr -a -U -- gr 'git remote -vv'
abbr -a -U -- gra 'git remote add'
abbr -a -U -- grb 'git rebase'
abbr -a -U -- grba 'git rebase --abort'
abbr -a -U -- grbc 'git rebase --continue'
abbr -a -U -- grbd 'git rebase develop'
abbr -a -U -- grbdi 'git rebase master --interactive'
abbr -a -U -- grbdia 'git rebase master --interactive --autosquash'
abbr -a -U -- grbi 'git rebase --interactive'
abbr -a -U -- grbm 'git rebase master'
abbr -a -U -- grbmi 'git rebase master --interactive'
abbr -a -U -- grbmia 'git rebase master --interactive --autosquash'
abbr -a -U -- grbs 'git rebase --skip'
abbr -a -U -- grev 'git revert'
abbr -a -U -- grh 'git reset'
abbr -a -U -- grhh 'git reset --hard'
abbr -a -U -- grm 'git rm'
abbr -a -U -- grmc 'git rm --cached'
abbr -a -U -- grmv 'git remote rename'
abbr -a -U -- grrm 'git remote remove'
abbr -a -U -- grs 'git restore'
abbr -a -U -- grset 'git remote set-url'
abbr -a -U -- grss 'git restore --source'
abbr -a -U -- grup 'git remote update'
abbr -a -U -- grv 'git remote -v'
abbr -a -U -- gscam 'git commit -S -a -m'
abbr -a -U -- gsd 'git svn dcommit'
abbr -a -U -- gsh 'git show'
abbr -a -U -- gsr 'git svn rebase'
abbr -a -U -- gss 'git status -s'
abbr -a -U -- gst 'git status'
abbr -a -U -- gsta 'git stash'
abbr -a -U -- gstd 'git stash drop'
abbr -a -U -- gstp 'git stash pop'
abbr -a -U -- gsts 'git stash show --text'
abbr -a -U -- gsu 'git submodule update'
abbr -a -U -- gsur 'git submodule update --recursive'
abbr -a -U -- gsuri 'git submodule update --recursive --init'
abbr -a -U -- gsw 'git switch'
abbr -a -U -- gswc 'git switch --create'
abbr -a -U -- gts 'git tag -s'
abbr -a -U -- gtv 'git tag'
abbr -a -U -- gunignore 'git update-index --no-assume-unchanged'
abbr -a -U -- gup 'git pull --rebase'
abbr -a -U -- gwch 'git whatchanged -p --abbrev-commit --pretty=medium'

gitfisher on  master
❯ fisher remove patrickfatrick/gitfisher                                                                                                      08:50:22
fisher remove version 4.1.0
removing patrickfatrick/gitfisher
         /Users/pfricano/.config/fish/functions/__git.branch_has_wip.fish
         /Users/pfricano/.config/fish/functions/__git.current_branch.fish
         /Users/pfricano/.config/fish/functions/__git.destroy.fish
         /Users/pfricano/.config/fish/functions/__git.init.fish
         /Users/pfricano/.config/fish/functions/gbage.fish
         /Users/pfricano/.config/fish/functions/gbda.fish
         /Users/pfricano/.config/fish/functions/gdnolock.fish
         /Users/pfricano/.config/fish/functions/gdt.fish
         /Users/pfricano/.config/fish/functions/gdv.fish
         /Users/pfricano/.config/fish/functions/gfg.fish
         /Users/pfricano/.config/fish/functions/ggf.fish
         /Users/pfricano/.config/fish/functions/ggfl.fish
         /Users/pfricano/.config/fish/functions/ggl.fish
         /Users/pfricano/.config/fish/functions/ggp.fish
         /Users/pfricano/.config/fish/functions/ggpnp.fish
         /Users/pfricano/.config/fish/functions/ggsup.fish
         /Users/pfricano/.config/fish/functions/ggu.fish
         /Users/pfricano/.config/fish/functions/gignored.fish
         /Users/pfricano/.config/fish/functions/git-svn-dcommit-push.fish
         /Users/pfricano/.config/fish/functions/glp.fish
         /Users/pfricano/.config/fish/functions/gpoat.fish
         /Users/pfricano/.config/fish/functions/grename.fish
         /Users/pfricano/.config/fish/functions/groh.fish
         /Users/pfricano/.config/fish/functions/grt.fish
         /Users/pfricano/.config/fish/functions/gtl.fish
         /Users/pfricano/.config/fish/functions/gtv.fish
         /Users/pfricano/.config/fish/functions/gunwip.fish
         /Users/pfricano/.config/fish/functions/gwip.fish
         /Users/pfricano/.config/fish/functions/init.fish
         /Users/pfricano/.config/fish/functions/uninstall.fish
         /Users/pfricano/.config/fish/conf.d/git.fish
removed 1 plugin/s

gitfisher on  master took 466ms
❯ abbr -s                                                                                                                                     08:54:25

and omf:

gitfisher on  master took 6ms
❯ omf install https://github.com/patrickfatrick/gitfisher                                                                                     08:50:44
Updating https://github.com/oh-my-fish/packages-main master... Done!
Installing package gitfisher
✔ gitfisher successfully installed.

gitfisher on  master
❯ omf update gitfisher                                                                                                                        08:51:21
Updating https://github.com/oh-my-fish/packages-main master... Done!
gitfisher is already up-to-date.

gitfisher on  master took 1s
❯ echo $__git_plugin_abbreviations                                                                                                            08:51:36
g ga gaa gapa gap gb gba gban gbd gbD gbl gbs gbsb gbsg gbsr gbss gc gc! gcn! gca gca! gcan! gcv gcav gcav! gcm gcam gscam gcfx gcf gcl gclean gclean! gclean!! gcount gcp gcpa gcpc gd gdca gds gdsc gdw gdwc gignore gf gfa gfm gfo gl gll glr glg glgg glgga glo glog glom glod gloo gm gmt gp gp! gpo gpo! gpv gpv! ggp! gpu gr gra grb grba grbc grbi grbm grbmi grbmia grbd grbdi grbdia grbs grev grh grhh grm grmc grmv grrm grs grset grss grup grv gsh gsd gsr gss gst gsta gstd gstp gsts gsu gsur gsuri gts gtv gsw gswc gunignore gup gwch gco gcb gcod gcom gfb gff gfr gfh gfs gfbs gffs gfrs gfhs gfss gfbt gfft gfrt gfht gfst gfp

gitfisher on  master
❯ abbr -s                                                                                                                                     08:51:45
abbr -a -U -- g git
abbr -a -U -- ga 'git add'
abbr -a -U -- gaa 'git add --all'
abbr -a -U -- gap 'git apply'
abbr -a -U -- gapa 'git add --patch'
abbr -a -U -- gb 'git branch -vv'
abbr -a -U -- gbD 'git branch -D'
abbr -a -U -- gba 'git branch -a -v'
abbr -a -U -- gban 'git branch -a -v --no-merged'
abbr -a -U -- gbd 'git branch -d'
abbr -a -U -- gbl 'git blame -b -w'
abbr -a -U -- gbs 'git bisect'
abbr -a -U -- gbsb 'git bisect bad'
abbr -a -U -- gbsg 'git bisect good'
abbr -a -U -- gbsr 'git bisect reset'
abbr -a -U -- gbss 'git bisect start'
abbr -a -U -- gc 'git commit -v'
abbr -a -U -- gc! 'git commit -v --amend'
abbr -a -U -- gca 'git commit -v -a'
abbr -a -U -- gca! 'git commit -v -a --amend'
abbr -a -U -- gcam 'git commit -a -m'
abbr -a -U -- gcan! 'git commit -v -a --no-edit --amend'
abbr -a -U -- gcav 'git commit -a -v --no-verify'
abbr -a -U -- gcav! 'git commit -a -v --no-verify --amend'
abbr -a -U -- gcb 'git checkout -b'
abbr -a -U -- gcf 'git config --list'
abbr -a -U -- gcfx 'git commit --fixup'
abbr -a -U -- gcl 'git clone'
abbr -a -U -- gclean 'git clean -di'
abbr -a -U -- gclean! 'git clean -dfx'
abbr -a -U -- gclean!! 'git reset --hard; and git clean -dfx'
abbr -a -U -- gcm 'git commit -m'
abbr -a -U -- gcn! 'git commit -v --no-edit --amend'
abbr -a -U -- gco 'git checkout'
abbr -a -U -- gcod 'git checkout develop'
abbr -a -U -- gcom 'git checkout master'
abbr -a -U -- gcount 'git shortlog -sn'
abbr -a -U -- gcp 'git cherry-pick'
abbr -a -U -- gcpa 'git cherry-pick --abort'
abbr -a -U -- gcpc 'git cherry-pick --continue'
abbr -a -U -- gcv 'git commit -v --no-verify'
abbr -a -U -- gd 'git diff'
abbr -a -U -- gdca 'git diff --cached'
abbr -a -U -- gds 'git diff --stat'
abbr -a -U -- gdsc 'git diff --stat --cached'
abbr -a -U -- gdw 'git diff --word-diff'
abbr -a -U -- gdwc 'git diff --word-diff --cached'
abbr -a -U -- gf 'git fetch'
abbr -a -U -- gfa 'git fetch --all --prune'
abbr -a -U -- gfb 'git flow bugfix'
abbr -a -U -- gfbs 'git flow bugfix start'
abbr -a -U -- gfbt 'git flow bugfix track'
abbr -a -U -- gff 'git flow feature'
abbr -a -U -- gffs 'git flow feature start'
abbr -a -U -- gfft 'git flow feature track'
abbr -a -U -- gfh 'git flow hotfix'
abbr -a -U -- gfhs 'git flow hotfix start'
abbr -a -U -- gfht 'git flow hotfix track'
abbr -a -U -- gfm 'git fetch origin master --prune; and git merge FETCH_HEAD'
abbr -a -U -- gfo 'git fetch origin'
abbr -a -U -- gfp 'git flow publish'
abbr -a -U -- gfr 'git flow release'
abbr -a -U -- gfrs 'git flow release start'
abbr -a -U -- gfrt 'git flow release track'
abbr -a -U -- gfs 'git flow support'
abbr -a -U -- gfss 'git flow support start'
abbr -a -U -- gfst 'git flow support track'
abbr -a -U -- ggp! 'ggp --force-with-lease'
abbr -a -U -- gignore 'git update-index --assume-unchanged'
abbr -a -U -- gl 'git pull'
abbr -a -U -- glg 'git log --stat --max-count=10'
abbr -a -U -- glgg 'git log --graph --max-count=10'
abbr -a -U -- glgga 'git log --graph --decorate --all'
abbr -a -U -- gll 'git pull origin'
abbr -a -U -- glo 'git log --oneline --decorate --color'
abbr -a -U -- glod 'git log --oneline --decorate --color develop..'
abbr -a -U -- glog 'git log --oneline --decorate --color --graph'
abbr -a -U -- glom 'git log --oneline --decorate --color master..'
abbr -a -U -- gloo git\ log\ --pretty=format:\'\%C\(yellow\)\%h\ \%Cred\%ad\ \%Cblue\%an\%Cgreen\%d\ \%Creset\%s\'\ --date=short
abbr -a -U -- glr 'git pull --rebase'
abbr -a -U -- gm 'git merge'
abbr -a -U -- gmt 'git mergetool --no-prompt'
abbr -a -U -- gp 'git push'
abbr -a -U -- gp! 'git push --force-with-lease'
abbr -a -U -- gpo 'git push origin'
abbr -a -U -- gpo! 'git push --force-with-lease origin'
abbr -a -U -- gpu 'ggp --set-upstream'
abbr -a -U -- gpv 'git push --no-verify'
abbr -a -U -- gpv! 'git push --no-verify --force-with-lease'
abbr -a -U -- gr 'git remote -vv'
abbr -a -U -- gra 'git remote add'
abbr -a -U -- grb 'git rebase'
abbr -a -U -- grba 'git rebase --abort'
abbr -a -U -- grbc 'git rebase --continue'
abbr -a -U -- grbd 'git rebase develop'
abbr -a -U -- grbdi 'git rebase master --interactive'
abbr -a -U -- grbdia 'git rebase master --interactive --autosquash'
abbr -a -U -- grbi 'git rebase --interactive'
abbr -a -U -- grbm 'git rebase master'
abbr -a -U -- grbmi 'git rebase master --interactive'
abbr -a -U -- grbmia 'git rebase master --interactive --autosquash'
abbr -a -U -- grbs 'git rebase --skip'
abbr -a -U -- grev 'git revert'
abbr -a -U -- grh 'git reset'
abbr -a -U -- grhh 'git reset --hard'
abbr -a -U -- grm 'git rm'
abbr -a -U -- grmc 'git rm --cached'
abbr -a -U -- grmv 'git remote rename'
abbr -a -U -- grrm 'git remote remove'
abbr -a -U -- grs 'git restore'
abbr -a -U -- grset 'git remote set-url'
abbr -a -U -- grss 'git restore --source'
abbr -a -U -- grup 'git remote update'
abbr -a -U -- grv 'git remote -v'
abbr -a -U -- gscam 'git commit -S -a -m'
abbr -a -U -- gsd 'git svn dcommit'
abbr -a -U -- gsh 'git show'
abbr -a -U -- gsr 'git svn rebase'
abbr -a -U -- gss 'git status -s'
abbr -a -U -- gst 'git status'
abbr -a -U -- gsta 'git stash'
abbr -a -U -- gstd 'git stash drop'
abbr -a -U -- gstp 'git stash pop'
abbr -a -U -- gsts 'git stash show --text'
abbr -a -U -- gsu 'git submodule update'
abbr -a -U -- gsur 'git submodule update --recursive'
abbr -a -U -- gsuri 'git submodule update --recursive --init'
abbr -a -U -- gsw 'git switch'
abbr -a -U -- gswc 'git switch --create'
abbr -a -U -- gts 'git tag -s'
abbr -a -U -- gtv 'git tag'
abbr -a -U -- gunignore 'git update-index --no-assume-unchanged'
abbr -a -U -- gup 'git pull --rebase'
abbr -a -U -- gwch 'git whatchanged -p --abbrev-commit --pretty=medium'

gitfisher on  master took 544ms
❯ abbr -s                                                                                                                                     08:51:57
patrickfatrick commented 3 years ago

To make it a little easier I made master up-to-date with the omf branch.

patrickfatrick commented 3 years ago

The one thing that feels a little "off" to me is that when using omf the included functions are not available immediately upon installation, I have to open a new shell. But that strikes me as probably an issue with omf.

patrickfatrick commented 3 years ago

Hmm, I came across a discussion on a related issue with pisces that brings up a pretty substantial wrinkle I hadn't noticed https://github.com/laughedelic/pisces/pull/26

For now fisher moves all files from the root to .config/fish/functions, which is a problem for omf support since you have to put your init and uninstall files at the root. I am going to close this PR for now and take a closer look at the ramifications.

patrickfatrick commented 3 years ago

moved uninstall.fish to the hooks dir, and just removed init.fish entirely.

patrickfatrick commented 3 years ago

Thanks for the idea, I see now that's in the fisher readme.

I went ahead and also removed the __git.init call at the start. Doesn't seem necessary and seemed to be causing issues with uninstallation.

jhillyerd commented 3 years ago

Thanks for this one!