From 69cde8b9d615978ee42dece93bafa2f8e2ef1be2 Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Tue, 2 Sep 2025 11:25:27 -0400 Subject: [PATCH] Move the "create parent dir if not exists" logic --- crates/git/src/repository.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/crates/git/src/repository.rs b/crates/git/src/repository.rs index f119c9740de62b4624622708b2f799036348e0a6..5ce7e9e246ef202096d2f79ba8a774cd029526fd 100644 --- a/crates/git/src/repository.rs +++ b/crates/git/src/repository.rs @@ -262,6 +262,13 @@ impl GitExcludeOverride { content.push_str(self.added_excludes.as_ref().unwrap()); content.push('\n'); + // Ensure the parent directory exists before writing + if let Some(parent) = self.git_exclude_path.parent() { + if !parent.exists() { + smol::fs::create_dir_all(parent).await?; + } + } + smol::fs::write(&self.git_exclude_path, content).await?; Ok(()) } @@ -1838,14 +1845,6 @@ impl GitBinary { pub async fn with_exclude_overrides(&self) -> Result { let git_dir = self.resolve_git_dir().await?; let path = git_dir.join("info").join("exclude"); - if !path.exists() { - // Create the info directory and exclude file if they don't exist - let info_dir = git_dir.join("info"); - if !info_dir.exists() { - smol::fs::create_dir_all(&info_dir).await?; - } - smol::fs::write(&path, "").await?; - } GitExcludeOverride::new(path).await }