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>
			
			
				maint
			
			
		
							parent
							
								
									eb8e7e1d9a
								
							
						
					
					
						commit
						925ceccf05
					
				|  | @ -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
	
	 John Keeping
						John Keeping