diff options
Diffstat (limited to 'builtin-tar-tree.c')
-rw-r--r-- | builtin-tar-tree.c | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/builtin-tar-tree.c b/builtin-tar-tree.c deleted file mode 100644 index b04719ef20..0000000000 --- a/builtin-tar-tree.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2005, 2006 Rene Scharfe - */ -#include "cache.h" -#include "commit.h" -#include "tar.h" -#include "builtin.h" -#include "quote.h" - -static const char tar_tree_usage[] = -"git-tar-tree [--remote=<repo>] <tree-ish> [basedir]\n" -"*** Note that this command is now deprecated; use git-archive instead."; - -int cmd_tar_tree(int argc, const char **argv, const char *prefix) -{ - /* - * git-tar-tree is now a wrapper around git-archive --format=tar - * - * $0 --remote=<repo> arg... ==> - * git-archive --format=tar --remote=<repo> arg... - * $0 tree-ish ==> - * git-archive --format=tar tree-ish - * $0 tree-ish basedir ==> - * git-archive --format-tar --prefix=basedir tree-ish - */ - int i; - const char **nargv = xcalloc(sizeof(*nargv), argc + 2); - char *basedir_arg; - int nargc = 0; - - nargv[nargc++] = "git-archive"; - nargv[nargc++] = "--format=tar"; - - if (2 <= argc && !prefixcmp(argv[1], "--remote=")) { - nargv[nargc++] = argv[1]; - argv++; - argc--; - } - switch (argc) { - default: - usage(tar_tree_usage); - break; - case 3: - /* base-path */ - basedir_arg = xmalloc(strlen(argv[2]) + 11); - sprintf(basedir_arg, "--prefix=%s/", argv[2]); - nargv[nargc++] = basedir_arg; - /* fallthru */ - case 2: - /* tree-ish */ - nargv[nargc++] = argv[1]; - } - nargv[nargc] = NULL; - - fprintf(stderr, - "*** git-tar-tree is now deprecated.\n" - "*** Running git-archive instead.\n***"); - for (i = 0; i < nargc; i++) { - fputc(' ', stderr); - sq_quote_print(stderr, nargv[i]); - } - fputc('\n', stderr); - return cmd_archive(nargc, nargv, prefix); -} - -/* ustar header + extended global header content */ -#define RECORDSIZE (512) -#define HEADERSIZE (2 * RECORDSIZE) - -int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix) -{ - char buffer[HEADERSIZE]; - struct ustar_header *header = (struct ustar_header *)buffer; - char *content = buffer + RECORDSIZE; - ssize_t n; - - n = read_in_full(0, buffer, HEADERSIZE); - if (n < HEADERSIZE) - die("git-get-tar-commit-id: read error"); - if (header->typeflag[0] != 'g') - return 1; - if (memcmp(content, "52 comment=", 11)) - return 1; - - n = write_in_full(1, content + 11, 41); - if (n < 41) - die("git-get-tar-commit-id: write error"); - - return 0; -} |