chiark / gitweb /
refactor
authormartin f. krafft <madduck@debian.org>
Thu, 20 Nov 2008 09:56:33 +0000 (10:56 +0100)
committermartin f. krafft <madduck@debian.org>
Thu, 20 Nov 2008 10:18:44 +0000 (11:18 +0100)
tg-export.sh

index 037b9910517fc1ffd1fbb79150b88a58d229e16e..8e98f4695c825752428fdf2bd2b947488c6c99c4 100644 (file)
@@ -39,7 +39,13 @@ if [ -z "$branches" ]; then
        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)"
@@ -62,7 +68,7 @@ pretty_tree()
 # Produce a collapsed commit of branch NAME.
 collapsed_commit()
 {
-       name="$1"
+       local name; name="$1"
 
        rm -f "$playground/^pre" "$playground/^post"
        >"$playground/^body"
@@ -177,17 +183,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 name; do
-               recurse_deps driver "$name"
-               (_ret=0; _dep="$name"; _name=""; _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")" ""