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