mirror of
https://github.com/martinvonz/jj.git
synced 2024-09-11 13:56:29 +03:00
demos: add demo showing how conflicting commits can be rebased etc
This commit is contained in:
parent
bf64f89521
commit
798b4bc897
@ -76,9 +76,14 @@ Features:
|
|||||||
This design also lets Jujutsu rebase merge commits correctly (unlike both Git
|
This design also lets Jujutsu rebase merge commits correctly (unlike both Git
|
||||||
and Mercurial).
|
and Mercurial).
|
||||||
|
|
||||||
|
Basic conflict resolution:
|
||||||
<a href="https://asciinema.org/a/MWQz2nAprRXevQEYtaHScN2tJ" target="_blank">
|
<a href="https://asciinema.org/a/MWQz2nAprRXevQEYtaHScN2tJ" target="_blank">
|
||||||
<img src="https://asciinema.org/a/MWQz2nAprRXevQEYtaHScN2tJ.svg" />
|
<img src="https://asciinema.org/a/MWQz2nAprRXevQEYtaHScN2tJ.svg" />
|
||||||
</a>
|
</a>
|
||||||
|
Juggling conflicts:
|
||||||
|
<a href="https://asciinema.org/a/HqYA9SL2tzarPAErpYs684GGR" target="_blank">
|
||||||
|
<img src="https://asciinema.org/a/HqYA9SL2tzarPAErpYs684GGR.svg" />
|
||||||
|
</a>
|
||||||
|
|
||||||
* **Automatic rebase**
|
* **Automatic rebase**
|
||||||
|
|
||||||
|
60
demos/demo_juggle_conflicts.sh
Executable file
60
demos/demo_juggle_conflicts.sh
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
. "$(dirname "$0")"/demo_helpers.sh
|
||||||
|
parse_args "$@"
|
||||||
|
|
||||||
|
new_tmp_dir
|
||||||
|
jj init
|
||||||
|
echo "first" > file
|
||||||
|
jj branch first
|
||||||
|
jj close -m 'first'
|
||||||
|
echo "second" > file
|
||||||
|
jj branch second
|
||||||
|
jj close -m 'second'
|
||||||
|
echo "third" > file
|
||||||
|
jj branch third
|
||||||
|
jj close -m 'third'
|
||||||
|
|
||||||
|
run_demo 'Juggling conflicts' '
|
||||||
|
run_command "# We are in a repo with three commits, all"
|
||||||
|
run_command "# editing the same line:"
|
||||||
|
run_command "jj log"
|
||||||
|
pause 3
|
||||||
|
|
||||||
|
run_command "jj diff -r first"
|
||||||
|
pause 1
|
||||||
|
run_command "jj diff -r second"
|
||||||
|
pause 1
|
||||||
|
run_command "jj diff -r third"
|
||||||
|
run_command ""
|
||||||
|
pause 2
|
||||||
|
|
||||||
|
run_command "# 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"
|
||||||
|
pause 3
|
||||||
|
run_command "# The commit labeled \"third\" has a conflict,"
|
||||||
|
run_command "# as expected. What'\''s more interesting is"
|
||||||
|
run_command "# that the top commit has no conflict! That'\''s"
|
||||||
|
run_command "# because it has the changes from all three"
|
||||||
|
run_command "# commits applied to it."
|
||||||
|
run_command ""
|
||||||
|
pause 5
|
||||||
|
|
||||||
|
run_command "# Let'\''s verify that by looking at its contents:"
|
||||||
|
run_command "jj co second"
|
||||||
|
run_command "cat file"
|
||||||
|
run_command ""
|
||||||
|
pause 3
|
||||||
|
|
||||||
|
run_command "# Let'\''s now instead make \"second\" and \"third\""
|
||||||
|
run_command "# sibling and merge them:"
|
||||||
|
run_command "jj rebase -s second -d first"
|
||||||
|
run_command "jj merge second third -m merged"
|
||||||
|
run_command "jj log"
|
||||||
|
pause 3
|
||||||
|
run_command "# Again, because the merge commit has the"
|
||||||
|
run_command "# changes from all three commits, it has no"
|
||||||
|
run_command "# conflict."
|
||||||
|
'
|
Loading…
Reference in New Issue
Block a user