aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-10-05 02:26:12 -0700
committerJunio C Hamano <junkio@cox.net>2006-10-05 02:26:12 -0700
commit9ccb64c8e0791a865ad520bcfff4b02cc7c50097 (patch)
tree0b1ac600d0f02a182bd546d6439716c5ace4469c
parent6030649591256a8bc1b504ec1e4fce86ab0ad064 (diff)
downloadgit-9ccb64c8e0791a865ad520bcfff4b02cc7c50097.tar.gz
git-9ccb64c8e0791a865ad520bcfff4b02cc7c50097.tar.xz
tar-tree deprecation: we eat our own dog food.
It is silly to keep using git-tar-tree in dist target when the command gives a big deprecation warning when called. Instead, use "git-archive --format=tar" which we recommend to our users. Update gitweb's snapshot feature to use git-archive for the same reason. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--Makefile5
-rwxr-xr-xgitweb/gitweb.perl9
2 files changed, 9 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 401b893bf..2c7c33855 100644
--- a/Makefile
+++ b/Makefile
@@ -856,8 +856,9 @@ git.spec: git.spec.in
mv $@+ $@
GIT_TARNAME=git-$(GIT_VERSION)
-dist: git.spec git-tar-tree
- ./git-tar-tree HEAD^{tree} $(GIT_TARNAME) > $(GIT_TARNAME).tar
+dist: git.spec git-archive
+ ./git-archive --format=tar \
+ --prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
@mkdir -p $(GIT_TARNAME)
@cp git.spec $(GIT_TARNAME)
@echo $(GIT_VERSION) > $(GIT_TARNAME)/version
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 3e9d4a005..6e1496d6a 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2838,9 +2838,12 @@ sub git_snapshot {
-content_disposition => 'inline; filename="' . "$filename" . '"',
-status => '200 OK');
- my $git_command = git_cmd_str();
- open my $fd, "-|", "$git_command tar-tree $hash \'$project\' | $command" or
- die_error(undef, "Execute git-tar-tree failed.");
+ my $git = git_cmd_str();
+ my $name = $project;
+ $name =~ s/\047/\047\\\047\047/g;
+ open my $fd, "-|",
+ "$git archive --format=tar --prefix=\'$name\'/ $hash | $command"
+ or die_error(undef, "Execute git-tar-tree failed.");
binmode STDOUT, ':raw';
print <$fd>;
binmode STDOUT, ':utf8'; # as set at the beginning of gitweb.cgi