]> source.dussan.org Git - jgit.git/commit
Add "jgit archive" tool that writes a tree as a ZIP file 33/8733/5
authorJonathan Nieder <jrn@google.com>
Fri, 16 Nov 2012 02:48:12 +0000 (18:48 -0800)
committerJonathan Nieder <jrn@google.com>
Sat, 17 Nov 2012 00:21:25 +0000 (16:21 -0800)
commit6a94f027b6302f1630ccbad8fd4dc5d7f54645d4
tree0cbbde47e02285355a623f5ac27d61f340205e5e
parent789ca39adeb794ee63c7e5b6484f521de5b1f29d
Add "jgit archive" tool that writes a tree as a ZIP file

C Git's "git archive" command represents a tree object using a
standard archival format like tar, zip, or tgz, ready for consumption
by other, git-unaware users or tools.

Add a bare-bones analagous "jgit archive" command to show what is
possible, supporting only ZIP format for now.  It uses java.util.zip
which is not aware of the InfoZIP extensions for representing symlinks
and file permissions, so symlinks, executable files, and submodule
entries are represented as plain text files.

Making this functionality available from the library, improving
handling of special entries, and support for other output formats are
left for later patches.  Ultimately the intent is to offer a
TreeArchiveStream class for use by web frontends like Gitiles to offer
"download as zip/tgz/txz" links and use by, for example, code search
tools to get easy access to the content of git tree objects.

Test with "jgit archive my-favorite-tree >out.zip".

Change-Id: Ib590f173ceff3df4b58493cecccd6b9a1b355e3d
org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java [new file with mode: 0644]
org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin
org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Archive.java [new file with mode: 0644]
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CLIText.java