Commit Diff


commit - d3eb287c08eeadd6574ded3b4690ee5616c048b0
commit + b213cbf74334d2602c0d5f37f435603e368ff979
blob - 96f3b3f98b9f01ad7580b70abb019d0dd9ffe8d7
blob + ec0861df041d7ad4bbd2252eac345c6cbbbe53bc
--- git-repository.5.html
+++ git-repository.5.html
@@ -92,8 +92,7 @@
     <a class="Xr">deflate(3)</a>.</p>
 <p class="Pp">Multiple objects can be bundled in a <i class="Em">pack file</i>
     for better disk space efficiency and increased run-time performance. The
-    pack file format knows two additional types of objects in addition to blobs,
-    trees, and commits:</p>
+    pack file format introduces two additional types of objects:</p>
 <dl class="Bl-tag">
   <dt>Offset Delta Objects</dt>
   <dd>This object is represented as a delta against another object in the same
@@ -208,7 +207,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">March 6, 2020</td>
+    <td class="foot-date">March 23, 2020</td>
     <td class="foot-os">OpenBSD 6.6</td>
   </tr>
 </table>
blob - c8c400708aaa732a0a5afc0424f1a6e04d845bc2
blob + fae5989aebfc5450f3ad2038f1ac802bc0e78d4d
--- got-worktree.5.html
+++ got-worktree.5.html
@@ -174,7 +174,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">March 6, 2020</td>
+    <td class="foot-date">March 23, 2020</td>
     <td class="foot-os">OpenBSD 6.6</td>
   </tr>
 </table>
blob - ce0e28f4eb2b098dc9fc321e224bdb7e5f4b4eea
blob + 7669db78103979108cf1717ef3963fbc5ea5554e
--- got.1.html
+++ got.1.html
@@ -140,6 +140,227 @@
   </dd>
   <dt><a class="permalink" href="#im"><code class="Cm" id="im">im</code></a></dt>
   <dd>Short alias for <code class="Cm">import</code>.</dd>
