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

[PATCH 3/5 v2] contrib/diffall: eliminate use of tar

From
Tim Henigan <tim.henigan@gmail.com>
Date
Mar 14, 2012, 16:38 UTC
Message-ID
<1331743086-32304-4-git-send-email-tim.henigan@gmail.com>
In-Reply-To
<1331743086-32304-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>
---
Changes in v2:
  - Added missing '$name' component to the 'cp' target.  This bug
    resulted in modified working copy files being copied to the wrong
    location in the tmp directory.  It only affected files in sub-
    directories of the repo root.
 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..f981ac1 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/$name"
+		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 4 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.