MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / code_auto_merge

Function code_auto_merge

atomic-core/src/merge/engine.rs:704–738  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

702
703 #[test]
704 fn code_auto_merge() {
705 let mut txn = MockTxn::new();
706 let store = MemoryChangeStore::new();
707
708 let base_hash = make_change(&store, b"fn main() { return 0; }");
709 let base_id = NodeId::new(1);
710 txn.register(base_id, base_hash);
711
712 let left_hash = make_change(&store, b"fn main() { return 1; }");
713 let left_id = NodeId::new(2);
714 txn.register(left_id, left_hash);
715
716 let right_hash = make_change(&store, b"fn run() { return 0; }");
717 let right_id = NodeId::new(3);
718 txn.register(right_id, right_hash);
719
720 let engine = SemanticMergeEngine::new(&txn, &store);
721
722 let v_base = GraphNode::new(base_id, ChangePosition::new(0), ChangePosition::new(23));
723 let v_left = GraphNode::new(left_id, ChangePosition::new(0), ChangePosition::new(23));
724 let v_right = GraphNode::new(right_id, ChangePosition::new(0), ChangePosition::new(22));
725
726 let group = ConflictGroup::new(vec![v_left, v_right]).with_ancestor(v_base);
727 let outcome = engine.try_merge(&group).unwrap();
728
729 assert!(
730 outcome.is_auto_merged(),
731 "expected AutoMerged, got {:?}",
732 outcome
733 );
734 assert_eq!(
735 std::str::from_utf8(outcome.content()).unwrap(),
736 "fn run() { return 1; }",
737 );
738 }
739}

Callers

nothing calls this directly

Calls 5

with_ancestorMethod · 0.80
make_changeFunction · 0.70
registerMethod · 0.45
unwrapMethod · 0.45
try_mergeMethod · 0.45

Tested by

no test coverage detected