summaryrefslogtreecommitdiff
path: root/git-difftool.perl
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2014-03-18 14:04:36 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-03-18 14:04:36 -0700
commit01e13d0221e73febdcb98e26b4ae2882887421d8 (patch)
tree42ef3c061af3cdd78fa78797b2fcec423611032c /git-difftool.perl
parentMerge branch 'jk/remote-pushremote-config-reading' into maint (diff)
parentt7800: add a difftool test for .git-files (diff)
downloadtgif-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-xgit-difftool.perl18
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);