jj/lib/tests
Martin von Zweigbergk 9d4a97381f rewrite: don't resolve intermediate parent tree when rebasing
Let's say we're updating one parent of a merge:


```
  E            E'
 /|\          /|\
B C D   ->   B C D'
 \|/          \|/
  A            A
```

When rebasing `E` to create `E'` there, we do that by merging the
changes compared to the auto-merged parents. The auto-merged parents
before is `B+(C-A)+(D-A)`, and after it's `B+(C-A)+(D'-A)`. Then we
rebase the diff, which gives us `E' = B+(C-A)+(D'-A) + (E -
(B+(C-A)+(D-A))) = D' + (E - D')`.

However, we currently don't do quite that simplification because we
first resolve conflicts when possible in the two auto-merged parent
trees (before and after). That rarely makes a difference to the
result, but it's wasteful to do it. It does make a difference in some
cases where our merge algorithm is lossy, which currently is only the
"A+(A-B)=A" case. I added a test case showing where it does make a
difference. It's a non-obvious cases but I think the new behavior is
more correct (the old behavior was a conflict).
2024-10-21 10:58:47 -07:00
..
runner.rs merged_tree: remove .diff_summary() 2024-08-06 10:15:44 +09:00
test_bad_locking.rs style: add semicolon at the end of expressions used as statements 2024-10-04 22:29:13 +02:00
test_commit_builder.rs transaction: rename mut_repo() to idiomatic repo_mut() 2024-09-07 10:51:43 -07:00
test_commit_concurrent.rs repo: teach OpStore about the root commit id 2024-10-08 13:21:03 +09:00
test_conflicts.rs style: add semicolon at the end of expressions used as statements 2024-10-04 22:29:13 +02:00
test_default_revset_graph_iterator.rs revset: allow iterators to return evaluation errors 2024-10-18 17:09:35 -04:00
test_git.rs git clone: Add depth argument 2024-10-14 20:01:08 +02:00
test_git_backend.rs transaction: rename mut_repo() to idiomatic repo_mut() 2024-09-07 10:51:43 -07:00
test_gpg.rs formatting only: switch to Item level import ganularity 2024-08-22 14:52:54 -04:00
test_id_prefix.rs id_prefix: propagate error from disambiguation index 2024-10-09 14:07:48 +09:00
test_index.rs style: add semicolon at the end of expressions used as statements 2024-10-04 22:29:13 +02:00
test_init.rs repo: remove repo_path from ReadonlyRepo and RepoLoader 2024-09-07 12:20:02 -07:00
test_load_repo.rs tests: avoid ReadonlyRepo::repo_path() 2024-09-07 12:20:02 -07:00
test_local_working_copy.rs style: avoid using .to_owned()/.to_vec() on owned objects 2024-10-04 22:29:13 +02:00
test_local_working_copy_concurrent.rs workspace: make workspace_root() and repo_path() return slice &Path 2024-09-08 05:40:52 +09:00
test_local_working_copy_sparse.rs workspace: make workspace_root() and repo_path() return slice &Path 2024-09-08 05:40:52 +09:00
test_merge_trees.rs rewrite: don't resolve intermediate parent tree when rebasing 2024-10-21 10:58:47 -07:00
test_merged_tree.rs style: add semicolon at the end of expressions used as statements 2024-10-04 22:29:13 +02:00
test_mut_repo.rs repo: introduce MutableRepo::reparent_descendants() 2024-09-24 09:30:28 +02:00
test_operations.rs repo: teach OpStore about the root commit id 2024-10-08 13:21:03 +09:00
test_refs.rs transaction: rename mut_repo() to idiomatic repo_mut() 2024-09-07 10:51:43 -07:00
test_revset.rs revset: drop support for HEAD@git symbol resolution 2024-10-21 09:21:34 +09:00
test_rewrite.rs bookmarks: update some leftover uses of the word "branch" 2024-09-11 19:19:31 -07:00
test_rewrite_transform.rs transaction: rename mut_repo() to idiomatic repo_mut() 2024-09-07 10:51:43 -07:00
test_signing.rs transaction: rename mut_repo() to idiomatic repo_mut() 2024-09-07 10:51:43 -07:00
test_ssh_signing.rs formatting only: switch to Item level import ganularity 2024-08-22 14:52:54 -04:00
test_view.rs bookmarks: update some leftover uses of the word "branch" 2024-09-11 19:19:31 -07:00
test_workspace.rs workspace: make workspace_root() and repo_path() return slice &Path 2024-09-08 05:40:52 +09:00