(picking a random series version because I didn't follow it closely)

On Thu, Jan 14, 2016 at 11:26 PM, David Turner <[email protected]> wrote:
> +       if (requested_ref_storage_backend)
> +               ref_storage_backend = requested_ref_storage_backend;
> +       if (strcmp(ref_storage_backend, "files")) {
> +               git_config_set("extensions.refStorage", ref_storage_backend);
> +               git_config_set("core.repositoryformatversion", 
> ref_storage_backend);
> +#ifdef USE_LIBLMDB
> +               register_ref_storage_backend(&refs_be_lmdb);
> +#endif
> +               set_ref_storage_backend(ref_storage_backend);
> +               repo_version = 1;
> +       }
> +
> +       if (refs_init_db(&err, shared_repository))
> +               die("failed to set up refs db: %s", err.buf);
> +

I was surprised that "git init --ref-storage=lmdb abc" ran
successfully even on non-lmdb build. Of course running any commands in
the new repo will fail, suggesting to rebuild with lmdb. But should
"git init" fail in the first place? I see Thomas' comment about this
block, but not sure why it still passes for me. It does not catch
unrecognized backend names either.

Also it would be nice if we could hide #ifdef USE_LIBLMDB (here and in
config.c) away, maybe in refs directory. I imagine a new backend would
need the same set of #ifdef. Spreading them across files does not
sound ideal.
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to