Autogenerated HTML docs for v1.5.3-rc5-40-g2f82
authorJunio C Hamano <junio@hera.kernel.org>
Sun, 19 Aug 2007 19:15:52 +0000 (19:15 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Sun, 19 Aug 2007 19:15:52 +0000 (19:15 +0000)
git-fast-import.html
git-fast-import.txt
git-reflog.html
git-reflog.txt

index 451ee64de03be9954b9ba16435184aa2a1bddefc..8e50ca467a3ec12eaab2a01b70a0982942edb298 100644 (file)
@@ -480,6 +480,13 @@ Supplying additional whitespace characters will cause unexpected
 results, such as branch names or file names with leading or trailing\r
 spaces in their name, or early termination of fast-import when it encounters\r
 unexpected input.</p>\r
+<h3>Stream Comments</h3>\r
+<p>To aid in debugging frontends fast-import ignores any line that\r
+begins with <tt>#</tt> (ASCII pound/hash) up to and including the line\r
+ending <tt>LF</tt>.  A comment line may contain any sequence of bytes\r
+that does not contain an LF and therefore may be used to include\r
+any detailed debugging information that might be specific to the\r
+frontend and useful when inspecting a fast-import data stream.</p>\r
 <h3>Date Formats</h3>\r
 <p>The following date formats are supported.  A frontend should select\r
 the format it will use for this import by passing the format name\r
@@ -620,6 +627,16 @@ and control the current import process.  More detailed discussion
         an import.\r
 </p>\r
 </dd>\r
+<dt>\r
+<tt>progress</tt>\r
+</dt>\r
+<dd>\r
+<p>\r
+        Causes fast-import to echo the entire line to its own\r
+        standard output.  This command is optional and is not needed\r
+        to perform an import.\r
+</p>\r
+</dd>\r
 </dl>\r
 <h3><tt>commit</tt></h3>\r
 <p>Create or update a branch with a new commit, recording one logical\r
@@ -634,7 +651,7 @@ change to the project.</p>
         ('from' SP &lt;committish&gt; LF)?\r
         ('merge' SP &lt;committish&gt; LF)?\r
         (filemodify | filedelete | filecopy | filerename | filedeleteall)*\r
-        LF</tt></pre>\r
+        LF?</tt></pre>\r
 </div></div>\r
 <p>where <tt>&lt;ref&gt;</tt> is the name of the branch to make the commit on.\r
 Typically branch names are prefixed with <tt>refs/heads/</tt> in\r
@@ -660,6 +677,7 @@ However it is recommended that a <tt>filedeleteall</tt> command preceed
 all <tt>filemodify</tt>, <tt>filecopy</tt> and <tt>filerename</tt> commands in the same\r
 commit, as <tt>filedeleteall</tt>\r
 wipes the branch clean (see below).</p>\r
+<p>The <tt>LF</tt> after the command is optional (it used to be required).</p>\r
 <h4><tt>author</tt></h4>\r
 <p>An <tt>author</tt> command may optionally appear, if the author information\r
 might differ from the committer information.  If <tt>author</tt> is omitted\r
@@ -971,10 +989,11 @@ branch from an existing commit without creating a new commit.</p>
 <div class="content">\r
 <pre><tt>        'reset' SP &lt;ref&gt; LF\r
         ('from' SP &lt;committish&gt; LF)?\r
-        LF</tt></pre>\r
+        LF?</tt></pre>\r
 </div></div>\r
 <p>For a detailed description of <tt>&lt;ref&gt;</tt> and <tt>&lt;committish&gt;</tt> see above\r
 under <tt>commit</tt> and <tt>from</tt>.</p>\r
+<p>The <tt>LF</tt> after the command is optional (it used to be required).</p>\r
 <p>The <tt>reset</tt> command can also be used to create lightweight\r
 (non-annotated) tags.  For example:</p>\r
 <div class="exampleblock">\r
@@ -1009,6 +1028,10 @@ byte count or delimited with a terminating line.  Real frontends
 intended for production-quality conversions should always use the\r
 exact byte count format, as it is more robust and performs better.\r
 The delimited format is intended primarily for testing fast-import.</p>\r
+<p>Comment lines appearing within the <tt>&lt;raw&gt;</tt> part of <tt>data</tt> commands\r
+are always taken to be part of the body of the data and are therefore\r
+never ignored by fast-import.  This makes it safe to import any\r
+file/message content whose lines might start with <tt>#</tt>.</p>\r
 <dl>\r
 <dt>\r
 Exact byte count format\r
@@ -1020,12 +1043,16 @@ Exact byte count format
 <div class="literalblock">\r
 <div class="content">\r
 <pre><tt>        'data' SP &lt;count&gt; LF\r
-        &lt;raw&gt; LF</tt></pre>\r
+        &lt;raw&gt; LF?</tt></pre>\r
 </div></div>\r
 <p>where <tt>&lt;count&gt;</tt> is the exact number of bytes appearing within\r
 <tt>&lt;raw&gt;</tt>.  The value of <tt>&lt;count&gt;</tt> is expressed as an ASCII decimal\r
 integer.  The <tt>LF</tt> on either side of <tt>&lt;raw&gt;</tt> is not\r
 included in <tt>&lt;count&gt;</tt> and will not be included in the imported data.</p>\r
+<p>The <tt>LF</tt> after <tt>&lt;raw&gt;</tt> is optional (it used to be required) but\r
+recommended.  Always including it makes debugging a fast-import\r
+stream easier as the next command always starts in column 0\r
+of the next line, even if <tt>&lt;raw&gt;</tt> did not end with an <tt>LF</tt>.</p>\r
 </dd>\r
 <dt>\r
 Delimited format\r
@@ -1041,7 +1068,8 @@ Delimited format
 <div class="content">\r
 <pre><tt>        'data' SP '&lt;&lt;' &lt;delim&gt; LF\r
         &lt;raw&gt; LF\r
-        &lt;delim&gt; LF</tt></pre>\r
+        &lt;delim&gt; LF\r
+        LF?</tt></pre>\r
 </div></div>\r
 <p>where <tt>&lt;delim&gt;</tt> is the chosen delimiter string.  The string <tt>&lt;delim&gt;</tt>\r
 must not appear on a line by itself within <tt>&lt;raw&gt;</tt>, as otherwise\r
@@ -1049,6 +1077,7 @@ fast-import will think the data ends earlier than it really does.  The <tt>LF</t
 immediately trailing <tt>&lt;raw&gt;</tt> is part of <tt>&lt;raw&gt;</tt>.  This is one of\r
 the limitations of the delimited format, it is impossible to supply\r
 a data chunk which does not have an LF as its last byte.</p>\r
+<p>The <tt>LF</tt> after <tt>&lt;delim&gt; LF</tt> is optional (it used to be required).</p>\r
 </dd>\r
 </dl>\r
 <h3><tt>checkpoint</tt></h3>\r
@@ -1057,7 +1086,7 @@ save out all current branch refs, tags and marks.</p>
 <div class="literalblock">\r
 <div class="content">\r
 <pre><tt>        'checkpoint' LF\r
-        LF</tt></pre>\r
+        LF?</tt></pre>\r
 </div></div>\r
 <p>Note that fast-import automatically switches packfiles when the current\r
 packfile reaches --max-pack-size, or 4 GiB, whichever limit is\r
@@ -1072,6 +1101,31 @@ and long running imports, or when they need to allow another Git
 process access to a branch.  However given that a 30 GiB Subversion\r
 repository can be loaded into Git through fast-import in about 3 hours,\r
 explicit checkpointing may not be necessary.</p>\r
+<p>The <tt>LF</tt> after the command is optional (it used to be required).</p>\r
+<h3><tt>progress</tt></h3>\r
+<p>Causes fast-import to print the entire <tt>progress</tt> line unmodified to\r
+its standard output channel (file descriptor 1) when the command is\r
+processed from the input stream.  The command otherwise has no impact\r
+on the current import, or on any of fast-import's internal state.</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>        'progress' SP &lt;any&gt; LF\r
+        LF?</tt></pre>\r
+</div></div>\r
+<p>The <tt>&lt;any&gt;</tt> part of the command may contain any sequence of bytes\r
+that does not contain <tt>LF</tt>.  The <tt>LF</tt> after the command is optional.\r
+Callers may wish to process the output through a tool such as sed to\r
+remove the leading part of the line, for example:</p>\r
+<div class="exampleblock">\r
+<div class="exampleblock-content">\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>frontend | git-fast-import | sed 's/^progress //'</tt></pre>\r
+</div></div>\r
+</div></div>\r
+<p>Placing a <tt>progress</tt> command immediately after a <tt>checkpoint</tt> will\r
+inform the reader when the <tt>checkpoint</tt> has been completed and it\r
+can safely access the refs that fast-import updated.</p>\r
 </div>\r
 <h2>Tips and Tricks</h2>\r
 <div class="sectionbody">\r
@@ -1144,6 +1198,13 @@ last year), consider expending some extra CPU time and supplying
 This will take longer, but will also produce a smaller packfile.\r
 You only need to expend the effort once, and everyone using your\r
 project will benefit from the smaller repository.</p>\r
