1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2024-12-12 19:18:24 +02:00
ripgrep/CHANGELOG.md
2016-12-07 10:58:31 -05:00

14 KiB

0.3.2

Feature enhancements:

  • Added or improved file type filtering for Less, Sass, stylus, Zsh

Bug fixes:

  • BUG #229: Make smart case slightly less conservative.
  • BUG #247: Clarify use of --heading/--no-heading.
  • BUG #251, BUG #264, BUG #267: Fix matching bug caused by literal optimizations.
  • BUG #256: Fix bug that caused rg foo and rg foo/ to have different behavior when foo was a symlink.
  • BUG #270: Fix bug where patterns starting with a - couldn't be used with the -e/--regexp flag. (This resolves a regression that was introduced in ripgrep 0.3.0.)

0.3.1

Bug fixes:

  • BUG #242: ripgrep didn't respect --colors foo:none correctly. Now it does.

0.3.0

This is a new minor version release of ripgrep that includes two breaking changes with lots of bug fixes and some new features and performance improvements. Notably, if you had a problem with colors or piping on Windows before, then that should now be fixed in this release.

BREAKING CHANGES:

  • ripgrep now requires Rust 1.11 to compile. Previously, it could build on Rust 1.9. The cause of this was the move from Docopt to Clap for argument parsing.
  • The -e/--regexp flag can no longer accept a pattern starting with a -. There are two work-arounds: rg -- -foo and rg [-]foo or rg -e [-]foo will all search for the same -foo pattern. The cause of this was the move from Docopt to Clap for argument parsing. This may get fixed in the future..

Performance improvements:

  • PERF #33: ripgrep now performs similar to GNU grep on small corpora.
  • PERF #136: ripgrep no longer slows down because of argument parsing when given a large argument list.

Feature enhancements:

  • Added or improved file type filtering for Elixir.
  • FEATURE #7: Add a -f/--file flag that causes ripgrep to read patterns from a file.
  • FEATURE #51: Add a --colors flag that enables one to customize the colors used in ripgrep's output.
  • FEATURE #138: Add a --files-without-match flag that shows only file paths that contain zero matches.
  • FEATURE #230: Add completion files to the release (Bash, Fish and PowerShell).

Bug fixes:

  • BUG #37: Use correct ANSI escape sequences when TERM=screen.linux.
  • BUG #94: ripgrep now detects stdin on Windows automatically.
  • BUG #117: Colors should now work correctly and automatically inside mintty.
  • BUG #182: Colors should now work within Emacs. In particular, --color=always will emit colors regardless of the current environment.
  • BUG #189: Show less content when running rg -h. The full help content can be accessed with rg --help.
  • BUG #210: Support non-UTF-8 file names on Unix platforms.
  • BUG #231: Switch from block buffering to line buffering.
  • BUG #241: Some error messages weren't suppressed when --no-messages was used.

0.2.9

Bug fixes:

  • BUG #226: File paths explicitly given on the command line weren't searched in parallel. (This was a regression in 0.2.7.)
  • BUG #228: If a directory was given to --ignore-file, ripgrep's memory usage would grow without bound.

0.2.8

Bug fixes:

  • Fixed a bug with the SIMD/AVX features for using bytecount in commit 4ca15a.

0.2.7

Performance improvements:

  • PERF #223: Added a parallel recursive directory iterator. This results in major performance improvements on large repositories.
  • PERF #11: ripgrep now uses the bytecount library for counting new lines. In some cases, ripgrep runs twice as fast. Use RUSTFLAGS="-C target-cpu=native" cargo build --release --features 'simd-accel avx-accel' to get the fastest possible binary.

Feature enhancements:

  • Added or improved file type filtering for Agda, Tex, Taskpaper, Markdown, asciidoc, textile, rdoc, org, creole, wiki, pod, C#, PDF, C, C++.
  • FEATURE #149: Add a new --no-messages flag that suppresses error messages. Note that rg foo 2> /dev/null also works.
  • FEATURE #159: Add a new -m/--max-count flag that limits the total number of matches printed for each file searched.

Bug fixes:

  • BUG #199: Fixed a bug where -S/--smart-case wasn't being applied correctly to literal optimizations.
  • BUG #203: Mention the full name, ripgrep, in more places. It now appears in the output of --help and --version. The repository URL is now also in the output of --help and the man page.
  • BUG #215: Include small note about how to search for a pattern that starts with a -.

0.2.6

Feature enhancements:

  • Added or improved file type filtering for Fish.

Bug fixes:

  • BUG #206: Fixed a regression with -g/--glob flag in 0.2.5.

0.2.5

Feature enhancements:

  • Added or improved file type filtering for Groovy, Handlebars, Tcl, zsh and Python.
  • FEATURE #9: Support global gitignore config and .git/info/exclude files.
  • FEATURE #45: Add --ignore-file flag for specifying additional ignore files.
  • FEATURE #202: Introduce a new ignore crate that encapsulates all of ripgrep's gitignore matching logic.

Bug fixes:

  • BUG #44: ripgrep runs slowly when given lots of positional arguments that are directories.
  • BUG #119: ripgrep didn't reset terminal colors if it was interrupted by ^C. Fixed in PR #187.
  • BUG #184: Fixed a bug related to interpreting gitignore files in parent directories.

0.2.4

SKIPPED.

0.2.3

Bug fixes:

  • BUG #164: Fixes a segfault on macos builds.
  • BUG #167: Clarify documentation for --threads.

0.2.2

Packaging updates:

  • ripgrep is now in homebrew-core. brew install ripgrep will do the trick on a Mac.
  • ripgrep is now in the Archlinux community repository. pacman -S ripgrep will do the trick on Archlinux.
  • Support has been discontinued for i686-darwin.
  • Glob matching has been moved out into its own crate: globset.

Feature enhancements:

  • Added or improved file type filtering for CMake, config, Jinja, Markdown, Spark.
  • FEATURE #109: Add a --max-depth flag for directory traversal.
  • FEATURE #124: Add -s/--case-sensitive flag. Overrides --smart-case.
  • FEATURE #139: The ripgrep repo is now a Homebrew tap. This is useful for installing SIMD accelerated binaries, which aren't available in homebrew-core.

Bug fixes:

  • BUG #87, BUG #127, BUG #131: Various issues related to glob matching.
  • BUG #116: --quiet should stop search after first match.
  • BUG #121: --color always should show colors, even when --vimgrep is used.
  • BUG #122: Colorize file path at beginning of line.
  • BUG #134: Processing a large ignore file (thousands of globs) was very slow.
  • BUG #137: Always follow symlinks when given as an explicit argument.
  • BUG #147: Clarify documentation for --replace.

0.2.1

Feature enhancements:

  • Added or improved file type filtering for Clojure and SystemVerilog.
  • FEATURE #89: Add a --null flag that outputs a NUL byte after every file path.

Bug fixes:

  • BUG #98: Fix a bug in single threaded mode when if opening a file failed, ripgrep quit instead of continuing the search.
  • BUG #99: Fix another bug in single threaded mode where empty lines were being printed by mistake.
  • BUG #105: Fix an off-by-one error with --column.
  • BUG #106: Fix a bug where a whitespace only line in a gitignore file caused ripgrep to panic (i.e., crash).

0.2.0

Feature enhancements:

  • Added or improved file type filtering for VB, R, F#, Swift, Nim, Javascript, TypeScript
  • FEATURE #20: Adds a --no-filename flag.
  • FEATURE #26: Adds --files-with-matches flag. Like --count, but only prints file paths and doesn't need to count every match.
  • FEATURE #40: Switch from using .rgignore to .ignore. Note that .rgignore is still supported, but deprecated.
  • FEATURE #68: Add --no-ignore-vcs flag that ignores .gitignore but not .ignore.
  • FEATURE #70: Add -S/--smart-case flag (but is disabled by default).
  • FEATURE #80: Add support for {foo,bar} globs.

Many many bug fixes. Thanks every for reporting these and helping make ripgrep better! (Note that I haven't captured every tracking issue here, some were closed as duplicates.)

  • BUG #8: Don't use an intermediate buffer when --threads=1. (Permits constant memory usage.)
  • BUG #15: Improves the documentation for --type-add.
  • BUG #16, BUG #49, BUG #50, BUG #65: Some gitignore globs were being treated as anchored when they weren't.
  • BUG #18: --vimgrep reported incorrect column number.
  • BUG #19: ripgrep was hanging waiting on stdin in some Windows terminals. Note that this introduced a new bug: #94.
  • BUG #21: Removes leading ./ when printing file paths.
  • BUG #22: Running rg --help | echo caused rg to panic.
  • BUG #24: Clarify the central purpose of rg in its usage message.
  • BUG #25: Anchored gitignore globs weren't applied in subdirectories correctly.
  • BUG #30: Globs like foo/** should match contents of foo, but not foo itself.
  • BUG #35, BUG #81: When automatically detecting stdin, only read if it's a file or a fifo. i.e., ignore stdin in rg foo < /dev/null.
  • BUG #36: Don't automatically pick memory maps on MacOS. Ever.
  • BUG #38: Trailing whitespace in gitignore wasn't being ignored.
  • BUG #43: --glob didn't work with directories.
  • BUG #46: Use one fewer worker thread than what is provided on CLI.
  • BUG #47: --help/--version now work even if other options are set.
  • BUG #55: ripgrep was refusing to search /proc/cpuinfo. Fixed by disabling memory maps for files with zero size.
  • BUG #64: The first path given with --files set was ignored.
  • BUG #67: Sometimes whitelist globs like !/dir weren't interpreted as anchored.
  • BUG #77: When -q/--quiet flag was passed, ripgrep kept searching even after a match was found.
  • BUG #90: Permit whitelisting hidden files.
  • BUG #93: ripgrep was extracting an erroneous inner literal from a repeated pattern.