tar-tree: remove deprecated command
"git tar-tree" has been a thin wrapper around "git archive" since commit
fd88d9c
(Remove upload-tar and make git-tar-tree a thin wrapper to
git-archive, 2006-09-24), which also made it print a message indicating
that git-tar-tree is deprecated.
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
eb8e7e1d9a
commit
925ceccf05
1
.gitignore
vendored
1
.gitignore
vendored
@ -158,7 +158,6 @@
|
|||||||
/git-svn
|
/git-svn
|
||||||
/git-symbolic-ref
|
/git-symbolic-ref
|
||||||
/git-tag
|
/git-tag
|
||||||
/git-tar-tree
|
|
||||||
/git-unpack-file
|
/git-unpack-file
|
||||||
/git-unpack-objects
|
/git-unpack-objects
|
||||||
/git-update-index
|
/git-update-index
|
||||||
|
@ -1,82 +0,0 @@
|
|||||||
git-tar-tree(1)
|
|
||||||
===============
|
|
||||||
|
|
||||||
NAME
|
|
||||||
----
|
|
||||||
git-tar-tree - Create a tar archive of the files in the named tree object
|
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
|
||||||
--------
|
|
||||||
[verse]
|
|
||||||
'git tar-tree' [--remote=<repo>] <tree-ish> [ <base> ]
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
-----------
|
|
||||||
THIS COMMAND IS DEPRECATED. Use 'git archive' with `--format=tar`
|
|
||||||
option instead (and move the <base> argument to `--prefix=base/`).
|
|
||||||
|
|
||||||
Creates a tar archive containing the tree structure for the named tree.
|
|
||||||
When <base> is specified it is added as a leading path to the files in the
|
|
||||||
generated tar archive.
|
|
||||||
|
|
||||||
'git tar-tree' behaves differently when given a tree ID versus when given
|
|
||||||
a commit ID or tag ID. In the first case the current time is used as
|
|
||||||
modification time of each file in the archive. In the latter case the
|
|
||||||
commit time as recorded in the referenced commit object is used instead.
|
|
||||||
Additionally the commit ID is stored in a global extended pax header.
|
|
||||||
It can be extracted using 'git get-tar-commit-id'.
|
|
||||||
|
|
||||||
OPTIONS
|
|
||||||
-------
|
|
||||||
|
|
||||||
<tree-ish>::
|
|
||||||
The tree or commit to produce tar archive for. If it is
|
|
||||||
the object name of a commit object.
|
|
||||||
|
|
||||||
<base>::
|
|
||||||
Leading path to the files in the resulting tar archive.
|
|
||||||
|
|
||||||
--remote=<repo>::
|
|
||||||
Instead of making a tar archive from local repository,
|
|
||||||
retrieve a tar archive from a remote repository.
|
|
||||||
|
|
||||||
CONFIGURATION
|
|
||||||
-------------
|
|
||||||
|
|
||||||
tar.umask::
|
|
||||||
This variable can be used to restrict the permission bits of
|
|
||||||
tar archive entries. The default is 0002, which turns off the
|
|
||||||
world write bit. The special value "user" indicates that the
|
|
||||||
archiving user's umask will be used instead. See umask(2) for
|
|
||||||
details.
|
|
||||||
|
|
||||||
EXAMPLES
|
|
||||||
--------
|
|
||||||
`git tar-tree HEAD junk | (cd /var/tmp/ && tar xf -)`::
|
|
||||||
|
|
||||||
Create a tar archive that contains the contents of the
|
|
||||||
latest commit on the current branch, and extracts it in
|
|
||||||
`/var/tmp/junk` directory.
|
|
||||||
|
|
||||||
`git tar-tree v1.4.0 git-1.4.0 | gzip >git-1.4.0.tar.gz`::
|
|
||||||
|
|
||||||
Create a tarball for v1.4.0 release.
|
|
||||||
|
|
||||||
`git tar-tree v1.4.0^{tree} git-1.4.0 | gzip >git-1.4.0.tar.gz`::
|
|
||||||
|
|
||||||
Create a tarball for v1.4.0 release, but without a
|
|
||||||
global extended pax header.
|
|
||||||
|
|
||||||
`git tar-tree --remote=example.com:git.git v1.4.0 >git-1.4.0.tar`::
|
|
||||||
|
|
||||||
Get a tarball v1.4.0 from example.com.
|
|
||||||
|
|
||||||
`git tar-tree HEAD:Documentation/ git-docs > git-1.4.0-docs.tar`::
|
|
||||||
|
|
||||||
Put everything in the current head's Documentation/ directory
|
|
||||||
into 'git-1.4.0-docs.tar', with the prefix 'git-docs/'.
|
|
||||||
|
|
||||||
GIT
|
|
||||||
---
|
|
||||||
Part of the linkgit:git[1] suite
|
|
@ -7,71 +7,9 @@
|
|||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "quote.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.";
|
|
||||||
|
|
||||||
static const char builtin_get_tar_commit_id_usage[] =
|
static const char builtin_get_tar_commit_id_usage[] =
|
||||||
"git get-tar-commit-id < <tarfile>";
|
"git get-tar-commit-id < <tarfile>";
|
||||||
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
const char **nargv = xcalloc(sizeof(*nargv), argc + 3);
|
|
||||||
struct strbuf sb = STRBUF_INIT;
|
|
||||||
char *basedir_arg;
|
|
||||||
int nargc = 0;
|
|
||||||
|
|
||||||
nargv[nargc++] = "archive";
|
|
||||||
nargv[nargc++] = "--format=tar";
|
|
||||||
|
|
||||||
if (2 <= argc && !prefixcmp(argv[1], "--remote=")) {
|
|
||||||
nargv[nargc++] = argv[1];
|
|
||||||
argv++;
|
|
||||||
argc--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Because it's just a compatibility wrapper, tar-tree supports only
|
|
||||||
* the old behaviour of reading attributes from the work tree.
|
|
||||||
*/
|
|
||||||
nargv[nargc++] = "--worktree-attributes";
|
|
||||||
|
|
||||||
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***");
|
|
||||||
sq_quote_argv(&sb, nargv, 0);
|
|
||||||
strbuf_addch(&sb, '\n');
|
|
||||||
fputs(sb.buf, stderr);
|
|
||||||
strbuf_release(&sb);
|
|
||||||
return cmd_archive(nargc, nargv, prefix);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ustar header + extended global header content */
|
/* ustar header + extended global header content */
|
||||||
#define RECORDSIZE (512)
|
#define RECORDSIZE (512)
|
||||||
#define HEADERSIZE (2 * RECORDSIZE)
|
#define HEADERSIZE (2 * RECORDSIZE)
|
||||||
|
@ -126,7 +126,6 @@ git-submodule mainporcelain
|
|||||||
git-svn foreignscminterface
|
git-svn foreignscminterface
|
||||||
git-symbolic-ref plumbingmanipulators
|
git-symbolic-ref plumbingmanipulators
|
||||||
git-tag mainporcelain common
|
git-tag mainporcelain common
|
||||||
git-tar-tree plumbinginterrogators deprecated
|
|
||||||
git-unpack-file plumbinginterrogators
|
git-unpack-file plumbinginterrogators
|
||||||
git-unpack-objects plumbingmanipulators
|
git-unpack-objects plumbingmanipulators
|
||||||
git-update-index plumbingmanipulators
|
git-update-index plumbingmanipulators
|
||||||
|
@ -706,7 +706,6 @@ __git_list_porcelain_commands ()
|
|||||||
ssh-*) : transport;;
|
ssh-*) : transport;;
|
||||||
stripspace) : plumbing;;
|
stripspace) : plumbing;;
|
||||||
symbolic-ref) : plumbing;;
|
symbolic-ref) : plumbing;;
|
||||||
tar-tree) : deprecated;;
|
|
||||||
unpack-file) : plumbing;;
|
unpack-file) : plumbing;;
|
||||||
unpack-objects) : plumbing;;
|
unpack-objects) : plumbing;;
|
||||||
update-index) : plumbing;;
|
update-index) : plumbing;;
|
||||||
|
1
git.c
1
git.c
@ -437,7 +437,6 @@ static void handle_internal_command(int argc, const char **argv)
|
|||||||
{ "stripspace", cmd_stripspace },
|
{ "stripspace", cmd_stripspace },
|
||||||
{ "symbolic-ref", cmd_symbolic_ref, RUN_SETUP },
|
{ "symbolic-ref", cmd_symbolic_ref, RUN_SETUP },
|
||||||
{ "tag", cmd_tag, RUN_SETUP },
|
{ "tag", cmd_tag, RUN_SETUP },
|
||||||
{ "tar-tree", cmd_tar_tree },
|
|
||||||
{ "unpack-file", cmd_unpack_file, RUN_SETUP },
|
{ "unpack-file", cmd_unpack_file, RUN_SETUP },
|
||||||
{ "unpack-objects", cmd_unpack_objects, RUN_SETUP },
|
{ "unpack-objects", cmd_unpack_objects, RUN_SETUP },
|
||||||
{ "update-index", cmd_update_index, RUN_SETUP },
|
{ "update-index", cmd_update_index, RUN_SETUP },
|
||||||
|
@ -48,12 +48,12 @@ test_expect_success 'apply in reverse' '
|
|||||||
|
|
||||||
test_expect_success 'setup separate repository lacking postimage' '
|
test_expect_success 'setup separate repository lacking postimage' '
|
||||||
|
|
||||||
git tar-tree initial initial | $TAR xf - &&
|
git archive --format=tar --prefix=initial/ initial | $TAR xf - &&
|
||||||
(
|
(
|
||||||
cd initial && git init && git add .
|
cd initial && git init && git add .
|
||||||
) &&
|
) &&
|
||||||
|
|
||||||
git tar-tree second second | $TAR xf - &&
|
git archive --format=tar --prefix=second/ second | $TAR xf - &&
|
||||||
(
|
(
|
||||||
cd second && git init && git add .
|
cd second && git init && git add .
|
||||||
)
|
)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# Copyright (C) 2005 Rene Scharfe
|
# Copyright (C) 2005 Rene Scharfe
|
||||||
#
|
#
|
||||||
|
|
||||||
test_description='git tar-tree and git get-tar-commit-id test
|
test_description='git archive and git get-tar-commit-id test
|
||||||
|
|
||||||
This test covers the topics of file contents, commit date handling and
|
This test covers the topics of file contents, commit date handling and
|
||||||
commit id embedding:
|
commit id embedding:
|
||||||
@ -13,11 +13,11 @@ commit id embedding:
|
|||||||
binary file (/bin/sh). Only paths shorter than 99 characters are
|
binary file (/bin/sh). Only paths shorter than 99 characters are
|
||||||
used.
|
used.
|
||||||
|
|
||||||
git tar-tree applies the commit date to every file in the archive it
|
git archive applies the commit date to every file in the archive it
|
||||||
creates. The test sets the commit date to a specific value and checks
|
creates. The test sets the commit date to a specific value and checks
|
||||||
if the tar archive contains that value.
|
if the tar archive contains that value.
|
||||||
|
|
||||||
When giving git tar-tree a commit id (in contrast to a tree id) it
|
When giving git archive a commit id (in contrast to a tree id) it
|
||||||
embeds this commit id into the tar archive as a comment. The test
|
embeds this commit id into the tar archive as a comment. The test
|
||||||
checks the ability of git get-tar-commit-id to figure it out from the
|
checks the ability of git get-tar-commit-id to figure it out from the
|
||||||
tar file.
|
tar file.
|
||||||
@ -196,16 +196,6 @@ test_expect_success \
|
|||||||
'git get-tar-commit-id <b.tar >b.commitid &&
|
'git get-tar-commit-id <b.tar >b.commitid &&
|
||||||
test_cmp .git/$(git symbolic-ref HEAD) b.commitid'
|
test_cmp .git/$(git symbolic-ref HEAD) b.commitid'
|
||||||
|
|
||||||
test_expect_success 'git tar-tree' '
|
|
||||||
git tar-tree HEAD >tar-tree.tar &&
|
|
||||||
test_cmp b.tar tar-tree.tar
|
|
||||||
'
|
|
||||||
|
|
||||||
test_expect_success 'git tar-tree with prefix' '
|
|
||||||
git tar-tree HEAD prefix >tar-tree_with_prefix.tar &&
|
|
||||||
test_cmp with_prefix.tar tar-tree_with_prefix.tar
|
|
||||||
'
|
|
||||||
|
|
||||||
test_expect_success 'git archive with --output, override inferred format' '
|
test_expect_success 'git archive with --output, override inferred format' '
|
||||||
git archive --format=tar --output=d4.zip HEAD &&
|
git archive --format=tar --output=d4.zip HEAD &&
|
||||||
test_cmp b.tar d4.zip
|
test_cmp b.tar d4.zip
|
||||||
|
@ -87,14 +87,4 @@ test_expect_success 'export-subst' '
|
|||||||
test_cmp substfile2 archive/substfile2
|
test_cmp substfile2 archive/substfile2
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'git tar-tree vs. git archive with worktree attributes' '
|
|
||||||
git tar-tree HEAD >tar-tree.tar &&
|
|
||||||
test_cmp worktree.tar tar-tree.tar
|
|
||||||
'
|
|
||||||
|
|
||||||
test_expect_success 'git tar-tree vs. git archive with worktree attrs, bare' '
|
|
||||||
(cd bare && git tar-tree HEAD) >bare-tar-tree.tar &&
|
|
||||||
test_cmp bare-worktree.tar bare-tar-tree.tar
|
|
||||||
'
|
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user