Thread (8 messages) flat view 8 messages, 2 authors, 2016-06-15

Re: [PATCH 8/9 v11] difftool: teach difftool to handle directory diffs

From: David Aguilar <hidden>
Date: 2016-06-15 22:53:33

On Tue, Apr 10, 2012 at 10:24 AM, Tim Henigan [off-list ref] wrote:
On Mon, Apr 9, 2012 at 8:14 AM, David Aguilar [off-list ref] wrote:
quoted
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
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
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();
+      }
I think the right thing to do would be to not override GIT_DIR at all.
 I haven't read it deeply enough to know whether it was being
overridden for a specific reason, but I think it should be safe to
leave it as-is.

Git.pm ends up overriding these variables itself anyways when calling commands.

The GIT_WORK_TREE check should use $repo->wc_path().  Git.pm's already
done all the hard work ;-)
-- 
David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help