Add helper fn to check whether the repository WD is dirty
This commit is contained in:
parent
db218cb3ee
commit
eb378d47c2
1 changed files with 21 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use git2::Repository;
|
||||
use git2::{Index, Repository};
|
||||
use toml::Value;
|
||||
|
||||
use libimagerror::into::IntoError;
|
||||
|
@ -154,5 +154,25 @@ impl Runtime {
|
|||
.map_dbg_str("[GIT CREATE HOOK]: Branch checked out")
|
||||
}
|
||||
|
||||
/// Check whether the WD is "dirty" - whether there is a diff to the repository
|
||||
/// This function returns false if there is no `Repository` object in the `Runtime`
|
||||
pub fn repo_is_dirty(&self, index: &Index) -> bool {
|
||||
match self.repository.as_ref() {
|
||||
Some(repo) => {
|
||||
repo.diff_index_to_workdir(Some(index), None)
|
||||
.map_dbg_str("Fetched diff: Index <-> WD")
|
||||
.map_dbg_err_str("Failed to fetch diff: Index <-> WD")
|
||||
.map(|diff| diff.deltas().count() != 0)
|
||||
.unwrap_or(false)
|
||||
},
|
||||
|
||||
None => {
|
||||
debug!("No repository: Cannot fetch diff: Index <-> WD");
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue