Discussion on bf0231c661 (rev-parse: add --show-superproject-working-tree, 2017-03-08) pointed out we are inconsistent with the naming of "working tree" and "worktree" even in user facing commands and documentation[1].
Introduce the new --working-tree option, which is the same as --work-tree. As --work-tree is considered slightly incorrect[2], stop mentioning it in the documentation. But we need to keep its functionality as it is plumbing. An alternative was considered off list to rename the newly added option '--show-superproject-working-tree' by dropping the part mentioning the working tree to side step this discussion. However we need to make sure that option still refers to the working tree, as a new option 'show-superproject-git-dir' might be considered useful in the future, and we do not want to take the canonical '--show-superproject' now. [1] https://public-inbox.org/git/20170317222842.gp26...@aiede.mtv.corp.google.com/ [2] https://public-inbox.org/git/xmqqo9wy4hxa....@gitster.mtv.corp.google.com/ Signed-off-by: Stefan Beller <sbel...@google.com> --- Documentation/git.txt | 12 ++++++------ git.c | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Documentation/git.txt b/Documentation/git.txt index df0941d456..763f3b5563 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -12,7 +12,7 @@ SYNOPSIS 'git' [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] - [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] + [--git-dir=<path>] [--working-tree=<path>] [--namespace=<name>] [--super-prefix=<path>] <command> [<args>] @@ -551,12 +551,12 @@ help ...`. <path>`. + This option affects options that expect path name like `--git-dir` and -`--work-tree` in that their interpretations of the path names would be +`--working-tree` in that their interpretations of the path names would be made relative to the working directory caused by the `-C` option. For example the following invocations are equivalent: - git --git-dir=a.git --work-tree=b -C c status - git --git-dir=c/a.git --work-tree=c/b status + git --git-dir=a.git --working-tree=b -C c status + git --git-dir=c/a.git --working-tree=c/b status -c <name>=<value>:: Pass a configuration parameter to the command. The value @@ -602,7 +602,7 @@ foo.bar= ...`) sets `foo.bar` to the empty string. setting the `GIT_DIR` environment variable. It can be an absolute path or relative path to current working directory. ---work-tree=<path>:: +--working-tree=<path>:: Set the path to the working tree. It can be an absolute path or a path relative to the current working directory. This can also be controlled by setting the GIT_WORK_TREE @@ -892,7 +892,7 @@ Git so take care if using a foreign front-end. `GIT_WORK_TREE`:: Set the path to the root of the working tree. - This can also be controlled by the `--work-tree` command-line + This can also be controlled by the `--working-tree` command-line option and the core.worktree configuration variable. `GIT_NAMESPACE`:: diff --git a/git.c b/git.c index 33f52acbcc..a76ff97232 100644 --- a/git.c +++ b/git.c @@ -149,9 +149,10 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) setenv(GIT_NAMESPACE_ENVIRONMENT, cmd, 1); if (envchanged) *envchanged = 1; - } else if (!strcmp(cmd, "--work-tree")) { + } else if (!strcmp(cmd, "--work-tree") || + !strcmp(cmd, "--working-tree")) { if (*argc < 2) { - fprintf(stderr, "No directory given for --work-tree.\n" ); + fprintf(stderr, "No directory given for %s.\n", cmd); usage(git_usage_string); } setenv(GIT_WORK_TREE_ENVIRONMENT, (*argv)[1], 1); -- 2.12.0.306.g4a9b9b32d4.dirty