X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=tg.sh;h=ecc65748141dd53a224f382f7d53ddcacb2ba65d;hp=b2b9191c0ae847952be9217fa11d7061fca33f12;hb=5aa8cf9d4fba8b6dbbd7878eb78b2600e3736b9a;hpb=54f24fdf5691baa3dcc7252098efd13cc4fc1620 diff --git a/tg.sh b/tg.sh index b2b9191..ecc6574 100644 --- a/tg.sh +++ b/tg.sh @@ -20,13 +20,13 @@ die() # setup_hook NAME setup_hook() { - hook_call="\"\$(tg --hooks-path)\"/$1 \"\$@\"" + hook_call="\"\$($tg --hooks-path)\"/$1 \"\$@\"" if [ -f "$git_dir/hooks/$1" ] && fgrep -q "$hook_call" "$git_dir/hooks/$1"; then # Another job well done! return fi - # Prepare incanation + # Prepare incantation if [ -x "$git_dir/hooks/$1" ]; then hook_call="$hook_call"' || exit $?' else @@ -77,7 +77,7 @@ measure_branch() # Whether B1 is a superset of B2. branch_contains() { - [ -z "$(git rev-list ^"$1" "$2")" ] + [ -z "$(git rev-list ^"$1" "$2" --)" ] } # ref_exists REF @@ -222,10 +222,14 @@ do_help() sep="|" done - echo "TopGit v0.2 - A different patch queue manager" - echo "Usage: tg ($cmds|help) ..." - elif [ -r "@sharedir@/tg-$1.txt" ] ; then - cat "@sharedir@/tg-$1.txt" + echo "TopGit v0.4 - A different patch queue manager" + echo "Usage: tg [-r REMOTE] ($cmds|help) ..." + elif [ -r "@cmddir@"/tg-$1 ] ; then + @cmddir@/tg-$1 -h || : + echo + if [ -r "@docdir@/tg-$1.txt" ] ; then + cat "@docdir@/tg-$1.txt" + fi else echo "`basename $0`: no help for $1" 1>&2 fi @@ -238,6 +242,7 @@ set -e git_dir="$(git rev-parse --git-dir)" root_dir="$(git rev-parse --show-cdup)"; root_dir="${root_dir:-.}" base_remote="$(git config topgit.remote 2>/dev/null)" || : +tg="tg" # make sure merging the .top* files will always behave sanely setup_ours setup_hook "pre-commit" @@ -251,6 +256,11 @@ setup_hook "pre-commit" # this is set by hooks. [ -z "$tg__include" ] || return 0 +if [ "$1" = "-r" ]; then + shift; base_remote="$1"; shift + tg="$tg -r $base_remote" +fi + cmd="$1" [ -n "$cmd" ] || die "He took a duck in the face at two hundred and fifty knots" shift