Deployed 613742d to v0.26.0 with MkDocs 1.6.1 and mike 2.1.3

This commit is contained in:
jj-docs[bot] 2025-02-06 03:11:50 +00:00
parent c1cdee30a8
commit 1049d8038b
138 changed files with 93703 additions and 362 deletions

View File

@ -11,7 +11,7 @@
<link rel="icon" href="/jj/latest/assets/images/favicon.png">
<link rel="icon" href="/jj/latest/images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1080,6 +1080,27 @@
<li class="md-nav__item">
<a href="/jj/latest/releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/jj/latest/governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../cli-reference/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -459,6 +459,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#what-are-elided-revisions-in-the-output-of-jj-log-how-can-i-display-them" class="md-nav__link">
<span class="md-ellipsis">
What are elided revisions in the output of jj log? How can I display them?
</span>
</a>
</li>
<li class="md-nav__item">
@ -1302,6 +1311,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1563,6 +1593,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#what-are-elided-revisions-in-the-output-of-jj-log-how-can-i-display-them" class="md-nav__link">
<span class="md-ellipsis">
What are elided revisions in the output of jj log? How can I display them?
</span>
</a>
</li>
<li class="md-nav__item">
@ -1749,6 +1788,33 @@ with <code>jj rebase</code>, <code>jj describe</code>, etc). In that case, <code
should show the revision as "hidden". <code>jj new commit_id</code> should make the
revision visible again.</p>
<p>See <a href="../revsets/">revsets</a> and <a href="../templates/">templates</a> for further guidance.</p>
<h3 id="what-are-elided-revisions-in-the-output-of-jj-log-how-can-i-display-them">What are elided revisions in the output of <code>jj log</code>? How can I display them?<a class="headerlink" href="#what-are-elided-revisions-in-the-output-of-jj-log-how-can-i-display-them" title="Permanent link">&para;</a></h3>
<p>"Elided revisions" appears in the log when one revision descends from another,
both are in the revset, but the revisions connecting them are <em>not</em> in the
revset.</p>
<p>For example, suppose you log the revset <code>tyl|mus</code> which contains exactly two
revisions:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;tyl|mus&#39;</span>
<span class="w"> </span>musnqzvt<span class="w"> </span>me@example.com<span class="w"> </span><span class="m">1</span><span class="w"> </span>minute<span class="w"> </span>ago<span class="w"> </span>9a09f8a5
<span class="w"> </span>Revision<span class="w"> </span>C
~<span class="w"> </span><span class="o">(</span>elided<span class="w"> </span>revisions<span class="o">)</span>
<span class="w"> </span>tylynnzk<span class="w"> </span>me@example.com<span class="w"> </span><span class="m">1</span><span class="w"> </span>minute<span class="w"> </span>ago<span class="w"> </span>f26967c8
<span class="w"> </span>Revision<span class="w"> </span>A
</code></pre></div>
<p>Only the two revisions in the revset are displayed. The text "(elided
revisions)" is shown to indicate that <code>musnqzvt</code> descends from <code>tylynnzk</code>, but
the nodes connecting them are not in the revset.</p>
<p>To view the elided revisions, change the <a href="../revsets/">revset expression</a> so it
includes the connecting revisions. The <code>connected()</code> revset function does
exactly this:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;connected(tyl|mus)&#39;</span>
<span class="w"> </span>musnqzvt<span class="w"> </span>me@example.com<span class="w"> </span><span class="m">43</span><span class="w"> </span>seconds<span class="w"> </span>ago<span class="w"> </span>9a09f8a5
<span class="w"> </span>Revision<span class="w"> </span>C
<span class="w"> </span>rsvnrznr<span class="w"> </span>me@example.com<span class="w"> </span><span class="m">43</span><span class="w"> </span>seconds<span class="w"> </span>ago<span class="w"> </span>5b490f30
<span class="w"> </span>Revision<span class="w"> </span>B
<span class="w"> </span>tylynnzk<span class="w"> </span>me@example.com<span class="w"> </span><span class="m">43</span><span class="w"> </span>seconds<span class="w"> </span>ago<span class="w"> </span>f26967c8
<span class="w"> </span>Revision<span class="w"> </span>A
</code></pre></div>
<h3 id="how-can-i-get-jj-log-to-show-me-what-git-log-would-show-me">How can I get <code>jj log</code> to show me what <code>git log</code> would show me?<a class="headerlink" href="#how-can-i-get-jj-log-to-show-me-what-git-log-would-show-me" title="Permanent link">&para;</a></h3>
<p>Use <code>jj log -r ..</code>. The <code>..</code> <a href="../revsets/#operators">operator</a> lists all visible commits in the repo, excluding the root (which is never interesting and is shared by all repos).</p>
<h3 id="can-i-monitor-how-jj-log-evolves">Can I monitor how <code>jj log</code> evolves?<a class="headerlink" href="#can-i-monitor-how-jj-log-evolves" title="Permanent link">&para;</a></h3>
@ -1927,7 +1993,7 @@ Parent<span class="w"> </span>commit<span class="w"> </span>:<span class="w
</code></pre></div>
<p>To avoid pushing change <em>wwwwwwww</em> by mistake, use the configuration
<a href="../config/#set-of-private-commits">git.private-commits</a>:</p>
<div class="highlight"><pre><span></span><code>$ jj config set --user git.private-commits &#39;description(glob:&quot;private:*&quot;)&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--user<span class="w"> </span>git.private-commits<span class="w"> </span><span class="s1">&#39;description(glob:&quot;private:*&quot;)&#39;</span>
</code></pre></div>
<h3 id="i-accidentally-changed-files-in-the-wrong-commit-how-do-i-move-the-recent-changes-into-another-commit">I accidentally changed files in the wrong commit, how do I move the recent changes into another commit?<a class="headerlink" href="#i-accidentally-changed-files-in-the-wrong-commit-how-do-i-move-the-recent-changes-into-another-commit" title="Permanent link">&para;</a></h3>
<p>Use <code>jj evolog -p</code> to see how your working-copy commit has evolved. Find the
@ -1935,7 +2001,7 @@ commit you want to restore the contents to. Let's say the current commit (with
the changes intended for a new commit) are in commit X and the state you wanted
is in commit Y. Note the commit id (normally in blue at the end of the line in
the log output) of each of them. Now use <code>jj new</code> to create a new working-copy
commit, then run <code>jj restore --from Y --to @-</code> to restore the parent commit
commit, then run <code>jj restore --from Y --into @-</code> to restore the parent commit
to the old state, and <code>jj restore --from X</code> to restore the new working-copy
commit to the new state.</p>
<h3 id="how-do-i-resume-working-on-an-existing-change">How do I resume working on an existing change?<a class="headerlink" href="#how-do-i-resume-working-on-an-existing-change" title="Permanent link">&para;</a></h3>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../conflicts/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1247,6 +1247,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1670,7 +1691,7 @@ some remote.</p>
actual state only when it's actively communicating with the remote. However,
<code>jj</code> does store the last-seen position of the remote bookmark; this is the
commit <code>jj show &lt;bookmark name&gt;@&lt;remote name&gt;</code> would show. This notion is
completely analogous to Git's "remote-tracking bookmarks".</li>
completely analogous to Git's "remote-tracking branches".</li>
<li>A <strong>tracked (remote) bookmark</strong> is defined above. You can make a remote bookmark
tracked with the <a href="#manually-tracking-a-bookmark"><code>jj bookmark track</code> command</a>, for
example.</li>
@ -1730,8 +1751,8 @@ well for repositories where multiple people work on a large number of bookmarks.
<p>The default can be changed by setting the config <code>git.auto-local-bookmark = true</code>.
Then, <code>jj git fetch</code> tracks every <em>newly fetched</em> bookmark with a local bookmark.
Branches that already existed before the <code>jj git fetch</code> are not affected. This
is similar to Mercurial, which fetches all its bookmarks (equivalent to Git
bookmarks) by default.</p>
is similar to Mercurial, which fetches all its bookmarks (equivalent to Git's
branches) by default.</p>
<h2 id="bookmark-movement">Bookmark movement<a class="headerlink" href="#bookmark-movement" title="Permanent link">&para;</a></h2>
<p>Currently Jujutsu automatically moves local bookmarks when these conditions are
met:</p>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../testimonials/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -2226,6 +2226,25 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#specifying-which-revisions-to-rebase" class="md-nav__link">
<span class="md-ellipsis">
Specifying which revisions to rebase
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#specifying-where-to-rebase-the-revisions" class="md-nav__link">
<span class="md-ellipsis">
Specifying where to rebase the revisions
</span>
</a>
<nav class="md-nav" aria-label="Specifying where to rebase the revisions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#options_39" class="md-nav__link">
<span class="md-ellipsis">
Options:
@ -2237,6 +2256,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -2699,12 +2723,27 @@
</li>
<li class="md-nav__item">
<a href="#jj-util-mangen" class="md-nav__link">
<a href="#jj-util-install-man-pages" class="md-nav__link">
<span class="md-ellipsis">
jj util mangen
jj util install-man-pages
</span>
</a>
<nav class="md-nav" aria-label="jj util install-man-pages">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_54" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -2727,7 +2766,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_54" class="md-nav__link">
<a href="#arguments_55" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -2793,7 +2832,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_55" class="md-nav__link">
<a href="#arguments_56" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -2826,7 +2865,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_56" class="md-nav__link">
<a href="#arguments_57" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -2859,7 +2898,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_57" class="md-nav__link">
<a href="#arguments_58" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -3567,6 +3606,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -5575,6 +5635,25 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#specifying-which-revisions-to-rebase" class="md-nav__link">
<span class="md-ellipsis">
Specifying which revisions to rebase
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#specifying-where-to-rebase-the-revisions" class="md-nav__link">
<span class="md-ellipsis">
Specifying where to rebase the revisions
</span>
</a>
<nav class="md-nav" aria-label="Specifying where to rebase the revisions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#options_39" class="md-nav__link">
<span class="md-ellipsis">
Options:
@ -5586,6 +5665,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -6048,12 +6132,27 @@
</li>
<li class="md-nav__item">
<a href="#jj-util-mangen" class="md-nav__link">
<a href="#jj-util-install-man-pages" class="md-nav__link">
<span class="md-ellipsis">
jj util mangen
jj util install-man-pages
</span>
</a>
<nav class="md-nav" aria-label="jj util install-man-pages">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_54" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -6076,7 +6175,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_54" class="md-nav__link">
<a href="#arguments_55" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -6142,7 +6241,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_55" class="md-nav__link">
<a href="#arguments_56" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -6175,7 +6274,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_56" class="md-nav__link">
<a href="#arguments_57" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -6208,7 +6307,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#arguments_57" class="md-nav__link">
<a href="#arguments_58" class="md-nav__link">
<span class="md-ellipsis">
Arguments:
</span>
@ -6357,7 +6456,7 @@ does not match the <code>jj help</code> output exactly.</p>
<li><a href="#jj-util-config-schema"><code>jj util config-schema</code></a></li>
<li><a href="#jj-util-exec"><code>jj util exec</code></a></li>
<li><a href="#jj-util-gc"><code>jj util gc</code></a></li>
<li><a href="#jj-util-mangen"><code>jj util mangen</code></a></li>
<li><a href="#jj-util-install-man-pages"><code>jj util install-man-pages</code></a></li>
<li><a href="#jj-util-markdown-help"><code>jj util markdown-help</code></a></li>
<li><a href="#jj-undo"><code>jj undo</code></a></li>
<li><a href="#jj-version"><code>jj version</code></a></li>
@ -6401,7 +6500,7 @@ does not match the <code>jj help</code> output exactly.</p>
<li><code>parallelize</code> — Parallelize revisions by making them siblings</li>
<li><code>prev</code> — Change the working copy revision relative to the parent revision</li>
<li><code>rebase</code> — Move revisions to different parent(s)</li>
<li><code>resolve</code> — Resolve a conflicted file with an external merge tool</li>
<li><code>resolve</code> — Resolve conflicted files with an external merge tool</li>
<li><code>restore</code> — Restore paths from another revision</li>
<li><code>root</code> — Show the current workspace root directory</li>
<li><code>show</code> — Show commit description and changes in a revision</li>
@ -6443,7 +6542,10 @@ does not match the <code>jj help</code> output exactly.</p>
<li>
<p><code>--debug</code> — Enable debug logging</p>
</li>
<li><code>--color &lt;WHEN&gt;</code> — When to colorize output (always, never, debug, auto)</li>
<li>
<p><code>--color &lt;WHEN&gt;</code> — When to colorize output</p>
<p>Possible values: <code>always</code>, <code>never</code>, <code>debug</code>, <code>auto</code></p>
</li>
<li>
<p><code>--quiet</code> — Silence non-primary command output</p>
<p>For example, <code>jj file list</code> will still list files, but it won't tell you if the working copy was snapshotted or if descendants were rebased.</p>
@ -6472,7 +6574,13 @@ does not match the <code>jj help</code> output exactly.</p>
<h6 id="options_1"><strong>Options:</strong><a class="headerlink" href="#options_1" title="Permanent link">&para;</a></h6>
<ul>
<li><code>-s</code>, <code>--summary</code> — Do not print every abandoned commit on a separate line</li>
<li><code>--restore-descendants</code> — Do not modify the content of the children of the abandoned commits</li>
<li>
<p><code>--retain-bookmarks</code> — Do not delete bookmarks pointing to the revisions to abandon</p>
<p>Bookmarks will be moved to the parent revisions instead.</p>
</li>
<li>
<p><code>--restore-descendants</code> — Do not modify the content of the children of the abandoned commits</p>
</li>
</ul>
<h2 id="jj-absorb"><code>jj absorb</code><a class="headerlink" href="#jj-absorb" title="Permanent link">&para;</a></h2>
<p>Move changes from a revision into the stack of mutable revisions</p>
@ -6512,7 +6620,7 @@ does not match the <code>jj help</code> output exactly.</p>
</ul>
<h2 id="jj-bookmark"><code>jj bookmark</code><a class="headerlink" href="#jj-bookmark" title="Permanent link">&para;</a></h2>
<p>Manage bookmarks [default alias: b]</p>
<p>For information about bookmarks, see https://jj-vcs.github.io/jj/latest/bookmarks.</p>
<p>See the <a href="https://jj-vcs.github.io/jj/latest/bookmarks">bookmark documentation</a> for more information.</p>
<p><strong>Usage:</strong> <code>jj bookmark &lt;COMMAND&gt;</code></p>
<h6 id="subcommands_1"><strong>Subcommands:</strong><a class="headerlink" href="#subcommands_1" title="Permanent link">&para;</a></h6>
<ul>
@ -6539,12 +6647,13 @@ does not match the <code>jj help</code> output exactly.</p>
</ul>
<h2 id="jj-bookmark-delete"><code>jj bookmark delete</code><a class="headerlink" href="#jj-bookmark-delete" title="Permanent link">&para;</a></h2>
<p>Delete an existing bookmark and propagate the deletion to remotes on the next push</p>
<p>Revisions referred to by the deleted bookmarks are not abandoned. To delete revisions as well as bookmarks, use <code>jj abandon</code>. For example, <code>jj abandon main..&lt;bookmark&gt;</code> will abandon revisions belonging to the <code>&lt;bookmark&gt;</code> branch (relative to the <code>main</code> branch.)</p>
<p><strong>Usage:</strong> <code>jj bookmark delete &lt;NAMES&gt;...</code></p>
<h6 id="arguments_3"><strong>Arguments:</strong><a class="headerlink" href="#arguments_3" title="Permanent link">&para;</a></h6>
<ul>
<li>
<p><code>&lt;NAMES&gt;</code> — The bookmarks to delete</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
</li>
</ul>
<h2 id="jj-bookmark-forget"><code>jj bookmark forget</code><a class="headerlink" href="#jj-bookmark-forget" title="Permanent link">&para;</a></h2>
@ -6555,19 +6664,19 @@ does not match the <code>jj help</code> output exactly.</p>
<ul>
<li>
<p><code>&lt;NAMES&gt;</code> — The bookmarks to forget</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
</li>
</ul>
<h2 id="jj-bookmark-list"><code>jj bookmark list</code><a class="headerlink" href="#jj-bookmark-list" title="Permanent link">&para;</a></h2>
<p>List bookmarks and their targets</p>
<p>By default, a tracking remote bookmark will be included only if its target is different from the local target. A non-tracking remote bookmark won't be listed. For a conflicted bookmark (both local and remote), old target revisions are preceded by a "-" and new target revisions are preceded by a "+".</p>
<p>For information about bookmarks, see https://jj-vcs.github.io/jj/latest/bookmarks/.</p>
<p>See the <a href="https://jj-vcs.github.io/jj/latest/bookmarks">bookmark documentation</a> for more information.</p>
<p><strong>Usage:</strong> <code>jj bookmark list [OPTIONS] [NAMES]...</code></p>
<h6 id="arguments_5"><strong>Arguments:</strong><a class="headerlink" href="#arguments_5" title="Permanent link">&para;</a></h6>
<ul>
<li>
<p><code>&lt;NAMES&gt;</code> — Show bookmarks whose local name matches</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
</li>
</ul>
<h6 id="options_5"><strong>Options:</strong><a class="headerlink" href="#options_5" title="Permanent link">&para;</a></h6>
@ -6576,7 +6685,7 @@ does not match the <code>jj help</code> output exactly.</p>
<li>
<p><code>--remote &lt;REMOTE&gt;</code> — Show all tracking and non-tracking remote bookmarks belonging to this remote</p>
<p>Can be combined with <code>--tracked</code> or <code>--conflicted</code> to filter the bookmarks shown (can be repeated.)</p>
<p>By default, the specified remote name matches exactly. Use <code>glob:</code> prefix to select remotes by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified remote name matches exactly. Use <code>glob:</code> prefix to select remotes by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
</li>
<li>
<p><code>-t</code>, <code>--tracked</code> — Show remote tracked bookmarks only. Omits local Git-tracking bookmarks by default</p>
@ -6588,8 +6697,7 @@ does not match the <code>jj help</code> output exactly.</p>
</li>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render each bookmark using the given template</p>
<p>All 0-argument methods of the <code>RefName</code> type are available as keywords.</p>
<p>For the syntax, see https://jj-vcs.github.io/jj/latest/templates/</p>
<p>All 0-argument methods of the [<code>RefName</code> type] are available as keywords in the <a href="https://jj-vcs.github.io/jj/latest/templates/">template expression</a>.</p>
</li>
</ul>
<h2 id="jj-bookmark-move"><code>jj bookmark move</code><a class="headerlink" href="#jj-bookmark-move" title="Permanent link">&para;</a></h2>
@ -6603,7 +6711,7 @@ does not match the <code>jj help</code> output exactly.</p>
<ul>
<li>
<p><code>&lt;NAMES&gt;</code> — Move bookmarks matching the given name patterns</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
</li>
</ul>
<h6 id="options_6"><strong>Options:</strong><a class="headerlink" href="#options_6" title="Permanent link">&para;</a></h6>
@ -6646,7 +6754,7 @@ does not match the <code>jj help</code> output exactly.</p>
<ul>
<li>
<p><code>&lt;BOOKMARK@REMOTE&gt;</code> — Remote bookmarks to track</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
<p>Examples: bookmark@remote, glob:main@<em>, glob:jjfan-</em>@upstream</p>
</li>
</ul>
@ -6658,7 +6766,7 @@ does not match the <code>jj help</code> output exactly.</p>
<ul>
<li>
<p><code>&lt;BOOKMARK@REMOTE&gt;</code> — Remote bookmarks to untrack</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
<p>Examples: bookmark@remote, glob:main@<em>, glob:jjfan-</em>@upstream</p>
</li>
</ul>
@ -6688,7 +6796,7 @@ does not match the <code>jj help</code> output exactly.</p>
<h2 id="jj-config"><code>jj config</code><a class="headerlink" href="#jj-config" title="Permanent link">&para;</a></h2>
<p>Manage config options</p>
<p>Operates on jj configuration, which comes from the config file and environment variables.</p>
<p>For file locations, supported config options, and other details about jj config, see https://jj-vcs.github.io/jj/latest/config/.</p>
<p>See the <a href="https://jj-vcs.github.io/jj/latest/config/">config documentation</a> for file locations, supported config options, and other details about <code>jj config</code>.</p>
<p><strong>Usage:</strong> <code>jj config &lt;COMMAND&gt;</code></p>
<h6 id="subcommands_2"><strong>Subcommands:</strong><a class="headerlink" href="#subcommands_2" title="Permanent link">&para;</a></h6>
<ul>
@ -6736,13 +6844,12 @@ Martin von Zweigbergk</p>
<li><code>--repo</code> — Target the repo-level config</li>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render each variable using the given template</p>
<p>The following keywords are defined:</p>
<p>The following keywords are available in the <a href="https://jj-vcs.github.io/jj/latest/templates/">template expression</a>:</p>
<ul>
<li><code>name: String</code>: Config name.</li>
<li><code>value: String</code>: Serialized value in TOML syntax.</li>
<li><code>value: ConfigValue</code>: Value to be formatted in TOML syntax.</li>
<li><code>overridden: Boolean</code>: True if the value is shadowed by other.</li>
</ul>
<p>For the syntax, see https://jj-vcs.github.io/jj/latest/templates/</p>
</li>
</ul>
<h2 id="jj-config-path"><code>jj config path</code><a class="headerlink" href="#jj-config-path" title="Permanent link">&para;</a></h2>
@ -6806,6 +6913,10 @@ Martin von Zweigbergk</p>
<p>This is mainly useful in combination with e.g. <code>--reset-author</code>.</p>
</li>
<li>
<p><code>--edit</code> — Open an editor</p>
<p>Forces an editor to open when using <code>--stdin</code> or <code>--message</code> to allow the message to be edited afterwards.</p>
</li>
<li>
<p><code>--reset-author</code> — Reset the author to the configured user</p>
<p>This resets the author name, email, and timestamp.</p>
<p>You can use it in combination with the JJ_USER and JJ_EMAIL environment variables to set a different author:</p>
@ -6900,8 +7011,7 @@ Martin von Zweigbergk</p>
</ul>
<h2 id="jj-edit"><code>jj edit</code><a class="headerlink" href="#jj-edit" title="Permanent link">&para;</a></h2>
<p>Sets the specified revision as the working-copy revision</p>
<p>Note: it is generally recommended to instead use <code>jj new</code> and <code>jj squash</code>.</p>
<p>For more information, see https://jj-vcs.github.io/jj/latest/FAQ#how-do-i-resume-working-on-an-existing-change</p>
<p>Note: it is <a href="https://jj-vcs.github.io/jj/latest/FAQ#how-do-i-resume-working-on-an-existing-change">generally recommended</a> to instead use <code>jj new</code> and <code>jj squash</code>.</p>
<p><strong>Usage:</strong> <code>jj edit &lt;REVSET&gt;</code></p>
<h6 id="arguments_19"><strong>Arguments:</strong><a class="headerlink" href="#arguments_19" title="Permanent link">&para;</a></h6>
<ul>
@ -6919,11 +7029,16 @@ Martin von Zweigbergk</p>
</li>
<li>
<p><code>-n</code>, <code>--limit &lt;LIMIT&gt;</code> — Limit number of revisions to show</p>
<p>Applied after revisions are reordered topologically, but before being reversed.</p>
</li>
<li>
<p><code>--reversed</code> — Show revisions in the opposite order (older revisions first)</p>
</li>
<li><code>--no-graph</code> — Don't show the graph, show a flat list of revisions</li>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render each revision using the given template</p>
<p>For the syntax, see https://jj-vcs.github.io/jj/latest/templates/</p>
<p>Run <code>jj log -T</code> to list the built-in templates.</p>
<p>You can also specify arbitrary [template expressions] using the <a href="https://jj-vcs.github.io/jj/latest/templates/#commit-keywords">built-in keywords</a>.</p>
</li>
<li>
<p><code>-p</code>, <code>--patch</code> — Show patch compared to the previous version of this change</p>
@ -7014,6 +7129,10 @@ Martin von Zweigbergk</p>
<p><code>-r</code>, <code>--revision &lt;REVSET&gt;</code> — The revision to list files in</p>
<p>Default value: <code>@</code></p>
</li>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render each file entry using the given template</p>
<p>All 0-argument methods of the [<code>TreeEntry</code> type] are available as keywords in the <a href="https://jj-vcs.github.io/jj/latest/templates/">template expression</a>.</p>
</li>
</ul>
<h2 id="jj-file-show"><code>jj file show</code><a class="headerlink" href="#jj-file-show" title="Permanent link">&para;</a></h2>
<p>Print contents of files in a revision</p>
@ -7078,6 +7197,9 @@ the values have the following properties:</p>
empty, no files will be affected by the tool. If there are multiple
patterns, the tool is applied only once to each file in the union of the
patterns.</li>
<li><code>enabled</code>: Enables or disables the tool. If omitted, the tool is enabled.
This is useful for defining disabled tools in user configuration that can
be enabled in individual repositories with one config setting.</li>
</ul>
<p>For example, the following configuration defines how two code formatters
(<code>clang-format</code> and <code>black</code>) will apply to three different file extensions
@ -7095,16 +7217,6 @@ the values have the following properties:</p>
currently unspecified, and may change between releases. If two tools affect
the same file, the second tool to run will receive its input from the
output of the first tool.</p>
<p>There is also a deprecated configuration schema that defines a single
command that will affect all changed files in the specified revisions. For
example, the following configuration would apply the Rust formatter to all
changed files (whether they are Rust files or not):</p>
<div class="highlight"><pre><span></span><code><span class="k">[fix]</span>
<span class="n">tool-command</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;rustfmt&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;--emit&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;stdout&quot;</span><span class="p">]</span>
</code></pre></div>
<p>The tool defined by <code>tool-command</code> acts as if it was the first entry in
<code>fix.tools</code>, and uses <code>pattern = "all()"``. Support for</code>tool-command`
will be removed in a future version.</p>
<p><strong>Usage:</strong> <code>jj fix [OPTIONS] [FILESETS]...</code></p>
<h6 id="arguments_26"><strong>Arguments:</strong><a class="headerlink" href="#arguments_26" title="Permanent link">&para;</a></h6>
<ul>
@ -7117,7 +7229,7 @@ will be removed in a future version.</p>
</ul>
<h2 id="jj-git"><code>jj git</code><a class="headerlink" href="#jj-git" title="Permanent link">&para;</a></h2>
<p>Commands for working with Git remotes and the underlying Git repo</p>
<p>For a comparison with Git, including a table of commands, see https://jj-vcs.github.io/jj/latest/git-comparison/.</p>
<p>See this <a href="https://jj-vcs.github.io/jj/latest/git-comparison/.">comparison</a>, including a <a href="https://jj-vcs.github.io/jj/latest/git-comparison/#command-equivalence-table">table of commands</a>.</p>
<p><strong>Usage:</strong> <code>jj git &lt;COMMAND&gt;</code></p>
<h6 id="subcommands_4"><strong>Subcommands:</strong><a class="headerlink" href="#subcommands_4" title="Permanent link">&para;</a></h6>
<ul>
@ -7135,8 +7247,13 @@ will be removed in a future version.</p>
<p><strong>Usage:</strong> <code>jj git clone [OPTIONS] &lt;SOURCE&gt; [DESTINATION]</code></p>
<h6 id="arguments_27"><strong>Arguments:</strong><a class="headerlink" href="#arguments_27" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;SOURCE&gt;</code> — URL or path of the Git repo to clone</li>
<li><code>&lt;DESTINATION&gt;</code> — Specifies the target directory for the Jujutsu repository clone. If not provided, defaults to a directory named after the last component of the source URL. The full directory path will be created if it doesn't exist</li>
<li>
<p><code>&lt;SOURCE&gt;</code> — URL or path of the Git repo to clone</p>
<p>Local path will be resolved to absolute form.</p>
</li>
<li>
<p><code>&lt;DESTINATION&gt;</code> — Specifies the target directory for the Jujutsu repository clone. If not provided, defaults to a directory named after the last component of the source URL. The full directory path will be created if it doesn't exist</p>
</li>
</ul>
<h6 id="options_24"><strong>Options:</strong><a class="headerlink" href="#options_24" title="Permanent link">&para;</a></h6>
<ul>
@ -7203,7 +7320,8 @@ will be removed in a future version.</p>
<p>Push to a Git remote</p>
<p>By default, pushes tracking bookmarks pointing to <code>remote_bookmarks(remote=&lt;remote&gt;)..@</code>. Use <code>--bookmark</code> to push specific bookmarks. Use <code>--all</code> to push all bookmarks. Use <code>--change</code> to generate bookmark names based on the change IDs of specific commits.</p>
<p>Unlike in Git, the remote to push to is not derived from the tracked remote bookmarks. Use <code>--remote</code> to select the remote Git repository by name. There is no option to push to multiple remotes.</p>
<p>Before the command actually moves, creates, or deletes a remote bookmark, it makes several <a href="https://jj-vcs.github.io/jj/latest/bookmarks/#pushing-bookmarks-safety-checks">safety checks</a>. If there is a problem, you may need to run <code>jj git fetch --remote &lt;remote name&gt;</code> and/or resolve some <a href="https://jj-vcs.github.io/jj/latest/bookmarks/#conflicts">bookmark conflicts</a>.</p>
<p>Before the command actually moves, creates, or deletes a remote bookmark, it makes several [safety checks]. If there is a problem, you may need to run <code>jj git fetch --remote &lt;remote name&gt;</code> and/or resolve some [bookmark conflicts].</p>
<p>[safety checks]: https://jj-vcs.github.io/jj/latest/bookmarks/#pushing-bookmarks-safety-checks [bookmark conflicts]: https://jj-vcs.github.io/jj/latest/bookmarks/#conflicts</p>
<p><strong>Usage:</strong> <code>jj git push [OPTIONS]</code></p>
<h6 id="options_27"><strong>Options:</strong><a class="headerlink" href="#options_27" title="Permanent link">&para;</a></h6>
<ul>
@ -7213,14 +7331,14 @@ will be removed in a future version.</p>
</li>
<li>
<p><code>-b</code>, <code>--bookmark &lt;BOOKMARK&gt;</code> — Push only this bookmark, or bookmarks matching a pattern (can be repeated)</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select bookmarks by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
</li>
<li>
<p><code>--all</code> — Push all bookmarks (including new and deleted bookmarks)</p>
</li>
<li>
<p><code>--tracked</code> — Push all tracked bookmarks (including deleted bookmarks)</p>
<p>This usually means that the bookmark was already pushed to or fetched from the relevant remote. For details, see https://jj-vcs.github.io/jj/latest/bookmarks#remotes-and-tracked-bookmarks</p>
<p>This usually means that the bookmark was already pushed to or fetched from the <a href="https://jj-vcs.github.io/jj/latest/bookmarks#remotes-and-tracked-bookmarks">relevant remote</a>.</p>
</li>
<li>
<p><code>--deleted</code> — Push all deleted bookmarks</p>
@ -7229,12 +7347,18 @@ will be removed in a future version.</p>
<li>
<p><code>-N</code>, <code>--allow-new</code> — Allow pushing new bookmarks</p>
<p>Newly-created remote bookmarks will be tracked automatically.</p>
<p>This can also be turned on by the <code>git.push-new-bookmarks</code> setting. If it's set to <code>true</code>, <code>--allow-new</code> is no-op.</p>
</li>
<li>
<p><code>--allow-empty-description</code> — Allow pushing commits with empty descriptions</p>
</li>
<li><code>--allow-private</code> — Allow pushing commits that are private</li>
<li><code>-r</code>, <code>--revisions &lt;REVSETS&gt;</code> — Push bookmarks pointing to these commits (can be repeated)</li>
<li>
<p><code>--allow-private</code> — Allow pushing commits that are private</p>
<p>The set of private commits can be configured by the <code>git.private-commits</code> setting. The default is <code>none()</code>, meaning all commits are eligible to be pushed.</p>
</li>
<li>
<p><code>-r</code>, <code>--revisions &lt;REVSETS&gt;</code> — Push bookmarks pointing to these commits (can be repeated)</p>
</li>
<li>
<p><code>-c</code>, <code>--change &lt;REVSETS&gt;</code> — Push this commit by creating a bookmark based on its change ID (can be repeated)</p>
<p>The created bookmark will be tracked automatically. Use the <code>git.push-bookmark-prefix</code> setting to change the prefix for generated names.</p>
@ -7261,7 +7385,10 @@ will be removed in a future version.</p>
<h6 id="arguments_29"><strong>Arguments:</strong><a class="headerlink" href="#arguments_29" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;REMOTE&gt;</code> — The remote's name</li>
<li><code>&lt;URL&gt;</code> — The remote's URL</li>
<li>
<p><code>&lt;URL&gt;</code> — The remote's URL or path</p>
<p>Local path will be resolved to absolute form.</p>
</li>
</ul>
<h2 id="jj-git-remote-list"><code>jj git remote list</code><a class="headerlink" href="#jj-git-remote-list" title="Permanent link">&para;</a></h2>
<p>List Git remotes</p>
@ -7287,7 +7414,10 @@ will be removed in a future version.</p>
<h6 id="arguments_32"><strong>Arguments:</strong><a class="headerlink" href="#arguments_32" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;REMOTE&gt;</code> — The remote's name</li>
<li><code>&lt;URL&gt;</code> — The desired url for <code>remote</code></li>
<li>
<p><code>&lt;URL&gt;</code> — The desired URL or path for <code>remote</code></p>
<p>Local path will be resolved to absolute form.</p>
</li>
</ul>
<h2 id="jj-help"><code>jj help</code><a class="headerlink" href="#jj-help" title="Permanent link">&para;</a></h2>
<p>Print this message or the help of the given subcommand(s)</p>
@ -7363,9 +7493,9 @@ will be removed in a future version.</p>
</ul>
<h2 id="jj-log"><code>jj log</code><a class="headerlink" href="#jj-log" title="Permanent link">&para;</a></h2>
<p>Show revision history</p>
<p>Renders a graphical view of the project's history, ordered with children before parents. By default, the output only includes mutable revisions, along with some additional revisions for context. Use <code>jj log -r ::</code> to see all revisions. See <code>jj help -k revsets</code> (or https://jj-vcs.github.io/jj/latest/revsets/) for information about the syntax.</p>
<p>Renders a graphical view of the project's history, ordered with children before parents. By default, the output only includes mutable revisions, along with some additional revisions for context. Use <code>jj log -r ::</code> to see all revisions. See [<code>jj help -k revsets</code>] for information about the syntax.</p>
<p>Spans of revisions that are not included in the graph per <code>--revisions</code> are rendered as a synthetic node labeled "(elided revisions)".</p>
<p>The working-copy commit is indicated by a <code>@</code> symbol in the graph. Immutable revisions (https://jj-vcs.github.io/jj/latest/config/#set-of-immutable-commits) have a <code></code> symbol. Other commits have a <code></code> symbol. To customize these symbols, see https://jj-vcs.github.io/jj/latest/config/#node-style.</p>
<p>The working-copy commit is indicated by a <code>@</code> symbol in the graph. <a href="https://jj-vcs.github.io/jj/latest/config/#set-of-immutable-commits">Immutable revisions</a> have a <code></code> symbol. Other commits have a <code></code> symbol. All of these symbols can be <a href="https://jj-vcs.github.io/jj/latest/config/#node-style">customized</a>.</p>
<p><strong>Usage:</strong> <code>jj log [OPTIONS] [FILESETS]...</code></p>
<h6 id="arguments_36"><strong>Arguments:</strong><a class="headerlink" href="#arguments_36" title="Permanent link">&para;</a></h6>
<ul>
@ -7378,20 +7508,19 @@ will be removed in a future version.</p>
<p>If no paths nor revisions are specified, this defaults to the <code>revsets.log</code> setting.</p>
</li>
<li>
<p><code>-n</code>, <code>--limit &lt;LIMIT&gt;</code> — Limit number of revisions to show</p>
<p>Applied after revisions are filtered and reordered topologically, but before being reversed.</p>
</li>
<li>
<p><code>--reversed</code> — Show revisions in the opposite order (older revisions first)</p>
</li>
<li>
<p><code>-n</code>, <code>--limit &lt;LIMIT&gt;</code> — Limit number of revisions to show</p>
<p>Applied after revisions are filtered and reordered.</p>
</li>
<li>
<p><code>--no-graph</code> — Don't show the graph, show a flat list of revisions</p>
</li>
<li><code>--no-graph</code> — Don't show the graph, show a flat list of revisions</li>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render each revision using the given template</p>
<p>Run <code>jj log -T</code> to list the built-in templates.</p>
<p>You can also specify arbitrary template expressions. For the syntax, see https://jj-vcs.github.io/jj/latest/templates/.</p>
<p>You can also specify arbitrary [template expressions] using the <a href="https://jj-vcs.github.io/jj/latest/templates/#commit-keywords">built-in keywords</a>.</p>
<p>If not specified, this defaults to the <code>templates.log</code> setting.</p>
<p><a href="https://jj-vcs.github.io/jj/latest/templates/">template expression</a>: https://jj-vcs.github.io/jj/latest/templates/ <a href="https://jj-vcs.github.io/jj/latest/templates/#commit-keywords">built-in keywords</a>: https://jj-vcs.github.io/jj/latest/templates/#commit-keywords</p>
</li>
<li>
<p><code>-p</code>, <code>--patch</code> — Show patch</p>
@ -7417,9 +7546,8 @@ will be removed in a future version.</p>
</ul>
<h2 id="jj-new"><code>jj new</code><a class="headerlink" href="#jj-new" title="Permanent link">&para;</a></h2>
<p>Create a new, empty change and (by default) edit it in the working copy</p>
<p>By default, <code>jj</code> will edit the new change, making the working copy represent the new commit. This can be avoided with <code>--no-edit</code>.</p>
<p>By default, <code>jj</code> will edit the new change, making the <a href="https://jj-vcs.github.io/jj/latest/working-copy/">working copy</a> represent the new commit. This can be avoided with <code>--no-edit</code>.</p>
<p>Note that you can create a merge commit by specifying multiple revisions as argument. For example, <code>jj new @ main</code> will create a new commit with the working copy and the <code>main</code> bookmark as parents.</p>
<p>For more information, see https://jj-vcs.github.io/jj/latest/working-copy/.</p>
<p><strong>Usage:</strong> <code>jj new [OPTIONS] [REVSETS]...</code></p>
<h6 id="arguments_37"><strong>Arguments:</strong><a class="headerlink" href="#arguments_37" title="Permanent link">&para;</a></h6>
<ul>
@ -7481,7 +7609,7 @@ B =&gt; @
</ul>
<h2 id="jj-operation"><code>jj operation</code><a class="headerlink" href="#jj-operation" title="Permanent link">&para;</a></h2>
<p>Commands for working with the operation log</p>
<p>For information about the operation log, see https://jj-vcs.github.io/jj/latest/operation-log/.</p>
<p>See the <a href="https://jj-vcs.github.io/jj/latest/operation-log/">operation log documentation</a> for more information.</p>
<p><strong>Usage:</strong> <code>jj operation &lt;COMMAND&gt;</code></p>
<h6 id="subcommands_6"><strong>Subcommands:</strong><a class="headerlink" href="#subcommands_6" title="Permanent link">&para;</a></h6>
<ul>
@ -7542,11 +7670,17 @@ B =&gt; @
<p><strong>Usage:</strong> <code>jj operation log [OPTIONS]</code></p>
<h6 id="options_34"><strong>Options:</strong><a class="headerlink" href="#options_34" title="Permanent link">&para;</a></h6>
<ul>
<li><code>-n</code>, <code>--limit &lt;LIMIT&gt;</code> — Limit number of operations to show</li>
<li>
<p><code>-n</code>, <code>--limit &lt;LIMIT&gt;</code> — Limit number of operations to show</p>
<p>Applied after operations are reordered topologically, but before being reversed.</p>
</li>
<li>
<p><code>--reversed</code> — Show operations in the opposite order (older operations first)</p>
</li>
<li><code>--no-graph</code> — Don't show the graph, show a flat list of operations</li>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render each operation using the given template</p>
<p>For the syntax, see https://jj-vcs.github.io/jj/latest/templates/</p>
<p>You can specify arbitrary [template expressions] using the <a href="https://jj-vcs.github.io/jj/latest/templates/#commit-keywords">built-in keywords</a>.</p>
</li>
<li>
<p><code>--op-diff</code> — Show changes to the repository at each operation</p>
@ -7740,14 +7874,35 @@ A A
</ul>
<h2 id="jj-rebase"><code>jj rebase</code><a class="headerlink" href="#jj-rebase" title="Permanent link">&para;</a></h2>
<p>Move revisions to different parent(s)</p>
<p>There are three different ways of specifying which revisions to rebase:
<code>-b</code> to rebase a whole branch, <code>-s</code> to rebase a revision and its
descendants, and <code>-r</code> to rebase a single commit. If none of them is
specified, it defaults to <code>-b @</code>.</p>
<p>With <code>-s</code>, the command rebases the specified revision and its descendants
onto the destination. For example, <code>jj rebase -s M -d O</code> would transform
your history like this (letters followed by an apostrophe are post-rebase
versions):</p>
<p>This command moves revisions to different parent(s) while preserving the
changes (diff) in the revisions.</p>
<p>There are three different ways of specifying which revisions to rebase:</p>
<ul>
<li><code>--source/-s</code> to rebase a revision and its descendants</li>
<li><code>--branch/-b</code> to rebase a whole branch, relative to the destination</li>
<li><code>--revisions/-r</code> to rebase the specified revisions without their
descendants</li>
</ul>
<p>If no option is specified, it defaults to <code>-b @</code>.</p>
<p>There are three different ways of specifying where the revisions should be
rebased to:</p>
<ul>
<li><code>--destination/-d</code> to rebase the revisions onto the specified targets</li>
<li><code>--insert-after/-A</code> to rebase the revisions onto the specified targets and
to rebase the targets' descendants onto the rebased revisions</li>
<li><code>--insert-before/-B</code> to rebase the revisions onto the specified targets'
parents and to rebase the targets and their descendants onto the rebased
revisions</li>
</ul>
<p>See the sections below for details about the different ways of specifying
which revisions to rebase where.</p>
<p>If a working-copy revision gets abandoned, it will be given a new, empty
revision. This is true in general; it is not specific to this command.</p>
<h3 id="specifying-which-revisions-to-rebase">Specifying which revisions to rebase<a class="headerlink" href="#specifying-which-revisions-to-rebase" title="Permanent link">&para;</a></h3>
<p>With <code>--source/-s</code>, the command rebases the specified revision and its
descendants onto the destination. For example, <code>jj rebase -s M -d O</code> would
transform your history like this (letters followed by an apostrophe are
post-rebase versions):</p>
<div class="highlight"><pre><span></span><code>O N&#39;
| |
| N M&#39;
@ -7760,14 +7915,18 @@ versions):</p>
|/ |/
J J
</code></pre></div>
<p>With <code>-b</code>, the command rebases the whole "branch" containing the specified
revision. A "branch" is the set of commits that includes:</p>
<p>Each revision passed to <code>-s</code> will become a direct child of the destination,
so if you instead run <code>jj rebase -s M -s N -d O</code> (or
<code>jj rebase -s 'all:M|N' -d O</code>) in the example above, then N' would instead
be a direct child of O.</p>
<p>With <code>--branch/-b</code>, the command rebases the whole "branch" containing the
specified revision. A "branch" is the set of revisions that includes:</p>
<ul>
<li>the specified revision and ancestors that are not also ancestors of the
destination</li>
<li>all descendants of those commits</li>
<li>all descendants of those revisions</li>
</ul>
<p>In other words, <code>jj rebase -b X -d Y</code> rebases commits in the revset
<p>In other words, <code>jj rebase -b X -d Y</code> rebases revisions in the revset
<code>(Y..X)::</code> (which is equivalent to <code>jj rebase -s 'roots(Y..X)' -d Y</code> for a
single root). For example, either <code>jj rebase -b L -d O</code> or <code>jj rebase -b M
-d O</code> would transform your history like this (because <code>L</code> and <code>M</code> are on the
@ -7784,10 +7943,10 @@ same "branch", relative to the destination):</p>
|/ |
J J
</code></pre></div>
<p>With <code>-r</code>, the command rebases only the specified revisions onto the
destination. Any "hole" left behind will be filled by rebasing descendants
onto the specified revision's parent(s). For example, <code>jj rebase -r K -d M</code>
would transform your history like this:</p>
<p>With <code>--revisions/-r</code>, the command rebases only the specified revisions onto
the destination. Any "hole" left behind will be filled by rebasing
descendants onto the specified revisions' parent(s). For example,
<code>jj rebase -r K -d M</code> would transform your history like this:</p>
<div class="highlight"><pre><span></span><code>M K&#39;
| |
| L M
@ -7796,10 +7955,30 @@ would transform your history like this:</p>
|/ |/
J J
</code></pre></div>
<p>Note that you can create a merge commit by repeating the <code>-d</code> argument.
For example, if you realize that commit L actually depends on commit M in
order to work (in addition to its current parent K), you can run <code>jj rebase
-s L -d K -d M</code>:</p>
<p>Multiple revisions can be specified, and any dependencies (graph edges)
within the set will be preserved. For example, <code>jj rebase -r 'K|N' -d O</code>
would transform your history like this:</p>
<div class="highlight"><pre><span></span><code>O N&#39;
| |
| N K&#39;
| | |
| M O
| | =&gt; |
| | L | M&#39;
| |/ |/
| K | L&#39;
|/ |/
J J
</code></pre></div>
<p><code>jj rebase -s X</code> is similar to <code>jj rebase -r X::</code> and will behave the same
if X is a single revision. However, if X is a set of multiple revisions,
or if you passed multiple <code>-s</code> arguments, then <code>jj rebase -s</code> will make each
of the specified revisions an immediate child of the destination, while
<code>jj rebase -r</code> will preserve dependencies within the set.</p>
<p>Note that you can create a merge revision by repeating the <code>-d</code> argument.
For example, if you realize that revision L actually depends on revision M
in order to work (in addition to its current parent K), you can run <code>jj
rebase -s L -d K -d M</code>:</p>
<div class="highlight"><pre><span></span><code>M L&#39;
| |\
| L M |
@ -7808,8 +7987,74 @@ order to work (in addition to its current parent K), you can run <code>jj rebase
|/ |/
J J
</code></pre></div>
<p>If a working-copy commit gets abandoned, it will be given a new, empty
commit. This is true in general; it is not specific to this command.</p>
<h3 id="specifying-where-to-rebase-the-revisions">Specifying where to rebase the revisions<a class="headerlink" href="#specifying-where-to-rebase-the-revisions" title="Permanent link">&para;</a></h3>
<p>With <code>--destination/-d</code>, the command rebases the selected revisions onto
the targets. Existing descendants of the targets will not be affected. See
the section above for examples.</p>
<p>With <code>--insert-after/-A</code>, the selected revisions will be inserted after the
targets. This is similar to <code>-d</code>, but if the targets have any existing
descendants, then those will be rebased onto the rebased selected revisions.</p>
<p>For example, <code>jj rebase -r K -A L</code> will rewrite history like this:
<div class="highlight"><pre><span></span><code>N N&#39;
| |
| M | M&#39;
|/ |/
L =&gt; K&#39;
| |
| K L
|/ |
J J
</code></pre></div></p>
<p>The <code>-A</code> (and <code>-B</code>) argument can also be used for reordering revisions. For
example, <code>jj rebase -r M -A J</code> will rewrite history like this:
<div class="highlight"><pre><span></span><code>M L&#39;
| |
L K&#39;
| =&gt; |
K M&#39;
| |
J J
</code></pre></div></p>
<p>With <code>--insert-before/-B</code>, the selected revisions will be inserted before
the targets. This is achieved by rebasing the selected revisions onto the
target revisions' parents, and then rebasing the target revisions and their
descendants onto the rebased revisions.</p>
<p>For example, <code>jj rebase -r K -B L</code> will rewrite history like this:
<div class="highlight"><pre><span></span><code>N N&#39;
| |
| M | M&#39;
|/ |/
L =&gt; L&#39;
| |
| K K&#39;
|/ |
J J
</code></pre></div></p>
<p>The <code>-A</code> and <code>-B</code> arguments can also be combined, which can be useful around
merges. For example, you can use <code>jj rebase -r K -A J -B M</code> to create a new
merge (but <code>jj rebase -r M -d L -d K</code> might be simpler in this particular
case):
<div class="highlight"><pre><span></span><code>M M&#39;
| |\
L L |
| =&gt; | |
| K | K&#39;
|/ |/
J J
</code></pre></div></p>
<p>To insert a commit inside an existing merge with <code>jj rebase -r O -A K -B M</code>:
<div class="highlight"><pre><span></span><code>O N&#39;
| |\
N | M&#39;
|\ | |\
| M | O&#39;|
| | =&gt; |/ /
| L | L
| | | |
K | K |
|/ |/
J J
</code></pre></div></p>
<p><strong>Usage:</strong> <code>jj rebase [OPTIONS] &lt;--destination &lt;REVSETS&gt;|--insert-after &lt;REVSETS&gt;|--insert-before &lt;REVSETS&gt;&gt;</code></p>
<h6 id="options_39"><strong>Options:</strong><a class="headerlink" href="#options_39" title="Permanent link">&para;</a></h6>
<ul>
@ -7836,13 +8081,13 @@ commit. This is true in general; it is not specific to this command.</p>
<li><code>--skip-emptied</code> — If true, when rebasing would produce an empty commit, the commit is abandoned. It will not be abandoned if it was already empty before the rebase. Will never skip merge commits with multiple non-empty parents</li>
</ul>
<h2 id="jj-resolve"><code>jj resolve</code><a class="headerlink" href="#jj-resolve" title="Permanent link">&para;</a></h2>
<p>Resolve a conflicted file with an external merge tool</p>
<p>Only conflicts that can be resolved with a 3-way merge are supported. See docs for merge tool configuration instructions.</p>
<p>Resolve conflicted files with an external merge tool</p>
<p>Only conflicts that can be resolved with a 3-way merge are supported. See docs for merge tool configuration instructions. External merge tools will be invoked for each conflicted file one-by-one until all conflicts are resolved. To stop resolving conflicts, exit the merge tool without making any changes.</p>
<p>Note that conflicts can also be resolved without using this command. You may edit the conflict markers in the conflicted file directly with a text editor.</p>
<p><strong>Usage:</strong> <code>jj resolve [OPTIONS] [FILESETS]...</code></p>
<h6 id="arguments_45"><strong>Arguments:</strong><a class="headerlink" href="#arguments_45" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;FILESETS&gt;</code>Restrict to these paths when searching for a conflict to resolve. We will attempt to resolve the first conflict we can find. You can use the <code>--list</code> argument to find paths to use here</li>
<li><code>&lt;FILESETS&gt;</code>Only resolve conflicts in these paths. You can use the <code>--list</code> argument to find paths to use here</li>
</ul>
<h6 id="options_40"><strong>Options:</strong><a class="headerlink" href="#options_40" title="Permanent link">&para;</a></h6>
<ul>
@ -7851,7 +8096,7 @@ commit. This is true in general; it is not specific to this command.</p>
<p>Default value: <code>@</code></p>
</li>
<li>
<p><code>-l</code>, <code>--list</code> — Instead of resolving one conflict, list all the conflicts</p>
<p><code>-l</code>, <code>--list</code> — Instead of resolving conflicts, list all the conflicts</p>
</li>
<li><code>--tool &lt;NAME&gt;</code> — Specify 3-way merge tool to be used</li>
</ul>
@ -7869,15 +8114,17 @@ commit. This is true in general; it is not specific to this command.</p>
<h6 id="options_41"><strong>Options:</strong><a class="headerlink" href="#options_41" title="Permanent link">&para;</a></h6>
<ul>
<li><code>-f</code>, <code>--from &lt;REVSET&gt;</code> — Revision to restore from (source)</li>
<li><code>-t</code>, <code>--to &lt;REVSETS&gt;</code> — Revision to restore into (destination)</li>
<li><code>-t</code>, <code>--into &lt;REVSETS&gt;</code> — Revision to restore into (destination)</li>
<li>
<p><code>-c</code>, <code>--changes-in &lt;REVSET&gt;</code> — Undo the changes in a revision as compared to the merge of its parents.</p>
<p>This undoes the changes that can be seen with <code>jj diff -r REVSET</code>. If <code>REVSET</code> only has a single parent, this option is equivalent to <code>jj restore --to REVSET --from REVSET-</code>.</p>
<p>This undoes the changes that can be seen with <code>jj diff -r REVSET</code>. If <code>REVSET</code> only has a single parent, this option is equivalent to <code>jj restore --into REVSET --from REVSET-</code>.</p>
<p>The default behavior of <code>jj restore</code> is equivalent to <code>jj restore --changes-in @</code>.</p>
</li>
<li>
<p><code>--restore-descendants</code> — Preserve the content (not the diff) when rebasing descendants</p>
<p><code>-i</code>, <code>--interactive</code> — Interactively choose which parts to restore</p>
</li>
<li><code>--tool &lt;NAME&gt;</code> — Specify diff editor to be used (implies --interactive)</li>
<li><code>--restore-descendants</code> — Preserve the content (not the diff) when rebasing descendants</li>
</ul>
<h2 id="jj-root"><code>jj root</code><a class="headerlink" href="#jj-root" title="Permanent link">&para;</a></h2>
<p>Show the current workspace root directory</p>
@ -7896,7 +8143,7 @@ commit. This is true in general; it is not specific to this command.</p>
<ul>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render a revision using the given template</p>
<p>For the syntax, see https://jj-vcs.github.io/jj/latest/templates/</p>
<p>You can specify arbitrary [template expressions] using the <a href="https://jj-vcs.github.io/jj/latest/templates/#commit-keywords">built-in keywords</a>.</p>
</li>
<li>
<p><code>-s</code>, <code>--summary</code> — For each path, show only whether it was modified, added, or deleted</p>
@ -8016,7 +8263,7 @@ commit. This is true in general; it is not specific to this command.</p>
<p>Show high-level repo status</p>
<p>This includes:</p>
<ul>
<li>The working copy commit and its (first) parent, and a summary of the changes between them * Conflicted bookmarks (see https://jj-vcs.github.io/jj/latest/bookmarks/)</li>
<li>The working copy commit and its (first) parent, and a summary of the changes between them * <a href="https://jj-vcs.github.io/jj/latest/bookmarks/#conflicts">Conflicted bookmarks</a></li>
</ul>
<p><strong>Usage:</strong> <code>jj status [FILESETS]...</code></p>
<h6 id="arguments_50"><strong>Arguments:</strong><a class="headerlink" href="#arguments_50" title="Permanent link">&para;</a></h6>
@ -8037,15 +8284,14 @@ commit. This is true in general; it is not specific to this command.</p>
<ul>
<li>
<p><code>&lt;NAMES&gt;</code> — Show tags whose local name matches</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select tags by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.</p>
<p>By default, the specified name matches exactly. Use <code>glob:</code> prefix to select tags by <a href="https://jj-vcs.github.io/jj/latest/revsets/#string-patterns">wildcard pattern</a>.</p>
</li>
</ul>
<h6 id="options_47"><strong>Options:</strong><a class="headerlink" href="#options_47" title="Permanent link">&para;</a></h6>
<ul>
<li>
<p><code>-T</code>, <code>--template &lt;TEMPLATE&gt;</code> — Render each tag using the given template</p>
<p>All 0-argument methods of the <code>RefName</code> type are available as keywords.</p>
<p>For the syntax, see https://jj-vcs.github.io/jj/latest/templates/</p>
<p>All 0-argument methods of the [<code>RefName</code> type] are available as keywords in the <a href="https://jj-vcs.github.io/jj/latest/templates/">template expression</a>.</p>
</li>
</ul>
<h2 id="jj-util"><code>jj util</code><a class="headerlink" href="#jj-util" title="Permanent link">&para;</a></h2>
@ -8057,7 +8303,7 @@ commit. This is true in general; it is not specific to this command.</p>
<li><code>config-schema</code> — Print the JSON schema for the jj TOML config format</li>
<li><code>exec</code> — Execute an external command via jj</li>
<li><code>gc</code> — Run backend-dependent garbage collection</li>
<li><code>mangen</code> — Print a ROFF (manpage)</li>
<li><code>install-man-pages</code> — Install Jujutsu's manpages to the provided path</li>
<li><code>markdown-help</code> — Print the CLI help for all subcommands in Markdown</li>
</ul>
<h2 id="jj-util-completion"><code>jj util completion</code><a class="headerlink" href="#jj-util-completion" title="Permanent link">&para;</a></h2>
@ -8138,16 +8384,20 @@ inline it into your config file:</p>
<p>Only the string "now" can be passed to this parameter. Support for arbitrary absolute and relative timestamps will come in a subsequent release.</p>
</li>
</ul>
<h2 id="jj-util-mangen"><code>jj util mangen</code><a class="headerlink" href="#jj-util-mangen" title="Permanent link">&para;</a></h2>
<p>Print a ROFF (manpage)</p>
<p><strong>Usage:</strong> <code>jj util mangen</code></p>
<h2 id="jj-util-install-man-pages"><code>jj util install-man-pages</code><a class="headerlink" href="#jj-util-install-man-pages" title="Permanent link">&para;</a></h2>
<p>Install Jujutsu's manpages to the provided path</p>
<p><strong>Usage:</strong> <code>jj util install-man-pages &lt;PATH&gt;</code></p>
<h6 id="arguments_54"><strong>Arguments:</strong><a class="headerlink" href="#arguments_54" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;PATH&gt;</code> — The path where manpages will installed. An example path might be <code>/usr/share/man</code>. The provided path will be appended with <code>man1</code>, etc., as appropriate</li>
</ul>
<h2 id="jj-util-markdown-help"><code>jj util markdown-help</code><a class="headerlink" href="#jj-util-markdown-help" title="Permanent link">&para;</a></h2>
<p>Print the CLI help for all subcommands in Markdown</p>
<p><strong>Usage:</strong> <code>jj util markdown-help</code></p>
<h2 id="jj-undo"><code>jj undo</code><a class="headerlink" href="#jj-undo" title="Permanent link">&para;</a></h2>
<p>Undo an operation (shortcut for <code>jj op undo</code>)</p>
<p><strong>Usage:</strong> <code>jj undo [OPTIONS] [OPERATION]</code></p>
<h6 id="arguments_54"><strong>Arguments:</strong><a class="headerlink" href="#arguments_54" title="Permanent link">&para;</a></h6>
<h6 id="arguments_55"><strong>Arguments:</strong><a class="headerlink" href="#arguments_55" title="Permanent link">&para;</a></h6>
<ul>
<li>
<p><code>&lt;OPERATION&gt;</code> — The operation to undo</p>
@ -8192,7 +8442,7 @@ inline it into your config file:</p>
<p>Add a workspace</p>
<p>By default, the new workspace inherits the sparse patterns of the current workspace. You can override this with the <code>--sparse-patterns</code> option.</p>
<p><strong>Usage:</strong> <code>jj workspace add [OPTIONS] &lt;DESTINATION&gt;</code></p>
<h6 id="arguments_55"><strong>Arguments:</strong><a class="headerlink" href="#arguments_55" title="Permanent link">&para;</a></h6>
<h6 id="arguments_56"><strong>Arguments:</strong><a class="headerlink" href="#arguments_56" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;DESTINATION&gt;</code> — Where to create the new workspace</li>
</ul>
@ -8225,7 +8475,7 @@ inline it into your config file:</p>
<p>Stop tracking a workspace's working-copy commit in the repo</p>
<p>The workspace will not be touched on disk. It can be deleted from disk before or after running this command.</p>
<p><strong>Usage:</strong> <code>jj workspace forget [WORKSPACES]...</code></p>
<h6 id="arguments_56"><strong>Arguments:</strong><a class="headerlink" href="#arguments_56" title="Permanent link">&para;</a></h6>
<h6 id="arguments_57"><strong>Arguments:</strong><a class="headerlink" href="#arguments_57" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;WORKSPACES&gt;</code> — Names of the workspaces to forget. By default, forgets only the current workspace</li>
</ul>
@ -8235,7 +8485,7 @@ inline it into your config file:</p>
<h2 id="jj-workspace-rename"><code>jj workspace rename</code><a class="headerlink" href="#jj-workspace-rename" title="Permanent link">&para;</a></h2>
<p>Renames the current workspace</p>
<p><strong>Usage:</strong> <code>jj workspace rename &lt;NEW_WORKSPACE_NAME&gt;</code></p>
<h6 id="arguments_57"><strong>Arguments:</strong><a class="headerlink" href="#arguments_57" title="Permanent link">&para;</a></h6>
<h6 id="arguments_58"><strong>Arguments:</strong><a class="headerlink" href="#arguments_58" title="Permanent link">&para;</a></h6>
<ul>
<li><code>&lt;NEW_WORKSPACE_NAME&gt;</code> — The name of the workspace to update to</li>
</ul>
@ -8244,7 +8494,7 @@ inline it into your config file:</p>
<p><strong>Usage:</strong> <code>jj workspace root</code></p>
<h2 id="jj-workspace-update-stale"><code>jj workspace update-stale</code><a class="headerlink" href="#jj-workspace-update-stale" title="Permanent link">&para;</a></h2>
<p>Update a workspace that has become stale</p>
<p>For information about stale working copies, see https://jj-vcs.github.io/jj/latest/working-copy/.</p>
<p>See the <a href="https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy">stale working copy documentation</a> for more information.</p>
<p><strong>Usage:</strong> <code>jj workspace update-stale</code></p>
<hr/>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../design_docs/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1238,6 +1238,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../working-copy/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1212,6 +1212,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

689
latest/config-schema.json Normal file
View File

@ -0,0 +1,689 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Jujutsu config",
"type": "object",
"description": "User configuration for Jujutsu VCS. See https://jj-vcs.github.io/jj/latest/config/ for details",
"properties": {
"user": {
"type": "object",
"description": "Settings about the user",
"properties": {
"name": {
"type": "string",
"description": "Full name of the user, used in commits"
},
"email": {
"type": "string",
"description": "User's email address, used in commits",
"format": "email"
}
}
},
"operation": {
"type": "object",
"description": "Metadata to be attached to jj operations (shown in jj op log)",
"properties": {
"hostname": {
"type": "string",
"format": "hostname"
},
"username": {
"type": "string"
}
}
},
"ui": {
"type": "object",
"description": "UI settings",
"definitions": {
"conflict-marker-style": {
"type": "string",
"description": "Conflict marker style to use when materializing conflicts in the working copy",
"enum": [
"diff",
"snapshot",
"git"
],
"default": "diff"
}
},
"properties": {
"allow-init-native": {
"type": "boolean",
"description": "Whether to allow initializing a repo with the native backend",
"default": false
},
"allow-filesets": {
"type": "boolean",
"description": "Whether to parse path arguments as fileset expressions",
"default": true
},
"always-allow-large-revsets": {
"type": "boolean",
"description": "Whether to allow large revsets to be used in all commands without the `all:` modifier",
"default": false
},
"default-command": {
"description": "Default command to run when no explicit command is given",
"default": "log",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"default-description": {
"type": "string",
"description": "Default description to use when describing changes with an empty description",
"default": ""
},
"color": {
"description": "Whether to colorize command output",
"enum": [
"always",
"never",
"debug",
"auto"
],
"default": "auto"
},
"paginate": {
"type": "string",
"description": "Whether or not to use a pager",
"enum": [
"never",
"auto"
],
"default": "auto"
},
"pager": {
"type": "string",
"description": "Pager to use for displaying command output",
"default": "less -FRX"
},
"streampager": {
"type": "object",
"description": "':builtin' (streampager-based) pager configuration",
"properties": {
"interface": {
"description": "Whether to quit automatically, whether to clear screen on startup/exit",
"enum": [
"quit-if-one-page",
"full-screen-clear-output",
"quit-quickly-or-clear-output"
],
"default": "never"
},
"wrapping": {
"description": "Whether to wrap long lines",
"enum": [
"anywhere",
"word",
"none"
],
"default": "anywhere"
}
}
},
"diff": {
"type": "object",
"description": "Options for how diffs are displayed",
"properties": {
"format": {
"description": "The diff format to use",
"enum": [
"color-words",
"git",
"summary"
],
"default": "color-words"
},
"tool": {
"type": "string",
"description": "External tool for generating diffs"
}
}
},
"diff-instructions": {
"type": "boolean",
"description": "Whether to generate the JJ-INSTRUCTIONS file as part of editing a diff",
"default": true
},
"graph": {
"type": "object",
"description": "Options for rendering revision graphs from jj log etc",
"properties": {
"style": {
"description": "Style of connectors/markings used to render the graph. See https://jj-vcs.github.io/jj/latest/config/#graph-style",
"enum": [
"curved",
"square",
"ascii",
"ascii-large"
],
"default": "curved"
}
}
},
"log-word-wrap": {
"type": "boolean",
"description": "Whether to wrap log template output",
"default": false
},
"log-synthetic-elided-nodes": {
"type": "boolean",
"description": "Whether to render elided parts of the graph as synthetic nodes.",
"default": true
},
"editor": {
"type": "string",
"description": "Editor to use for commands that involve editing text"
},
"diff-editor": {
"type": "string",
"description": "Editor tool to use for editing diffs",
"default": "meld"
},
"merge-editor": {
"type": "string",
"description": "Tool to use for resolving three-way merges. Behavior for a given tool name can be configured in merge-tools.TOOL tables"
},
"conflict-marker-style": {
"$ref": "#/properties/ui/definitions/conflict-marker-style"
},
"show-cryptographic-signatures": {
"type": "boolean",
"default": false,
"description": "Whether the built-in templates should show cryptographic signature information"
},
"movement": {
"type": "object",
"properties": {
"edit": {
"type": "boolean",
"description": "Whether the next and prev commands should behave as if the --edit flag was passed",
"default": false
}
}
}
}
},
"core": {
"type": "object",
"properties": {
"fsmonitor": {
"type": "string",
"enum": ["none", "watchman"],
"description": "Whether to use an external filesystem monitor, useful for large repos"
},
"watchman": {
"type": "object",
"properties": {
"register_snapshot_trigger": {
"type": "boolean",
"default": false,
"description": "Whether to use triggers to monitor for changes in the background."
}
}
}
}
},
"colors": {
"type": "object",
"description": "Mapping from jj formatter labels to colors",
"definitions": {
"colorNames": {
"enum": [
"default",
"black",
"red",
"green",
"yellow",
"blue",
"magenta",
"cyan",
"white",
"bright black",
"bright red",
"bright green",
"bright yellow",
"bright blue",
"bright magenta",
"bright cyan",
"bright white"
]
},
"hexColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"colors": {
"oneOf": [
{
"$ref": "#/properties/colors/definitions/colorNames"
},
{
"$ref": "#/properties/colors/definitions/hexColor"
}
]
},
"basicFormatterLabels": {
"enum": [
"description",
"change_id",
"commit_id",
"author",
"committer",
"working_copies",
"current_working_copy",
"bookmarks",
"tags",
"git_refs",
"is_git_head",
"divergent",
"hidden",
"conflict",
"root"
]
}
},
"propertyNames": {
"oneOf": [
{
"$ref": "#/properties/colors/definitions/basicFormatterLabels"
},
{
"type": "string"
}
]
},
"additionalProperties": {
"description": "A color profile for the given formatter label. Either a bare color name used as the foreground color or a table describing color and formatting",
"oneOf": [
{
"$ref": "#/properties/colors/definitions/colors"
},
{
"type": "object",
"properties": {
"fg": {
"$ref": "#/properties/colors/definitions/colors"
},
"bg": {
"$ref": "#/properties/colors/definitions/colors"
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
}
}
}
]
}
},
"diff": {
"type": "object",
"description": "Builtin diff formats settings",
"properties": {
"color-words": {
"type": "object",
"description": "Options for color-words diffs",
"properties": {
"max-inline-alternation": {
"type": "integer",
"description": "Maximum number of removed/added word alternation to inline",
"default": 3
},
"context": {
"type": "integer",
"description": "Number of lines of context to show",
"default": 3
}
}
},
"git": {
"type": "object",
"description": "Options for git diffs",
"properties": {
"context": {
"type": "integer",
"description": "Number of lines of context to show",
"default": 3
}
}
}
}
},
"git": {
"type": "object",
"description": "Settings for git behavior (when using git backend)",
"properties": {
"auto-local-bookmark": {
"type": "boolean",
"description": "Whether jj creates a local bookmark with the same name when it imports a remote-tracking branch from git. See https://jj-vcs.github.io/jj/latest/config/#automatic-local-bookmark-creation",
"default": false
},
"abandon-unreachable-commits": {
"type": "boolean",
"description": "Whether jj should abandon commits that became unreachable in Git.",
"default": true
},
"push-bookmark-prefix": {
"type": "string",
"description": "Prefix used when pushing a bookmark based on a change ID",
"default": "push-"
},
"push-new-bookmarks": {
"type": "boolean",
"description": "Allow pushing new bookmarks without --allow-new",
"default": false
},
"fetch": {
"description": "The remote(s) from which commits are fetched",
"default": "origin",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"push": {
"type": "string",
"description": "The remote to which commits are pushed",
"default": "origin"
},
"sign-on-push": {
"type": "boolean",
"description": "Whether jj should sign commits before pushing",
"default": "false"
},
"subprocess": {
"type": "boolean",
"description": "Whether jj spawns a git subprocess for network operations (push/fetch/clone)",
"default": false
},
"executable-path": {
"type": "string",
"description": "Path to the git executable",
"default": "git"
}
}
},
"merge-tools": {
"type": "object",
"description": "Tables of custom options to pass to the given merge tool (selected in ui.merge-editor)",
"additionalProperties": {
"type": "object",
"properties": {
"program": {
"type": "string"
},
"diff-args": {
"type": "array",
"items": {
"type": "string"
}
},
"diff-expected-exit-codes": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Array of exit codes that do not indicate tool failure, i.e. [0, 1] for unix diff.",
"default": [0]
},
"diff-invocation-mode": {
"description": "Invoke the tool with directories or individual files",
"enum": [
"dir",
"file-by-file"
],
"default": "dir"
},
"edit-args": {
"type": "array",
"items": {
"type": "string"
}
},
"merge-args": {
"type": "array",
"items": {
"type": "string"
}
},
"merge-conflict-exit-codes": {
"type": "array",
"items": {
"type": "number"
},
"description": "Array of exit codes to indicate that the conflict was only partially resolved. See https://jj-vcs.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor",
"default": []
},
"merge-tool-edits-conflict-markers": {
"type": "boolean",
"description": "Whether to populate the output file with conflict markers before starting the merge tool. See https://jj-vcs.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor",
"default": false
},
"conflict-marker-style": {
"$ref": "#/properties/ui/definitions/conflict-marker-style"
}
}
}
},
"revsets": {
"type": "object",
"description": "Revset expressions used by various commands",
"properties": {
"fix": {
"type": "string",
"description": "Default set of revisions to fix when no explicit revset is given for jj fix",
"default": "reachable(@, mutable())"
},
"log": {
"type": "string",
"description": "Default set of revisions to show when no explicit revset is given for jj log and similar commands",
"default": "present(@) | ancestors(immutable_heads().., 2) | present(trunk())"
},
"short-prefixes": {
"type": "string",
"description": "Revisions to give shorter change and commit IDs to",
"default": "<revsets.log>"
},
"simplify-parents": {
"type": "string",
"description": "Default set of revisions to simplify when no explicit revset is given for jj simplify-parents",
"default": "reachable(@, mutable())"
}
},
"additionalProperties": {
"type": "string"
}
},
"revset-aliases": {
"type": "object",
"description": "Custom symbols/function aliases that can used in revset expressions",
"properties": {
"immutable_heads()": {
"type": "string",
"description": "Revisions to consider immutable. Ancestors of these are also considered immutable. The root commit is always considered immutable.",
"default": "present(trunk()) | tags() | untracked_remote_branches()"
}
},
"additionalProperties": {
"type": "string"
}
},
"template-aliases": {
"type": "object",
"description": "Custom symbols/function aliases that can used in templates",
"additionalProperties": {
"type": "string"
}
},
"aliases": {
"type": "object",
"description": "Custom subcommand aliases to be supported by the jj command",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"snapshot": {
"type": "object",
"description": "Parameters governing automatic capture of files into the working copy commit",
"properties": {
"auto-track": {
"type": "string",
"description": "Fileset pattern describing what new files to automatically track on snapshotting. By default all new files are tracked.",
"default": "all()"
},
"auto-update-stale": {
"type": "boolean",
"description": "Whether to automatically update the working copy if it is stale. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy",
"default": "false"
},
"max-new-file-size": {
"type": [
"integer",
"string"
],
"description": "New files with a size in bytes above this threshold are not snapshotted, unless the threshold is 0",
"default": "1MiB"
}
}
},
"experimental-advance-branches": {
"type": "object",
"description": "Settings controlling the 'advance-branches' feature which moves bookmarks forward when new commits are created.",
"properties": {
"enabled-branches": {
"type": "array",
"description": "Patterns used to identify bookmarks which may be advanced.",
"items": {
"type": "string"
}
},
"disabled-branches": {
"type": "array",
"description": "Patterns used to identify bookmarks which are not advanced. Takes precedence over 'enabled-branches'.",
"items": {
"type": "string"
}
}
}
},
"signing": {
"type": "object",
"description": "Settings for verifying and creating cryptographic commit signatures",
"properties": {
"backend": {
"type": "string",
"enum": ["gpg", "none", "ssh"],
"description": "The backend to use for signing commits. The string `none` disables signing.",
"default": "none"
},
"key": {
"type": "string",
"description": "The key the configured signing backend will use to to sign commits. Overridden by `jj sign` parameter or by the global `--sign-with` option"
},
"sign-all": {
"type": "boolean",
"description": "Whether to sign all commits by default. Overridden by global `--no-sign` option",
"default": false
},
"backends": {
"type": "object",
"description": "Tables of options to pass to specific signing backends",
"properties": {
"gpg": {
"type": "object",
"properties": {
"program": {
"type": "string",
"description": "Path to the gpg program to be called",
"default": "gpg"
},
"allow-expired-keys": {
"type": "boolean",
"description": "Whether to consider signatures generated with an expired key as invalid",
"default": true
}
}
},
"ssh": {
"type": "object",
"properties": {
"program": {
"type": "string",
"description": "Path to the ssh-keygen program to be called",
"default": "ssh-keygen"
},
"allowed-signers": {
"type": "boolean",
"description": "Path to an allowed signers file used for signature verification",
"default": true
}
}
}
},
"additionalProperties": true
}
}
},
"fix": {
"type": "object",
"description": "Settings for jj fix",
"properties": {
"tools": {
"type": "object",
"additionalProperties": {
"type": "object",
"description": "Settings for how specific filesets are affected by a tool",
"properties": {
"command": {
"type": "array",
"items": {
"type": "string"
},
"description": "Arguments used to execute this tool"
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filesets that will be affected by this tool"
},
"enabled": {
"type": "boolean",
"description": "Disables this tool if set to false",
"default": true
}
}
},
"description": "Settings for tools run by jj fix"
}
}
}
}
}

View File

@ -17,7 +17,7 @@
<link rel="next" href="../filesets/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -709,9 +709,9 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#dotted-style-headings-and-inline-tables" class="md-nav__link">
<a href="#dotted-style-and-headings" class="md-nav__link">
<span class="md-ellipsis">
Dotted style, headings, and inline tables
Dotted style and headings
</span>
</a>
@ -844,6 +844,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#behavior-of-prev-and-next-commands" class="md-nav__link">
<span class="md-ellipsis">
Behavior of prev and next commands
</span>
</a>
</li>
</ul>
@ -949,9 +958,9 @@
</li>
<li class="md-nav__item">
<a href="#allow-large-revsets-by-default" class="md-nav__link">
<a href="#signature-format" class="md-nav__link">
<span class="md-ellipsis">
Allow "large" revsets by default
Signature format
</span>
</a>
@ -960,6 +969,15 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#allow-large-revsets-by-default" class="md-nav__link">
<span class="md-ellipsis">
Allow "large" revsets by default
</span>
</a>
</li>
<li class="md-nav__item">
@ -972,6 +990,48 @@
<nav class="md-nav" aria-label="Pager">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#builtin-pager" class="md-nav__link">
<span class="md-ellipsis">
Builtin pager
</span>
</a>
<nav class="md-nav" aria-label="Builtin pager">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#key-bindings" class="md-nav__link">
<span class="md-ellipsis">
Key bindings
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#wrapping-config" class="md-nav__link">
<span class="md-ellipsis">
Wrapping config
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#auto-exit-clearing-the-screen-on-startup-or-exit" class="md-nav__link">
<span class="md-ellipsis">
Auto-exit, clearing the screen on startup or exit
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#processing-contents-to-be-paged" class="md-nav__link">
<span class="md-ellipsis">
@ -1030,6 +1090,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#using-meld-as-a-diff-editor" class="md-nav__link">
<span class="md-ellipsis">
Using Meld as a diff editor
</span>
</a>
</li>
<li class="md-nav__item">
@ -1114,6 +1183,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#disabling-and-enabling-tools" class="md-nav__link">
<span class="md-ellipsis">
Disabling and enabling tools
</span>
</a>
</li>
</ul>
@ -1147,11 +1225,29 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#sign-commits-only-on-jj-git-push" class="md-nav__link">
<span class="md-ellipsis">
Sign commits only on jj git push
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#commit-signature-verification" class="md-nav__link">
<span class="md-ellipsis">
Commit Signature Verification
</span>
</a>
</li>
<li class="md-nav__item">
@ -1207,6 +1303,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#git-subprocessing-behaviour" class="md-nav__link">
<span class="md-ellipsis">
Git subprocessing behaviour
</span>
</a>
</li>
</ul>
@ -1288,6 +1393,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#json-schema-support" class="md-nav__link">
<span class="md-ellipsis">
JSON Schema Support
</span>
</a>
</li>
<li class="md-nav__item">
@ -1748,6 +1862,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1995,9 +2130,9 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#dotted-style-headings-and-inline-tables" class="md-nav__link">
<a href="#dotted-style-and-headings" class="md-nav__link">
<span class="md-ellipsis">
Dotted style, headings, and inline tables
Dotted style and headings
</span>
</a>
@ -2130,6 +2265,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#behavior-of-prev-and-next-commands" class="md-nav__link">
<span class="md-ellipsis">
Behavior of prev and next commands
</span>
</a>
</li>
</ul>
@ -2235,9 +2379,9 @@
</li>
<li class="md-nav__item">
<a href="#allow-large-revsets-by-default" class="md-nav__link">
<a href="#signature-format" class="md-nav__link">
<span class="md-ellipsis">
Allow "large" revsets by default
Signature format
</span>
</a>
@ -2246,6 +2390,15 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#allow-large-revsets-by-default" class="md-nav__link">
<span class="md-ellipsis">
Allow "large" revsets by default
</span>
</a>
</li>
<li class="md-nav__item">
@ -2258,6 +2411,48 @@
<nav class="md-nav" aria-label="Pager">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#builtin-pager" class="md-nav__link">
<span class="md-ellipsis">
Builtin pager
</span>
</a>
<nav class="md-nav" aria-label="Builtin pager">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#key-bindings" class="md-nav__link">
<span class="md-ellipsis">
Key bindings
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#wrapping-config" class="md-nav__link">
<span class="md-ellipsis">
Wrapping config
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#auto-exit-clearing-the-screen-on-startup-or-exit" class="md-nav__link">
<span class="md-ellipsis">
Auto-exit, clearing the screen on startup or exit
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#processing-contents-to-be-paged" class="md-nav__link">
<span class="md-ellipsis">
@ -2316,6 +2511,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#using-meld-as-a-diff-editor" class="md-nav__link">
<span class="md-ellipsis">
Using Meld as a diff editor
</span>
</a>
</li>
<li class="md-nav__item">
@ -2400,6 +2604,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#disabling-and-enabling-tools" class="md-nav__link">
<span class="md-ellipsis">
Disabling and enabling tools
</span>
</a>
</li>
</ul>
@ -2433,11 +2646,29 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#sign-commits-only-on-jj-git-push" class="md-nav__link">
<span class="md-ellipsis">
Sign commits only on jj git push
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#commit-signature-verification" class="md-nav__link">
<span class="md-ellipsis">
Commit Signature Verification
</span>
</a>
</li>
<li class="md-nav__item">
@ -2493,6 +2724,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#git-subprocessing-behaviour" class="md-nav__link">
<span class="md-ellipsis">
Git subprocessing behaviour
</span>
</a>
</li>
</ul>
@ -2574,6 +2814,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#json-schema-support" class="md-nav__link">
<span class="md-ellipsis">
JSON Schema Support
</span>
</a>
</li>
<li class="md-nav__item">
@ -2639,11 +2888,14 @@ located in <code>.jj/repo/config.toml</code>.</p>
<p>These are listed in the order they are loaded; the settings from earlier items
in the list are overridden by the settings from later items if they disagree.
Every type of config except for the built-in settings is optional.</p>
<p>You can enable JSON Schema validation in your editor by adding a <code>$schema</code>
reference at the top of your TOML config files. See <a href="#json-schema-support">JSON Schema
Support</a> for details.</p>
<p>See the <a href="https://toml.io/en/">TOML site</a> and the <a href="https://toml.io/en/v1.0.0">syntax guide</a> for a detailed description of the
syntax. We cover some of the basics below.</p>
<p>The first thing to remember is that the value of a setting (the part to the
right of the <code>=</code> sign) should be surrounded in quotes if it's a string.</p>
<h3 id="dotted-style-headings-and-inline-tables">Dotted style, headings, and inline tables<a class="headerlink" href="#dotted-style-headings-and-inline-tables" title="Permanent link">&para;</a></h3>
<h3 id="dotted-style-and-headings">Dotted style and headings<a class="headerlink" href="#dotted-style-and-headings" title="Permanent link">&para;</a></h3>
<p>In TOML, anything under a heading can be dotted instead. For example,
<code>user.name = "YOUR NAME"</code> is equivalent to:</p>
<div class="highlight"><pre><span></span><code><span class="k">[user]</span>
@ -2652,7 +2904,7 @@ right of the <code>=</code> sign) should be surrounded in quotes if it's a strin
<p>For future reference, here are a couple of more complicated examples,</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Dotted style</span>
<span class="n">template-aliases</span><span class="p">.</span><span class="s2">&quot;format_short_id(id)&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;id.shortest(12)&quot;</span>
<span class="n">colors</span><span class="p">.</span><span class="s2">&quot;commit_id prefix&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">}</span>
<span class="n">colors</span><span class="p">.</span><span class="s2">&quot;commit_id prefix&quot;</span><span class="p">.</span><span class="n">bold</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span>
<span class="c1"># is equivalent to:</span>
<span class="k">[template-aliases]</span>
@ -2661,13 +2913,6 @@ right of the <code>=</code> sign) should be surrounded in quotes if it's a strin
<span class="k">[colors]</span>
<span class="s2">&quot;commit_id prefix&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">}</span>
</code></pre></div>
<p>Dotted and non-inline table items are merged one by one if the same keys exist
in multiple files. In the example above, <code>template-aliases</code> and <code>colors</code> are
the tables to be merged. <code>template-aliases."format_short_id(id)"</code> and
<code>colors."commit_id prefix"</code> in the default settings are overridden. On the other
hand, inner items of an inline table are <em>not</em> merged. For example, <code>{ bold =
true }</code> wouldn't be merged as <code>{ fg = "blue", bold = true }</code> even if the default
settings had <code>colors."commit_id prefix" = { fg = "blue" }</code>.</p>
<p>The docs below refer to keys in text using dotted notation, but example
blocks will use heading notation to be unambiguous. If you are confident with TOML
then use whichever suits you in your config. If you mix dotted keys and headings,
@ -2715,9 +2960,9 @@ active labels alongside the regular colorized output.</p>
</code></pre></div>
<p>If you use a string value for a color, as in the examples above, it will be used
for the foreground color. You can also set the background color, or make the
text bold or underlined. For that, you need to use a table:</p>
text bold, italic, or underlined. For that, you need to use a table:</p>
<div class="highlight"><pre><span></span><code><span class="k">[colors]</span>
<span class="n">commit_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">fg</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s2">&quot;green&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">bg</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s2">&quot;#ff1525&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"> </span><span class="n">underline</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">}</span>
<span class="n">commit_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">fg</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s2">&quot;green&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">bg</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s2">&quot;#ff1525&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"> </span><span class="n">italic</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"> </span><span class="n">underline</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">}</span>
</code></pre></div>
<p>The key names are called "labels". The above used <code>commit_id</code> as label. You can
also create rules combining multiple labels. The rules work a bit like CSS
@ -2838,6 +3083,12 @@ invocations as follows:</p>
<span class="k">[merge-tools.vimdiff]</span>
<span class="n">diff-invocation-mode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;file-by-file&quot;</span>
</code></pre></div>
<p>By default <code>jj</code> will display a warning when the command exits with a non-success
error code. The <code>diff-expected-exit-codes</code> config can suppress this warning
message for specific exit codes:</p>
<div class="highlight"><pre><span></span><code><span class="k">[merge-tools.delta]</span>
<span class="n">diff-expected-exit-codes</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span>
</code></pre></div>
<h3 id="conflict-marker-style">Conflict marker style<a class="headerlink" href="#conflict-marker-style" title="Permanent link">&para;</a></h3>
<p>You can configure which style of conflict markers to use when materializing
conflicts:</p>
@ -2868,6 +3119,17 @@ also consider the <code>release@origin</code> bookmark immutable:</p>
</code></pre></div>
<p>Ancestors of the configured set are also immutable. The root commit is always
immutable even if the set is empty.</p>
<h3 id="behavior-of-prev-and-next-commands">Behavior of prev and next commands<a class="headerlink" href="#behavior-of-prev-and-next-commands" title="Permanent link">&para;</a></h3>
<p>If you prefer using an "edit-based" workflow, rather than squashing
modifications into parent changes, you may find yourself using the <code>prev</code> and
<code>next</code> commands with their <code>--edit</code> flag often to move between your changes. You
can avoid having to type the <code>--edit</code> flag every time you need it by actually
making it the default:</p>
<div class="highlight"><pre><span></span><code><span class="k">[ui.movement]</span>
<span class="n">edit</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span>
</code></pre></div>
<p>You can pass the <code>--no-edit</code> flag to <code>prev</code> and <code>next</code> if you find yourself
needing the original behavior.</p>
<h2 id="log">Log<a class="headerlink" href="#log" title="Permanent link">&para;</a></h2>
<h3 id="default-revisions">Default revisions<a class="headerlink" href="#default-revisions" title="Permanent link">&para;</a></h3>
<p>You can configure the revisions <code>jj log</code> would show when neither <code>-r</code> nor any paths are specified.</p>
@ -2982,7 +3244,27 @@ formatted with <code>format_timestamp()</code>.</p>
<div class="highlight"><pre><span></span><code><span class="k">[template-aliases]</span>
<span class="s1">&#39;commit_timestamp(commit)&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;commit.author().timestamp()&#39;</span>
</code></pre></div>
<h3 id="allow-large-revsets-by-default">Allow "large" revsets by default<a class="headerlink" href="#allow-large-revsets-by-default" title="Permanent link">&para;</a></h3>
<h3 id="signature-format">Signature format<a class="headerlink" href="#signature-format" title="Permanent link">&para;</a></h3>
<p>Can be enabled with <code>ui.show-cryptographic-signatures</code>, and
customized with <code>format_short_cryptographic_signature(sig)</code> and
<code>format_detailed_cryptographic_signature(sig)</code>.</p>
<p>Note that the formatting functions take an <code>Option&lt;CryptographicSignature&gt;</code>.
This allows you to emit a custom message if a signature is not present, but
will raise an error if you try to access methods on a signature that is not
available.</p>
<div class="highlight"><pre><span></span><code><span class="k">[ui]</span>
<span class="c1"># default is false</span>
<span class="n">show-cryptographic-signatures</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span>
<span class="k">[template-aliases]</span>
<span class="s1">&#39;format_short_cryptographic_signature(sig)&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;&#39;&#39;</span>
<span class="s1"> if(sig,</span>
<span class="s1"> sig.status(),</span>
<span class="s1"> &quot;(no sig)&quot;,</span>
<span class="s1"> )</span>
<span class="s1">&#39;&#39;&#39;</span>
</code></pre></div>
<h2 id="allow-large-revsets-by-default">Allow "large" revsets by default<a class="headerlink" href="#allow-large-revsets-by-default" title="Permanent link">&para;</a></h2>
<p>Certain commands (such as <code>jj rebase</code>) can take multiple revset arguments, but
default to requiring each of those revsets to expand to a <em>single</em> revision.
This restriction can be overridden by prefixing a revset that the user wants to
@ -3002,13 +3284,11 @@ a <code>$</code>):</p>
<p><code>ui.pager</code> &gt; <code>$PAGER</code></p>
<p><code>less -FRX</code> is the default pager in the absence of any other setting, except
on Windows where it is <code>:builtin</code>.</p>
<p>The special value <code>:builtin</code> enables usage of the <a href="https://github.com/AMythicDev/minus/">integrated pager called
<code>minus</code></a>. See the <a href="https://docs.rs/minus/latest/minus/#default-keybindings">docs for the <code>minus</code>
pager</a> for the key
bindings and some more details.</p>
<p>The special value <code>:builtin</code> enables usage of the <a href="#builtin-pager">integrated
pager</a>.</p>
<p>If you are using a standard Linux distro, your system likely already has
<code>$PAGER</code> set and that will be preferred over the built-in. To use the built-in:</p>
<div class="highlight"><pre><span></span><code>jj config set --user ui.pager :builtin
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--user<span class="w"> </span>ui.pager<span class="w"> </span>:builtin
</code></pre></div>
<p>It is possible the default will change to <code>:builtin</code> for all platforms in the
future.</p>
@ -3019,6 +3299,72 @@ future.</p>
<span class="c1"># Disable all pagination, equivalent to using --no-pager</span>
<span class="n">paginate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;never&quot;</span>
</code></pre></div>
<h3 id="builtin-pager">Builtin pager<a class="headerlink" href="#builtin-pager" title="Permanent link">&para;</a></h3>
<p>Our builtin pager is based on
<a href="https://github.com/markbt/streampager/"><code>streampager</code></a> but is configured within
<code>jj</code>'s config. It is configured via the <code>ui.streampager</code> table.</p>
<h4 id="key-bindings">Key bindings<a class="headerlink" href="#key-bindings" title="Permanent link">&para;</a></h4>
<p>The built-in pager supports both navigation via arrows and Vim-style navigation.
Beyond that, here are some useful keybindings for the pager:</p>
<table>
<thead>
<tr>
<th style="text-align: left;">Key</th>
<th style="text-align: left;">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><code>Ctrl-c</code> or <code>q</code></td>
<td style="text-align: left;">Quit</td>
</tr>
<tr>
<td style="text-align: left;"><code>h</code> or <code>F1</code></td>
<td style="text-align: left;">Show all key bindings</td>
</tr>
<tr>
<td style="text-align: left;"><code>Esc</code></td>
<td style="text-align: left;">Close help or prompt</td>
</tr>
<tr>
<td style="text-align: left;"><code>\</code></td>
<td style="text-align: left;">Toggle line wrapping</td>
</tr>
<tr>
<td style="text-align: left;"><code>#</code></td>
<td style="text-align: left;">Toggle line numbers</td>
</tr>
<tr>
<td style="text-align: left;"><code>Ctrl-r</code></td>
<td style="text-align: left;">Toggle the ruler</td>
</tr>
</tbody>
</table>
<p>The built-in pager does not support mouse input.</p>
<h4 id="wrapping-config">Wrapping config<a class="headerlink" href="#wrapping-config" title="Permanent link">&para;</a></h4>
<p>Wrapping performed by the pager happens <em>in addition to</em> any
wrapping that <code>jj</code> itself does.</p>
<div class="highlight"><pre><span></span><code><span class="k">[ui.streampager]</span>
<span class="n">wrapping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;anywhere&quot;</span><span class="w"> </span><span class="c1"># wrap at screen edge (default)</span>
<span class="n">wrapping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;word&quot;</span><span class="w"> </span><span class="c1"># wrap on word boundaries</span>
<span class="n">wrapping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;none&quot;</span><span class="w"> </span><span class="c1"># strip long lines, allow scrolling</span>
<span class="w"> </span><span class="c1"># left and right like `less -S`</span>
</code></pre></div>
<h4 id="auto-exit-clearing-the-screen-on-startup-or-exit">Auto-exit, clearing the screen on startup or exit<a class="headerlink" href="#auto-exit-clearing-the-screen-on-startup-or-exit" title="Permanent link">&para;</a></h4>
<p>You can configure whether the pager clears the screen on startup or exit, and
whether it quits automatically on short inputs. When the pager auto-quits,
features like word-wrapping are disabled.</p>
<div class="highlight"><pre><span></span><code><span class="k">[ui.streampager]</span>
<span class="c1"># Do not clear screen on exit. Use a full-screen interface for long</span>
<span class="c1"># output only. Like `less -FX`.</span>
<span class="n">interface</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;quit-if-one-page&quot;</span><span class="w"> </span><span class="c1"># (default).</span>
<span class="c1"># Always use a full-screen interface, ask the terminal to clear the</span>
<span class="c1"># screen on exit. Like `less -+FX`.</span>
<span class="n">interface</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;full-screen-clear-output&quot;</span>
<span class="c1"># Use the alternate screen if the input is either long or takes more</span>
<span class="c1"># than 2 seconds to finish. Similar but not identical to `less -F -+X`.</span>
<span class="n">interface</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;quit-quickly-or-clear-output&quot;</span>
</code></pre></div>
<h3 id="processing-contents-to-be-paged">Processing contents to be paged<a class="headerlink" href="#processing-contents-to-be-paged" title="Permanent link">&para;</a></h3>
<p>If you'd like to pass the output through a formatter e.g.
<a href="https://github.com/so-fancy/diff-so-fancy"><code>diff-so-fancy</code></a> before piping it
@ -3106,16 +3452,16 @@ setting, but you could set it explicitly too.</p>
to edit the diff in your terminal.</p>
<p>You can try a different tool temporarily by doing e.g. <code>jj split --tool meld</code> or
you can set the option to change the default. This requires that you have an
appropriate tool installed, e.g. <a href="https://meldmerge.org/">Meld</a> to use the
<code>meld</code> diff editor.</p>
appropriate tool installed, see for example <a href="#using-meld-as-a-diff-editor">the instructions for using
Meld</a>.</p>
<p><strong>Suggestion:</strong> If possible, it is recommended to try an external diff tool like
<code>meld</code> (see below for some other possibilities) for splitting commits and other
diff editing, in addition to the built-in diff editor. It is good to know the
capabilities of both. The built-in diff editor does not require external tools
to be available, is faster for tasks like picking hunks, and does not require
leaving the terminal. External tools give you the flexibility of picking out
portions of lines from the diff or even arbitrarily editing the text of the
files.</p>
<a href="#using-meld-as-a-diff-editor">Meld</a> (see below for some other possibilities)
for splitting commits and other diff editing, in addition to the built-in diff
editor. It is good to know the capabilities of both. The built-in diff editor
does not require external tools to be available, is faster for tasks like
picking hunks, and does not require leaving the terminal. External tools give
you the flexibility of picking out portions of lines from the diff or even
arbitrarily editing the text of the files.</p>
<p>If <code>ui.diff-editor</code> is a string, e.g. <code>"meld"</code>, the arguments will be read from
the following config keys.</p>
<div class="highlight"><pre><span></span><code><span class="k">[merge-tools.meld]</span>
@ -3210,6 +3556,34 @@ same as the contents of <code>$right</code>.</p>
in the diff with instructions on how to edit the diff. Any changes you make to
this file will be ignored. To suppress the creation of this file, set
<code>ui.diff-instructions = false</code>.</p>
<h3 id="using-meld-as-a-diff-editor">Using Meld as a diff editor<a class="headerlink" href="#using-meld-as-a-diff-editor" title="Permanent link">&para;</a></h3>
<p><a href="https://meldmerge.org">Meld</a> is a nice and polished free diff editor. It can be
obtained as follows:</p>
<ul>
<li>
<p><strong>Linux:</strong> use your favorite package manager, e.g. <code>sudo apt install meld</code>.</p>
</li>
<li>
<p><strong>Windows:</strong> Meld can be downloaded from <a href="https://meldmerge.org/">https://meldmerge.org/</a>.</p>
</li>
<li>
<p><strong>Mac OS:</strong> Install Homebrew and run <code>brew install --cask dehesselle-meld</code>.
This will install both an app in <code>/Applications/Meld.app</code> and the command-line
<code>meld</code> command that <code>jj</code> uses. You can read about <a href="https://gist.github.com/ilyagr/1b40f6061d8ad320cee4c12843df1a23">more details and other
options</a> but,
as of this writing, this is by far the easiest.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Do <em>not</em> use the Homebrew <code>meld</code> package.
It does not work on ARM Macs and may have problems on recent versions of macOS.</p>
</div>
</li>
</ul>
<p><code>jj</code> has two diff editing configurations that use Meld: <code>meld</code> for a 2-pane view
and <code>meld-3</code> for a <a href="#experimental-3-pane-diff-editing">three-pane view</a>.</p>
<p>There is also a <code>meld</code> <a href="#3-way-merge-tools-for-conflict-resolution">merge tool</a>
that can be useful, but does not support displaying the merge base while
merging.</p>
<h3 id="using-vim-as-a-diff-editor">Using Vim as a diff editor<a class="headerlink" href="#using-vim-as-a-diff-editor" title="Permanent link">&para;</a></h3>
<p>Using <code>ui.diff-editor = "vimdiff"</code> is possible but not recommended. For a better
experience, you can follow <a href="https://github.com/jj-vcs/jj/wiki/Vim#using-vim-as-a-diff-tool">instructions from the Wiki</a> to configure the
@ -3340,6 +3714,19 @@ contains one number on each line. This can be accomplished with <code>sort</code
<span class="n">command</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;head&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;-n&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;10&quot;</span><span class="p">]</span>
<span class="n">patterns</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;numbers.txt&quot;</span><span class="p">]</span>
</code></pre></div>
<h3 id="disabling-and-enabling-tools">Disabling and enabling tools<a class="headerlink" href="#disabling-and-enabling-tools" title="Permanent link">&para;</a></h3>
<p>Tools can be disabled and enabled with the optional <code>enabled</code> config. This
allows you to define tools globally but enable them only for specific
repositories.</p>
<p>In the user configuration, define a disabled tool for running rustfmt:</p>
<div class="highlight"><pre><span></span><code><span class="k">[fix.tools.rustfmt]</span>
<span class="n">enabled</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span>
<span class="n">command</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;rustfmt&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;--emit&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;stdout&quot;</span><span class="p">]</span>
<span class="n">patterns</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;glob:&#39;**/*.rs&#39;&quot;</span><span class="p">]</span>
</code></pre></div>
<p>Then to use the tool in a specific repository, set the <code>enabled</code> config:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>jj<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--repo<span class="w"> </span>fix.tools.rustfmt.enabled<span class="w"> </span><span class="nb">true</span>
</code></pre></div>
<h2 id="commit-signing">Commit Signing<a class="headerlink" href="#commit-signing" title="Permanent link">&para;</a></h2>
<p><code>jj</code> can be configured to sign and verify the commits it creates using either
GnuPG or SSH signing keys.</p>
@ -3384,6 +3771,29 @@ as follows:</p>
<div class="highlight"><pre><span></span><code><span class="k">[signing]</span>
<span class="n">backends</span><span class="p">.</span><span class="n">ssh</span><span class="p">.</span><span class="n">allowed-signers</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;/path/to/allowed-signers&quot;</span>
</code></pre></div>
<h3 id="sign-commits-only-on-jj-git-push">Sign commits only on <code>jj git push</code><a class="headerlink" href="#sign-commits-only-on-jj-git-push" title="Permanent link">&para;</a></h3>
<p>Instead of signing all commits during creation when <code>signing.sign-all</code> is
set to <code>true</code>, the <code>git.sign-on-push</code> configuration can be used to sign
commits only upon running <code>jj git push</code>. All mutable unsigned commits
being pushed will be signed prior to pushing. This might be preferred if the
signing backend requires user interaction or is slow, so that signing is
performed in a single batch operation.</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Configure signing backend as before, without setting `signing.sign-all`</span>
<span class="k">[signing]</span>
<span class="n">backend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;ssh&quot;</span>
<span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGj+J6N6SO+4P8dOZqfR1oiay2yxhhHnagH52avUqw5h&quot;</span>
<span class="k">[git]</span>
<span class="n">sign-on-push</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span>
</code></pre></div>
<h2 id="commit-signature-verification">Commit Signature Verification<a class="headerlink" href="#commit-signature-verification" title="Permanent link">&para;</a></h2>
<p>By default signature verification and display is <strong>disabled</strong> as it incurs a
performance cost when rendering medium to large change logs.</p>
<p>If you want to display commit signatures in your templates, you can use
<code>commit.signature()</code> (see <a href="../templates/#commit-type">Commit type</a>). The
returned <a href="../templates/#cryptographicsignature-type">CryptographicSignature
Type</a> provides methods to retrieve
signature details.</p>
<h2 id="git-settings">Git settings<a class="headerlink" href="#git-settings" title="Permanent link">&para;</a></h2>
<h3 id="default-remotes-for-jj-git-fetch-and-jj-git-push">Default remotes for <code>jj git fetch</code> and <code>jj git push</code><a class="headerlink" href="#default-remotes-for-jj-git-fetch-and-jj-git-push" title="Permanent link">&para;</a></h3>
<p>By default, if a single remote exists it is used for <code>jj git fetch</code> and <code>jj git
@ -3454,6 +3864,20 @@ not considered a private commit. Commits that are immutable are also excluded
from the private set.</p>
<p>Private commits prevent their descendants from being pushed, since doing so
would require pushing the private commit as well.</p>
<h3 id="git-subprocessing-behaviour">Git subprocessing behaviour<a class="headerlink" href="#git-subprocessing-behaviour" title="Permanent link">&para;</a></h3>
<p>By default, Git remote interactions are handled by <a href="https://github.com/libgit2/libgit2"><code>libgit2</code></a>.
This sometimes causes <a href="https://github.com/jj-vcs/jj/issues/4979">SSH problems</a> that
cannot be solved by <code>jj</code> directly.</p>
<p>To sidestep this, there is an option to spawn a <code>git</code> subprocess to handle those
remote interactions:</p>
<div class="highlight"><pre><span></span><code><span class="k">[git]</span>
<span class="n">subprocess</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span>
</code></pre></div>
<p>Additionally, if <code>git</code> is not on your OS path, or you want to specify a
particular binary, you can:</p>
<div class="highlight"><pre><span></span><code><span class="k">[git]</span>
<span class="n">executable-path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;/path/to/git&quot;</span>
</code></pre></div>
<h2 id="filesystem-monitor">Filesystem monitor<a class="headerlink" href="#filesystem-monitor" title="Permanent link">&para;</a></h2>
<p>In large repositories, it may be beneficial to use a "filesystem monitor" to
track changes to the working copy. This allows <code>jj</code> to take working copy
@ -3538,14 +3962,68 @@ to a TOML file that will be used instead of any configuration file in the
default locations. For example,</p>
<div class="highlight"><pre><span></span><code>env<span class="w"> </span><span class="nv">JJ_CONFIG</span><span class="o">=</span>/dev/null<span class="w"> </span>jj<span class="w"> </span>log<span class="w"> </span><span class="c1"># Ignores any settings specified in the config file.</span>
</code></pre></div>
<h3 id="json-schema-support">JSON Schema Support<a class="headerlink" href="#json-schema-support" title="Permanent link">&para;</a></h3>
<p>Many popular editors support TOML file syntax highlighting and validation. To
enable schema validation in your editor, add this line at the top of your TOML
config files:</p>
<div class="highlight"><pre><span></span><code><span class="s2">&quot;$schema&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;https://jj-vcs.github.io/jj/latest/config-schema.json&quot;</span>
</code></pre></div>
<p>This enables features like:</p>
<ul>
<li>Autocomplete for config keys</li>
<li>Type checking of values</li>
<li>Documentation on hover</li>
<li>Validation of settings</li>
</ul>
<p>Here are some popular editors with TOML schema validation support:</p>
<ul>
<li>
<p>VS Code</p>
<ul>
<li>Install <a href="https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml">Even Better TOML</a></li>
</ul>
</li>
<li>
<p>Neovim/Vim</p>
<ul>
<li>Use with <a href="https://github.com/neovim/nvim-lspconfig">nvim-lspconfig</a> and <a href="https://github.com/tamasfe/taplo">taplo</a></li>
</ul>
</li>
<li>
<p>JetBrains IDEs (IntelliJ, PyCharm, etc)</p>
<ul>
<li>Install <a href="https://plugins.jetbrains.com/plugin/8195-toml">TOML</a> plugin</li>
</ul>
</li>
<li>
<p>Sublime Text</p>
<ul>
<li>Install <a href="https://packagecontrol.io/packages/LSP">LSP</a> and <a href="https://packagecontrol.io/packages/LSP-taplo">LSP-taplo</a></li>
</ul>
</li>
<li>
<p>Emacs</p>
<ul>
<li>Install <a href="https://github.com/emacs-lsp/lsp-mode">lsp-mode</a> and <a href="https://github.com/dryman/toml-mode.el">toml-mode</a></li>
<li>Configure <a href="https://github.com/tamasfe/taplo">taplo</a> as the LSP server</li>
</ul>
</li>
</ul>
<h3 id="specifying-config-on-the-command-line">Specifying config on the command-line<a class="headerlink" href="#specifying-config-on-the-command-line" title="Permanent link">&para;</a></h3>
<p>You can use one or more <code>--config</code>/<code>--config-file</code> options on the command line
to specify additional configuration settings. This overrides settings defined in
config files or environment variables. For example,</p>
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>--config<span class="o">=</span>ui.color<span class="o">=</span>always<span class="w"> </span>--config<span class="o">=</span>ui.diff-editor<span class="o">=</span>kdiff3<span class="w"> </span>split
<div class="highlight"><pre><span></span><code><span class="c1"># Must not have spaces around the `=`</span>
jj<span class="w"> </span>--config<span class="w"> </span>ui.color<span class="o">=</span>always<span class="w"> </span>--config<span class="w"> </span>ui.diff-editor<span class="o">=</span>meld<span class="w"> </span>split
</code></pre></div>
<p>Config value should be specified as a TOML expression. If string value doesn't
contain any TOML constructs (such as array notation), quotes can be omitted.</p>
contain any TOML constructs (such as array notation), quotes can be omitted.
Here is an example with more advanced TOML constructs:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Single quotes and the &#39;\&#39; are interpreted by the shell and assume a Unix shell</span>
<span class="c1"># Double quotes are passed to jj and are parsed as TOML syntax</span>
jj<span class="w"> </span>log<span class="w"> </span>--config<span class="w"> </span><span class="se">\</span>
<span class="w"> </span><span class="s1">&#39;template-aliases.&quot;format_timestamp(timestamp)&quot;=&quot;&quot;&quot;timestamp.format(&quot;%Y-%m-%d %H:%M %:::z&quot;)&quot;&quot;&quot;&#39;</span>
</code></pre></div>
<p>To load an entire TOML document, use <code>--config-file</code>:</p>
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>--config-file<span class="o">=</span>extra-config.toml<span class="w"> </span>log
</code></pre></div>
@ -3553,6 +4031,8 @@ contain any TOML constructs (such as array notation), quotes can be omitted.</p>
<p>You can conditionally enable config variables by using <code>--when</code> and
<code>[[--scope]]</code> tables. Variables defined in <code>[[--scope]]</code> tables are expanded to
the root table. <code>--when</code> specifies the condition to enable the scope table.</p>
<p>If no conditions are specified, table is always enabled. If multiple conditions
are specified, the intersection is used.</p>
<div class="highlight"><pre><span></span><code><span class="k">[user]</span>
<span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;YOUR NAME&quot;</span>
<span class="n">email</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;YOUR_DEFAULT_EMAIL@example.com&quot;</span>
@ -3562,11 +4042,21 @@ the root table. <code>--when</code> specifies the condition to enable the scope
<span class="n">--when</span><span class="p">.</span><span class="n">repositories</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;~/oss&quot;</span><span class="p">]</span>
<span class="k">[--scope.user]</span>
<span class="n">email</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;YOUR_OSS_EMAIL@example.org&quot;</span>
<span class="c1"># disable pagination for `jj status`, use `delta` for `jj diff` and `jj show`</span>
<span class="k">[[--scope]]</span>
<span class="n">--when</span><span class="p">.</span><span class="n">commands</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;status&quot;</span><span class="p">]</span>
<span class="k">[--scope.ui]</span>
<span class="n">paginate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;never&quot;</span>
<span class="k">[[--scope]]</span>
<span class="n">--when</span><span class="p">.</span><span class="n">commands</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;diff&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;show&quot;</span><span class="p">]</span>
<span class="k">[--scope.ui]</span>
<span class="n">pager</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;delta&quot;</span>
</code></pre></div>
<p>Condition keys:</p>
<ul>
<li><code>--when.repositories</code>: List of paths to match the repository path prefix.</li>
</ul>
<li>
<p><code>--when.repositories</code>: List of paths to match the repository path prefix.</p>
<p>Paths should be absolute. Each path component (directory or file name, drive
letter, etc.) is compared case-sensitively on all platforms. A path starting
with <code>~</code> is expanded to the home directory. On Windows, directory separator may
@ -3574,7 +4064,16 @@ be either <code>\</code> or <code>/</code>. (Beware that <code>\</code> needs es
<p>Use <code>jj root</code> to see the workspace root directory. Note that the repository path
is in the main workspace if you're using multiple workspaces with <code>jj
workspace</code>.</p>
<p>If no conditions are specified, table is always enabled.</p>
</li>
<li>
<p><code>--when.commands</code>: List of subcommands to match.</p>
<p>Subcommands are space-separated and matched by prefix.</p>
<div class="highlight"><pre><span></span><code><span class="n">--when</span><span class="p">.</span><span class="n">commands</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;file&quot;</span><span class="p">]</span><span class="w"> </span><span class="c1"># matches `jj file show`, `jj file list`, etc</span>
<span class="n">--when</span><span class="p">.</span><span class="n">commands</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;file show&quot;</span><span class="p">]</span><span class="w"> </span><span class="c1"># matches `jj file show` but *NOT* `jj file list`</span>
<span class="n">--when</span><span class="p">.</span><span class="n">commands</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;file&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;log&quot;</span><span class="p">]</span><span class="w"> </span><span class="c1"># matches `jj file` *OR* `jj log` (or subcommand of either)</span>
</code></pre></div>
</li>
</ul>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../operation-log/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -636,6 +636,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#conflicts-with-missing-terminating-newline" class="md-nav__link">
<span class="md-ellipsis">
Conflicts with missing terminating newline
</span>
</a>
</li>
</ul>
@ -1178,6 +1187,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1457,6 +1487,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#conflicts-with-missing-terminating-newline" class="md-nav__link">
<span class="md-ellipsis">
Conflicts with missing terminating newline
</span>
</a>
</li>
</ul>
@ -1541,11 +1580,11 @@ will materialize the conflict in the working copy using conflict markers, which
would look like this:</p>
<div class="highlight"><pre><span></span><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; Conflict 1 of 1
%%%%%%% Changes from base to side #1
apple
-grape
+grapefruit
orange
+++++++ Contents of side #2
<span class="w"> </span>apple
<span class="gd">-grape</span>
<span class="gi">+grapefruit</span>
<span class="w"> </span>orange
<span class="gi">+++++++ Contents of side #2</span>
APPLE
GRAPE
ORANGE
@ -1576,15 +1615,15 @@ requires applying each diff to the snapshot one-by-one.</p>
diff, Jujutsu also supports a "snapshot" style, which can be enabled by setting
the <code>ui.conflict-marker-style</code> config option to "snapshot":</p>
<div class="highlight"><pre><span></span><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; Conflict 1 of 1
+++++++ Contents of side #1
<span class="gi">+++++++ Contents of side #1</span>
apple
grapefruit
orange
------- Contents of base
<span class="gd">------- Contents of base</span>
apple
grape
orange
+++++++ Contents of side #2
<span class="gi">+++++++ Contents of side #2</span>
APPLE
GRAPE
ORANGE
@ -1602,7 +1641,7 @@ orange
apple
grape
orange
=======
<span class="gh">=======</span>
APPLE
GRAPE
ORANGE
@ -1619,14 +1658,38 @@ markers and which are just part of the file contents, <code>jj</code> sometimes
conflict markers which are longer than normal:</p>
<div class="highlight"><pre><span></span><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; Conflict 1 of 1
%%%%%%%%%%%%%%% Changes from base to side #1
-Heading
+HEADING
=======
+++++++++++++++ Contents of side #2
<span class="gd">-Heading</span>
<span class="gi">+HEADING</span>
<span class="w"> </span>=======
<span class="gi">+++++++++++++++ Contents of side #2</span>
New Heading
===========
<span class="gh">===========</span>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Conflict 1 of 1 ends
</code></pre></div>
<h2 id="conflicts-with-missing-terminating-newline">Conflicts with missing terminating newline<a class="headerlink" href="#conflicts-with-missing-terminating-newline" title="Permanent link">&para;</a></h2>
<p>When materializing conflicts, <code>jj</code> outputs them in a line-based format. This
format is easiest to interpret for text files that consist of a series of lines,
with each line terminated by a newline character (<code>\n</code>). This means that a text
file should either be empty, or it should end with a newline character.</p>
<p>While most text files follow this convention, some do not. When <code>jj</code> encounters
a missing terminating newline character in a conflict, it will add a comment to
the conflict markers to make the conflict easier to interpret. If you don't care
about whether your file ends with a terminating newline character, you can
generally ignore this comment and resolve the conflict normally.</p>
<p>For instance, if a file originally contained <code>grape</code> with no terminating newline
character, and one person changed <code>grape</code> to <code>grapefruit</code>, while another person
added the missing newline character to make <code>grape\n</code>, the resulting conflict
would look like this:</p>
<div class="highlight"><pre><span></span><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; Conflict 1 of 1
<span class="gi">+++++++ Contents of side #1 (no terminating newline)</span>
grapefruit
%%%%%%% Changes from base to side #2 (adds terminating newline)
<span class="gd">-grape</span>
<span class="gi">+grape</span>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Conflict 1 of 1 ends
</code></pre></div>
<p>Therefore, a resolution of this conflict could be <code>grapefruit\n</code>, with the
terminating newline character added.</p>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../code-of-conduct/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1072,6 +1072,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#commit-guidelines" class="md-nav__link">
<span class="md-ellipsis">
Commit guidelines
</span>
</a>
</li>
<li class="md-nav__item">
@ -1150,6 +1159,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#configuring-jj-fix-to-run-rustfmt" class="md-nav__link">
<span class="md-ellipsis">
Configuring jj fix to run rustfmt
</span>
</a>
</li>
<li class="md-nav__item">
@ -1361,6 +1379,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1614,6 +1653,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#commit-guidelines" class="md-nav__link">
<span class="md-ellipsis">
Commit guidelines
</span>
</a>
</li>
<li class="md-nav__item">
@ -1692,6 +1740,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#configuring-jj-fix-to-run-rustfmt" class="md-nav__link">
<span class="md-ellipsis">
Configuring jj fix to run rustfmt
</span>
</a>
</li>
<li class="md-nav__item">
@ -1853,11 +1910,7 @@ your current agreements on file or to sign a new one.</p>
<p>You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.</p>
<h3 id="code-reviews">Code reviews<a class="headerlink" href="#code-reviews" title="Permanent link">&para;</a></h3>
<p>All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
<a href="https://help.github.com/articles/about-pull-requests/">GitHub Help</a> for more
information on using pull requests.</p>
<h3 id="commit-guidelines">Commit guidelines<a class="headerlink" href="#commit-guidelines" title="Permanent link">&para;</a></h3>
<p>Unlike many GitHub projects (but like many VCS projects), we care more about the
contents of commits than about the contents of PRs. We review each commit
separately, and we don't squash-merge the PR (so please manually squash any
@ -1881,13 +1934,19 @@ it. <a href="https://cbea.ms/git-commit/">How to Write a Git Commit Message</a>
guide if you're new to writing good commit messages. We are not particularly
strict about the style, but please do explain the reason for the change unless
it's obvious.</p>
<h3 id="code-reviews">Code reviews<a class="headerlink" href="#code-reviews" title="Permanent link">&para;</a></h3>
<p>All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
<a href="https://help.github.com/articles/about-pull-requests/">GitHub Help</a> for more
information on using pull requests.</p>
<p>When you address comments on a PR, don't make the changes in a commit on top (as
is typical on GitHub). Instead, please make the changes in the appropriate
commit. You can do that by creating a new commit on top of the initial commit
(<code>jj new &lt;commit&gt;</code>) and then squash in the changes when you're done (<code>jj squash</code>).
<code>jj git push</code>
will automatically force-push the bookmark.</p>
<p>When your first PR has been approved, we typically give you contributor access,
<p>When your first PR has been approved, we typically invite you to the
<code>jj-vcs/contributors</code> team to give you contributor access,
so you can address any remaining minor comments and then merge the PR yourself
when you're ready. If you realize that some comments require non-trivial
changes, please ask your reviewer to take another look.</p>
@ -1944,15 +2003,13 @@ recommended steps.</p>
<p>One-time setup:</p>
<div class="codehilite"><pre><span></span><code>rustup toolchain add nightly # wanted for &#39;rustfmt&#39;
rustup toolchain add 1.76 # also specified in Cargo.toml
cargo install cargo-insta
cargo install cargo-watch
cargo install cargo-nextest
cargo install --locked bacon
cargo install --locked cargo-insta
cargo install --locked cargo-nextest
</code></pre></div>
<p>During development (adapt according to your preference):</p>
<div class="codehilite"><pre><span></span><code>cargo watch --ignore &#39;.jj/**&#39; -s \
&#39;cargo clippy --workspace --all-targets \
&amp;&amp; cargo +1.76 check --workspace --all-targets&#39;
<div class="codehilite"><pre><span></span><code>bacon clippy-all
cargo +nightly fmt # Occasionally
cargo nextest run --workspace # Occasionally
cargo insta test --workspace --test-runner nextest # Occasionally
@ -1993,9 +2050,8 @@ Cargo will happily use up your entire hard drive. If this happens, run
use <code>cargo +nightly clippy</code> if you wish to see more warnings.</p>
</li>
<li>
<p>You may also want to install and use <code>cargo-watch</code>. In this case, you should
exclude <code>.jj</code>. directory from the filesystem watcher, as it gets updated on
every <code>jj log</code>.</p>
<p>You may also want to install and use <a href="https://dystroy.org/bacon/"><code>bacon</code></a>,
to automatically build, check, and / or run tests.</p>
</li>
<li>
<p>To run tests more quickly, use <code>cargo nextest run --workspace</code>. To
@ -2005,6 +2061,10 @@ Cargo will happily use up your entire hard drive. If this happens, run
the <code>mold</code> linker, as explained below.</p>
</li>
</ol>
<h3 id="configuring-jj-fix-to-run-rustfmt">Configuring <code>jj fix</code> to run <code>rustfmt</code><a class="headerlink" href="#configuring-jj-fix-to-run-rustfmt" title="Permanent link">&para;</a></h3>
<p>Run this in the jj repo:</p>
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--repo<span class="w"> </span>fix.tools.rustfmt<span class="w"> </span><span class="s1">&#39;{ command = [&quot;rustfmt&quot;, &quot;+nightly&quot;], patterns = [&quot;glob:**/*.rs&quot;] }&#39;</span>
</code></pre></div>
<h3 id="using-mold-for-faster-tests-on-linux">Using <code>mold</code> for faster tests on Linux<a class="headerlink" href="#using-mold-for-faster-tests-on-linux" title="Permanent link">&para;</a></h3>
<p>On a machine with a multi-core CPU, one way to speed up
<code>cargo nextest</code> on Linux is to use the multi-threaded <a href="https://github.com/rui314/mold"><code>mold</code>
@ -2182,8 +2242,8 @@ back and forth, you can also rebuild the docs for the latest release as follows.
</code></pre></div>
</li>
<li>
<p>(Optional) When you are done, you may want to reset the <code>gh-bookmarks</code> to the
same spot as it is in the upstream. If you configured the <code>upstream</code> remote,
<p>(Optional) When you are done, you may want to reset the <code>gh-pages</code> bookmark to the
same spot as it is upstream. If you configured the "upstream" remote,
this can be done with:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># This will LOSE any changes you made to `gh-pages`</span>
jj<span class="w"> </span>git<span class="w"> </span>fetch<span class="w"> </span>--remote<span class="w"> </span>upstream

View File

@ -17,7 +17,7 @@
<link rel="next" href="../../roadmap/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1091,6 +1091,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../run/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1091,6 +1091,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../git-submodule-storage/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1091,6 +1091,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../sparse-v2/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1091,6 +1091,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../tracking-branches/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1091,6 +1091,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../copy-tracking/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1091,6 +1091,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">

View File

@ -14,10 +14,10 @@
<link rel="prev" href="../design_docs/">
<link rel="next" href="../governance/temporary-voting/">
<link rel="next" href="../releasing/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1229,6 +1229,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../design_doc_blueprint/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1151,6 +1151,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../revsets/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1169,6 +1169,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1510,13 +1531,13 @@ expressions.</p>
</ul>
<h2 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">&para;</a></h2>
<p>Show diff excluding <code>Cargo.lock</code>.</p>
<div class="highlight"><pre><span></span><code>jj diff &#39;~Cargo.lock&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>diff<span class="w"> </span><span class="s1">&#39;~Cargo.lock&#39;</span>
</code></pre></div>
<p>List files in <code>src</code> excluding Rust sources.</p>
<div class="highlight"><pre><span></span><code>jj file list &#39;src ~ glob:&quot;**/*.rs&quot;&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>file<span class="w"> </span>list<span class="w"> </span><span class="s1">&#39;src ~ glob:&quot;**/*.rs&quot;&#39;</span>
</code></pre></div>
<p>Split a revision in two, putting <code>foo</code> into the second commit.</p>
<div class="highlight"><pre><span></span><code>jj split &#39;~foo&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>split<span class="w"> </span><span class="s1">&#39;~foo&#39;</span>
</code></pre></div>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../git-compatibility/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1169,6 +1169,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1538,7 +1559,7 @@ move a specific file.</p>
<h2 id="command-equivalence-table">Command equivalence table<a class="headerlink" href="#command-equivalence-table" title="Permanent link">&para;</a></h2>
<p>Note that all <code>jj</code> commands can be run on any commit (not just the working-copy
commit), but that's left out of the table to keep it simple. For example,
<code>jj squash/amend -r &lt;revision&gt;</code> will move the diff from that revision into its
<code>jj squash -r &lt;revision&gt;</code> will move the diff from that revision into its
parent.</p>
<table>
<thead>
@ -1727,13 +1748,13 @@ parent.</p>
</tr>
<tr>
<td>Move the diff in the current change into the parent change</td>
<td><code>jj squash/amend</code></td>
<td><code>jj squash</code></td>
<td><code>git commit --amend -a</code></td>
</tr>
<tr>
<td>Interactively move part of the diff in the current change into the
parent change</td>
<td><code>jj squash/amend -i</code></td>
<td><code>jj squash -i</code></td>
<td><code>git add -p; git commit --amend</code></td>
</tr>
<tr>
@ -1766,14 +1787,14 @@ parent.</p>
</tr>
<tr>
<td>Resolve conflicts and continue interrupted operation</td>
<td><code>echo resolved > filename; jj squash/amend</code> (operations
<td><code>echo resolved > filename; jj squash</code> (operations
don't get interrupted, so no need to continue)</td>
<td><code>echo resolved > filename; git add filename; git
rebase/merge/cherry-pick --continue</code></td>
</tr>
<tr>
<td>Create a copy of a commit on top of another commit</td>
<td><code>jj duplicate &lt;source&gt;; -d &lt;destination&gt;</code></td>
<td><code>jj duplicate &lt;source&gt; -d &lt;destination&gt;</code></td>
<td><code>git co &lt;destination&gt;; git cherry-pick &lt;source&gt;</code></td>
</tr>
<tr>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../sapling-comparison/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1211,6 +1211,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../windows/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1280,6 +1280,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1771,11 +1792,11 @@ $<span class="w"> </span>jj<span class="w"> </span>git<span class="w"> </span>pu
</code></pre></div>
<p>Notably, the above workflow creates a new commit for you. The same can be
achieved without creating a new commit.</p>
<blockquote>
<p><strong>Warning</strong>
We strongly suggest to <code>jj new</code> after the example below, as all further edits
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>We strongly suggest to <code>jj new</code> after the example below, as all further edits
still get amended to the previous commit.</p>
</blockquote>
</div>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="c1"># Create a new commit on top of the `your-feature` bookmark from above.</span>
$<span class="w"> </span>jj<span class="w"> </span>new<span class="w"> </span>your-feature
$<span class="w"> </span><span class="c1"># Address the comments by updating the code. Then review the changes.</span>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../config/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1385,6 +1385,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -11,13 +11,13 @@
<link rel="canonical" href="https://jj-vcs.github.io/jj/latest/governance/temporary-voting/">
<link rel="prev" href="../../design_doc_blueprint/">
<link rel="prev" href="../../releasing/">
<link rel="next" href="../../design/git-submodules/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1093,6 +1093,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">

3
latest/images/LICENSE Normal file
View File

@ -0,0 +1,3 @@
This license applies to favicon.ico:
This work © 2025 by J. Jennings is licensed under Creative Commons Attribution 4.0 International

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -15,7 +15,7 @@
<link rel="next" href="install-and-setup/">
<link rel="icon" href="assets/images/favicon.png">
<link rel="icon" href="images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1147,6 +1147,27 @@
<li class="md-nav__item">
<a href="releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../tutorial/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -530,6 +530,30 @@
</span>
</a>
<nav class="md-nav" aria-label="Bash">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#standard" class="md-nav__link">
<span class="md-ellipsis">
Standard
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dynamic" class="md-nav__link">
<span class="md-ellipsis">
Dynamic
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -539,6 +563,30 @@
</span>
</a>
<nav class="md-nav" aria-label="Zsh">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#standard_1" class="md-nav__link">
<span class="md-ellipsis">
Standard
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dynamic_1" class="md-nav__link">
<span class="md-ellipsis">
Dynamic
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -548,6 +596,30 @@
</span>
</a>
<nav class="md-nav" aria-label="Fish">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#standard_2" class="md-nav__link">
<span class="md-ellipsis">
Standard
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dynamic_2" class="md-nav__link">
<span class="md-ellipsis">
Dynamic
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -566,6 +638,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#powershell" class="md-nav__link">
<span class="md-ellipsis">
Powershell
</span>
</a>
</li>
</ul>
@ -1361,6 +1442,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1782,6 +1884,30 @@
</span>
</a>
<nav class="md-nav" aria-label="Bash">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#standard" class="md-nav__link">
<span class="md-ellipsis">
Standard
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dynamic" class="md-nav__link">
<span class="md-ellipsis">
Dynamic
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -1791,6 +1917,30 @@
</span>
</a>
<nav class="md-nav" aria-label="Zsh">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#standard_1" class="md-nav__link">
<span class="md-ellipsis">
Standard
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dynamic_1" class="md-nav__link">
<span class="md-ellipsis">
Dynamic
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -1800,6 +1950,30 @@
</span>
</a>
<nav class="md-nav" aria-label="Fish">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#standard_2" class="md-nav__link">
<span class="md-ellipsis">
Standard
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dynamic_2" class="md-nav__link">
<span class="md-ellipsis">
Dynamic
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -1818,6 +1992,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#powershell" class="md-nav__link">
<span class="md-ellipsis">
Powershell
</span>
</a>
</li>
</ul>
@ -1843,19 +2026,21 @@
<h1 id="installation-and-setup">Installation and setup<a class="headerlink" href="#installation-and-setup" title="Permanent link">&para;</a></h1>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="download-pre-built-binaries-for-a-release">Download pre-built binaries for a release<a class="headerlink" href="#download-pre-built-binaries-for-a-release" title="Permanent link">&para;</a></h3>
<p>There are <a href="https://github.com/jj-vcs/jj/releases/latest">pre-built binaries</a>
of the last released version of <code>jj</code> for Windows, Mac, or Linux (the "musl"
version should work on all distributions).</p>
<p>If you'd like to install a prerelease version, you'll need to use one of the
options below.</p>
<p>There are <a href="https://github.com/jj-vcs/jj/releases/latest">pre-built binaries</a> of the last released version of <code>jj</code> for
Windows, Mac, or Linux (the "musl" version should work on all distributions).</p>
<h4 id="cargo-binstall">Cargo Binstall<a class="headerlink" href="#cargo-binstall" title="Permanent link">&para;</a></h4>
<p>If you use <a href="https://github.com/cargo-bins/cargo-binstall"><code>cargo-binstall</code></a>, you
can install the same binaries of the last <code>jj</code> release from GitHub as follows:</p>
can install binaries of the latest <code>jj</code> release from GitHub as follows:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Will put the jj binary for the latest release in ~/.cargo/bin by default</span>
cargo<span class="w"> </span>binstall<span class="w"> </span>--strategies<span class="w"> </span>crate-meta-data<span class="w"> </span>jj-cli
</code></pre></div>
<p>Without the <code>--strategies</code> option, you may get equivalent binaries that should
be compiled from the same source code.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you'd like to install a prerelease version, you'll need to use one of the
options below.</p>
</div>
<h3 id="linux">Linux<a class="headerlink" href="#linux" title="Permanent link">&para;</a></h3>
<h4 id="from-source">From Source<a class="headerlink" href="#from-source" title="Permanent link">&para;</a></h4>
<p>First make sure that you have a Rust version &gt;= 1.76 and that the <code>libssl-dev</code>,
@ -1873,25 +2058,25 @@ cargo<span class="w"> </span>install<span class="w"> </span>--locked<span class=
</code></pre></div>
<h4 id="arch-linux">Arch Linux<a class="headerlink" href="#arch-linux" title="Permanent link">&para;</a></h4>
<p>You can install the <code>jujutsu</code> package from the <a href="https://archlinux.org/packages/extra/x86_64/jujutsu/">official extra repository</a>:</p>
<div class="highlight"><pre><span></span><code>pacman -S jujutsu
<div class="highlight"><pre><span></span><code>pacman<span class="w"> </span>-S<span class="w"> </span>jujutsu
</code></pre></div>
<p>Or install from the <a href="https://aur.archlinux.org/packages/jujutsu-git">AUR repository</a> with an <a href="https://wiki.archlinux.org/title/AUR_helpers">AUR Helper</a>:</p>
<div class="highlight"><pre><span></span><code>yay -S jujutsu-git
<div class="highlight"><pre><span></span><code>yay<span class="w"> </span>-S<span class="w"> </span>jujutsu-git
</code></pre></div>
<h4 id="nix-os">Nix OS<a class="headerlink" href="#nix-os" title="Permanent link">&para;</a></h4>
<p>If you're on Nix OS you can install a <strong>released</strong> version of <code>jj</code> using the
<a href="https://search.nixos.org/packages?channel=unstable&amp;show=jujutsu">nixpkgs <code>jujutsu</code> package</a>.</p>
<p>To install a <strong>prerelease</strong> version, you can use the flake for this repository.
For example, if you want to run <code>jj</code> loaded from the flake, use:</p>
<div class="highlight"><pre><span></span><code>nix<span class="w"> </span>run<span class="w"> </span><span class="s1">&#39;github:martinvonz/jj&#39;</span>
<div class="highlight"><pre><span></span><code>nix<span class="w"> </span>run<span class="w"> </span><span class="s1">&#39;github:jj-vcs/jj&#39;</span>
</code></pre></div>
<p>You can also add this flake url to your system input flakes. Or you can
install the flake to your user profile:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Installs the prerelease version from the main branch</span>
nix<span class="w"> </span>profile<span class="w"> </span>install<span class="w"> </span><span class="s1">&#39;github:martinvonz/jj&#39;</span>
nix<span class="w"> </span>profile<span class="w"> </span>install<span class="w"> </span><span class="s1">&#39;github:jj-vcs/jj&#39;</span>
</code></pre></div>
<h4 id="homebrew">Homebrew<a class="headerlink" href="#homebrew" title="Permanent link">&para;</a></h4>
<p>If you use linuxbrew, you can run:</p>
<p>If you use Homebrew, you can run:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Installs the latest release</span>
brew<span class="w"> </span>install<span class="w"> </span>jj
</code></pre></div>
@ -1899,7 +2084,7 @@ brew<span class="w"> </span>install<span class="w"> </span>jj
<p><code>dev-vcs/jj</code> is available in the <a href="https://wiki.gentoo.org/wiki/Project:GURU">GURU</a> repository.
Details on how to enable the GURU repository can be found <a href="https://wiki.gentoo.org/wiki/Project:GURU/Information_for_End_Users">here</a>.</p>
<p>Once you have synced the GURU repository, you can install <code>dev-vcs/jj</code> via Portage:</p>
<div class="highlight"><pre><span></span><code>emerge -av dev-vcs/jj
<div class="highlight"><pre><span></span><code>emerge<span class="w"> </span>-av<span class="w"> </span>dev-vcs/jj
</code></pre></div>
<h3 id="mac">Mac<a class="headerlink" href="#mac" title="Permanent link">&para;</a></h3>
<h4 id="from-source-vendored-openssl">From Source, Vendored OpenSSL<a class="headerlink" href="#from-source-vendored-openssl" title="Permanent link">&para;</a></h4>
@ -1968,28 +2153,34 @@ well as some command-specific ones like <code>--revision</code>, <code>--from</c
can activate them with the alternative "dynamic" instructions below. They should
still complete everything the static completions did, so only activate one of
them. Please let us know if you encounter any issues, so we can ensure a smooth
transition once we default to these new completions. Our initial experience
is that these new completions work best with <code>fish</code>. If you have ideas about
specific completions that could be added, please share them
<a href="https://github.com/jj-vcs/jj/issues/4763">here</a>.</p>
transition once we default to these new completions.</p>
<div class="admonition info">
<p class="admonition-title">Why are the improved completions not the default?</p>
<p>To generate the dynamic completion script, execute <code>jj</code> with <code>$COMPLETE</code> set
to the name of your shell (see examples below). See the upstream clap issue
<a href="https://github.com/clap-rs/clap/issues/3166">#3166</a> for the explanation.</p>
</div>
<h3 id="bash">Bash<a class="headerlink" href="#bash" title="Permanent link">&para;</a></h3>
<h4 id="standard">Standard<a class="headerlink" href="#standard" title="Permanent link">&para;</a></h4>
<div class="highlight"><pre><span></span><code><span class="nb">source</span><span class="w"> </span>&lt;<span class="o">(</span>jj<span class="w"> </span>util<span class="w"> </span>completion<span class="w"> </span>bash<span class="o">)</span>
</code></pre></div>
<p>dynamic:</p>
<h4 id="dynamic">Dynamic<a class="headerlink" href="#dynamic" title="Permanent link">&para;</a></h4>
<div class="highlight"><pre><span></span><code><span class="nb">source</span><span class="w"> </span>&lt;<span class="o">(</span><span class="nv">COMPLETE</span><span class="o">=</span>bash<span class="w"> </span>jj<span class="o">)</span>
</code></pre></div>
<h3 id="zsh">Zsh<a class="headerlink" href="#zsh" title="Permanent link">&para;</a></h3>
<h4 id="standard_1">Standard<a class="headerlink" href="#standard_1" title="Permanent link">&para;</a></h4>
<div class="highlight"><pre><span></span><code>autoload<span class="w"> </span>-U<span class="w"> </span>compinit
compinit
<span class="nb">source</span><span class="w"> </span>&lt;<span class="o">(</span>jj<span class="w"> </span>util<span class="w"> </span>completion<span class="w"> </span>zsh<span class="o">)</span>
</code></pre></div>
<p>dynamic:</p>
<h4 id="dynamic_1">Dynamic<a class="headerlink" href="#dynamic_1" title="Permanent link">&para;</a></h4>
<div class="highlight"><pre><span></span><code><span class="nb">source</span><span class="w"> </span>&lt;<span class="o">(</span><span class="nv">COMPLETE</span><span class="o">=</span>zsh<span class="w"> </span>jj<span class="o">)</span>
</code></pre></div>
<h3 id="fish">Fish<a class="headerlink" href="#fish" title="Permanent link">&para;</a></h3>
<h4 id="standard_2">Standard<a class="headerlink" href="#standard_2" title="Permanent link">&para;</a></h4>
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>util<span class="w"> </span>completion<span class="w"> </span>fish<span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nb">source</span>
</code></pre></div>
<p>dynamic:</p>
<h4 id="dynamic_2">Dynamic<a class="headerlink" href="#dynamic_2" title="Permanent link">&para;</a></h4>
<div class="highlight"><pre><span></span><code><span class="nv">COMPLETE</span><span class="o">=</span>fish<span class="w"> </span>jj<span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nb">source</span>
</code></pre></div>
<h3 id="nushell">Nushell<a class="headerlink" href="#nushell" title="Permanent link">&para;</a></h3>
@ -2001,6 +2192,12 @@ use completions-jj.nu * # Or `source completions-jj.nu`
<div class="highlight"><pre><span></span><code>source-bash<span class="w"> </span><span class="k">$(</span>jj<span class="w"> </span>util<span class="w"> </span>completion<span class="k">)</span>
</code></pre></div>
<p>(dynamic completions not available yet)</p>
<h3 id="powershell">Powershell<a class="headerlink" href="#powershell" title="Permanent link">&para;</a></h3>
<p>Insert this line in your $PROFILE file:
(usually $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1)</p>
<div class="highlight"><pre><span></span><code>Invoke-Expression<span class="w"> </span><span class="o">(</span><span class="p">&amp;</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="o">(</span>jj<span class="w"> </span>util<span class="w"> </span>completion<span class="w"> </span>power-shell<span class="w"> </span><span class="p">|</span><span class="w"> </span>Out-String<span class="o">)</span><span class="w"> </span><span class="o">})</span>
</code></pre></div>
<p>(dynamic completions not available yet)</p>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../glossary/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1160,6 +1160,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../technical/architecture/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1103,6 +1103,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

1568
latest/releasing/index.html Normal file

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,7 @@
<link rel="next" href="../templates/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1235,6 +1235,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1859,24 +1880,50 @@ aren't included in <code>remote_bookmarks()</code>.</p>
<li>
<p><code>description(pattern)</code>: Commits that have a description matching the given
<a href="#string-patterns">string pattern</a>.</p>
<p>A non-empty description is usually terminated with newline character. For
example, <code>description(exact:"")</code> matches commits without description, and
<code>description(exact:"foo\n")</code> matches commits with description <code>"foo\n"</code>.</p>
</li>
<li>
<p><code>subject(pattern)</code>: Commits that have a subject matching the given <a href="#string-patterns">string
pattern</a>. A subject is the first line of the description
(without newline character.)</p>
</li>
<li>
<p><code>author(pattern)</code>: Commits with the author's name or email matching the given
<a href="#string-patterns">string pattern</a>. Equivalent to <code>author_name(pattern) |
author_email(pattern)</code>.</p>
</li>
<li>
<p><code>author_name(pattern)</code>: Commits with the author's name matching the given
<a href="#string-patterns">string pattern</a>.</p>
</li>
<li>
<p><code>mine()</code>: Commits where the author's email matches the email of the current
user.</p>
</li>
<li>
<p><code>committer(pattern)</code>: Commits with the committer's name or email matching the
given <a href="#string-patterns">string pattern</a>.</p>
<p><code>author_email(pattern)</code>: Commits with the author's email matching the given
<a href="#string-patterns">string pattern</a>.</p>
</li>
<li>
<p><code>author_date(pattern)</code>: Commits with author dates matching the specified <a href="#date-patterns">date
pattern</a>.</p>
</li>
<li>
<p><code>mine()</code>: Commits where the author's email matches the email of the current
user. Equivalent to <code>author_email(exact-i:&lt;user-email&gt;)</code></p>
</li>
<li>
<p><code>committer(pattern)</code>: Commits with the committer's name or email matching the
given <a href="#string-patterns">string pattern</a>. Equivalent to
<code>committer_name(pattern) | committer_email(pattern)</code>.</p>
</li>
<li>
<p><code>committer_name(pattern)</code>: Commits with the committer's name matching the
given <a href="#string-patterns">string pattern</a>.</p>
</li>
<li>
<p><code>committer_email(pattern)</code>: Commits with the committer's email matching the
given <a href="#string-patterns">string pattern</a>.</p>
</li>
<li>
<p><code>committer_date(pattern)</code>: Commits with committer dates matching the specified
<a href="#date-patterns">date pattern</a>.</p>
</li>
@ -2096,30 +2143,30 @@ user expected <code>xyz</code> to have more than one child.</p>
xyz</code> will add <code>xyz</code> to the list of <code>w</code>'s parents.</p>
<h2 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">&para;</a></h2>
<p>Show the parent(s) of the working-copy commit (like <code>git log -1 HEAD</code>):</p>
<div class="highlight"><pre><span></span><code>jj log -r @-
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span>@-
</code></pre></div>
<p>Show all ancestors of the working copy (like plain <code>git log</code>)</p>
<div class="highlight"><pre><span></span><code>jj log -r ::@
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span>::@
</code></pre></div>
<p>Show commits not on any remote bookmark:</p>
<div class="highlight"><pre><span></span><code>jj log -r &#39;remote_bookmarks()..&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;remote_bookmarks()..&#39;</span>
</code></pre></div>
<p>Show commits not on <code>origin</code> (if you have other remotes like <code>fork</code>):</p>
<div class="highlight"><pre><span></span><code>jj log -r &#39;remote_bookmarks(remote=origin)..&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;remote_bookmarks(remote=origin)..&#39;</span>
</code></pre></div>
<p>Show the initial commits in the repo (the ones Git calls "root commits"):</p>
<div class="highlight"><pre><span></span><code>jj log -r &#39;root()+&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;root()+&#39;</span>
</code></pre></div>
<p>Show some important commits (like <code>git --simplify-by-decoration</code>):</p>
<div class="highlight"><pre><span></span><code>jj log -r &#39;tags() | bookmarks()&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;tags() | bookmarks()&#39;</span>
</code></pre></div>
<p>Show local commits leading up to the working copy, as well as descendants of
those commits:</p>
<div class="highlight"><pre><span></span><code>jj log -r &#39;(remote_bookmarks()..@)::&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;(remote_bookmarks()..@)::&#39;</span>
</code></pre></div>
<p>Show commits authored by "martinvonz" and containing the word "reset" in the
description:</p>
<div class="highlight"><pre><span></span><code>jj log -r &#39;author(martinvonz) &amp; description(reset)&#39;
<div class="highlight"><pre><span></span><code>jj<span class="w"> </span>log<span class="w"> </span>-r<span class="w"> </span><span class="s1">&#39;author(martinvonz) &amp; description(reset)&#39;</span>
</code></pre></div>

View File

@ -15,7 +15,7 @@
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1089,6 +1089,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../related-work/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1151,6 +1151,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1485,11 +1506,10 @@ tools, such as:</p>
<li><strong>Git interop:</strong> Sapling supports cloning, pushing, and pulling from a remote
Git repo. jj also does, and it also supports sharing a working copy with a Git
repo, so you can use <code>jj</code> and <code>git</code> interchangeably in the same repo.</li>
<li><strong>Polish:</strong> Sapling is much more polished and feature-complete. For example,
jj has no <code>blame/annotate</code> or <code>bisect</code> commands, and also no copy/rename
support. Sapling also has very nice web UI
called <a href="https://sapling-scm.com/docs/addons/isl">Interactive Smartlog</a>, which
lets you drag and drop commits to rebase them, among other things.</li>
<li><strong>Polish:</strong> Sapling is more polished and feature-complete. For example, jj
has no <code>bisect</code> command. Sapling also has very nice built-in web UI called
<a href="https://sapling-scm.com/docs/addons/isl">Interactive Smartlog</a>, which lets
you drag and drop commits to rebase them, among other things.</li>
<li><strong>Forge workflow:</strong> Sapling has <code>sl pr submit --stack</code>, which lets you
push a stack of commits as separate GitHub PRs, including setting the base
branch. It only supports GitHub. jj doesn't have any direct integration with

File diff suppressed because one or more lines are too long

View File

@ -2,150 +2,154 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://jj-vcs.github.io/jj/latest/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/FAQ/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/bookmarks/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/cli-reference/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/code-of-conduct/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/community_tools/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/config/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/conflicts/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/contributing/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design_doc_blueprint/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design_docs/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/filesets/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/git-comparison/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/git-compatibility/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/github/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/glossary/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/install-and-setup/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/operation-log/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/related-work/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/releasing/</loc>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/revsets/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/roadmap/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/sapling-comparison/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/templates/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/testimonials/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/tutorial/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/windows/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/working-copy/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design/copy-tracking/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design/git-submodule-storage/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design/git-submodules/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design/run/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design/sparse-v2/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/design/tracking-branches/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/governance/temporary-voting/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/technical/architecture/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/technical/concurrency/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
<url>
<loc>https://jj-vcs.github.io/jj/latest/technical/conflicts/</loc>
<lastmod>2025-01-02</lastmod>
<lastmod>2025-02-06</lastmod>
</url>
</urlset>

Binary file not shown.

View File

@ -17,7 +17,7 @@
<link rel="next" href="../concurrency/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1343,6 +1343,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">
@ -1838,30 +1859,13 @@ the <code>.jj/repo/store/type</code> file. There are similar files for the other
(<code>.jj/repo/index/type</code>, <code>.jj/repo/op_store/type</code>, <code>.jj/repo/op_heads/type</code>).</p>
<h2 id="design-of-the-library-crate">Design of the library crate<a class="headerlink" href="#design-of-the-library-crate" title="Permanent link">&para;</a></h2>
<h3 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">&para;</a></h3>
<p>Here's a diagram showing some important types in the library crate. The
following sections describe each component.</p>
<pre class="mermaid"><code>graph TD;
ReadonlyRepo--&gt;Store;
ReadonlyRepo--&gt;OpStore;
ReadonlyRepo--&gt;OpHeadsStore;
ReadonlyRepo--&gt;ReadonlyIndex
MutableIndex--&gt;ReadonlyIndex;
Store--&gt;Backend;
GitBackend--&gt;Backend;
LocalBackend--&gt;Backend;
LocalBackend--&gt;StackedTable;
MutableRepo--&gt;ReadonlyRepo;
MutableRepo--&gt;MutableIndex;
Transaction--&gt;MutableRepo;
WorkingCopy--&gt;TreeState;
Workspace--&gt;WorkingCopy;
Workspace--&gt;RepoLoader;
RepoLoader--&gt;Store;
RepoLoader--&gt;OpStore;
RepoLoader--&gt;OpHeadsStore;
RepoLoader--&gt;ReadonlyRepo;
Git--&gt;GitBackend;
GitBackend--&gt;StackedTable;</code></pre>
<p>Here's a diagram showing some important types in the library crate, and how they
relate. For example, given a <code>Workspace</code>, you can use it to get a <code>WorkingCopy</code>
or a <code>RepoLoader</code>. A <code>Transaction</code> is required to acquire a <code>MutableRepo</code>, etc.
The following sections describe each component.</p>
<p><img alt="Type diagram" src="../types.svg" /></p>
<p><em>This diagram was created with <a href="https://excalidraw.com/">Excalidraw</a>. You can get a copy of it <a href="https://excalidraw.com/#json=wuOSusqzm6MjoXatFk1kn,aCySj27AVmQMf7aJdMzMCw">at this
location</a>, and Right Click &gt; "Copy to Clipboard as SVG".</em></p>
<h3 id="backend">Backend<a class="headerlink" href="#backend" title="Permanent link">&para;</a></h3>
<p>The <code>Backend</code> trait defines the interface each
commit backend needs to implement. The current in-tree commit backends

View File

@ -17,7 +17,7 @@
<link rel="next" href="../conflicts/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1190,6 +1190,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">
@ -1591,7 +1612,7 @@ See the <code>RefTarget</code> definition in <code>op_store.proto</code>.</p>
erroring out when there are multiple heads, the user can continue to use the
repo, including performing further operations on the repo. Of course, some
commands will fail when using a conflicted bookmark. For example,
<code>jj checkout main</code> when <code>main</code> is in a conflicted state will result in an error
<code>jj new main</code> when <code>main</code> is in a conflicted state will result in an error
telling you that <code>main</code> resolved to multiple revisions.</p>
<h3 id="storage">Storage<a class="headerlink" href="#storage" title="Permanent link">&para;</a></h3>
<p>The operation objects and view objects are stored in content-addressed storage

View File

@ -17,7 +17,7 @@
<link rel="next" href="../../contributing/">
<link rel="icon" href="../../assets/images/favicon.png">
<link rel="icon" href="../../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1160,6 +1160,27 @@
<li class="md-nav__item">
<a href="../../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../governance/temporary-voting/" class="md-nav__link">

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 120 KiB

View File

@ -17,7 +17,7 @@
<link rel="next" href="../git-comparison/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -847,6 +847,33 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#configvalue-type" class="md-nav__link">
<span class="md-ellipsis">
ConfigValue type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cryptographicsignature-type" class="md-nav__link">
<span class="md-ellipsis">
CryptographicSignature type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#diffstats-type" class="md-nav__link">
<span class="md-ellipsis">
DiffStats type
</span>
</a>
</li>
<li class="md-nav__item">
@ -919,6 +946,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repopath-type" class="md-nav__link">
<span class="md-ellipsis">
RepoPath type
</span>
</a>
</li>
<li class="md-nav__item">
@ -1006,6 +1042,24 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#treediffentry-type" class="md-nav__link">
<span class="md-ellipsis">
TreeDiffEntry type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#treeentry-type" class="md-nav__link">
<span class="md-ellipsis">
TreeEntry type
</span>
</a>
</li>
</ul>
@ -1403,6 +1457,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1725,6 +1800,33 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#configvalue-type" class="md-nav__link">
<span class="md-ellipsis">
ConfigValue type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cryptographicsignature-type" class="md-nav__link">
<span class="md-ellipsis">
CryptographicSignature type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#diffstats-type" class="md-nav__link">
<span class="md-ellipsis">
DiffStats type
</span>
</a>
</li>
<li class="md-nav__item">
@ -1797,6 +1899,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repopath-type" class="md-nav__link">
<span class="md-ellipsis">
RepoPath type
</span>
</a>
</li>
<li class="md-nav__item">
@ -1884,6 +1995,24 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#treediffentry-type" class="md-nav__link">
<span class="md-ellipsis">
TreeDiffEntry type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#treeentry-type" class="md-nav__link">
<span class="md-ellipsis">
TreeEntry type
</span>
</a>
</li>
</ul>
@ -1969,6 +2098,10 @@ type</a> are available as keywords. For example,
<li><code>pad_end(width: Integer, content: Template[, fill_char: Template])</code>: Pad (or
left-justify) content by adding trailing fill characters. The <code>content</code>
shouldn't have newline character.</li>
<li><code>pad_centered(width: Integer, content: Template[, fill_char: Template])</code>: Pad
content by adding both leading and trailing fill characters. If an odd number
of fill characters are needed, the trailing fill will be one longer than the
leading fill. The <code>content</code> shouldn't have newline characters.</li>
<li><code>truncate_start(width: Integer, content: Template)</code>: Truncate <code>content</code> by
removing leading characters. The <code>content</code> shouldn't have newline character.</li>
<li><code>truncate_end(width: Integer, content: Template)</code>: Truncate <code>content</code> by
@ -1990,6 +2123,7 @@ type</a> are available as keywords. For example,
Insert separator between <strong>non-empty</strong> contents.</li>
<li><code>surround(prefix: Template, suffix: Template, content: Template) -&gt; Template</code>:
Surround <strong>non-empty</strong> content with texts such as parentheses.</li>
<li><code>config(name: String) -&gt; ConfigValue</code>: Look up configuration value by <code>name</code>.</li>
</ul>
<h2 id="types">Types<a class="headerlink" href="#types" title="Permanent link">&para;</a></h2>
<h3 id="boolean-type">Boolean type<a class="headerlink" href="#boolean-type" title="Permanent link">&para;</a></h3>
@ -2003,6 +2137,7 @@ type</a> are available as keywords. For example,
<li><code>parents() -&gt; List&lt;Commit&gt;</code></li>
<li><code>author() -&gt; Signature</code></li>
<li><code>committer() -&gt; Signature</code></li>
<li><code>signature() -&gt; Option&lt;CryptographicSignature&gt;</code></li>
<li><code>mine() -&gt; Boolean</code>: Commits where the author's email matches the email of the current
user.</li>
<li><code>working_copies() -&gt; String</code>: For multi-workspace repository, indicate
@ -2038,11 +2173,53 @@ type</a> are available as keywords. For example,
<li><code>.short([len: Integer]) -&gt; String</code></li>
<li><code>.shortest([min_len: Integer]) -&gt; ShortestIdPrefix</code>: Shortest unique prefix.</li>
</ul>
<h3 id="email-type">Email type<a class="headerlink" href="#email-type" title="Permanent link">&para;</a></h3>
<h3 id="configvalue-type">ConfigValue type<a class="headerlink" href="#configvalue-type" title="Permanent link">&para;</a></h3>
<p>This type can be printed in TOML syntax. The following methods are defined.</p>
<ul>
<li><code>.as_boolean() -&gt; Boolean</code>: Extract boolean.</li>
<li><code>.as_integer() -&gt; Integer</code>: Extract integer.</li>
<li><code>.as_string() -&gt; String</code>: Extract string. This does not convert non-string
value (e.g. integer) to string.</li>
<li><code>.as_string_list() -&gt; List&lt;String&gt;</code>: Extract list of strings.</li>
</ul>
<h3 id="cryptographicsignature-type">CryptographicSignature type<a class="headerlink" href="#cryptographicsignature-type" title="Permanent link">&para;</a></h3>
<p>The following methods are defined.</p>
<ul>
<li><code>.local() -&gt; String</code></li>
<li><code>.domain() -&gt; String</code></li>
<li><code>.status() -&gt; String</code>: The signature's status (<code>"good"</code>, <code>"bad"</code>, <code>"unknown"</code>, <code>"invalid"</code>).</li>
<li><code>.key() -&gt; String</code>: The signature's key id representation (for GPG, this is the key fingerprint).</li>
<li><code>.display() -&gt; String</code>: The signature's display string (for GPG this is the formatted primary user ID).</li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Calling any of <code>.status()</code>, <code>.key()</code>, or <code>.display()</code> is slow, as it incurs
the performance cost of verifying the signature (for example shelling out
to <code>gpg</code> or <code>ssh-keygen</code>). Though consecutive calls will be faster, because
the backend caches the verification result.</p>
</div>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>As opposed to calling any of <code>.status()</code>, <code>.key()</code>, or <code>.display()</code>,
checking for signature presence through boolean coercion is fast:
<div class="highlight"><pre><span></span><code>if(commit.signature(), &quot;commit has a signature&quot;, &quot;commit is unsigned&quot;)
</code></pre></div></p>
</div>
<h3 id="diffstats-type">DiffStats type<a class="headerlink" href="#diffstats-type" title="Permanent link">&para;</a></h3>
<p>This type can be printed as a histogram of the changes. The following methods
are defined.</p>
<ul>
<li><code>.total_added() -&gt; Integer</code>: Total number of insertions.</li>
<li><code>.total_removed() -&gt; Integer</code>: Total number of deletions.</li>
</ul>
<h3 id="email-type">Email type<a class="headerlink" href="#email-type" title="Permanent link">&para;</a></h3>
<p>The email field of a signature may or may not look like an email address. It may
be empty, may not contain the symbol <code>@</code>, and could in principle contain
multiple <code>@</code>s.</p>
<p>The following methods are defined.</p>
<ul>
<li><code>.local() -&gt; String</code>: the part of the email before the first <code>@</code>, usually the
username.</li>
<li><code>.domain() -&gt; String</code>: the part of the email after the first <code>@</code> or the empty
string.</li>
</ul>
<h3 id="integer-type">Integer type<a class="headerlink" href="#integer-type" title="Permanent link">&para;</a></h3>
<p>No methods are defined.</p>
@ -2053,6 +2230,8 @@ defined.</p>
<li><code>.len() -&gt; Integer</code>: Number of elements in the list.</li>
<li><code>.join(separator: Template) -&gt; Template</code>: Concatenate elements with
the given <code>separator</code>.</li>
<li><code>.filter(|item| expression) -&gt; List</code>: Filter list elements by predicate
<code>expression</code>. Example: <code>description.lines().filter(|s| s.contains("#"))</code></li>
<li><code>.map(|item| expression) -&gt; ListTemplate</code>: Apply template <code>expression</code>
to each element. Example: <code>parents.map(|c| c.commit_id().short())</code></li>
</ul>
@ -2104,6 +2283,14 @@ invoked. If not set, an error will be reported inline on method call.</p>
<li><code>.tracking_behind_count() -&gt; SizeHint</code>: Number of commits behind of the
tracking local ref.</li>
</ul>
<h3 id="repopath-type">RepoPath type<a class="headerlink" href="#repopath-type" title="Permanent link">&para;</a></h3>
<p>A slash-separated path relative to the repository root. The following methods
are defined.</p>
<ul>
<li><code>.display() -&gt; String</code>: Format path for display. The formatted path uses
platform-native separator, and is relative to the current working directory.</li>
<li><code>.parent() -&gt; Option&lt;RepoPath&gt;</code>: Parent directory path.</li>
</ul>
<h3 id="shortestidprefix-type">ShortestIdPrefix type<a class="headerlink" href="#shortestidprefix-type" title="Permanent link">&para;</a></h3>
<p>The following methods are defined.</p>
<ul>
@ -2187,12 +2374,32 @@ inside a single-quoted string literal.</p>
<h3 id="treediff-type">TreeDiff type<a class="headerlink" href="#treediff-type" title="Permanent link">&para;</a></h3>
<p>This type cannot be printed. The following methods are defined.</p>
<ul>
<li><code>.files() -&gt; List&lt;TreeDiffEntry&gt;</code>: Changed files.</li>
<li><code>.color_words([context: Integer]) -&gt; Template</code>: Format as a word-level diff
with changes indicated only by color.</li>
<li><code>.git([context: Integer]) -&gt; Template</code>: Format as a Git diff.</li>
<li><code>.stat(width: Integer) -&gt; Template</code>: Format as a histogram of the changes.</li>
<li><code>.stat([width: Integer]) -&gt; DiffStats</code>: Calculate stats of changed lines.</li>
<li><code>.summary() -&gt; Template</code>: Format as a list of status code and path pairs.</li>
</ul>
<h3 id="treediffentry-type">TreeDiffEntry type<a class="headerlink" href="#treediffentry-type" title="Permanent link">&para;</a></h3>
<p>This type cannot be printed. The following methods are defined.</p>
<ul>
<li><code>.path() -&gt; RepoPath</code>: Path to the entry. If the entry is a copy/rename, this
points to the target (or right) entry.</li>
<li><code>.status() -&gt; String</code>: One of <code>"modified"</code>, <code>"added"</code>, <code>"removed"</code>,
<code>"copied"</code>, or <code>"renamed"</code>.</li>
<li><code>.source() -&gt; TreeEntry</code>: The source (or left) entry.</li>
<li><code>.target() -&gt; TreeEntry</code>: The target (or right) entry.</li>
</ul>
<h3 id="treeentry-type">TreeEntry type<a class="headerlink" href="#treeentry-type" title="Permanent link">&para;</a></h3>
<p>This type cannot be printed. The following methods are defined.</p>
<ul>
<li><code>.path() -&gt; RepoPath</code>: Path to the entry.</li>
<li><code>.conflict() -&gt; Boolean</code>: True if the entry is a merge conflict.</li>
<li><code>.file_type() -&gt; String</code>: One of <code>"file"</code>, <code>"symlink"</code>, <code>"tree"</code>,
<code>"git-submodule"</code>, or <code>"conflict"</code>.</li>
<li><code>.executable() -&gt; Boolean</code>: True if the entry is an executable file.</li>
</ul>
<h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">&para;</a></h2>
<p>The default templates and aliases() are defined in the <code>[templates]</code> and
<code>[template-aliases]</code> sections of the config respectively. The exact definitions
@ -2202,13 +2409,13 @@ can be seen in the <code>cli/src/config/templates.toml</code> file in jj's sourc
<p>New keywords and functions can be defined as aliases, by using any
combination of the predefined keywords/functions and other aliases.</p>
<p>Alias functions can be overloaded by the number of parameters. However, builtin
function will be shadowed by name, and can't co-exist with aliases.</p>
functions will be shadowed by name, and can't co-exist with aliases.</p>
<p>For example:</p>
<div class="highlight"><pre><span></span><code><span class="k">[template-aliases]</span>
<span class="s1">&#39;commit_change_ids&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;&#39;&#39;</span>
<span class="s1">concat(</span>
<span class="s1"> format_field(&quot;Commit ID&quot;, commit_id),</span>
<span class="s1"> format_field(&quot;Change ID&quot;, commit_id),</span>
<span class="s1"> format_field(&quot;Change ID&quot;, change_id),</span>
<span class="s1">)</span>
<span class="s1">&#39;&#39;&#39;</span>
<span class="s1">&#39;format_field(key, value)&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;key ++ &quot;: &quot; ++ value ++ &quot;\n&quot;&#39;</span>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../community_tools/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1158,6 +1158,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">

View File

@ -17,7 +17,7 @@
<link rel="next" href="../github/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1205,6 +1205,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1587,7 +1608,7 @@ separate concept and not yet a commit.</p>
to Gerrit's Change-Id). In other words: You can make changes to files in a
change, resulting in a new commit hash, but the change ID will remain the same.</p>
<p>You can see that our clone operation automatically created a new change:</p>
<div class="highlight"><pre><span></span><code>Working copy : kntqzsqt d7439b06 (empty) (no description set)
<div class="highlight"><pre><span></span><code>Working<span class="w"> </span>copy<span class="w"> </span>:<span class="w"> </span>kntqzsqt<span class="w"> </span>d7439b06<span class="w"> </span><span class="o">(</span>empty<span class="o">)</span><span class="w"> </span><span class="o">(</span>no<span class="w"> </span>description<span class="w"> </span><span class="nb">set</span><span class="o">)</span>
</code></pre></div>
<p>This new change has the ID <code>kntqzsqt</code> and it is currently empty (contains no
changes compared to the parent) and has no description.</p>
@ -1650,8 +1671,7 @@ Parent<span class="w"> </span>commit:<span class="w"> </span>kntqzsqt<span class
the working copy and then run <code>jj squash</code>. That command squashes (moves) the
changes from a given commit into its parent commit. Like most commands, it acts
on the working-copy commit by default. When run on the working-copy commit, it
behaves very similar to <code>git commit --amend</code>, and <code>jj amend</code> is in fact an alias
for <code>jj squash</code>.</p>
behaves very similar to <code>git commit --amend</code>.</p>
<p>Alternatively, we can use <code>jj edit &lt;commit&gt;</code> to resume editing a commit in the
working copy. Any further changes in the working copy will then amend the
commit. Whether you choose to create a new change and squash, or to edit,

View File

@ -17,7 +17,7 @@
<link rel="next" href="../FAQ/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1178,6 +1178,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1479,13 +1500,13 @@
users should be aware of.</p>
<h2 id="line-endings-are-not-converted">Line endings are not converted<a class="headerlink" href="#line-endings-are-not-converted" title="Permanent link">&para;</a></h2>
<p>Jujutsu does not currently honor <code>.gitattributes</code> and does not have a setting
like Git's <code>core.autocrlf</code>. This means that line endings will be checked out
exactly as they are committed and committed exactly as authored. This is true on
all platforms, but Windows users are most likely to miss CRLF conversion.</p>
<p>If your Git repository expects Windows users to have <code>core.autocrlf</code> set to
<code>true</code>, then the files are committed with LF line endings but are checked out
with CRLF line endings. Jujutsu doesn't understand this and will convert the
committed line endings to CRLF.</p>
like Git's <a href="https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_autocrlf"><code>core.autocrlf</code></a>. This means that line endings will be checked
out exactly as they are committed and committed exactly as authored. This is true on all
platforms, but Windows users are most likely to miss CRLF conversion.</p>
<p>Your Git repository may expect Windows users to have <code>core.autocrlf</code> set to
<code>true</code>, so that files are checked out with line endings converted from LF to CRLF
but committed with line endings converted from CRLF back to LF. Jujutsu doesn't
understand this and preserves CRLF line endings in files when committing.</p>
<p>After creating a colocated repository on Windows, you most likely want to set
<code>core.autocrlf</code> to <code>input</code>, then <code>jj abandon</code> to convert all files on disk to LF
line endings:</p>
@ -1499,9 +1520,10 @@ line endings:</p>
converting them to CRLF. You'll want to make sure any tooling you use,
especially IDEs, preserve LF line endings.</p>
<h2 id="pagination">Pagination<a class="headerlink" href="#pagination" title="Permanent link">&para;</a></h2>
<p>On Windows, <code>jj</code> will use its integrated pager called <code>minus</code> by default, unless
the environment variable <code>%PAGER%</code> or the config <code>ui.pager</code> is explicitly set.
See the <a href="../config/#pager">pager section of the config docs</a> for more details.</p>
<p>On Windows, <code>jj</code> will use its integrated pager called <code>streampager</code> by default,
unless the environment variable <code>%PAGER%</code> or the config <code>ui.pager</code> is explicitly
set. See the <a href="../config/#pager">pager section of the config docs</a> for more
details.</p>
<p>If the built-in pager doesn't meet your needs and you have Git installed, you
can switch to using Git's pager as follows:</p>
<div class="highlight"><pre><span></span><code><span class="n">PS</span><span class="p">&gt;</span> <span class="n">jj</span> <span class="n">config</span> <span class="nb">set </span><span class="p">-</span><span class="n">-user</span> <span class="n">ui</span><span class="p">.</span><span class="n">pager</span> <span class="s1">&#39;[&quot;C:\\Program Files\\Git\\usr\\bin\\less.exe&quot;, &quot;-FRX&quot;]&#39;</span>

View File

@ -17,7 +17,7 @@
<link rel="next" href="../bookmarks/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
@ -1178,6 +1178,27 @@
<li class="md-nav__item">
<a href="../releasing/" class="md-nav__link">
<span class="md-ellipsis">
Releasing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../governance/temporary-voting/" class="md-nav__link">
@ -1525,7 +1546,7 @@ control. You can tell Jujutsu to not automatically track certain files by using
<code>.gitignore</code> files (there's no such thing as <code>.jjignore</code> yet).
See https://git-scm.com/docs/gitignore for details about the format.
<code>.gitignore</code> files are supported in any directory in the working copy, as well
as in <code>$XDG_CONFIG_DIR/git/ignore</code> and <code>$GIT_DIR/info/exclude</code>.</p>
as in <code>$XDG_CONFIG_HOME/git/ignore</code> and <code>$GIT_DIR/info/exclude</code>.</p>
<p>Ignored files are never tracked automatically (regardless of the value of
<code>snapshot.auto-track</code>), but they can still end up being tracked for a few reasons:</p>
<ul>

1384
v0.26.0/404.html Normal file

File diff suppressed because it is too large Load Diff

2126
v0.26.0/FAQ/index.html Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,18 @@
/*!
* Lunr languages, `Danish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA--",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Z--0-9-",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWordFilter)},e.hy.wordCharacters="[A-Za-z԰-֏ff-ﭏ]",e.hy.trimmer=e.trimmerSupport.generateTrimmer(e.hy.wordCharacters),e.Pipeline.registerFunction(e.hy.trimmer,"trimmer-hy"),e.hy.stopWordFilter=e.generateStopWordFilter("դու և եք էիր էիք հետո նաև նրանք որը վրա է որ պիտի են այս մեջ ն իր ու ի այդ որոնք այն կամ էր մի ես համար այլ իսկ էին ենք հետ ին թ էինք մենք նրա նա դուք եմ էի ըստ որպես ում".split(" ")),e.Pipeline.registerFunction(e.hy.stopWordFilter,"stopWordFilter-hy"),e.hy.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}(),e.Pipeline.registerFunction(e.hy.stemmer,"stemmer-hy")}});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n<p.length;n++)r?a.push(new e.Token(p[n],{position:[f,p[n].length],index:a.length})):a.push(p[n]),f+=p[n].length;l=c+1}return a},e.ja.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Z--0-9-",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});

