contrib/diffall: eliminate use of tar
[gitweb.git] / contrib / diffall / git-diffall
index 443f646a773a89041d8255d29a829fa710af03e0..f981ac1bd373ac12f0f66f4ec41b30a5e85f689f 100755 (executable)
@@ -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