Re: [PATCH 4/9] Make setup_work_tree() return new prefix
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 28, 2008, 11:30 UTC
- Message-ID
- <alpine.LSU.1.00.0802281130140.22527@racer.site>
- In-Reply-To
- <20080227163902.GA28058@laptop>
Hi,
On Wed, 27 Feb 2008, Nguyễn Thái Ngọc Duy wrote:
Show 35 quoted lines
> @@ -336,24 +321,21 @@ const char *setup_git_directory_gently(int *nongit_ok)
> static char buffer[1024 + 1];
> const char *retval;
>
> + /*
> + * The old behaviour (which we retain here) is to set
> + * the work tree root to the cwd, unless overridden by
> + * the config, the command line, or GIT_WORK_TREE.
> + */
> if (!work_tree_env) {
> - retval = set_work_tree(gitdirenv);
> - /* config may override worktree */
> - if (check_repository_format_gently(nongit_ok))
> - return NULL;
> - return retval;
> + char buffer[PATH_MAX + 1];
> +
> + if (!getcwd(buffer, sizeof(buffer)))
> + die ("Could not get the current working directory");
> + git_work_tree_cfg = xstrdup(buffer);
> + inside_work_tree = 1;
> }
> - if (check_repository_format_gently(nongit_ok))
> - return NULL;
> - retval = get_relative_cwd(buffer, sizeof(buffer) - 1,
> - get_git_work_tree());
> - if (!retval || !*retval)
> - return NULL;
> - set_git_dir(make_absolute_path(gitdirenv));
> - if (chdir(work_tree_env) < 0)
> - die ("Could not chdir to %s", work_tree_env);
> - strcat(buffer, "/");
> - return retval;
> + check_repository_format_gently(nongit_ok);
> + return NULL;What about the situation where you are in a subdirectory of core.worktree? You return prefix NULL? That's wrong.
I am sorry, but with all these intrusive changes, I get a very uneasy feeling. As uneasy as with the original series, which I tried to fix up, not really succeeding.
Ciao, Dscho