chiark / gitweb /
Merge commit 'refs/top-bases/fixes/export--b-deps' into fixes/export--b-deps
authorCarsten Hey <carsten@debian.org>
Mon, 26 Apr 2010 08:18:59 +0000 (10:18 +0200)
committerCarsten Hey <carsten@debian.org>
Mon, 26 Apr 2010 08:18:59 +0000 (10:18 +0200)
* commit 'refs/top-bases/fixes/export--b-deps': (31 commits)
  tg patch: treat all files as ascii
  tg mail: document config setting to prevent unintended mass mail sending
  Don't call pre-commit hook if tg is not installed
  tg-delete: Handle the case where the branch has been removed already, but the base is still left.
  tg-mail: Properly quote argument to --in-reply-to
  tg-push: Filter out plain SHA1s from being pushed.
  Make 'tg patch' work in subdirectories
  quote $LESS in case it includes spaces
  deal with single quotes in from/to headers
  bump version number to 0.8
  Fix tg export --quilt --numbered w/ > 8 patches
  tg-push: add bash completion
  help: use pager
  tg-push: handle non-tgish branches
  tg-push: prevent handing branches more than once to git-push
  tg-push: remove useless warning about missing bases for non-tgish branches
  tg-update: fix user visible typo in info msg
  tg-remote: don't add push specs but warn about existing ones.
  tg-push: new command pushing a tgish branch
  recurse_deps: if no_remotes is set don't recurse into remote deps
  ...

1  2 
tg-export.sh

diff --combined tg-export.sh
index 90f7c6a6dfcf739a6f89061e4e89f33aa810a292,a16c2901d0a53b4ca8295e9e2ebc9efd5a82048a..5f7330b897baf54cf59922ec2939513ead231de9
@@@ -54,13 -54,7 +54,13 @@@ if [ -z "$branches" ]; the
        name="$(git symbolic-ref HEAD | sed 's#^refs/heads/##')"
        base_rev="$(git rev-parse --short --verify "refs/top-bases/$name" 2>/dev/null)" ||
                die "not on a TopGit-controlled branch"
 +      branches="$name"
 +else
 +      name="${branches##*,}" # the last of the comma-separated items
  fi
 +# $name holds the current branch
 +# $branches holds the comma-separated list of branches
 +# $name is equal to the last of the list of branches
  
  
  playground="$(mktemp -d -t tg-export.XXXXXX)"
@@@ -106,7 -100,7 +106,7 @@@ create_tg_commit(
  # Produce a collapsed commit of branch NAME.
  collapsed_commit()
  {
 -      name="$1"
 +      local name; name="$1"
  
        rm -f "$playground/^pre" "$playground/^post"
        >"$playground/^body"
@@@ -191,8 -185,8 +191,8 @@@ quilt(
                echo "Skip empty patch $_dep";
        else
                if "$numbered"; then
-                       number="$(printf "%04u" $(($(cat "$playground/^number" 2>/dev/null) + 1)))";
-                       bn="$number-$bn";
+                       number="$(echo $(($(cat "$playground/^number" 2>/dev/null) + 1)))";
+                       bn="$(printf "%04u-$bn" $number)";
                        echo "$number" >"$playground/^number";
                fi;
  
@@@ -222,22 -216,25 +222,25 @@@ linearize(
                        # already included, just skip
                        :;
                else
-                       git merge -s recursive "$_dep";
-                       retmerge="$?";
+                       retmerge=0;
+                       git merge -s recursive "$_dep" || retmerge="$?";
                        if test "x$retmerge" != "x0"; then
                                echo fix up the merge, commit and then exit;
                                #todo error handling
-                               sh -i
+                               sh -i </dev/tty;
                        fi;
                fi;
        else
-               git merge-recursive "$(pretty_tree "refs/top-bases/$_dep")" -- HEAD "$(pretty_tree "refs/heads/$_dep")";
-               retmerge="$?";
+               retmerge=0;
+               git merge-recursive "$(pretty_tree "refs/top-bases/$_dep")" -- HEAD "$(pretty_tree "refs/heads/$_dep")" || retmerge="$?";
  
                if test "x$retmerge" != "x0"; then
+                       git rerere;
                        echo "fix up the merge and update the index.  Don't commit!"
                        #todo error handling
-                       sh -i
+                       sh -i </dev/tty;
                fi
  
                result_tree=$(git write-tree)
@@@ -284,10 -281,17 +287,10 @@@ driver(
  
  # Call driver on all the branches - this will happen
  # in topological order.
 -if [ -z "$branches" ]; then
 +echo "$branches" | tr , '\n' | while read name; do
        recurse_deps driver "$name"
        (_ret=0; _dep="$name"; _name=""; _dep_is_tgish=1; driver)
 -else
 -      echo "$branches" | tr ',' '\n' | while read _dep; do
 -              _dep_is_tgish=1
 -              $driver
 -      done
 -      name="$(echo "$branches" | sed 's/.*,//')"
 -fi
 -
 +done
  
  if [ "$driver" = "collapse" ]; then
        git update-ref "refs/heads/$output" "$(cat "$playground/$name")" ""