At this point, SHA-256 support is experimental and some behavior may change. To avoid surprising unsuspecting users, require a build flag, ENABLE_SHA256, to allow use of a non-SHA-1 algorithm. Enable this flag by default when the DEVELOPER make flag is set so that contributors can test this case adequately. Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> --- config.mak.dev | 2 ++ repository.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/config.mak.dev b/config.mak.dev index bf1f3fcdee..2e19435915 100644 --- a/config.mak.dev +++ b/config.mak.dev @@ -17,6 +17,8 @@ DEVELOPER_CFLAGS += -Wstrict-prototypes DEVELOPER_CFLAGS += -Wunused DEVELOPER_CFLAGS += -Wvla +DEVELOPER_CFLAGS += -DENABLE_SHA256 + ifndef COMPILER_FEATURES COMPILER_FEATURES := $(shell ./detect-compiler $(CC)) endif diff --git a/repository.c b/repository.c index a4174ddb06..6f7f6f002b 100644 --- a/repository.c +++ b/repository.c @@ -89,6 +89,10 @@ void repo_set_gitdir(struct repository *repo, void repo_set_hash_algo(struct repository *repo, int hash_algo) { repo->hash_algo = &hash_algos[hash_algo]; +#ifndef ENABLE_SHA256 + if (hash_algo != GIT_HASH_SHA1) + die(_("The hash algorithm %s is not supported in this build."), repo->hash_algo->name); +#endif } /*