diff options
author | Marc Cornellà <marc@mcornella.com> | 2023-10-25 19:47:10 +0200 |
---|---|---|
committer | Marc Cornellà <marc@mcornella.com> | 2023-10-25 19:47:46 +0200 |
commit | 048455ccefdc67c4f137b8f7886769c55c2e5417 (patch) | |
tree | 4ebc3c4bf925a91002b88558a9aa15f1fdb36c49 /plugins/git-commit/git-commit.plugin.zsh | |
parent | 5c22c5812ec8b980d223b8252edc7759dd354014 (diff) | |
download | zsh-048455ccefdc67c4f137b8f7886769c55c2e5417.tar.gz zsh-048455ccefdc67c4f137b8f7886769c55c2e5417.tar.bz2 zsh-048455ccefdc67c4f137b8f7886769c55c2e5417.zip |
fix(git-commit): fix revert alias conflict (#12007)
Fixes #12007
Diffstat (limited to 'plugins/git-commit/git-commit.plugin.zsh')
-rw-r--r-- | plugins/git-commit/git-commit.plugin.zsh | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 4ad4c0177..72cecb1d6 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,9 +1,3 @@ -function _git_commit_register { - if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then - git config --global alias.$1 '!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$1'(${scope}): ${@}"; else git commit -m "'$1': ${@}"; fi }; a' - fi -} - local -a _git_commit_aliases _git_commit_aliases=( 'build' @@ -19,9 +13,19 @@ _git_commit_aliases=( 'test' ) -for _alias in "${_git_commit_aliases[@]}"; do - _git_commit_register $_alias +local alias type +for type in "${_git_commit_aliases[@]}"; do + # an alias can't be named "revert" because the git command takes precedence + # https://stackoverflow.com/a/3538791 + case "$type" in + revert) alias=rev ;; + *) alias=$type ;; + esac + + local func='!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$type'(${scope}): ${@}"; else git commit -m "'$type': ${@}"; fi }; a' + if ! git config --global --get-all alias.${alias} >/dev/null 2>&1; then + git config --global alias.${alias} "$func" + fi done -unfunction _git_commit_register -unset _alias +unset _git_commit_aliases alias type func |