Re: Merging (joining/stiching/rewriting) history of "unrelated" git repositories
- From
Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
- Date
- May 16, 2019, 06:10 UTC
- Message-ID
- <CAA01CsrAPfE+hMwNMEF7epRcFQyhdeBxm9qSH=eF6v3kyyMu2w@mail.gmail.com>
- In-Reply-To
- <874l5vwxhw.fsf@evledraar.gmail.com>
On Wed, May 15, 2019 at 5:25 PM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 12 quoted lines
> > > On Wed, May 15 2019, Piotr Krukowiecki wrote: > > > Hello, > > > > I'm migrating two repositories from svn. I already did svn->git > > migration (git-svn clone) and now have two git repositories. > > > > I would like to merge them into 1 git repository, but to merge also > > history - branches and tags. > >
[...]
Show 17 quoted lines
> > There's additional difficulty of handling merges... > > > You might be able to use https://github.com/newren/git-filter-repo > > But I'd say try something even more stupid first: > > 1. Migrate repo A to Git > 2. Migrate repo B to Git > 3. "git subtree add" B's history to A > 4. "git rebase" the history to linear-ize it > > At this point you'll have A's history first, then B. Then run some > script to date order the commits, and just "git cherry-pick" those in > the order desired in a loop to a fresh history. > > Maybe that sort of stupidity will wreck your merges etc., so you might > need less stupid methods :)
I think both git-filter-repo and the subtree+rebase do not handle branches/merges well :(
-- Piotr Krukowiecki