summaryrefslogtreecommitdiff
path: root/git-filter-branch.sh
diff options
context:
space:
mode:
authorBrandon Casey <casey@nrlssc.navy.mil>2008-01-28 21:16:02 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-01-30 19:56:12 (GMT)
commitdef16e71819833d507a97a645366c569939dce73 (patch)
treee387a4914d52a9c97e00217272902c6e8d724e66 /git-filter-branch.sh
parent0eab8ca68ad7bfcbb7c0aff37985116cbbdacd44 (diff)
downloadgit-def16e71819833d507a97a645366c569939dce73.zip
git-def16e71819833d507a97a645366c569939dce73.tar.gz
git-def16e71819833d507a97a645366c569939dce73.tar.bz2
filter-branch.sh: remove temporary directory on failure
One of the first things filter-branch does is to create a temporary directory. This directory is eventually removed by the script during normal operation, but is not removed if the script encounters an error. Set a trap to remove it when the script terminates for any reason. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-filter-branch.sh')
-rwxr-xr-xgit-filter-branch.sh5
1 files changed, 5 insertions, 0 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index ebf05ca..fbb948d 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -189,6 +189,9 @@ cd "$tempdir/t" &&
workdir="$(pwd)" ||
die ""
+# Remove tempdir on exit
+trap 'cd ../..; rm -rf "$tempdir"' 0
+
# Make sure refs/original is empty
git for-each-ref > "$tempdir"/backup-refs
while read sha1 type name
@@ -406,6 +409,8 @@ fi
cd ../..
rm -rf "$tempdir"
+trap - 0
+
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
test -z "$ORIG_GIT_DIR" || GIT_DIR="$ORIG_GIT_DIR" && export GIT_DIR
test -z "$ORIG_GIT_WORK_TREE" || GIT_WORK_TREE="$ORIG_GIT_WORK_TREE" &&