OpenBMC subtree management tool
-------------------------------

Quickstart
-------------------------------
From whatever directory this repository was cloned to:
git clone ssh://openbmc.gerrit/openbmc/openbmc
scp -p -P 29418 openbmc.gerrit:hooks/commit-msg openbmc/.git/hooks
./openbmc-subtree update -c master.conf -t openbmc -sxa
cd openbmc && git push origin HEAD:refs/for/master

Description
-------------------------------
openbmc-subtree is a combo-layer inspired tool for managing the various subtrees
of the openbmc repository for the OpenBMC project.

Unlike combo-layer, openbmc-subtree does not try to be a general purpose tool
and drops support for things like python-in-configuration and script callbacks
on patch generation.  Further, support for generating combo repositories from
scratch is not fully implemented and completely untested.

openbmc-subtree also differs from combo-layer in that it makes use of git's
subtree merge strategy to create patches instead of generating and manipulating
patches directly.

Finally openbmc-subtree introduces support for a "reset" usage scenario where a
subtree can be completely reset - OpenBMC uses this when switching from one
upstream release branch to another.

Adding new subtrees
-------------------------------
To add a new subtree, simply clone the subtree repository to the desired
directory.  Optionally check out the desired subtree repository branch.  Make a
note of the subtree working tree commit SHA, and then delete the subtree git
repository: 'rm -r .git'.  Finally, add the new subtree metadata to the
configuration file, with last_revision set to the commit SHA noted previously.