From 63cc3437edc9981e6e30d9be7ccf923630dc2fa4 Mon Sep 17 00:00:00 2001 From: Ivan Prisyazhnyy Date: Thu, 26 Feb 2026 12:10:31 +0200 Subject: [PATCH] Add target commit id for would have commit fixup log msg Signed-off-by: Ivan Prisyazhnyy --- src/lib.rs | 26 ++++++++++++++++++++++---- src/main.rs | 1 + 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3274982..3f1143e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -23,6 +23,7 @@ pub struct Config<'a> { pub one_fixup_per_commit: bool, pub squash: bool, pub message: Option<&'a str>, + pub verbose: bool, } pub fn run(logger: &slog::Logger, config: &Config) -> Result<()> { @@ -347,7 +348,15 @@ fn run_with_repo(logger: &slog::Logger, config: &Config, repo: &git2::Repository } else { announce( logger, - Announcement::WouldHaveCommitted(dest_commit_locator, &diff), + Announcement::WouldHaveCommitted { + commit: if config.verbose { + &dest_commit_id + } else { + &dest_commit_id[..7] + }, + fixup: dest_commit_locator, + stats: &diff, + }, ); } } else { @@ -579,7 +588,11 @@ fn index_stats(repo: &git2::Repository) -> Result { // Messages that will be shown to users during normal operations (not debug messages). enum Announcement<'r> { Committed(&'r git2::Commit<'r>, &'r str, &'r git2::DiffStats), - WouldHaveCommitted(&'r str, &'r git2::DiffStats), + WouldHaveCommitted { + commit: &'r str, + fixup: &'r str, + stats: &'r git2::DiffStats, + }, WouldHaveRebased(&'r std::process::Command), HowToSquash(String), NothingStagedAfterAutoStaging, @@ -613,11 +626,16 @@ fn announce(logger: &slog::Logger, announcement: Announcement) { "header" => change_header, ); } - Announcement::WouldHaveCommitted(fixup, diff) => info!( + Announcement::WouldHaveCommitted { + commit, + fixup, + stats, + } => info!( logger, "would have committed"; "fixup" => fixup, - "header" => format_change_header(diff), + "commit" => commit, + "header" => format_change_header(stats), ), Announcement::WouldHaveRebased(command) => info!( logger, "would have run git rebase"; "command" => format!("{:?}", command) diff --git a/src/main.rs b/src/main.rs index 5f2d517..5191e3a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -129,6 +129,7 @@ fn main() { one_fixup_per_commit, squash, message: message.as_deref(), + verbose, }, ) { crit!(logger, "absorb failed"; "err" => e.to_string());