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
  ...

.topdeps [new file with mode: 0644]
.topmsg [new file with mode: 0644]
tg-export.sh

diff --git a/.topdeps b/.topdeps
new file mode 100644 (file)
index 0000000..0459513
--- /dev/null
+++ b/.topdeps
@@ -0,0 +1 @@
+upstream
diff --git a/.topmsg b/.topmsg
new file mode 100644 (file)
index 0000000..213d423
--- /dev/null
+++ b/.topmsg
@@ -0,0 +1,13 @@
+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>
index a16c2901d0a53b4ca8295e9e2ebc9efd5a82048a..5f7330b897baf54cf59922ec2939513ead231de9 100644 (file)
@@ -54,7 +54,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)"
@@ -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"
@@ -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")" ""