+  <dt><a class="permalink" href="#clone"><code class="Cm" id="clone">clone</code></a>
+    [<code class="Fl">-a</code>] [<code class="Fl">-b</code>
+    <var class="Ar">branch</var>] [<code class="Fl">-l</code>]
+    [<code class="Fl">-m</code>] [<code class="Fl">-q</code>]
+    [<code class="Fl">-v</code>] [<code class="Fl">-R</code>
+    <var class="Ar">reference</var>] <var class="Ar">repository-URL</var>
+    [<var class="Ar">directory</var>]</dt>
+  <dd>Clone a Git repository at the specified
+      <var class="Ar">repository-URL</var> into the specified
+      <var class="Ar">directory</var>. If no <var class="Ar">directory</var> is
+      specified the directory name will be derived from the name of the cloned
+      repository. <code class="Cm">got clone</code> will refuse to run if the
+      <var class="Ar">directory</var> already exists.
+    <p class="Pp">The <var class="Ar">repository-URL</var> specifies a protocol
+        scheme, a server hostname, an optional port number separated from the
+        hostname by a colon, and a path to the repository on the server:
+        <a class="Lk" href="scheme://hostname:port/path/to/repository">scheme://hostname:port/path/to/repository</a></p>
+    <p class="Pp">The following protocol schemes are supported:</p>
+    <dl class="Bl-tag">
+      <dt>git</dt>
+      <dd>The Git protocol as implemented by the <a class="Xr">git-daemon(1)</a>
+          server. Use of this protocol is discouraged since it supports neither
+          authentication nor encryption.</dd>
+      <dt>git+ssh</dt>
+      <dd>The Git protocol wrapped in an authenticated and encrypted
+          <a class="Xr">ssh(1)</a> tunnel. With this protocol the hostname may
+          contain an embedded username for <a class="Xr">ssh(1)</a> to use:
+          <a class="Mt" href="mailto:user@hostname">user@hostname</a></dd>
+      <dt>ssh</dt>
+      <dd>Short alias for git+ssh.</dd>
+    </dl>
+    <p class="Pp">Objects in the cloned repository are stored in a pack file
+        which is downloaded from the server. This pack file will then be indexed
+        to facilitate access to the objects stored within. If any objects in the
+        pack file are stored in deltified form, all deltas will be fully
+        resolved in order to compute the ID of such objects. This can take some
+        time. More details about the pack file format are documented in
+        <a class="Xr">git-repository(5)</a>.</p>
+    <p class="Pp"><code class="Cm">got clone</code> creates a remote repository
+        entry in the <span class="Pa">config</span> file of the cloned
+        repository to store the <var class="Ar">repository-url</var> for future
+        use by <code class="Cm">got fetch</code> or
+        <a class="Xr">git-fetch(1)</a>.</p>
+    <p class="Pp">The options for <code class="Cm">got clone</code> are as
+        follows:</p>
+    <dl class="Bl-tag">
+      <dt><a class="permalink" href="#a"><code class="Fl" id="a">-a</code></a></dt>
+      <dd>Fetch all branches from the remote repository's
+          &#x201C;refs/heads/&#x201D; reference namespace. If this option is not
+          specified, a branch resolved via the remote repository's HEAD
+          reference will be fetched. Cannot be used together with the
+          <code class="Fl">-b</code> option.</dd>
+      <dt><a class="permalink" href="#b_2"><code class="Fl" id="b_2">-b</code></a>
+        <var class="Ar">branch</var></dt>
+      <dd>Fetch the specified <var class="Ar">branch</var> from the remote
+          repository's &#x201C;refs/heads/&#x201D; reference namespace. This
+          option may be specified multiple times to build a list of branches to
+          fetch. If the branch corresponding to the remote repository's HEAD
+          reference is not in this list, the cloned repository's HEAD reference
+          will be set to the first branch which was fetched. If this option is
+          not specified, a branch resolved via the remote repository's HEAD
+          reference will be fetched. Cannot be used together with the
+          <code class="Fl">-a</code> option.</dd>
+      <dt><a class="permalink" href="#l"><code class="Fl" id="l">-l</code></a></dt>
+      <dd>List branches and tags available for fetching from the remote
+          repository and exit immediately. Cannot be used together with any of
+          the other options except <code class="Fl">-v</code>.</dd>
+      <dt><a class="permalink" href="#m_2"><code class="Fl" id="m_2">-m</code></a></dt>
+      <dd>Create the cloned repository as a mirror of the original repository.
+          This is useful if the cloned repository will not be used to store
+          local changes as created by <code class="Cm">got commit</code>.
+        <p class="Pp">The repository's <span class="Pa">config</span> file will
+            be set up with the &#x201C;mirror&#x201D; option enabled, such that
+            <code class="Cm">got fetch</code> or <a class="Xr">git-fetch(1)</a>
+            will write incoming changes directly to local branches in the
+            &#x201C;refs/heads/&#x201D; reference namespace, rather than to
+            branches in the &#x201C;refs/remotes/&#x201D; namespace. This avoids
+            the usual requirement of having to run <code class="Cm">got
+            rebase</code> after <code class="Cm">got fetch</code> in order to
+            make incoming changes appear on local branches. But maintaining
+            local changes in the cloned repository becomes difficult since local
+            changes will be at risk of being discarded whenever incoming changes
+            are fetched.</p>
+      </dd>
+      <dt><a class="permalink" href="#q"><code class="Fl" id="q">-q</code></a></dt>
+      <dd>Suppress progress reporting output. The same option will be passed to
+          <a class="Xr">ssh(1)</a> if applicable.</dd>
+      <dt><a class="permalink" href="#v"><code class="Fl" id="v">-v</code></a></dt>
+      <dd>Verbose mode. Causes <code class="Cm">got clone</code> to print
+          debugging messages to standard error output. This option will be
+          passed to <a class="Xr">ssh(1)</a> if applicable. Multiple -v options
+          increase the verbosity. The maximum is 3.</dd>
+      <dt><a class="permalink" href="#R"><code class="Fl" id="R">-R</code></a>
+        <var class="Ar">reference</var></dt>
+      <dd>In addition to the branches and tags that will be fetched, fetch an
+          arbitrary <var class="Ar">reference</var> from the remote repository's
+          &#x201C;refs/&#x201D; namespace. This option may be specified multiple
+          times to build a list of additional references to fetch. The specified
+          <var class="Ar">reference</var> may either be a path to a specific
+          reference, or a reference namespace which will cause all references in
+          this namespace to be fetched.
+        <p class="Pp">Each reference will be mapped into the cloned repository's
+            &#x201C;refs/remotes/&#x201D; namespace, unless the
+            <code class="Fl">-m</code> option is used to mirror references
+            directly into the cloned repository's &#x201C;refs/&#x201D;
+            namespace.</p>
+        <p class="Pp"><code class="Cm">got clone</code> will refuse to fetch
+            references from the remote repository's
+            &#x201C;refs/remotes/&#x201D; or &#x201C;refs/got/&#x201D;
+            namespace.</p>
+      </dd>
+    </dl>
+  </dd>
+  <dt><a class="permalink" href="#cl"><code class="Cm" id="cl">cl</code></a></dt>
+  <dd>Short alias for <code class="Cm">clone</code>.</dd>
+  <dt><a class="permalink" href="#fetch"><code class="Cm" id="fetch">fetch</code></a>
+    [<code class="Fl">-a</code>] [<code class="Fl">-b</code>
+    <var class="Ar">branch</var>] [<code class="Fl">-d</code>]
+    [<code class="Fl">-l</code>] [<code class="Fl">-r</code>
+    <var class="Ar">repository-path</var>] [<code class="Fl">-t</code>]
+    [<code class="Fl">-q</code>] [<code class="Fl">-v</code>]
+    [<code class="Fl">-R</code> <var class="Ar">reference</var>]
+    [<var class="Ar">remote-repository</var>]</dt>
+  <dd>Fetch new changes from a remote repository. If no
+      <var class="Ar">remote-repository</var> is specified,
+      &#x201C;origin&#x201D; will be used. The remote repository's URL is
+      obtained from the corresponding entry in the
+      <span class="Pa">config</span> file of the local repository, as created by
+      <code class="Cm">got clone</code>.
+    <p class="Pp">New changes will be stored in a separate pack file downloaded
+        from the server. Optionally, separate pack files stored in the
+        repository can be combined with <a class="Xr">git-repack(1)</a>.</p>
+    <p class="Pp">By default, branch references in the
+        &#x201C;refs/remotes/&#x201D; reference namespace will be updated to
+        point at the newly fetched commits. The <code class="Cm">got
+        rebase</code> command can then be used to make new changes visible on
+        local branches in the &#x201C;refs/heads/&#x201D; namespace, merging
+        incoming changes with local changes as necessary.</p>
+    <p class="Pp">If the repository was created as a mirror with
+        <code class="Cm">got clone -m</code> then all branches in the
+        &#x201C;refs/heads/&#x201D; namespace will be updated directly to match
+        the corresponding branches in the remote repository. If those branches
+        contained local commits, these commits will no longer be reachable via a
+        reference and will therefore be at risk of being discarded by Git's
+        garbage collector. Maintaining local changes in a mirror repository is
+        therefore discouraged.</p>
+    <p class="Pp">In any case, references in the &#x201C;refs/tags/&#x201D;
+        namespace will always be fetched and mapped directly to local references
+        in the same namespace.</p>
+    <p class="Pp">The options for <code class="Cm">got fetch</code> are as
+        follows:</p>
+    <dl class="Bl-tag">
+      <dt><a class="permalink" href="#a_2"><code class="Fl" id="a_2">-a</code></a></dt>
+      <dd>Fetch all branches from the remote repository's
+          &#x201C;refs/heads/&#x201D; reference namespace. If this option is not
+          specified, a branch resolved via the remote repository's HEAD
+          reference will be fetched. Cannot be used together with the
+          <code class="Fl">-b</code> option.</dd>
+      <dt><a class="permalink" href="#b_3"><code class="Fl" id="b_3">-b</code></a>
+        <var class="Ar">branch</var></dt>
+      <dd>Fetch the specified <var class="Ar">branch</var> from the remote
+          repository's &#x201C;refs/heads/&#x201D; reference namespace. This
+          option may be specified multiple times to build a list of branches to
+          fetch. If this option is not specified, a branch resolved via the
+          remote repository's HEAD reference will be fetched. Cannot be used
+          together with the <code class="Fl">-a</code> option.</dd>
+      <dt><a class="permalink" href="#d"><code class="Fl" id="d">-d</code></a></dt>
+      <dd>Delete branches and tags from the local repository which are no longer
+          present in the remote repository. Only references are deleted. Any
+          commit, tree, tag, and blob objects belonging to deleted branches or
+          tags remain in the repository and may be removed separately with Git's
+          garbage collector.</dd>
+      <dt><a class="permalink" href="#l_2"><code class="Fl" id="l_2">-l</code></a></dt>
+      <dd>List branches and tags available for fetching from the remote
+          repository and exit immediately. Cannot be used together with any of
+          the other options except <code class="Fl">-v</code> and
+          <code class="Fl">-r</code>.</dd>
+      <dt><a class="permalink" href="#t"><code class="Fl" id="t">-t</code></a></dt>
+      <dd>Allow existing references in the &#x201C;refs/tags&#x201D; namespace
+          to be updated if they have changed on the server. If not specified,
+          only new tag references will be created.</dd>
+      <dt><a class="permalink" href="#r_2"><code class="Fl" id="r_2">-r</code></a>
+        <var class="Ar">repository-path</var></dt>
+      <dd>Use the repository at the specified path. If not specified, assume the
+          repository is located at or above the current working directory. If
+          this directory is a <code class="Nm">got</code> work tree, use the
+          repository path associated with this work tree.</dd>
+      <dt><a class="permalink" href="#q_2"><code class="Fl" id="q_2">-q</code></a></dt>
+      <dd>Suppress progress reporting output. The same option will be passed to
+          <a class="Xr">ssh(1)</a> if applicable.</dd>
+      <dt><a class="permalink" href="#v_2"><code class="Fl" id="v_2">-v</code></a></dt>
+      <dd>Verbose mode. Causes <code class="Cm">got fetch</code> to print
+          debugging messages to standard error output. The same option will be
+          passed to <a class="Xr">ssh(1)</a> if applicable. Multiple -v options
+          increase the verbosity. The maximum is 3.</dd>
+      <dt><a class="permalink" href="#R_2"><code class="Fl" id="R_2">-R</code></a>
+        <var class="Ar">reference</var></dt>
+      <dd>In addition to the branches and tags that will be fetched, fetch an
+          arbitrary <var class="Ar">reference</var> from the remote repository's
+          &#x201C;refs/&#x201D; namespace. This option may be specified multiple
+          times to build a list of additional references to fetch. The specified
+          <var class="Ar">reference</var> may either be a path to a specific
+          reference, or a reference namespace which will cause all references in
+          this namespace to be fetched.
+        <p class="Pp">Each reference will be mapped into the local repository's
+            &#x201C;refs/remotes/&#x201D; namespace, unless the local repository
+            was created as a mirror with <code class="Cm">got clone -m</code> in
+            which case references will be mapped directly into the local
+            repository's &#x201C;refs/&#x201D; namespace.</p>
+        <p class="Pp">Once a reference has been fetched, a local branch based on
+            it can be created with <code class="Cm">got branch</code> if
+          needed.</p>
+        <p class="Pp"><code class="Cm">got fetch</code> will refuse to fetch
+            references from the remote repository's
+            &#x201C;refs/remotes/&#x201D; or &#x201C;refs/got/&#x201D;
+            namespace.</p>
+      </dd>
+    </dl>
+  </dd>
+  <dt><a class="permalink" href="#fe"><code class="Cm" id="fe">fe</code></a></dt>
+  <dd>Short alias for <code class="Cm">fetch</code>.</dd>
   <dt><a class="permalink" href="#checkout"><code class="Cm" id="checkout">checkout</code></a>
     [<code class="Fl">-E</code>] [<code class="Fl">-b</code>
     <var class="Ar">branch</var>] [<code class="Fl">-c</code>
@@ -169,7 +390,7 @@
       <dd>Proceed with the checkout operation even if the directory at
           <var class="Ar">work-tree-path</var> is not empty. Existing files will
           be left intact.</dd>
-      <dt><a class="permalink" href="#b_2"><code class="Fl" id="b_2">-b</code></a>
+      <dt><a class="permalink" href="#b_4"><code class="Fl" id="b_4">-b</code></a>
         <var class="Ar">branch</var></dt>
       <dd>Check out files from a commit on the specified
           <var class="Ar">branch</var>. If this option is not specified, a
@@ -255,7 +476,7 @@
     <p class="Pp">The options for <code class="Cm">got update</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#b_3"><code class="Fl" id="b_3">-b</code></a>
+      <dt><a class="permalink" href="#b_5"><code class="Fl" id="b_5">-b</code></a>
         <var class="Ar">branch</var></dt>
       <dd>Switch the work tree's branch reference to the specified
           <var class="Ar">branch</var> before updating the work tree. This
@@ -383,7 +604,7 @@
     <p class="Pp">The options for <code class="Cm">got log</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#b_4"><code class="Fl" id="b_4">-b</code></a></dt>
+      <dt><a class="permalink" href="#b_6"><code class="Fl" id="b_6">-b</code></a></dt>
       <dd>Display individual commits which were merged into the current branch
           from other branches. By default, <code class="Cm">got log</code> shows
           the linear history of the current branch only.</dd>
@@ -402,7 +623,7 @@
       <dd>Set the number of context lines shown in diffs with
           <code class="Fl">-p</code>. By default, 3 lines of context are
         shown.</dd>
-      <dt><a class="permalink" href="#l"><code class="Fl" id="l">-l</code></a>
+      <dt><a class="permalink" href="#l_3"><code class="Fl" id="l_3">-l</code></a>
         <var class="Ar">N</var></dt>
       <dd>Limit history traversal to a given number of commits. If this option
           is not specified, a default limit value of zero is used, which is
@@ -419,7 +640,7 @@
           extended regular expression <var class="Ar">search-pattern</var>.
           Regular expression syntax is documented in
           <a class="Xr">re_format(7)</a>.</dd>
-      <dt><a class="permalink" href="#r_2"><code class="Fl" id="r_2">-r</code></a>
+      <dt><a class="permalink" href="#r_3"><code class="Fl" id="r_3">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
@@ -449,7 +670,7 @@
         <var class="Ar">number</var></dt>
       <dd>Set the number of context lines shown in the diff. By default, 3 lines
           of context are shown.</dd>
-      <dt><a class="permalink" href="#r_3"><code class="Fl" id="r_3">-r</code></a>
+      <dt><a class="permalink" href="#r_4"><code class="Fl" id="r_4">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
@@ -481,7 +702,7 @@
           to a commit ID. An abbreviated hash argument will be expanded to a
           full SHA1 hash automatically, provided the abbreviation is
         unique.</dd>
-      <dt><a class="permalink" href="#r_4"><code class="Fl" id="r_4">-r</code></a>
+      <dt><a class="permalink" href="#r_5"><code class="Fl" id="r_5">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
@@ -531,7 +752,7 @@
           to a commit ID. An abbreviated hash argument will be expanded to a
           full SHA1 hash automatically, provided the abbreviation is
         unique.</dd>
-      <dt><a class="permalink" href="#r_5"><code class="Fl" id="r_5">-r</code></a>
+      <dt><a class="permalink" href="#r_6"><code class="Fl" id="r_6">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
@@ -540,7 +761,7 @@
       <dt><a class="permalink" href="#i"><code class="Fl" id="i">-i</code></a></dt>
       <dd>Show object IDs of files (blob objects) and directories (tree
           objects).</dd>
-      <dt><a class="permalink" href="#R"><code class="Fl" id="R">-R</code></a></dt>
+      <dt><a class="permalink" href="#R_3"><code class="Fl" id="R_3">-R</code></a></dt>
       <dd>Recurse into sub-directories in the repository.</dd>
     </dl>
   </dd>
@@ -548,37 +769,54 @@
   <dd>Short alias for <code class="Cm">tree</code>.</dd>
   <dt><a class="permalink" href="#ref"><code class="Cm" id="ref">ref</code></a>
     [<code class="Fl">-r</code> <var class="Ar">repository-path</var>]
-    [<code class="Fl">-l</code>] [<code class="Fl">-d</code>
-    <var class="Ar">name</var>] [<code class="Fl">-s</code>]
-    [<var class="Ar">name</var> <var class="Ar">target</var>]</dt>
+    [<code class="Fl">-l</code>] [<code class="Fl">-c</code>
+    <var class="Ar">object</var>] [<code class="Fl">-s</code>
+    <var class="Ar">reference</var>] [<code class="Fl">-d</code>]
+    [<var class="Ar">name</var>]</dt>
   <dd>Manage references in a repository.
-    <p class="Pp">If no options are passed, expect two arguments and attempt to
-        create, or update, the reference with the given
-        <var class="Ar">name</var>, and make it point at the given
-        <var class="Ar">target</var>. The name must be an absolute reference
-        name, i.e. it must begin with &#x201C;refs/&#x201D;. The target may be
-        an object ID SHA1 hash or an existing reference which will be resolved
-        to an object ID. An abbreviated hash argument will be expanded to a full
-        SHA1 hash automatically, provided the abbreviation is unique.</p>
+    <p class="Pp">References may be listed, created, deleted, and changed. When
+        creating, deleting, or changing a reference the specified
+        <var class="Ar">name</var> must be an absolute reference name, i.e. it
+        must begin with &#x201C;refs/&#x201D;.</p>
     <p class="Pp">The options for <code class="Cm">got ref</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#r_6"><code class="Fl" id="r_6">-r</code></a>
+      <dt><a class="permalink" href="#r_7"><code class="Fl" id="r_7">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
           this directory is a <code class="Nm">got</code> work tree, use the
           repository path associated with this work tree.</dd>
-      <dt><a class="permalink" href="#l_2"><code class="Fl" id="l_2">-l</code></a></dt>
-      <dd>List all existing references in the repository.</dd>
-      <dt><a class="permalink" href="#d"><code class="Fl" id="d">-d</code></a>
-        <var class="Ar">name</var></dt>
-      <dd>Delete the reference with the specified name from the repository.</dd>
-      <dt><a class="permalink" href="#s_3"><code class="Fl" id="s_3">-s</code></a></dt>
-      <dd>Create a symbolic reference pointing at the specified
-          <var class="Ar">target</var>, which must be an existing reference.
-          Care should be taken not to create loops between references when this
-          option is used.</dd>
+      <dt><a class="permalink" href="#l_4"><code class="Fl" id="l_4">-l</code></a></dt>
+      <dd>List references in the repository. If no <var class="Ar">name</var> is
+          specified, list all existing references in the repository. If
+          <var class="Ar">name</var> is a reference namespace, list all
+          references in this namespace. Otherwise, show only the reference with
+          the given <var class="Ar">name</var>. Cannot be used together with any
+          other options except <code class="Fl">-r</code>.</dd>
+      <dt><a class="permalink" href="#c_6"><code class="Fl" id="c_6">-c</code></a>
+        <var class="Ar">object</var></dt>
+      <dd>Create a reference or change an existing reference. The reference with
+          the specified <var class="Ar">name</var> will point at the specified
+          <var class="Ar">object.</var> The expected
+          <var class="Ar">object</var> argument is a ID SHA1 hash or an existing
+          reference or tag name which will be resolved to the ID of a
+          corresponding commit, tree, tag, or blob object. Cannot be used
+          together with any other options except
+        <code class="Fl">-r</code>.</dd>
+      <dt><a class="permalink" href="#s_3"><code class="Fl" id="s_3">-s</code></a>
+        <var class="Ar">reference</var></dt>
+      <dd>Create a symbolic reference, or change an existing symbolic reference.
+          The symbolic reference with the specified <var class="Ar">name</var>
+          will point at the specified <var class="Ar">reference</var> which must
+          already exist in the repository. Care should be taken not to create
+          loops between references when this option is used. Cannot be used
+          together with any other options except
+        <code class="Fl">-r</code>.</dd>
+      <dt><a class="permalink" href="#d_2"><code class="Fl" id="d_2">-d</code></a></dt>
+      <dd>Delete the reference with the specified <var class="Ar">name</var>
+          from the repository. Cannot be used together with any other options
+          except <code class="Fl">-r</code>.</dd>
     </dl>
   </dd>
   <dt><a class="permalink" href="#branch"><code class="Cm" id="branch">branch</code></a>
@@ -638,20 +876,20 @@
     <p class="Pp">The options for <code class="Cm">got branch</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#c_6"><code class="Fl" id="c_6">-c</code></a>
+      <dt><a class="permalink" href="#c_7"><code class="Fl" id="c_7">-c</code></a>
         <var class="Ar">commit</var></dt>
       <dd>Make a newly created branch reference point at the specified
           <var class="Ar">commit</var>. The expected
           <var class="Ar">commit</var> argument is a commit ID SHA1 hash or an
           existing reference or tag name which will be resolved to a commit
         ID.</dd>
-      <dt><a class="permalink" href="#r_7"><code class="Fl" id="r_7">-r</code></a>
+      <dt><a class="permalink" href="#r_8"><code class="Fl" id="r_8">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
           this directory is a <code class="Nm">got</code> work tree, use the
           repository path associated with this work tree.</dd>
-      <dt><a class="permalink" href="#l_3"><code class="Fl" id="l_3">-l</code></a></dt>
+      <dt><a class="permalink" href="#l_5"><code class="Fl" id="l_5">-l</code></a></dt>
       <dd>List all existing branches in the repository. If invoked in a work
           tree, the work tree's current branch is shown with one the following
           annotations:
@@ -666,7 +904,7 @@
           </tr>
         </table>
       </dd>
-      <dt><a class="permalink" href="#d_2"><code class="Fl" id="d_2">-d</code></a>
+      <dt><a class="permalink" href="#d_3"><code class="Fl" id="d_3">-d</code></a>
         <var class="Ar">name</var></dt>
       <dd>Delete the branch with the specified name from the repository. Only
           the branch reference is deleted. Any commit, tree, and blob objects
@@ -700,7 +938,7 @@
     <p class="Pp">The options for <code class="Cm">got tag</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#c_7"><code class="Fl" id="c_7">-c</code></a>
+      <dt><a class="permalink" href="#c_8"><code class="Fl" id="c_8">-c</code></a>
         <var class="Ar">commit</var></dt>
       <dd>Make the newly created tag reference point at the specified
           <var class="Ar">commit</var>. The expected
@@ -708,19 +946,19 @@
           existing reference or tag name which will be resolved to a commit ID.
           An abbreviated hash argument will be expanded to a full SHA1 hash
           automatically, provided the abbreviation is unique.</dd>
-      <dt><a class="permalink" href="#m_2"><code class="Fl" id="m_2">-m</code></a>
+      <dt><a class="permalink" href="#m_3"><code class="Fl" id="m_3">-m</code></a>
         <var class="Ar">message</var></dt>
       <dd>Use the specified tag message when creating the new tag. Without the
           <code class="Fl">-m</code> option, <code class="Cm">got tag</code>
           opens a temporary file in an editor where a tag message can be
           written.</dd>
-      <dt><a class="permalink" href="#r_8"><code class="Fl" id="r_8">-r</code></a>
+      <dt><a class="permalink" href="#r_9"><code class="Fl" id="r_9">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
           this directory is a <code class="Nm">got</code> work tree, use the
           repository path associated with this work tree.</dd>
-      <dt><a class="permalink" href="#l_4"><code class="Fl" id="l_4">-l</code></a></dt>
+      <dt><a class="permalink" href="#l_6"><code class="Fl" id="l_6">-l</code></a></dt>
       <dd>List all existing tags in the repository instead of creating a new
           tag. If this option is used, no other command-line arguments are
           allowed.</dd>
@@ -739,7 +977,7 @@
     <p class="Pp">The options for <code class="Cm">got add</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#R_2"><code class="Fl" id="R_2">-R</code></a></dt>
+      <dt><a class="permalink" href="#R_4"><code class="Fl" id="R_4">-R</code></a></dt>
       <dd>Permit recursion into directories. If this option is not specified,
           <code class="Cm">got add</code> will refuse to run if a specified
           <var class="Ar">path</var> is a directory.</dd>
@@ -761,7 +999,7 @@
           modifications.</dd>
       <dt><a class="permalink" href="#k"><code class="Fl" id="k">-k</code></a></dt>
       <dd>Keep affected files on disk.</dd>
-      <dt><a class="permalink" href="#R_3"><code class="Fl" id="R_3">-R</code></a></dt>
+      <dt><a class="permalink" href="#R_5"><code class="Fl" id="R_5">-R</code></a></dt>
       <dd>Permit recursion into directories. If this option is not specified,
           <code class="Cm">got remove</code> will refuse to run if a specified
           <var class="Ar">path</var> is a directory.</dd>
@@ -797,7 +1035,7 @@
           &#x201C;n&#x201D;, and &#x201C;q&#x201D; responses line-by-line from
           the specified <var class="Ar">response-script</var> file instead of
           prompting interactively.</dd>
-      <dt><a class="permalink" href="#R_4"><code class="Fl" id="R_4">-R</code></a></dt>
+      <dt><a class="permalink" href="#R_6"><code class="Fl" id="R_6">-R</code></a></dt>
       <dd>Permit recursion into directories. If this option is not specified,
           <code class="Cm">got revert</code> will refuse to run if a specified
           <var class="Ar">path</var> is a directory.</dd>
@@ -851,7 +1089,7 @@
     <p class="Pp">The options for <code class="Cm">got commit</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#m_3"><code class="Fl" id="m_3">-m</code></a>
+      <dt><a class="permalink" href="#m_4"><code class="Fl" id="m_4">-m</code></a>
         <var class="Ar">message</var></dt>
       <dd>Use the specified log message when creating the new commit. Without
           the <code class="Fl">-m</code> option, <code class="Cm">got
@@ -1061,10 +1299,10 @@
     <p class="Pp">The options for <code class="Cm">got rebase</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#a"><code class="Fl" id="a">-a</code></a></dt>
+      <dt><a class="permalink" href="#a_3"><code class="Fl" id="a_3">-a</code></a></dt>
       <dd>Abort an interrupted rebase operation. If this option is used, no
           other command-line arguments are allowed.</dd>
-      <dt><a class="permalink" href="#c_8"><code class="Fl" id="c_8">-c</code></a></dt>
+      <dt><a class="permalink" href="#c_9"><code class="Fl" id="c_9">-c</code></a></dt>
       <dd>Continue an interrupted rebase operation. If this option is used, no
           other command-line arguments are allowed.</dd>
     </dl>
@@ -1195,10 +1433,10 @@
     <p class="Pp">The options for <code class="Cm">got histedit</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#a_2"><code class="Fl" id="a_2">-a</code></a></dt>
+      <dt><a class="permalink" href="#a_4"><code class="Fl" id="a_4">-a</code></a></dt>
       <dd>Abort an interrupted histedit operation. If this option is used, no
           other command-line arguments are allowed.</dd>
-      <dt><a class="permalink" href="#c_9"><code class="Fl" id="c_9">-c</code></a></dt>
+      <dt><a class="permalink" href="#c_10"><code class="Fl" id="c_10">-c</code></a></dt>
       <dd>Continue an interrupted histedit operation. If this option is used, no
           other command-line arguments are allowed.</dd>
       <dt><a class="permalink" href="#F_2"><code class="Fl" id="F_2">-F</code></a>
@@ -1206,7 +1444,7 @@
       <dd>Use the specified <var class="Ar">histedit-script</var> instead of
           opening a temporary file in an editor where a histedit script can be
           written.</dd>
-      <dt><a class="permalink" href="#m_4"><code class="Fl" id="m_4">-m</code></a></dt>
+      <dt><a class="permalink" href="#m_5"><code class="Fl" id="m_5">-m</code></a></dt>
       <dd>Edit log messages only. This option is a quick equivalent to a
           histedit script which edits only log messages but otherwise leaves
           every picked commit as-is. The <code class="Fl">-m</code> option can
@@ -1312,7 +1550,7 @@
     <p class="Pp">The options for <code class="Cm">got stage</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#l_5"><code class="Fl" id="l_5">-l</code></a></dt>
+      <dt><a class="permalink" href="#l_7"><code class="Fl" id="l_7">-l</code></a></dt>
       <dd>Instead of staging new changes, list paths which are already staged,
           along with the IDs of staged blob objects and stage status codes. If
           paths were provided in the command line show the staged paths among
@@ -1425,7 +1663,7 @@
     <p class="Pp">The options for <code class="Cm">got cat</code> are as
         follows:</p>
     <dl class="Bl-tag">
-      <dt><a class="permalink" href="#c_10"><code class="Fl" id="c_10">-c</code></a>
+      <dt><a class="permalink" href="#c_11"><code class="Fl" id="c_11">-c</code></a>
         <var class="Ar">commit</var></dt>
       <dd>Look up paths in the specified <var class="Ar">commit</var>. If this
           option is not used, paths are looked up in the commit resolved via the
@@ -1433,7 +1671,7 @@
           hash or an existing reference or tag name which will be resolved to a
           commit ID. An abbreviated hash argument will be expanded to a full
           SHA1 hash automatically, provided the abbreviation is unique.</dd>
-      <dt><a class="permalink" href="#r_9"><code class="Fl" id="r_9">-r</code></a>
+      <dt><a class="permalink" href="#r_10"><code class="Fl" id="r_10">-r</code></a>
         <var class="Ar">repository-path</var></dt>
       <dd>Use the repository at the specified path. If not specified, assume the
           repository is located at or above the current working directory. If
@@ -1490,10 +1728,14 @@
 <section class="Sh">
 <h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
 <p class="Pp">Clone an existing Git repository for use with
-    <code class="Nm">got</code>. This step currently requires
-    <a class="Xr">git(1)</a>:</p>
+    <code class="Nm">got</code>.</p>
 <p class="Pp"></p>
 <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/</code></div>
+<div class="Bd Bd-indent"><code class="Li">$ got clone
+  ssh://git@github.com/openbsd/src.git</code></div>
+<p class="Pp">Use of HTTP URLs currently requires <a class="Xr">git(1)</a>:</p>
+<p class="Pp"></p>
+<div class="Bd Bd-indent"><code class="Li">$ cd /var/git/</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ git clone --bare
   https://github.com/openbsd/src.git</code></div>
 <p class="Pp">Alternatively, for quick and dirty local testing of
@@ -1587,12 +1829,26 @@
   :-)</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ got backout
   unified-buffer-cache</code></div>
