path: root/tar-tree.c
AgeCommit message (Collapse)Author
2005-10-02Honor extractor's umask in git-tar-tree.Junio C Hamano
The archive generated with git-tar-tree had 0755 and 0644 mode bits. This inconvenienced the extractor with umask 002 by robbing g+w bit unconditionally. Just write it out with loose permissions bits and let the umask of the extractor do its job. Signed-off-by: Junio C Hamano <>
2005-08-10[PATCH] -Werror fixesTimo Sirainen
GCC's format __attribute__ is good for checking errors, especially with -Wformat=2 parameter. This fixes most of the reported problems against 2005-08-09 snapshot.
2005-07-30[PATCH] Unify usage strings declarationPetr Baudis
All usage strings are now declared as static const char []. This is carried over from my old git-pb branch. Signed-off-by: Petr Baudis <> Signed-off-by: Junio C Hamano <>
2005-06-21[PATCH] Fix several gcc4 signedness warningsMika Kukkonen
Here is a patch that fixes several gcc4 warnings about different signedness, all between char and unsigned char. I tried to keep the patch minimal so resertod to casts in three places. Signed-off-by: Mika Kukkonen <> Signed-off-by: Linus Torvalds <>
2005-06-03[PATCH] git-tar-tree: fix write_trailerRene Scharfe
write_trailer() writes the last 10k (a full block) of the tar archive. write_if_needed() writes out a block *if* it is full and then sets the offset to 0. In nine out of ten cases the messed up write_trailer() function didn't manage to fill the block thus not writing anything at all, truncating the archive. I was "lucky" to hit the other case and so my testing ran OK. Signed-off-by: Rene Scharfe <> Signed-off-by: Linus Torvalds <>
2005-06-03[PATCH] git-tar-tree: cleanup write_trailer()Rene Scharfe
replace open-coded variants of get_record(). Signed-off-by: Rene Scharfe <> Signed-off-by: Linus Torvalds <>
2005-05-20sparse cleanupLinus Torvalds
Fix various things that sparse complains about: - use NULL instead of 0 - make sure we declare everything properly, or mark it static - use proper function declarations ("fn(void)" instead of "fn()") Sparse is always right.
2005-05-19[PATCH] cleanup of in-code namesAlexey Nezhdanov
Fixes all in-code names that leaved during "big name change". Signed-off-by: Alexey Nezhdanov <> Signed-off-by: Linus Torvalds <>
2005-05-18[PATCH] Kill a bunch of pointer sign warnings for gcc4Brian Gerst
- Raw hashes should be unsigned char. - String functions want signed char. - Hash and compress functions want unsigned char. Signed-off By: Brian Gerst <> Signed-off-by: Linus Torvalds <>
2005-05-09Add copyright notice of Rene Scharfe to tar-tree.cPetr Baudis
2005-05-07[PATCH] Lift path length limits from git-tar-tree.Rene Scharfe
Signed-off-by: Rene Scharfe <> Signed-off-by: Linus Torvalds <>
2005-05-07[PATCH] Do not initialize sha1_file_directory by hand.Junio C Hamano
Some commands initialize sha1_file_directory by hand. There is no need to do so; sha1_file.c knows how to handle it. The next patch will remove the variable altogether. Signed-off-by: Junio C Hamano <> Signed-off-by: Linus Torvalds <>
2005-05-06[PATCH] git-tar-tree: add symlink supportRene Scharfe
Add symlink support to git-tar-tree.
2005-05-06[PATCH] git-tar-tree: make file contents accessible to write_header()Rene Scharfe
Pass pointer to filecontents to write_header() and pass pointer to filecontents, its size and some flags to write_exntended_header(). These parameters are not used, yet. They are added in preparation to symlink support.
2005-05-06[PATCH] git-tar-tree: add extended header helpersRene Scharfe
Introduce append_extended_header_prefix(), extended_header_len() and append_extended_header(). These are helper functions that make it easier to handle multiple entries in a pax extended header. append_log() is no longer needed and can go away.
2005-05-06[PATCH] git-tar-tree: add TYPEFLAG_ constantsRene Scharfe
Add TYPEFLAG_ constants.
2005-05-06[PATCH] git-tar-tree: add get_record()Rene Scharfe
Add get_record() which returns a pointer to the next record in the block.
2005-05-01Add "get_sha1()" helper function.Linus Torvalds
This allows the programs to use various simplified versions of the SHA1 names, eg just say "HEAD" for the SHA1 pointed to by the .git/HEAD file etc. For example, this commit has been done with git-commit-tree $(git-write-tree) -p HEAD instead of the traditional "$(cat .git/HEAD)" syntax.
2005-04-30[PATCH] GIT: Create tar archives of tree on the flyRene Scharfe
Write commit ID to global extended pax header at the beginning of the tar file, if possible. get-tar-commit-id.c is an example program to get the ID back out of such a tar archive. Signed-off-by: Rene Scharfe <> Signed-off-by: Linus Torvalds <>
2005-04-29[PATCH] Use read_object_with_reference() in tar-treeRene Scharfe
This patch replaces the usage of read_tree_with_tree_or_commit_sha1() with read_object_with_reference() in tar-tree. As a result the code that tries to figure out the commit time doesn't need to open the commit object 'by hand' any more. Signed-off-by: Rene Scharfe <> Signed-off-by: Linus Torvalds <>
2005-04-28[PATCH] create tar archives of tree on the flyRene 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: Rene Scharfe <> Signed-off-by: Linus Torvalds <>