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

[PATCH 3/4] contrib/diffall: teach diffall to handle working copy changes without tar

From
Tim Henigan <tim.henigan@gmail.com>
Date
Mar 13, 2012, 17:45 UTC
Message-ID
<1331660734-10538-3-git-send-email-tim.henigan@gmail.com>
In-Reply-To
<1331660734-10538-1-git-send-email-tim.henigan@gmail.com>

The 'tar' utility is not available on all platforms (some only support 'gnutar'). An earlier commit created a work-around for this problem, but a better solution is to eliminate the use of 'tar' completely.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
---
 contrib/diffall/git-diffall |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/contrib/diffall/git-diffall b/contrib/diffall/git-diffall
index 443f646..8d243c7 100755
--- a/contrib/diffall/git-diffall
+++ b/contrib/diffall/git-diffall
@@ -202,10 +202,14 @@ then
 		fi
 	done < "$tmp/filelist"
 else
-	# Mac users have gnutar rather than tar
-	(tar --ignore-failed-read -c -T "$tmp/filelist" | (cd "$tmp/$right_dir" && tar -x)) || {
-		gnutar --ignore-failed-read -c -T "$tmp/filelist" | (cd "$tmp/$right_dir" && gnutar -x)
-	}
+	while read name
+	do
+		if test -e "$name"
+		then
+			mkdir -p "$tmp/$right_dir/$(dirname "$name")"
+			cp "$name" "$tmp/$right_dir"
+		fi
+	done < "$tmp/filelist"
 fi
 
 # Populate the tmp/left_dir directory with the files to be compared
-- 
1.7.10.rc0
Previous: Tim HeniganNext: Tim Henigan
Message 3 of 5 in “contrib/diffall: change comment to reflect actual reason for 'cdup'”
  1. 1/4 contrib/diffall: change comment to reflect actual reason for 'cdup'Tim Henigan, Mar 13, 2012
  2. 2/4 contrib/diffall: teach diffall to create tmp dirs without using mktempTim Henigan, Mar 13, 2012
  3. 3/4 contrib/diffall: teach diffall to handle working copy changes without tarTim Henigan, Mar 13, 2012
  4. 4/4 contrib/diffall: eliminate duplicate while loopsTim Henigan, Mar 13, 2012
  5. Tim HeniganMar 13, 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.