summaryrefslogtreecommitdiff
path: root/contrib/diffall/git-diffall
diff options
context:
space:
mode:
authorLibravatar Tim Henigan <tim.henigan@gmail.com>2012-03-14 12:38:04 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2012-03-14 15:20:25 -0700
commite33e01d07703d0c2c662c30e745dc93b543641c0 (patch)
treec9c0719cc990774d769346ea28edce48fb79e1c8 /contrib/diffall/git-diffall
parentcontrib/diffall: create tmp dirs without mktemp (diff)
downloadtgif-e33e01d07703d0c2c662c30e745dc93b543641c0.tar.xz
contrib/diffall: eliminate use of tar
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/diffall/git-diffall')
-rwxr-xr-xcontrib/diffall/git-diffall12
1 files changed, 8 insertions, 4 deletions
diff --git a/contrib/diffall/git-diffall b/contrib/diffall/git-diffall
index 443f646a77..f981ac1bd3 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