-<p class="Pp">Fetch new upstream commits into the local repository's master
-    branch. This step currently requires <a class="Xr">git(1)</a>:</p>
+<p class="Pp">Fetch new upstream commits into the local repository's
+    &#x201C;origin/master&#x201D; branch:</p>
 <p class="Pp"></p>
+<div class="Bd Bd-indent"><code class="Li">$ cd /usr/src</code></div>
+<div class="Bd Bd-indent"><code class="Li">$ got fetch</code></div>
+<p class="Pp">In a repository created with a HTTP URL and <code class="Cm">git
+    clone --bare</code> the <a class="Xr">git-fetch(1)</a> command must be used
+    instead:</p>
+<p class="Pp"></p>
 <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/src.git</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ git fetch origin
-  master:master</code></div>
+  master:refs/remotes/origin/master</code></div>
+<p class="Pp">Rebase the local &#x201C;master&#x201D; branch to merge the new
+    changes that are now visible on the &#x201C;origin/master&#x201D;
+  branch:</p>
+<p class="Pp"></p>
+<div class="Bd Bd-indent"><code class="Li">$ cd /usr/src</code></div>
+<div class="Bd Bd-indent"><code class="Li">$ got update -b
+  origin/master</code></div>
+<div class="Bd Bd-indent"><code class="Li">$ got rebase master</code></div>
 <p class="Pp">Rebase the &#x201C;unified-buffer-cache&#x201D; branch on top of
     the new head commit of the &#x201C;master&#x201D; branch.</p>
 <p class="Pp"></p>
