jj/demos/juggle_conflicts.svg

128 lines
17 KiB
XML
Raw Normal View History

<!-- Created with term-transcript v0.3.0 (https://github.com/slowli/term-transcript) -->
<svg viewBox="0 0 720 1586" width="720" height="1586" 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="1566" viewBox="0 0 720 1566">
<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">y</tspan><tspan class="bold fg8">unnnwvo</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-03 17:53:25.563 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">3</tspan><tspan class="bold fg8">8d0479d</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">n</tspan><tspan class="fg8">vktsnuz</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.563 -07:00</tspan> <tspan class="fg5">third</tspan> <tspan class="bold fg4">e</tspan><tspan class="fg8">e26fd86</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">o</tspan><tspan class="fg8">ozovxnq</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.502 -07:00</tspan> <tspan class="fg5">second</tspan> <tspan class="bold fg4">1</tspan><tspan class="fg8">242b1fd</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">q</tspan><tspan class="fg8">vwkrmvo</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.439 -07:00</tspan> <tspan class="fg5">first</tspan> <tspan class="bold fg4">5</tspan><tspan class="fg8">13e2a6d</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">y</tspan><tspan class="bold fg8">unnnwvo</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">3</tspan><tspan class="bold fg8">f07a2de</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">n</tspan><tspan class="fg8">vktsnuz</tspan> <tspan class="bold fg4">9</tspan><tspan class="fg8">be78b4c</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">o</tspan><tspan class="fg8">ozovxnq</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.742 -07:00</tspan> <tspan class="fg5">second</tspan> <tspan class="bold fg4">d</tspan><tspan class="fg8">b5b5e19</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">y</tspan><tspan class="bold fg8">unnnwvo</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-03 17:53:25.712 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">3</tspan><tspan class="bold fg8">f07a2de</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">n</tspan><tspan class="fg8">vktsnuz</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.712 -07:00</tspan> <tspan class="fg5">third</tspan> <tspan class="bold fg4">9</tspan><tspan class="fg8">be78b4c</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">q</tspan><tspan class="fg8">vwkrmvo</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.439 -07:00</tspan> <tspan class="fg5">first</tspan> <tspan class="bold fg4">5</tspan><tspan class="fg8">13e2a6d</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">0</tspan><tspan class="fg8">0000000</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, as expected. What's more</tspan>
</tspan><tspan xml:space="preserve" x="10" y="842" class="output"><tspan class="fg2"># interesting is that the top commit has no conflict! That's because it</tspan>
</tspan><tspan xml:space="preserve" x="10" y="860" class="output"><tspan class="fg2"># has the changes from all three commits applied to it.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="878" class="output"><tspan class="fg2"># </tspan>
</tspan><tspan xml:space="preserve" x="10" y="896" class="output"><tspan class="fg2"># Let's verify that by looking at its contents:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="914" class="output">
</tspan><tspan xml:space="preserve" x="10" y="932" class="output">$ jj co second
</tspan><tspan xml:space="preserve" x="10" y="950" class="output">Working copy now at: <tspan class="bold fg13">p</tspan><tspan class="bold fg8">pxyrxtk</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">a</tspan><tspan class="bold fg8">9b71825</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="968" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">ozovxnq</tspan> <tspan class="bold fg4">d</tspan><tspan class="fg8">b5b5e19</tspan> <tspan class="fg5">second</tspan><tspan class="fg8"> | </tspan>second
</tspan><tspan xml:space="preserve" x="10" y="986" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="1004" class="output">$ cat file
</tspan><tspan xml:space="preserve" x="10" y="1022" class="output">third
</tspan><tspan xml:space="preserve" x="10" y="1040" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1058" class="output"><tspan class="fg2"># Let's now instead make "second" and "third"</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1076" class="output"><tspan class="fg2"># sibling and merge them:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1094" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1112" class="output">$ jj rebase -s second -d first
</tspan><tspan xml:space="preserve" x="10" y="1130" class="output">Rebased 2 commits
</tspan><tspan xml:space="preserve" x="10" y="1148" class="output">Working copy now at: <tspan class="bold fg13">p</tspan><tspan class="bold fg8">pxyrxtk</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">4</tspan><tspan class="bold fg8">6d0cfc1</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="1166" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">ozovxnq</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">507959f</tspan> <tspan class="fg5">second</tspan><tspan class="fg8"> | </tspan>second
</tspan><tspan xml:space="preserve" x="10" y="1184" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="1202" class="output">$ jj merge second third -m merged
</tspan><tspan xml:space="preserve" x="10" y="1220" class="output">Working copy now at: <tspan class="bold fg13">t</tspan><tspan class="bold fg8">umuouyq</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">c</tspan><tspan class="bold fg8">f68a830</tspan><tspan class="bold"> </tspan><tspan class="bold fg10">(empty)</tspan><tspan class="bold"> merged</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1238" class="output">Parent commit      : <tspan class="bold fg5">o</tspan><tspan class="fg8">ozovxnq</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">507959f</tspan> <tspan class="fg5">second</tspan><tspan class="fg8"> | </tspan>second
</tspan><tspan xml:space="preserve" x="10" y="1256" class="output">Parent commit      : <tspan class="bold fg5">n</tspan><tspan class="fg8">vktsnuz</tspan> <tspan class="bold fg4">9</tspan><tspan class="fg8">be78b4c</tspan> <tspan class="fg5">third</tspan><tspan class="fg8"> | </tspan><tspan class="fg1">(conflict)</tspan> third
</tspan><tspan xml:space="preserve" x="10" y="1274" class="output">Added 0 files, modified 1 files, removed 0 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">t</tspan><tspan class="bold fg8">umuouyq</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2023-10-03 17:53:25.868 -07:00</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">c</tspan><tspan class="bold fg8">f68a830</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1328" class="output">├─╮  <tspan class="bold fg10">(empty)</tspan><tspan class="bold"> merged</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1346" class="output">│ ◉  <tspan class="bold fg5">n</tspan><tspan class="fg8">vktsnuz</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.712 -07:00</tspan> <tspan class="fg5">third</tspan> <tspan class="bold fg4">9</tspan><tspan class="fg8">be78b4c</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1364" class="output">│ │  <tspan class="fg1">conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1382" class="output">   third
</tspan><tspan xml:space="preserve" x="10" y="1400" class="output">◉ │  <tspan class="bold fg5">o</tspan><tspan class="fg8">ozovxnq</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.838 -07:00</tspan> <tspan class="fg5">second</tspan> <tspan class="bold fg4">7</tspan><tspan class="fg8">507959f</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1418" class="output">├─╯  second
</tspan><tspan xml:space="preserve" x="10" y="1436" class="output">◉  <tspan class="bold fg5">q</tspan><tspan class="fg8">vwkrmvo</tspan> <tspan class="fg3">jjfan@example.com</tspan> <tspan class="fg6">2023-10-03 17:53:25.439 -07:00</tspan> <tspan class="fg5">first</tspan> <tspan class="bold fg4">5</tspan><tspan class="fg8">13e2a6d</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1454" class="output">  first
</tspan><tspan xml:space="preserve" x="10" y="1472" 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="1490" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1508" class="output"><tspan class="fg2"># Again, because the merge commit has the</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1526" class="output"><tspan class="fg2"># changes from all three commits, it has no</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1544" class="output"><tspan class="fg2"># conflict.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1562" class="output">
</tspan></text>
</svg>
</svg>