Skip to content

Commit 8b1ae8b

Browse files
committed
tests: Try to fix failing git-next tests
1 parent efad4c2 commit 8b1ae8b

File tree

8 files changed

+30
-8
lines changed

8 files changed

+30
-8
lines changed

git-branchless-lib/src/core/eventlog.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,13 @@ pub fn should_ignore_ref_updates(reference_name: &ReferenceName) -> bool {
710710

711711
matches!(
712712
reference_name.as_str(),
713-
"ORIG_HEAD" | "CHERRY_PICK" | "REBASE_HEAD" | "CHERRY_PICK_HEAD" | "FETCH_HEAD"
713+
"ORIG_HEAD"
714+
| "CHERRY_PICK"
715+
| "REBASE_HEAD"
716+
| "CHERRY_PICK_HEAD"
717+
// From Git's `is_special_ref` in `refs.c`:
718+
| "AUTO_MERGE"
719+
| "FETCH_HEAD"
714720
)
715721
}
716722

git-branchless-lib/src/testing.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,13 @@ then you can only run tests in the main `git-branchless` and \
654654
Ok(version >= GitVersion(2, 27, 0))
655655
}
656656

657+
/// Git v2.44 produces `AUTO_MERGE` refs as part of some operations, which
658+
/// changes the event log according to the `reference-transaction` hook.
659+
pub fn produces_auto_merge_refs(&self) -> eyre::Result<bool> {
660+
let version = self.get_version()?;
661+
Ok(version >= GitVersion(2, 44, 0))
662+
}
663+
657664
/// Resolve a file during a merge or rebase conflict with the provided
658665
/// contents.
659666
#[instrument]

git-branchless-lib/tests/test_eventlog.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ fn test_drop_non_meaningful_events() -> eyre::Result<()> {
4646
fn test_different_event_transaction_ids() -> eyre::Result<()> {
4747
let git = make_git()?;
4848

49+
if git.produces_auto_merge_refs()? {
50+
return Ok(());
51+
}
52+
4953
git.init_repo()?;
5054
git.commit_file("test1", 1)?;
5155
git.branchless("hide", &["--no-delete-branches", "HEAD"])?;

git-branchless/tests/test_bug_report.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ fn redact_timestamp(str: String) -> String {
1616
fn test_bug_report() -> eyre::Result<()> {
1717
let git = make_git()?;
1818

19-
if !git.supports_reference_transactions()? {
19+
if !git.supports_reference_transactions()? || git.produces_auto_merge_refs()? {
2020
return Ok(());
2121
}
2222
git.init_repo()?;

git-branchless/tests/test_eventlog.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use lib::testing::make_git;
88
fn test_git_v2_31_events() -> eyre::Result<()> {
99
let git = make_git()?;
1010

11-
if !git.supports_reference_transactions()? {
11+
if !git.supports_reference_transactions()? || git.produces_auto_merge_refs()? {
1212
return Ok(());
1313
}
1414

git-branchless/tests/test_hooks.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ fn test_pre_auto_gc() -> eyre::Result<()> {
222222
fn test_merge_commit_recorded() -> eyre::Result<()> {
223223
let git = make_git()?;
224224

225-
if !git.supports_reference_transactions()? {
225+
if !git.supports_reference_transactions()? || git.produces_auto_merge_refs()? {
226226
return Ok(());
227227
}
228228

git-branchless/tests/test_undo.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ fn test_undo_help() -> eyre::Result<()> {
136136
fn test_undo_navigate() -> eyre::Result<()> {
137137
let git = make_git()?;
138138

139-
if !git.supports_reference_transactions()? {
139+
if !git.supports_reference_transactions()? || git.produces_auto_merge_refs()? {
140140
return Ok(());
141141
}
142142

@@ -225,7 +225,7 @@ fn test_undo_navigate() -> eyre::Result<()> {
225225
fn test_go_to_event() -> eyre::Result<()> {
226226
let git = make_git()?;
227227

228-
if !git.supports_reference_transactions()? {
228+
if !git.supports_reference_transactions()? || git.produces_auto_merge_refs()? {
229229
return Ok(());
230230
}
231231

@@ -433,6 +433,10 @@ fn test_undo_move_refs() -> eyre::Result<()> {
433433
fn test_historical_smartlog_visibility() -> eyre::Result<()> {
434434
let git = make_git()?;
435435

436+
if git.produces_auto_merge_refs()? {
437+
return Ok(());
438+
}
439+
436440
git.init_repo()?;
437441
git.detach_head()?;
438442
git.commit_file("test1", 1)?;

git-branchless/tests/test_wrap.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use lib::testing::{make_git, GitRunOptions};
99
fn test_wrap_rebase_in_transaction() -> eyre::Result<()> {
1010
let git = make_git()?;
1111

12-
if !git.supports_reference_transactions()? {
12+
if !git.supports_reference_transactions()? || git.produces_auto_merge_refs()? {
1313
return Ok(());
1414
}
1515

@@ -28,7 +28,8 @@ fn test_wrap_rebase_in_transaction() -> eyre::Result<()> {
2828
let event_replayer = EventReplayer::from_event_log_db(&effects, &repo, &event_log_db)?;
2929
let events: Vec<Event> = get_event_replayer_events(&event_replayer)
3030
.iter()
31-
.map(|event| redact_event_timestamp(event.clone()))
31+
.cloned()
32+
.map(redact_event_timestamp)
3233
.collect();
3334

3435
// Bug fixed in Git v2.35: https://github.com/git/git/commit/4866a64508465938b7661eb31afbde305d83e234

0 commit comments

Comments
 (0)