jj/demos/demo_juggle_conflicts.sh
Ilya Grigoriev 1cc10783a2 demos: update demos as little as possible to regenerate them
This updates demos to the point where they can run without
warnings. Some of them become less clear, this is addressed
(where I noticed it) in follow-up commits.

Fixes #3209
2024-09-05 17:33:46 -07:00

48 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
set -euo pipefail
. "$(dirname "$0")"/helpers.sh
new_tmp_dir
(
jj init --config-toml ui.allow-init-native=true
echo "first" > file
jj branch create first
jj commit -m 'first'
echo "second" > file
jj branch create second
jj commit -m 'second'
echo "third" > file
jj branch create third
jj commit -m 'third'
) >/dev/null 2>&1
comment "We are in a repo with three commits, all
editing the same line:"
run_command "jj log"
run_command "jj diff -r first"
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 "jj rebase -s second -d third"
run_command "jj log"
comment "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:"
run_command "jj new second"
run_command "cat file"
comment "Let's now instead make \"second\" and \"third\"
sibling and merge them:"
run_command "jj rebase -s second -d first"
run_command "jj new second third -m merged"
run_command "jj log"
comment "Again, because the merge commit has the
changes from all three commits, it has no
conflict."
blank