Commit Graph
38 Commits
Author SHA1 Message Date
Thorsten BallandAntonio 017b2db630 Fix case-only renaming of files (#7768)
This fixes #5211 and #7732 by fixing the case-only file renaming.

The fix here works by checking hooking into function that produces the
data to populate the project panel.

It checks whether we're on a case-insensitive file system (default on
macOS, but you can have case-sensitive FS on macOS too) and if so, it
ignores the metadata for files for which the absolute path (returned by
the FS scanner) and canonicalized path do NOT match.

That's the case for (a) symlinks and (b) case-only renames of files.

It only does this check for case-only renames.

Release Notes:

- Fixed case-only renaming of files producing duplicate entries in
project panel.
([#5211](https://github.com/zed-industries/zed/issues/5211)).

Co-authored-by: Antonio <antonio@zed.dev>
2024-02-14 16:00:31 +01:00
Piotr Osiewicz 5ab715aac9 text: Wrap BufferId into a newtype 2024-01-29 20:00:47 +01:00
Max BrunsfeldandMikayla c5a1950522 Remove 2 suffix for project
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 11:53:34 -08:00
Kirill Bulatov e5616bce98 Fix the test 2023-12-05 12:45:44 +02:00
Kirill Bulatov f0ca7141b8 Ignore excluded files on worktree entry refresh 2023-12-05 12:30:29 +02:00
Kirill Bulatov 4a060db801 Add a test 2023-11-24 11:59:13 +02:00
Kirill Bulatov 2759ed4d00 An attempt to ignore git regularly 2023-11-17 21:40:57 +02:00
Kirill Bulatov 6028cd90d4 Retract back to original scanning strategy
Do not descend into ignored directories, to avoid tracking their state.
2023-11-17 21:40:57 +02:00
Kirill Bulatov 906db58188 Defer ignored dirs scanning 2023-11-17 21:40:57 +02:00
Kirill Bulatov 30fefa0ef8 Use a better name 2023-11-17 21:40:57 +02:00
Kirill Bulatov 5f468970f0 Fix some of the old tests 2023-11-17 21:40:57 +02:00
Kirill Bulatov d3ce82e82c Fix the new test 2023-11-17 21:40:57 +02:00
Kirill Bulatov cafeba103b Exclude ignored opened buffers from search 2023-11-17 21:40:57 +02:00
Kirill Bulatov ce2cfc6035 Fix the ! bug, better test draft 2023-11-17 21:40:57 +02:00
Kirill Bulatov 26f7e66b49 Add default scan excluded files settings 2023-11-17 21:40:56 +02:00
Kirill Bulatov 126e4cce8f Scan all ignored files by default now 2023-11-17 21:40:56 +02:00
Kirill Bulatov 7d97dfa6be Test and filter data draft 2023-11-17 21:40:56 +02:00
Max Brunsfeld f798be6e27 Fix rust 1.72 warnings about shadowed glob re-exports 2023-08-25 10:25:21 -07:00
Max Brunsfeld f83514cde4 Fix regression in handling git FS events (#2670)
As part of an optimization in
https://github.com/zed-industries/zed/pull/2663, I changed the way that
the worktree ignores FS events within unloaded directories. But this
accidentally prevented us from detecting some events that occur inside
of `.git` directories.

In this PR, I've made further tweaks to which FS events we can ignore.
We now explicitly opt *in* to scanning `.git` (shallowly) directories
(even though they are ignored). Note that we still don't recursively
scan the git directory (including all of the files inside `objects`
etc). This seems like the correct amount of work to do, and from my
testing (and our unit tests that use the real FS and real git
repositories), it seems to work correctly.

Release Notes:

- Fixed a bug where Zed would not detect some git repository changes
(preview only).
2023-06-30 11:40:49 -07:00
Max Brunsfeld 92df76e632 Fix accidental ignoring of git FS events 2023-06-30 11:20:50 -07:00
Mikayla Maki a9a51ab3ad Added more tests and minimal file updates 2023-06-29 18:21:35 -07:00
Mikayla Maki 787412b545 fmt and update dependency 2023-06-29 17:49:42 -07:00
Mikayla Maki 33f5248d4f Add the ability to make new directories by adding slashes to a file name 2023-06-29 17:35:22 -07:00
Max Brunsfeld 8609ccdcf7 Add test coverage for FS events happening inside unloaded dirs 2023-06-29 11:55:25 -07:00
Max Brunsfeld 201188fdaa Use FakeFs in worktree gitignore test 2023-06-27 15:40:36 -07:00
Max BrunsfeldandNathan Sobo 91f87bb31f Scan any external/ignored directories needed for LSP watchers
Also, don't include "external" files in project searches. Treat them
the same as ignored files.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-06-23 12:53:25 -07:00
Max Brunsfeld b22a18345e Emit loaded events for lazily loaded paths in worktree 2023-06-23 09:39:37 -07:00
Max Brunsfeld ffb0a215ea Fix randomized worktree test failures
* Distinguish between unloaded and pending directories via separate entry kind.
* Scan directories before updating ignore statuses after fs events.
2023-06-22 16:52:04 -07:00
Max Brunsfeld 400e3cda32 Scan directories when they stop being ignored 2023-06-22 10:34:28 -07:00
Max Brunsfeld bfc90f4502 Add failing test for changing a gitignore so a pending dir is no longer ignored 2023-06-22 10:34:28 -07:00
Max Brunsfeld 4424dafcd7 Fix expansion of ancestor directories when refreshing a path 2023-06-22 10:34:28 -07:00
Max Brunsfeld 3e6aedfc69 Expand dirs on-demand when opening buffers inside unloaded dirs 2023-06-22 10:34:28 -07:00
Max Brunsfeld cd823ede4d Add a bit to each entry indicating if it's outside of the worktree root 2023-06-22 10:34:28 -07:00
Max Brunsfeld 1b71589514 Fix confusion between canonical vs non-canonical paths when rescanning, expanding paths 2023-06-22 10:34:28 -07:00
Max Brunsfeld 205c758e4e Wait for ignored directory to be expanded in descendant entries test 2023-06-22 10:34:28 -07:00
Max Brunsfeld f910d8fe3e Only scan ignored or externals paths if expanded in a project panel 2023-06-22 10:34:28 -07:00
Max Brunsfeld 5b6d1a27ff Flatten worktree tests module structure 2023-06-13 10:31:29 -07:00
Max Brunsfeld c17dbab6f1 Move worktree tests to their own file 2023-06-13 10:22:14 -07:00