Autogenerated HTML docs for v1.5.0-rc4-345-gb4d2
authorJunio C Hamano <junio@hera.kernel.org>
Mon, 12 Feb 2007 07:15:35 +0000 (07:15 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Mon, 12 Feb 2007 07:15:35 +0000 (07:15 +0000)
git-am.html
git-am.txt
git-fast-import.html
git-fast-import.txt
git-rebase.html
git-rebase.txt
git-tag.html
git-tag.txt
git.html

index ba3865bcfbf54030cc53def7f8fedcd2f05e64d7..993d2b4b874210117bcec11c90adb88a16b2c72c 100644 (file)
@@ -274,7 +274,8 @@ git-am(1) Manual Page
 <div class="sectionbody">\r
 <div class="verseblock">\r
 <div class="content"><em>git-am</em> [--signoff] [--dotest=&lt;dir&gt;] [--utf8 | --no-utf8] [--binary] [--3way]\r
-         [--interactive] [--whitespace=&lt;option&gt;] &lt;mbox&gt;&#8230;\r
+         [--interactive] [--whitespace=&lt;option&gt;] [-C&lt;n&gt;] [-p&lt;n&gt;]\r
+         &lt;mbox&gt;&#8230;\r
 <em>git-am</em> [--skip | --resolved]</div></div>\r
 </div>\r
 <h2>DESCRIPTION</h2>\r
@@ -383,11 +384,11 @@ default.   You could use <tt>--no-utf8</tt> to override this.</p>
 </p>\r
 </dd>\r
 <dt>\r
--C&lt;n&gt;\r
+-C&lt;n&gt;, -p&lt;n&gt;\r
 </dt>\r
 <dd>\r
 <p>\r
-        This flag is passed to the <tt>git-apply</tt> program that applies\r
+        These flag are passed to the <tt>git-apply</tt> program that applies\r
         the patch.\r
 </p>\r
 </dd>\r
@@ -458,7 +459,7 @@ names.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 12-Feb-2007 04:14:05 UTC\r
+Last updated 12-Feb-2007 07:15:19 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 77ef103b21ed7c8864cf05c08efe3ae562357f55..4fb1d844133ba8350361ee67d074935805a24156 100644 (file)
@@ -10,7 +10,8 @@ SYNOPSIS
 --------
 [verse]
 'git-am' [--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way]
-         [--interactive] [--whitespace=<option>] <mbox>...
+         [--interactive] [--whitespace=<option>] [-C<n>] [-p<n>]
+        <mbox>...
 'git-am' [--skip | --resolved]
 
 DESCRIPTION
@@ -68,8 +69,8 @@ default.   You could use `--no-utf8` to override this.
        This flag is passed to the `git-apply` program that applies
        the patch.
 
--C<n>::
-       This flag is passed to the `git-apply` program that applies
+-C<n>, -p<n>::
+       These flag are passed to the `git-apply` program that applies
        the patch.
 
 --interactive::
index 61b0668250ed02aa9de9c2bb0c297b42774c3f18..4a20ade1ebe9060d80845da3b3dfa889de07a288 100644 (file)
@@ -357,6 +357,20 @@ the frontend program in use.</p>
 </p>\r
 </dd>\r
 <dt>\r
+--export-pack-edges=&lt;file&gt;\r
+</dt>\r
+<dd>\r
+<p>\r
+        After creating a packfile, print a line of data to\r
+        &lt;file&gt; listing the filename of the packfile and the last\r
+        commit on each branch that was written to that packfile.\r
+        This information may be useful after importing projects\r
+        whose total object set exceeds the 4 GiB packfile limit,\r
+        as these commits can be used as edge points during calls\r
+        to <a href="git-pack-objects.html">git-pack-objects(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
 --quiet\r
 </dt>\r
 <dd>\r
@@ -1023,6 +1037,11 @@ code considerably.</p>
 <p>The branch LRU builtin to fast-import tends to behave very well, and the\r
 cost of activating an inactive branch is so low that bouncing around\r
 between branches has virtually no impact on import performance.</p>\r
+<h3>Handling Renames</h3>\r
+<p>When importing a renamed file or directory, simply delete the old\r
+name(s) and modify the new name(s) during the corresponding commit.\r
+Git performs rename detection after-the-fact, rather than explicitly\r
+during a commit.</p>\r
 <h3>Use Tag Fixup Branches</h3>\r
 <p>Some other SCM systems let the user create a tag from multiple\r
 files which are not from the same commit/changeset.  Or to create\r
@@ -1170,7 +1189,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 09-Feb-2007 08:38:34 UTC\r
+Last updated 12-Feb-2007 07:15:19 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 2a5052072a740ba8830f2be61a2486fd84d8ec43..939ec4652bea90888006adf7fd6860e43c5439ed 100644 (file)
@@ -64,6 +64,15 @@ OPTIONS
        Frontends can use this file to validate imports after they
        have been completed.
 
+--export-pack-edges=<file>::
+       After creating a packfile, print a line of data to
+       <file> listing the filename of the packfile and the last
+       commit on each branch that was written to that packfile.
+       This information may be useful after importing projects
+       whose total object set exceeds the 4 GiB packfile limit,
+       as these commits can be used as edge points during calls
+       to gitlink:git-pack-objects[1].
+
 --quiet::
        Disable all non-fatal output, making fast-import silent when it
        is successful.  This option disables the output shown by
@@ -706,6 +715,13 @@ The branch LRU builtin to fast-import tends to behave very well, and the
 cost of activating an inactive branch is so low that bouncing around
 between branches has virtually no impact on import performance.
 
+Handling Renames
+~~~~~~~~~~~~~~~~
+When importing a renamed file or directory, simply delete the old
+name(s) and modify the new name(s) during the corresponding commit.
+Git performs rename detection after-the-fact, rather than explicitly
+during a commit.
+
 Use Tag Fixup Branches
 ~~~~~~~~~~~~~~~~~~~~~~
 Some other SCM systems let the user create a tag from multiple
index fcb907ac1af0c60faab7ead4e0b9c72e943c8789..e7f45f9da68781ed466f298a84e8294dfd0a9af2 100644 (file)
@@ -272,7 +272,7 @@ git-rebase(1) Manual Page
 </div>\r
 <h2>SYNOPSIS</h2>\r
 <div class="sectionbody">\r
-<p><em>git-rebase</em> [-v] [--merge] [-CNUM] [--onto &lt;newbase&gt;] &lt;upstream&gt; [&lt;branch&gt;]</p>\r
+<p><em>git-rebase</em> [-v] [--merge] [-C&lt;n&gt;] [--onto &lt;newbase&gt;] &lt;upstream&gt; [&lt;branch&gt;]</p>\r
 <p><em>git-rebase</em> --continue | --skip | --abort</p>\r
 </div>\r
 <h2>DESCRIPTION</h2>\r
@@ -591,7 +591,7 @@ a rebase.  Upon completion, &lt;branch&gt; will be the current branch.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 09-Feb-2007 08:38:36 UTC\r
+Last updated 12-Feb-2007 07:15:21 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 3dff2dfae781e26ebe500d0197c2c98415b748de..f2ef1f7dc093432e8b6c5644cbac5c5e857cb0ca 100644 (file)
@@ -7,7 +7,7 @@ git-rebase - Forward-port local commits to the updated upstream head
 
 SYNOPSIS
 --------
-'git-rebase' [-v] [--merge] [-CNUM] [--onto <newbase>] <upstream> [<branch>]
+'git-rebase' [-v] [--merge] [-C<n>] [--onto <newbase>] <upstream> [<branch>]
 
 'git-rebase' --continue | --skip | --abort
 
index d3609a826f657882aa7937ec23dd1c10bf502043..03e8f5bacc7456ee75b2d12749ca0b1b7c76f950 100644 (file)
@@ -386,6 +386,124 @@ it in the repository configuration as follows:</p>
 <pre><tt>signingkey = &lt;gpg-key-id&gt;</tt></pre>\r
 </div></div>\r
 </div>\r
+<h2>DISCUSSION</h2>\r
+<div class="sectionbody">\r
+<h3>On Re-tagging</h3>\r
+<p>What should you do when you tag a wrong commit and you would\r
+want to re-tag?</p>\r
+<p>If you never pushed anything out, just re-tag it. Use "-f" to\r
+replace the old one. And you're done.</p>\r
+<p>But if you have pushed things out (or others could just read\r
+your repository directly), then others will have already seen\r
+the old tag. In that case you can do one of two things:</p>\r
+<ol>\r
+<li>\r
+<p>\r
+The sane thing.\r
+Just admit you screwed up, and use a different name. Others have\r
+already seen one tag-name, and if you keep the same name, you\r
+may be in the situation that two people both have "version X",\r
+but they actually have <em>different</em> "X"'s.  So just call it "X.1"\r
+and be done with it.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The insane thing.\r
+You really want to call the new version "X" too, <em>even though</em>\r
+others have already seen the old one. So just use "git tag -f"\r
+again, as if you hadn't already published the old one.\r
+</p>\r
+</li>\r
+</ol>\r
+<p>However, Git does <strong>not</strong> (and it should not)change tags behind\r
+users back. So if somebody already got the old tag, doing a "git\r
+pull" on your tree shouldn't just make them overwrite the old\r
+one.</p>\r
+<p>If somebody got a release tag from you, you cannot just change\r
+the tag for them by updating your own one. This is a big\r
+security issue, in that people MUST be able to trust their\r
+tag-names.  If you really want to do the insane thing, you need\r
+to just fess up to it, and tell people that you messed up. You\r
+can do that by making a very public announcement saying:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>Ok, I messed up, and I pushed out an earlier version tagged as X. I\r
+then fixed something, and retagged the *fixed* tree as X again.\r
+\r
+If you got the wrong tag, and want the new one, please delete\r
+the old one and fetch the new one by doing:\r
+\r
+        git tag -d X\r
+        git fetch origin tag X\r
+\r
+to get my updated tag.\r
+\r
+You can test which tag you have by doing\r
+\r
+        git rev-parse X\r
+\r
+which should return 0123456789abcdef.. if you have the new version.\r
+\r
+Sorry for inconvenience.</tt></pre>\r
+</div></div>\r
+<p>Does this seem a bit complicated?  It <strong>should</strong> be. There is no\r
+way that it would be correct to just "fix" it behind peoples\r
+backs. People need to know that their tags might have been\r
+changed.</p>\r
+<h3>On Automatic following</h3>\r
+<p>If you are following somebody else's tree, you are most likely\r
+using tracking branches (<tt>refs/heads/origin</tt> in traditional\r
+layout, or <tt>refs/remotes/origin/master</tt> in the separate-remote\r
+layout).  You usually want the tags from the other end.</p>\r
+<p>On the other hand, if you are fetching because you would want a\r
+one-shot merge from somebody else, you typically do not want to\r
+get tags from there.  This happens more often for people near\r
+the toplevel but not limited to them.  Mere mortals when pulling\r
+from each other do not necessarily want to automatically get\r
+private anchor point tags from the other person.</p>\r
+<p>You would notice "please pull" messages on the mailing list says\r
+repo URL and branch name alone.  This is designed to be easily\r
+cut&amp;pasted to "git fetch" command line:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>Linus, please pull from\r
+\r
+        git://git..../proj.git master\r
+\r
+to get the following updates...</tt></pre>\r
+</div></div>\r
+<p>becomes:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ git pull git://git..../proj.git master</tt></pre>\r
+</div></div>\r
+<p>In such a case, you do not want to automatically follow other's\r
+tags.</p>\r
+<p>One important aspect of git is it is distributed, and being\r
+distributed largely means there is no inherent "upstream" or\r
+"downstream" in the system.  On the face of it, the above\r
+example might seem to indicate that the tag namespace is owned\r
+by upper echelon of people and tags only flow downwards, but\r
+that is not the case.  It only shows that the usage pattern\r
+determines who are interested in whose tags.</p>\r
+<p>A one-shot pull is a sign that a commit history is now crossing\r
+the boundary between one circle of people (e.g. "people who are\r
+primarily interested in networking part of the kernel") who may\r
+have their own set of tags (e.g. "this is the third release\r
+candidate from the networking group to be proposed for general\r
+consumption with 2.6.21 release") to another circle of people\r
+(e.g. "people who integrate various subsystem improvements").\r
+The latter are usually not interested in the detailed tags used\r
+internally in the former group (that is what "internal" means).\r
+That is why it is desirable not to follow tags automatically in\r
+this case.</p>\r
+<p>It may well be that among networking people, they may want to\r
+exchange the tags internal to their group, but in that workflow\r
+they are most likely tracking with each other's progress by\r
+having tracking branches.  Again, the heuristic to automatically\r
+follow such tags is a good thing.</p>\r
+</div>\r
 <h2>Author</h2>\r
 <div class="sectionbody">\r
 <p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;,\r
@@ -401,7 +519,7 @@ Junio C Hamano &lt;junkio@cox.net&gt; and Chris Wright &lt;chrisw@osdl.org&gt;.<
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 28-Jan-2007 10:29:11 UTC\r
+Last updated 12-Feb-2007 07:15:21 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 3f01e0bfc5eb72bfbd8c3ab97e4b9ac495463edb..70235e8ddb3e43805d699dd0bf264f585409697e 100644 (file)
@@ -80,6 +80,137 @@ it in the repository configuration as follows:
 [user]
     signingkey = <gpg-key-id>
 
+
+DISCUSSION
+----------
+
+On Re-tagging
+~~~~~~~~~~~~~
+
+What should you do when you tag a wrong commit and you would
+want to re-tag?
+
+If you never pushed anything out, just re-tag it. Use "-f" to
+replace the old one. And you're done.
+
+But if you have pushed things out (or others could just read
+your repository directly), then others will have already seen
+the old tag. In that case you can do one of two things:
+
+. The sane thing.
+Just admit you screwed up, and use a different name. Others have
+already seen one tag-name, and if you keep the same name, you
+may be in the situation that two people both have "version X",
+but they actually have 'different' "X"'s.  So just call it "X.1"
+and be done with it.
+
+. The insane thing.
+You really want to call the new version "X" too, 'even though'
+others have already seen the old one. So just use "git tag -f"
+again, as if you hadn't already published the old one.
+
+However, Git does *not* (and it should not)change tags behind
+users back. So if somebody already got the old tag, doing a "git
+pull" on your tree shouldn't just make them overwrite the old
+one.
+
+If somebody got a release tag from you, you cannot just change
+the tag for them by updating your own one. This is a big
+security issue, in that people MUST be able to trust their
+tag-names.  If you really want to do the insane thing, you need
+to just fess up to it, and tell people that you messed up. You
+can do that by making a very public announcement saying:
+
+------------
+Ok, I messed up, and I pushed out an earlier version tagged as X. I
+then fixed something, and retagged the *fixed* tree as X again.
+
+If you got the wrong tag, and want the new one, please delete
+the old one and fetch the new one by doing:
+
+       git tag -d X
+       git fetch origin tag X
+
+to get my updated tag.
+
+You can test which tag you have by doing
+
+       git rev-parse X
+
+which should return 0123456789abcdef.. if you have the new version.
+
+Sorry for inconvenience.
+------------
+
+Does this seem a bit complicated?  It *should* be. There is no
+way that it would be correct to just "fix" it behind peoples
+backs. People need to know that their tags might have been
+changed.
+
+
+On Automatic following
+~~~~~~~~~~~~~~~~~~~~~~
+
+If you are following somebody else's tree, you are most likely
+using tracking branches (`refs/heads/origin` in traditional
+layout, or `refs/remotes/origin/master` in the separate-remote
+layout).  You usually want the tags from the other end.
+
+On the other hand, if you are fetching because you would want a
+one-shot merge from somebody else, you typically do not want to
+get tags from there.  This happens more often for people near
+the toplevel but not limited to them.  Mere mortals when pulling
+from each other do not necessarily want to automatically get
+private anchor point tags from the other person.
+
+You would notice "please pull" messages on the mailing list says
+repo URL and branch name alone.  This is designed to be easily
+cut&pasted to "git fetch" command line:
+
+------------
+Linus, please pull from
+
+       git://git..../proj.git master
+
+to get the following updates...
+------------
+
+becomes:
+
+------------
+$ git pull git://git..../proj.git master
+------------
+
+In such a case, you do not want to automatically follow other's
+tags.
+
+One important aspect of git is it is distributed, and being
+distributed largely means there is no inherent "upstream" or
+"downstream" in the system.  On the face of it, the above
+example might seem to indicate that the tag namespace is owned
+by upper echelon of people and tags only flow downwards, but
+that is not the case.  It only shows that the usage pattern
+determines who are interested in whose tags.
+
+A one-shot pull is a sign that a commit history is now crossing
+the boundary between one circle of people (e.g. "people who are
+primarily interested in networking part of the kernel") who may
+have their own set of tags (e.g. "this is the third release
+candidate from the networking group to be proposed for general
+consumption with 2.6.21 release") to another circle of people
+(e.g. "people who integrate various subsystem improvements").
+The latter are usually not interested in the detailed tags used
+internally in the former group (that is what "internal" means).
+That is why it is desirable not to follow tags automatically in
+this case.
+
+It may well be that among networking people, they may want to
+exchange the tags internal to their group, but in that workflow
+they are most likely tracking with each other's progress by
+having tracking branches.  Again, the heuristic to automatically
+follow such tags is a good thing.
+
+
 Author
 ------
 Written by Linus Torvalds <torvalds@osdl.org>,
index 5a73f3dbb9c69482ab748adaaf13f40b11e86101..ea92c28578ca61eca2f642760aa183ac106223af 100644 (file)
--- a/git.html
+++ b/git.html
@@ -2296,7 +2296,7 @@ contributors on the git-list &lt;git@vger.kernel.org&gt;.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 12-Feb-2007 04:14:07 UTC\r
+Last updated 12-Feb-2007 07:15:22 UTC\r
 </div>\r
 </div>\r
 </body>\r