forked from mirrors/jj
d439de073d
This mostly reverts https://github.com/martinvonz/jj/pull/2901 as well as its fixup https://github.com/martinvonz/jj/pull/2903. The related bug is reopened, see https://github.com/martinvonz/jj/issues/2869#issuecomment-1920367932. The problem is that while the fix did fix #2869 in most cases, it did reintroduce the more severe bug https://github.com/martinvonz/jj/issues/2760 in one case, if the working copy is the commit being rebased. For example, suppose you have the tree ``` root -> A -> B -> @ (empty) -> C ``` ### Before this commit #### Case 1 `jj rebase -s B -d root --skip-empty` would work perfectly before this commit, resulting in ``` root -> A \-------B -> C \- @ (new, empty) ``` #### Case 2 Unfortunately, if you run `jj rebase -s @ -d A --skip-empty`, you'd have the following result (before this commit), which shows the reintroduction of #2760: ``` root -> A @ -> C \-- B ``` with the working copy at `A`. The reason for this is explained in https://github.com/martinvonz/jj/pull/2901#issuecomment-1920043560. ### After this commit After this commit, both case 1 and case 2 will be wrong in the sense of #2869, but it will no longer exhibit the worse bug #2760 in the second case. Case 1 would result in: ``` root -> A \-------B -> @ (empty) -> C ``` Case 2 would result in: ``` root -> A -> @ -> C \-- B ``` with the working copy remaining a descendant of A |
||
---|---|---|
.. | ||
benches | ||
gen-protos | ||
src | ||
tests | ||
testutils | ||
Cargo.toml | ||
LICENSE |