upvote
I agree, it's a great tool with a catastrophically wrong default that silently and unpredictably catches people off-guard. I've tried using ripgrep many times but have been burnt too many times and can never trust its search to be comprehensive. It absolutely fails to find important stuff, and I can rarely predict whether the files it's going to skip intersect with my files of interest. And at this point I'm too burnt to care to pass flags to stop it from doing that. Which basically means I always run grep unless I know the number of matches beforehand and it's too large a directory to wait a few seconds for, in which case I run grep after rg fails to find it.

If it actually matched grep's contract with opt-in differences that'd be a gamechanger and actually let it become the default for people, but that ship seems to have sailed.

reply
idk if this was your issue but I’m posting this because it’s not obvious (especially the default behavior):

  rg      : Searches git tracked files
  rg -u   : Includes .gitignored files
  rg -uu  : Includes .gitignored + hidden files
  rg -uuu : Includes .gitignored + hidden + binary files
reply
Was it confirmed to be a bug?

Sometimes I forget that some of the config files I have for CI in a project are under a dot directory, and therefore ignored by rg by default, so I have to repeat the search giving the path to that config files subdirectory if I want to see the results that are under that one (or use some extra flags for rg to not ignore dot directories other than .git)

reply
Sorry I don't recall exactly but I don't think it was anything special like a hidden or binary file.

I still use it but Ive never trusted it fully since then I double check.

reply
Was the file in a .gitignore by any chance? I've got my home folder in git to keep track of dot/config files and that always catches me out. Really dislike it defaulting to that ignoring files that are ignored by git.
reply
In a repo, sure. On your own fs it feels like a footgun and every tool copies the behavior a little differently, which means you stop trusting the results and start wondering which files got skipped.
reply
> Really dislike it defaulting to that ignoring files that are ignored by git.

It's the reason I started using it. Got sick of grep returning results from node_modules etc.

reply
You started using it because it had that capability I imagine, not because it is the default. You could easily just alias a command with the right flag if the capability was opt-in.
reply
No, because it was default.

> You could easily just alias a command with the right flag if the capability was opt-in.

I tried a search to make grep ignore .gitignore because `--exclude=...` got tedious and there was ripgrep to answer my prayers.

Maintaining an alias would be more work than just `rg 'regex' .venv` (which is tab-completed after `.v`) the few times I'm looking for something in there. I like to keep my aliases clean and not have to use rg-all to turn off the setting I turned on. Like in your case, `alias rg='rg -u'`, now how do you turn it off?

reply
I had that happen too recently… Basically rg x would show nothing but grep -r x showed the lines for any x. Tried multiple times with different x, then I kept using grep -r at that time. After a few days, I started using rg again and it worked fine but now I tend to use grep -r occasionally too to make sure.
reply
Next time that happens try looking at the paths, adding a pair of -u, or running with --debug: by default rg will ignore files which are hidden (dotfiles) or excluded by ignore files (.gitignore, .ignore, …).

See https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md#a... for the details.

reply
I use "grep" to search files (it should never skip any unless I tell it to do otherwise) and "git grep" to be a programmer searching a codebase (where it should only look at code files unless I tell it to do otherwise). Two different hats.

I wouldn't want to use tools that straddle the two, unless they had a nice clear way of picking one or the other. ripgrep does have "--no-ignore", though I would prefer -a / --all (one could make their own with alias rga='rg --no-ignore')

reply
Maybe related to text encodings?

I think riggrep will not search UTF-16 files by default. I had some such issue once at least.

reply
Could have been an incorrectly inferred encoding scheme?

I ran into that with pt, and it definitely made me think I was going mad[0]. I can't fully remember if rg suffered from the same issue or not.

[0] https://github.com/monochromegane/the_platinum_searcher/issu...

reply