Re: [PATCH 3/3] setup: always honor GIT_WORK_TREE and core.worktree
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 23, 2011, 23:49 UTC
- Message-ID
- <7vipxfmb9u.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <AANLkTim_o9GGWbDFkeGb-va+4dP+StQE6GJyLpSMmV1H@mail.gmail.com>
Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:
Show 7 quoted lines
> On Sat, Jan 22, 2011 at 3:58 AM, Junio C Hamano <gitster@pobox.com> wrote: >> I was re-reading this thread, and changed my mind; I think we should have >> this series to avoid unnecessary regression, with or without clarifying >> (5), before 1.7.4 final. > > Sorry for late response. If we no longer consider this work-around, > perhaps git.txt and config.txt should be updated to reflect it?
I am Ok with us considering this as a "work-around"; as long as we keep it alive, the label does not matter much.
And the necessity of documentation updates you raised is really a good point. Something like this (on top of jn/setup-fixes branch queued in next)?
Documentation/config.txt | 23 ++++++++++++++++------- Documentation/git.txt | 13 ++++--------- 2 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt index ff7c225..72b74c4 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -317,17 +317,26 @@ false), while all other repositories are assumed to be bare (bare = true). core.worktree:: - Set the path to the working tree. The value will not be - used in combination with repositories found automatically in - a .git directory (i.e. $GIT_DIR is not set). + Set the path to the root of the work tree. This can be overridden by the GIT_WORK_TREE environment variable and the '--work-tree' command line option. It can be - an absolute path or relative path to the directory specified by - --git-dir or GIT_DIR. - Note: If --git-dir or GIT_DIR are specified but none of + an absolute path or a relative path to the .git directory, + either specified by --git-dir or GIT_DIR, or automatically + discovered. + If --git-dir or GIT_DIR are specified but none of --work-tree, GIT_WORK_TREE and core.worktree is specified, - the current working directory is regarded as the top directory + the current working directory is regarded as the top level of your working tree. ++ +Note that this variable is honored even when set in a configuration +file in a ".git" subdirectory of a directory, and its value differs +from the latter directory (e.g. "/path/to/.git/config" has +core.worktree set to "/different/path"), which is most likely a +misconfiguration. Running git commands in "/path/to" directory will +still use "/different/path" as the root of the work tree and can cause +confusion, unless you know what you are doing (e.g. you are creating a +read-only snapshot of the same index to a location different from the +repository's usual working tree). core.logAllRefUpdates:: Enable the reflog. Updates to a ref <ref> is logged to the file diff --git a/Documentation/git.txt b/Documentation/git.txt index 4e5fe4d..245d84f 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -291,17 +291,12 @@ help ...`. path or relative path to current working directory. --work-tree=<path>:: - Set the path to the working tree. The value will not be - used in combination with repositories found automatically in - a .git directory (i.e. $GIT_DIR is not set). + Set the path to the working tree. It can be an absolute path + or relative path to the current working directory. This can also be controlled by setting the GIT_WORK_TREE environment variable and the core.worktree configuration - variable. It can be an absolute path or relative path to - current working directory. - Note: If --git-dir or GIT_DIR are specified but none of - --work-tree, GIT_WORK_TREE and core.worktree is specified, - the current working directory is regarded as the top directory - of your working tree. + variable (see core.worktree in linkgit:git-config[1] for a + more detailed discussion). --bare:: Treat the repository as a bare repository. If GIT_DIR