Autogenerated HTML docs for v1.5.4-rc3-11-g4e67
authorJunio C Hamano <junio@hera.kernel.org>
Tue, 15 Jan 2008 08:31:10 +0000 (08:31 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Tue, 15 Jan 2008 08:31:10 +0000 (08:31 +0000)
config.txt
git-config.html
git-rerere.html
git-rerere.txt
howto-index.html
howto-index.txt
howto/using-merge-subtree.html [new file with mode: 0644]
howto/using-merge-subtree.txt [new file with mode: 0644]

index df091d1b8a6ae5fa340171d1a58854d41b6246d7..877eda960d5964b4c036433899977cf47f17846b 100644 (file)
@@ -543,8 +543,8 @@ rerere.enabled::
        Activate recording of resolved conflicts, so that identical
        conflict hunks can be resolved automatically, should they
        be encountered again.  linkgit:git-rerere[1] command is by
-       default enabled, but can be disabled by setting this option to
-       false.
+       default enabled if you create `rr-cache` directory under
+       `$GIT_DIR`, but can be disabled by setting this option to false.
 
 gitcvs.enabled::
        Whether the CVS server interface is enabled for this repository.
index 61e1f4a51910e038f1a7dfbd39cd711d04a4c83f..745cd72a3b40e0785e0821d65383a584ae8e4cda 100644 (file)
@@ -1522,8 +1522,8 @@ rerere.enabled
         Activate recording of resolved conflicts, so that identical\r
         conflict hunks can be resolved automatically, should they\r
         be encountered again.  <a href="git-rerere.html">git-rerere(1)</a> command is by\r
-        default enabled, but can be disabled by setting this option to\r
-        false.\r
+        default enabled if you create <tt>rr-cache</tt> directory under\r
+        <tt>$GIT_DIR</tt>, but can be disabled by setting this option to false.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -2203,7 +2203,7 @@ web.browser
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 12-Jan-2008 06:43:55 UTC\r
+Last updated 15-Jan-2008 08:30:41 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 80f498aa88600ebea9af1340873ff14c84d45d11..a380aa3c06211709c05f61f10da042765b4ada55 100644 (file)
@@ -284,6 +284,15 @@ to the "release" branch, or sent out and accepted upstream).</p>
 automerge results and corresponding hand-resolve results on the\r
 initial manual merge, and later by noticing the same automerge\r
 results and applying the previously recorded hand resolution.</p>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Note</div>\r
+</td>\r
+<td class="content">You need to set the configuration variable rerere.enabled to\r
+enable this command.</td>\r
+</tr></table>\r
+</div>\r
 </div>\r
 <h2>COMMANDS</h2>\r
 <div class="sectionbody">\r
@@ -472,7 +481,7 @@ conflict.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 07-Jan-2008 07:50:42 UTC\r
+Last updated 15-Jan-2008 08:30:41 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 3793267dadfa52a30cb59ad75170f5f9e9b8e81f..a53858e2503f52b68739264f026c6532ba733d1f 100644 (file)
@@ -22,6 +22,10 @@ automerge results and corresponding hand-resolve results on the
 initial manual merge, and later by noticing the same automerge
 results and applying the previously recorded hand resolution.
 
+[NOTE]
+You need to set the configuration variable rerere.enabled to
+enable this command.
+
 
 COMMANDS
 --------
index 7d73162cb206899bdd91ee6d5652bedde107b57d..60318f78913385252678767dc36caf2561defe73 100644 (file)
@@ -356,12 +356,19 @@ into which branch and who can make a tag.</p>
 <a href="howto/use-git-daemon.txt">use-git-daemon</a>\r
 </p>\r
 </li>\r
+<li>\r
+<p>\r
+<a href="howto/using-merge-subtree.html">using-merge-subtree</a> by Sean &lt;seanlkml@sympatico.ca&gt;\r
+</p>\r
+</li>\r
 </ul>\r
+<p>In this article, Sean demonstrates how one can use the subtree merge\r
+strategy.</p>\r
 </div>\r
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 07-Jan-2008 07:51:11 UTC\r
+Last updated 15-Jan-2008 08:30:42 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 351093c24c80249e63a8c36bfcb9d0c08d05c229..20ce40ba6fc92c954a5cf30d37f65a991d968a81 100644 (file)
@@ -68,3 +68,9 @@ into which branch and who can make a tag.
 
 
 
