--- /dev/null
+From: martin f. krafft <madduck@debian.org>
+Subject: [TopGit PATCH] Unify export of branches
+
+Currently, tg-export does things a little differently whether -b is passed or
+not, when really -b should just default to the name of the current branch.
+
+-b can also be used with the collapse driver.
+
+Debian bug: #506284
+Credits: Niko Tyni <ntyni@debian.org> for spotting the bug and sending an
+ initial fix.
+
+Signed-off-by: martin f. krafft <madduck@debian.org>
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="$(get_temp tg-export -d)"
# Produce a collapsed commit of branch NAME.
collapsed_commit()
{
- name="$1"
+ local name; name="$1"
rm -f "$playground/^pre" "$playground/^post"
>"$playground/^body"
# 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")" ""