diff --git a/demos/demo_git_compat.sh b/demos/demo_git_compat.sh index 6b841c88bf..b45e37578b 100755 --- a/demos/demo_git_compat.sh +++ b/demos/demo_git_compat.sh @@ -10,6 +10,7 @@ run_command "cd Hello-World" comment "Inspect it:" run_command "jj log -r 'all()'" +blank run_command "jj diff -r b1" comment "The repo is backed by the actual Git repo:" diff --git a/demos/demo_juggle_conflicts.sh b/demos/demo_juggle_conflicts.sh index 9ce0179b7a..3016726631 100755 --- a/demos/demo_juggle_conflicts.sh +++ b/demos/demo_juggle_conflicts.sh @@ -28,13 +28,11 @@ 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." +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. -comment "Let's verify that by looking at its contents:" +Let's verify that by looking at its contents:" run_command "jj co second" run_command "cat file" diff --git a/demos/demo_resolve_conflicts.sh b/demos/demo_resolve_conflicts.sh index a83dc646e2..d4f8a3cf50 100755 --- a/demos/demo_resolve_conflicts.sh +++ b/demos/demo_resolve_conflicts.sh @@ -16,21 +16,20 @@ run_command "jj describe -m \"README: say which world\"" run_command "echo \"Hello Earth!\" > README" run_command "jj diff" -comment "We're going to rebase it onto commit b1. +comment "We're going to rebase it onto commit b1b. That commit looks like this:" -run_command "jj diff -r b1" +run_command "jj diff -r b1b" comment "Now rebase:" -run_command "jj rebase -d b1" +run_command "jj rebase -d b1b" -comment "Huh, that seemed to succeed. Let's take a -look at the repo:" +comment "That seemed to succeed but we are also told there is now a conflict. +Let's take a look at the repo:" run_command "jj log -r 'all()'" run_command "jj status" -comment "As you can see, the rebased commit has a -conflict. The file in the working copy looks -like this:" +comment "Indeed, the rebased commit has a conflict. The conflicted file +in the working copy looks like this:" run_command "cat README" comment "Now we will resolve the conflict:" diff --git a/demos/demo_working_copy.sh b/demos/demo_working_copy.sh index e8085c6c78..9c244a7fb9 100755 --- a/demos/demo_working_copy.sh +++ b/demos/demo_working_copy.sh @@ -8,17 +8,16 @@ cd Hello-World comment "We are in the octocat/Hello-World repo. We have an empty working copy on top of master:" -run_command "jj status" run_command "jj log" +run_command "jj status" comment "Now make some changes in the working copy:" run_command "echo \"Goodbye World!\" > README" run_command "echo stuff > new-file" -comment "Our working copy's commit ID changed -because we made changes:" +comment "Because of these changes, our working copy is no longer marked as \"(empty)\". +Also, its commit ID (starting with a blue character) changed:" run_command "jj status" -run_command "jj log" comment "Add a branch so we can easily refer to this commit:" @@ -27,24 +26,27 @@ run_command "jj log" comment "Start working on a new change off of master:" run_command "jj co master" -run_command "jj log" - -comment "Note that the working copy is now clean; the +comment "Note that we were told the working copy is now empty (AKA clean). The \"goodbye\" change stayed in its own commit:" + +run_command "jj log" +comment "Let's do a sanity check: 'jj status' should tell us that +the working copy is clean." run_command "jj status" comment "Modify a file in this new change:" run_command "echo \"Hello everyone!\" > README" +run_command "jj status" comment "The working copy is not special; we can, for example, set the description of any commit. First, set it on the working copy:" -run_command "jj describe -m everyone" +# The output with the description of the working copy messes up the parallel +# a bit, so we redact it. +run_command_output_redacted "jj describe -m everyone" comment "Now set it on the change we worked on before:" run_command "jj describe goodbye -m goodbye" comment "Inspect the result:" run_command "jj log" - -blank diff --git a/demos/git_compat.svg b/demos/git_compat.svg index 16f0c1dab8..45441227f0 100644 --- a/demos/git_compat.svg +++ b/demos/git_compat.svg @@ -1,5 +1,5 @@ - + - + # Clone a Git repo: $ jj git clone https://github.com/octocat/Hello-World -Fetching into new repo in "/tmp/tmp.FzCQ5K0fCd/Hello-World" -Working copy now at: rmsvpzst e4dbb280 (empty) (no description set) +Fetching into new repo in "/tmp/tmp.UMHV2AG1LD/Hello-World" +Working copy now at: xokvtwwp acd80a84 (empty) (no description set) Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr om Spaceghost/patch-1 Added 1 files, modified 0 files, removed 0 files @@ -49,7 +49,7 @@ # Inspect it: $ jj log -r 'all()' -@  rmsvpzst jjfan@example.com 2023-09-16 21:50:32.000 -07:00 e4dbb280 +@  xokvtwwp jjfan@example.com 2023-09-16 21:51:47.000 -07:00 acd80a84 │  (empty) (no description set) │ ◉  tpstlust support+octocat@github.com 2018-05-10 12:55:19.000 -05:00 ├─╯  octocat-patch-1 b1b3f972 @@ -61,27 +61,28 @@ │ ◉  nznozkvv Johnneylee.rollins@gmail.com 2011-09-13 21:42:41.000 -07:00 ├─╯  76294131 │    New line at end of file. --Signed off by Spaceghost -◉  syktoqts cameron@github.com 2011-01-26 11:06:08.000 -08:00 553c2077 +◉  syktoqts cameron@github.com 2011-01-26 11:06:08.000 -08:00 553c2077 │  first commit ◉  zzzzzzzz root() 00000000 -$ jj diff -r b1 -Modified regular file README: -   1    1: Hello Worldworld! - -# The repo is backed by the actual Git repo: - -$ git --git-dir=.jj/repo/store/git log --graph --all --decorate --oneline -db9d0cd  -e4dbb28  -| * b1b3f97 (origin/octocat-patch-1) sentence case -|/   -| * b3cbd5b (origin/test) Create CONTRIBUTING.md -|/   -*   7fd1a60 (origin/master) Merge pull request #6 from Spaceghost/patch-1 -|\   -| * 7629413 New line at end of file. --Signed off by Spaceghost -|/   -553c207 first commit + +$ jj diff -r b1 +Modified regular file README: +   1    1: Hello Worldworld! + +# The repo is backed by the actual Git repo: + +$ git --git-dir=.jj/repo/store/git log --graph --all --decorate --oneline +51ff0eb  +acd80a8  +| * b1b3f97 (origin/octocat-patch-1) sentence case +|/   +| * b3cbd5b (origin/test) Create CONTRIBUTING.md +|/   +*   7fd1a60 (origin/master) Merge pull request #6 from Spaceghost/patch-1 +|\   +| * 7629413 New line at end of file. --Signed off by Spaceghost +|/   +553c207 first commit diff --git a/demos/helpers.sh b/demos/helpers.sh index cdc2ceeb5e..41cb97b287 100644 --- a/demos/helpers.sh +++ b/demos/helpers.sh @@ -16,6 +16,14 @@ run_command() { COLUMNS=${RUN_COMMAND_COLUMNS-${COLUMNS-80}} eval "$@" } +run_command_output_redacted() { + echo "\$ $@" + # `bash` often resets $COLUMNS, so we also + # allow $RUN_COMMAND_COLUMNS + eval "$@" > /dev/null + echo -e "\033[0;90m... (output redacted) ...\033[0m" +} + run_command_allow_broken_pipe() { run_command "$@" || { EXITCODE="$?" diff --git a/demos/juggle_conflicts.svg b/demos/juggle_conflicts.svg index 20a5933a26..00888f4f79 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 -@  smrqtvtv jjfan@example.com 2023-09-16 21:50:33.426 -07:00 eb215836 +@  nlwqmlmy jjfan@example.com 2023-09-16 21:51:48.195 -07:00 504189c9 │  (empty) (no description set) -◉  oxqyoovk jjfan@example.com 2023-09-16 21:50:33.425 -07:00 third eeb2c6d9 +◉  xzyszrss jjfan@example.com 2023-09-16 21:51:48.195 -07:00 third a8ca2c39 │  third -◉  zyxuklro jjfan@example.com 2023-09-16 21:50:33.383 -07:00 second a713551b +◉  wknlsotp jjfan@example.com 2023-09-16 21:51:48.152 -07:00 second 321b9197 │  second -◉  uyvvvvkm jjfan@example.com 2023-09-16 21:50:33.343 -07:00 first 2b128607 +◉  quvyuzms jjfan@example.com 2023-09-16 21:51:48.111 -07:00 first d489971f │  first -◉  zzzzzzzz root() 00000000 +◉  zzzzzzzz root() 00000000 $ jj diff -r first Added regular file file:         1first @@ -63,68 +63,65 @@ $ jj rebase -s third -d first Rebased 2 commits -Working copy now at: smrqtvtv 8d33adb7 (conflict) (empty) (no description set) -Parent commit      : oxqyoovk 62fea634 third | (conflict) third +Working copy now at: nlwqmlmy d8e37ebd (conflict) (empty) (no description set) +Parent commit      : xzyszrss de63cb4b third | (conflict) third Added 0 files, modified 1 files, removed 0 files $ jj rebase -s second -d third Rebased 1 commits $ jj log -◉  zyxuklro jjfan@example.com 2023-09-16 21:50:33.563 -07:00 second 48e9acfd +◉  wknlsotp jjfan@example.com 2023-09-16 21:51:48.332 -07:00 second 8f8bac87 │  second -│ @  smrqtvtv jjfan@example.com 2023-09-16 21:50:33.537 -07:00 8d33adb7 conflict +│ @  nlwqmlmy jjfan@example.com 2023-09-16 21:51:48.306 -07:00 d8e37ebd conflict ├─╯  (empty) (no description set) -◉  oxqyoovk jjfan@example.com 2023-09-16 21:50:33.537 -07:00 third 62fea634 +◉  xzyszrss jjfan@example.com 2023-09-16 21:51:48.306 -07:00 third de63cb4b │  conflict │  third -◉  uyvvvvkm jjfan@example.com 2023-09-16 21:50:33.343 -07:00 first 2b128607 +◉  quvyuzms jjfan@example.com 2023-09-16 21:51:48.111 -07:00 first d489971f │  first -◉  zzzzzzzz root() 00000000 +◉  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. +# 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: - -# Let's verify that by looking at its contents: - -$ jj co second -Working copy now at: unwqytsp 79bcefe9 (empty) (no description set) -Parent commit      : zyxuklro 48e9acfd second | second -Added 0 files, modified 1 files, removed 0 files -$ cat file -third +$ jj co second +Working copy now at: vsuomnmq 4ae374a0 (empty) (no description set) +Parent commit      : wknlsotp 8f8bac87 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: -# 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: unwqytsp a64d5bfa (empty) (no description set) -Parent commit      : zyxuklro f9813715 second | second -Added 0 files, modified 1 files, removed 0 files -$ jj merge second third -m merged -Working copy now at: rolvyyqw b2089d05 (empty) merged -Parent commit      : zyxuklro f9813715 second | second -Parent commit      : oxqyoovk 62fea634 third | (conflict) third -Added 0 files, modified 1 files, removed 0 files -$ jj log -@    rolvyyqw jjfan@example.com 2023-09-16 21:50:33.661 -07:00 b2089d05 -├─╮  (empty) merged -│ ◉  oxqyoovk jjfan@example.com 2023-09-16 21:50:33.537 -07:00 third 62fea634 -│ │  conflict -│ │  third -◉ │  zyxuklro jjfan@example.com 2023-09-16 21:50:33.640 -07:00 second f9813715 -├─╯  second -◉  uyvvvvkm jjfan@example.com 2023-09-16 21:50:33.343 -07:00 first 2b128607 -│  first -◉  zzzzzzzz root() 00000000 - -# Again, because the merge commit has the -# changes from all three commits, it has no -# conflict. - +$ jj rebase -s second -d first +Rebased 2 commits +Working copy now at: vsuomnmq d04b0955 (empty) (no description set) +Parent commit      : wknlsotp 823278c1 second | second +Added 0 files, modified 1 files, removed 0 files +$ jj merge second third -m merged +Working copy now at: qtlpwvur 729f9143 (empty) merged +Parent commit      : wknlsotp 823278c1 second | second +Parent commit      : xzyszrss de63cb4b third | (conflict) third +Added 0 files, modified 1 files, removed 0 files +$ jj log +@    qtlpwvur jjfan@example.com 2023-09-16 21:51:48.431 -07:00 729f9143 +├─╮  (empty) merged +│ ◉  xzyszrss jjfan@example.com 2023-09-16 21:51:48.306 -07:00 third de63cb4b +│ │  conflict +│ │  third +◉ │  wknlsotp jjfan@example.com 2023-09-16 21:51:48.409 -07:00 second 823278c1 +├─╯  second +◉  quvyuzms jjfan@example.com 2023-09-16 21:51:48.111 -07:00 first d489971f +│  first +◉  zzzzzzzz root() 00000000 + +# Again, because the merge commit has the +# changes from all three commits, it has no +# conflict. + diff --git a/demos/operation_log.svg b/demos/operation_log.svg index 18d318188a..4f73e60ea7 100644 --- a/demos/operation_log.svg +++ b/demos/operation_log.svg @@ -41,15 +41,15 @@ # so far: $ jj op log -@  944b06270a2c jjfan@jujube now, lasted 1 millisecond +@  8ca677f37a58 jjfan@jujube now, lasted 2 milliseconds │  check out git remote's default branch │  args: jj git clone https://github.com/octocat/Hello-World -◉  63095284120d jjfan@jujube now, lasted 457 milliseconds +◉  3f0aadc5d876 jjfan@jujube now, lasted 415 milliseconds │  fetch from git remote into empty repo │  args: jj git clone https://github.com/octocat/Hello-World -◉  e663308954fa jjfan@jujube now, lasted 1 millisecond +◉  fbaa9c3fb38a jjfan@jujube now, lasted less than a microsecond │  add workspace 'default' -◉  95c48e65122a jjfan@jujube now, lasted less than a microsecond +◉  960733a90afe jjfan@jujube now, lasted less than a microsecond    initialize repo # We are going to make some changes to show @@ -58,12 +58,12 @@ $ echo stuff > new-file $ jj describe -m stuff -Working copy now at: lsywywpx 13ac5438 stuff +Working copy now at: szvkxkwt d6987db4 stuff Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr om Spaceghost/patch-1 $ jj rebase -d test Rebased 1 commits -Working copy now at: lsywywpx 377355e1 stuff +Working copy now at: szvkxkwt 3ce39fb2 stuff Parent commit      : kowxouwz b3cbd5bb test | Create CONTRIBUTING.md Added 1 files, modified 0 files, removed 0 files @@ -71,25 +71,25 @@ # master: $ jj co master -Working copy now at: luvqloow cb520197 (empty) (no description set) -Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr +Working copy now at: oxvxrtst 408dfdf5 (empty) (no description set) +Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr om Spaceghost/patch-1 Added 0 files, modified 0 files, removed 2 files $ jj describe -m "other stuff" -Working copy now at: luvqloow 8d738e0e (empty) other stuff -Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr +Working copy now at: oxvxrtst 3f8860fb (empty) other stuff +Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr om Spaceghost/patch-1 # The repo now looks like this: $ jj log -@  luvqloow jjfan@example.com 2023-09-16 21:50:34.000 -07:00 8d738e0e +@  oxvxrtst jjfan@example.com 2023-09-16 21:51:49.000 -07:00 3f8860fb │  (empty) other stuff -│ ◉  lsywywpx jjfan@example.com 2023-09-16 21:50:34.000 -07:00 377355e1 +│ ◉  szvkxkwt jjfan@example.com 2023-09-16 21:51:49.000 -07:00 3ce39fb2 │ │  stuff │ ◉  kowxouwz octocat@nowhere.com 2014-06-10 15:22:26.000 -07:00 test b3cbd5bb ├─╯  Create CONTRIBUTING.md -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b │  (empty) Merge pull request #6 from Spaceghost/patch-1 ~ @@ -97,71 +97,71 @@ # is: $ jj op log | head -@  d62203e95faf jjfan@jujube now, lasted less than a microsecond -│  describe commit cb5201978464f88695bd4791598d45a21be0c271 +@  5d408abd5b1c jjfan@jujube now, lasted 1 millisecond +│  describe commit 408dfdf515d19b30d485c3d6904c024207c260a5 │  args: jj describe -m 'other stuff' -◉  b70193b4854c jjfan@jujube now, lasted 1 millisecond +◉  d85920be4d80 jjfan@jujube now, lasted 1 millisecond │  check out commit 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d │  args: jj co master -◉  1134b48562b5 jjfan@jujube now, lasted 1 millisecond -│  rebase commit 13ac54383ddc28c356c3a2ce66f6d20216362f0d and descendants +◉  6187fc2310c8 jjfan@jujube now, lasted 1 millisecond +│  rebase commit d6987db4a5030cee88f4a0dc3a93d1ae2660bbf6 and descendants │  args: jj rebase -d test -◉  f7adf9a1d5dc jjfan@jujube now, lasted 1 millisecond +◉  b27469a5a186 jjfan@jujube now, lasted 1 millisecond # Let's undo that rebase operation: -$ jj undo d62203e9 -Working copy now at: luvqloow cb520197 (empty) (no description set) -Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr +$ jj undo 5d408abd +Working copy now at: oxvxrtst 408dfdf5 (empty) (no description set) +Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr om Spaceghost/patch-1 # Note that only the rebase was undone, and the # subsequent "other stuff" change was not undone: $ jj log -@  luvqloow jjfan@example.com 2023-09-16 21:50:33.000 -07:00 cb520197 +@  oxvxrtst jjfan@example.com 2023-09-16 21:51:48.000 -07:00 408dfdf5 │  (empty) (no description set) -│ ◉  lsywywpx jjfan@example.com 2023-09-16 21:50:34.000 -07:00 377355e1 +│ ◉  szvkxkwt jjfan@example.com 2023-09-16 21:51:49.000 -07:00 3ce39fb2 │ │  stuff │ ◉  kowxouwz octocat@nowhere.com 2014-06-10 15:22:26.000 -07:00 test b3cbd5bb ├─╯  Create CONTRIBUTING.md -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b │  (empty) Merge pull request #6 from Spaceghost/patch-1 ~ # We can also see what the repo looked like # after the rebase operation: -$ jj --at-op d62203e9 log -@  luvqloow jjfan@example.com 2023-09-16 21:50:34.000 -07:00 8d738e0e +$ jj --at-op 5d408abd log +@  oxvxrtst jjfan@example.com 2023-09-16 21:51:49.000 -07:00 3f8860fb │  (empty) other stuff -│ ◉  lsywywpx jjfan@example.com 2023-09-16 21:50:34.000 -07:00 377355e1 +│ ◉  szvkxkwt jjfan@example.com 2023-09-16 21:51:49.000 -07:00 3ce39fb2 │ │  stuff │ ◉  kowxouwz octocat@nowhere.com 2014-06-10 15:22:26.000 -07:00 test b3cbd5bb ├─╯  Create CONTRIBUTING.md -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b │  (empty) Merge pull request #6 from Spaceghost/patch-1 ~ # Let's say we instead want to go back to the # state of the repo right after the rebase: -$ jj op restore d62203e9 -Working copy now at: luvqloow 8d738e0e (empty) other stuff -Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr +$ jj op restore 5d408abd +Working copy now at: oxvxrtst 3f8860fb (empty) other stuff +Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr om Spaceghost/patch-1 # We're now back to before the "other stuff" # change existed: $ jj log -@  luvqloow jjfan@example.com 2023-09-16 21:50:34.000 -07:00 8d738e0e +@  oxvxrtst jjfan@example.com 2023-09-16 21:51:49.000 -07:00 3f8860fb │  (empty) other stuff -│ ◉  lsywywpx jjfan@example.com 2023-09-16 21:50:34.000 -07:00 377355e1 +│ ◉  szvkxkwt jjfan@example.com 2023-09-16 21:51:49.000 -07:00 3ce39fb2 │ │  stuff │ ◉  kowxouwz octocat@nowhere.com 2014-06-10 15:22:26.000 -07:00 test b3cbd5bb ├─╯  Create CONTRIBUTING.md -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b │  (empty) Merge pull request #6 from Spaceghost/patch-1 ~ diff --git a/demos/resolve_conflicts.svg b/demos/resolve_conflicts.svg index 702b21a103..804df4e6bf 100644 --- a/demos/resolve_conflicts.svg +++ b/demos/resolve_conflicts.svg @@ -1,5 +1,5 @@ - + - + # We are on the master branch of the # octocat/Hello-World repo: $ jj log -r 'all()' -@  vzlkrspz jjfan@example.com 2023-09-16 21:50:36.000 -07:00 fe0c497b +@  uoxrvpoz jjfan@example.com 2023-09-16 21:51:51.000 -07:00 ac41e299 │  (empty) (no description set) │ ◉  tpstlust support+octocat@github.com 2018-05-10 12:55:19.000 -05:00 ├─╯  octocat-patch-1 b1b3f972 @@ -60,7 +60,7 @@ # when we rebase it: $ jj describe -m "README: say which world" -Working copy now at: vzlkrspz a87fe7e1 (empty) README: say which world +Working copy now at: uoxrvpoz 12fc0645 (empty) README: say which world Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr om Spaceghost/patch-1 $ echo "Hello Earth!" > README @@ -68,26 +68,26 @@ Modified regular file README:    1    1: Hello WorldEarth! -# We're going to rebase it onto commit b1. +# We're going to rebase it onto commit b1b. # That commit looks like this: -$ jj diff -r b1 +$ jj diff -r b1b Modified regular file README:    1    1: Hello Worldworld! # Now rebase: -$ jj rebase -d b1 +$ jj rebase -d b1b Rebased 1 commits -Working copy now at: vzlkrspz 28bf7e6c (conflict) README: say which world +Working copy now at: uoxrvpoz 6ca8e23b (conflict) README: say which world Parent commit      : tpstlust b1b3f972 octocat-patch-1 | sentence case Added 0 files, modified 1 files, removed 0 files -# Huh, that seemed to succeed. Let's take a -# look at the repo: +# That seemed to succeed but we are also told there is now a conflict. +# Let's take a look at the repo: $ jj log -r 'all()' -@  vzlkrspz jjfan@example.com 2023-09-16 21:50:36.000 -07:00 28bf7e6c conflict +@  uoxrvpoz jjfan@example.com 2023-09-16 21:51:51.000 -07:00 6ca8e23b conflict │  README: say which world ◉  tpstlust support+octocat@github.com 2018-05-10 12:55:19.000 -05:00 │  octocat-patch-1 b1b3f972 @@ -107,33 +107,32 @@ M README There are unresolved conflicts at these paths: README    2-sided conflict -Working copy : vzlkrspz 28bf7e6c (conflict) README: say which world +Working copy : uoxrvpoz 6ca8e23b (conflict) README: say which world Parent commit: tpstlust b1b3f972 octocat-patch-1 | sentence case -# As you can see, the rebased commit has a -# conflict. The file in the working copy looks -# like this: - -$ cat README -<<<<<<< -%%%%%%% --Hello World! -+Hello world! -+++++++ -Hello Earth! ->>>>>>> - -# Now we will resolve the conflict: - -$ echo "Hello earth!" > README - -# The status command no longer reports it: - -$ jj status -Working copy changes: -M README -Working copy : vzlkrspz a434efad README: say which world -Parent commit: tpstlust b1b3f972 octocat-patch-1 | sentence case +# Indeed, the rebased commit has a conflict. The conflicted file +# in the working copy looks like this: + +$ cat README +<<<<<<< +%%%%%%% +-Hello World! ++Hello world! ++++++++ +Hello Earth! +>>>>>>> + +# Now we will resolve the conflict: + +$ echo "Hello earth!" > README + +# The status command no longer reports it: + +$ jj status +Working copy changes: +M README +Working copy : uoxrvpoz cd7fce0f README: say which world +Parent commit: tpstlust b1b3f972 octocat-patch-1 | sentence case diff --git a/demos/working_copy.svg b/demos/working_copy.svg index 9c1ff98c18..bb60a38ce1 100644 --- a/demos/working_copy.svg +++ b/demos/working_copy.svg @@ -1,5 +1,5 @@ - + - + # We are in the octocat/Hello-World repo. # We have an empty working copy on top of master: -$ jj status -The working copy is clean -Working copy : lpotmuxz 950f3f73 (empty) (no description set) -Parent commit: orrkosyo 7fd1a60b master | (empty) Merge pull request #6 from Spa -ceghost/patch-1 -$ jj log -@  lpotmuxz jjfan@example.com 2023-09-16 21:50:37.000 -07:00 950f3f73 -│  (empty) (no description set) -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b -│  (empty) Merge pull request #6 from Spaceghost/patch-1 -~ +$ jj log +@  xsnkntmo jjfan@example.com 2023-09-16 21:51:52.000 -07:00 e3bd92c6 +│  (empty) (no description set) +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +│  (empty) Merge pull request #6 from Spaceghost/patch-1 +~ +$ jj status +The working copy is clean +Working copy : xsnkntmo e3bd92c6 (empty) (no description set) +Parent commit: orrkosyo 7fd1a60b master | (empty) Merge pull request #6 from Spa +ceghost/patch-1 # Now make some changes in the working copy: $ echo "Goodbye World!" > README $ echo stuff > new-file -# Our working copy's commit ID changed -# because we made changes: +# Because of these changes, our working copy is no longer marked as "(empty)". +# Also, its commit ID (starting with a blue character) changed: $ jj status Working copy changes: M README A new-file -Working copy : lpotmuxz fe6a4af3 (no description set) -Parent commit: orrkosyo 7fd1a60b master | (empty) Merge pull request #6 from Spa +Working copy : xsnkntmo 7698a687 (no description set) +Parent commit: orrkosyo 7fd1a60b master | (empty) Merge pull request #6 from Spa ceghost/patch-1 -$ jj log -@  lpotmuxz jjfan@example.com 2023-09-16 21:50:37.000 -07:00 fe6a4af3 -│  (no description set) -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b -│  (empty) Merge pull request #6 from Spaceghost/patch-1 -~ - -# Add a branch so we can easily refer to this -# commit: - -$ jj branch create goodbye -$ jj log -@  lpotmuxz jjfan@example.com 2023-09-16 21:50:37.000 -07:00 goodbye fe6a4af3 -│  (no description set) -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b -│  (empty) Merge pull request #6 from Spaceghost/patch-1 -~ - -# Start working on a new change off of master: + +# Add a branch so we can easily refer to this +# commit: + +$ jj branch create goodbye +$ jj log +@  xsnkntmo jjfan@example.com 2023-09-16 21:51:52.000 -07:00 goodbye 7698a687 +│  (no description set) +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +│  (empty) Merge pull request #6 from Spaceghost/patch-1 +~ + +# Start working on a new change off of master: + +$ jj co master +Working copy now at: qvlmntqr 333139e0 (empty) (no description set) +Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr +om Spaceghost/patch-1 +Added 0 files, modified 1 files, removed 1 files -$ jj co master -Working copy now at: ounkkvrs a54c61a2 (empty) (no description set) -Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr -om Spaceghost/patch-1 -Added 0 files, modified 1 files, removed 1 files -$ jj log -@  ounkkvrs jjfan@example.com 2023-09-16 21:50:36.000 -07:00 a54c61a2 -│  (empty) (no description set) -│ ◉  lpotmuxz jjfan@example.com 2023-09-16 21:50:37.000 -07:00 goodbye fe6a4af3 -├─╯  (no description set) -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b -│  (empty) Merge pull request #6 from Spaceghost/patch-1 -~ - -# Note that the working copy is now clean; the -# "goodbye" change stayed in its own commit: - -$ jj status -The working copy is clean -Working copy : ounkkvrs a54c61a2 (empty) (no description set) -Parent commit: orrkosyo 7fd1a60b master | (empty) Merge pull request #6 from Spa -ceghost/patch-1 +# Note that we were told the working copy is now empty (AKA clean). The +# "goodbye" change stayed in its own commit: + +$ jj log +@  qvlmntqr jjfan@example.com 2023-09-16 21:51:51.000 -07:00 333139e0 +│  (empty) (no description set) +│ ◉  xsnkntmo jjfan@example.com 2023-09-16 21:51:52.000 -07:00 goodbye 7698a687 +├─╯  (no description set) +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +│  (empty) Merge pull request #6 from Spaceghost/patch-1 +~ + +# Let's do a sanity check: 'jj status' should tell us that +# the working copy is clean. + +$ jj status +The working copy is clean +Working copy : qvlmntqr 333139e0 (empty) (no description set) +Parent commit: orrkosyo 7fd1a60b master | (empty) Merge pull request #6 from Spa +ceghost/patch-1 + +# Modify a file in this new change: -# Modify a file in this new change: - -$ echo "Hello everyone!" > README - -# The working copy is not special; we can, for -# example, set the description of any commit. -# First, set it on the working copy: +$ echo "Hello everyone!" > README +$ jj status +Working copy changes: +M README +Working copy : qvlmntqr 724c7e24 (no description set) +Parent commit: orrkosyo 7fd1a60b master | (empty) Merge pull request #6 from Spa +ceghost/patch-1 -$ jj describe -m everyone -Working copy now at: ounkkvrs efab10c4 everyone -Parent commit      : orrkosyo 7fd1a60b master | (empty) Merge pull request #6 fr -om Spaceghost/patch-1 - -# Now set it on the change we worked on before: +# The working copy is not special; we can, for +# example, set the description of any commit. +# First, set it on the working copy: + +$ jj describe -m everyone +... (output redacted) ... -$ jj describe goodbye -m goodbye +# Now set it on the change we worked on before: -# Inspect the result: +$ jj describe goodbye -m goodbye -$ jj log -◉  lpotmuxz jjfan@example.com 2023-09-16 21:50:38.000 -07:00 goodbye 5e859fe3 -│  goodbye -│ @  ounkkvrs jjfan@example.com 2023-09-16 21:50:38.000 -07:00 efab10c4 -├─╯  everyone -◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b -│  (empty) Merge pull request #6 from Spaceghost/patch-1 -~ +# Inspect the result: + +$ jj log +◉  xsnkntmo jjfan@example.com 2023-09-16 21:51:52.000 -07:00 goodbye 800798af +│  goodbye +│ @  qvlmntqr jjfan@example.com 2023-09-16 21:51:52.000 -07:00 ca5c2303 +├─╯  everyone +◉  orrkosyo octocat@nowhere.com 2012-03-06 15:06:50.000 -08:00 master 7fd1a60b +│  (empty) Merge pull request #6 from Spaceghost/patch-1 +~