Use Git porcelain commands in git-hub

This commit is contained in:
Sorin Ionescu 2012-09-24 01:46:24 -04:00
parent 4cc8167739
commit 224dc2eaff
2 changed files with 9 additions and 12 deletions

View File

@ -18,19 +18,16 @@ _arguments -C -s -S \
case "$state" in
(remote)
remotes=($(
git config -l \
| grep 'remote\.[^.]*\.url' \
| cut -d'.' -f2))
git config --local --get-regexp 'remote.*.url' \
| awk 'BEGIN {FS="."} ; {print $2}'
))
_describe -t branch 'remotes' remotes && ret=0
;;
(branch)
remote="$words[(($CURRENT - 1))]"
branches=($(
git branch -r \
| grep "${remote}/" \
| sed \
-e "/${remote}\/HEAD -> ${remote}/d" \
-e "s/^[[:space:]]*${remote}\///g"
git ls-remote --heads "$remote" \
| awk '{gsub(/refs\/heads\//, "", $2)} ; {print $2}'
))
_describe -t branch 'branches' branches && ret=0
;;

View File

@ -9,12 +9,12 @@ local remote branches branch current_branch file url
remote="${1:-origin}"
url=$(
git config -l \
| grep "remote.${remote}.url" \
| sed -En "s/remote.${remote}.url=(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
git config --local --get "remote.${remote}.url" \
| sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
)
branches=($(
git branch -r | sed -e "/${remote}\/HEAD -> ${remote}/d" -e "s/^[[:space:]]*${remote}\///g"
git ls-remote --heads "$remote" \
| awk '{gsub(/refs\/heads\//, "", $2)} ; {print $2}'
))
current_branch="$(git-branch-current)"
branch="${2:-master}"