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 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.