@@ -1612,21 +1868,47 @@
   unified-buffer-cache</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ got update -c master</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ got histedit</code></div>
-<p class="Pp">Additional steps are necessary if local changes need to be pushed
-    back to the remote repository, which currently requires <code class="Cm">git
-    fetch</code> and <code class="Cm">git push</code>. Before working against
-    existing branches in a repository cloned with &#x201C;git clone
-    --bare&#x201D;, a Git &#x201C;refspec&#x201D; must be configured to map all
-    references in the remote repository into the &#x201C;refs/remotes&#x201D;
-    namespace of the local repository. This can achieved by setting Git's
-    <span class="Pa">remote.origin.fetch</span> configuration variable to the
-    value &#x201C;+refs/heads/*:refs/remotes/origin/*&#x201D; with the
+<p class="Pp">In order to merge changes committed to the
+    &#x201C;unified-buffer-cache&#x201D; branch back into the
+    &#x201C;master&#x201D; branch, the &#x201C;unified-buffer-cache&#x201D;
+    branch must first be rebased onto the &#x201C;master&#x201D; branch:</p>
+<p class="Pp"></p>
+<div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
+<div class="Bd Bd-indent"><code class="Li">$ got rebase
+  unified-buffer-cache</code></div>
+<p class="Pp">Changes on the &#x201C;unified-buffer-cache&#x201D; branch can now
+    be made visible on the &#x201C;master&#x201D; branch with
+    <code class="Cm">got integrate</code>. Because the rebase operation switched
+    the work tree to the &#x201C;unified-buffer-cache&#x201D; branch, the work
+    tree must be switched back to the &#x201C;master&#x201D; branch before the
+    &#x201C;unified-buffer-cache&#x201D; branch can be integrated into
+    &#x201C;master&#x201D;:</p>
+<p class="Pp"></p>
+<div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
+<div class="Bd Bd-indent"><code class="Li">$ got integrate
+  unified-buffer-cache</code></div>
+<p class="Pp">Additional steps may be necessary if local changes need to be
+    pushed back to the remote repository, which currently requires
+    <code class="Cm">git push</code>. Before working against existing branches
+    in a repository cloned with <code class="Cm">git clone --bare</code> instead
+    of <code class="Cm">got clone</code>, a Git &#x201C;refspec&#x201D; must be
+    configured to map all references in the remote repository into the
+    &#x201C;refs/remotes&#x201D; namespace of the local repository. This can
+    achieved by setting Git's <span class="Pa">remote.origin.fetch</span>
+    configuration variable to the value
+    &#x201C;+refs/heads/*:refs/remotes/origin/*&#x201D; with the
     <code class="Cm">git config</code> command:</p>
 <p class="Pp"></p>
 <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/repo</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ git config remote.origin.fetch
   '+refs/heads/*:refs/remotes/origin/*'</code></div>
