diff options
author | Jonathan Nieder <jrn@google.com> | 2013-06-06 12:31:46 -0700 |
---|---|---|
committer | Jonathan Nieder <jrn@google.com> | 2013-06-06 12:31:46 -0700 |
commit | ebfe85d0374aee1992d01029c12338da3d67e26b (patch) | |
tree | 0ac7973cd1da34edfa62e3edccf9642b29126802 /org.eclipse.jgit.archive/META-INF | |
parent | ed5199f63b090063e07b19c8651bbfc484361462 (diff) | |
download | jgit-ebfe85d0374aee1992d01029c12338da3d67e26b.tar.gz jgit-ebfe85d0374aee1992d01029c12338da3d67e26b.zip |
Add long filename, large file, and non-ASCII filename support to TarFormat
Attempts to write entries with too-long filenames currently error out:
$ jgit.pgm/target/jgit archive HEAD >test.tar
java.lang.RuntimeException: file name 'org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/DefaultReceivePackFactory.java' is too long ( > 100 bytes)
at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry(TarArchiveOutputStream.java:288)
at org.eclipse.jgit.archive.TarFormat.putEntry(TarFormat.java:92)
at org.eclipse.jgit.archive.TarFormat.putEntry(TarFormat.java:62)
at org.eclipse.jgit.api.ArchiveCommand.writeArchive(ArchiveCommand.java:293)
at org.eclipse.jgit.api.ArchiveCommand.call(ArchiveCommand.java:322)
at org.eclipse.jgit.pgm.Archive.run(Archive.java:97)
at org.eclipse.jgit.pgm.TextBuiltin.execute(TextBuiltin.java:174)
at org.eclipse.jgit.pgm.Main.execute(Main.java:213)
at org.eclipse.jgit.pgm.Main.run(Main.java:121)
at org.eclipse.jgit.pgm.Main.main(Main.java:95)
That's because the default longFileMode is LONGFILE_ERROR, which
throws an exception for filenames longer than 100 characters. Switch
to LONGFILE_POSIX. While at it, handle large files and filenames with
strange encodings, too.
This requires commons compress 1.4, which introduced support for large
files and POSIX long filenames.
Change-Id: I04d5427eec0968b129f55d7a4c6021039a494828
Diffstat (limited to 'org.eclipse.jgit.archive/META-INF')
-rw-r--r-- | org.eclipse.jgit.archive/META-INF/MANIFEST.MF | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF index 48027d712e..fa8cb50d14 100644 --- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF @@ -6,12 +6,12 @@ Bundle-Version: 3.0.0.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Import-Package: org.apache.commons.compress.archivers;version="[1.3,2.0)", - org.apache.commons.compress.archivers.tar;version="[1.3,2.0)", - org.apache.commons.compress.archivers.zip;version="[1.3,2.0)", - org.apache.commons.compress.compressors.bzip2;version="[1.3,2.0)", - org.apache.commons.compress.compressors.gzip;version="[1.3,2.0)", - org.apache.commons.compress.compressors.xz;version="[1.3,2.0)", +Import-Package: org.apache.commons.compress.archivers;version="[1.4,2.0)", + org.apache.commons.compress.archivers.tar;version="[1.4,2.0)", + org.apache.commons.compress.archivers.zip;version="[1.4,2.0)", + org.apache.commons.compress.compressors.bzip2;version="[1.4,2.0)", + org.apache.commons.compress.compressors.gzip;version="[1.4,2.0)", + org.apache.commons.compress.compressors.xz;version="[1.4,2.0)", org.eclipse.jgit.api;version="[3.0.0,3.1.0)", org.eclipse.jgit.lib;version="[3.0.0,3.1.0)", org.osgi.framework;version="[1.3.0,2.0.0)" |