In dd4b732df7 ("upload-pack: send part of packfile response as uri", 2020-06-10), the git http-fetch code learned how to take ac --packfile option. This option takes an argument, which is the name of a packfile hash, and parses it using parse_oid_hex. It does so before calling setup_git_directory. However, in a SHA-256 repository this fails to work, since we have not set the hash algorithm in use and parse_oid_hex fails as a consequence. To ensure that we can parse packfile hashes of the right length, let's set up the git directory before we start parsing arguments. --- http-fetch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/http-fetch.c b/http-fetch.c index 1df376e745..8db7eb669f 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -86,6 +86,8 @@ int cmd_main(int argc, const char **argv) int packfile = 0; struct object_id packfile_hash; + setup_git_directory(); + while (arg < argc && argv[arg][0] == '-') { const char *p; @@ -115,8 +117,6 @@ int cmd_main(int argc, const char **argv) if (argc != arg + 2 - (commits_on_stdin || packfile)) usage(http_fetch_usage); - setup_git_directory(); - git_config(git_default_config, NULL); if (packfile) {