ok/jj
1
0
Fork 0
forked from mirrors/jj

demos: add demo of automatic working copy commit

This commit is contained in:
Martin von Zweigbergk 2021-10-22 13:56:30 -07:00
parent f72e53376f
commit 74e21acd02
2 changed files with 51 additions and 0 deletions

View file

@ -45,6 +45,13 @@ Features:
changes (you can even check out a different commit while resolving merge
conflicts).
<details>
<summary>Demo</summary>
<a href="https://asciinema.org/a/k2V5ePk89kQZg7HAGaELkl2qo" target="_blank">
<img src="https://asciinema.org/a/k2V5ePk89kQZg7HAGaELkl2qo.svg" />
</a>
</details>
* **Operations update the repo first, then possibly the working copy**
The working copy is only updated at the end of an operation, after all other

44
demos/demo_working_copy.sh Executable file
View file

@ -0,0 +1,44 @@
#!/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 'The working copy is automatically committed' '
run_command "# We are in the octocat/Hello-World repo."
run_command "# We have an empty working copy on top of master:"
run_command "jj log"
sleep 5
run_command "jj status"
sleep 2
run_command "# Now make some changes in the working copy:"
run_command "echo \"Goodbye World!\" > README"
run_command "echo stuff > new-file"
run_command "# Our working copy commit id changed because we made changes:"
run_command "jj status"
sleep 5
run_command "# Add a branch so we can easily refer to this commit:"
run_command "jj branch goodbye"
sleep 2
run_command "# Start working on a new change off of master:"
run_command "jj co master"
sleep 2
run_command "# Note that the working copy is now clean; the \"goodbye\" change stayed in its own commit:"
run_command "jj status"
sleep 5
run_command "# Modify a file in this new change:"
run_command "echo \"Hello everyone!\" > README"
sleep 2
run_command "# The working copy is not special; we can, for example, set the description of any commit."
run_command "# First, set it on the working copy:"
run_command "jj describe -m everyone"
sleep 2
run_command "# Now set it on the change we worked on before:"
run_command "jj describe goodbye -m goodbye"
sleep 2
run_command "# Inspect the result:"
run_command "jj log"
'