+<h3>Include Some Progress Messages</h3>\r
+<p>Every once in a while have your frontend emit a <tt>progress</tt> message\r
+to fast-import.  The contents of the messages are entirely free-form,\r
+so one suggestion would be to output the current month and year\r
+each time the current commit date moves into the next month.\r
+Your users will feel better knowing how much of the data stream\r
+has been processed.</p>\r
 </div>\r
 <h2>Packfile Optimization</h2>\r
 <div class="sectionbody">\r
@@ -1248,7 +1309,7 @@ memory footprint (less than 2.7 MiB per active branch).</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 19-Jul-2007 02:09:39 UTC\r
+Last updated 19-Aug-2007 19:15:24 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 30ee98d17f537e289c08d94d9b43728a4b147a34..0a019dd2e5f9b20ae3169cea7dee16dedf892856 100644 (file)
@@ -176,6 +176,15 @@ results, such as branch names or file names with leading or trailing
 spaces in their name, or early termination of fast-import when it encounters
 unexpected input.
 
+Stream Comments
+~~~~~~~~~~~~~~~
+To aid in debugging frontends fast-import ignores any line that
+begins with `#` (ASCII pound/hash) up to and including the line
+ending `LF`.  A comment line may contain any sequence of bytes
+that does not contain an LF and therefore may be used to include
+any detailed debugging information that might be specific to the
+frontend and useful when inspecting a fast-import data stream.
+
 Date Formats
 ~~~~~~~~~~~~
 The following date formats are supported.  A frontend should select
