From def16e71819833d507a97a645366c569939dce73 Mon Sep 17 00:00:00 2001 From: Brandon Casey Date: Mon, 28 Jan 2008 15:16:02 -0600 Subject: [PATCH] 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 Acked-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- git-filter-branch.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index ebf05ca60..fbb948d6f 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" && -- 2.30.2