• R
    [PATCH] create tar archives of tree on the fly · 731ab9cc
    Rene Scharfe 提交于
    This is an improved version of tar-tree, a streaming archive creator for
    GIT.  The major added feature is blocking; all write(2) calls now have a
    size of 10240, just as GNU tar (and tape drives) likes them.  The
    buffering overhead does not seem to degrade performance because most
    files in the repositories I tested this with are smaller than 10KB, so
    we need fewer system calls. 
    
    File names are still restricted to 500 bytes and the archive format
    currently only allows for files up to 8GB.  Both restrictions can be
    lifted if need be with more pax extended headers. 
    
    The archive format used is the pax interchange format, i.e.  POSIX tar
    format.  It can be read by (and created with) GNU tar.  If I read the
    specs correctly tar-tree should now be standards compliant (modulo
    bugs). 
    
    Because it streams the archive (think ls-tree merged with cat-file),
    tar-tree doesn't need to create any temporary files.  That makes it
    quite fast. 
    
    It accepts tree IDs and commit IDs as first parameter.  In the latter
    case tar-tree tries to get the commit date out of the committer line. 
    Else all files in the archive are time-stamped with the current time. 
    
    An optional second parameter is used as a path prefix for all files in
    the archive.  Example:
    
       $ tar-tree a2755a80f40e5794ddc20e00f781af9d6320fafb \
       linux-2.6.12-rc3 | bzip9 -9 > linux-2.6.12-rc3.tar.bz2
    Signed-off-by: NRene Scharfe <rene.scharfe@lsrfire.ath.cx>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    731ab9cc
Makefile 2.5 KB