Autogenerated HTML docs for v1.2.4-g9201
authorJunio C Hamano <junio@hera.kernel.org>
Sun, 5 Mar 2006 10:51:14 +0000 (10:51 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Sun, 5 Mar 2006 10:51:14 +0000 (10:51 +0000)
18 files changed:
git-checkout-index.html
git-checkout-index.txt
git-cvsserver.html
git-cvsserver.txt
git-pack-objects.html
git-pack-objects.txt
git-pack-redundant.html
git-pack-redundant.txt
git-prune-packed.html
git-prune-packed.txt
git-repack.html
git-repack.txt
git-rev-list.html
git-rev-list.txt
git-tools.html [new file with mode: 0644]
git-tools.txt [new file with mode: 0644]
tutorial.html
tutorial.txt

index 0036534..5b2d6d4 100644 (file)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.1" />\r
+<meta name="generator" content="AsciiDoc 7.0.2" />\r
 <style type="text/css">\r
 /* Debug borders */\r
 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
@@ -274,7 +274,9 @@ git-checkout-index(1) Manual Page
 <div class="sectionbody">\r
 <div class="verseblock">\r
 <div class="content"><em>git-checkout-index</em> [-u] [-q] [-a] [-f] [-n] [--prefix=&lt;string&gt;]\r
-                   [--stage=&lt;number&gt;] [--] &lt;file&gt;&#8230;</div></div>\r
+                   [--stage=&lt;number&gt;]\r
+                   [-z] [--stdin]\r
+                   [--] [&lt;file&gt;]*</div></div>\r
 </div>\r
 <h2>DESCRIPTION</h2>\r
 <div class="sectionbody">\r
@@ -346,6 +348,25 @@ git-checkout-index(1) Manual Page
 </p>\r
 </dd>\r
 <dt>\r
+--stdin\r
+</dt>\r
+<dd>\r
+<p>\r
+        Instead of taking list of paths from the command line,\r
+        read list of paths from the standard input.  Paths are\r
+        separated by LF (i.e. one path per line) by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+-z\r
+</dt>\r
+<dd>\r
+<p>\r
+        Only meaningful with <tt>--stdin</tt>; paths are separated with\r
+        NUL character instead of LF.\r
+</p>\r
+</dd>\r
+<dt>\r
 &#8212;\r
 </dt>\r
 <dd>\r
@@ -367,7 +388,12 @@ supposed to be able to do:</p>
 </div></div>\r
 <p>which will force all existing <tt>*.h</tt> files to be replaced with their\r
 cached copies. If an empty command line implied "all", then this would\r
-force-refresh everything in the index, which was not the point.</p>\r
+force-refresh everything in the index, which was not the point.  But\r
+since git-checkout-index accepts --stdin it would be faster to use:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ find . -name '*.h' -print0 | git-checkout-index -f -z --stdin</tt></pre>\r
+</div></div>\r
 <p>The <tt>--</tt> is just a good idea when you know the rest will be filenames;\r
 it will prevent problems with a filename of, for example,  <tt>-a</tt>.\r
 Using <tt>--</tt> is probably a good policy in scripts.</p>\r
@@ -431,7 +457,7 @@ Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 06-Jan-2006 17:12:07 PDT\r
+Last updated 05-Mar-2006 01:54:46 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 2a1e526..b0b6588 100644 (file)
@@ -10,7 +10,9 @@ SYNOPSIS
 --------
 [verse]
 'git-checkout-index' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
-                  [--stage=<number>] [--] <file>...
+                  [--stage=<number>]
+                  [-z] [--stdin]
+                  [--] [<file>]\*
 
 DESCRIPTION
 -----------
@@ -45,6 +47,15 @@ OPTIONS
        Instead of checking out unmerged entries, copy out the
        files from named stage.  <number> must be between 1 and 3.
 
+--stdin::
+       Instead of taking list of paths from the command line,
+       read list of paths from the standard input.  Paths are
+       separated by LF (i.e. one path per line) by default.
+
+-z::
+       Only meaningful with `--stdin`; paths are separated with
+       NUL character instead of LF.
+
 --::
        Do not interpret any more arguments as options.
 
@@ -64,7 +75,12 @@ $ find . -name '*.h' -print0 | xargs -0 git-checkout-index -f --
 
 which will force all existing `*.h` files to be replaced with their
 cached copies. If an empty command line implied "all", then this would
-force-refresh everything in the index, which was not the point.
+force-refresh everything in the index, which was not the point.  But
+since git-checkout-index accepts --stdin it would be faster to use:
+
+----------------
+$ find . -name '*.h' -print0 | git-checkout-index -f -z --stdin
+----------------
 
 The `--` is just a good idea when you know the rest will be filenames;
 it will prevent problems with a filename of, for example,  `-a`.
index 06ac3e7..500cd5e 100644 (file)
@@ -287,15 +287,37 @@ plugin. Most functionality works fine with both of these clients.</p>
 </div>\r
 <h2>LIMITATIONS</h2>\r
 <div class="sectionbody">\r
-<p>Currently gitcvs only works over ssh connections.</p>\r
+<p>Currently cvsserver works over SSH connections for read/write clients, and\r
+over pserver for anonymous CVS access.</p>\r
+<p>CVS clients cannot tag, branch or perform GIT merges.</p>\r
 </div>\r
 <h2>INSTALLATION</h2>\r
 <div class="sectionbody">\r
 <ol>\r
 <li>\r
 <p>\r
-Put server.pl somewhere useful on the same machine that is hosting your git repos\r
+If you are going to offer anonymous CVS access via pserver, add a line in\r
+   /etc/inetd.conf like\r
 </p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>cvspserver stream tcp nowait nobody git-cvsserver pserver</tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>Note: In some cases, you need to pass the 'pserver' argument twice for\r
+git-cvsserver to see it. So the line would look like</tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>cvspserver stream tcp nowait nobody git-cvsserver pserver pserver</tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>No special setup is needed for SSH access, other than having GIT tools\r
+in the PATH. If you have clients that do not accept the CVS_SERVER\r
+env variable, you can rename git-cvsserver to cvs.</tt></pre>\r
+</div></div>\r
 </li>\r
 <li>\r
 <p>\r
@@ -306,29 +328,52 @@ For each repo that you want accessible from CVS you need to edit config in
 <div class="content">\r
 <pre><tt>[gitcvs]\r
      enabled=1\r
+     # optional for debugging\r
      logfile=/path/to/logfile</tt></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>n.b. you need to ensure each user that is going to invoke server.pl has\r
-write access to the log file.</tt></pre>\r
+<pre><tt>Note: you need to ensure each user that is going to invoke git-cvsserver has\r
+write access to the log file and to the git repository. When offering anon\r
+access via pserver, this means that the nobody user should have write access\r
+to at least the sqlite database at the root of the repository.</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+On the client machine you need to set the following variables.\r
+   CVSROOT should be set as per normal, but the directory should point at the\r
+   appropriate git repo. For example:\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>For SSH access, CVS_SERVER should be set to git-cvsserver</tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>Example:</tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>export CVSROOT=:ext:user@server:/var/git/project.git\r
+export CVS_SERVER=git-cvsserver</tt></pre>\r
 </div></div>\r
 </li>\r
 <li>\r
 <p>\r
-On each client machine you need to set the following variables.\r
-     CVSROOT should be set as per normal, but the directory should point at the\r
-             appropriate git repo.\r
-     CVS_SERVER should be set to the server.pl script that has been put on the\r
-                remote machine.\r
+For SSH clients that will make commits, make sure their .bashrc file\r
+   sets the GIT_AUTHOR and GIT_COMMITTER variables.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Clients should now be able to check out modules (where modules are the names\r
-   of branches in git).\r
-     $ cvs co -d mylocaldir master\r
+Clients should now be able to check out the project. Use the CVS <em>module</em>\r
+   name to indicate what GIT <em>head</em> you want to check out. Example:\r
 </p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>cvs co -d project-master master</tt></pre>\r
+</div></div>\r
 </li>\r
 </ol>\r
 </div>\r
@@ -338,30 +383,38 @@ Clients should now be able to check out modules (where modules are the names
 <ol>\r
 <li>\r
 <p>\r
-Create a new project from CVS checkout, giving it repository and module\r
+Select "Create a new project -&gt; From CVS checkout"\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Context Menu-&gt;Team-&gt;Share Project&#8230;\r
+Create a new location. See the notes below for details on how to choose the\r
+   right protocol.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Enter the repository and module information again and click Finish\r
+Browse the <em>modules</em> available. It will give you a list of the heads in\r
+   the repository. You will not be able to browse the tree from there. Only\r
+   the heads.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The Synchronize view appears. Untick  "launch commit wizard" to avoid\r
-committing the .project file, and select HEAD as the tag to synchronize to.\r
-Update all incoming changes.\r
+Pick <em>HEAD</em> when it asks what branch/tag to check out. Untick the\r
+   "launch commit wizard" to avoid committing the .project file.\r
 </p>\r
 </li>\r
 </ol>\r
-<p>Note that most versions of Eclipse ignore CVS_SERVER (which you can set in\r
-the Preferences-&gt;Team-&gt;CVS-&gt;ExtConnection pane), so you may have to\r
-rename, alias or symlink git-cvsserver to <em>cvs</em> on the server.</p>\r
+<p>Protocol notes: If you are using anonymous acces via pserver, just select that.\r
+Those using SSH access should choose the <em>ext</em> protocol, and configure <em>ext</em>\r
+access on the Preferences-&gt;Team-&gt;CVS-&gt;ExtConnection pane. Set CVS_SERVER to\r
+<em>git-cvsserver</em>. Not that password support is not good when using <em>ext</em>,\r
+you will definitely want to have SSH keys setup.</p>\r
+<p>Alternatively, you can just use the non-standard extssh protocol that Eclipse\r
+offer. In that case CVS_SERVER is ignored, and you will have to replace\r
+the cvs utility on the server with git-cvsserver or manipulate your .bashrc\r
+so that calling <em>cvs</em> effectively calls git-cvsserver.</p>\r
 </div>\r
 <h2>Clients known to work</h2>\r
 <div class="sectionbody">\r
@@ -393,7 +446,7 @@ No keyword expansion or newline munging is supported.</p>
 </div>\r
 <h2>Documentation</h2>\r
 <div class="sectionbody">\r
-<p>Documentation by Martyn Smith &lt;martyn@catalyst.net.nz&gt; and Martin Langhoff &lt;martin@catalyst.net.nz&gt;Matthias Urlichs &lt;smurf@smurf.noris.de&gt;.</p>\r
+<p>Documentation by Martyn Smith &lt;martyn@catalyst.net.nz&gt; and Martin Langhoff &lt;martin@catalyst.net.nz&gt; Matthias Urlichs &lt;smurf@smurf.noris.de&gt;.</p>\r
 </div>\r
 <h2>GIT</h2>\r
 <div class="sectionbody">\r
@@ -401,7 +454,7 @@ No keyword expansion or newline munging is supported.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 01-Mar-2006 12:05:10 UTC\r
+Last updated 05-Mar-2006 10:51:09 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 19c9c51..4dc13c3 100644 (file)
@@ -5,14 +5,12 @@ NAME
 ----
 git-cvsserver - A CVS server emulator for git
 
-
 SYNOPSIS
 --------
 [verse]
 export CVS_SERVER=git-cvsserver
 'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>
 
-
 DESCRIPTION
 -----------
 
@@ -27,48 +25,85 @@ plugin. Most functionality works fine with both of these clients.
 
 LIMITATIONS
 -----------
-Currently gitcvs only works over ssh connections.
 
+Currently cvsserver works over SSH connections for read/write clients, and
+over pserver for anonymous CVS access.
+
+CVS clients cannot tag, branch or perform GIT merges.
 
 INSTALLATION
 ------------
-1. Put server.pl somewhere useful on the same machine that is hosting your git repos
+
+1. If you are going to offer anonymous CVS access via pserver, add a line in
+   /etc/inetd.conf like
+
+   cvspserver stream tcp nowait nobody git-cvsserver pserver
+
+   Note: In some cases, you need to pass the 'pserver' argument twice for
+   git-cvsserver to see it. So the line would look like
+
+   cvspserver stream tcp nowait nobody git-cvsserver pserver pserver
+
+   No special setup is needed for SSH access, other than having GIT tools
+   in the PATH. If you have clients that do not accept the CVS_SERVER
+   env variable, you can rename git-cvsserver to cvs.
 
 2. For each repo that you want accessible from CVS you need to edit config in
    the repo and add the following section.
 
    [gitcvs]
         enabled=1
+        # optional for debugging
         logfile=/path/to/logfile
 
-   n.b. you need to ensure each user that is going to invoke server.pl has
-   write access to the log file.
+   Note: you need to ensure each user that is going to invoke git-cvsserver has
+   write access to the log file and to the git repository. When offering anon
+   access via pserver, this means that the nobody user should have write access
+   to at least the sqlite database at the root of the repository.
+
+3. On the client machine you need to set the following variables.
+   CVSROOT should be set as per normal, but the directory should point at the
+   appropriate git repo. For example:
+
+   For SSH access, CVS_SERVER should be set to git-cvsserver
+
+   Example:
 
-5. On each client machine you need to set the following variables.
-     CVSROOT should be set as per normal, but the directory should point at the
-             appropriate git repo.
-     CVS_SERVER should be set to the server.pl script that has been put on the
-                remote machine.
+     export CVSROOT=:ext:user@server:/var/git/project.git
+     export CVS_SERVER=git-cvsserver
 
-6. Clients should now be able to check out modules (where modules are the names
-   of branches in git).
-     $ cvs co -d mylocaldir master
+4. For SSH clients that will make commits, make sure their .bashrc file
+   sets the GIT_AUTHOR and GIT_COMMITTER variables.
+
+5. Clients should now be able to check out the project. Use the CVS 'module'
+   name to indicate what GIT 'head' you want to check out. Example:
+
+     cvs co -d project-master master
 
 Eclipse CVS Client Notes
 ------------------------
 
 To get a checkout with the Eclipse CVS client:
 
-1. Create a new project from CVS checkout, giving it repository and module
-2. Context Menu->Team->Share Project...
-3. Enter the repository and module information again and click Finish
-4. The Synchronize view appears. Untick  "launch commit wizard" to avoid
-committing the .project file, and select HEAD as the tag to synchronize to.
-Update all incoming changes.
-
-Note that most versions of Eclipse ignore CVS_SERVER (which you can set in
-the Preferences->Team->CVS->ExtConnection pane), so you may have to
-rename, alias or symlink git-cvsserver to 'cvs' on the server.
+1. Select "Create a new project -> From CVS checkout"
+2. Create a new location. See the notes below for details on how to choose the
+   right protocol.
+3. Browse the 'modules' available. It will give you a list of the heads in
+   the repository. You will not be able to browse the tree from there. Only
+   the heads.
+4. Pick 'HEAD' when it asks what branch/tag to check out. Untick the
+   "launch commit wizard" to avoid committing the .project file.
+
+Protocol notes: If you are using anonymous acces via pserver, just select that.
+Those using SSH access should choose the 'ext' protocol, and configure 'ext'
+access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to
+'git-cvsserver'. Not that password support is not good when using 'ext',
+you will definitely want to have SSH keys setup.
+
+Alternatively, you can just use the non-standard extssh protocol that Eclipse
+offer. In that case CVS_SERVER is ignored, and you will have to replace
+the cvs utility on the server with git-cvsserver or manipulate your .bashrc
+so that calling 'cvs' effectively calls git-cvsserver.
 
 Clients known to work
 ---------------------
@@ -106,7 +141,7 @@ Authors: Martyn Smith    <martyn@catalyst.net.nz>
 
 Documentation
 --------------
-Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz>Matthias Urlichs <smurf@smurf.noris.de>.
+Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz> Matthias Urlichs <smurf@smurf.noris.de>.
 
 GIT
 ---
index b54eb91..882fc82 100644 (file)
@@ -401,7 +401,7 @@ base-name
 <div class="sectionbody">\r
 <p>Documentation by Junio C Hamano</p>\r
 </div>\r
-<h2>See-Also</h2>\r
+<h2>See Also</h2>\r
 <div class="sectionbody">\r
 <p><a href="git-repack.html">git-repack(1)</a>\r
 <a href="git-prune-packed.html">git-prune-packed(1)</a></p>\r
@@ -412,7 +412,7 @@ base-name
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 22-Feb-2006 10:44:47 UTC\r
+Last updated 05-Mar-2006 09:02:48 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 4cb2e83..567dabf 100644 (file)
@@ -101,7 +101,7 @@ Documentation
 -------------
 Documentation by Junio C Hamano
 
-See-Also
+See Also
 --------
 gitlink:git-repack[1]
 gitlink:git-prune-packed[1]
index e6dd0d3..410dea9 100644 (file)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.1" />\r
+<meta name="generator" content="AsciiDoc 7.0.2" />\r
 <style type="text/css">\r
 /* Debug borders */\r
 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
@@ -323,7 +323,7 @@ objects.</p>
 <div class="sectionbody">\r
 <p>Documentation by Lukas Sandström &lt;lukass@etek.chalmers.se&gt;</p>\r
 </div>\r
-<h2>See-Also</h2>\r
+<h2>See Also</h2>\r
 <div class="sectionbody">\r
 <p><a href="git-pack-objects.html">git-pack-objects(1)</a>\r
 <a href="git-repack.html">git-repack(1)</a>\r
@@ -335,7 +335,7 @@ objects.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 27-Dec-2005 00:16:25 PDT\r
+Last updated 05-Mar-2006 09:02:48 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 9fe86ae..2f4cc46 100644 (file)
@@ -46,7 +46,7 @@ Documentation
 --------------
 Documentation by Lukas Sandström <lukass@etek.chalmers.se>
 
-See-Also
+See Also
 --------
 gitlink:git-pack-objects[1]
 gitlink:git-repack[1]
index 8fa5865..59362a2 100644 (file)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.1" />\r
+<meta name="generator" content="AsciiDoc 7.0.2" />\r
 <style type="text/css">\r
 /* Debug borders */\r
 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
@@ -306,7 +306,7 @@ disk storage, etc.</p>
 <div class="sectionbody">\r
 <p>Documentation by Ryan Anderson &lt;ryan@michonline.com&gt;</p>\r
 </div>\r
-<h2>See-Also</h2>\r
+<h2>See Also</h2>\r
 <div class="sectionbody">\r
 <p><a href="git-pack-objects.html">git-pack-objects(1)</a>\r
 <a href="git-repack.html">git-repack(1)</a></p>\r
@@ -317,7 +317,7 @@ disk storage, etc.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 27-Dec-2005 00:16:28 PDT\r
+Last updated 05-Mar-2006 09:02:49 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 37c53a9..2348826 100644 (file)
@@ -40,7 +40,7 @@ Documentation
 --------------
 Documentation by Ryan Anderson <ryan@michonline.com>
 
-See-Also
+See Also
 --------
 gitlink:git-pack-objects[1]
 gitlink:git-repack[1]
index 1fada77..0081cb1 100644 (file)
@@ -355,7 +355,7 @@ engines, disk storage, etc.</p>
 <div class="sectionbody">\r
 <p>Documentation by Ryan Anderson &lt;ryan@michonline.com&gt;</p>\r
 </div>\r
-<h2>See-Also</h2>\r
+<h2>See Also</h2>\r
 <div class="sectionbody">\r
 <p><a href="git-pack-objects.html">git-pack-objects(1)</a>\r
 <a href="git-prune-packed.html">git-prune-packed(1)</a></p>\r
@@ -366,7 +366,7 @@ engines, disk storage, etc.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 22-Feb-2006 10:44:48 UTC\r
+Last updated 05-Mar-2006 09:02:49 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 6c0f792..d2f9a44 100644 (file)
@@ -63,7 +63,7 @@ Documentation
 --------------
 Documentation by Ryan Anderson <ryan@michonline.com>
 
-See-Also
+See Also
 --------
 gitlink:git-pack-objects[1]
 gitlink:git-prune-packed[1]
index b1a6bbb..0293629 100644 (file)
@@ -280,7 +280,7 @@ git-rev-list(1) Manual Page
              [ --no-merges ]\r
              [ --remove-empty ]\r
              [ --all ]\r
-             [ [ --merge-order [ --show-breaks ] ] | [ --topo-order ] ]\r
+             [ --topo-order ]\r
              [ --parents ]\r
              [ [--objects | --objects-edge] [ --unpacked ] ]\r
              [ --pretty | --header ]\r
@@ -424,67 +424,11 @@ short-hand for ^&lt;commit1&gt; &lt;commit2&gt;.</p>
         before their parents).\r
 </p>\r
 </dd>\r
-<dt>\r
---merge-order\r
-</dt>\r
-<dd>\r
-<p>\r
-        When specified the commit history is decomposed into a unique\r
-        sequence of minimal, non-linear epochs and maximal, linear epochs.\r
-        Non-linear epochs are then linearised by sorting them into merge\r
-        order, which is described below.\r
-</p>\r
-<p>Maximal, linear epochs correspond to periods of sequential development.\r
-Minimal, non-linear epochs correspond to periods of divergent development\r
-followed by a converging merge. The theory of epochs is described in more\r
-detail at\r
-<a href="http://blackcubes.dyndns.org/epoch/">http://blackcubes.dyndns.org/epoch/</a>.</p>\r
-<p>The merge order for a non-linear epoch is defined as a linearisation for which\r
-the following invariants are true:</p>\r
-<ol>\r
-<li>\r
-<p>\r
-if a commit P is reachable from commit N, commit P sorts after commit N\r
-       in the linearised list.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-if Pi and Pj are any two parents of a merge M (with i &lt; j), then any\r
-       commit N, such that N is reachable from Pj but not reachable from Pi,\r
-       sorts before all commits reachable from Pi.\r
-</p>\r
-<p>Invariant 1 states that later commits appear before earlier commits they are\r
-derived from.</p>\r
-<p>Invariant 2 states that commits unique to "later" parents in a merge, appear\r
-before all commits from "earlier" parents of a merge.</p>\r
-</li>\r
-</ol>\r
-</dd>\r
-<dt>\r
---show-breaks\r
-</dt>\r
-<dd>\r
-<p>\r
-        Each item of the list is output with a 2-character prefix consisting\r
-        of one of: (|), (^), (=) followed by a space.\r
-</p>\r
-<p>Commits marked with (=) represent the boundaries of minimal, non-linear epochs\r
-and correspond either to the start of a period of divergent development or to\r
-the end of such a period.</p>\r
-<p>Commits marked with (|) are direct parents of commits immediately preceding\r
-the marked commit in the list.</p>\r
-<p>Commits marked with (^) are not parents of the immediately preceding commit.\r
-These "breaks" represent necessary discontinuities implied by trying to\r
-represent an arbitrary DAG in a linear form.</p>\r
-<p><tt>--show-breaks</tt> is only valid if <tt>--merge-order</tt> is also specified.</p>\r
-</dd>\r
 </dl>\r
 </div>\r
 <h2>Author</h2>\r
 <div class="sectionbody">\r
 <p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;</p>\r
-<p>Original <strong>--merge-order</strong> logic by Jon Seymour &lt;jon.seymour@gmail.com&gt;</p>\r
 </div>\r
 <h2>Documentation</h2>\r
 <div class="sectionbody">\r
@@ -496,7 +440,7 @@ represent an arbitrary DAG in a linear form.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 02-Mar-2006 09:14:49 UTC\r
+Last updated 04-Mar-2006 22:16:33 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 27f18e2..8255ae1 100644 (file)
@@ -16,7 +16,7 @@ SYNOPSIS
             [ \--no-merges ]
             [ \--remove-empty ]
             [ \--all ]
-            [ [ \--merge-order [ \--show-breaks ] ] | [ \--topo-order ] ]
+            [ \--topo-order ]
             [ \--parents ]
             [ [\--objects | \--objects-edge] [ \--unpacked ] ]
             [ \--pretty | \--header ]
@@ -102,57 +102,10 @@ OPTIONS
        topological order (i.e. descendant commits are shown
        before their parents).
 
---merge-order::
-       When specified the commit history is decomposed into a unique
-       sequence of minimal, non-linear epochs and maximal, linear epochs.
-       Non-linear epochs are then linearised by sorting them into merge
-       order, which is described below.
-+
-Maximal, linear epochs correspond to periods of sequential development.
-Minimal, non-linear epochs correspond to periods of divergent development
-followed by a converging merge. The theory of epochs is described in more
-detail at
-link:http://blackcubes.dyndns.org/epoch/[http://blackcubes.dyndns.org/epoch/].
-+
-The merge order for a non-linear epoch is defined as a linearisation for which
-the following invariants are true:
-+
-    1. if a commit P is reachable from commit N, commit P sorts after commit N
-       in the linearised list.
-    2. if Pi and Pj are any two parents of a merge M (with i < j), then any
-       commit N, such that N is reachable from Pj but not reachable from Pi,
-       sorts before all commits reachable from Pi.
-+
-Invariant 1 states that later commits appear before earlier commits they are
-derived from.
-+
-Invariant 2 states that commits unique to "later" parents in a merge, appear
-before all commits from "earlier" parents of a merge.
-
---show-breaks::
-       Each item of the list is output with a 2-character prefix consisting
-       of one of: (|), (^), (=) followed by a space.
-+
-Commits marked with (=) represent the boundaries of minimal, non-linear epochs
-and correspond either to the start of a period of divergent development or to
-the end of such a period.
-+
-Commits marked with (|) are direct parents of commits immediately preceding
-the marked commit in the list.
-+
-Commits marked with (^) are not parents of the immediately preceding commit.
-These "breaks" represent necessary discontinuities implied by trying to
-represent an arbitrary DAG in a linear form.
-+
-`--show-breaks` is only valid if `--merge-order` is also specified.
-
-
 Author
 ------
 Written by Linus Torvalds <torvalds@osdl.org>
 
-Original *--merge-order* logic by Jon Seymour <jon.seymour@gmail.com>
-
 Documentation
 --------------
 Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
diff --git a/git-tools.html b/git-tools.html
new file mode 100644 (file)
index 0000000..af7654e
--- /dev/null
@@ -0,0 +1,414 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<style type="text/css">\r
+/* Debug borders */\r
+p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
+/*\r
+  border: 1px solid red;\r
+*/\r
+}\r
+\r
+body {\r
+  margin: 1em 5% 1em 5%;\r
+}\r
+\r
+a { color: blue; }\r
+a:visited { color: fuchsia; }\r
+\r
+em {\r
+  font-style: italic;\r
+}\r
+\r
+strong {\r
+  font-weight: bold;\r
+}\r
+\r
+tt {\r
+  color: navy;\r
+}\r
+\r
+h1, h2, h3, h4, h5, h6 {\r
+  color: #527bbd;\r
+  font-family: sans-serif;\r
+  margin-top: 1.2em;\r
+  margin-bottom: 0.5em;\r
+  line-height: 1.3;\r
+}\r
+\r
+h1 {\r
+  border-bottom: 2px solid silver;\r
+}\r
+h2 {\r
+  border-bottom: 2px solid silver;\r
+  padding-top: 0.5em;\r
+}\r
+\r
+div.sectionbody {\r
+  font-family: serif;\r
+  margin-left: 0;\r
+}\r
+\r
+hr {\r
+  border: 1px solid silver;\r
+}\r
+\r
+p {\r
+  margin-top: 0.5em;\r
+  margin-bottom: 0.5em;\r
+}\r
+\r
+pre {\r
+  padding: 0;\r
+  margin: 0;\r
+}\r
+\r
+span#author {\r
+  color: #527bbd;\r
+  font-family: sans-serif;\r
+  font-weight: bold;\r
+  font-size: 1.2em;\r
+}\r
+span#email {\r
+}\r
+span#revision {\r
+  font-family: sans-serif;\r
+}\r
+\r
+div#footer {\r
+  font-family: sans-serif;\r
+  font-size: small;\r
+  border-top: 2px solid silver;\r
+  padding-top: 0.5em;\r
+  margin-top: 4.0em;\r
+}\r
+div#footer-text {\r
+  float: left;\r
+  padding-bottom: 0.5em;\r
+}\r
+div#footer-badges {\r
+  float: right;\r
+  padding-bottom: 0.5em;\r
+}\r
+\r
+div#preamble,\r
+div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
+div.admonitionblock {\r
+  margin-right: 10%;\r
+  margin-top: 1.5em;\r
+  margin-bottom: 1.5em;\r
+}\r
+div.admonitionblock {\r
+  margin-top: 2.5em;\r
+  margin-bottom: 2.5em;\r
+}\r
+\r
+div.content { /* Block element content. */\r
+  padding: 0;\r
+}\r
+\r
+/* Block element titles. */\r
+div.title, caption.title {\r
+  font-family: sans-serif;\r
+  font-weight: bold;\r
+  text-align: left;\r
+  margin-top: 1.0em;\r
+  margin-bottom: 0.5em;\r
+}\r
+div.title + * {\r
+  margin-top: 0;\r
+}\r
+\r
+td div.title:first-child {\r
+  margin-top: 0.0em;\r
+}\r
+div.content div.title:first-child {\r
+  margin-top: 0.0em;\r
+}\r
+div.content + div.title {\r
+  margin-top: 0.0em;\r
+}\r
+\r
+div.sidebarblock > div.content {\r
+  background: #ffffee;\r
+  border: 1px solid silver;\r
+  padding: 0.5em;\r
+}\r
+\r
+div.listingblock > div.content {\r
+  border: 1px solid silver;\r
+  background: #f4f4f4;\r
+  padding: 0.5em;\r
+}\r
+\r
+div.quoteblock > div.content {\r
+  padding-left: 2.0em;\r
+}\r
+div.quoteblock .attribution {\r
+  text-align: right;\r
+}\r
+\r
+div.admonitionblock .icon {\r
+  vertical-align: top;\r
+  font-size: 1.1em;\r
+  font-weight: bold;\r
+  text-decoration: underline;\r
+  color: #527bbd;\r
+  padding-right: 0.5em;\r
+}\r
+div.admonitionblock td.content {\r
+  padding-left: 0.5em;\r
+  border-left: 2px solid silver;\r
+}\r
+\r
+div.exampleblock > div.content {\r
+  border-left: 2px solid silver;\r
+  padding: 0.5em;\r
+}\r
+\r
+div.verseblock div.content {\r
+  white-space: pre;\r
+}\r
+\r
+div.imageblock div.content { padding-left: 0; }\r
+div.imageblock img { border: 1px solid silver; }\r
+span.image img { border-style: none; }\r
+\r
+dl {\r
+  margin-top: 0.8em;\r
+  margin-bottom: 0.8em;\r
+}\r
+dt {\r
+  margin-top: 0.5em;\r
+  margin-bottom: 0;\r
+  font-style: italic;\r
+}\r
+dd > *:first-child {\r
+  margin-top: 0;\r
+}\r
+\r
+ul, ol {\r
+    list-style-position: outside;\r
+}\r
+ol.olist2 {\r
+  list-style-type: lower-alpha;\r
+}\r
+\r
+div.tableblock > table {\r
+  border-color: #527bbd;\r
+  border-width: 3px;\r
+}\r
+thead {\r
+  font-family: sans-serif;\r
+  font-weight: bold;\r
+}\r
+tfoot {\r
+  font-weight: bold;\r
+}\r
+\r
+div.hlist {\r
+  margin-top: 0.8em;\r
+  margin-bottom: 0.8em;\r
+}\r
+td.hlist1 {\r
+  vertical-align: top;\r
+  font-style: italic;\r
+  padding-right: 0.8em;\r
+}\r
+td.hlist2 {\r
+  vertical-align: top;\r
+}\r
+\r
+@media print {\r
+  div#footer-badges { display: none; }\r
+}\r
+/* Workarounds for IE6's broken and incomplete CSS2. */\r
+\r
+div.sidebar-content {\r
+  background: #ffffee;\r
+  border: 1px solid silver;\r
+  padding: 0.5em;\r
+}\r
+div.sidebar-title, div.image-title {\r
+  font-family: sans-serif;\r
+  font-weight: bold;\r
+  margin-top: 0.0em;\r
+  margin-bottom: 0.5em;\r
+}\r
+\r
+div.listingblock div.content {\r
+  border: 1px solid silver;\r
+  background: #f4f4f4;\r
+  padding: 0.5em;\r
+}\r
+\r
+div.quoteblock-content {\r
+  padding-left: 2.0em;\r
+}\r
+\r
+div.exampleblock-content {\r
+  border-left: 2px solid silver;\r
+  padding-left: 0.5em;\r
+}\r
+</style>\r
+<title>A short git tools survey</title>\r
+</head>\r
+<body>\r
+<div id="header">\r
+<h1>A short git tools survey</h1>\r
+</div>\r
+<h2>Introduction</h2>\r
+<div class="sectionbody">\r
+<p>Apart from git contrib/ area there are some others third-party tools\r
+you may want to look.</p>\r
+<p>This document presents a brief summary of each tool and the corresponding\r
+link.</p>\r
+</div>\r
+<h2>Alternative/Augmentative Procelains</h2>\r
+<div class="sectionbody">\r
+<ul>\r
+<li>\r
+<p>\r
+<strong>Cogito</strong> (http://www.kernel.org/pub/software/scm/cogito/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>Cogito is a version control system layered on top of the git tree history\r
+storage system. It aims at seamless user interface and ease of use,\r
+providing generally smoother user experience than the "raw" Core GIT\r
+itself and indeed many other version control systems.</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>pg</strong> (http://www.spearce.org/category/projects/scm/pg/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>pg is a shell script wrapper around GIT to help the user manage a set of\r
+patches to files. pg is somewhat like quilt or StGIT, but it does have a\r
+slightly different feature set.</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>StGit</strong> (http://www.procode.org/stgit/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>Stacked GIT provides a quilt-like patch management functionality in the\r
+ GIT environment. You can easily manage your patches in the scope of GIT\r
+until they get merged upstream.</tt></pre>\r
+</div></div>\r
+</li>\r
+</ul>\r
+</div>\r
+<h2>History Viewers</h2>\r
+<div class="sectionbody">\r
+<ul>\r
+<li>\r
+<p>\r
+<strong>gitk</strong> (shipped with git-core)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>gitk is a simple TK GUI for browsing history of GIT repositories easily.</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>gitview</strong>  (contrib/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>gitview is a GTK based repository browser for git</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>gitweb</strong> (ftp://ftp.kernel.org/pub/software/scm/gitweb/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>GITweb provides full-fledged web interface for GIT repositories.</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>qgit</strong> (http://digilander.libero.it/mcostalba/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>QGit is a git/StGIT GUI viewer built on Qt/C++. QGit could be used\r
+to browse history and directory tree, view annotated files, commit\r
+changes cherry picking single files or applying patches.\r
+Currently it is the fastest and most feature rich among the git\r
+viewers and commit tools.</tt></pre>\r
+</div></div>\r
+</li>\r
+</ul>\r
+</div>\r
+<h2>Foreign SCM interface</h2>\r
+<div class="sectionbody">\r
+<ul>\r
+<li>\r
+<p>\r
+<strong>git-svn</strong> (contrib/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>git-svn is a simple conduit for changesets between a single Subversion\r
+branch and git.</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>quilt2git / git2quilt</strong> (http://home-tj.org/wiki/index.php/Misc)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>These utilities convert patch series in a quilt repository and commit\r
+series in git back and forth.</tt></pre>\r
+</div></div>\r
+</li>\r
+</ul>\r
+</div>\r
+<h2>Others</h2>\r
+<div class="sectionbody">\r
+<ul>\r
+<li>\r
+<p>\r
+<strong>(h)gct</strong> (http://www.cyd.liu.se/users/~freku045/gct/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>Commit Tool or (h)gct is a GUI enabled commit tool for git and\r
+Mercurial (hg). It allows the user to view diffs, select which files\r
+to committed (or ignored / reverted) write commit messages and\r
+perform the commit itself.</tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>git.el</strong> (contrib/)\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>This is an Emacs interface for git. The user interface is modeled on\r
+pcl-cvs. It has been developed on Emacs 21 and will probably need some\r
+tweaking to work on XEmacs.</tt></pre>\r
+</div></div>\r
+</li>\r
+</ul>\r
+</div>\r
+<div id="footer">\r
+<div id="footer-text">\r
+Last updated 05-Mar-2006 10:51:10 UTC\r
+</div>\r
+</div>\r
+</body>\r
+</html>\r
diff --git a/git-tools.txt b/git-tools.txt
new file mode 100644 (file)
index 0000000..00e57a6
--- /dev/null
@@ -0,0 +1,97 @@
+A short git tools survey
+========================
+
+
+Introduction
+------------
+
+Apart from git contrib/ area there are some others third-party tools
+you may want to look.
+
+This document presents a brief summary of each tool and the corresponding
+link.
+
+
+Alternative/Augmentative Procelains
+-----------------------------------
+
+   - *Cogito* (http://www.kernel.org/pub/software/scm/cogito/)
+
+   Cogito is a version control system layered on top of the git tree history
+   storage system. It aims at seamless user interface and ease of use,
+   providing generally smoother user experience than the "raw" Core GIT
+   itself and indeed many other version control systems.
+
+
+   - *pg* (http://www.spearce.org/category/projects/scm/pg/)
+
+   pg is a shell script wrapper around GIT to help the user manage a set of
+   patches to files. pg is somewhat like quilt or StGIT, but it does have a
+   slightly different feature set.
+
+
+   - *StGit* (http://www.procode.org/stgit/)
+
+   Stacked GIT provides a quilt-like patch management functionality in the
+    GIT environment. You can easily manage your patches in the scope of GIT
+   until they get merged upstream.
+
+
+History Viewers
+---------------
+
+   - *gitk* (shipped with git-core)
+
+   gitk is a simple TK GUI for browsing history of GIT repositories easily.
+
+
+   - *gitview*  (contrib/)
+
+   gitview is a GTK based repository browser for git
+
+
+   - *gitweb* (ftp://ftp.kernel.org/pub/software/scm/gitweb/)
+
+   GITweb provides full-fledged web interface for GIT repositories.
+
+
+   - *qgit* (http://digilander.libero.it/mcostalba/)
+
+   QGit is a git/StGIT GUI viewer built on Qt/C++. QGit could be used
+   to browse history and directory tree, view annotated files, commit
+   changes cherry picking single files or applying patches.
+   Currently it is the fastest and most feature rich among the git
+   viewers and commit tools.
+
+
+
+Foreign SCM interface
+---------------------
+
+   - *git-svn* (contrib/)
+
+   git-svn is a simple conduit for changesets between a single Subversion
+   branch and git.
+
+
+   - *quilt2git / git2quilt* (http://home-tj.org/wiki/index.php/Misc)
+
+   These utilities convert patch series in a quilt repository and commit
+   series in git back and forth.
+
+
+Others
+------
+
+   - *(h)gct* (http://www.cyd.liu.se/users/~freku045/gct/)
+
+   Commit Tool or (h)gct is a GUI enabled commit tool for git and
+   Mercurial (hg). It allows the user to view diffs, select which files
+   to committed (or ignored / reverted) write commit messages and
+   perform the commit itself.
+
+   - *git.el* (contrib/)
+
+   This is an Emacs interface for git. The user interface is modeled on
+   pcl-cvs. It has been developed on Emacs 21 and will probably need some
+   tweaking to work on XEmacs.
index 1312d03..4cd880d 100644 (file)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.1" />\r
+<meta name="generator" content="AsciiDoc 7.0.2" />\r
 <style type="text/css">\r
 /* Debug borders */\r
 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
@@ -522,7 +522,7 @@ the tree and the previous state, and</p>
 <pre><tt>git diff HEAD^^ HEAD^</tt></pre>\r
 </div></div>\r
 <p>shows the difference between that previous state and the state two\r
-commits ago.  Also, HEAD~5 can be used as a shorthand for HEAD<sup>^</sup>^^,\r
+commits ago.  Also, HEAD~5 can be used as a shorthand for HEAD^^^^^,\r
 and more generally HEAD~n can refer to the nth previous commit.\r
 Commits representing merges have more than one parent, and you can\r
 specify which parent to follow in that case; see\r
@@ -616,7 +616,7 @@ developers.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 22-Jan-2006 23:54:22 PDT\r
+Last updated 05-Mar-2006 10:51:09 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 66680d7..fa79b01 100644 (file)
@@ -309,7 +309,7 @@ git diff HEAD^^ HEAD^
 -------------------------------------
 
 shows the difference between that previous state and the state two
-commits ago.  Also, HEAD~5 can be used as a shorthand for HEAD^^^^^,
+commits ago.  Also, HEAD~5 can be used as a shorthand for HEAD{caret}{caret}{caret}{caret}{caret},
 and more generally HEAD~n can refer to the nth previous commit.
 Commits representing merges have more than one parent, and you can
 specify which parent to follow in that case; see