diff --git a/demos/demo_juggle_conflicts.sh b/demos/demo_juggle_conflicts.sh index 8e26b521cb..442607b498 100755 --- a/demos/demo_juggle_conflicts.sh +++ b/demos/demo_juggle_conflicts.sh @@ -25,7 +25,7 @@ run_command "jj diff -r second" run_command "jj diff -r third" comment "Let's reorder the second and third commits:" -run_command "jj rebase -s third -d first" +run_command_output_redacted "jj rebase -s third -d first" run_command "jj rebase -s second -d third" run_command "jj log" comment "The commit labeled \"third\" has a conflict, as expected. What's more diff --git a/demos/juggle_conflicts.svg b/demos/juggle_conflicts.svg index 085060fb6f..d646536b15 100644 --- a/demos/juggle_conflicts.svg +++ b/demos/juggle_conflicts.svg @@ -1,5 +1,5 @@ - + - + # We are in a repo with three commits, all # editing the same line: $ jj log -@  rxvouxkx jjfan@example.com 2024-08-07 22:56:18 6d12893d +@  onxmwruy jjfan@example.com 2024-08-07 23:22:34 bd2e5043 │  (empty) (no description set) -○  wlukvxxu jjfan@example.com 2024-08-07 22:56:18 third c8effc97 +○  zmkvvzvu jjfan@example.com 2024-08-07 23:22:34 third 80a658c3 │  third -○  lnymwprr jjfan@example.com 2024-08-07 22:56:18 second db1e2202 +○  rrsunnkp jjfan@example.com 2024-08-07 23:22:34 second 5301ee0e │  second -○  rlrvvtku jjfan@example.com 2024-08-07 22:56:18 first ae4fffbf +○  nuxtyykp jjfan@example.com 2024-08-07 23:22:34 first 02011ca9 │  first -  zzzzzzzz root() 00000000 +  zzzzzzzz root() 00000000 $ jj diff -r first Added regular file file:         1first @@ -64,72 +64,73 @@ $ jj rebase -s third -d first Rebased 2 commits New conflicts appeared in these commits: -  wlukvxxu d0b540fb third | (conflict) third +  zmkvvzvu 2c443dbd third | (conflict) third To resolve the conflicts, start by updating to it: -  jj new wlukvxxuyqvk +  jj new zmkvvzvuoqlm Then use `jj resolve`, or edit the conflict markers in the file directly. Once the conflicts are resolved, you may want to inspect the result with `jj dif f`. Then run `jj squash` to move the resolution into the conflicted commit. -Working copy now at: rxvouxkx 971debdc (conflict) (empty) (no description set) -Parent commit      : wlukvxxu d0b540fb third | (conflict) third +Working copy now at: onxmwruy 4850e52b (conflict) (empty) (no description set) +Parent commit      : zmkvvzvu 2c443dbd third | (conflict) third Added 0 files, modified 1 files, removed 0 files There are unresolved conflicts at these paths: file    2-sided conflict -$ jj rebase -s second -d third -Rebased 1 commits -$ jj log -○  lnymwprr jjfan@example.com 2024-08-07 22:56:18 second 8a74cbf9 -│  second -│ @  rxvouxkx jjfan@example.com 2024-08-07 22:56:18 971debdc conflict -├─╯  (empty) (no description set) -×  wlukvxxu jjfan@example.com 2024-08-07 22:56:18 third d0b540fb conflict -│  third -○  rlrvvtku jjfan@example.com 2024-08-07 22:56:18 first ae4fffbf -│  first -  zzzzzzzz root() 00000000 - -# The commit labeled "third" has a conflict, as expected. What's more -# interesting is that the top commit has no conflict! That's because it -# has the changes from all three commits applied to it. - -# Let's verify that by looking at its contents: - -$ jj new second -Working copy now at: souyowwp 07ae0483 (empty) (no description set) -Parent commit      : lnymwprr 8a74cbf9 second | second -Added 0 files, modified 1 files, removed 0 files -$ cat file -third - -# Let's now instead make "second" and "third" -# sibling and merge them: - -$ jj rebase -s second -d first -Rebased 2 commits -Working copy now at: souyowwp 6cf18813 (empty) (no description set) -Parent commit      : lnymwprr 456d815e second | second -Added 0 files, modified 1 files, removed 0 files -$ jj new second third -m merged -Working copy now at: quywtttt e402718d (empty) merged -Parent commit      : lnymwprr 456d815e second | second -Parent commit      : wlukvxxu d0b540fb third | (conflict) third -Added 0 files, modified 1 files, removed 0 files -$ jj log -@    quywtttt jjfan@example.com 2024-08-07 22:56:19 e402718d -├─╮  (empty) merged -│ ×  wlukvxxu jjfan@example.com 2024-08-07 22:56:18 third d0b540fb conflict -│ │  third -○ │  lnymwprr jjfan@example.com 2024-08-07 22:56:19 second 456d815e -├─╯  second -○  rlrvvtku jjfan@example.com 2024-08-07 22:56:18 first ae4fffbf -│  first -  zzzzzzzz root() 00000000 - -# Again, because the merge commit has the -# changes from all three commits, it has no -# conflict. - +... (output redacted) ... +$ jj rebase -s second -d third +Rebased 1 commits +$ jj log +○  rrsunnkp jjfan@example.com 2024-08-07 23:22:34 second 7214bab8 +│  second +│ @  onxmwruy jjfan@example.com 2024-08-07 23:22:34 4850e52b conflict +├─╯  (empty) (no description set) +×  zmkvvzvu jjfan@example.com 2024-08-07 23:22:34 third 2c443dbd conflict +│  third +○  nuxtyykp jjfan@example.com 2024-08-07 23:22:34 first 02011ca9 +│  first +  zzzzzzzz root() 00000000 + +# The commit labeled "third" has a conflict, as expected. What's more +# interesting is that the top commit has no conflict! That's because it +# has the changes from all three commits applied to it. + +# Let's verify that by looking at its contents: + +$ jj new second +Working copy now at: toyznvyo ebd03aae (empty) (no description set) +Parent commit      : rrsunnkp 7214bab8 second | second +Added 0 files, modified 1 files, removed 0 files +$ cat file +third + +# Let's now instead make "second" and "third" +# sibling and merge them: + +$ jj rebase -s second -d first +Rebased 2 commits +Working copy now at: toyznvyo 9e2e6137 (empty) (no description set) +Parent commit      : rrsunnkp 22ced3bd second | second +Added 0 files, modified 1 files, removed 0 files +$ jj new second third -m merged +Working copy now at: tkquwwxx 02160ccd (empty) merged +Parent commit      : rrsunnkp 22ced3bd second | second +Parent commit      : zmkvvzvu 2c443dbd third | (conflict) third +Added 0 files, modified 1 files, removed 0 files +$ jj log +@    tkquwwxx jjfan@example.com 2024-08-07 23:22:34 02160ccd +├─╮  (empty) merged +│ ×  zmkvvzvu jjfan@example.com 2024-08-07 23:22:34 third 2c443dbd conflict +│ │  third +○ │  rrsunnkp jjfan@example.com 2024-08-07 23:22:34 second 22ced3bd +├─╯  second +○  nuxtyykp jjfan@example.com 2024-08-07 23:22:34 first 02011ca9 +│  first +  zzzzzzzz root() 00000000 + +# Again, because the merge commit has the +# changes from all three commits, it has no +# conflict. +