@@ -289,6 +298,11 @@ and control the current import process.  More detailed discussion
        This command is optional and is not needed to perform
        an import.
 
+`progress`::
+       Causes fast-import to echo the entire line to its own
+       standard output.  This command is optional and is not needed
+       to perform an import.
+
 `commit`
 ~~~~~~~~
 Create or update a branch with a new commit, recording one logical
@@ -303,7 +317,7 @@ change to the project.
        ('from' SP <committish> LF)?
        ('merge' SP <committish> LF)?
        (filemodify | filedelete | filecopy | filerename | filedeleteall)*
-       LF
+       LF?
 ....
 
 where `<ref>` is the name of the branch to make the commit on.
@@ -334,6 +348,8 @@ all `filemodify`, `filecopy` and `filerename` commands in the same
 commit, as `filedeleteall`
 wipes the branch clean (see below).
 
+The `LF` after the command is optional (it used to be required).
+
 `author`
 ^^^^^^^^
 An `author` command may optionally appear, if the author information
@@ -645,12 +661,14 @@ branch from an existing commit without creating a new commit.
 ....
        'reset' SP <ref> LF
        ('from' SP <committish> LF)?
-       LF
+       LF?
 ....
 
 For a detailed description of `<ref>` and `<committish>` see above
 under `commit` and `from`.
 
+The `LF` after the command is optional (it used to be required).
+
 The `reset` command can also be used to create lightweight
 (non-annotated) tags.  For example:
 
@@ -689,18 +707,28 @@ intended for production-quality conversions should always use the
 exact byte count format, as it is more robust and performs better.
 The delimited format is intended primarily for testing fast-import.
 
+Comment lines appearing within the `<raw>` part of `data` commands
+are always taken to be part of the body of the data and are therefore
+never ignored by fast-import.  This makes it safe to import any
+file/message content whose lines might start with `#`.
+
 Exact byte count format::
        The frontend must specify the number of bytes of data.
 +
 ....
        'data' SP <count> LF
-       <raw> LF
+       <raw> LF?
 ....
 +
 where `<count>` is the exact number of bytes appearing within
 `<raw>`.  The value of `<count>` is expressed as an ASCII decimal
 integer.  The `LF` on either side of `<raw>` is not
 included in `<count>` and will not be included in the imported data.
