On Mon, Apr 9, 2012 at 8:14 AM, David Aguilar <davvid@xxxxxxxxx> wrote: > On Wed, Apr 4, 2012 at 12:21 PM, Tim Henigan <tim.henigan@xxxxxxxxx> wrote: >> 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... >> + $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... >> + # 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html