X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-branch.sh;h=663a3a370c8889e2ba78d627811c652d41e7971b;hb=e51c3b50063d52ecd209a6f9846570d660e6310c;hp=b48c32988fc16fe9d221cca18c1030bbaaa5838b;hpb=9cc2527cd2943c82cf448dccec564869b0a762e6;p=git.git diff --git a/git-branch.sh b/git-branch.sh index b48c3298..663a3a37 100755 --- a/git-branch.sh +++ b/git-branch.sh @@ -1,16 +1,12 @@ #!/bin/sh -GIT_DIR=`git-rev-parse --git-dir` || exit $? - -usage () { - echo >&2 "usage: $(basename $0)"' [-d ] | [[-f] [start-point]] - -If no arguments, show available branches and mark current branch with a star. +USAGE='[(-d | -D) ] | [[-f] []]' +LONG_USAGE='If no arguments, show available branches and mark current branch with a star. If one argument, create a new branch based off of current HEAD. -If two arguments, create a new branch based off of . -' - exit 1 -} +If two arguments, create a new branch based off of .' + +SUBDIRECTORY_OK='Yes' +. git-sh-setup headref=$(git-symbolic-ref HEAD | sed -e 's|^refs/heads/||') @@ -36,11 +32,11 @@ delete_branch () { case " $mbs " in *' '$branch' '*) # the merge base of branch and HEAD contains branch -- - # which means that the HEAD contains everything in the HEAD. + # which means that the HEAD contains everything in both. ;; *) echo >&2 "The branch '$branch_name' is not a strict subset of your current HEAD. - If you are sure you want to delete it, run 'git branch -D $branch_name'." +If you are sure you want to delete it, run 'git branch -D $branch_name'." exit 1 ;; esac @@ -52,6 +48,12 @@ delete_branch () { exit 0 } +ls_remote_branches () { + git-rev-parse --symbolic --all | + sed -ne 's|^refs/\(remotes/\)|\1|p' | + sort +} + force= while case "$#,$1" in 0,*) break ;; *,-*) ;; *) break ;; esac do @@ -60,6 +62,10 @@ do delete_branch "$@" exit ;; + -r) + ls_remote_branches + exit + ;; -f) force="$1" ;;