From: Carsten Hey Date: Mon, 26 Apr 2010 08:18:59 +0000 (+0200) Subject: Merge commit 'refs/top-bases/fixes/export--b-deps' into fixes/export--b-deps X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=commitdiff_plain;h=01b044052524ef075f9b95e548fef24dd44b0d78;hp=29ab4cf73dbaaccb6533f3f0fe1d0b1d484950c5 Merge commit 'refs/top-bases/fixes/export--b-deps' into fixes/export--b-deps * 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 ... --- diff --git a/.topdeps b/.topdeps new file mode 100644 index 0000000..0459513 --- /dev/null +++ b/.topdeps @@ -0,0 +1 @@ +upstream diff --git a/.topmsg b/.topmsg new file mode 100644 index 0000000..213d423 --- /dev/null +++ b/.topmsg @@ -0,0 +1,13 @@ +From: martin f. krafft +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 for spotting the bug and sending an + initial fix. + +Signed-off-by: martin f. krafft diff --git a/tg-export.sh b/tg-export.sh index a16c290..5f7330b 100644 --- a/tg-export.sh +++ b/tg-export.sh @@ -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")" ""