Skip to content
  • Jeff King's avatar
    lazily load core.sharedrepository · ae5f6776
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    The "shared_repository" config is loaded as part of
    check_repository_format_version, but it's not quite like the
    other values we check there. Something like
    core.repositoryformatversion only makes sense in per-repo
    config, but core.sharedrepository can be set in a per-user
    config (e.g., to make all "git init" invocations shared by
    default).
    
    So it would make more sense as part of git_default_config.
    Commit 457f06d6
    
     (Introduce core.sharedrepository, 2005-12-22)
    says:
    
      [...]the config variable is set in the function which
      checks the repository format. If this were done in
      git_default_config instead, a lot of programs would need
      to be modified to call git_config(git_default_config)
      first.
    
    This is still the case today, but we have one extra trick up
    our sleeve. Now that we have the git_configset
    infrastructure, it's not so expensive for us to ask for a
    single value. So we can simply lazy-load it on demand.
    
    This should be OK to do in general. There are some problems
    with loading config before setup_git_directory() is called,
    but we shouldn't be accessing the value before then (if we
    were, then it would already be broken, as the variable would
    not have been set by check_repository_format_version!). The
    trickiest caller is git-init, but it handles the values
    manually itself.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    ae5f6776