X-Git-Url: https://git.octo.it/?p=git.git;a=blobdiff_plain;f=git-branch.sh;h=e0501ec23f5c40134af0e6211cf1ba28e69e1d5b;hp=663a3a370c8889e2ba78d627811c652d41e7971b;hb=HEAD;hpb=21dbe12c76e43735dc623067c1b09ef43519d9fc diff --git a/git-branch.sh b/git-branch.sh index 663a3a37..e0501ec2 100755 --- a/git-branch.sh +++ b/git-branch.sh @@ -1,6 +1,6 @@ #!/bin/sh -USAGE='[(-d | -D) ] | [[-f] []]' +USAGE='[-l] [(-d | -D) ] | [[-f] []] | -r' 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 .' @@ -42,6 +42,7 @@ If you are sure you want to delete it, run 'git branch -D $branch_name'." esac ;; esac + rm -f "$GIT_DIR/logs/refs/heads/$branch_name" rm -f "$GIT_DIR/refs/heads/$branch_name" echo "Deleted branch $branch_name." done @@ -55,6 +56,7 @@ ls_remote_branches () { } force= +create_log= while case "$#,$1" in 0,*) break ;; *,-*) ;; *) break ;; esac do case "$1" in @@ -69,6 +71,9 @@ do -f) force="$1" ;; + -l) + create_log="yes" + ;; --) shift break @@ -82,8 +87,7 @@ done case "$#" in 0) - git-rev-parse --symbolic --all | - sed -ne 's|^refs/heads/||p' | + git-rev-parse --symbolic --branches | sort | while read ref do @@ -118,4 +122,9 @@ then die "cannot force-update the current branch." fi fi -git update-ref "refs/heads/$branchname" $rev +if test "$create_log" = 'yes' +then + mkdir -p $(dirname "$GIT_DIR/logs/refs/heads/$branchname") + touch "$GIT_DIR/logs/refs/heads/$branchname" +fi +git update-ref -m "branch: Created from $head" "refs/heads/$branchname" $rev