Subject: [PATCH 0/1] Fix format detection when archiving remotely

From: [email-masked]
Date: Fri, 19 Oct 2018 16:19:27 -0700

Currently, git-archive does not properly determine the desired archive
format when both --output and --remote are provided, because
run_remote_archiver() does not initialize the archivers prior to calling
archive_format_from_filename(). This results in the remote archiver
always returning a TAR file, regardless of the requested format.

This patch initializes the TAR and ZIP archivers before calling
archive_format_from_filename(), which fixes format detection.

Steps to reproduce:

∫ git version
git version 2.19.1.568.g152ad8e336-goog
∫ cd ~/src/git
∫ git archive --output ~/good.zip HEAD
∫ file ~/good.zip
/home/steadmon/good.zip: Zip archive data, at least v1.0 to extract
∫ git archive --output ~/bad.zip --remote=. HEAD
∫ file ~/bad.zip
/home/steadmon/bad.zip: POSIX tar archive

(apply patch and build)

∫ ./bin-wrappers/git archive --output ~/fixed.zip --remote=. HEAD
∫ file ~/fixed.zip
/home/steadmon/fixed.zip: Zip archive data, at least v1.0 to extract

Josh Steadmon (1):
  archive: init archivers before determining format

 builtin/archive.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.19.1.568.g152ad8e336-goog