+* link:howto/using-merge-subtree.html[using-merge-subtree] by Sean <seanlkml@sympatico.ca>
+
+In this article, Sean demonstrates how one can use the subtree merge
+strategy.
+
+
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
new file mode 100644 (file)
index 0000000..b568a81
--- /dev/null
@@ -0,0 +1,372 @@
+<!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>How to use the subtree merge strategy</title>\r
+</head>\r
+<body>\r
+<div id="header">\r
+<h1>How to use the subtree merge strategy</h1>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<p>There are situations where you want to include contents in your project\r
+from an independently developed project. You can just pull from the\r
+other project as long as there are no conflicting paths.</p>\r
+<p>The problematic case is when there are conflicting files. Potential\r
+candidates are Makefiles and other standard filenames. You could merge\r
+these files but probably you do not want to.  A better solution for this\r
+problem can be to merge the project as its own subdirectory. This is not\r
+supported by the <em>recursive</em> merge strategy, so just pulling won't work.</p>\r
+<p>What you want is the <em>subtree</em> merge strategy, which helps you in such a\r
+situation.</p>\r
+<p>In this example, let's say you have the repository at <tt>/path/to/B</tt> (but\r
+it can be an URL as well, if you want). You want to merge the <em>master</em>\r
+branch of that repository to the <tt>dir-B</tt> subdirectory in your current\r
+branch.</p>\r
+<p>Here is the command sequence you need:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ git remote add -f Bproject /path/to/B <b>(1)</b>\r
+$ git merge -s ours --no-commit Bproject/master <b>(2)</b>\r
+$ git read-tree --prefix=dir-B/ -u Bproject/master <b>(3)</b>\r
+$ git commit -m "Merge B project as our subdirectory" <b>(4)</b>\r
+\r
+$ git pull -s subtree Bproject master <b>(5)</b></tt></pre>\r
+</div></div>\r
+<ol>\r
+<li>\r
+<p>\r
+name the other project "Bproject", and fetch.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+prepare for the later step to record the result as a merge.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+read "master" branch of Bproject to the subdirectory "dir-B".\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+record the merge result.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+maintain the result with subsequent merges using "subtree"\r
+</p>\r
+</li>\r
+</ol>\r
+<p>The first four commands are used for the initial merge, while the last\r
+one is to merge updates from <em>B project</em>.</p>\r
+</div>\r
+</div>\r
+<h2>Comparing <em>subtree</em> merge with submodules</h2>\r
+<div class="sectionbody">\r
+<ul>\r
+<li>\r
+<p>\r
+The benefit of using subtree merge is that it requires less\r
+  administrative burden from the users of your repository. It works with\r
+  older (before Git v1.5.2) clients and you have the code right after\r
+  clone.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+However if you use submodules then you can choose not to transfer the\r
+  submodule objects. This may be a problem with the subtree merge.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Also, in case you make changes to the other project, it is easier to\r
+  submit changes if you just use submodules.\r
+</p>\r
+</li>\r
+</ul>\r
+</div>\r
+<h2>Additional tips</h2>\r
+<div class="sectionbody">\r
+<ul>\r
+<li>\r
+<p>\r
+If you made changes to the other project in your repository, they may\r
+  want to merge from your project. This is possible using subtree &#8212; it\r
+  can shift up the paths in your tree and then they can merge only the\r
+  relevant parts of your tree.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Please note that if the other project merges from you, then it will\r
+  connects its history to yours, which can be something they don't want\r
+  to.\r
+</p>\r
+</li>\r
+</ul>\r
+</div>\r
+<div id="footer">\r
+<div id="footer-text">\r
+Last updated 15-Jan-2008 08:30:42 UTC\r
+</div>\r
+</div>\r
+</body>\r
+</html>\r
diff --git a/howto/using-merge-subtree.txt b/howto/using-merge-subtree.txt
new file mode 100644 (file)
index 0000000..0953a50
--- /dev/null
@@ -0,0 +1,75 @@
+Date: Sat, 5 Jan 2008 20:17:40 -0500
+From: Sean <seanlkml@sympatico.ca>
+To: Miklos Vajna <vmiklos@frugalware.org>
+Cc: git@vger.kernel.org
+Subject: how to use git merge -s subtree?
+Abstract: In this article, Sean demonstrates how one can use the subtree merge
+ strategy.
+Content-type: text/asciidoc
+Message-ID: <BAYC1-PASMTP12374B54BA370A1E1C6E78AE4E0@CEZ.ICE>
+
+How to use the subtree merge strategy
+=====================================
+
+There are situations where you want to include contents in your project
+from an independently developed project. You can just pull from the
+other project as long as there are no conflicting paths.
+
+The problematic case is when there are conflicting files. Potential
+candidates are Makefiles and other standard filenames. You could merge
+these files but probably you do not want to.  A better solution for this
+problem can be to merge the project as its own subdirectory. This is not
+supported by the 'recursive' merge strategy, so just pulling won't work.
+
+What you want is the 'subtree' merge strategy, which helps you in such a
+situation.
+
+In this example, let's say you have the repository at `/path/to/B` (but
+it can be an URL as well, if you want). You want to merge the 'master'
+branch of that repository to the `dir-B` subdirectory in your current
+branch.
+
+Here is the command sequence you need:
+
+----------------
+$ git remote add -f Bproject /path/to/B <1>
+$ git merge -s ours --no-commit Bproject/master <2>
+$ git read-tree --prefix=dir-B/ -u Bproject/master <3>
+$ git commit -m "Merge B project as our subdirectory" <4>
+
+$ git pull -s subtree Bproject master <5>
+----------------
+<1> name the other project "Bproject", and fetch.
+<2> prepare for the later step to record the result as a merge.
+<3> read "master" branch of Bproject to the subdirectory "dir-B".
+<4> record the merge result.
+<5> maintain the result with subsequent merges using "subtree"
+
+The first four commands are used for the initial merge, while the last
+one is to merge updates from 'B project'.
+
+Comparing 'subtree' merge with submodules
+-----------------------------------------
+
+- The benefit of using subtree merge is that it requires less
+  administrative burden from the users of your repository. It works with
+  older (before Git v1.5.2) clients and you have the code right after
+  clone.
+
+- However if you use submodules then you can choose not to transfer the
+  submodule objects. This may be a problem with the subtree merge.
+
+- Also, in case you make changes to the other project, it is easier to
+  submit changes if you just use submodules.
+
+Additional tips
+---------------
+
+- If you made changes to the other project in your repository, they may
+  want to merge from your project. This is possible using subtree -- it
+  can shift up the paths in your tree and then they can merge only the
+  relevant parts of your tree.
+
+- Please note that if the other project merges from you, then it will
+  connects its history to yours, which can be something they don't want
+  to.