about summary refs log tree commit diff
path: root/third_party/git/Documentation/howto/using-merge-subtree.txt
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/Documentation/howto/using-merge-subtree.txt')
-rw-r--r--third_party/git/Documentation/howto/using-merge-subtree.txt75
1 files changed, 0 insertions, 75 deletions
diff --git a/third_party/git/Documentation/howto/using-merge-subtree.txt b/third_party/git/Documentation/howto/using-merge-subtree.txt
deleted file mode 100644
index a499a94ac2..0000000000
--- a/third_party/git/Documentation/howto/using-merge-subtree.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-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 a 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 --allow-unrelated-histories 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
-  connect its history to yours, which can be something they don't want
-  to.