Re: Trying to sync two svn repositories with git-svn (repost)
From: Avery Pennarun <hidden>
Date: 2016-06-15 22:46:42
On Sat, May 2, 2009 at 5:58 PM, Josef Wolf [off-list ref] wrote:
Somehow, I still can't get it work. This is what I do:
[...]
# 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.
# move the result to svn-1 # git checkout svn-1/trunk git merge --no-ff svn-1 git svn dcommit
This looks ok.
# 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.
# 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.
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