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/helpers.sh b/demos/helpers.sh index c3dcf24091..2ef29e8a92 100644 --- a/demos/helpers.sh +++ b/demos/helpers.sh @@ -20,7 +20,7 @@ run_command_output_redacted() { echo "\$ $@" # `bash` often resets $COLUMNS, so we also # allow $RUN_COMMAND_COLUMNS - eval "$@" > /dev/null + eval "$@" > /dev/null 2>&1 echo -e "\033[0;90m... (output redacted) ...\033[0m" } diff --git a/demos/juggle_conflicts.svg b/demos/juggle_conflicts.svg index 19494c4dbb..2ae445f6a3 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 -@  nwrxxwvp jjfan@example.com 2024-09-04 19:21:07 677e8b20 +@  mnrltoyz jjfan@example.com 2024-09-04 19:32:07 0a13891c │  (empty) (no description set) -○  kxkysnnp jjfan@example.com 2024-09-04 19:21:07 third e46a5b6b +○  mnksvwsq jjfan@example.com 2024-09-04 19:32:07 third c69ca402 │  third -○  uxwutvtk jjfan@example.com 2024-09-04 19:21:07 second c28c3b1f +○  pxssrovn jjfan@example.com 2024-09-04 19:32:07 second d4f1281c │  second -○  mmykwquz jjfan@example.com 2024-09-04 19:21:07 first 66a5c156 +○  zwlynwuo jjfan@example.com 2024-09-04 19:32:07 first 23b66a7d │  first -  zzzzzzzz root() 00000000 +  zzzzzzzz root() 00000000 $ jj diff -r first Added regular file file:         1first @@ -62,74 +62,61 @@ # Let's reorder the second and third commits: $ jj rebase -s third -d first -Rebased 2 commits -New conflicts appeared in these commits: -  kxkysnnp a4fd3609 third | (conflict) third -To resolve the conflicts, start by updating to it: -  jj new kxkysnnptqrr -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: nwrxxwvp ba88d346 (conflict) (empty) (no description set) -Parent commit      : kxkysnnp a4fd3609 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 -○  uxwutvtk jjfan@example.com 2024-09-04 19:21:08 second 24797e0f -│  second -│ @  nwrxxwvp jjfan@example.com 2024-09-04 19:21:08 ba88d346 conflict -├─╯  (empty) (no description set) -×  kxkysnnp jjfan@example.com 2024-09-04 19:21:08 third a4fd3609 conflict -│  third -○  mmykwquz jjfan@example.com 2024-09-04 19:21:07 first 66a5c156 -│  first -  zzzzzzzz root() 00000000 +... (output redacted) ... +$ jj rebase -s second -d third +Rebased 1 commits +$ jj log +○  pxssrovn jjfan@example.com 2024-09-04 19:32:07 second f3d448cf +│  second +│ @  mnrltoyz jjfan@example.com 2024-09-04 19:32:07 ff8340a7 conflict +├─╯  (empty) (no description set) +×  mnksvwsq jjfan@example.com 2024-09-04 19:32:07 third 1395ab1c conflict +│  third +○  zwlynwuo jjfan@example.com 2024-09-04 19:32:07 first 23b66a7d +│  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: tllxozup acb9a438 (empty) (no description set) +Parent commit      : pxssrovn f3d448cf second | second +Added 0 files, modified 1 files, removed 0 files +$ cat file +third -# 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: yqxnlxwy 3adce64a (empty) (no description set) -Parent commit      : uxwutvtk 24797e0f 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: yqxnlxwy fc5c4bf3 (empty) (no description set) -Parent commit      : uxwutvtk c82c762d second | second -Added 0 files, modified 1 files, removed 0 files -$ jj new second third -m merged -Working copy now at: ssplpltu 8cd63e4d (empty) merged -Parent commit      : uxwutvtk c82c762d second | second -Parent commit      : kxkysnnp a4fd3609 third | (conflict) third -Added 0 files, modified 1 files, removed 0 files -$ jj log -@    ssplpltu jjfan@example.com 2024-09-04 19:21:08 8cd63e4d -├─╮  (empty) merged -│ ×  kxkysnnp jjfan@example.com 2024-09-04 19:21:08 third a4fd3609 conflict -│ │  third -○ │  uxwutvtk jjfan@example.com 2024-09-04 19:21:08 second c82c762d -├─╯  second -○  mmykwquz jjfan@example.com 2024-09-04 19:21:07 first 66a5c156 -│  first -  zzzzzzzz root() 00000000 - -# Again, because the merge commit has the -# changes from all three commits, it has no -# conflict. - +# 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: tllxozup d999f947 (empty) (no description set) +Parent commit      : pxssrovn a8719aaa second | second +Added 0 files, modified 1 files, removed 0 files +$ jj new second third -m merged +Working copy now at: xkynxupu e5bb9694 (empty) merged +Parent commit      : pxssrovn a8719aaa second | second +Parent commit      : mnksvwsq 1395ab1c third | (conflict) third +Added 0 files, modified 1 files, removed 0 files +$ jj log +@    xkynxupu jjfan@example.com 2024-09-04 19:32:07 e5bb9694 +├─╮  (empty) merged +│ ×  mnksvwsq jjfan@example.com 2024-09-04 19:32:07 third 1395ab1c conflict +│ │  third +○ │  pxssrovn jjfan@example.com 2024-09-04 19:32:07 second a8719aaa +├─╯  second +○  zwlynwuo jjfan@example.com 2024-09-04 19:32:07 first 23b66a7d +│  first +  zzzzzzzz root() 00000000 + +# Again, because the merge commit has the +# changes from all three commits, it has no +# conflict. +