Do less git metadata rescans on FS events (#24034)
A preparation for collaborative commit message editing. Before, almost any `.git`-contained file FS update, except `.git/fsmonitor--daemon/cookies/**` caused git metadata rescan. This included `index.lock` that was created after any git operation, e.g. `git status`, which was unnecessary. Collaborative editing aims to share `.git/COMMIT_EDITMSG` between multiple users, so there are potentially multiple users editing the file and causing excessive events. The change makes worktree to ignore .git/COMMIT_EDITMSG`, `.git/index.lock` and `.git/fsmonitor--daemon/**` paths and adjusts the logic to be more extensible: there's much more files Zed can ignore and still have its git metadata up to date. Release Notes: - N/A
This commit is contained in:
parent
0c94bdc8e4
commit
e42b6e6905
3 changed files with 27 additions and 30 deletions
|
@ -20,10 +20,12 @@ pub use git2 as libgit;
|
|||
pub use repository::WORK_DIRECTORY_REPO_PATH;
|
||||
|
||||
pub static DOT_GIT: LazyLock<&'static OsStr> = LazyLock::new(|| OsStr::new(".git"));
|
||||
pub static COOKIES: LazyLock<&'static OsStr> = LazyLock::new(|| OsStr::new("cookies"));
|
||||
pub static GITIGNORE: LazyLock<&'static OsStr> = LazyLock::new(|| OsStr::new(".gitignore"));
|
||||
pub static FSMONITOR_DAEMON: LazyLock<&'static OsStr> =
|
||||
LazyLock::new(|| OsStr::new("fsmonitor--daemon"));
|
||||
pub static GITIGNORE: LazyLock<&'static OsStr> = LazyLock::new(|| OsStr::new(".gitignore"));
|
||||
pub static COMMIT_MESSAGE: LazyLock<&'static OsStr> =
|
||||
LazyLock::new(|| OsStr::new("COMMIT_EDITMSG"));
|
||||
pub static INDEX_LOCK: LazyLock<&'static OsStr> = LazyLock::new(|| OsStr::new("index.lock"));
|
||||
|
||||
actions!(
|
||||
git,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue