git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/5 v2] contrib/diffall: fix cleanup trap on Windows

From
Tim Henigan <tim.henigan@gmail.com>
Date
Mar 14, 2012, 16:38 UTC
Message-ID
<1331743086-32304-6-git-send-email-tim.henigan@gmail.com>
In-Reply-To
<1331743086-32304-1-git-send-email-tim.henigan@gmail.com>

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>
---
This patch was added in v2 of the series.
 contrib/diffall/git-diffall |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/contrib/diffall/git-diffall b/contrib/diffall/git-diffall
index 91a31c8..84f2b65 100755
--- a/contrib/diffall/git-diffall
+++ b/contrib/diffall/git-diffall
@@ -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
-- 
1.7.10.rc0
Previous: Tim Henigan
Message 6 of 6 in “contrib/diffall: improvements”
  1. 0/5 contrib/diffall: improvementsTim Henigan, Mar 14, 2012
  2. 1/5 contrib/diffall: comment actual reason for 'cdup'Tim Henigan, Mar 14, 2012
  3. 2/5 contrib/diffall: create tmp dirs without mktempTim Henigan, Mar 14, 2012
  4. 3/5 contrib/diffall: eliminate use of tarTim Henigan, Mar 14, 2012
  5. 4/5 contrib/diffall: eliminate duplicate while loopsTim Henigan, Mar 14, 2012
  6. 5/5 contrib/diffall: fix cleanup trap on WindowsTim Henigan, Mar 14, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.