-<p class="Pp">Alternatively, the following <span class="Pa">fetch</span>
+<p class="Pp">Additionally, the &#x201C;mirror&#x201D; option must be
+  disabled:</p>
+<p class="Pp"></p>
+<div class="Bd Bd-indent"><code class="Li">$ cd /var/git/repo</code></div>
+<div class="Bd Bd-indent"><code class="Li">$ git config remote.origin.mirror
+  false</code></div>
+<p class="Pp">Alternatively, the following <a class="Xr">git-fetch(1)</a>
     configuration item can be added manually to the Git repository's
     <span class="Pa">config</span> file:</p>
 <p class="Pp"></p>
@@ -1634,13 +1916,15 @@
 <div class="Bd Bd-indent"><code class="Li">url = ...</code></div>
 <div class="Bd Bd-indent"><code class="Li">fetch =
   +refs/heads/*:refs/remotes/origin/*</code></div>
+<div class="Bd Bd-indent"><code class="Li">mirror = false</code></div>
 <p class="Pp">This configuration leaves the local repository's
     &#x201C;refs/heads&#x201D; namespace free for use by local branches checked
     out with <code class="Cm">got checkout</code> and, if needed, created with
     <code class="Cm">got branch</code>.</p>
-<p class="Pp">Branches in the &#x201C;remotes/origin&#x201D; namespace can be
-    updated with incoming changes from the remote repository with
-    <code class="Cm">git fetch</code>:</p>
+<p class="Pp">Branches in the &#x201C;remotes/origin&#x201D; namespace can now
+    be updated with incoming changes from the remote repository with
+    <code class="Cm">got fetch</code> or <a class="Xr">git-fetch(1)</a> without
+    extra command line arguments:</p>
 <p class="Pp"></p>
 <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/repo</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ git fetch</code></div>
@@ -1664,25 +1948,6 @@
 <p class="Pp"></p>
 <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/repo</code></div>
 <div class="Bd Bd-indent"><code class="Li">$ git push origin master</code></div>
-<p class="Pp">In order to merge changes committed to the
-    &#x201C;unified-buffer-cache&#x201D; branch back into the
-    &#x201C;master&#x201D; branch, the &#x201C;unified-buffer-cache&#x201D;
-    branch must first be rebased onto the &#x201C;master&#x201D; branch:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
-<div class="Bd Bd-indent"><code class="Li">$ got rebase
-  unified-buffer-cache</code></div>
-<p class="Pp">Changes on the &#x201C;unified-buffer-cache&#x201D; branch can now
-    be made visible on the &#x201C;master&#x201D; branch with
-    <code class="Cm">got integrate</code>. Because the rebase operation switched
-    the work tree to the &#x201C;unified-buffer-cache&#x201D; branch, the work
-    tree must be switched back to the &#x201C;master&#x201D; branch before the
-    &#x201C;unified-buffer-cache&#x201D; branch can be integrated into
-    &#x201C;master&#x201D;:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
-<div class="Bd Bd-indent"><code class="Li">$ got integrate
-  unified-buffer-cache</code></div>
 </section>
 <section class="Sh">
 <h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
@@ -1699,7 +1964,10 @@
     &lt;<a class="Mt" href="mailto:mpi@openbsd.org">mpi@openbsd.org</a>&gt;
   <br/>
   <span class="An">Joshua Stein</span>
-    &lt;<a class="Mt" href="mailto:jcs@openbsd.org">jcs@openbsd.org</a>&gt;</p>
+    &lt;<a class="Mt" href="mailto:jcs@openbsd.org">jcs@openbsd.org</a>&gt;
+  <br/>
+  <span class="An">Ori Bernstein</span>
+    &lt;<a class="Mt" href="mailto:ori@openbsd.org">ori@openbsd.org</a>&gt;</p>
 </section>
 <section class="Sh">
 <h1 class="Sh" id="CAVEATS"><a class="permalink" href="#CAVEATS">CAVEATS</a></h1>
@@ -1712,7 +1980,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">March 6, 2020</td>
+    <td class="foot-date">March 23, 2020</td>
     <td class="foot-os">OpenBSD 6.6</td>
   </tr>
 </table>
blob - cffd0d4c80da4b17b91cbe85b70b9562018e0761
blob + 7ac78c671f256ce8ed9237aa5879e7137892824c
--- gotweb.8.html
+++ gotweb.8.html
@@ -89,8 +89,9 @@
       published by <code class="Nm">gotweb</code> is
       <span class="Pa">/var/www/got/public</span>.</li>
   <li>Git repositories served by <code class="Nm">gotweb</code> should be kept
-      up-to-date with a mechanism such as <a class="Xr">git-fetch(1)</a> or
-      <a class="Xr">rsync(1)</a>, scheduled by <a class="Xr">cron(8)</a>.</li>
+      up-to-date with a mechanism such as <code class="Cm">got fetch</code>,
+      <a class="Xr">git-fetch(1)</a>, or <a class="Xr">rsync(1)</a>, scheduled
+      by <a class="Xr">cron(8)</a>.</li>
 </ol>
 </section>
 <section class="Sh">
@@ -156,7 +157,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">March 6, 2020</td>
+    <td class="foot-date">March 23, 2020</td>
     <td class="foot-os">OpenBSD 6.6</td>
   </tr>
 </table>
blob - 99bc2fce7216b74d4231b5314576bb8187276fb0
blob + 025fe59e9a052b1f7cd7f2ff2aa8bbeb39682081
--- tog.1.html
+++ tog.1.html
@@ -460,7 +460,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">March 6, 2020</td>
+    <td class="foot-date">March 23, 2020</td>
     <td class="foot-os">OpenBSD 6.6</td>
   </tr>
 </table>