jgit/org.eclipse.jgit.archive
Jonathan Nieder ebfe85d037 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
2013-06-06 12:31:46 -07:00
..
.settings Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00
META-INF Add long filename, large file, and non-ASCII filename support to TarFormat 2013-06-06 12:31:46 -07:00
src/org/eclipse/jgit/archive Add long filename, large file, and non-ASCII filename support to TarFormat 2013-06-06 12:31:46 -07:00
.classpath Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00
.gitignore Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00
.project Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00
about.html Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00
build.properties Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00
plugin.properties Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00
pom.xml Move ArchiveCommand into standard porcelain API 2013-05-24 17:30:18 -07:00