View File

@ -0,0 +1 @@
module.exports=require("./lunr.ja");

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.kn=function(){this.pipeline.reset(),this.pipeline.add(e.kn.trimmer,e.kn.stopWordFilter,e.kn.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.kn.stemmer))},e.kn.wordCharacters="ಀ-಄ಅ-ಔಕ-ಹಾ-ೌ಼-ಽೕ-ೖೝ-ೞೠ-ೡೢ-ೣ೤೥೦-೯ೱ-ೳ",e.kn.trimmer=e.trimmerSupport.generateTrimmer(e.kn.wordCharacters),e.Pipeline.registerFunction(e.kn.trimmer,"trimmer-kn"),e.kn.stopWordFilter=e.generateStopWordFilter("ಮತ್ತು ಈ ಒಂದು ರಲ್ಲಿ ಹಾಗೂ ಎಂದು ಅಥವಾ ಇದು ರ ಅವರು ಎಂಬ ಮೇಲೆ ಅವರ ತನ್ನ ಆದರೆ ತಮ್ಮ ನಂತರ ಮೂಲಕ ಹೆಚ್ಚು ನ ಆ ಕೆಲವು ಅನೇಕ ಎರಡು ಹಾಗು ಪ್ರಮುಖ ಇದನ್ನು ಇದರ ಸುಮಾರು ಅದರ ಅದು ಮೊದಲ ಬಗ್ಗೆ ನಲ್ಲಿ ರಂದು ಇತರ ಅತ್ಯಂತ ಹೆಚ್ಚಿನ ಸಹ ಸಾಮಾನ್ಯವಾಗಿ ನೇ ಹಲವಾರು ಹೊಸ ದಿ ಕಡಿಮೆ ಯಾವುದೇ ಹೊಂದಿದೆ ದೊಡ್ಡ ಅನ್ನು ಇವರು ಪ್ರಕಾರ ಇದೆ ಮಾತ್ರ ಕೂಡ ಇಲ್ಲಿ ಎಲ್ಲಾ ವಿವಿಧ ಅದನ್ನು ಹಲವು ರಿಂದ ಕೇವಲ ದ ದಕ್ಷಿಣ ಗೆ ಅವನ ಅತಿ ನೆಯ ಬಹಳ ಕೆಲಸ ಎಲ್ಲ ಪ್ರತಿ ಇತ್ಯಾದಿ ಇವು ಬೇರೆ ಹೀಗೆ ನಡುವೆ ಇದಕ್ಕೆ ಎಸ್ ಇವರ ಮೊದಲು ಶ್ರೀ ಮಾಡುವ ಇದರಲ್ಲಿ ರೀತಿಯ ಮಾಡಿದ ಕಾಲ ಅಲ್ಲಿ ಮಾಡಲು ಅದೇ ಈಗ ಅವು ಗಳು ಎ ಎಂಬುದು ಅವನು ಅಂದರೆ ಅವರಿಗೆ ಇರುವ ವಿಶೇಷ ಮುಂದೆ ಅವುಗಳ ಮುಂತಾದ ಮೂಲ ಬಿ ಮೀ ಒಂದೇ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿ ಮಾಡಿ ಅವರನ್ನು ಇದೇ ಯ ರೀತಿಯಲ್ಲಿ ಜೊತೆ ಅದರಲ್ಲಿ ಮಾಡಿದರು ನಡೆದ ಆಗ ಮತ್ತೆ ಪೂರ್ವ ಆತ ಬಂದ ಯಾವ ಒಟ್ಟು ಇತರೆ ಹಿಂದೆ ಪ್ರಮಾಣದ ಗಳನ್ನು ಕುರಿತು ಯು ಆದ್ದರಿಂದ ಅಲ್ಲದೆ ನಗರದ ಮೇಲಿನ ಏಕೆಂದರೆ ರಷ್ಟು ಎಂಬುದನ್ನು ಬಾರಿ ಎಂದರೆ ಹಿಂದಿನ ಆದರೂ ಆದ ಸಂಬಂಧಿಸಿದ ಮತ್ತೊಂದು ಸಿ ಆತನ ".split(" ")),e.kn.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.kn.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var n=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(n).split("|")},e.Pipeline.registerFunction(e.kn.stemmer,"stemmer-kn"),e.Pipeline.registerFunction(e.kn.stopWordFilter,"stopWordFilter-kn")}});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s.push(e[t[p]].stemmer)));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+i),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,18 @@
/*!
* Lunr languages, `Norwegian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA--",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sa=function(){this.pipeline.reset(),this.pipeline.add(e.sa.trimmer,e.sa.stopWordFilter,e.sa.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sa.stemmer))},e.sa.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿ꣠-꣱ꣲ-ꣷ꣸-ꣻ꣼-ꣽꣾ-ꣿᆰ0-ᆰ9",e.sa.trimmer=e.trimmerSupport.generateTrimmer(e.sa.wordCharacters),e.Pipeline.registerFunction(e.sa.trimmer,"trimmer-sa"),e.sa.stopWordFilter=e.generateStopWordFilter('तथा अयम्‌ एकम्‌ इत्यस्मिन्‌ तथा तत्‌ वा अयम्‌ इत्यस्य ते आहूत उपरि तेषाम्‌ किन्तु तेषाम्‌ तदा इत्यनेन अधिकः इत्यस्य तत्‌ केचन बहवः द्वि तथा महत्वपूर्णः अयम्‌ अस्य विषये अयं अस्ति तत्‌ प्रथमः विषये इत्युपरि इत्युपरि इतर अधिकतमः अधिकः अपि सामान्यतया ठ इतरेतर नूतनम्‌ द न्यूनम्‌ कश्चित्‌ वा विशालः द सः अस्ति तदनुसारम् तत्र अस्ति केवलम्‌ अपि अत्र सर्वे विविधाः तत्‌ बहवः यतः इदानीम्‌ द दक्षिण इत्यस्मै तस्य उपरि नथ अतीव कार्यम्‌ सर्वे एकैकम्‌ इत्यादि। एते सन्ति उत इत्थम्‌ मध्ये एतदर्थं . स कस्य प्रथमः श्री. करोति अस्मिन् प्रकारः निर्मिता कालः तत्र कर्तुं समान अधुना ते सन्ति स एकः अस्ति सः अर्थात् तेषां कृते . स्थितम् विशेषः अग्रिम तेषाम्‌ समान स्रोतः ख म समान इदानीमपि अधिकतया करोतु ते समान इत्यस्य वीथी सह यस्मिन् कृतवान्‌ धृतः तदा पुनः पूर्वं सः आगतः किम्‌ कुल इतर पुरा मात्रा स विषये उ अतएव अपि नगरस्य उपरि यतः प्रतिशतं कतरः कालः साधनानि भूत तथापि जात सम्बन्धि अन्यत्‌ ग अतः अस्माकं स्वकीयाः अस्माकं इदानीं अन्तः इत्यादयः भवन्तः इत्यादयः एते एताः तस्य अस्य इदम् एते तेषां तेषां तेषां तान् तेषां तेषां तेषां समानः सः एकः च तादृशाः बहवः अन्ये च वदन्ति यत् कियत् कस्मै कस्मै यस्मै यस्मै यस्मै यस्मै न अतिनीचः किन्तु प्रथमं सम्पूर्णतया ततः चिरकालानन्तरं पुस्तकं सम्पूर्णतया अन्तः किन्तु अत्र वा इह इव श्रद्धाय अवशिष्यते परन्तु अन्ये वर्गाः सन्ति ते सन्ति शक्नुवन्ति सर्वे मिलित्वा सर्वे एकत्र"'.split(" ")),e.sa.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.sa.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var i=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(i).split("|")},e.Pipeline.registerFunction(e.sa.stemmer,"stemmer-sa"),e.Pipeline.registerFunction(e.sa.stopWordFilter,"stopWordFilter-sa")}});

View File

@ -0,0 +1 @@
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});

View File

@ -0,0 +1,18 @@
/*!
* Lunr languages, `Swedish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA--",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});

View File

@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="஀-உஊ-ஏஐ-ஙச-ட஠-னப-யர-ஹ஺-ிீ-௉ொ-௏ௐ-௙௚-௟௠-௩௪-௯௰-௹௺-௿a-zA-Z--0-9-",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}});

View File

@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.te=function(){this.pipeline.reset(),this.pipeline.add(e.te.trimmer,e.te.stopWordFilter,e.te.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.te.stemmer))},e.te.wordCharacters="ఀ-ఄఅ-ఔక-హా-ౌౕ-ౖౘ-ౚౠ-ౡౢ-ౣ౦-౯౸-౿఼ఽ్ౝ౷౤౥",e.te.trimmer=e.trimmerSupport.generateTrimmer(e.te.wordCharacters),e.Pipeline.registerFunction(e.te.trimmer,"trimmer-te"),e.te.stopWordFilter=e.generateStopWordFilter("అందరూ అందుబాటులో అడగండి అడగడం అడ్డంగా అనుగుణంగా అనుమతించు అనుమతిస్తుంది అయితే ఇప్పటికే ఉన్నారు ఎక్కడైనా ఎప్పుడు ఎవరైనా ఎవరో ఏ ఏదైనా ఏమైనప్పటికి ఒక ఒకరు కనిపిస్తాయి కాదు కూడా గా గురించి చుట్టూ చేయగలిగింది తగిన తర్వాత దాదాపు దూరంగా నిజంగా పై ప్రకారం ప్రక్కన మధ్య మరియు మరొక మళ్ళీ మాత్రమే మెచ్చుకో వద్ద వెంట వేరుగా వ్యతిరేకంగా సంబంధం".split(" ")),e.te.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.te.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.te.stemmer,"stemmer-te"),e.Pipeline.registerFunction(e.te.stopWordFilter,"stopWordFilter-te")}});

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});

View File

@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 為 以 于 於 上 他 而 后 後 之 来 來 及 了 因 下 可 到 由 这 這 与 與 也 此 但 并 並 个 個 其 已 无 無 小 我 们 們 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 當 从 從 得 打 凡 儿 兒 尔 爾 该 該 各 给 給 跟 和 何 还 還 即 几 幾 既 看 据 據 距 靠 啦 另 么 麽 每 嘛 拿 哪 您 凭 憑 且 却 卻 让 讓 仍 啥 如 若 使 谁 誰 虽 雖 随 隨 同 所 她 哇 嗡 往 些 向 沿 哟 喲 用 咱 则 則 怎 曾 至 致 着 著 诸 諸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});

View File

@ -0,0 +1,206 @@
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
// (c) 2008 Taku Kudo <taku@chasen.org>
// TinySegmenter is freely distributable under the terms of a new BSD licence.
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
function TinySegmenter() {
var patterns = {
"[一二三四五六七八九十百千万億兆]":"M",
"[一-龠々〆ヵヶ]":"H",
"[ぁ-ん]":"I",
"[ァ-ヴーア-ン゙ー]":"K",
"[a-zA-Z--]":"A",
"[0-9-]":"N"
}
this.chartype_ = [];
for (var i in patterns) {
var regexp = new RegExp(i);
this.chartype_.push([regexp, patterns[i]]);
}
this.BIAS__ = -332
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
this.BP2__ = {"BO":60,"OO":-1762};
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"":-669};
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
this.TW1__ = {"につい":-4681,"東京都":2026};
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
this.UC3__ = {"A":-1370,"I":2311};
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
this.UP1__ = {"O":-214};
this.UP2__ = {"B":69,"O":935};
this.UP3__ = {"B":189};
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
this.UW2__ = {",":-829,"、":-829,"":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
this.UW3__ = {",":4889,"1":-800,"":-1723,"、":4889,"々":-2311,"":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"":-514,"":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"":-270,"":306,"ル":-673,"ン":-496};
return this;
}
TinySegmenter.prototype.ctype_ = function(str) {
for (var i in this.chartype_) {
if (str.match(this.chartype_[i][0])) {
return this.chartype_[i][1];
}
}
return "O";
}
TinySegmenter.prototype.ts_ = function(v) {
if (v) { return v; }
return 0;
}
TinySegmenter.prototype.segment = function(input) {
if (input == null || input == undefined || input == "") {
return [];
}
var result = [];
var seg = ["B3","B2","B1"];
var ctype = ["O","O","O"];
var o = input.split("");
for (i = 0; i < o.length; ++i) {
seg.push(o[i]);
ctype.push(this.ctype_(o[i]))
}
seg.push("E1");
seg.push("E2");
seg.push("E3");
ctype.push("O");
ctype.push("O");
ctype.push("O");
var word = seg[3];
var p1 = "U";
var p2 = "U";
var p3 = "U";
for (var i = 4; i < seg.length - 3; ++i) {
var score = this.BIAS__;
var w1 = seg[i-3];
var w2 = seg[i-2];
var w3 = seg[i-1];
var w4 = seg[i];
var w5 = seg[i+1];
var w6 = seg[i+2];
var c1 = ctype[i-3];
var c2 = ctype[i-2];
var c3 = ctype[i-1];
var c4 = ctype[i];
var c5 = ctype[i+1];
var c6 = ctype[i+2];
score += this.ts_(this.UP1__[p1]);
score += this.ts_(this.UP2__[p2]);
score += this.ts_(this.UP3__[p3]);
score += this.ts_(this.BP1__[p1 + p2]);
score += this.ts_(this.BP2__[p2 + p3]);
score += this.ts_(this.UW1__[w1]);
score += this.ts_(this.UW2__[w2]);
score += this.ts_(this.UW3__[w3]);
score += this.ts_(this.UW4__[w4]);
score += this.ts_(this.UW5__[w5]);
score += this.ts_(this.UW6__[w6]);
score += this.ts_(this.BW1__[w2 + w3]);
score += this.ts_(this.BW2__[w3 + w4]);
score += this.ts_(this.BW3__[w4 + w5]);
score += this.ts_(this.TW1__[w1 + w2 + w3]);
score += this.ts_(this.TW2__[w2 + w3 + w4]);
score += this.ts_(this.TW3__[w3 + w4 + w5]);
score += this.ts_(this.TW4__[w4 + w5 + w6]);
score += this.ts_(this.UC1__[c1]);
score += this.ts_(this.UC2__[c2]);
score += this.ts_(this.UC3__[c3]);
score += this.ts_(this.UC4__[c4]);
score += this.ts_(this.UC5__[c5]);
score += this.ts_(this.UC6__[c6]);
score += this.ts_(this.BC1__[c2 + c3]);
score += this.ts_(this.BC2__[c3 + c4]);
score += this.ts_(this.BC3__[c4 + c5]);
score += this.ts_(this.TC1__[c1 + c2 + c3]);
score += this.ts_(this.TC2__[c2 + c3 + c4]);
score += this.ts_(this.TC3__[c3 + c4 + c5]);
score += this.ts_(this.TC4__[c4 + c5 + c6]);
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
score += this.ts_(this.UQ1__[p1 + c1]);
score += this.ts_(this.UQ2__[p2 + c2]);
score += this.ts_(this.UQ3__[p3 + c3]);
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
var p = "O";
if (score > 0) {
result.push(word);
word = "";
p = "B";
}
p1 = p2;
p2 = p3;
p3 = p;
word += seg[i];
}
result.push(word);
return result;
}
lunr.TinySegmenter = TinySegmenter;
};
}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"sources":["src/templates/assets/stylesheets/palette/_scheme.scss","../../../../src/templates/assets/stylesheets/palette.scss","src/templates/assets/stylesheets/palette/_accent.scss","src/templates/assets/stylesheets/palette/_primary.scss","src/templates/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAME,sDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,mDAAA,CACA,gDAAA,CAGA,0BAAA,CACA,mCAAA,CAGA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,iCAAA,CAGA,yDAAA,CACA,iEAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,uDAAA,CAGA,8DAAA,CAKA,8DAAA,CAKA,0DAAA,CAvEA,iBCeF,CD6DE,kHAEE,YC3DJ,CDkFE,yDACE,4BChFJ,CD+EE,2DACE,4BC7EJ,CD4EE,gEACE,4BC1EJ,CDyEE,2DACE,4BCvEJ,CDsEE,yDACE,4BCpEJ,CDmEE,0DACE,4BCjEJ,CDgEE,gEACE,4BC9DJ,CD6DE,0DACE,4BC3DJ,CD0DE,2OACE,4BC/CJ,CDsDA,+FAGE,iCCpDF,CACF,CC/CE,2BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD2CN,CCrDE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDkDN,CC5DE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDyDN,CCnEE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDgEN,CC1EE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDuEN,CCjFE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD8EN,CCxFE,kCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDqFN,CC/FE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD4FN,CCtGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDmGN,CC7GE,6BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD0GN,CCpHE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDiHN,CC3HE,4BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD2HN,CClIE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDkIN,CCzIE,6BACE,yBAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDyIN,CChJE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDgJN,CCvJE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDoJN,CEzJE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsJN,CEjKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8JN,CEzKE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsKN,CEjLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8KN,CEzLE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsLN,CEjME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8LN,CEzME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsMN,CEjNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8MN,CEzNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsNN,CEjOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8NN,CEzOE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsON,CEjPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiPN,CEzPE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyPN,CEjQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiQN,CEzQE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyQN,CEjRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8QN,CEzRE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsRN,CEjSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BF0RN,CE1SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BFmSN,CEpRE,sEACE,4BFuRJ,CExRE,+DACE,4BF2RJ,CE5RE,iEACE,4BF+RJ,CEhSE,gEACE,4BFmSJ,CEpSE,iEACE,4BFuSJ,CE9RA,8BACE,mDAAA,CACA,4DAAA,CACA,0DAAA,CACA,oDAAA,CACA,2DAAA,CAGA,4BF+RF,CE5RE,yCACE,+BF8RJ,CE3RI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCF+RN,CG3MI,mCD1EA,+CACE,8CFwRJ,CErRI,qDACE,8CFuRN,CElRE,iEACE,mCFoRJ,CACF,CGtNI,sCDvDA,uCACE,oCFgRJ,CACF,CEvQA,8BACE,kDAAA,CACA,4DAAA,CACA,wDAAA,CACA,oDAAA,CACA,6DAAA,CAGA,4BFwQF,CErQE,yCACE,+BFuQJ,CEpQI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCFwQN,CEjQE,yCACE,6CFmQJ,CG5NI,0CDhCA,8CACE,gDF+PJ,CACF,CGjOI,0CDvBA,iFACE,6CF2PJ,CACF,CGzPI,sCDKA,uCACE,6CFuPJ,CACF","file":"palette.css"}

1890
v0.26.0/bookmarks/index.html Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Redirecting...</title>
<link rel="canonical" href="../bookmarks/">
<script>var anchor=window.location.hash.substr(1);location.href="../bookmarks/"+(anchor?"#"+anchor:"")</script>
<meta http-equiv="refresh" content="0; url=../bookmarks/">
</head>
<body>
You're being redirected to a <a href="../bookmarks/">new destination</a>.
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

689
v0.26.0/config-schema.json Normal file
View File

@ -0,0 +1,689 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Jujutsu config",
"type": "object",
"description": "User configuration for Jujutsu VCS. See https://jj-vcs.github.io/jj/latest/config/ for details",
"properties": {
"user": {
"type": "object",
"description": "Settings about the user",
"properties": {
"name": {
"type": "string",
"description": "Full name of the user, used in commits"
},
"email": {
"type": "string",
"description": "User's email address, used in commits",
"format": "email"
}
}
},
"operation": {
"type": "object",
"description": "Metadata to be attached to jj operations (shown in jj op log)",
"properties": {
"hostname": {
"type": "string",
"format": "hostname"
},
"username": {
"type": "string"
}
}
},
"ui": {
"type": "object",
"description": "UI settings",
"definitions": {
"conflict-marker-style": {
"type": "string",
"description": "Conflict marker style to use when materializing conflicts in the working copy",
"enum": [
"diff",
"snapshot",
"git"
],
"default": "diff"
}
},
"properties": {
"allow-init-native": {
"type": "boolean",
"description": "Whether to allow initializing a repo with the native backend",
"default": false
},
"allow-filesets": {
"type": "boolean",
"description": "Whether to parse path arguments as fileset expressions",
"default": true
},
"always-allow-large-revsets": {
"type": "boolean",
"description": "Whether to allow large revsets to be used in all commands without the `all:` modifier",
"default": false
},
"default-command": {
"description": "Default command to run when no explicit command is given",
"default": "log",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"default-description": {
"type": "string",
"description": "Default description to use when describing changes with an empty description",
"default": ""
},
"color": {
"description": "Whether to colorize command output",
"enum": [
"always",
"never",
"debug",
"auto"
],
"default": "auto"
},
"paginate": {
"type": "string",
"description": "Whether or not to use a pager",
"enum": [
"never",
"auto"
],
"default": "auto"
},
"pager": {
"type": "string",
"description": "Pager to use for displaying command output",
"default": "less -FRX"
},
"streampager": {
"type": "object",
"description": "':builtin' (streampager-based) pager configuration",
"properties": {
"interface": {
"description": "Whether to quit automatically, whether to clear screen on startup/exit",
"enum": [
"quit-if-one-page",
"full-screen-clear-output",
"quit-quickly-or-clear-output"
],
"default": "never"
},
"wrapping": {
"description": "Whether to wrap long lines",
"enum": [
"anywhere",
"word",
"none"
],
"default": "anywhere"
}
}
},
"diff": {
"type": "object",
"description": "Options for how diffs are displayed",
"properties": {
"format": {
"description": "The diff format to use",
"enum": [
"color-words",
"git",
"summary"
],
"default": "color-words"
},
"tool": {
"type": "string",
"description": "External tool for generating diffs"
}
}
},
"diff-instructions": {
"type": "boolean",
"description": "Whether to generate the JJ-INSTRUCTIONS file as part of editing a diff",
"default": true
},
"graph": {
"type": "object",
"description": "Options for rendering revision graphs from jj log etc",
"properties": {
"style": {
"description": "Style of connectors/markings used to render the graph. See https://jj-vcs.github.io/jj/latest/config/#graph-style",
"enum": [
"curved",
"square",
"ascii",
"ascii-large"
],
"default": "curved"
}
}
},
"log-word-wrap": {
"type": "boolean",
"description": "Whether to wrap log template output",
"default": false
},
"log-synthetic-elided-nodes": {
"type": "boolean",
"description": "Whether to render elided parts of the graph as synthetic nodes.",
"default": true
},
"editor": {
"type": "string",
"description": "Editor to use for commands that involve editing text"
},
"diff-editor": {
"type": "string",
"description": "Editor tool to use for editing diffs",
"default": "meld"
},
"merge-editor": {
"type": "string",
"description": "Tool to use for resolving three-way merges. Behavior for a given tool name can be configured in merge-tools.TOOL tables"
},
"conflict-marker-style": {
"$ref": "#/properties/ui/definitions/conflict-marker-style"
},
"show-cryptographic-signatures": {
"type": "boolean",
"default": false,
"description": "Whether the built-in templates should show cryptographic signature information"
},
"movement": {
"type": "object",
"properties": {
"edit": {
"type": "boolean",
"description": "Whether the next and prev commands should behave as if the --edit flag was passed",
"default": false
}
}
}
}
},
"core": {
"type": "object",
"properties": {
"fsmonitor": {
"type": "string",
"enum": ["none", "watchman"],
"description": "Whether to use an external filesystem monitor, useful for large repos"
},
"watchman": {
"type": "object",
"properties": {
"register_snapshot_trigger": {
"type": "boolean",
"default": false,
"description": "Whether to use triggers to monitor for changes in the background."
}
}
}
}
},
"colors": {
"type": "object",
"description": "Mapping from jj formatter labels to colors",
"definitions": {
"colorNames": {
"enum": [
"default",
"black",
"red",
"green",
"yellow",
"blue",
"magenta",
"cyan",
"white",
"bright black",
"bright red",
"bright green",
"bright yellow",
"bright blue",
"bright magenta",
"bright cyan",
"bright white"
]
},
"hexColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"colors": {
"oneOf": [
{
"$ref": "#/properties/colors/definitions/colorNames"
},
{
"$ref": "#/properties/colors/definitions/hexColor"
}
]
},
"basicFormatterLabels": {
"enum": [
"description",
"change_id",
"commit_id",
"author",
"committer",
"working_copies",
"current_working_copy",
"bookmarks",
"tags",
"git_refs",
"is_git_head",
"divergent",
"hidden",
"conflict",
"root"
]
}
},
"propertyNames": {
"oneOf": [
{
"$ref": "#/properties/colors/definitions/basicFormatterLabels"
},
{
"type": "string"
}
]
},
"additionalProperties": {
"description": "A color profile for the given formatter label. Either a bare color name used as the foreground color or a table describing color and formatting",
"oneOf": [
{
"$ref": "#/properties/colors/definitions/colors"
},
{
"type": "object",
"properties": {
"fg": {
"$ref": "#/properties/colors/definitions/colors"
},
"bg": {
"$ref": "#/properties/colors/definitions/colors"
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
}
}
}
]
}
},
"diff": {
"type": "object",
"description": "Builtin diff formats settings",
"properties": {
"color-words": {
"type": "object",
"description": "Options for color-words diffs",
"properties": {
"max-inline-alternation": {
"type": "integer",
"description": "Maximum number of removed/added word alternation to inline",
"default": 3
},
"context": {
"type": "integer",
"description": "Number of lines of context to show",
"default": 3
}
}
},
"git": {
"type": "object",
"description": "Options for git diffs",
"properties": {
"context": {
"type": "integer",
"description": "Number of lines of context to show",
"default": 3
}
}
}
}
},
"git": {
"type": "object",
"description": "Settings for git behavior (when using git backend)",
"properties": {
"auto-local-bookmark": {
"type": "boolean",
"description": "Whether jj creates a local bookmark with the same name when it imports a remote-tracking branch from git. See https://jj-vcs.github.io/jj/latest/config/#automatic-local-bookmark-creation",
"default": false
},
"abandon-unreachable-commits": {
"type": "boolean",
"description": "Whether jj should abandon commits that became unreachable in Git.",
"default": true
},
"push-bookmark-prefix": {
"type": "string",
"description": "Prefix used when pushing a bookmark based on a change ID",
"default": "push-"
},
"push-new-bookmarks": {
"type": "boolean",
"description": "Allow pushing new bookmarks without --allow-new",
"default": false
},
"fetch": {
"description": "The remote(s) from which commits are fetched",
"default": "origin",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"push": {
"type": "string",
"description": "The remote to which commits are pushed",
"default": "origin"
},
"sign-on-push": {
"type": "boolean",
"description": "Whether jj should sign commits before pushing",
"default": "false"
},
"subprocess": {
"type": "boolean",
"description": "Whether jj spawns a git subprocess for network operations (push/fetch/clone)",
"default": false
},
"executable-path": {
"type": "string",
"description": "Path to the git executable",
"default": "git"
}
}
},
"merge-tools": {
"type": "object",
"description": "Tables of custom options to pass to the given merge tool (selected in ui.merge-editor)",
"additionalProperties": {
"type": "object",
"properties": {
"program": {
"type": "string"
},
"diff-args": {
"type": "array",
"items": {
"type": "string"
}
},
"diff-expected-exit-codes": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Array of exit codes that do not indicate tool failure, i.e. [0, 1] for unix diff.",
"default": [0]
},
"diff-invocation-mode": {
"description": "Invoke the tool with directories or individual files",
"enum": [
"dir",
"file-by-file"
],
"default": "dir"
},
"edit-args": {
"type": "array",
"items": {
"type": "string"
}
},
"merge-args": {
"type": "array",
"items": {
"type": "string"
}
},
"merge-conflict-exit-codes": {
"type": "array",
"items": {
"type": "number"
},
"description": "Array of exit codes to indicate that the conflict was only partially resolved. See https://jj-vcs.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor",
"default": []
},
"merge-tool-edits-conflict-markers": {
"type": "boolean",
"description": "Whether to populate the output file with conflict markers before starting the merge tool. See https://jj-vcs.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor",
"default": false
},
"conflict-marker-style": {
"$ref": "#/properties/ui/definitions/conflict-marker-style"
}
}
}
},
"revsets": {
"type": "object",
"description": "Revset expressions used by various commands",
"properties": {
"fix": {
"type": "string",
"description": "Default set of revisions to fix when no explicit revset is given for jj fix",
"default": "reachable(@, mutable())"
},
"log": {
"type": "string",
"description": "Default set of revisions to show when no explicit revset is given for jj log and similar commands",
"default": "present(@) | ancestors(immutable_heads().., 2) | present(trunk())"
},
"short-prefixes": {
"type": "string",
"description": "Revisions to give shorter change and commit IDs to",
"default": "<revsets.log>"
},
"simplify-parents": {
"type": "string",
"description": "Default set of revisions to simplify when no explicit revset is given for jj simplify-parents",
"default": "reachable(@, mutable())"
}
},
"additionalProperties": {
"type": "string"
}
},
"revset-aliases": {
"type": "object",
"description": "Custom symbols/function aliases that can used in revset expressions",
"properties": {
"immutable_heads()": {
"type": "string",
"description": "Revisions to consider immutable. Ancestors of these are also considered immutable. The root commit is always considered immutable.",
"default": "present(trunk()) | tags() | untracked_remote_branches()"
}
},
"additionalProperties": {
"type": "string"
}
},
"template-aliases": {
"type": "object",
"description": "Custom symbols/function aliases that can used in templates",
"additionalProperties": {
"type": "string"
}
},
"aliases": {
"type": "object",
"description": "Custom subcommand aliases to be supported by the jj command",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"snapshot": {
"type": "object",
"description": "Parameters governing automatic capture of files into the working copy commit",
"properties": {
"auto-track": {
"type": "string",
"description": "Fileset pattern describing what new files to automatically track on snapshotting. By default all new files are tracked.",
"default": "all()"
},
"auto-update-stale": {
"type": "boolean",
"description": "Whether to automatically update the working copy if it is stale. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy",
"default": "false"
},
"max-new-file-size": {
"type": [
"integer",
"string"
],
"description": "New files with a size in bytes above this threshold are not snapshotted, unless the threshold is 0",
"default": "1MiB"
}
}
},
"experimental-advance-branches": {
"type": "object",
"description": "Settings controlling the 'advance-branches' feature which moves bookmarks forward when new commits are created.",
"properties": {
"enabled-branches": {
"type": "array",
"description": "Patterns used to identify bookmarks which may be advanced.",
"items": {
"type": "string"
}
},
"disabled-branches": {
"type": "array",
"description": "Patterns used to identify bookmarks which are not advanced. Takes precedence over 'enabled-branches'.",
"items": {
"type": "string"
}
}
}
},
"signing": {
"type": "object",
"description": "Settings for verifying and creating cryptographic commit signatures",
"properties": {
"backend": {
"type": "string",
"enum": ["gpg", "none", "ssh"],
"description": "The backend to use for signing commits. The string `none` disables signing.",
"default": "none"
},
"key": {
"type": "string",
"description": "The key the configured signing backend will use to to sign commits. Overridden by `jj sign` parameter or by the global `--sign-with` option"
},
"sign-all": {
"type": "boolean",
"description": "Whether to sign all commits by default. Overridden by global `--no-sign` option",
"default": false
},
"backends": {
"type": "object",
"description": "Tables of options to pass to specific signing backends",
"properties": {
"gpg": {
"type": "object",
"properties": {
"program": {
"type": "string",
"description": "Path to the gpg program to be called",
"default": "gpg"
},
"allow-expired-keys": {
"type": "boolean",
"description": "Whether to consider signatures generated with an expired key as invalid",
"default": true
}
}
},
"ssh": {
"type": "object",
"properties": {
"program": {
"type": "string",
"description": "Path to the ssh-keygen program to be called",
"default": "ssh-keygen"
},
"allowed-signers": {
"type": "boolean",
"description": "Path to an allowed signers file used for signature verification",
"default": true
}
}
}
},
"additionalProperties": true
}
}
},
"fix": {
"type": "object",
"description": "Settings for jj fix",
"properties": {
"tools": {
"type": "object",
"additionalProperties": {
"type": "object",
"description": "Settings for how specific filesets are affected by a tool",
"properties": {
"command": {
"type": "array",
"items": {
"type": "string"
},
"description": "Arguments used to execute this tool"
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filesets that will be affected by this tool"
},
"enabled": {
"type": "boolean",
"description": "Disables this tool if set to false",
"default": true
}
}
},
"description": "Settings for tools run by jj fix"
}
}
}
}
}

33
v0.26.0/config.toml Normal file
View File

@ -0,0 +1,33 @@
# Basic template of config settings
# Don't forget to change these to your own details!
user.name = "YOUR NAME"
user.email = "YOUR_EMAIL@example.com"
ui.color = "auto" # the default
# ui.color = never # no color
ui.editor = "pico" # the default on Unix
# ui.editor = "vim"
ui.diff-editor = ":builtin" # default, internal TUI tool
# ui.diff-editor = "meld"
# ui.diff-editor = "vimdiff"
ui.merge-editor = "meld" # default
# ui.merge-editor = "vscode"
# ui.merge-editor = "vimdiff"
# ui.merge-editor = "kdiff3"
# Relative timestamp rendered as "x days/hours/seconds ago"
template-aliases.'format_timestamp(timestamp)' = 'timestamp.ago()'
# The four merge tools listed above are pre-configured. For detailed information
# about how to change the default configuration or how to configure another tool,
# see documentation in config.md. An example:
# merge-tools.meld.program = "C:\\Program Files\\Meld\\meld.exe" # If not in PATH
# Change the default push/fetch remote for `jj git push` and `jj git fetch`
# git.fetch = "upstream"
# git.push = "myfork"

4130
v0.26.0/config/index.html Normal file

File diff suppressed because it is too large Load Diff

1746
v0.26.0/conflicts/index.html Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More