Checks that squash and merge do the same thing, with nontrivial history that includes a merge conflict. ```unison x.a.a = "af" ``` ```ucm I found and typechecked these definitions in scratch.u. If you do an `add` or `update`, here's how your codebase would change: ⍟ These new definitions are ok to `add`: x.a.a : Text ``` ```ucm .> add ⍟ I've added these definitions: x.a.a : Text .> fork x y Done. .> fork x s Done. .> fork x m Done. .> delete y.a.a Name changes: Original Changes 1. m.a.a ┐ 2. y.a.a (removed) 3. s.a.a │ 4. x.a.a │ 5. y.a.a ┘ Tip: You can use `undo` or `reflog` to undo this change. ``` ```unison y.a.a = "fij" ``` ```ucm I found and typechecked these definitions in scratch.u. If you do an `add` or `update`, here's how your codebase would change: ⍟ These new definitions are ok to `add`: y.a.a : Text ``` ```ucm .> add ⍟ I've added these definitions: y.a.a : Text ``` ```unison y.b.a = "wie" ``` ```ucm I found and typechecked these definitions in scratch.u. If you do an `add` or `update`, here's how your codebase would change: ⍟ These new definitions are ok to `add`: y.b.a : Text ``` ```ucm .> add ⍟ I've added these definitions: y.b.a : Text .> merge y.b y.a Here's what's changed in y.a after the merge: New name conflicts: 1. a#a3ef1630bu : Text ↓ 2. ┌ a#a3ef1630bu : Text 3. └ a#fjqpdmdeqi : Text Tip: You can use `todo` to see if this generated any work to do in this namespace and `test` to run the tests. Or you can use `undo` or `reflog` to undo the results of this merge. .> delete.term 1 Resolved name conflicts: 1. ┌ y.a.a#a3ef1630bu : Text 2. └ y.a.a#fjqpdmdeqi : Text ↓ 3. y.a.a#fjqpdmdeqi : Text Tip: You can use `undo` or `reflog` to undo this change. .> merge y m Here's what's changed in m after the merge: Updates: 1. a.a : Text ↓ 2. a.a : Text Added definitions: 3. ┌ a.a : Text 4. └ b.a : Text Tip: You can use `todo` to see if this generated any work to do in this namespace and `test` to run the tests. Or you can use `undo` or `reflog` to undo the results of this merge. .> squash y s Here's what's changed in s after the merge: New name conflicts: 1. a.a#0gr1q8f2jk : Text ↓ 2. ┌ a.a#0gr1q8f2jk : Text 3. └ a.a#fjqpdmdeqi : Text Added definitions: 4. ┌ a.a#fjqpdmdeqi : Text 5. └ b.a : Text Tip: You can use `todo` to see if this generated any work to do in this namespace and `test` to run the tests. Or you can use `undo` or `reflog` to undo the results of this merge. .s> todo ❓ These terms have conflicting definitions: a.a Tip: This occurs when merging branches that both independently introduce the same name. Use `view a.a` to see the conflicting defintions, then use `move.term` to resolve the conflicts. ```