I am working on a team that primarily uses SVN, while I use mercury when possible I like to do I have set up the HG clone of the SGN repo, and many basic drag / committ / peaches seemed to work fine.
Now after 2 weeks of local development (during that time I merged the changes with an external HG repo, and merged multiple times with SVN repo), I wanted to push the SVN repo Tried, but failed with this message:
abort: Sorry, did not get the SVN parents of a merge modification.
I have faced the same problem to other users, with how to avoid this problem, but I do not
the best way What is the best way to improve matters without losing my own earnings? (With step-by-step instructions?)
You can not merge HG in a dissection store , Because SVN can not understand them.
Edit Steps to streamline history:
Warning, be prepared to do lots of merge triples
You need to activate MQ and Resize Extensions
The first step is to create a backup repository, because you will need it as a reference for an upcoming merge collision, many of them).
Show your graph like this:
C1 - C2 - C3 ------ M1 - C5 - C 6- - C7 - - M2 - \ / \ / \ - B1 - B2 - / \ - B3 - B4-B5- /
Then the second step is B on the top of C3 1 + B2 ridge:
Hg Rebase -bb2-dc3
-b Use common branches of both branches as a starting point. To reabase the mutation, it is found that B1 is the first deviation and it also uses it when you say that to rebase the B2 For area.
-d specifies the destination of the resized branch.
When you face a merge confrontation, make sure that the result of B2 '= M1, otherwise you will get many conflicts in the following amendments.
Later Merge M1 went and your graph looks like this:
C1 - C2 - C3 - B1 '- B2' - C 5 '- C6' - C7 '--- M2' - / / - B3 '- B4'-B5' - /
And for you now Second merge:
hg rebase -b b3 '-d c7' , which looks like this: C3 - B1 '- B2' - C5 '- C6' - C7 '- B3' '- B4' '- B5' '
Repeat when As long as you do not have all the linear versions history
You have flattened history to reorder your command at the top of the SDN Commit. Say your repo now looks like this (S = venture committed, C = local committed):
S1 - S2 - S3 - C1 - C2 - S4 - S 5 - C3 - C4 - C5 - C6 - C7 - S6 - S7
Now you have to take a CR (including) a mercury line (
Hg qimport-rC1): ). Use
hg qseries to see all created patches.
Then you have all the patch (
hg qgoto C1.diff] [first in this qseries] is absent , followed by
hg qpop ) then You can remove people with deviation (
hg qdelete S4.diff S5.diff S6.diff S7.diff ).
Now svn commits (
drag HG »svn-remote« ). Then again, repeat all the local patches again, one by one with
hg qpush , and fix all the merge tribs which are now happening. When you are in a conflict, you can move the existing patch to an extreme limit with
hg qfinish -a , and send your current status with
hg push Svn-remote «.
Comments
Post a Comment