login
Header Space

 
 

Re: [PATCH] import-tars: use Archive::Tar instead of unpack()

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <git@...>
Date: Wednesday, February 14, 2007 - 12:03 pm

Am Montag, den 12.02.2007, 12:28 -0500 schrieb Shawn O. Pearce:
... 
yes, and this should be supported. There is an simple example in the
Archive::Tar manpage.

So something like "$tar = new Archive::Tar(*I)" is possible to use the
original filehandle but I removed this code before reading the whole
manpage.

And Archive::Tar is a little bit slower then your unpack() and it reads
the whole file into memory which is not so good.

I have used it to play a bit with this nice fast-import stuff.

Maybe, but I haven't tested it with some bigger tar files.

I think we should stay with your unpack() version, it works, is faster
and doesn't read the whole file into memory.

In the Archive::Tar manpage they use gunzip and uncompress instead of
zcat or gzcat, so what do you think about the following patch?

diff --git a/contrib/fast-import/import-tars.perl b/contrib/fast-import/import-tars.perl
index 990c9e7..5585a8b 100755
--- a/contrib/fast-import/import-tars.perl
+++ b/contrib/fast-import/import-tars.perl
@@ -25,11 +25,14 @@ foreach my $tar_file (@ARGV)
 	my $tar_name = $1;
 
 	if ($tar_name =~ s/\.(tar\.gz|tgz)$//) {
-		open(I, '-|', 'gzcat', $tar_file) or die "Unable to gzcat $tar_file: $!\n";
+		open(I, '-|', 'gunzip', '-c', $tar_file)
+			or die "Unable to gunzip -c $tar_file: $!\n";
 	} elsif ($tar_name =~ s/\.(tar\.bz2|tbz2)$//) {
-		open(I, '-|', 'bzcat', $tar_file) or die "Unable to bzcat $tar_file: $!\n";
+		open(I, '-|', 'bunzip2', '-c', $tar_file)
+			or die "Unable to bunzip2 -c $tar_file: $!\n";
 	} elsif ($tar_name =~ s/\.tar\.Z$//) {
-		open(I, '-|', 'zcat', $tar_file) or die "Unable to zcat $tar_file: $!\n";
+		open(I, '-|', 'uncompress', '-c', $tar_file)
+			or die "Unable to uncompress -c $tar_file: $!\n";
 	} elsif ($tar_name =~ s/\.tar$//) {
 		open(I, $tar_file) or die "Unable to open $tar_file: $!\n";
 	} else {


... the $git_mode patch ...
Yes, I had this change first in another patch but i forgot to mail it to
the list.

...
Good, I no longer think this Archive::Tar stuff is such a good idea.



-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] import-tars: use Archive::Tar instead of unpack(), Michael Loeffler, (Mon Feb 12, 10:17 am)
Re: [PATCH] import-tars: use Archive::Tar instead of unpack(), Michael Loeffler, (Wed Feb 14, 12:03 pm)
Re: [PATCH] import-tars: use Archive::Tar instead of unpack(), Shawn O. Pearce, (Wed Feb 14, 10:51 pm)
Re: [PATCH] import-tars: use Archive::Tar instead of unpack(), Johannes Schindelin, (Mon Feb 12, 10:25 am)
speck-geostationary