jj/demos/resolve_conflicts.svg
Ilya Grigoriev 5dab5e1ce6 demos: update, replace branch with bookmark
The replacement is not purely mechanical, some text is also adjusted to
talk about bookmarks.
2024-10-14 19:49:14 -07:00

131 lines
15 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- Created with term-transcript v0.3.0 (https://github.com/slowli/term-transcript) -->
<svg viewBox="0 0 720 1658" width="720" height="1658" 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="1638" viewBox="0 0 720 1638">
<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 octocat/Hello-World repo,</tspan>
</tspan><tspan xml:space="preserve" x="10" y="50" class="output"><tspan class="fg2"># represented by the "master" bookmark on the parent commit.</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 fg2">@</tspan>  <tspan class="bold fg13">t</tspan><tspan class="bold fg8">mnxzsns</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2024-10-13 19:54:57</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">e</tspan><tspan class="bold fg8">692ad7d</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 fg14"></tspan>  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 16:06:50</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="158" class="output">│  <tspan class="fg2">(empty)</tspan> Merge pull request #6 from Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="176" class="output">~
</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"># Let's make an edit that will conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="230" class="output"><tspan class="fg2"># when we rebase it:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="248" class="output">
</tspan><tspan xml:space="preserve" x="10" y="266" class="output">$ jj describe -m "README: say which world"
</tspan><tspan xml:space="preserve" x="10" y="284" class="output">Working copy now at: <tspan class="bold fg13">t</tspan><tspan class="bold fg8">mnxzsns</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">c</tspan><tspan class="bold fg8">57f52b0</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="302" 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="320" class="output">om Spaceghost/patch-1
</tspan><tspan xml:space="preserve" x="10" y="338" class="output">$ echo "Hello Earth!" &gt; README
</tspan><tspan xml:space="preserve" x="10" y="356" class="output">$ jj diff
</tspan><tspan xml:space="preserve" x="10" y="374" class="output"><tspan class="fg3">Modified regular file README:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="392" class="output"><tspan class="fg1">   1</tspan> <tspan class="fg2">   1</tspan>: Hello <tspan class="underline fg1">World</tspan><tspan class="underline fg2">Earth</tspan>!
</tspan><tspan xml:space="preserve" x="10" y="410" class="output">
</tspan><tspan xml:space="preserve" x="10" y="428" class="output"><tspan class="fg2"># We're going to rebase it onto commit b1.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="446" class="output"><tspan class="fg2"># That commit looks like this:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="464" class="output">
</tspan><tspan xml:space="preserve" x="10" y="482" class="output">$ jj diff -r b1
</tspan><tspan xml:space="preserve" x="10" y="500" class="output"><tspan class="fg3">Modified regular file README:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="518" class="output"><tspan class="fg1">   1</tspan> <tspan class="fg2">   1</tspan>: Hello <tspan class="underline fg1">World</tspan><tspan class="underline fg2">world</tspan>!
</tspan><tspan xml:space="preserve" x="10" y="536" class="output">
</tspan><tspan xml:space="preserve" x="10" y="554" class="output"><tspan class="fg2"># Now rebase:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="572" class="output">
</tspan><tspan xml:space="preserve" x="10" y="590" class="output">$ jj rebase -d b1
</tspan><tspan xml:space="preserve" x="10" y="608" class="output">Rebased 1 commits
</tspan><tspan xml:space="preserve" x="10" y="626" class="output">Working copy now at: <tspan class="bold fg13">tm</tspan><tspan class="bold fg8">nxzsns</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">0</tspan><tspan class="bold fg8">23f3c51</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="644" class="output">Parent commit      : <tspan class="bold fg5">tp</tspan><tspan class="fg8">stlust</tspan> <tspan class="bold fg4">b</tspan><tspan class="fg8">1b3f972</tspan> <tspan class="fg5">octocat-patch-1@origin</tspan><tspan class="fg8"> | </tspan>sentence case
</tspan><tspan xml:space="preserve" x="10" y="662" class="output">Added 0 files, modified 1 files, removed 0 files
</tspan><tspan xml:space="preserve" x="10" y="680" class="output">There are unresolved conflicts at these paths:
</tspan><tspan xml:space="preserve" x="10" y="698" class="output">README    <tspan class="fg3">2-sided conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="716" class="output">New conflicts appeared in these commits:
</tspan><tspan xml:space="preserve" x="10" y="734" class="output">  <tspan class="bold fg5">tm</tspan><tspan class="fg8">nxzsns</tspan> <tspan class="bold fg4">0</tspan><tspan class="fg8">23f3c51</tspan> <tspan class="fg1">(conflict)</tspan> README: say which world
</tspan><tspan xml:space="preserve" x="10" y="752" class="output">To resolve the conflicts, start by updating to it:
</tspan><tspan xml:space="preserve" x="10" y="770" class="output">  jj new <tspan class="bold fg5">tm</tspan><tspan class="fg8">nxzsns</tspan>
</tspan><tspan xml:space="preserve" x="10" y="788" class="output">Then use `jj resolve`, or edit the conflict markers in the file directly.
</tspan><tspan xml:space="preserve" x="10" y="806" class="output">Once the conflicts are resolved, you may want to inspect the result with `jj dif<tspan class="hard-br" rotate="45" dx=".1em" dy="-.2em"></tspan>
</tspan><tspan xml:space="preserve" x="10" y="824" class="output">f`.
</tspan><tspan xml:space="preserve" x="10" y="842" class="output">Then run `jj squash` to move the resolution into the conflicted commit.
</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"># That seemed to succeed but we are also told there is now a conflict.</tspan>
</tspan><tspan xml:space="preserve" x="10" y="896" class="output"><tspan class="fg2"># Let's take a 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
</tspan><tspan xml:space="preserve" x="10" y="950" class="output"><tspan class="bold fg9">@</tspan>  <tspan class="bold fg13">tm</tspan><tspan class="bold fg8">nxzsns</tspan><tspan class="bold"> </tspan><tspan class="bold fg3">jjfan@example.com</tspan><tspan class="bold"> </tspan><tspan class="bold fg14">2024-10-13 19:54:57</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">0</tspan><tspan class="bold fg8">23f3c51</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 fg14"></tspan>  <tspan class="bold fg5">tp</tspan><tspan class="fg8">stlust</tspan> <tspan class="fg3">support+octocat@github.com</tspan> <tspan class="fg6">2018-05-10 10:55:19</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1004" class="output">│  <tspan class="fg5">octocat-patch-1@origin</tspan> <tspan class="bold fg4">b</tspan><tspan class="fg8">1b3f972</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 fg14"></tspan>  <tspan class="bold fg5">o</tspan><tspan class="fg8">rrkosyo</tspan> <tspan class="fg3">octocat@nowhere.com</tspan> <tspan class="fg6">2012-03-06 16:06:50</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="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">$ jj status
</tspan><tspan xml:space="preserve" x="10" y="1112" class="output">Working copy changes:
</tspan><tspan xml:space="preserve" x="10" y="1130" class="output"><tspan class="fg6">M README</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1148" class="output"><tspan class="fg1">There are unresolved conflicts at these paths:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1166" class="output">README    <tspan class="fg3">2-sided conflict</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1184" class="output">Working copy : <tspan class="bold fg13">tm</tspan><tspan class="bold fg8">nxzsns</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">0</tspan><tspan class="bold fg8">23f3c51</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="1202" class="output">Parent commit: <tspan class="bold fg5">tp</tspan><tspan class="fg8">stlust</tspan> <tspan class="bold fg4">b</tspan><tspan class="fg8">1b3f972</tspan> <tspan class="fg5">octocat-patch-1@origin</tspan><tspan class="fg8"> | </tspan>sentence case
</tspan><tspan xml:space="preserve" x="10" y="1220" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1238" class="output"><tspan class="fg2"># Indeed, the rebased commit has a conflict. The conflicted file</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1256" class="output"><tspan class="fg2"># in the working copy looks like this:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1274" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1292" class="output">$ cat README
</tspan><tspan xml:space="preserve" x="10" y="1310" class="output">&lt;&lt;&lt;&lt;&lt;&lt;&lt; Conflict 1 of 1
</tspan><tspan xml:space="preserve" x="10" y="1328" class="output">%%%%%%% Changes from base to side #1
</tspan><tspan xml:space="preserve" x="10" y="1346" class="output">-Hello World!
</tspan><tspan xml:space="preserve" x="10" y="1364" class="output">+Hello world!
</tspan><tspan xml:space="preserve" x="10" y="1382" class="output">+++++++ Contents of side #2
</tspan><tspan xml:space="preserve" x="10" y="1400" class="output">Hello Earth!
</tspan><tspan xml:space="preserve" x="10" y="1418" class="output">&gt;&gt;&gt;&gt;&gt;&gt;&gt; Conflict 1 of 1 ends
</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"># Now we will resolve the conflict:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1472" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1490" class="output">$ echo "Hello earth!" &gt; README
</tspan><tspan xml:space="preserve" x="10" y="1508" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1526" class="output"><tspan class="fg2"># The status command no longer reports it:</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1544" class="output">
</tspan><tspan xml:space="preserve" x="10" y="1562" class="output">$ jj status
</tspan><tspan xml:space="preserve" x="10" y="1580" class="output">Working copy changes:
</tspan><tspan xml:space="preserve" x="10" y="1598" class="output"><tspan class="fg6">M README</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1616" class="output">Working copy : <tspan class="bold fg13">tm</tspan><tspan class="bold fg8">nxzsns</tspan><tspan class="bold"> </tspan><tspan class="bold fg12">3</tspan><tspan class="bold fg8">da30911</tspan><tspan class="bold"> README: say which world</tspan>
</tspan><tspan xml:space="preserve" x="10" y="1634" class="output">Parent commit: <tspan class="bold fg5">tp</tspan><tspan class="fg8">stlust</tspan> <tspan class="bold fg4">b</tspan><tspan class="fg8">1b3f972</tspan> <tspan class="fg5">octocat-patch-1@origin</tspan><tspan class="fg8"> | </tspan>sentence case
</tspan></text>
</svg>
</svg>