From: Brandon Williams Date: Wed, 14 Jun 2017 18:07:38 +0000 (-0700) Subject: config: respect commondir X-Git-Tag: v2.14.0-rc0~59^2~1 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a577fb5fdc53a4729eeedc2922d1461350b92f73?hp=a577fb5fdc53a4729eeedc2922d1461350b92f73 config: respect commondir Worktrees present an interesting problem when it comes to the config. Historically we could assume that the per-repository config lives at 'gitdir/config', but since worktrees were introduced this isn't the case anymore. There is currently no way to specify per-worktree configuration, and as such the repository config is shared with all worktrees and is located at 'commondir/config'. Many users of the config machinery correctly set 'config_options.git_dir' with the repository's commondir, allowing the config to be properly loaded when operating in a worktree. But other's, like 'read_early_config()', set 'config_options.git_dir' with the repository's gitdir which can be incorrect when using worktrees. To fix this issue, and to make things less ambiguous, lets add a 'commondir' field to the 'config_options' struct and have all callers properly set both the 'git_dir' and 'commondir' fields so that the config machinery is able to properly find the repository's config. Signed-off-by: Brandon Williams Signed-off-by: Junio C Hamano ---