ggreer / the_silver_searcher

A code-searching tool similar to ack, but faster.
http://geoff.greer.fm/ag/
Apache License 2.0
26.08k stars 1.42k forks source link

svn:ignore and .cvsignore should be non-recursive #463

Open abhishekmukherg opened 10 years ago

abhishekmukherg commented 10 years ago

So I realize this probably doesn't match the data structures but it appears that svn:ignore property in svn and .cvsignore files in cvs are non-recursive. For example, assume you have the directory tree:

root/
root/com/
root/com/example/
root/com/example/Foo.java

and someone has set this property on root:

$ svn propget svn:ignore root/
*.java

This in svn parlance means that the following files will be ignored:

root/foo.java
root/bar.java

but not these files:

root/com/foo.java
root/com/bar.java

(this exists in our codebase for some reason and was added like 10 years ago so no one knows why).

So the obvious local fix is to... you know... not do that, and that's probably what i'm going to do if i can (or can't) track down why this ignore is here. However, this represents a confusing edge case for users as the tool will suddenly ignore files that the version control does not ignore.

This is running ag compiled by hand on a centos 6 box

$ ag version 0.24.0
$ git rev-parse HEAD
7b24ee5d22d8c43581c21303875723ea6b30c095
abhishekmukherg commented 10 years ago

My friend is reporting that this works correctly for him on his ag-0.24.0 compiled from the arch repo works on the same exact repository.

ggreer commented 9 years ago

Also complicating this is the fact that svn 1.8 added a global-ignore property that is recursive.