Johannes Schindelin <[email protected]> writes:
> + if (!strcmp(var, "core.usebuiltindifftool")) {
> + use_builtin_difftool = git_config_bool(var, value);
> + return 0;
> + }
This no way belongs to the core set; difftool.usebuiltin would be
more appropriate.
> + if (!use_builtin_difftool) {
> + const char *path = mkpath("%s/git-legacy-difftool",
> git_exec_path());
> +
> + if (sane_execvp(path, (char **)argv) < 0)
> + die_errno("could not exec %s", path);
> +
> + return 0;
> + }
> + ...
> diff --git a/git-difftool.perl b/git-legacy-difftool.perl
> similarity index 100%
> rename from git-difftool.perl
> rename to git-legacy-difftool.perl
> diff --git a/git.c b/git.c
> index efa1059..0e6bbee 100644
> --- a/git.c
> +++ b/git.c
> @@ -424,6 +424,7 @@ static struct cmd_struct commands[] = {
> { "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE },
> { "diff-index", cmd_diff_index, RUN_SETUP },
> { "diff-tree", cmd_diff_tree, RUN_SETUP },
> + { "difftool", cmd_difftool, RUN_SETUP | NEED_WORK_TREE },
Running set-up would mean that the spawning of legacy-difftool would
be done after you chdir(2) up to the root level of the working tree,
no? I do not think you can safely add these two bits here until the
migration completes.
I doubt that setting core.usebuiltindifftool to false and running
the tool from a subdirectory and a pathspec work correctly with this
patch. If running difftool from a subdirectory with a pathspec is
not tested in t7800, perhaps we should.
It is nice that we can now lose PERL prerequisite from t7800 ;-)
Thanks.