diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index 56948cceb8..5b7a466b0a 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -54,7 +54,7 @@ jobs: - 'crates/gitbutler-cli/**' gitbutler-watcher: - *rust - - 'crates/gitbutler-cli/**' + - 'crates/gitbutler-watcher/**' lint-node: needs: changes @@ -228,7 +228,7 @@ jobs: - uses: ./.github/actions/init-env-rust - uses: ./.github/actions/check-crate with: - crate: gitbutler-watcher + crate: gitbutler-notify-debouncer features: ${{ toJson(matrix.features) }} action: ${{ matrix.action }} diff --git a/Cargo.lock b/Cargo.lock index 73cea1430a..1f51d723fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2177,6 +2177,24 @@ dependencies = [ "windows-named-pipe", ] +[[package]] +name = "gitbutler-notify-debouncer" +version = "0.0.0" +dependencies = [ + "crossbeam-channel", + "deser-hjson", + "file-id", + "gitbutler-notify-debouncer", + "mock_instant", + "notify", + "parking_lot 0.12.3", + "pretty_assertions", + "rstest", + "serde", + "tracing", + "walkdir", +] + [[package]] name = "gitbutler-tauri" version = "0.0.0" @@ -2232,26 +2250,15 @@ version = "0.0.0" dependencies = [ "anyhow", "backoff", - "crossbeam-channel", - "deser-hjson", - "file-id", "futures", "gitbutler-core", - "gitbutler-watcher", + "gitbutler-notify-debouncer", "gix", - "itertools 0.13.0", - "mock_instant", "notify", - "parking_lot 0.12.3", - "pretty_assertions", - "rand 0.8.5", - "rstest", - "serde", "thiserror", "tokio", "tokio-util", "tracing", - "walkdir", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index eccda7ef5f..b8181394b6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ members = [ "crates/gitbutler-tauri", "crates/gitbutler-git", "crates/gitbutler-watcher", + "crates/gitbutler-watcher/vendor/debouncer", "crates/gitbutler-testsupport", "crates/gitbutler-cli", ] diff --git a/crates/gitbutler-watcher/Cargo.toml b/crates/gitbutler-watcher/Cargo.toml index 2000653939..785840d22e 100644 --- a/crates/gitbutler-watcher/Cargo.toml +++ b/crates/gitbutler-watcher/Cargo.toml @@ -5,11 +5,9 @@ edition = "2021" publish = false [lib] +test = false doctest = false -[features] -mock_instant = ["dep:mock_instant"] - [dependencies] gitbutler-core.workspace = true thiserror.workspace = true @@ -22,21 +20,7 @@ gix = { workspace = true, features = ["excludes"] } backoff = "0.4.0" notify = { version = "6.0.1" } -parking_lot = "0.12.3" -file-id = "0.2.1" -walkdir = "2.2.2" -crossbeam-channel = "0.5.13" -itertools = "0.13" - -mock_instant = { version = "0.3.2", optional = true } - -[dev-dependencies] -gitbutler-watcher = { path = ".", features = ["mock_instant"] } -pretty_assertions = "1.3.0" -rstest = "0.20" -serde = { version = "1.0.203", features = ["derive"] } -deser-hjson = "1.1.1" -rand = "0.8.5" +gitbutler-notify-debouncer.path = "vendor/debouncer" [lints.clippy] all = "deny" diff --git a/crates/gitbutler-watcher/src/file_monitor.rs b/crates/gitbutler-watcher/src/file_monitor.rs index a1d2fd925b..b7bb17498e 100644 --- a/crates/gitbutler-watcher/src/file_monitor.rs +++ b/crates/gitbutler-watcher/src/file_monitor.rs @@ -2,12 +2,11 @@ use std::collections::HashSet; use std::path::Path; use std::time::Duration; -use crate::debouncer::Debouncer; -use crate::debouncer::FileIdMap; -use crate::{debouncer::new_debouncer, events::InternalEvent}; +use crate::events::InternalEvent; use anyhow::{anyhow, Context, Result}; use gitbutler_core::ops::OPLOG_FILE_NAME; use gitbutler_core::projects::ProjectId; +use gitbutler_notify_debouncer::{new_debouncer, Debouncer, FileIdMap}; use notify::RecommendedWatcher; use notify::Watcher; use tokio::task; diff --git a/crates/gitbutler-watcher/src/lib.rs b/crates/gitbutler-watcher/src/lib.rs index af6dfb39d7..1c61e5fbd8 100644 --- a/crates/gitbutler-watcher/src/lib.rs +++ b/crates/gitbutler-watcher/src/lib.rs @@ -18,7 +18,6 @@ use tokio::{ }; use tokio_util::sync::CancellationToken; -mod debouncer; mod file_monitor; mod handler; diff --git a/crates/gitbutler-watcher/vendor/debouncer/Cargo.toml b/crates/gitbutler-watcher/vendor/debouncer/Cargo.toml new file mode 100644 index 0000000000..f471902688 --- /dev/null +++ b/crates/gitbutler-watcher/vendor/debouncer/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "gitbutler-notify-debouncer" +version = "0.0.0" +edition = "2021" +publish = false + +[lib] +doctest = false + +[features] +mock_instant = ["dep:mock_instant"] + +[dependencies] +tracing = "0.1.40" + +notify = { version = "6.0.1" } +parking_lot = "0.12.3" +file-id = "0.2.1" +walkdir = "2.2.2" +crossbeam-channel = "0.5.13" + +mock_instant = { version = "0.3.2", optional = true } + +[dev-dependencies] +gitbutler-notify-debouncer = { path = ".", features = ["mock_instant"] } +pretty_assertions = "1.4.0" +rstest = "0.20" +serde = { version = "1.0.203", features = ["derive"] } +deser-hjson = "1.1.1" + +[lints.clippy] +all = "deny" +perf = "deny" +correctness = "deny" diff --git a/crates/gitbutler-watcher/src/debouncer/cache.rs b/crates/gitbutler-watcher/vendor/debouncer/src/cache.rs similarity index 99% rename from crates/gitbutler-watcher/src/debouncer/cache.rs rename to crates/gitbutler-watcher/vendor/debouncer/src/cache.rs index 0cd1641daf..cc64776d1a 100644 --- a/crates/gitbutler-watcher/src/debouncer/cache.rs +++ b/crates/gitbutler-watcher/vendor/debouncer/src/cache.rs @@ -94,7 +94,6 @@ impl FileIdMap { /// Remove a path form the cache. /// /// If the path was added with `Recursive` mode, all children will also be removed from the cache. - #[allow(dead_code)] pub fn remove_root(&mut self, path: impl AsRef) { self.roots.retain(|(root, _)| !root.starts_with(&path)); diff --git a/crates/gitbutler-watcher/src/debouncer/event.rs b/crates/gitbutler-watcher/vendor/debouncer/src/event.rs similarity index 100% rename from crates/gitbutler-watcher/src/debouncer/event.rs rename to crates/gitbutler-watcher/vendor/debouncer/src/event.rs diff --git a/crates/gitbutler-watcher/src/debouncer/mod.rs b/crates/gitbutler-watcher/vendor/debouncer/src/lib.rs similarity index 99% rename from crates/gitbutler-watcher/src/debouncer/mod.rs rename to crates/gitbutler-watcher/vendor/debouncer/src/lib.rs index db9219ac35..a50033b499 100644 --- a/crates/gitbutler-watcher/src/debouncer/mod.rs +++ b/crates/gitbutler-watcher/vendor/debouncer/src/lib.rs @@ -495,7 +495,6 @@ pub struct Debouncer { impl Debouncer { /// Stop the debouncer, waits for the event thread to finish. /// May block for the duration of one tick_rate. - #[allow(dead_code)] pub fn stop(mut self) { self.set_stop(); if let Some(t) = self.debouncer_thread.take() { @@ -504,7 +503,6 @@ impl Debouncer { } /// Stop the debouncer, does not wait for the event thread to finish. - #[allow(dead_code)] pub fn stop_nonblocking(self) { self.set_stop(); } diff --git a/crates/gitbutler-watcher/src/debouncer/tests/mod.rs b/crates/gitbutler-watcher/vendor/debouncer/src/tests/mod.rs similarity index 99% rename from crates/gitbutler-watcher/src/debouncer/tests/mod.rs rename to crates/gitbutler-watcher/vendor/debouncer/src/tests/mod.rs index 90085acef7..df43e13abb 100644 --- a/crates/gitbutler-watcher/src/debouncer/tests/mod.rs +++ b/crates/gitbutler-watcher/vendor/debouncer/src/tests/mod.rs @@ -166,7 +166,7 @@ fn state( mod schema; mod utils { - use crate::debouncer::FileIdCache; + use crate::FileIdCache; use file_id::FileId; use std::collections::HashMap; diff --git a/crates/gitbutler-watcher/src/debouncer/tests/schema.rs b/crates/gitbutler-watcher/vendor/debouncer/src/tests/schema.rs similarity index 98% rename from crates/gitbutler-watcher/src/debouncer/tests/schema.rs rename to crates/gitbutler-watcher/vendor/debouncer/src/tests/schema.rs index 912e36c0d2..1dea71dcbf 100644 --- a/crates/gitbutler-watcher/src/debouncer/tests/schema.rs +++ b/crates/gitbutler-watcher/vendor/debouncer/src/tests/schema.rs @@ -27,7 +27,7 @@ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR // IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -use crate::debouncer::{DebounceDataInner, DebouncedEvent}; +use crate::{DebounceDataInner, DebouncedEvent}; use file_id::FileId; use mock_instant::Instant; use notify::event::{ @@ -241,7 +241,7 @@ impl State { .queues .into_iter() .map(|(path, queue)| { - let queue = crate::debouncer::Queue { + let queue = crate::Queue { events: queue .events .into_iter() diff --git a/crates/gitbutler-watcher/tests/fixtures/add_create_dir_event_twice.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_create_dir_event_twice.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_create_dir_event_twice.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_create_dir_event_twice.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_create_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_create_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_create_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_create_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_create_event_after_remove_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_create_event_after_remove_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_create_event_after_remove_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_create_event_after_remove_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_errors.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_errors.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_errors.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_errors.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_modify_content_event_after_create_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_modify_content_event_after_create_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_modify_content_event_after_create_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_modify_content_event_after_create_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_remove_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_remove_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_remove_event_after_create_and_modify_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event_after_create_and_modify_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_remove_event_after_create_and_modify_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event_after_create_and_modify_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_remove_event_after_create_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event_after_create_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_remove_event_after_create_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event_after_create_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_remove_event_after_modify_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event_after_modify_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_remove_event_after_modify_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_event_after_modify_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_remove_parent_event_after_remove_child_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_parent_event_after_remove_child_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_remove_parent_event_after_remove_child_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_remove_parent_event_after_remove_child_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_both_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_both_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_both_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_both_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_after_create.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_after_create.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_after_create.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_after_create.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_after_modify_content.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_after_modify_content.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_after_modify_content.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_after_modify_content.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_after_rename.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_after_rename.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_after_rename.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_after_rename.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_override_created.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_override_created.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_override_created.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_override_created.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_override_modified.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_override_modified.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_override_modified.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_override_modified.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_override_removed.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_override_removed.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_override_removed.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_override_removed.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_with_different_file_ids.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_with_different_file_ids.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_with_different_file_ids.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_with_different_file_ids.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_with_different_tracker.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_with_different_tracker.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_with_different_tracker.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_with_different_tracker.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_with_file_ids.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_with_file_ids.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_and_to_event_with_file_ids.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_and_to_event_with_file_ids.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_create_and_modify_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_create_and_modify_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_create_and_modify_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_create_and_modify_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_create_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_create_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_create_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_create_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_modify_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_modify_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_modify_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_modify_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_rename_from_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_rename_from_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_from_event_after_rename_from_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_from_event_after_rename_from_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_to_dir_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_to_dir_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_to_dir_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_to_dir_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/add_rename_to_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_to_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/add_rename_to_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/add_rename_to_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/emit_close_events_only_once.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_close_events_only_once.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/emit_close_events_only_once.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_close_events_only_once.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/emit_continuous_modify_content_events.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_continuous_modify_content_events.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/emit_continuous_modify_content_events.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_continuous_modify_content_events.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/emit_events_in_chronological_order.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_events_in_chronological_order.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/emit_events_in_chronological_order.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_events_in_chronological_order.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/emit_events_with_a_prepended_rename_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_events_with_a_prepended_rename_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/emit_events_with_a_prepended_rename_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_events_with_a_prepended_rename_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/emit_modify_event_after_close_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_modify_event_after_close_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/emit_modify_event_after_close_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_modify_event_after_close_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/emit_needs_rescan_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_needs_rescan_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/emit_needs_rescan_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/emit_needs_rescan_event.hjson diff --git a/crates/gitbutler-watcher/tests/fixtures/read_file_id_without_create_event.hjson b/crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/read_file_id_without_create_event.hjson similarity index 100% rename from crates/gitbutler-watcher/tests/fixtures/read_file_id_without_create_event.hjson rename to crates/gitbutler-watcher/vendor/debouncer/tests/fixtures/read_file_id_without_create_event.hjson