Code

contrib/diffall: fix cleanup trap on Windows
authorTim Henigan <tim.henigan@gmail.com>
Wed, 14 Mar 2012 16:38:06 +0000 (12:38 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Mar 2012 22:22:38 +0000 (15:22 -0700)
Prior to this commit, the cleanup trap that removes the tmp dir
created by the script would fail on Windows. The error was silently
ignored by the script.

On Windows, a directory cannot be removed while it is the working
directory of the process (thanks to Johannes Sixt on the Git list
for this info [1]).

This commit eliminates the 'cd' into the tmp directory that caused
the error.

[1]: http://article.gmane.org/gmane.comp.version-control.git/193086

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/diffall/git-diffall

index 91a31c87803e886178ca6cbe27f6152390f6074c..84f2b654d755cf4b55beb959491b46728f3c59b6 100755 (executable)
@@ -49,7 +49,7 @@ cd "$cdup" || {
 tmp=$(perl -e 'use File::Temp qw(tempdir);
        $t=tempdir("/tmp/git-diffall.XXXXX") or exit(1);
        print $t') || exit 1
-trap 'rm -rf "$tmp" 2>/dev/null' EXIT
+trap 'rm -rf "$tmp"' EXIT
 
 left=
 right=
@@ -233,9 +233,8 @@ do
        fi
 done < "$tmp/filelist"
 
-cd "$tmp"
-LOCAL="$left_dir"
-REMOTE="$right_dir"
+LOCAL="$tmp/$left_dir"
+REMOTE="$tmp/$right_dir"
 
 if test -n "$diff_tool"
 then