From: Tim Henigan Date: Tue, 13 Mar 2012 17:45:32 GMT Subject: [PATCH 3/4] contrib/diffall: teach diffall to handle working copy changes without tar 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 --- 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