diff options
author | Brandon Casey <casey@nrlssc.navy.mil> | 2008-01-28 15:16:02 -0600 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-01-30 11:56:12 -0800 |
commit | def16e71819833d507a97a645366c569939dce73 (patch) | |
tree | e387a4914d52a9c97e00217272902c6e8d724e66 | |
parent | git-relink: avoid hard linking in objects/info directory (diff) | |
download | tgif-def16e71819833d507a97a645366c569939dce73.tar.xz |
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>
-rwxr-xr-x | git-filter-branch.sh | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh index ebf05ca600..fbb948d6fd 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" && |