merging two equivalent branches
- From
David Reitter <david.reitter@gmail.com>
- Date
- Jan 7, 2010, 18:17 UTC
- Message-ID
- <B0543B3C-C139-4BD3-B028-58B4DA132422@gmail.com>
Hello,
I have a problem with my git project, resulting from an upstream branch beyond my control being rewritten.
Can I specify parents for a revision whose history is hidden from git-log?
Concretely, I need to merge two branches that represent different conversions of the same original CVS branch (with >100k revisions). I've been working with converted branch B, but now we have a new branch A. Revisions A150 and B145 correspond to the same tree, but there is no common ancestor:
A1 -> A2 -> A3 -> .. -> A150 (A) B1 -> B2 -> B3 -> .. -> B145 (B)
I have a published downstream branch C with my own changes that started somewhere from B and has occasionally merged new developments from B. I'd now like to switch it to A. Future development will show up on A and I'd like to be able to merge it into C when that happens.
Using "git-merge -s ours" does this job nicely so that I can pull further development from the remote branch into mine.
However, git-log follows both parents of the new merge commit and thus shows many redundant commits. This is OK from the logical perspective, but because I have used the "ours" merge strategy, we're guaranteed to have only one revisions in the final tree. Thus, I wouldn't want to see all these revisions in the resulting branch. Grafts/rewrites or git-replace would probably lead to the same issue, I reckon.
Thanks for your help.