++
+The `LF` after `<raw>` is optional (it used to be required) but
+recommended.  Always including it makes debugging a fast-import
+stream easier as the next command always starts in column 0
+of the next line, even if `<raw>` did not end with an `LF`.
 
 Delimited format::
        A delimiter string is used to mark the end of the data.
@@ -712,6 +740,7 @@ Delimited format::
        'data' SP '<<' <delim> LF
        <raw> LF
        <delim> LF
+       LF?
 ....
 +
 where `<delim>` is the chosen delimiter string.  The string `<delim>`
@@ -720,6 +749,8 @@ fast-import will think the data ends earlier than it really does.  The `LF`
 immediately trailing `<raw>` is part of `<raw>`.  This is one of
 the limitations of the delimited format, it is impossible to supply
 a data chunk which does not have an LF as its last byte.
++
+The `LF` after `<delim> LF` is optional (it used to be required).
 
 `checkpoint`
 ~~~~~~~~~~~~
@@ -728,7 +759,7 @@ save out all current branch refs, tags and marks.
 
 ....
        'checkpoint' LF
-       LF
+       LF?
 ....
 
 Note that fast-import automatically switches packfiles when the current
@@ -747,6 +778,32 @@ process access to a branch.  However given that a 30 GiB Subversion
 repository can be loaded into Git through fast-import in about 3 hours,
 explicit checkpointing may not be necessary.
 
+The `LF` after the command is optional (it used to be required).
+
+`progress`
+~~~~~~~~~~
+Causes fast-import to print the entire `progress` line unmodified to
+its standard output channel (file descriptor 1) when the command is
+processed from the input stream.  The command otherwise has no impact
+on the current import, or on any of fast-import's internal state.
+
+....
+       'progress' SP <any> LF
+       LF?
+....
+
+The `<any>` part of the command may contain any sequence of bytes
+that does not contain `LF`.  The `LF` after the command is optional.
+Callers may wish to process the output through a tool such as sed to
+remove the leading part of the line, for example:
+
+====
+       frontend | git-fast-import | sed 's/^progress //'
+====
+
+Placing a `progress` command immediately after a `checkpoint` will
+inform the reader when the `checkpoint` has been completed and it
+can safely access the refs that fast-import updated.
 
 Tips and Tricks
 ---------------
@@ -840,6 +897,15 @@ This will take longer, but will also produce a smaller packfile.
 You only need to expend the effort once, and everyone using your
 project will benefit from the smaller repository.
 
+Include Some Progress Messages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Every once in a while have your frontend emit a `progress` message
+to fast-import.  The contents of the messages are entirely free-form,
+so one suggestion would be to output the current month and year
+each time the current commit date moves into the next month.
+Your users will feel better knowing how much of the data stream
+has been processed.
+
 
 Packfile Optimization
 ---------------------
index 673dd8c6577e39afada521a1e102794aaa88234c..0cfdab8ddf13aa9de51f48a5d59021ecd89c1d98 100644 (file)
@@ -291,7 +291,8 @@ tip, are removed from the reflog.  This is typically not used
 directly by the end users &#8212; instead, see <a href="git-gc.html">git-gc(1)</a>.</p>\r
 <p>The subcommand "show" (which is also the default, in the absense of any\r
 subcommands) will take all the normal log options, and show the log of\r
-the current branch. It is basically an alias for <em>git log -g --abbrev-commit\r
+<tt>HEAD</tt>, which will cover all recent actions, including branch switches.\r
+It is basically an alias for <em>git log -g --abbrev-commit\r
 --pretty=oneline</em>, see <a href="git-log.html">git-log(1)</a>.</p>\r
 </div>\r
 <h2>OPTIONS</h2>\r
@@ -360,7 +361,7 @@ them.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 19-Jul-2007 02:09:51 UTC\r
+Last updated 19-Aug-2007 19:15:24 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 89bc9c51ea13630f6556b12637ce8b1cc483d2fd..29b7d9f5f82106467fd0f542349f555956917b8b 100644 (file)
@@ -32,7 +32,8 @@ directly by the end users -- instead, see gitlink:git-gc[1].
 
 The subcommand "show" (which is also the default, in the absense of any
 subcommands) will take all the normal log options, and show the log of
-the current branch. It is basically an alias for 'git log -g --abbrev-commit
+`HEAD`, which will cover all recent actions, including branch switches.
+It is basically an alias for 'git log -g --abbrev-commit
 --pretty=oneline', see gitlink:git-log[1].