X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=tg.sh;h=1bc886aaee7bbcd2444e8950769b2b8932a7bbc3;hb=e5274deedc606f3a2eb69886e127a60534a82872;hp=d838bf6c11b50c0c06d48c209291cdcea2dbcc5d;hpb=b9f820b19ba5de11fba93227e286f1d0ddb09d52;p=topgit.git diff --git a/tg.sh b/tg.sh index d838bf6..1bc886a 100644 --- a/tg.sh +++ b/tg.sh @@ -47,8 +47,8 @@ setup_ours() { if [ ! -s "$git_dir/info/attributes" ] || ! grep -q topmsg "$git_dir/info/attributes"; then { - echo -e ".topmsg\tmerge=ours" - echo -e ".topdeps\tmerge=ours" + echo ".topmsg merge=ours" + echo ".topdeps merge=ours" } >>"$git_dir/info/attributes" fi if ! git config merge.ours.driver >/dev/null; then @@ -60,11 +60,11 @@ setup_ours() # measure_branch NAME [BASE] measure_branch() { - _name="$1"; _base="$2" - [ -n "$_base" ] || _base="refs/top-bases/$_name" + _bname="$1"; _base="$2" + [ -n "$_base" ] || _base="refs/top-bases/$_bname" # The caller should've verified $name is valid - _commits="$(git rev-list "$_name" ^"$_base" | wc -l)" - _nmcommits="$(git rev-list --no-merges "$_name" ^"$_base" | wc -l)" + _commits="$(git rev-list "$_bname" ^"$_base" | wc -l)" + _nmcommits="$(git rev-list --no-merges "$_bname" ^"$_base" | wc -l)" if [ $_commits -gt 1 ]; then _suffix="commits" else @@ -95,7 +95,7 @@ recurse_deps() _cmd="$1"; shift _name="$1"; # no shift _depchain="$*" - _depsfile="$(mktemp)" + _depsfile="$(mktemp -t tg-depsfile.XXXXXX)" git cat-file blob "$_name:.topdeps" >"$_depsfile" _ret=0 while read _dep; do @@ -111,7 +111,7 @@ recurse_deps() # Shoo shoo, keep our environment alone! [ -z "$_dep_is_tgish" ] || - (needs_update "$_cmd" "$_dep" "$@") || + (recurse_deps "$_cmd" "$_dep" "$@") || _ret=$? eval "$_cmd" @@ -139,7 +139,7 @@ branch_needs_update() # _dep needs to be synced with its base echo ": $_dep $_depchain" _ret=1 - elif ! branch_contains "refs/top-bases/$1" "$_dep"; then + elif [ -n "$_name" ] && ! branch_contains "refs/top-bases/$_name" "$_dep"; then # Some new commits in _dep echo "$_dep $_depchain" _ret=1 @@ -195,7 +195,7 @@ do_help() sep="|" done - echo "TopGit v0.1 - A different patch queue manager" + 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"