* How to sync two svn repositories via git? (reloaded)
@ 2009-04-24 7:08 Josef Wolf
0 siblings, 0 replies; only message in thread
From: Josef Wolf @ 2009-04-24 7:08 UTC (permalink / raw)
To: "To:git"
Hello,
I have two subversion repositories which I would like to synchronize via
git-svn. For this, I have set up a git repository and configured two
branches to track the subversion repositories via git-svn:
mkdir test-sync
cd test-sync
git svn init --stdlayout file://$REPOSDIR/svn-first
for repos in svn-first svn-second; do
git config svn-remote.$repos.url file://$REPOSDIR/$repos
git config svn-remote.$repos.fetch trunk:refs/remotes/$repos/trunk
git config svn-remote.$repos.branches branches/*:refs/remotes/$repos/*
git config svn-remote.$repos.tags tags/*:refs/remotes/$repos/tags/*
git svn fetch -R $repos
git checkout -b $repos $repos/trunk
done
git gc
This gives me two remote and two local branches:
master
svn-first
* svn-second
svn-first/trunk
svn-second/trunk
As a first step, I tried to "mirror" the manual "merges" that were done
between the subversion repositories in the past:
git checkout svn-first
git cherry-pick svn-second-sha1 .... # repeat as needed
git checkout svn-second
git cherry-pick svn-first-sha1 .... # repeat as needed
So I've spent almost 4 weeks to cherry-pick and resolve all the conflicts.
Looks good so far, since
git diff svn-first svn-second
git diff svn-first/trunk svn-first/trunk
git diff svn-second/trunk svn-second/trunk
give me the desired outputs. Now I do
git checkout svn-first
git merge -s ours svn-second
git checkout svn-second
git merge -s ours svn-first
to tell git that the branches are in sync.
But now, when I try to
git checkout svn-second
git svn rebase
I get lots of conflicts. When I inspect the .git/rebase-apply directory
and the conflicts, it looks like "git svn rebase" tries to re-apply all
the commits from svn-first. When I omit the "git merge -s ours svn-first"
command, it does not re-apply those commits. So it looks like the
"git merge -s ours" wipes some information that git-svn needs to know
what was already merged.
What am I missing? I thought the "ours" strategy is meant to tell git
that everything from that branch was merged, either manually or by
cherry-pick.
Any hints how to track this down?
BTW: this is git version 1.6.0.2
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-04-24 7:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-24 7:08 How to sync two svn repositories via git? (reloaded) Josef Wolf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.