Re: [PATCH 9/9 v8] difftool: print list of valid tools with '--tool-help'
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 28, 2012, 20:02 UTC
- Message-ID
- <7v4nt8v6ip.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <CAFouetjbq+A04HECXN39KeLBgkTd+HJyxeM0wSDhS2Xo=_gQVQ@mail.gmail.com>
Tim Henigan <tim.henigan@gmail.com> writes:
Show 16 quoted lines
> On Wed, Mar 28, 2012 at 2:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Tim Henigan <tim.henigan@gmail.com> writes:
>>
>> OK, but doesn't File::Find recurse into its subdirectories? If you create
>> a 'foo' directory there and drop a 'bar' script in it, is the rest of the
>> code prepared to give you "git difftool -t foo/bar"?
>
> It does recurse, but in this context '$_' only contains the current
> file name within the directory...not the directory itself [1]. So if
> we call 'find' on a directory that contains:
>
> foo
> bar/
> baz
>
> then @tools = ('foo', 'baz')That is even worse, no? Is the rest of the code prepared to give you "git difftool -t baz" in such a layout? What if you have another baz next to foo and bar?
What I was hinting at was that you may want to $File::Find::prune=1 when you find a subdirectory. While at it, you may also want to replace the "unless -d $_" with "if -f $_ && -x _" or something.