[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