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

List:       git
Subject:    Re: merging branches with separate but identical history
From:       Jonathan Nieder <jrnieder () gmail ! com>
Date:       2010-08-31 21:16:02
Message-ID: 20100831211602.GF5911 () burratino
[Download RAW message or body]

Hi,

Craig de Stigter wrote:

> I have two branches which start with the same commits, and I want to merge them.
> I believe the two branches were individually pulled from the same SVN
> repo
[...]
> If I do:
>> git checkout branch1
>> git merge branch2
> Merge made by recursive
> 
> The merge succeeds but the commits in each branch aren't squashed
> together (git log shows two commits for each actual commit)
>   i.e., now my history looks like this:
> 
> a--a--b--b--c--c--d--d--e--e--f--f--1--2--3--4--5--6
> 
> Is there a way to do this without the duplicates? (perhaps a way to
> mark the branch as merged up to 'f', without actually performing a
> merge?)

No.  I would suggest trying

 git cat-file commit a
 git cat-file commit A

where a and A are the two versions of "a" and comparing them.
How do they differ?

If you don't care about superseding the old history and just want
to combine the two branches into a single history, you can try something
like this:

 $ git checkout branch1
 $ git rebase -i branch1~3 --onto branch2~3
 $ git merge branch2

If the history after the fork point is not linear, you can still do
something very similar with grafts.  See git-filter-branch(1) for
details.

Hope that helps,
Jonathan
--
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