From 87fec8fc9e790fedbee0c9fc810dbd1bf006d7b6 Mon Sep 17 00:00:00 2001 From: Rene Scharfe Date: Fri, 29 Apr 2005 19:51:04 -0700 Subject: [PATCH] GIT: Create tar archives of tree on the fly 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 --- get-tar-commit-id.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 get-tar-commit-id.c (limited to 'get-tar-commit-id.c') diff --git a/get-tar-commit-id.c b/get-tar-commit-id.c new file mode 100644 index 0000000000..a1a17e53d2 --- /dev/null +++ b/get-tar-commit-id.c @@ -0,0 +1,27 @@ +#include +#include +#include + +#define HEADERSIZE 1024 + +int main(int argc, char **argv) +{ + char buffer[HEADERSIZE]; + ssize_t n; + + n = read(0, buffer, HEADERSIZE); + if (n < HEADERSIZE) { + fprintf(stderr, "read error\n"); + return 3; + } + if (buffer[156] != 'g') + return 1; + if (memcmp(&buffer[512], "52 comment=", 11)) + return 1; + n = write(1, &buffer[523], 41); + if (n < 41) { + fprintf(stderr, "write error\n"); + return 2; + } + return 0; +} -- cgit v1.3