summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Jung <tummychow511@gmail.com>2019-07-17 19:32:57 -0700
committerGitHub <noreply@github.com>2019-07-17 19:32:57 -0700
commitd89a24ab84bdf2a350d13d8e27f52d52cc035b6c (patch)
tree89a52345d1c411dbf56d625c1e8fa1ca197fc5be
parent4bde259e6b0485e76b97dcf752a00939e1b0d0c6 (diff)
parent1beda1bb890fd01778d8c31d1c4d898a47654713 (diff)
Merge pull request #22 from alyssais/sig
Fall back gracefully if user.{name,email} not set
-rw-r--r--src/lib.rs4
-rw-r--r--src/stack.rs18
2 files changed, 13 insertions, 9 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 4928d5a..96a70e5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -76,7 +76,9 @@ pub fn run(config: &Config) -> Result<(), failure::Error> {
"index" => format!("{:?}", index),
);
- let signature = repo.signature()?;
+ let signature = repo
+ .signature()
+ .or_else(|_| git2::Signature::now("nobody", "nobody@example.com"))?;
let mut head_commit = repo.head()?.peel_to_commit()?;
let mut patches_considered = 0usize;
diff --git a/src/stack.rs b/src/stack.rs
index 5e54a08..977b466 100644
--- a/src/stack.rs
+++ b/src/stack.rs
@@ -63,7 +63,7 @@ pub fn working_stack<'repo>(
let mut ret = Vec::new();
let mut commits_considered = 0usize;
- let sig = repo.signature()?;
+ let sig = repo.signature();
for rev in revwalk {
commits_considered += 1;
let commit = repo.find_commit(rev?)?;
@@ -71,13 +71,15 @@ pub fn working_stack<'repo>(
warn!(logger, "Will not fix up past the merge commit"; "commit" => commit.id().to_string());
break;
}
- if !force
- && (commit.author().name_bytes() != sig.name_bytes()
- || commit.author().email_bytes() != sig.email_bytes())
- {
- warn!(logger, "Will not fix up past commits not authored by you, use --force to override";
- "commit" => commit.id().to_string());
- break;
+ if let Ok(ref sig) = sig {
+ if !force
+ && (commit.author().name_bytes() != sig.name_bytes()
+ || commit.author().email_bytes() != sig.email_bytes())
+ {
+ warn!(logger, "Will not fix up past commits not authored by you, use --force to override";
+ "commit" => commit.id().to_string());
+ break;
+ }
}
if ret.len() == max_stack(repo) && user_provided_base.is_none() {
warn!(logger, "stack limit reached, use --base or configure absorb.maxStack to override";