demos: add demos/README.md and run scripts to generate SVGs

PNGs are updated in a descendant commit
This commit is contained in:
Ilya Grigoriev 2023-09-09 23:07:21 -07:00
parent 5e697dc1f3
commit 0d8c5e12f8
7 changed files with 746 additions and 2 deletions

44
demos/README.md Normal file
View File

@ -0,0 +1,44 @@
# Screenshots with demos and scripts to generate them
The `demo_*.sh` scripts in this directory demo
various features of `jj`.
The `run_scripts.sh` script can be used to:
- Run them inside a standardized environment instead of the user's local
environment.
- Generate SVG and PNG images for the scripts.
The PNG images in the repo may be slightly older, as they take up more space in
the repo.
The SVG images have human-readable diffs, but may look different on different
computers with different fonts installed.
## Running `run_scripts.sh`
This requires ImageMagick and `term-transcript-cli` to be installed. See
`run_scripts.sh`'s error messages for some more details. On Debian Linux, it
also seems helpful to `sudo apt install inkscape`; ImageMagick seems to use
either Inkscape itself or some dependency of it.
One way to make all the images and check the output is:
```shell
cd demos
./run_scripts.sh demo_*.sh |less
```
### A note on fonts
The exact PNG output depends on the fonts you have installed on your system.
The screenshots are usually generated on a Debian Linux system and use the "Fira
Code" font. It can be installed with `sudo apt install fonts-firacode`. It seems
to include all relevant Unicode symbols and be a little bolder and thus more
readable than the "Liberation Mono" font, which is used if Fira Code is not
installed. That font also works OK. See the CSS font specification in
`run_scripts.sh` for other fonts tried (especially when viewing SVGs on the
web). If none apply, the default `monospace` font will be used.
`convert -list Fonts` will list the fonts ImageMagick is aware of.

87
demos/git_compat.svg Normal file
View File

