diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-03-18 14:04:36 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-03-18 14:04:36 -0700 |
commit | 01e13d0221e73febdcb98e26b4ae2882887421d8 (patch) | |
tree | 42ef3c061af3cdd78fa78797b2fcec423611032c /git-difftool.perl | |
parent | Merge branch 'jk/remote-pushremote-config-reading' into maint (diff) | |
parent | t7800: add a difftool test for .git-files (diff) | |
download | tgif-01e13d0221e73febdcb98e26b4ae2882887421d8.tar.xz |
Merge branch 'da/difftool-git-files' into maint
"git difftool" misbehaved when the repository is bound to the
working tree with the ".git file" mechanism, where a textual file
".git" tells us where it is.
* da/difftool-git-files:
t7800: add a difftool test for .git-files
difftool: support repositories with .git-files
Diffstat (limited to 'git-difftool.perl')
-rwxr-xr-x | git-difftool.perl | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/git-difftool.perl b/git-difftool.perl index e57d3d1295..18ca61e8d0 100755 --- a/git-difftool.perl +++ b/git-difftool.perl @@ -39,24 +39,10 @@ USAGE sub find_worktree { - my ($repo) = @_; - # Git->repository->wc_path() does not honor changes to the working # tree location made by $ENV{GIT_WORK_TREE} or the 'core.worktree' # config variable. - my $worktree; - my $env_worktree = $ENV{GIT_WORK_TREE}; - my $core_worktree = Git::config('core.worktree'); - - if (defined($env_worktree) and (length($env_worktree) > 0)) { - $worktree = $env_worktree; - } elsif (defined($core_worktree) and (length($core_worktree) > 0)) { - $worktree = $core_worktree; - } else { - $worktree = $repo->wc_path(); - } - - return $worktree; + return Git::command_oneline('rev-parse', '--show-toplevel'); } sub print_tool_help @@ -418,7 +404,7 @@ sub dir_diff my $rc; my $error = 0; my $repo = Git->repository(); - my $workdir = find_worktree($repo); + my $workdir = find_worktree(); my ($a, $b, $tmpdir, @worktree) = setup_dir_diff($repo, $workdir, $symlinks); |