Skip to content

Commit 1380be7

Browse files
committed
fix(smartlog): don't show restack hint for rewritten commits
1 parent 103f8ba commit 1380be7

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

git-branchless/src/commands/smartlog.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,8 @@ pub fn smartlog(
666666
None
667667
}
668668
})
669+
.flatten()
670+
.filter(|oid| !graph.nodes[oid].is_obsolete)
669671
.count();
670672
if num_abandoned_children > 0 {
671673
writeln!(

git-branchless/tests/command/test_smartlog.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,3 +606,30 @@ fn test_smartlog_hint_abandoned() -> eyre::Result<()> {
606606

607607
Ok(())
608608
}
609+
610+
#[test]
611+
fn test_smartlog_hint_abandoned_except_current_commit() -> eyre::Result<()> {
612+
let git = make_git()?;
613+
614+
if !git.supports_reference_transactions()? {
615+
return Ok(());
616+
}
617+
git.init_repo()?;
618+
619+
let test1_oid = git.commit_file("test1", 1)?;
620+
git.run(&["commit", "--amend", "--message", "amended test1"])?;
621+
git.run(&["checkout", &test1_oid.to_string()])?;
622+
623+
{
624+
let (stdout, _stderr) = git.run(&["smartlog"])?;
625+
insta::assert_snapshot!(stdout, @r###"
626+
O f777ecc create initial.txt
627+
|\
628+
| % 62fc20d (rewritten as ae94dc2a) create test1.txt
629+
|
630+
O ae94dc2 (master) amended test1
631+
"###);
632+
}
633+
634+
Ok(())
635+
}

0 commit comments

Comments
 (0)