On Tue, Apr 04 2023, Felipe Contreras wrote: > Users might change the behavior when running "git fetch" so that the > remote's HEAD symbolic ref is updated at certain point. > > For example after running "git remote add" the remote HEAD is not > set like it is with "git clone". > > Setting "fetch.updatehead = missing" would probably be a sensible > default that everyone would want, but for now the default behavior is to > never update HEAD, so there shouldn't be any functional changes. > > For the next major version of Git, we might want to change this default. > > Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> > --- > Documentation/config/fetch.txt | 4 +++ > Documentation/config/remote.txt | 3 ++ > builtin/fetch.c | 64 ++++++++++++++++++++++++++++++++- > remote.c | 21 +++++++++++ > remote.h | 11 ++++++ > t/t5510-fetch.sh | 31 ++++++++++++++++ > 6 files changed, 133 insertions(+), 1 deletion(-) > > diff --git a/Documentation/config/fetch.txt b/Documentation/config/fetch.txt > index 568f0f75b3..dc147ffb35 100644 > --- a/Documentation/config/fetch.txt > +++ b/Documentation/config/fetch.txt > @@ -120,3 +120,7 @@ fetch.bundleCreationToken:: > The creation token values are chosen by the provider serving the specific > bundle URI. If you modify the URI at `fetch.bundleURI`, then be sure to > remove the value for the `fetch.bundleCreationToken` value before fetching. > + > +fetch.updateHead:: > + Defines when to update the remote HEAD symbolic ref. Values are 'never', > + 'missing' (update only when HEAD is missing), and 'always'. Missed the first time around, I think it would be useful to explain the historical behavior heher, and why it's been in place. I.e. that we use this during the initial fetch/clone to find the "HEAD", for discovering the default branch, but then proceed to not care about it after that. We should also link and cross-link to the other recent-ish config options (whose name I'm blanking on), which implement the "take the remote's suggestion of a default branch name" here.