demos: add demo of basic conflict resolution

This commit is contained in:
Martin von Zweigbergk 2021-10-23 09:06:40 -07:00
parent 78050b3d42
commit c661181e08
2 changed files with 52 additions and 0 deletions

View file

@ -82,6 +82,13 @@ Features:
This design also lets Jujutsu rebase merge commits correctly (unlike both Git
and Mercurial).
<details>
<summary>Demo</summary>
<a href="https://asciinema.org/a/AIZkWG7VFCklZZTfFw3jSqH7f" target="_blank">
<img src="https://asciinema.org/a/AIZkWG7VFCklZZTfFw3jSqH7f.svg" />
</a>
</details>
* **Automatic rebase**
Whenever you modify a commit, any descendants of the old commit will be

45
demos/demo_resolve_conflict.sh Executable file
View file

@ -0,0 +1,45 @@
#!/bin/bash
set -euo pipefail
. "$(dirname "$0")"/demo_helpers.sh
parse_args "$@"
new_tmp_dir
jj git clone https://github.com/octocat/Hello-World
cd Hello-World
run_demo 'Basic conflict resolution flow' '
run_command "# We are on the master branch of the octocat/Hello-World repo:"
run_command "jj log"
pause 7
run_command "# Let'\''s make an edit that will conflict when we rebase it:"
run_command "jj describe -m \"README: be specific about which world\""
run_command "echo \"Hello Earth!\" > README"
run_command "jj diff"
pause 2
run_command "# We'\''re going to rebase it onto commit b1. That commit looks like this:"
run_command "jj diff -r b1"
pause 2
run_command "# Now rebase:"
run_command "jj rebase -d b1"
run_command "# Huh, that seemed to succeed. Let'\''s take a look at the repo:"
pause 3
run_command "jj log"
pause 5
run_command "# As you can see, the rebased commit has a conflict. The working copy is on top of the conflict."
run_command "# The file in the working copy looks like this:"
run_command "cat README"
pause 5
run_command "# Now we will resolve the conflict:"
run_command "echo \"Hello earth!\" > README"
pause 2
run_command "# The diff of the conflict resolution looks like this:"
run_command "jj diff"
pause 5
run_command "# We now squash the conflict resolution into the conflicted parent change:"
run_command "jj squash"
pause 2
run_command "# Looks good now:"
run_command "jj log"
pause 3
run_command "jj diff"
'