chiark
/
gitweb
/
~ian
/
topgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor
[topgit.git]
/
tg-export.sh
diff --git
a/tg-export.sh
b/tg-export.sh
index 037b9910517fc1ffd1fbb79150b88a58d229e16e..8e98f4695c825752428fdf2bd2b947488c6c99c4 100644
(file)
--- a/
tg-export.sh
+++ b/
tg-export.sh
@@
-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"
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
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)"
playground="$(mktemp -d -t tg-export.XXXXXX)"
@@
-62,7
+68,7
@@
pretty_tree()
# Produce a collapsed commit of branch NAME.
collapsed_commit()
{
# Produce a collapsed commit of branch NAME.
collapsed_commit()
{
- name="$1"
+
local name;
name="$1"
rm -f "$playground/^pre" "$playground/^post"
>"$playground/^body"
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.
# 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)
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")" ""
if [ "$driver" = "collapse" ]; then
git update-ref "refs/heads/$output" "$(cat "$playground/$name")" ""