Re: ag, **, and the GPL
On Wed, 2014-11-19 at 07:48 +0700, Duy Nguyen wrote:
Show 25 quoted lines
> On Wed, Nov 19, 2014 at 12:57 AM, David Turner <dturner@twopensource.com> wrote:
> > On Mon, 2014-11-17 at 20:50 -0800, Matthew Kaniaris wrote:
> >> The Silver Search (https://github.com/ggreer/the_silver_searcher), is
> >> a small, open source, cross platform searching utility written as a
> >> replacement for ack. One of the major benefits of Ag (and a source
> >> for much of its speed) is that it obeys .gitignore. However, Ag
> >> currently treats gitignores as regexs which produces incorrect results
> >> for e.g. **. I'd like to add support to ag to obey the .gitignore
> >> spec but I'm not keen on implementing yet another fnmatch clone. Ag
> >> is licensed under the Apache License Version 2.0 which to the best of
> >> my understanding is incompatible with the GPLv2. Would you grant me
> >> permission to reuse wildmatch.c (and necessary includes) for use in
> >> Ag?
> >
> > I already implemented this without using any git code at
> > https://github.com/novalis/the_silver_searcher. The patch was rejected
> > because it slowed down ag slightly (or perhaps because it was overly
> > complex).
>
> Interesting. Do you have a direct link to that discussion (I don't
> know how to navigate that novalis link). Generally you (or ag) should
> avoid fnmatch/wildmatch whenever possible. Hitting those *match()
> _will_ slow things down (and git tries hard to avoid it). I had some
> optimizations on top of rsync wildmatch to handle "*" case better, but
> I don't think it'll make big difference in practice.
I did sort of a massive pull request here: https://github.com/ggreer/the_silver_searcher/pull/222 Here's the main commit: https://github.com/novalis/the_silver_searcher/commit/50d125647d7b91af08ad43b4b1b977b7e23e0cfa
I think there as more discussion on some of the other tickets, but it was over a year ago so I don't recall the details.
Really the thing that ag needs is (a) indexing and (b) to be hooked up to watchman to update the index.