[prev in list] [next in list] [prev in thread] [next in thread] 

List:       git
Subject:    Grafting Alternate History
From:       <dag () cray ! com>
Date:       2012-08-31 23:39:58
Message-ID: nng7gse7hrl.fsf () transit ! us ! cray ! com
[Download RAW message or body]

I have an unfortunate situation where I have two subversion repositories
for the same project, one a public version and one a private version.
Because they are mirrors of svn repositories, they have very different
histories as far as git is concerned.  This is not all that uncommon but
of course I would like to manage things in git.

git-svn is great for interacting with one svn repository.  The public
svn repository has a fully-supported git mirror.  The private repository
also has a fully-supported git mirror.  But I need to check in changes
to the private repository via git-svn.  I eventually need to check in
changes to the public repository as well but that is orders of magnitude
less frequent.  A manual diff+patch+git-svn is acceptable for now.

I am wondering if it's possible to graft the history of one of the git
mirrors onto an empty branch of the other and share changes between
them.  I need to take updates from the public repository and apply them
to the private repository.  This is a frequent operation.  I have been
essentially using manual diff+patch but that is highly error-prone and
annoying.

For example, let's say we take a local copy of the private repository.
I would like to somehow create an empty branch in that local copy and
then populate it with the history of the public repository.  I would
like to be able to specify a git diff-like command on the public graft
branch to get some changes over a range of commits and apply those
changes to one of the private branches (say master).  If I could use a
git-merge-like or git-rebase-like command, so much the better.  I would
like to do the same in reverse but as I said that is a much less common
operation.

Has anyone done anything like this before?  Is it even theoretically
possible to manage disjoint histories like this?

Thanks for your help!

                            -Dave
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic