ignore: fix filtering searching subdir or .ignore in parent dir#2933
ignore: fix filtering searching subdir or .ignore in parent dir#2933WalterScottYoung wants to merge 1 commit intoBurntSushi:masterfrom
Conversation
The previous code deleted too many parts of the path when constructing the absolute path, resulting in a shortened final path. This patch creates the correct absolute path by only removing the necessary parts. Fixes BurntSushi#2836
76df916 to
431ab25
Compare
|
One thing to notice is that commit cad1f5f didn't seems to fully fix #1757, the test in issue 1757 will fail if we add one more directory in the path. I don't know if we should reopen 1757 or something like that to note others about this? The following test from 1757 with "onemore" directory will fail before this fix. mkdir tmp
cd tmp
mkdir rust
mkdir -p rust/target/onemore
echo needle > rust/source.rs
echo needle > rust/target/onemore/rustdoc-output.html
echo rust/target/onemore > .ignore
rg --files-with-matches needle
rg --files-with-matches needle rust
echo target >> .ignore
rg --files-with-matches needle rust |
This comment was marked as duplicate.
This comment was marked as duplicate.
|
I can confirm this fixes some bugs I was about to report where some files listed in gitignore glob rules were not excluded depending on the directory that |
|
This PR also fixes #2778. |
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
Due to an issue with ripgrep, using the **/.husky/_/ pattern will not work. Instead, a _/ pattern can be used in the meantime, since who would reasonably name a folder _? Fixing PR: BurntSushi/ripgrep#2933
Due to an issue with ripgrep, using the **/.husky/_/ pattern will not work. Instead, a _/ pattern can be used in the meantime, since who would reasonably name a folder _? Fixing PR: BurntSushi/ripgrep#2933
Due to an issue with ripgrep, using the **/.husky/_/ pattern will not work. Instead, a _/ pattern can be used in the meantime, since who would reasonably name a folder _? Fixing PR: BurntSushi/ripgrep#2933
|
Great work, thank you! 👍 |
This comment was marked as duplicate.
This comment was marked as duplicate.
It's been some time and I don't really remember the detail of this, but I'm pretty sure that the original problem was cause by the path concatenation and the target file's relative depth to where ripgrep was called be positive or 0 or negative was the boardline that this bug would be triggered, so only tests for those boardline scenarios was added, since more layer of dir won't matter as the bug would be triggered in the first nested layer of dir. Thank you for your question and you can add some more tests that you think is valuable :-) |
The previous code deleted too many parts of the path when constructing the absolute path, resulting in a shortened final path. This patch creates the correct absolute path by only removing the necessary parts. Fixes #829, Fixes #2731, Fixes #2747, Fixes #2778, Fixes #2836, Fixes #2933, Fixes #3144 Closes #2933
⚠️ **CAUTION: this is a major update, indicating a breaking change!**⚠️ This MR contains the following updates: | Package | Update | Change | |---|---|---| | [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) | major | `14.1.1` -> `15.0.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>BurntSushi/ripgrep (BurntSushi/ripgrep)</summary> ### [`v15.0.0`](https://github.com/BurntSushi/ripgrep/blob/HEAD/CHANGELOG.md#1500-2025-10-15) [Compare Source](BurntSushi/ripgrep@14.1.1...15.0.0) \=================== ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes, some minor performance improvements and minor new features. Here are some highlights: - Several bugs around gitignore matching have been fixed. This includes a commonly reported bug related to applying gitignore rules from parent directories. - A memory usage regression when handling very large gitignore files has been fixed. - `rg -vf file`, where `file` is empty, now matches everything. - The `-r/--replace` flag now works with `--json`. - A subset of Jujutsu (`jj`) repositories are now treated as if they were git repositories. That is, ripgrep will respect `jj`'s gitignores. - Globs can now use nested curly braces. Platform support: - `aarch64` for Windows now has release artifacts. - `powerpc64` no longer has release artifacts generated for it. The CI release workflow stopped working, and I didn't deem it worth my time to debug it. If someone wants this and can test it, I'd be happy to add it back. - ripgrep binaries are now compiled with full LTO enabled. You may notice small performance improvements from this and a modest decrease in binary size. Performance improvements: - [PERF #​2111](BurntSushi/ripgrep#2111): Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used. - [PERF #​2865](BurntSushi/ripgrep#2865): Avoid using path canonicalization on Windows when emitting hyperlinks. - [PERF #​3184](BurntSushi/ripgrep#3184): Improve performance of large values with `-A/--after-context`. Bug fixes: - [BUG #​829](BurntSushi/ripgrep#829), [BUG #​2731](BurntSushi/ripgrep#2731), [BUG #​2747](BurntSushi/ripgrep#2747), [BUG #​2770](BurntSushi/ripgrep#2770), [BUG #​2778](BurntSushi/ripgrep#2778), [BUG #​2836](BurntSushi/ripgrep#2836), [BUG #​2933](BurntSushi/ripgrep#2933), [BUG #​3067](BurntSushi/ripgrep#3067): Fix bug related to gitignores from parent directories. - [BUG #​1332](BurntSushi/ripgrep#1332), [BUG #​3001](BurntSushi/ripgrep#3001): Make `rg -vf file` where `file` is empty match everything. - [BUG #​2177](BurntSushi/ripgrep#2177): Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files). - [BUG #​2750](BurntSushi/ripgrep#2750): Fix memory usage regression for some truly large gitignore files. - [BUG #​2944](BurntSushi/ripgrep#2944): Fix a bug where the "bytes searched" in `--stats` output could be incorrect. - [BUG #​2990](BurntSushi/ripgrep#2990): Fix a bug where ripgrep would mishandle globs that ended with a `.`. - [BUG #​2094](BurntSushi/ripgrep#2094), [BUG #​3076](BurntSushi/ripgrep#3076): Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches. - [BUG #​3100](BurntSushi/ripgrep#3100): Preserve line terminators when using `-r/--replace` flag. - [BUG #​3108](BurntSushi/ripgrep#3108): Fix a bug where `-q --files-without-match` inverted the exit code. - [BUG #​3131](BurntSushi/ripgrep#3131): Document inconsistency between `-c/--count` and `--files-with-matches`. - [BUG #​3135](BurntSushi/ripgrep#3135): Fix rare panic for some classes of large regexes on large haystacks. - [BUG #​3140](BurntSushi/ripgrep#3140): Ensure hyphens in flag names are escaped in the roff text for the man page. - [BUG #​3155](BurntSushi/ripgrep#3155): Statically compile PCRE2 into macOS release artifacts on `aarch64`. - [BUG #​3173](BurntSushi/ripgrep#3173): Fix ancestor ignore filter bug when searching whitelisted hidden files. - [BUG #​3178](BurntSushi/ripgrep#3178): Fix bug causing incorrect summary statistics with `--json` flag. - [BUG #​3179](BurntSushi/ripgrep#3179): Fix gitignore bug when searching absolute paths with global gitignores. - [BUG #​3180](BurntSushi/ripgrep#3180): Fix a panicking bug when using `-U/--multiline` and `-r/--replace`. Feature enhancements: - Many enhancements to the default set of file types available for filtering. - [FEATURE #​1872](BurntSushi/ripgrep#1872): Make `-r/--replace` work with `--json`. - [FEATURE #​2708](BurntSushi/ripgrep#2708): Completions for the fish shell take ripgrep's config file into account. - [FEATURE #​2841](BurntSushi/ripgrep#2841): Add `italic` to the list of available style attributes in `--color`. - [FEATURE #​2842](BurntSushi/ripgrep#2842): Directories containing `.jj` are now treated as git repositories. - [FEATURE #​2849](BurntSushi/ripgrep#2849): When using multithreading, schedule files to search in order given on CLI. - [FEATURE #​2943](BurntSushi/ripgrep#2943): Add `aarch64` release artifacts for Windows. - [FEATURE #​3024](BurntSushi/ripgrep#3024): Add `highlight` color type, for styling non-matching text in a matching line. - [FEATURE #​3048](BurntSushi/ripgrep#3048): Globs in ripgrep (and the `globset` crate) now support nested alternates. - [FEATURE #​3096](BurntSushi/ripgrep#3096): Improve completions for `--hyperlink-format` in bash and fish. - [FEATURE #​3102](BurntSushi/ripgrep#3102): Improve completions for `--hyperlink-format` in zsh. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDguNiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OC42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
15.0.0 (2025-10-15) =================== ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes, some minor performance improvements and minor new features. Here are some highlights: * Several bugs around gitignore matching have been fixed. This includes a commonly reported bug related to applying gitignore rules from parent directories. * A memory usage regression when handling very large gitignore files has been fixed. * `rg -vf file`, where `file` is empty, now matches everything. * The `-r/--replace` flag now works with `--json`. * A subset of Jujutsu (`jj`) repositories are now treated as if they were git repositories. That is, ripgrep will respect `jj`'s gitignores. * Globs can now use nested curly braces. Platform support: * `aarch64` for Windows now has release artifacts. * `powerpc64` no longer has release artifacts generated for it. The CI release workflow stopped working, and I didn't deem it worth my time to debug it. If someone wants this and can test it, I'd be happy to add it back. * ripgrep binaries are now compiled with full LTO enabled. You may notice small performance improvements from this and a modest decrease in binary size. Performance improvements: * [PERF #2111](BurntSushi/ripgrep#2111): Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used. * [PERF #2865](BurntSushi/ripgrep#2865): Avoid using path canonicalization on Windows when emitting hyperlinks. * [PERF #3184](BurntSushi/ripgrep#3184): Improve performance of large values with `-A/--after-context`. Bug fixes: * [BUG #829](BurntSushi/ripgrep#829), [BUG #2731](BurntSushi/ripgrep#2731), [BUG #2747](BurntSushi/ripgrep#2747), [BUG #2770](BurntSushi/ripgrep#2770), [BUG #2778](BurntSushi/ripgrep#2778), [BUG #2836](BurntSushi/ripgrep#2836), [BUG #2933](BurntSushi/ripgrep#2933), [BUG #3067](BurntSushi/ripgrep#3067): Fix bug related to gitignores from parent directories. * [BUG #1332](BurntSushi/ripgrep#1332), [BUG #3001](BurntSushi/ripgrep#3001): Make `rg -vf file` where `file` is empty match everything. * [BUG #2177](BurntSushi/ripgrep#2177): Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files). * [BUG #2750](BurntSushi/ripgrep#2750): Fix memory usage regression for some truly large gitignore files. * [BUG #2944](BurntSushi/ripgrep#2944): Fix a bug where the "bytes searched" in `--stats` output could be incorrect. * [BUG #2990](BurntSushi/ripgrep#2990): Fix a bug where ripgrep would mishandle globs that ended with a `.`. * [BUG #2094](BurntSushi/ripgrep#2094), [BUG #3076](BurntSushi/ripgrep#3076): Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches. * [BUG #3100](BurntSushi/ripgrep#3100): Preserve line terminators when using `-r/--replace` flag. * [BUG #3108](BurntSushi/ripgrep#3108): Fix a bug where `-q --files-without-match` inverted the exit code. * [BUG #3131](BurntSushi/ripgrep#3131): Document inconsistency between `-c/--count` and `--files-with-matches`. * [BUG #3135](BurntSushi/ripgrep#3135): Fix rare panic for some classes of large regexes on large haystacks. * [BUG #3140](BurntSushi/ripgrep#3140): Ensure hyphens in flag names are escaped in the roff text for the man page. * [BUG #3155](BurntSushi/ripgrep#3155): Statically compile PCRE2 into macOS release artifacts on `aarch64`. * [BUG #3173](BurntSushi/ripgrep#3173): Fix ancestor ignore filter bug when searching whitelisted hidden files. * [BUG #3178](BurntSushi/ripgrep#3178): Fix bug causing incorrect summary statistics with `--json` flag. * [BUG #3179](BurntSushi/ripgrep#3179): Fix gitignore bug when searching absolute paths with global gitignores. * [BUG #3180](BurntSushi/ripgrep#3180): Fix a panicking bug when using `-U/--multiline` and `-r/--replace`. Feature enhancements: * Many enhancements to the default set of file types available for filtering. * [FEATURE #1872](BurntSushi/ripgrep#1872): Make `-r/--replace` work with `--json`. * [FEATURE #2708](BurntSushi/ripgrep#2708): Completions for the fish shell take ripgrep's config file into account. * [FEATURE #2841](BurntSushi/ripgrep#2841): Add `italic` to the list of available style attributes in `--color`. * [FEATURE #2842](BurntSushi/ripgrep#2842): Directories containing `.jj` are now treated as git repositories. * [FEATURE #2849](BurntSushi/ripgrep#2849): When using multithreading, schedule files to search in order given on CLI. * [FEATURE #2943](BurntSushi/ripgrep#2943): Add `aarch64` release artifacts for Windows. * [FEATURE #3024](BurntSushi/ripgrep#3024): Add `highlight` color type, for styling non-matching text in a matching line. * [FEATURE #3048](BurntSushi/ripgrep#3048): Globs in ripgrep (and the `globset` crate) now support nested alternates. * [FEATURE #3096](BurntSushi/ripgrep#3096): Improve completions for `--hyperlink-format` in bash and fish. * [FEATURE #3102](BurntSushi/ripgrep#3102): Improve completions for `--hyperlink-format` in zsh.
15.0.0 (2025-10-15) =================== ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes, some minor performance improvements and minor new features. Here are some highlights: * Several bugs around gitignore matching have been fixed. This includes a commonly reported bug related to applying gitignore rules from parent directories. * A memory usage regression when handling very large gitignore files has been fixed. * `rg -vf file`, where `file` is empty, now matches everything. * The `-r/--replace` flag now works with `--json`. * A subset of Jujutsu (`jj`) repositories are now treated as if they were git repositories. That is, ripgrep will respect `jj`'s gitignores. * Globs can now use nested curly braces. Platform support: * `aarch64` for Windows now has release artifacts. * `powerpc64` no longer has release artifacts generated for it. The CI release workflow stopped working, and I didn't deem it worth my time to debug it. If someone wants this and can test it, I'd be happy to add it back. * ripgrep binaries are now compiled with full LTO enabled. You may notice small performance improvements from this and a modest decrease in binary size. Performance improvements: * [PERF #2111](BurntSushi/ripgrep#2111): Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used. * [PERF #2865](BurntSushi/ripgrep#2865): Avoid using path canonicalization on Windows when emitting hyperlinks. * [PERF #3184](BurntSushi/ripgrep#3184): Improve performance of large values with `-A/--after-context`. Bug fixes: * [BUG #829](BurntSushi/ripgrep#829), [BUG #2731](BurntSushi/ripgrep#2731), [BUG #2747](BurntSushi/ripgrep#2747), [BUG #2770](BurntSushi/ripgrep#2770), [BUG #2778](BurntSushi/ripgrep#2778), [BUG #2836](BurntSushi/ripgrep#2836), [BUG #2933](BurntSushi/ripgrep#2933), [BUG #3067](BurntSushi/ripgrep#3067): Fix bug related to gitignores from parent directories. * [BUG #1332](BurntSushi/ripgrep#1332), [BUG #3001](BurntSushi/ripgrep#3001): Make `rg -vf file` where `file` is empty match everything. * [BUG #2177](BurntSushi/ripgrep#2177): Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files). * [BUG #2750](BurntSushi/ripgrep#2750): Fix memory usage regression for some truly large gitignore files. * [BUG #2944](BurntSushi/ripgrep#2944): Fix a bug where the "bytes searched" in `--stats` output could be incorrect. * [BUG #2990](BurntSushi/ripgrep#2990): Fix a bug where ripgrep would mishandle globs that ended with a `.`. * [BUG #2094](BurntSushi/ripgrep#2094), [BUG #3076](BurntSushi/ripgrep#3076): Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches. * [BUG #3100](BurntSushi/ripgrep#3100): Preserve line terminators when using `-r/--replace` flag. * [BUG #3108](BurntSushi/ripgrep#3108): Fix a bug where `-q --files-without-match` inverted the exit code. * [BUG #3131](BurntSushi/ripgrep#3131): Document inconsistency between `-c/--count` and `--files-with-matches`. * [BUG #3135](BurntSushi/ripgrep#3135): Fix rare panic for some classes of large regexes on large haystacks. * [BUG #3140](BurntSushi/ripgrep#3140): Ensure hyphens in flag names are escaped in the roff text for the man page. * [BUG #3155](BurntSushi/ripgrep#3155): Statically compile PCRE2 into macOS release artifacts on `aarch64`. * [BUG #3173](BurntSushi/ripgrep#3173): Fix ancestor ignore filter bug when searching whitelisted hidden files. * [BUG #3178](BurntSushi/ripgrep#3178): Fix bug causing incorrect summary statistics with `--json` flag. * [BUG #3179](BurntSushi/ripgrep#3179): Fix gitignore bug when searching absolute paths with global gitignores. * [BUG #3180](BurntSushi/ripgrep#3180): Fix a panicking bug when using `-U/--multiline` and `-r/--replace`. Feature enhancements: * Many enhancements to the default set of file types available for filtering. * [FEATURE #1872](BurntSushi/ripgrep#1872): Make `-r/--replace` work with `--json`. * [FEATURE #2708](BurntSushi/ripgrep#2708): Completions for the fish shell take ripgrep's config file into account. * [FEATURE #2841](BurntSushi/ripgrep#2841): Add `italic` to the list of available style attributes in `--color`. * [FEATURE #2842](BurntSushi/ripgrep#2842): Directories containing `.jj` are now treated as git repositories. * [FEATURE #2849](BurntSushi/ripgrep#2849): When using multithreading, schedule files to search in order given on CLI. * [FEATURE #2943](BurntSushi/ripgrep#2943): Add `aarch64` release artifacts for Windows. * [FEATURE #3024](BurntSushi/ripgrep#3024): Add `highlight` color type, for styling non-matching text in a matching line. * [FEATURE #3048](BurntSushi/ripgrep#3048): Globs in ripgrep (and the `globset` crate) now support nested alternates. * [FEATURE #3096](BurntSushi/ripgrep#3096): Improve completions for `--hyperlink-format` in bash and fish. * [FEATURE #3102](BurntSushi/ripgrep#3102): Improve completions for `--hyperlink-format` in zsh.
15.0.0 (2025-10-15) =================== ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes, some minor performance improvements and minor new features. Here are some highlights: * Several bugs around gitignore matching have been fixed. This includes a commonly reported bug related to applying gitignore rules from parent directories. * A memory usage regression when handling very large gitignore files has been fixed. * `rg -vf file`, where `file` is empty, now matches everything. * The `-r/--replace` flag now works with `--json`. * A subset of Jujutsu (`jj`) repositories are now treated as if they were git repositories. That is, ripgrep will respect `jj`'s gitignores. * Globs can now use nested curly braces. Platform support: * `aarch64` for Windows now has release artifacts. * `powerpc64` no longer has release artifacts generated for it. The CI release workflow stopped working, and I didn't deem it worth my time to debug it. If someone wants this and can test it, I'd be happy to add it back. * ripgrep binaries are now compiled with full LTO enabled. You may notice small performance improvements from this and a modest decrease in binary size. Performance improvements: * [PERF #2111](BurntSushi/ripgrep#2111): Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used. * [PERF #2865](BurntSushi/ripgrep#2865): Avoid using path canonicalization on Windows when emitting hyperlinks. * [PERF #3184](BurntSushi/ripgrep#3184): Improve performance of large values with `-A/--after-context`. Bug fixes: * [BUG #829](BurntSushi/ripgrep#829), [BUG #2731](BurntSushi/ripgrep#2731), [BUG #2747](BurntSushi/ripgrep#2747), [BUG #2770](BurntSushi/ripgrep#2770), [BUG #2778](BurntSushi/ripgrep#2778), [BUG #2836](BurntSushi/ripgrep#2836), [BUG #2933](BurntSushi/ripgrep#2933), [BUG #3067](BurntSushi/ripgrep#3067): Fix bug related to gitignores from parent directories. * [BUG #1332](BurntSushi/ripgrep#1332), [BUG #3001](BurntSushi/ripgrep#3001): Make `rg -vf file` where `file` is empty match everything. * [BUG #2177](BurntSushi/ripgrep#2177): Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files). * [BUG #2750](BurntSushi/ripgrep#2750): Fix memory usage regression for some truly large gitignore files. * [BUG #2944](BurntSushi/ripgrep#2944): Fix a bug where the "bytes searched" in `--stats` output could be incorrect. * [BUG #2990](BurntSushi/ripgrep#2990): Fix a bug where ripgrep would mishandle globs that ended with a `.`. * [BUG #2094](BurntSushi/ripgrep#2094), [BUG #3076](BurntSushi/ripgrep#3076): Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches. * [BUG #3100](BurntSushi/ripgrep#3100): Preserve line terminators when using `-r/--replace` flag. * [BUG #3108](BurntSushi/ripgrep#3108): Fix a bug where `-q --files-without-match` inverted the exit code. * [BUG #3131](BurntSushi/ripgrep#3131): Document inconsistency between `-c/--count` and `--files-with-matches`. * [BUG #3135](BurntSushi/ripgrep#3135): Fix rare panic for some classes of large regexes on large haystacks. * [BUG #3140](BurntSushi/ripgrep#3140): Ensure hyphens in flag names are escaped in the roff text for the man page. * [BUG #3155](BurntSushi/ripgrep#3155): Statically compile PCRE2 into macOS release artifacts on `aarch64`. * [BUG #3173](BurntSushi/ripgrep#3173): Fix ancestor ignore filter bug when searching whitelisted hidden files. * [BUG #3178](BurntSushi/ripgrep#3178): Fix bug causing incorrect summary statistics with `--json` flag. * [BUG #3179](BurntSushi/ripgrep#3179): Fix gitignore bug when searching absolute paths with global gitignores. * [BUG #3180](BurntSushi/ripgrep#3180): Fix a panicking bug when using `-U/--multiline` and `-r/--replace`. Feature enhancements: * Many enhancements to the default set of file types available for filtering. * [FEATURE #1872](BurntSushi/ripgrep#1872): Make `-r/--replace` work with `--json`. * [FEATURE #2708](BurntSushi/ripgrep#2708): Completions for the fish shell take ripgrep's config file into account. * [FEATURE #2841](BurntSushi/ripgrep#2841): Add `italic` to the list of available style attributes in `--color`. * [FEATURE #2842](BurntSushi/ripgrep#2842): Directories containing `.jj` are now treated as git repositories. * [FEATURE #2849](BurntSushi/ripgrep#2849): When using multithreading, schedule files to search in order given on CLI. * [FEATURE #2943](BurntSushi/ripgrep#2943): Add `aarch64` release artifacts for Windows. * [FEATURE #3024](BurntSushi/ripgrep#3024): Add `highlight` color type, for styling non-matching text in a matching line. * [FEATURE #3048](BurntSushi/ripgrep#3048): Globs in ripgrep (and the `globset` crate) now support nested alternates. * [FEATURE #3096](BurntSushi/ripgrep#3096): Improve completions for `--hyperlink-format` in bash and fish. * [FEATURE #3102](BurntSushi/ripgrep#3102): Improve completions for `--hyperlink-format` in zsh.
The previous code deleted too many parts of the path when constructing the absolute path, resulting in a shortened final path. This patch creates the correct absolute path by only removing the necessary parts.
Fixes #2836 and #2747 and #2731