
On 3/26/2012 6:14 PM, Daniel James wrote:
On 26 March 2012 06:48, Martin Geisler <mg@aragost.com> wrote:
You can split a Git or Mercurial repository into two new repositories and extract a sub-tree but you're rewriting history when you do it. Rewriting history implies getting new SHA-1 hash values for the changesets (since their content changes) and so you get *new* and unrelated repositories out of this.
git-subtree does annotate commits (in the commit message) so that it can track transferring changes between the two repositories. I don't know how well it works for transferring changes in both directions. But I think it only allows you to extract a single directory; spirit would need to extract two: boost/spirit and libs/spirit.
It's frustrating to have to go through all these hoops to do such a (IMO) trivial and necessary task. I'm now forming a conclusion that current DVCS systems (both Git and Hg) fail in this regard. Needless to say, this task is equally frustrating to do with SVN as well. All I want to do is to extract a modular Spirit repo from the monolithic Boost repo, with the ability to easily do upstream/ downstream merges. But I can't do it *easily* with any of the DVCS mentioned. I guess it's back to SVN. The amount of hair pulling is the same whatever D/VCS I try. Oh well... Regards, -- Joel de Guzman http://www.boostpro.com http://boost-spirit.com