mirror of
https://github.com/Llewellynvdm/exa.git
synced 2024-09-27 20:59:02 +00:00
Code and logging fix-ups
This commit is contained in:
parent
cfc05eef00
commit
62075fe984
@ -15,19 +15,6 @@ pub struct GitRepo {
|
|||||||
workdir: PathBuf,
|
workdir: PathBuf,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GitRepo {
|
|
||||||
fn discover(path: &Path) -> Option<GitRepo> {
|
|
||||||
info!("Searching for Git repository above {:?}", path);
|
|
||||||
if let Ok(repo) = git2::Repository::discover(&path) {
|
|
||||||
if let Some(workdir) = repo.workdir().map(|wd| wd.to_path_buf()) {
|
|
||||||
return Some(GitRepo { repo, workdir });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
None
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
use std::iter::FromIterator;
|
use std::iter::FromIterator;
|
||||||
impl FromIterator<PathBuf> for GitCache {
|
impl FromIterator<PathBuf> for GitCache {
|
||||||
fn from_iter<I: IntoIterator<Item=PathBuf>>(iter: I) -> Self {
|
fn from_iter<I: IntoIterator<Item=PathBuf>>(iter: I) -> Self {
|
||||||
@ -36,7 +23,7 @@ impl FromIterator<PathBuf> for GitCache {
|
|||||||
|
|
||||||
for path in iter {
|
for path in iter {
|
||||||
if repos.contains_key(&path) {
|
if repos.contains_key(&path) {
|
||||||
debug!("Skipping {:?} because we already queried it", path);
|
debug!("Skipping {:?} because we already queried it", path);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let repo = GitRepo::discover(&path);
|
let repo = GitRepo::discover(&path);
|
||||||
@ -48,16 +35,33 @@ impl FromIterator<PathBuf> for GitCache {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl GitRepo {
|
||||||
|
fn discover(path: &Path) -> Option<GitRepo> {
|
||||||
|
info!("Searching for Git repository above {:?}", path);
|
||||||
|
if let Ok(repo) = git2::Repository::discover(&path) {
|
||||||
|
if let Some(workdir) = repo.workdir().map(|wd| wd.to_path_buf()) {
|
||||||
|
return Some(GitRepo { repo, workdir });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl GitCache {
|
impl GitCache {
|
||||||
pub fn get(&self, index: &Path) -> Option<Git> {
|
pub fn get(&self, index: &Path) -> Option<Git> {
|
||||||
let repo = match self.repos[index] {
|
let repo = match self.repos[index] {
|
||||||
Some(ref r) => r,
|
Some(ref r) => r,
|
||||||
None => return None,
|
None => return None,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
info!("Getting Git statuses for repo with workdir {:?}", &repo.workdir);
|
||||||
let iter = match repo.repo.statuses(None) {
|
let iter = match repo.repo.statuses(None) {
|
||||||
Ok(es) => es,
|
Ok(es) => es,
|
||||||
Err(_) => return None,
|
Err(e) => {
|
||||||
|
error!("Error looking up Git statuses: {:?}", e);
|
||||||
|
return None;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut statuses = Vec::new();
|
let mut statuses = Vec::new();
|
||||||
|
Loading…
Reference in New Issue
Block a user