Re: [PATCH 8/9 v11] difftool: teach difftool to handle directory diffs
From: Tim Henigan <hidden>
Date: 2016-06-15 22:53:32
On Mon, Apr 9, 2012 at 8:14 AM, David Aguilar [off-list ref] wrote:
On Wed, Apr 4, 2012 at 12:21 PM, Tim Henigan [off-list ref] wrote:quoted
diff --git a/git-difftool.perl b/git-difftool.perl index d4fe998..5bb01e1 100755 --- a/git-difftool.perl +++ b/git-difftool.perl@@ -1,21 +1,29 @@
...snip...
quoted
+ $ENV{GIT_DIR} = $repo->repo_path(); + $ENV{GIT_INDEX_FILE} = "$tmpdir/lindex"; + ($inpipe, $ctx) = $repo->command_input_pipe(qw/update-index -z --index-info/); + print($inpipe $lindex); + $repo->command_close_pipe($inpipe, $ctx); + system(('git', 'checkout-index', '--all', "--prefix=$ldir/"));
...snip...
quoted
+ # If the diff including working copy files and those + # files were modified during the diff, then the changes + # should be copied back to the working tree + my $repo = Git->repository(); + my $workdir = $repo->repo_path() . "/..";Does this work when $GIT_WORK_TREE / core.worktree are defined?
Should I also be concerned that the existing code always overrides $GIT_DIR?
For example, should I squash in the following before calling 'git update-index'?
- $ENV{GIT_DIR} = $repo->repo_path();
+ if (not defined($ENV{GIT_DIR})) {
+ $ENV{GIT_DIR} = $repo->repo_path();
+ }
This seems like the right thing to do, but again I have not used
$GIT_DIR except for the implementation of this script.