Re: Trying to sync two svn repositories with git-svn (repost)
- From
Avery Pennarun <apenwarr@gmail.com>
- Date
- May 4, 2009, 15:58 UTC
- Message-ID
- <32541b130905040858v2a0b7a6br5b056a365fcb6855@mail.gmail.com>
- In-Reply-To
- <20090502215852.GJ15420@raven.wolf.lan>
On Sat, May 2, 2009 at 5:58 PM, Josef Wolf <jw@raven.inka.de> wrote:
> Somehow, I still can't get it work. This is what I do:
[...]
Show 7 quoted lines
> # move stuff from svn-2 to svn-1 > # > git svn fetch svn-2 > git checkout svn-1 > git cherry-pick 05b964 > [ continue cherry-picking ] > git merge --no-ff -s ours svn-1
Note that you probably should be merging '-s ours svn-2' here, not svn-1. svn-1 already contains svn-1 (of course) so that merge didn't do anything. It most especially doesn't mark svn-1 as being up-to-date with svn-2, and that's probably going to make trouble later.
> # check what I have done > # > git diff svn-1-orig svn-1/trunk # shows what I expect
This is unsurprising, since you haven't changed either branch during the above.
Show 5 quoted lines
> # move the result to svn-1 > # > git checkout svn-1/trunk > git merge --no-ff svn-1 > git svn dcommit
This looks ok.
Show 7 quoted lines
> # move stuff from svn-1 to svn-2 > # > git svn fetch svn-1 > git checkout svn-2 > git cherry-pick -n c9dae > [ continue cherry-picking ] > git merge --no-ff -s ours svn-2
Again, you seem to have merged in the wrong branch here. This one should be svn-1.
> # check what I have done > # > git diff svn-2-orig svn-2/trunk # shows what I expect
Again, these branches haven't changed, so no surprise here either.
Show 5 quoted lines
> # move the result to svn-2 > # > git checkout svn-2/trunk > git merge --no-ff svn-2 > git svn dcommit
This seems ok.
> At this point, we should be synchronized.
Yes, although there are no merges between svn-1 and svn-2, so the next attempt at merging will merge *everything*, causing conflicts.
Show 6 quoted lines
> git checkout svn-2/trunk > git svn fetch svn-1 > git merge --no-ff svn-1 > > BOOM. Although no new commits were fetched, we get a lot of conflicts > here. So git is not fully aware about the fact that we are synchronized.
You seem to almost have it. Fix the -s ours merges above and I think you'll be in business.
Have fun,
Avery