X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=tg-export.sh;h=6d82d55751bd41159f04f20f55b753baaec94c44;hb=8b0f1f9d215d767488542a7853320d1789838d92;hp=748ca54f6c093480684d53982ba72e82daedb412;hpb=1930aaddd2164df67e68f0b75f38e20db44d242d;p=topgit.git diff --git a/tg-export.sh b/tg-export.sh index 748ca54..6d82d55 100644 --- a/tg-export.sh +++ b/tg-export.sh @@ -67,10 +67,9 @@ trap 'rm -rf "$playground"' EXIT # Output tree ID of a cleaned-up tree without tg's artifacts. pretty_tree() { - (export GIT_INDEX_FILE="$playground/^index" - git read-tree "$1" - git update-index --force-remove ".topmsg" ".topdeps" - git write-tree) + git ls-tree --full-tree "$1" \ + | awk -F ' ' '$2 !~ /^.top/' \ + | git mktree } create_tg_commit() @@ -185,8 +184,8 @@ quilt() echo "Skip empty patch $_dep"; else if "$numbered"; then - number="$(printf "%04u" $(($(cat "$playground/^number" 2>/dev/null) + 1)))"; - bn="$number-$bn"; + number="$(echo $(($(cat "$playground/^number" 2>/dev/null) + 1)))"; + bn="$(printf "%04u-$bn" $number)"; echo "$number" >"$playground/^number"; fi; @@ -216,22 +215,25 @@ linearize() # already included, just skip :; else - git merge -s recursive "$_dep"; - retmerge="$?"; + retmerge=0; + + git merge -s recursive "$_dep" || retmerge="$?"; if test "x$retmerge" != "x0"; then echo fix up the merge, commit and then exit; #todo error handling - sh -i + sh -i