From: Sebastian Schuberth Date: Mon, 23 Jul 2012 06:13:51 GMT Subject: Re: [PATCH 2/5] difftool: Eliminate global variables Message-ID: <500CEB9F.4030406@gmail.com> In-Reply-To: <1343014940-16439-2-git-send-email-davvid@gmail.com> On 23.07.2012 05:42, David Aguilar wrote: > Organize the script so that it has a single main() function which > calls out to dir_diff() and file_diff() functions. This eliminates > "dir-diff"-specific variables that do not need to be calculated when > performing a regular file-diff. Funny, I just have prepared a patch along the same lines so that one can call git-difftool -h and --tool-help also outside a repository, see below. Does you patch offer the same? If so, I'll drop mine. --- git-difftool.perl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/git-difftool.perl b/git-difftool.perl index ae1e052..e7b71c9 100755 --- a/git-difftool.perl +++ b/git-difftool.perl @@ -25,8 +25,9 @@ use Git; my @tools; my @working_tree; my $rc; -my $repo = Git->repository(); -my $repo_path = $repo->repo_path(); +my $repo; +my $repo_path; +my $workdir; sub usage { @@ -62,8 +63,6 @@ sub find_worktree return $worktree; } -my $workdir = find_worktree(); - sub filter_tool_scripts { if (-d $_) { @@ -293,6 +292,11 @@ if (defined($help)) { if (defined($tool_help)) { print_tool_help(); } + +$repo = Git->repository(); +$repo_path = $repo->repo_path(); +$workdir = find_worktree(); + if (defined($difftool_cmd)) { if (length($difftool_cmd) > 0) { $ENV{GIT_DIFF_TOOL} = $difftool_cmd; -- 1.7.11.msysgit.2