Re: Trying to sync two svn repositories with git-svn (repost)
- From
- Josef Wolf <jw@raven.inka.de>
- Date
- May 4, 2009, 21:14 UTC
- Message-ID
- <20090504211423.GK15420@raven.wolf.lan>
- In-Reply-To
- <32541b130905040858v2a0b7a6br5b056a365fcb6855@mail.gmail.com>
On Mon, May 04, 2009 at 11:58:20AM -0400, Avery Pennarun wrote:
Show 16 quoted lines
> 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: > [...] > > # 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.
Yeah, you're right. That was a typo.
Fixing this, the "getting started" seems to work now: the cherry-picked commits end up in the svn repositories. But the synchronization after the "getting started" does not seem to work yet. Here's what I've done:
git tag svn-1-orig svn-1 git tag svn-2-orig svn-2
# move cherries to svn-2 # git svn fetch svn-1 git checkout svn-2 git cherry-pick c9da [ ... ] git merge --no-ff -s ours svn-1 git checkout svn-2/trunk git merge --no-ff svn-2 git svn dcommit git diff svn-2-orig svn-2/trunk # check what I've done
# move cherries to svn-1 # git svn fetch svn-2 git checkout svn-1 git cherry-pick 05b9 [ ... ] git merge --no-ff -s ours svn-2 git checkout svn-1/trunk git merge --no-ff svn-1 git svn dcommit git diff svn-1-orig svn-1/trunk # check what I've done
git diff svn-1/trunk svn-2/trunk # shows the diffs I want to keep
# now try a synchronization # git checkout svn-2/trunk git svn fetch svn-1 # nothing new was checked in yet git merge --no-ff svn-1 git svn dcommit
Since no new commits were made in svn, those four commands should be almost a no-op.
But Instead of merging only the changes that were done after the last synchronization, the last dcommit makes svn-2/trunk identical to svn-1. This effectively wipes all the differences which I would like to keep.