diff --git a/crates/fs/src/repository.rs b/crates/fs/src/repository.rs index efe3a40092641f5742d599b20be63153d0e6c9f5..488262887fd6c5c47ceee129840d72a5201531ca 100644 --- a/crates/fs/src/repository.rs +++ b/crates/fs/src/repository.rs @@ -1,5 +1,6 @@ use anyhow::Result; use collections::HashMap; +use git2::ErrorCode; use parking_lot::Mutex; use rpc::proto; use serde_derive::{Deserialize, Serialize}; @@ -93,8 +94,17 @@ impl GitRepository for LibGitRepository { } fn status(&self, path: &RepoPath) -> Result> { - let status = self.status_file(path)?; - Ok(read_status(status)) + let status = self.status_file(path); + match status { + Ok(status) => Ok(read_status(status)), + Err(e) => { + if e.code() == ErrorCode::NotFound { + Ok(None) + } else { + Err(e.into()) + } + } + } } }