From: Ian Jackson Date: Wed, 7 Oct 2015 20:22:46 +0000 (+0100) Subject: git-branchmove: new script, still work in progress X-Git-Tag: archive/debian/5.0.0~80 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-utils.git;a=commitdiff_plain;h=cf631b0c9dc0158a126ef201a309042c14beeee6 git-branchmove: new script, still work in progress --- diff --git a/scripts/git-branchmove b/scripts/git-branchmove index 029992d..e68c474 100755 --- a/scripts/git-branchmove +++ b/scripts/git-branchmove @@ -61,7 +61,7 @@ get) src_path="$remote_path" dst_rune="sh -c" dst_path=. - msg="git-branchmove: moved to $remote ($remoteurl)" ;; + updatemsg="git-branchmove: moved to $remote ($remoteurl)" push_fetch=fetch ;; put) @@ -69,7 +69,7 @@ put) dst_path="$remote_path" src_rune="sh -c" src_path=. - msg="git-branchmove; moved to `hostname -f` by `whoami`" ;; + updatemsg="git-branchmove; moved to `hostname -f` by `whoami`" push_fetch=push ;; esac @@ -116,6 +116,12 @@ H) ;; # already detached ;; esac + +if [ "${#src_branches[@]}" = 0 ]; then + echo >&2 "git-branchmove: nothing to do" + exit 1 +fi + dst_branches=( $(on_dst "$get_branches_rune") ) : "${dst_branches[@]}" @@ -157,16 +163,16 @@ esac #----- delete the refs on the source ----- ( - printf "%s\n" "$message" + printf "%s\n" "$updatemsg" for src_rm in "${src_branches[@]}"; do printf "%s\n" "$src_rm"; done ) | on_src ' - read message + read updatemsg while read src_rm; do src_ref="${src_rm%=*}" src_obj="${src_rm##*=}" - git update-ref -m "$message" -d "$src_ref" "$src_obj" + git update-ref -m "$updatemsg" -d "$src_ref" "$src_obj" echo "move complete: $src_ref" done ' -echo 'moved ${#src_branches[@]} branches.' +echo "moved ${#src_branches[@]} branches."