Skip to content

Commit

Permalink
feat: Use GIT_DIR env var to find the repo
Browse files Browse the repository at this point in the history
  • Loading branch information
cafkafk authored Aug 4, 2023
2 parents 7d54fe5 + a191c6e commit fbd0fdc
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions src/fs/feature/git.rs
Original file line number Diff line number Diff line change
Expand Up @@ -162,11 +162,25 @@ impl GitRepo {
/// Returns the original buffer if none is found.
fn discover(path: PathBuf) -> Result<Self, PathBuf> {
info!("Searching for Git repository above {:?}", path);
let repo = match git2::Repository::discover(&path) {
// Search with GIT_DIR env variable first if set
let repo = match git2::Repository::open_from_env() {
Ok(r) => r,
Err(e) => {
error!("Error discovering Git repositories: {:?}", e);
return Err(path);
// anything other than NotFound implies GIT_DIR was set and we got actual error
if e.code() != git2::ErrorCode::NotFound {
error!("Error opening Git repo from env using GIT_DIR: {:?}", e);
return Err(path);
} else {
// nothing found, search using discover
match git2::Repository::discover(&path) {
Ok(r) => r,
Err(e) => {
error!("Error discovering Git repositories: {:?}", e);
return Err(path);

}
}
}
}
};

Expand Down

0 comments on commit fbd0fdc

Please sign in to comment.