@ -0,0 +1,87 @@
<!-- Created with term-transcript v0.3.0 (https://github.com/slowli/term-transcript) -->
<svg viewBox="0 0 720 866" width="720" height="866" xmlns="http://www.w3.org/2000/svg">
<style>
.container {
font: 14px Fira Code, Liberation Mono, SFMono-Regular, Consolas, Menlo, monospace;
line-height: 18px;
}
.input,.output,.output-bg {
white-space: pre;
}
.input-bg { fill: #fff; fill-opacity: 0.1; }
.output-bg { user-select: none; text-rendering: geometricPrecision; stroke-width: 0.1; }
.bold,.prompt { font-weight: 600; }
.italic { font-style: italic; }
.underline { text-decoration: underline; }
.dimmed { fill-opacity: 0.7; }
.hard-br { font-size: 16px; fill-opacity: 0.8; user-select: none; }
.fg0 { fill: #0c0c0c; } .output-bg .fg0 { stroke: #0c0c0c; }
.fg1 { fill: #c50f1f; } .output-bg .fg1 { stroke: #c50f1f; }
.fg2 { fill: #13a10e; } .output-bg .fg2 { stroke: #13a10e; }
.fg3 { fill: #c19c00; } .output-bg .fg3 { stroke: #c19c00; }
.fg4 { fill: #0037da; } .output-bg .fg4 { stroke: #0037da; }
.fg5 { fill: #881798; } .output-bg .fg5 { stroke: #881798; }
.fg6 { fill: #3a96dd; } .output-bg .fg6 { stroke: #3a96dd; }
.fg7 { fill: #cccccc; } .output-bg .fg7 { stroke: #cccccc; }
.fg8 { fill: #767676; } .output-bg .fg8 { stroke: #767676; }
.fg9 { fill: #e74856; } .output-bg .fg9 { stroke: #e74856; }
.fg10 { fill: #16c60c; } .output-bg .fg10 { stroke: #16c60c; }
.fg11 { fill: #f9f1a5; } .output-bg .fg11 { stroke: #f9f1a5; }
.fg12 { fill: #3b78ff; } .output-bg .fg12 { stroke: #3b78ff; }
.fg13 { fill: #b4009e; } .output-bg .fg13 { stroke: #b4009e; }
.fg14 { fill: #61d6d6; } .output-bg .fg14 { stroke: #61d6d6; }
.fg15 { fill: #f2f2f2; } .output-bg .fg15 { stroke: #f2f2f2; }
</style>
<rect width="100%" height="100%" y="0" rx="4.5" style="fill: #0c0c0c;" />
<svg x="0" y="10" width="720" height="846" viewBox="0 0 720 846">
<g class="input-bg"></g>
<text class="container fg7"><tspan xml:space="preserve" x="10" y="14" class="output">
</tspan><tspan xml:space="preserve" x="10" y="32" class="output"><tspan class="fg2"># Clone a Git repo:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="50" class="output">
</tspan><tspan xml:space="preserve" x="10" y="68" class="output">$ jj git clone https://github.com/octocat/Hello-World
</tspan><tspan xml:space="preserve" x="10" y="86" class="output">Fetching into new repo in "/tmp/tmp.PUd3syX7da/Hello-World"
</tspan><tspan xml:space="preserve" x="10" y="104" class="output">Working copy now at: <tspan class="bold fg13">p</tspan><tspan class="bold fg8">xlotqpw</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">e</tspan><tspan class="bold fg8">905ce63</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="122" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 fr<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="140" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="158" class="output">Added 1 files, modified 0 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="176" class="output">$ cd Hello-World
</tspan><tspan xml:space="preserve" x="10" y="194" class="output">
</tspan><tspan xml:space="preserve" x="10" y="212" class="output"><tspan class="fg2"># Inspect it:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="230" class="output">
</tspan><tspan xml:space="preserve" x="10" y="248" class="output">$ jj log -r 'all()'
</tspan><tspan xml:space="preserve" x="10" y="266" class="output">@  <tspan class="bold fg13">p</tspan><tspan class="bold fg8">xlotqpw</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:21.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">e</tspan><tspan class="bold fg8">905ce63</tspan>
</tspan><tspan xml:space="preserve" x="10" y="284" class="output">│  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="302" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="320" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="338" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="356" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="374" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="392" class="output">◉    <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="410" class="output">├─╮  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="428" class="output">│ ◉  <tspan class="bold fg5">n</tspan><tspan class="fg8">znozkvv</tspan> <tspan class="fg3">Johnneylee.rollins@gmail.com</tspan> <tspan class="fg6">2011-09-13 21:42:41.000 -07:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="446" class="output">├─╯  <tspan class="bold fg4">76</tspan><tspan class="fg8">294131</tspan>
</tspan><tspan xml:space="preserve" x="10" y="464" class="output">    New line at end of file. --Signed off by Spaceghost
</tspan><tspan xml:space="preserve" x="10" y="482" class="output">◉  <tspan class="bold fg5">s</tspan><tspan class="fg8">yktoqts</tspan> <tspan class="fg3">cameron@github.com</tspan> <tspan class="fg6">2011-01-26 11:06:08.000 -08:00</tspan> <tspan class="bold fg4">5</tspan><tspan class="fg8">53c2077</tspan>
</tspan><tspan xml:space="preserve" x="10" y="500" class="output">  first commit
</tspan><tspan xml:space="preserve" x="10" y="518" class="output">◉  <tspan class="bold fg5">z</tspan><tspan class="fg8">zzzzzzz</tspan> <tspan class="fg2">root()</tspan> <tspan class="bold fg4">0</tspan><tspan class="fg8">0000000</tspan>
</tspan><tspan xml:space="preserve" x="10" y="536" class="output">$ jj diff -r b1
</tspan><tspan xml:space="preserve" x="10" y="554" class="output"><tspan class="fg3">Modified regular file README:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="572" class="output"><tspan class="fg1">   1</tspan> <tspan class="fg2">   1</tspan>: Hello <tspan class="fg1">World</tspan><tspan class="fg2">world</tspan>!
</tspan><tspan xml:space="preserve" x="10" y="590" class="output">
</tspan><tspan xml:space="preserve" x="10" y="608" class="output"><tspan class="fg2"># The repo is backed by the actual Git repo:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="626" class="output">
</tspan><tspan xml:space="preserve" x="10" y="644" class="output">$ git --git-dir=.jj/repo/store/git log --graph --all --decorate --oneline
</tspan><tspan xml:space="preserve" x="10" y="662" class="output">* <tspan class="fg3">e905ce6</tspan> 
</tspan><tspan xml:space="preserve" x="10" y="680" class="output"><tspan class="fg1">|</tspan> * <tspan class="fg3">d7ab898</tspan> 
</tspan><tspan xml:space="preserve" x="10" y="698" class="output"><tspan class="fg1">|</tspan> * <tspan class="fg3">b1b3f97</tspan><tspan class="fg3"> (</tspan><tspan class="bold fg1">origin/octocat-patch-1</tspan><tspan class="fg3">)</tspan> sentence case
</tspan><tspan xml:space="preserve" x="10" y="716" class="output"><tspan class="fg1">|</tspan><tspan class="fg1">/</tspan>  
</tspan><tspan xml:space="preserve" x="10" y="734" class="output"><tspan class="fg1">|</tspan> * <tspan class="fg3">b3cbd5b</tspan><tspan class="fg3"> (</tspan><tspan class="bold fg1">origin/test</tspan><tspan class="fg3">)</tspan> Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="752" class="output"><tspan class="fg1">|</tspan><tspan class="fg1">/</tspan>  
</tspan><tspan xml:space="preserve" x="10" y="770" class="output">*   <tspan class="fg3">7fd1a60</tspan><tspan class="fg3"> (</tspan><tspan class="bold fg1">origin/master</tspan><tspan class="fg3">)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="788" class="output"><tspan class="fg4">|</tspan><tspan class="fg5">\</tspan>  
</tspan><tspan xml:space="preserve" x="10" y="806" class="output"><tspan class="fg4">|</tspan> * <tspan class="fg3">7629413</tspan> New line at end of file. --Signed off by Spaceghost
</tspan><tspan xml:space="preserve" x="10" y="824" class="output"><tspan class="fg4">|</tspan><tspan class="fg4">/</tspan>  
</tspan><tspan xml:space="preserve" x="10" y="842" class="output">* <tspan class="fg3">553c207</tspan> first commit
</tspan></text>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 9.9 KiB

130
demos/juggle_conflicts.svg Normal file
View File

@ -0,0 +1,130 @@
<!-- Created with term-transcript v0.3.0 (https://github.com/slowli/term-transcript) -->
<svg viewBox="0 0 720 1640" width="720" height="1640" xmlns="http://www.w3.org/2000/svg">
<style>
.container {
font: 14px Fira Code, Liberation Mono, SFMono-Regular, Consolas, Menlo, monospace;
line-height: 18px;
}
.input,.output,.output-bg {
white-space: pre;
}
.input-bg { fill: #fff; fill-opacity: 0.1; }
.output-bg { user-select: none; text-rendering: geometricPrecision; stroke-width: 0.1; }
.bold,.prompt { font-weight: 600; }
.italic { font-style: italic; }
.underline { text-decoration: underline; }
.dimmed { fill-opacity: 0.7; }
.hard-br { font-size: 16px; fill-opacity: 0.8; user-select: none; }
.fg0 { fill: #0c0c0c; } .output-bg .fg0 { stroke: #0c0c0c; }
.fg1 { fill: #c50f1f; } .output-bg .fg1 { stroke: #c50f1f; }
.fg2 { fill: #13a10e; } .output-bg .fg2 { stroke: #13a10e; }
.fg3 { fill: #c19c00; } .output-bg .fg3 { stroke: #c19c00; }
.fg4 { fill: #0037da; } .output-bg .fg4 { stroke: #0037da; }
.fg5 { fill: #881798; } .output-bg .fg5 { stroke: #881798; }
.fg6 { fill: #3a96dd; } .output-bg .fg6 { stroke: #3a96dd; }
.fg7 { fill: #cccccc; } .output-bg .fg7 { stroke: #cccccc; }
.fg8 { fill: #767676; } .output-bg .fg8 { stroke: #767676; }
.fg9 { fill: #e74856; } .output-bg .fg9 { stroke: #e74856; }
.fg10 { fill: #16c60c; } .output-bg .fg10 { stroke: #16c60c; }
.fg11 { fill: #f9f1a5; } .output-bg .fg11 { stroke: #f9f1a5; }
.fg12 { fill: #3b78ff; } .output-bg .fg12 { stroke: #3b78ff; }
.fg13 { fill: #b4009e; } .output-bg .fg13 { stroke: #b4009e; }
.fg14 { fill: #61d6d6; } .output-bg .fg14 { stroke: #61d6d6; }
.fg15 { fill: #f2f2f2; } .output-bg .fg15 { stroke: #f2f2f2; }
</style>
<rect width="100%" height="100%" y="0" rx="4.5" style="fill: #0c0c0c;" />
<svg x="0" y="10" width="720" height="1620" viewBox="0 0 720 1620">
<g class="input-bg"></g>
<text class="container fg7"><tspan xml:space="preserve" x="10" y="14" class="output">
</tspan><tspan xml:space="preserve" x="10" y="32" class="output"><tspan class="fg2"># We are in a repo with three commits, all</tspan>
</tspan><tspan xml:space="preserve" x="10" y="50" class="output"><tspan class="fg2"># editing the same line:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="68" class="output">
</tspan><tspan xml:space="preserve" x="10" y="86" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="104" class="output">@  <tspan class="bold fg13">u</tspan><tspan class="bold fg8">pqsurwq</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:22.258 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">5</tspan><tspan class="bold fg8">d13bfb2</tspan>
</tspan><tspan xml:space="preserve" x="10" y="122" class="output">│  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="140" class="output">◉  <tspan class="bold fg5">l</tspan><tspan class="fg8">tqxzzvn</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.258 -07:00</tspan> <tspan class="fg5">third</tspan> <tspan class="bold fg4">d</tspan><tspan class="fg8">7689062</tspan>
</tspan><tspan xml:space="preserve" x="10" y="158" class="output">  third
</tspan><tspan xml:space="preserve" x="10" y="176" class="output">◉  <tspan class="bold fg5">n</tspan><tspan class="fg8">rlsumvr</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.202 -07:00</tspan> <tspan class="fg5">second</tspan> <tspan class="bold fg4">4</tspan><tspan class="fg8">83c2b23</tspan>
</tspan><tspan xml:space="preserve" x="10" y="194" class="output">  second
</tspan><tspan xml:space="preserve" x="10" y="212" class="output">◉  <tspan class="bold fg5">p</tspan><tspan class="fg8">umwmyut</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.147 -07:00</tspan> <tspan class="fg5">first</tspan> <tspan class="bold fg4">e</tspan><tspan class="fg8">b0ec5cc</tspan>
</tspan><tspan xml:space="preserve" x="10" y="230" class="output">  first
</tspan><tspan xml:space="preserve" x="10" y="248" class="output">◉  <tspan class="bold fg5">z</tspan><tspan class="fg8">zzzzzzz</tspan> <tspan class="fg2">root()</tspan> <tspan class="bold fg4">0</tspan><tspan class="fg8">0000000</tspan>
</tspan><tspan xml:space="preserve" x="10" y="266" class="output">$ jj diff -r first
</tspan><tspan xml:space="preserve" x="10" y="284" class="output"><tspan class="fg3">Added regular file file:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="302" class="output">     <tspan class="fg2">   1</tspan>: <tspan class="fg2">first</tspan>
</tspan><tspan xml:space="preserve" x="10" y="320" class="output">$ jj diff -r second
</tspan><tspan xml:space="preserve" x="10" y="338" class="output"><tspan class="fg3">Modified regular file file:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="356" class="output"><tspan class="fg1">   1</tspan> <tspan class="fg2">   1</tspan>: <tspan class="fg1">first</tspan><tspan class="fg2">second</tspan>
</tspan><tspan xml:space="preserve" x="10" y="374" class="output">$ jj diff -r third
</tspan><tspan xml:space="preserve" x="10" y="392" class="output"><tspan class="fg3">Modified regular file file:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="410" class="output"><tspan class="fg1">   1</tspan> <tspan class="fg2">   1</tspan>: <tspan class="fg1">second</tspan><tspan class="fg2">third</tspan>
</tspan><tspan xml:space="preserve" x="10" y="428" class="output">
</tspan><tspan xml:space="preserve" x="10" y="446" class="output"><tspan class="fg2"># Let's reorder the second and third commits:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="464" class="output">
</tspan><tspan xml:space="preserve" x="10" y="482" class="output">$ jj rebase -s third -d first
</tspan><tspan xml:space="preserve" x="10" y="500" class="output">Rebased 2 commits
</tspan><tspan xml:space="preserve" x="10" y="518" class="output">Working copy now at: <tspan class="bold fg13">u</tspan><tspan class="bold fg8">pqsurwq</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">4d</tspan><tspan class="bold fg8">810169</tspan><tspan class="bold"> </tspan><tspan class="bold fg9">(conflict)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="536" class="output">Parent commit      : <tspan class="bold fg5">l</tspan><tspan class="fg8">tqxzzvn</tspan> <tspan class="bold fg4">0a</tspan><tspan class="fg8">a4eff7</tspan> <tspan class="fg5">third</tspan><tspan class="fg8"> | </tspan><tspan class="fg1">(conflict)</tspan> third
</tspan><tspan xml:space="preserve" x="10" y="554" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="572" class="output">$ jj rebase -s second -d third
</tspan><tspan xml:space="preserve" x="10" y="590" class="output">Rebased 1 commits
</tspan><tspan xml:space="preserve" x="10" y="608" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="626" class="output">◉  <tspan class="bold fg5">n</tspan><tspan class="fg8">rlsumvr</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.435 -07:00</tspan> <tspan class="fg5">second</tspan> <tspan class="bold fg4">a</tspan><tspan class="fg8">8e2d400</tspan>
</tspan><tspan xml:space="preserve" x="10" y="644" class="output">  second
</tspan><tspan xml:space="preserve" x="10" y="662" class="output">│ @  <tspan class="bold fg13">u</tspan><tspan class="bold fg8">pqsurwq</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:22.406 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">4</tspan><tspan class="bold fg8">d810169</tspan><tspan class="bold"> </tspan><tspan class="bold fg9">conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="680" class="output">├─╯  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="698" class="output">◉  <tspan class="bold fg5">l</tspan><tspan class="fg8">tqxzzvn</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.406 -07:00</tspan> <tspan class="fg5">third</tspan> <tspan class="bold fg4">0a</tspan><tspan class="fg8">a4eff7</tspan>
</tspan><tspan xml:space="preserve" x="10" y="716" class="output">│  <tspan class="fg1">conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="734" class="output">  third
</tspan><tspan xml:space="preserve" x="10" y="752" class="output">◉  <tspan class="bold fg5">p</tspan><tspan class="fg8">umwmyut</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.147 -07:00</tspan> <tspan class="fg5">first</tspan> <tspan class="bold fg4">e</tspan><tspan class="fg8">b0ec5cc</tspan>
</tspan><tspan xml:space="preserve" x="10" y="770" class="output">  first
</tspan><tspan xml:space="preserve" x="10" y="788" class="output">◉  <tspan class="bold fg5">z</tspan><tspan class="fg8">zzzzzzz</tspan> <tspan class="fg2">root()</tspan> <tspan class="bold fg4">00</tspan><tspan class="fg8">000000</tspan>
</tspan><tspan xml:space="preserve" x="10" y="806" class="output">
</tspan><tspan xml:space="preserve" x="10" y="824" class="output"><tspan class="fg2"># The commit labeled "third" has a conflict,</tspan>
</tspan><tspan xml:space="preserve" x="10" y="842" class="output"><tspan class="fg2"># as expected. What's more interesting is</tspan>
</tspan><tspan xml:space="preserve" x="10" y="860" class="output"><tspan class="fg2"># that the top commit has no conflict! That's</tspan>
</tspan><tspan xml:space="preserve" x="10" y="878" class="output"><tspan class="fg2"># because it has the changes from all three</tspan>
</tspan><tspan xml:space="preserve" x="10" y="896" class="output"><tspan class="fg2"># commits applied to it.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="914" class="output">
</tspan><tspan xml:space="preserve" x="10" y="932" class="output">
</tspan><tspan xml:space="preserve" x="10" y="950" class="output"><tspan class="fg2"># Let's verify that by looking at its contents:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="968" class="output">
</tspan><tspan xml:space="preserve" x="10" y="986" class="output">$ jj co second
</tspan><tspan xml:space="preserve" x="10" y="1004" class="output">Working copy now at: <tspan class="bold fg13">m</tspan><tspan class="bold fg8">qslnlrv</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">e1</tspan><tspan class="bold fg8">967a3c</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1022" class="output">Parent commit      : <tspan class="bold fg5">n</tspan><tspan class="fg8">rlsumvr</tspan> <tspan class="bold fg4">a</tspan><tspan class="fg8">8e2d400</tspan> <tspan class="fg5">second</tspan><tspan class="fg8"> | </tspan>second
</tspan><tspan xml:space="preserve" x="10" y="1040" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="1058" class="output">$ cat file
</tspan><tspan xml:space="preserve" x="10" y="1076" class="output">third
</tspan><tspan xml:space="preserve" x="10" y="1094" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1112" class="output"><tspan class="fg2"># Let's now instead make "second" and "third"</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1130" class="output"><tspan class="fg2"># sibling and merge them:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1148" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1166" class="output">$ jj rebase -s second -d first
</tspan><tspan xml:space="preserve" x="10" y="1184" class="output">Rebased 2 commits
</tspan><tspan xml:space="preserve" x="10" y="1202" class="output">Working copy now at: <tspan class="bold fg13">m</tspan><tspan class="bold fg8">qslnlrv</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">7</tspan><tspan class="bold fg8">2803a85</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1220" class="output">Parent commit      : <tspan class="bold fg5">n</tspan><tspan class="fg8">rlsumvr</tspan> <tspan class="bold fg4">4</tspan><tspan class="fg8">b5d0b0d</tspan> <tspan class="fg5">second</tspan><tspan class="fg8"> | </tspan>second
</tspan><tspan xml:space="preserve" x="10" y="1238" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="1256" class="output">$ jj merge second third -m merged
</tspan><tspan xml:space="preserve" x="10" y="1274" class="output">Working copy now at: <tspan class="bold fg13">x</tspan><tspan class="bold fg8">pkuouzp</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">7</tspan><tspan class="bold fg8">390c074</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> merged</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1292" class="output">Parent commit      : <tspan class="bold fg5">n</tspan><tspan class="fg8">rlsumvr</tspan> <tspan class="bold fg4">4</tspan><tspan class="fg8">b5d0b0d</tspan> <tspan class="fg5">second</tspan><tspan class="fg8"> | </tspan>second
</tspan><tspan xml:space="preserve" x="10" y="1310" class="output">Parent commit      : <tspan class="bold fg5">l</tspan><tspan class="fg8">tqxzzvn</tspan> <tspan class="bold fg4">0a</tspan><tspan class="fg8">a4eff7</tspan> <tspan class="fg5">third</tspan><tspan class="fg8"> | </tspan><tspan class="fg1">(conflict)</tspan> third
</tspan><tspan xml:space="preserve" x="10" y="1328" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="1346" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="1364" class="output">@    <tspan class="bold fg13">x</tspan><tspan class="bold fg8">pkuouzp</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:22.561 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">7</tspan><tspan class="bold fg8">390c074</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1382" class="output">├─╮  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> merged</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1400" class="output">│ ◉  <tspan class="bold fg5">l</tspan><tspan class="fg8">tqxzzvn</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.406 -07:00</tspan> <tspan class="fg5">third</tspan> <tspan class="bold fg4">0a</tspan><tspan class="fg8">a4eff7</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1418" class="output">│ │  <tspan class="fg1">conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1436" class="output">   third
</tspan><tspan xml:space="preserve" x="10" y="1454" class="output">◉ │  <tspan class="bold fg5">n</tspan><tspan class="fg8">rlsumvr</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.530 -07:00</tspan> <tspan class="fg5">second</tspan> <tspan class="bold fg4">4</tspan><tspan class="fg8">b5d0b0d</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1472" class="output">├─╯  second
</tspan><tspan xml:space="preserve" x="10" y="1490" class="output">◉  <tspan class="bold fg5">p</tspan><tspan class="fg8">umwmyut</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:22.147 -07:00</tspan> <tspan class="fg5">first</tspan> <tspan class="bold fg4">e</tspan><tspan class="fg8">b0ec5cc</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1508" class="output">  first
</tspan><tspan xml:space="preserve" x="10" y="1526" class="output">◉  <tspan class="bold fg5">z</tspan><tspan class="fg8">zzzzzzz</tspan> <tspan class="fg2">root()</tspan> <tspan class="bold fg4">00</tspan><tspan class="fg8">000000</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1544" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1562" class="output"><tspan class="fg2"># Again, because the merge commit has the</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1580" class="output"><tspan class="fg2"># changes from all three commits, it has no</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1598" class="output"><tspan class="fg2"># conflict.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1616" class="output">
</tspan></text>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

174
demos/operation_log.svg Normal file
View File

@ -0,0 +1,174 @@
<!-- Created with term-transcript v0.3.0 (https://github.com/slowli/term-transcript) -->
<svg viewBox="0 0 720 2432" width="720" height="2432" xmlns="http://www.w3.org/2000/svg">
<style>
.container {
font: 14px Fira Code, Liberation Mono, SFMono-Regular, Consolas, Menlo, monospace;
line-height: 18px;
}
.input,.output,.output-bg {
white-space: pre;
}
.input-bg { fill: #fff; fill-opacity: 0.1; }
.output-bg { user-select: none; text-rendering: geometricPrecision; stroke-width: 0.1; }
.bold,.prompt { font-weight: 600; }
.italic { font-style: italic; }
.underline { text-decoration: underline; }
.dimmed { fill-opacity: 0.7; }
.hard-br { font-size: 16px; fill-opacity: 0.8; user-select: none; }
.fg0 { fill: #0c0c0c; } .output-bg .fg0 { stroke: #0c0c0c; }
.fg1 { fill: #c50f1f; } .output-bg .fg1 { stroke: #c50f1f; }
.fg2 { fill: #13a10e; } .output-bg .fg2 { stroke: #13a10e; }
.fg3 { fill: #c19c00; } .output-bg .fg3 { stroke: #c19c00; }
.fg4 { fill: #0037da; } .output-bg .fg4 { stroke: #0037da; }
.fg5 { fill: #881798; } .output-bg .fg5 { stroke: #881798; }
.fg6 { fill: #3a96dd; } .output-bg .fg6 { stroke: #3a96dd; }
.fg7 { fill: #cccccc; } .output-bg .fg7 { stroke: #cccccc; }
.fg8 { fill: #767676; } .output-bg .fg8 { stroke: #767676; }
.fg9 { fill: #e74856; } .output-bg .fg9 { stroke: #e74856; }
.fg10 { fill: #16c60c; } .output-bg .fg10 { stroke: #16c60c; }
.fg11 { fill: #f9f1a5; } .output-bg .fg11 { stroke: #f9f1a5; }
.fg12 { fill: #3b78ff; } .output-bg .fg12 { stroke: #3b78ff; }
.fg13 { fill: #b4009e; } .output-bg .fg13 { stroke: #b4009e; }
.fg14 { fill: #61d6d6; } .output-bg .fg14 { stroke: #61d6d6; }
.fg15 { fill: #f2f2f2; } .output-bg .fg15 { stroke: #f2f2f2; }
</style>
<rect width="100%" height="100%" y="0" rx="4.5" style="fill: #0c0c0c;" />
<svg x="0" y="10" width="720" height="2412" viewBox="0 0 720 2412">
<g class="input-bg"></g>
<text class="container fg7"><tspan xml:space="preserve" x="10" y="14" class="output">
</tspan><tspan xml:space="preserve" x="10" y="32" class="output"><tspan class="fg2"># We are in the octocat/Hello-World repo.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="50" class="output"><tspan class="fg2"># The "operation log" shows the operations</tspan>
</tspan><tspan xml:space="preserve" x="10" y="68" class="output"><tspan class="fg2"># so far:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="86" class="output">
</tspan><tspan xml:space="preserve" x="10" y="104" class="output">$ jj op log
</tspan><tspan xml:space="preserve" x="10" y="122" class="output">@  <tspan class="bold fg12">fa79b3466874</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@jujube</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">now, lasted 1 millisecond</tspan>
</tspan><tspan xml:space="preserve" x="10" y="140" class="output">│  <tspan class="bold">check out git remote's default branch</tspan>
</tspan><tspan xml:space="preserve" x="10" y="158" class="output">│  <tspan class="bold fg5">args: jj git clone https://github.com/octocat/Hello-World</tspan>
</tspan><tspan xml:space="preserve" x="10" y="176" class="output">◉  <tspan class="fg4">b9f3854e4c6b</tspan> <tspan class="fg3">jjfan@jujube</tspan> <tspan class="fg6">now, lasted 444 milliseconds</tspan>
</tspan><tspan xml:space="preserve" x="10" y="194" class="output">  fetch from git remote into empty repo
</tspan><tspan xml:space="preserve" x="10" y="212" class="output">│  <tspan class="fg5">args: jj git clone https://github.com/octocat/Hello-World</tspan>
</tspan><tspan xml:space="preserve" x="10" y="230" class="output">◉  <tspan class="fg4">3eed56af5757</tspan> <tspan class="fg3">jjfan@jujube</tspan> <tspan class="fg6">now, lasted less than a microsecond</tspan>
</tspan><tspan xml:space="preserve" x="10" y="248" class="output">  add workspace 'default'
</tspan><tspan xml:space="preserve" x="10" y="266" class="output">◉  <tspan class="fg4">6f3495125bc8</tspan> <tspan class="fg3">jjfan@jujube</tspan> <tspan class="fg6">now, lasted less than a microsecond</tspan>
</tspan><tspan xml:space="preserve" x="10" y="284" class="output">   initialize repo
</tspan><tspan xml:space="preserve" x="10" y="302" class="output">
</tspan><tspan xml:space="preserve" x="10" y="320" class="output"><tspan class="fg2"># We are going to make some changes to show</tspan>
</tspan><tspan xml:space="preserve" x="10" y="338" class="output"><tspan class="fg2"># how the operation log works. Let's add a file, set</tspan>
</tspan><tspan xml:space="preserve" x="10" y="356" class="output"><tspan class="fg2"># a description, and rebase onto the "test" branch:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="374" class="output">
</tspan><tspan xml:space="preserve" x="10" y="392" class="output">$ echo stuff &gt; new-file
</tspan><tspan xml:space="preserve" x="10" y="410" class="output">$ jj describe -m stuff
</tspan><tspan xml:space="preserve" x="10" y="428" class="output">Working copy now at: <tspan class="bold fg13">x</tspan><tspan class="bold fg8">trplzoo</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">e</tspan><tspan class="bold fg8">b5aa286</tspan><tspan class="bold"> stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="446" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 fr<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="464" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="482" class="output">$ jj rebase -d test
</tspan><tspan xml:space="preserve" x="10" y="500" class="output">Rebased 1 commits
</tspan><tspan xml:space="preserve" x="10" y="518" class="output">Working copy now at: <tspan class="bold fg13">x</tspan><tspan class="bold fg8">trplzoo</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">8</tspan><tspan class="bold fg8">c520228</tspan><tspan class="bold"> stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="536" class="output">Parent commit      : <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan> <tspan class="fg5">test</tspan><tspan class="fg8"> | </tspan>Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="554" class="output">Added 1 files, modified 0 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="572" class="output">
</tspan><tspan xml:space="preserve" x="10" y="590" class="output"><tspan class="fg2"># We are now going to make another change off of</tspan>
</tspan><tspan xml:space="preserve" x="10" y="608" class="output"><tspan class="fg2"># master:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="626" class="output">
</tspan><tspan xml:space="preserve" x="10" y="644" class="output">$ jj co master
</tspan><tspan xml:space="preserve" x="10" y="662" class="output">Working copy now at: <tspan class="bold fg13">ok</tspan><tspan class="bold fg8">qrllkp</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">7c</tspan><tspan class="bold fg8">e6d4fb</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="680" class="output">Parent commit      : <tspan class="bold fg5">or</tspan><tspan class="fg8">rkosyo</tspan> <tspan class="bold fg4">7f</tspan><tspan class="fg8">d1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 fr<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="698" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="716" class="output">Added 0 files, modified 0 files, removed 2 files
</tspan><tspan xml:space="preserve" x="10" y="734" class="output">$ jj describe -m "other stuff"
</tspan><tspan xml:space="preserve" x="10" y="752" class="output">Working copy now at: <tspan class="bold fg13">ok</tspan><tspan class="bold fg8">qrllkp</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">79</tspan><tspan class="bold fg8">2d0b92</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> other stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="770" class="output">Parent commit      : <tspan class="bold fg5">or</tspan><tspan class="fg8">rkosyo</tspan> <tspan class="bold fg4">7f</tspan><tspan class="fg8">d1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 fr<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="788" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="806" class="output">
</tspan><tspan xml:space="preserve" x="10" y="824" class="output"><tspan class="fg2"># The repo now looks like this:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="842" class="output">
</tspan><tspan xml:space="preserve" x="10" y="860" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="878" class="output">@  <tspan class="bold fg13">ok</tspan><tspan class="bold fg8">qrllkp</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:23.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">79</tspan><tspan class="bold fg8">2d0b92</tspan>
</tspan><tspan xml:space="preserve" x="10" y="896" class="output">│  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> other stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="914" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="932" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="950" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="968" class="output">│ ◉  <tspan class="bold fg5">x</tspan><tspan class="fg8">trplzoo</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:23.000 -07:00</tspan> <tspan class="bold fg4">8</tspan><tspan class="fg8">c520228</tspan>
</tspan><tspan xml:space="preserve" x="10" y="986" class="output">   stuff
</tspan><tspan xml:space="preserve" x="10" y="1004" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1022" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="1040" class="output">◉  <tspan class="bold fg5">or</tspan><tspan class="fg8">rkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7f</tspan><tspan class="fg8">d1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1058" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1076" class="output">~
</tspan><tspan xml:space="preserve" x="10" y="1094" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1112" class="output"><tspan class="fg2"># The most recent portion of the operation log</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1130" class="output"><tspan class="fg2"># is:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1148" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1166" class="output">$ jj op log | head
</tspan><tspan xml:space="preserve" x="10" y="1184" class="output">@  <tspan class="bold fg12">5bae9d9b6a8a</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@jujube</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">now, lasted 1 millisecond</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1202" class="output">│  <tspan class="bold">describe commit 7ce6d4fb5acb6945fd0301187a03245b49fe6b71</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1220" class="output">│  <tspan class="bold fg5">args: jj describe -m 'other stuff'</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1238" class="output">◉  <tspan class="fg4">99a3111903cc</tspan> <tspan class="fg3">jjfan@jujube</tspan> <tspan class="fg6">now, lasted 1 millisecond</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1256" class="output">  check out commit 7fd1a60b01f91b314f59955a4e4d4e80d8edf11d
</tspan><tspan xml:space="preserve" x="10" y="1274" class="output">│  <tspan class="fg5">args: jj co master</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1292" class="output">◉  <tspan class="fg4">5cdf49cce8a4</tspan> <tspan class="fg3">jjfan@jujube</tspan> <tspan class="fg6">now, lasted 1 millisecond</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1310" class="output">  rebase commit eb5aa28675c23f6664c1027aae91f13bf5e3c474 and descendants
</tspan><tspan xml:space="preserve" x="10" y="1328" class="output">│  <tspan class="fg5">args: jj rebase -d test</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1346" class="output">◉  <tspan class="fg4">74cd4da2188d</tspan> <tspan class="fg3">jjfan@jujube</tspan> <tspan class="fg6">now, lasted 1 millisecond</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1364" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1382" class="output"><tspan class="fg2"># Let's undo that rebase operation:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1400" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1418" class="output">$ jj undo 5cdf4
</tspan><tspan xml:space="preserve" x="10" y="1436" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1454" class="output"><tspan class="fg2"># Note that only the rebase was undone, and the</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1472" class="output"><tspan class="fg2"># subsequent "other stuff" change was not undone:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1490" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1508" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="1526" class="output">@  <tspan class="bold fg13">ok</tspan><tspan class="bold fg8">qrllkp</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:23.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">79</tspan><tspan class="bold fg8">2d0b92</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1544" class="output">│  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> other stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1562" class="output">│ ◉  <tspan class="bold fg5">x</tspan><tspan class="fg8">trplzoo</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:23.000 -07:00</tspan> <tspan class="bold fg4">e</tspan><tspan class="fg8">b5aa286</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1580" class="output">├─╯  stuff
</tspan><tspan xml:space="preserve" x="10" y="1598" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1616" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1634" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="1652" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1670" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="1688" class="output">◉  <tspan class="bold fg5">or</tspan><tspan class="fg8">rkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7f</tspan><tspan class="fg8">d1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1706" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1724" class="output">~
</tspan><tspan xml:space="preserve" x="10" y="1742" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1760" class="output"><tspan class="fg2"># We can also see what the repo looked like</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1778" class="output"><tspan class="fg2"># after the rebase operation:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1796" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1814" class="output">$ jj --at-op 5cdf4 log
</tspan><tspan xml:space="preserve" x="10" y="1832" class="output">@  <tspan class="bold fg13">x</tspan><tspan class="bold fg8">trplzoo</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:23.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">8</tspan><tspan class="bold fg8">c520228</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1850" class="output">│  <tspan class="bold">stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1868" class="output">◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1886" class="output">  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="1904" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1922" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1940" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="1958" class="output">◉  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1976" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1994" class="output">~
</tspan><tspan xml:space="preserve" x="10" y="2012" class="output">
</tspan><tspan xml:space="preserve" x="10" y="2030" class="output"><tspan class="fg2"># Let's say we instead want to go back to the</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2048" class="output"><tspan class="fg2"># state of the repo right after the rebase:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2066" class="output">
</tspan><tspan xml:space="preserve" x="10" y="2084" class="output">$ jj op restore 5cdf4
</tspan><tspan xml:space="preserve" x="10" y="2102" class="output">Working copy now at: <tspan class="bold fg13">x</tspan><tspan class="bold fg8">trplzoo</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">8</tspan><tspan class="bold fg8">c520228</tspan><tspan class="bold"> stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2120" class="output">Parent commit      : <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan> <tspan class="fg5">test</tspan><tspan class="fg8"> | </tspan>Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="2138" class="output">Added 2 files, modified 0 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="2156" class="output">
</tspan><tspan xml:space="preserve" x="10" y="2174" class="output"><tspan class="fg2"># We're now back to before the "other stuff"</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2192" class="output"><tspan class="fg2"># change existed:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2210" class="output">
</tspan><tspan xml:space="preserve" x="10" y="2228" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="2246" class="output">@  <tspan class="bold fg13">x</tspan><tspan class="bold fg8">trplzoo</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:23.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">8</tspan><tspan class="bold fg8">c520228</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2264" class="output">│  <tspan class="bold">stuff</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2282" class="output">◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2300" class="output">  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="2318" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2336" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2354" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="2372" class="output">◉  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2390" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="2408" class="output">~
</tspan></text>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

139
demos/resolve_conflicts.svg Normal file
View File

@ -0,0 +1,139 @@
<!-- Created with term-transcript v0.3.0 (https://github.com/slowli/term-transcript) -->
<svg viewBox="0 0 720 1802" width="720" height="1802" xmlns="http://www.w3.org/2000/svg">
<style>
.container {
font: 14px Fira Code, Liberation Mono, SFMono-Regular, Consolas, Menlo, monospace;
line-height: 18px;
}
.input,.output,.output-bg {
white-space: pre;
}
.input-bg { fill: #fff; fill-opacity: 0.1; }
.output-bg { user-select: none; text-rendering: geometricPrecision; stroke-width: 0.1; }
.bold,.prompt { font-weight: 600; }
.italic { font-style: italic; }
.underline { text-decoration: underline; }
.dimmed { fill-opacity: 0.7; }
.hard-br { font-size: 16px; fill-opacity: 0.8; user-select: none; }
.fg0 { fill: #0c0c0c; } .output-bg .fg0 { stroke: #0c0c0c; }
.fg1 { fill: #c50f1f; } .output-bg .fg1 { stroke: #c50f1f; }
.fg2 { fill: #13a10e; } .output-bg .fg2 { stroke: #13a10e; }
.fg3 { fill: #c19c00; } .output-bg .fg3 { stroke: #c19c00; }
.fg4 { fill: #0037da; } .output-bg .fg4 { stroke: #0037da; }
.fg5 { fill: #881798; } .output-bg .fg5 { stroke: #881798; }
.fg6 { fill: #3a96dd; } .output-bg .fg6 { stroke: #3a96dd; }
.fg7 { fill: #cccccc; } .output-bg .fg7 { stroke: #cccccc; }
.fg8 { fill: #767676; } .output-bg .fg8 { stroke: #767676; }
.fg9 { fill: #e74856; } .output-bg .fg9 { stroke: #e74856; }
.fg10 { fill: #16c60c; } .output-bg .fg10 { stroke: #16c60c; }
.fg11 { fill: #f9f1a5; } .output-bg .fg11 { stroke: #f9f1a5; }
.fg12 { fill: #3b78ff; } .output-bg .fg12 { stroke: #3b78ff; }
.fg13 { fill: #b4009e; } .output-bg .fg13 { stroke: #b4009e; }
.fg14 { fill: #61d6d6; } .output-bg .fg14 { stroke: #61d6d6; }
.fg15 { fill: #f2f2f2; } .output-bg .fg15 { stroke: #f2f2f2; }
</style>
<rect width="100%" height="100%" y="0" rx="4.5" style="fill: #0c0c0c;" />
<svg x="0" y="10" width="720" height="1782" viewBox="0 0 720 1782">
<g class="input-bg"></g>
<text class="container fg7"><tspan xml:space="preserve" x="10" y="14" class="output">
</tspan><tspan xml:space="preserve" x="10" y="32" class="output"><tspan class="fg2"># We are on the master branch of the</tspan>
</tspan><tspan xml:space="preserve" x="10" y="50" class="output"><tspan class="fg2"># octocat/Hello-World repo:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="68" class="output">
</tspan><tspan xml:space="preserve" x="10" y="86" class="output">$ jj log -r 'all()'
</tspan><tspan xml:space="preserve" x="10" y="104" class="output">@  <tspan class="bold fg13">x</tspan><tspan class="bold fg8">kmnkqsr</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:25.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">b6</tspan><tspan class="bold fg8">aec352</tspan>
</tspan><tspan xml:space="preserve" x="10" y="122" class="output">│  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="140" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="158" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="176" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="194" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="212" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="230" class="output">◉    <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="248" class="output">├─╮  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="266" class="output">│ ◉  <tspan class="bold fg5">n</tspan><tspan class="fg8">znozkvv</tspan> <tspan class="fg3">Johnneylee.rollins@gmail.com</tspan> <tspan class="fg6">2011-09-13 21:42:41.000 -07:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="284" class="output">├─╯  <tspan class="bold fg4">76</tspan><tspan class="fg8">294131</tspan>
</tspan><tspan xml:space="preserve" x="10" y="302" class="output">    New line at end of file. --Signed off by Spaceghost
</tspan><tspan xml:space="preserve" x="10" y="320" class="output">◉  <tspan class="bold fg5">s</tspan><tspan class="fg8">yktoqts</tspan> <tspan class="fg3">cameron@github.com</tspan> <tspan class="fg6">2011-01-26 11:06:08.000 -08:00</tspan> <tspan class="bold fg4">5</tspan><tspan class="fg8">53c2077</tspan>
</tspan><tspan xml:space="preserve" x="10" y="338" class="output">  first commit
</tspan><tspan xml:space="preserve" x="10" y="356" class="output">◉  <tspan class="bold fg5">z</tspan><tspan class="fg8">zzzzzzz</tspan> <tspan class="fg2">root()</tspan> <tspan class="bold fg4">0</tspan><tspan class="fg8">0000000</tspan>
</tspan><tspan xml:space="preserve" x="10" y="374" class="output">
</tspan><tspan xml:space="preserve" x="10" y="392" class="output"><tspan class="fg2"># Let's make an edit that will conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="410" class="output"><tspan class="fg2"># when we rebase it:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="428" class="output">
</tspan><tspan xml:space="preserve" x="10" y="446" class="output">$ jj describe -m "README: say which world"
</tspan><tspan xml:space="preserve" x="10" y="464" class="output">Working copy now at: <tspan class="bold fg13">x</tspan><tspan class="bold fg8">kmnkqsr</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">2</tspan><tspan class="bold fg8">0110a7f</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> README: say which world</tspan>
</tspan><tspan xml:space="preserve" x="10" y="482" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 fr<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="500" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="518" class="output">$ echo "Hello Earth!" &gt; README
</tspan><tspan xml:space="preserve" x="10" y="536" class="output">$ jj diff
</tspan><tspan xml:space="preserve" x="10" y="554" class="output"><tspan class="fg3">Modified regular file README:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="572" class="output"><tspan class="fg1">   1</tspan> <tspan class="fg2">   1</tspan>: Hello <tspan class="fg1">World</tspan><tspan class="fg2">Earth</tspan>!
</tspan><tspan xml:space="preserve" x="10" y="590" class="output">
</tspan><tspan xml:space="preserve" x="10" y="608" class="output"><tspan class="fg2"># We're going to rebase it onto commit b1.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="626" class="output"><tspan class="fg2"># That commit looks like this:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="644" class="output">
</tspan><tspan xml:space="preserve" x="10" y="662" class="output">$ jj diff -r b1
</tspan><tspan xml:space="preserve" x="10" y="680" class="output"><tspan class="fg3">Modified regular file README:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="698" class="output"><tspan class="fg1">   1</tspan> <tspan class="fg2">   1</tspan>: Hello <tspan class="fg1">World</tspan><tspan class="fg2">world</tspan>!
</tspan><tspan xml:space="preserve" x="10" y="716" class="output">
</tspan><tspan xml:space="preserve" x="10" y="734" class="output"><tspan class="fg2"># Now rebase:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="752" class="output">
</tspan><tspan xml:space="preserve" x="10" y="770" class="output">$ jj rebase -d b1
</tspan><tspan xml:space="preserve" x="10" y="788" class="output">Rebased 1 commits
</tspan><tspan xml:space="preserve" x="10" y="806" class="output">Working copy now at: <tspan class="bold fg13">x</tspan><tspan class="bold fg8">kmnkqsr</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">5</tspan><tspan class="bold fg8">39b71db</tspan><tspan class="bold"> </tspan><tspan class="bold fg9">(conflict)</tspan><tspan class="bold"> README: say which world</tspan>
</tspan><tspan xml:space="preserve" x="10" y="824" class="output">Parent commit      : <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan> <tspan class="fg5">octocat-patch-1</tspan><tspan class="fg8"> | </tspan>sentence case
</tspan><tspan xml:space="preserve" x="10" y="842" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="860" class="output">
</tspan><tspan xml:space="preserve" x="10" y="878" class="output"><tspan class="fg2"># Huh, that seemed to succeed. Let's take a</tspan>
</tspan><tspan xml:space="preserve" x="10" y="896" class="output"><tspan class="fg2"># look at the repo:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="914" class="output">
</tspan><tspan xml:space="preserve" x="10" y="932" class="output">$ jj log -r 'all()'
</tspan><tspan xml:space="preserve" x="10" y="950" class="output">@  <tspan class="bold fg13">x</tspan><tspan class="bold fg8">kmnkqsr</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:25.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">5</tspan><tspan class="bold fg8">39b71db</tspan><tspan class="bold"> </tspan><tspan class="bold fg9">conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="968" class="output">│  <tspan class="bold">README: say which world</tspan>
</tspan><tspan xml:space="preserve" x="10" y="986" class="output">◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1004" class="output">│  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1022" class="output">  sentence case
</tspan><tspan xml:space="preserve" x="10" y="1040" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1058" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="1076" class="output">◉    <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1094" class="output">├─╮  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1112" class="output">│ ◉  <tspan class="bold fg5">n</tspan><tspan class="fg8">znozkvv</tspan> <tspan class="fg3">Johnneylee.rollins@gmail.com</tspan> <tspan class="fg6">2011-09-13 21:42:41.000 -07:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1130" class="output">├─╯  <tspan class="bold fg4">76</tspan><tspan class="fg8">294131</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1148" class="output">    New line at end of file. --Signed off by Spaceghost
</tspan><tspan xml:space="preserve" x="10" y="1166" class="output">◉  <tspan class="bold fg5">s</tspan><tspan class="fg8">yktoqts</tspan> <tspan class="fg3">cameron@github.com</tspan> <tspan class="fg6">2011-01-26 11:06:08.000 -08:00</tspan> <tspan class="bold fg4">55</tspan><tspan class="fg8">3c2077</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1184" class="output">  first commit
</tspan><tspan xml:space="preserve" x="10" y="1202" class="output">◉  <tspan class="bold fg5">z</tspan><tspan class="fg8">zzzzzzz</tspan> <tspan class="fg2">root()</tspan> <tspan class="bold fg4">0</tspan><tspan class="fg8">0000000</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1220" class="output">$ jj status
</tspan><tspan xml:space="preserve" x="10" y="1238" class="output">Working copy changes:
</tspan><tspan xml:space="preserve" x="10" y="1256" class="output"><tspan class="fg6">M README</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1274" class="output"><tspan class="fg1">There are unresolved conflicts at these paths:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1292" class="output">README    <tspan class="fg3">2-sided conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1310" class="output">Working copy : <tspan class="bold fg13">x</tspan><tspan class="bold fg8">kmnkqsr</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">5</tspan><tspan class="bold fg8">39b71db</tspan><tspan class="bold"> </tspan><tspan class="bold fg9">(conflict)</tspan><tspan class="bold"> README: say which world</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1328" class="output">Parent commit: <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan> <tspan class="fg5">octocat-patch-1</tspan><tspan class="fg8"> | </tspan>sentence case
</tspan><tspan xml:space="preserve" x="10" y="1346" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1364" class="output"><tspan class="fg2"># As you can see, the rebased commit has a</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1382" class="output"><tspan class="fg2"># conflict. The file in the working copy looks</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1400" class="output"><tspan class="fg2"># like this:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1418" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1436" class="output">$ cat README
</tspan><tspan xml:space="preserve" x="10" y="1454" class="output">&lt;&lt;&lt;&lt;&lt;&lt;&lt;
</tspan><tspan xml:space="preserve" x="10" y="1472" class="output">%%%%%%%
</tspan><tspan xml:space="preserve" x="10" y="1490" class="output">-Hello World!
</tspan><tspan xml:space="preserve" x="10" y="1508" class="output">+Hello world!
</tspan><tspan xml:space="preserve" x="10" y="1526" class="output">+++++++
</tspan><tspan xml:space="preserve" x="10" y="1544" class="output">Hello Earth!
</tspan><tspan xml:space="preserve" x="10" y="1562" class="output">&gt;&gt;&gt;&gt;&gt;&gt;&gt;
</tspan><tspan xml:space="preserve" x="10" y="1580" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1598" class="output"><tspan class="fg2"># Now we will resolve the conflict:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1616" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1634" class="output">$ echo "Hello earth!" &gt; README
</tspan><tspan xml:space="preserve" x="10" y="1652" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1670" class="output"><tspan class="fg2"># The status command no longer reports it:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1688" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1706" class="output">$ jj status
</tspan><tspan xml:space="preserve" x="10" y="1724" class="output">Working copy changes:
</tspan><tspan xml:space="preserve" x="10" y="1742" class="output"><tspan class="fg6">M README</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1760" class="output">Working copy : <tspan class="bold fg13">x</tspan><tspan class="bold fg8">kmnkqsr</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">b1c</tspan><tspan class="bold fg8">13c23</tspan><tspan class="bold"> README: say which world</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1778" class="output">Parent commit: <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="bold fg4">b1b</tspan><tspan class="fg8">3f972</tspan> <tspan class="fg5">octocat-patch-1</tspan><tspan class="fg8"> | </tspan>sentence case
</tspan></text>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -45,8 +45,12 @@ run_script_through_term_transcript_and_pipe_result_to_stderr() {
tee "$outfile"
term-transcript capture \
--no-inputs --pure-svg --palette powershell \
--out "$script_base".svg "$script_base" \
< "$outfile"
--font "Fira Code, Liberation Mono, SFMono-Regular, Consolas, Menlo" \
--out "$script_base".svg "$script_base" < "$outfile"
# The default font choice term-transcript would make is:
# SFMono-Regular, Consolas, Liberation Mono, Menlo
# We add the fonts that were checked and seem to contain all the relevant
# unicode in front.
rm "$outfile"
}

166
demos/working_copy.svg Normal file
View File

@ -0,0 +1,166 @@
<!-- Created with term-transcript v0.3.0 (https://github.com/slowli/term-transcript) -->
<svg viewBox="0 0 720 2288" width="720" height="2288" xmlns="http://www.w3.org/2000/svg">
<style>
.container {
font: 14px Fira Code, Liberation Mono, SFMono-Regular, Consolas, Menlo, monospace;
line-height: 18px;
}
.input,.output,.output-bg {
white-space: pre;
}
.input-bg { fill: #fff; fill-opacity: 0.1; }
.output-bg { user-select: none; text-rendering: geometricPrecision; stroke-width: 0.1; }
.bold,.prompt { font-weight: 600; }
.italic { font-style: italic; }
.underline { text-decoration: underline; }
.dimmed { fill-opacity: 0.7; }
.hard-br { font-size: 16px; fill-opacity: 0.8; user-select: none; }
.fg0 { fill: #0c0c0c; } .output-bg .fg0 { stroke: #0c0c0c; }
.fg1 { fill: #c50f1f; } .output-bg .fg1 { stroke: #c50f1f; }
.fg2 { fill: #13a10e; } .output-bg .fg2 { stroke: #13a10e; }
.fg3 { fill: #c19c00; } .output-bg .fg3 { stroke: #c19c00; }
.fg4 { fill: #0037da; } .output-bg .fg4 { stroke: #0037da; }
.fg5 { fill: #881798; } .output-bg .fg5 { stroke: #881798; }
.fg6 { fill: #3a96dd; } .output-bg .fg6 { stroke: #3a96dd; }
.fg7 { fill: #cccccc; } .output-bg .fg7 { stroke: #cccccc; }
.fg8 { fill: #767676; } .output-bg .fg8 { stroke: #767676; }
.fg9 { fill: #e74856; } .output-bg .fg9 { stroke: #e74856; }
.fg10 { fill: #16c60c; } .output-bg .fg10 { stroke: #16c60c; }
.fg11 { fill: #f9f1a5; } .output-bg .fg11 { stroke: #f9f1a5; }
.fg12 { fill: #3b78ff; } .output-bg .fg12 { stroke: #3b78ff; }
.fg13 { fill: #b4009e; } .output-bg .fg13 { stroke: #b4009e; }
.fg14 { fill: #61d6d6; } .output-bg .fg14 { stroke: #61d6d6; }
.fg15 { fill: #f2f2f2; } .output-bg .fg15 { stroke: #f2f2f2; }
</style>
<rect width="100%" height="100%" y="0" rx="4.5" style="fill: #0c0c0c;" />
<svg x="0" y="10" width="720" height="2268" viewBox="0 0 720 2268">
<g class="input-bg"></g>
<text class="container fg7"><tspan xml:space="preserve" x="10" y="14" class="output">
</tspan><tspan xml:space="preserve" x="10" y="32" class="output"><tspan class="fg2"># We are in the octocat/Hello-World repo.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="50" class="output"><tspan class="fg2"># We have an empty working copy on top of master:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="68" class="output">
</tspan><tspan xml:space="preserve" x="10" y="86" class="output">$ jj status
</tspan><tspan xml:space="preserve" x="10" y="104" class="output">The working copy is clean
</tspan><tspan xml:space="preserve" x="10" y="122" class="output">Working copy : <tspan class="bold fg13">m</tspan><tspan class="bold fg8">xqlopuw</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">8</tspan><tspan class="bold fg8">d0e7e7c</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="140" class="output">Parent commit: <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spa<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="158" class="output">ceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="176" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="194" class="output">@  <tspan class="bold fg13">m</tspan><tspan class="bold fg8">xqlopuw</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:26.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">8</tspan><tspan class="bold fg8">d0e7e7c</tspan>
</tspan><tspan xml:space="preserve" x="10" y="212" class="output">│  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="230" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="248" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="266" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="284" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="302" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="320" class="output">◉  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="338" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="356" class="output">~
</tspan><tspan xml:space="preserve" x="10" y="374" class="output">
</tspan><tspan xml:space="preserve" x="10" y="392" class="output"><tspan class="fg2"># Now make some changes in the working copy:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="410" class="output">
</tspan><tspan xml:space="preserve" x="10" y="428" class="output">$ echo "Goodbye World!" &gt; README
</tspan><tspan xml:space="preserve" x="10" y="446" class="output">$ echo stuff &gt; new-file
</tspan><tspan xml:space="preserve" x="10" y="464" class="output">
</tspan><tspan xml:space="preserve" x="10" y="482" class="output"><tspan class="fg2"># Our working copy's commit ID changed</tspan>
</tspan><tspan xml:space="preserve" x="10" y="500" class="output"><tspan class="fg2"># because we made changes:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="518" class="output">
</tspan><tspan xml:space="preserve" x="10" y="536" class="output">$ jj status
</tspan><tspan xml:space="preserve" x="10" y="554" class="output">Working copy changes:
</tspan><tspan xml:space="preserve" x="10" y="572" class="output"><tspan class="fg6">M README</tspan>
</tspan><tspan xml:space="preserve" x="10" y="590" class="output"><tspan class="fg2">A new-file</tspan>
</tspan><tspan xml:space="preserve" x="10" y="608" class="output">Working copy : <tspan class="bold fg13">m</tspan><tspan class="bold fg8">xqlopuw</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">b5</tspan><tspan class="bold fg8">80fc4d</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="626" class="output">Parent commit: <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spa<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="644" class="output">ceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="662" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="680" class="output">@  <tspan class="bold fg13">m</tspan><tspan class="bold fg8">xqlopuw</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:27.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">b5</tspan><tspan class="bold fg8">80fc4d</tspan>
</tspan><tspan xml:space="preserve" x="10" y="698" class="output">│  <tspan class="bold fg3">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="716" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="734" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="752" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="770" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="788" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="806" class="output">◉  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="824" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="842" class="output">~
</tspan><tspan xml:space="preserve" x="10" y="860" class="output">
</tspan><tspan xml:space="preserve" x="10" y="878" class="output"><tspan class="fg2"># Add a branch so we can easily refer to this</tspan>
</tspan><tspan xml:space="preserve" x="10" y="896" class="output"><tspan class="fg2"># commit:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="914" class="output">
</tspan><tspan xml:space="preserve" x="10" y="932" class="output">$ jj branch create goodbye
</tspan><tspan xml:space="preserve" x="10" y="950" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="968" class="output">@  <tspan class="bold fg13">m</tspan><tspan class="bold fg8">xqlopuw</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:27.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg13">goodbye</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">b5</tspan><tspan class="bold fg8">80fc4d</tspan>
</tspan><tspan xml:space="preserve" x="10" y="986" class="output">│  <tspan class="bold fg3">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1004" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1022" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1040" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="1058" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1076" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="1094" class="output">◉  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1112" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1130" class="output">~
</tspan><tspan xml:space="preserve" x="10" y="1148" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1166" class="output"><tspan class="fg2"># Start working on a new change off of master:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1184" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1202" class="output">$ jj co master
</tspan><tspan xml:space="preserve" x="10" y="1220" class="output">Working copy now at: <tspan class="bold fg13">q</tspan><tspan class="bold fg8">uqqqrtm</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">c</tspan><tspan class="bold fg8">b2e4d75</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1238" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 fr<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="1256" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1274" class="output">Added 0 files, modified 1 files, removed 1 files
</tspan><tspan xml:space="preserve" x="10" y="1292" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="1310" class="output">@  <tspan class="bold fg13">q</tspan><tspan class="bold fg8">uqqqrtm</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:27.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">c</tspan><tspan class="bold fg8">b2e4d75</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1328" class="output">│  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1346" class="output">│ ◉  <tspan class="bold fg5">m</tspan><tspan class="fg8">xqlopuw</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:27.000 -07:00</tspan> <tspan class="fg5">goodbye</tspan> <tspan class="bold fg4">b5</tspan><tspan class="fg8">80fc4d</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1364" class="output">├─╯  <tspan class="fg3">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1382" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1400" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1</tspan><tspan class="fg8">b3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1418" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="1436" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1454" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="1472" class="output">◉  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1490" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1508" class="output">~
</tspan><tspan xml:space="preserve" x="10" y="1526" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1544" class="output"><tspan class="fg2"># Note that the working copy is now clean; the</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1562" class="output"><tspan class="fg2"># "goodbye" change stayed in its own commit:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1580" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1598" class="output">$ jj status
</tspan><tspan xml:space="preserve" x="10" y="1616" class="output">The working copy is clean
</tspan><tspan xml:space="preserve" x="10" y="1634" class="output">Working copy : <tspan class="bold fg13">q</tspan><tspan class="bold fg8">uqqqrtm</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">c</tspan><tspan class="bold fg8">b2e4d75</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(no description set)</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1652" class="output">Parent commit: <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spa<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="1670" class="output">ceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1688" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1706" class="output"><tspan class="fg2"># Modify a file in this new change:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1724" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1742" class="output">$ echo "Hello everyone!" &gt; README
</tspan><tspan xml:space="preserve" x="10" y="1760" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1778" class="output"><tspan class="fg2"># The working copy is not special; we can, for</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1796" class="output"><tspan class="fg2"># example, set the description of any commit.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1814" class="output"><tspan class="fg2"># First, set it on the working copy:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1832" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1850" class="output">$ jj describe -m everyone
</tspan><tspan xml:space="preserve" x="10" y="1868" class="output">Working copy now at: <tspan class="bold fg13">q</tspan><tspan class="bold fg8">uqqqrtm</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">5</tspan><tspan class="bold fg8">0e8e102</tspan><tspan class="bold"> everyone</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1886" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan> <tspan class="fg5">master</tspan><tspan class="fg8"> | </tspan><tspan class="fg2">(empty)</tspan> Merge pull request #6 fr<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="1904" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="1922" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1940" class="output"><tspan class="fg2"># Now set it on the change we worked on before:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1958" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1976" class="output">$ jj describe goodbye -m goodbye
</tspan><tspan xml:space="preserve" x="10" y="1994" class="output">
</tspan><tspan xml:space="preserve" x="10" y="2012" class="output"><tspan class="fg2"># Inspect the result:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2030" class="output">
</tspan><tspan xml:space="preserve" x="10" y="2048" class="output">$ jj log
</tspan><tspan xml:space="preserve" x="10" y="2066" class="output">◉  <tspan class="bold fg5">m</tspan><tspan class="fg8">xqlopuw</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-01 22:29:27.000 -07:00</tspan> <tspan class="fg5">goodbye</tspan> <tspan class="bold fg4">b19</tspan><tspan class="fg8">dd123</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2084" class="output">  goodbye
</tspan><tspan xml:space="preserve" x="10" y="2102" class="output">│ @  <tspan class="bold fg13">q</tspan><tspan class="bold fg8">uqqqrtm</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-01 22:29:27.000 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">5</tspan><tspan class="bold fg8">0e8e102</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2120" class="output">├─╯  <tspan class="bold">everyone</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2138" class="output">│ ◉  <tspan class="bold fg5">t</tspan><tspan class="fg8">pstlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 12:55:19.000 -05:00</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2156" class="output">├─╯  <tspan class="fg5">octocat-patch-1</tspan> <tspan class="bold fg4">b1b</tspan><tspan class="fg8">3f972</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2174" class="output">    sentence case
</tspan><tspan xml:space="preserve" x="10" y="2192" class="output">│ ◉  <tspan class="bold fg5">k</tspan><tspan class="fg8">owxouwz</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2014-06-10 15:22:26.000 -07:00</tspan> <tspan class="fg5">test</tspan> <tspan class="bold fg4">b3</tspan><tspan class="fg8">cbd5bb</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2210" class="output">├─╯  Create CONTRIBUTING.md
</tspan><tspan xml:space="preserve" x="10" y="2228" class="output">◉  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 15:06:50.000 -08:00</tspan> <tspan class="fg5">master</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">fd1a60b</tspan>
</tspan><tspan xml:space="preserve" x="10" y="2246" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="2264" class="output">~
</tspan></text>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 23 KiB