diff options
author | Stephen Jung <tummychow511@gmail.com> | 2019-07-17 19:32:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-17 19:32:57 -0700 |
commit | d89a24ab84bdf2a350d13d8e27f52d52cc035b6c (patch) | |
tree | 89a52345d1c411dbf56d625c1e8fa1ca197fc5be | |
parent | 4bde259e6b0485e76b97dcf752a00939e1b0d0c6 (diff) | |
parent | 1beda1bb890fd01778d8c31d1c4d898a47654713 (diff) |
Merge pull request #22 from alyssais/sig
Fall back gracefully if user.{name,email} not set
-rw-r--r-- | src/lib.rs | 4 | ||||
-rw-r--r-- | src/stack.rs | 18 |
2 files changed, 13 insertions, 9 deletions
@@ -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"; |