Re: [PATCH 1/2] Doc: explain submodule.alternateErrorStrategy
From: Junio C Hamano <hidden>
Date: 2019-11-27 12:30:48
Jonathan Tan [off-list ref] writes:
Commit 31224cbdc7 ("clone: recursive and reference option triggers
submodule alternates", 2016-08-17) taught Git to support the
configuration options "submodule.alternateLocation" and
"submodule.alternateErrorStrategy" on a superproject.
...
The "submodule.alternateErrorStrategy" option determines what happens
if that alternate cannot be referenced. However, it is not clear that
the clone proceeds as if no alternate was specified when that option is
not set to "die" (as can be seen in the tests in 31224cbdc7). Therefore,
document it accordingly.Given that for everyday use (cf. sha1-file.c::link_alt_odb_entry()) of an alternate is best-effort basis, I have a feeling that it was a design mistake to have the "error strategy" configuration option in the first place, and "clone --reference-if-able" was the result of the same design mistake. We would have been better off if we made these the best-effort features as well. But the ship has sailed long ago---so I think these two are the best we can do at this point. Perhaps flipping the default to warn may be a longer term improvement, too.