summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-05-2912.1.112.1.1Andrew Gallant
2020-05-29changelog: 12.1.1Andrew Gallant
2020-05-29doc: small release checklist updatesAndrew Gallant
In particular, explicitly note when to update the CHANGELOG. Also, tweak the ripgrep introductory message.
2020-05-29core: update minimal dependency versionsAndrew Gallant
2020-05-29grep-0.2.7grep-0.2.7Andrew Gallant
2020-05-29grep: update minimal dependency versionsAndrew Gallant
2020-05-29grep-cli-0.1.5grep-cli-0.1.5Andrew Gallant
2020-05-29ignore-0.4.16ignore-0.4.16Andrew Gallant
2020-05-29deps: update all dependenciesAndrew Gallant
2020-05-24ignore/doc: update misleading documentationAndy Salerno
This likely originated from a bad copy/paste. PR #1596
2020-05-21doc: clarify capture group indicesAndrew Gallant
And in particular, note the special $0 index, which corresponds to the entire match. Fixes #1591
2020-05-18ignore/types: add meson filetypeGerion Entrup
Closes #1586, PR #1587
2020-05-13doc: fix egregious markup outputAndrew Gallant
We use '+++' syntax to output a literal '**' for a '--glob' example. This '+++' syntax is pretty ugly when rendered literally via --help. We fix this by hackily inserting the '+++' syntax for its one specific case that we need it during man page generation. Not ideal but it works. And --help still has some '*foo*' markup, but we live with that for now. Fixes #1581
2020-05-09doc: more release checklist updatesAndrew Gallant
2020-05-09pkg: update brew tap to version 12.1.0Andrew Gallant
This also removes Fish shell completions. See #1577 for more details.
2020-05-09changelog: 12.1.0Andrew Gallant
2020-05-0912.1.012.1.0Andrew Gallant
2020-05-09doc: add more detail to release checklistAndrew Gallant
Getting the crate order right is important, so document it.
2020-05-09deps: update minimal versions for dependenciesAndrew Gallant
2020-05-09grep-0.2.6grep-0.2.6Andrew Gallant
2020-05-09grep: update minimal dependency versionsAndrew Gallant
2020-05-09grep-printer-0.1.5grep-printer-0.1.5Andrew Gallant
2020-05-09grep-regex-0.1.8grep-regex-0.1.8Andrew Gallant
2020-05-09ignore-0.4.15ignore-0.4.15Andrew Gallant
2020-05-09doc: add 'cargo outdated' step to release checklistAndrew Gallant
It's just good sense to make sure everything is updated if possible.
2020-05-09deps: update to base64 0.12Andrew Gallant
No code changes were necessary.
2020-05-09deps: update all dependenciesAndrew Gallant
Everything looks pretty minor.
2020-05-08changelog: add #1550 to CHANGELOGAndrew Gallant
2020-05-08doc: add a release checklistAndrew Gallant
The steps are numerous, subtle and complex enough that it's worth writing them down. In particular, getting the order correct is important. (i.e., If we released to crates.io first and the GitHub release infrastructure failed, then we'd be in a pickle.)
2020-05-08changelog: add downstream noticesAndrew Gallant
2020-05-08doc: use asciidoctor instead of a2xChayoung You
AsciiDoc development is continued under asciidoctor. See https://github.com/asciidoc/asciidoc. We do however fallback to a2x if asciidoctor is not present. This is to ease migration, but at some point, it's likely that support for a2x will be dropped. Originally reported downstream: https://github.com/Homebrew/linuxbrew-core/issues/19885 Closes #1544
2020-05-08ignore: allow filtering with predicateCasey Rodarmor
Adds `WalkBuilder::filter_entry` that takes a predicate to be applied to all entries. If the predicate returns `false` on a given entry, that entry and all children will be skipped. Fixes #1555, Closes #1557
2020-05-08grep-cli: support files compressed by compress(1)Wieland Hoffmann
While Linux distributions (at least Arch Linux, RHEL, Debian) do not support compressing files with compress(1), macOS & AIX do (the utility is part of POSIX). Additionally, gzip is able to uncompress such compressed files and provides an `uncompress` binary. Closes #1547
2020-05-08doc: shorten -h/--help preludeAndrew Gallant
It has grown quite long. It would be nice if we could shorten this only when -h is used and keep it long for --help, but it seems clap doesn't let this happen. (It does have `about` and `long_about` options, but they don't work, even when I disable the use of the template.) The longer prelude is now only available in the man page. This addresses #189.
2020-05-08doc: add a section about --pre to the GUIDEAndrew Gallant
Fixes #1252
2020-05-08doc: add -U/--multiline to common optionsAndrew Gallant
2020-05-08cli: improve invalid UTF-8 pattern error messageAndrew Gallant
When a pattern with invalid UTF-8 is given, the error message suggests unqualified use of hex escape sequences to match arbitrary bytes. But you *also* need to disable Unicode mode. So include that in the error message. Fixes #1339
2020-05-08doc: note how to escape a '$' in --replaceAndrew Gallant
Fixes #1524
2020-05-08doc: clarify that *files* override gitignoresAndrew Gallant
This attempts to fix some mild confusion that came up as part of #1574. Specifically: https://github.com/BurntSushi/ripgrep/issues/1574#issuecomment-625780436
2020-05-08doc: add config file note for --type-{add,clear}Andrew Gallant
This clarifies that persistence is possible via a configuration file. Fixes #1571
2020-05-08snap: remove snapcraft configurationAndrew Gallant
This hasn't been updated in ages and it's not clear what purpose it's serving.
2020-05-08printer: fix --count-matches outputAndrew Gallant
In order to implement --count-matches, we simply re-execute the regex on the spans reported by the searcher. The spans always correspond to the lines that participated in the match. This is the correct thing to do, except when the regex contains look-ahead (or look-behind). In particular, the look-around permits the regex's match success to depends on an arbitrary point before or after the lines actually reported as participating in the match. Since only the matched lines are reported to the printer, it is possible for subsequent searching on those lines to fail. A true fix for this would somehow make the total span available to the printer. But that seems tricky since it isn't always available. For PCRE2's case in multiline mode, it is available because we force it to be so for correctness. For now, we simply detect this corner case heuristically. If the match count is zero, then it necessarily means there is some kind of look-around that isn't matching. So we set the match count to 1. This is probably incorrect in some cases, although my brain can't quite come up with a concrete example. Nevertheless, this is strictly better than the status quo. Fixes #1573
2020-04-23tests: add new regression test for fixed inner literal bugAndrew Gallant
This adds a new test case for a bug (#1537) that has already been fixed. Or more precisely, a new bug with the same root cause. Closes #1559
2020-04-18deps: small dependency updatesAndrew Gallant
2020-04-18crates/ignore: switch to depth first traversalAndrew Gallant
This replaces the use of channels in the parallel directory traversal with a simple stack. The primary motivation for this change is to reduce peak memory usage. In particular, when using a channel (which is a queue), we wind up visiting files in a breadth first fashion. Using a stack switches us to a depth first traversal. While there are no real intrinsic differences, depth first traversal generally tends to use less memory because directory trees are more commonly wide than they are deep. In particular, the queue/stack size itself is not the only concern. In one recent case documented in #1550, a user wanted to search all Rust crates. The directory structure was shallow but extremely wide, with a single directory containing all crates. This in turn results is in descending into each of those directories and building a gitignore matcher for each (since most crates have `.gitignore` files) before ever searching a single file. This means that ripgrep has all such matchers in memory simultaneously, which winds up using quite a bit of memory. In a depth first traversal, peak memory usage is much lower because gitignore matches are built and discarded more quickly. In the case of searching all crates, the peak memory usage decrease is dramatic. On my system, it shrinks by an order magnitude, from almost 1GB to 50MB. The decline in peak memory usage is consistent across other use cases as well, but is typically more modest. For example, searching the Linux repo has a 50% decrease in peak memory usage and searching the Chromium repo has a 25% decrease in peak memory usage. Search times generally remain unchanged, although some ad hoc benchmarks that I typically run have gotten a bit slower. As far as I can tell, this appears to be result of scheduling changes. Namely, the depth first traversal seems to result in searching some very large files towards the end of the search, which reduces the effectiveness of parallelism and makes the overall search take longer. This seems to suggest that a stack isn't optimal. It would instead perhaps be better to prioritize searching larger files first, but it's not quite clear how to do this without introducing more overhead (getting the file size for each file requires a stat call). Fixes #1550
2020-04-16readme: fix ordering of benchmarksAndrew Gallant
Results remain the same. I just didn't order them correctly.
2020-04-14github: add necessary metadataAndrew Gallant
2020-04-14github: switch to new issue template formatAndrew Gallant
And also point folks toward Discussions.
2020-04-13doc: fix newline escapeAndrew Gallant
Fixes #1551
2020-04-07pkg: fix brew tap versionSimon Robin
It wasn't updated after the 12.0.1 release, even though the SHA values were. PR #1545