From: Josef Wolf <jw@raven.inka.de>
To: Avery Pennarun <apenwarr@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Trying to sync two svn repositories with git-svn (repost)
Date: Sat, 2 May 2009 23:58:52 +0200 [thread overview]
Message-ID: <20090502215852.GJ15420@raven.wolf.lan> (raw)
In-Reply-To: <32541b130905011217x7f339d41x696fedee7298e3a4@mail.gmail.com>
On Fri, May 01, 2009 at 03:17:14PM -0400, Avery Pennarun wrote:
> On Fri, May 1, 2009 at 10:28 AM, Josef Wolf <jw@raven.inka.de> wrote:
> > On Thu, Apr 30, 2009 at 06:59:50PM -0400, Avery Pennarun wrote:
> >> "git log -1 first-svn" would give you the first cherry-pick. But
> >> remember, it's a completely different branch.
> >
> > I can see why this happens, but I still find it confusing. Maybe I
> > should help with the -m option?
>
> I don't know what -m does. Maybe try looking at the graph with gitk;
> that might give some clues.
Option -m lets me set the log message explicitly :)
> >> Okay, if you want to end up with two different remote branches, it
> >> makes sense to have two different local branches.
> >
> > Well, I _have_ two different remotes because I have two svn repositories.
>
> Right. I was just wondering whether you wanted the two branches'
> contents to be *different* or identical. I guess different.
They have to stay different, because they are localized.
> > Then I have to keep both local branches. But I still wonder why you
> > suggested to go with _one_ local branch.
>
> For my own purposes, I try not to create a 1:1 mapping between local
> branches and remote branches; this just ends up being confusing,
> because I can have commits in my local branch that aren't in the
> remote one, and vice versa. So it's not very useful to create a local
> branch *just* because I have a corresponding remote branch.
>
> In your case, you might want to have just a single local branch for
> your "public" stuff. You would then merge changes from the two svn
> remote branches into your local branch, and you'd also merge from your
> local branch into your remote branches (using a disconnected HEAD and
> svn dcommit).
But I am working not only on the "public" stuff. Additionally, I am
working on _multiple_ localized stuff. Thus, I have multiple remote
repositories.
Somehow, I still can't get it work. This is what I do:
# create the repos
#
git svn init --stdlayout file:///var/tmp/builds/git-sync/svn/svn-1
git config merge.stat true
# add configuration for svn-1 repos
#
git config svn-remote.svn-1.url file:///var/tmp/builds/git-sync/svn/svn-1
git config svn-remote.svn-1.fetch trunk:refs/remotes/svn-1/trunk
git config svn-remote.svn-1.branches branches/*:refs/remotes/svn-1/*
git config svn-remote.svn-1.tags tags/*:refs/remotes/svn-1/tags/*
# add configuration for svn-2 repos
#
git config svn-remote.svn-2.url file:///var/tmp/builds/git-sync/svn/svn-2
git config svn-remote.svn-2.fetch trunk:refs/remotes/svn-2/trunk
git config svn-remote.svn-2.branches branches/*:refs/remotes/svn-2/*
git config svn-remote.svn-2.tags tags/*:refs/remotes/svn-2/tags/*
# fetch the commits from svn repositories
#
git svn fetch -R svn-1
git svn fetch -R svn-2
# create local tracking branches
#
git checkout -b svn-1 svn-1/trunk
git checkout -b svn-2 svn-2/trunk
# just to see what we've done
#
git tag svn-1-orig svn-1
git tag svn-2-orig svn-2
# 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
# check what I have done
#
git diff svn-1-orig svn-1/trunk # shows what I expect
# move the result to svn-1
#
git checkout svn-1/trunk
git merge --no-ff svn-1
git svn dcommit
# 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
# check what I have done
#
git diff svn-2-orig svn-2/trunk # shows what I expect
# move the result to svn-2
#
git checkout svn-2/trunk
git merge --no-ff svn-2
git svn dcommit
At this point, we should be synchronized.
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.
next prev parent reply other threads:[~2009-05-02 22:03 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-27 20:12 Trying to sync two svn repositories with git-svn (repost) Josef Wolf
2009-04-28 20:30 ` Josef Wolf
2009-04-28 20:53 ` Avery Pennarun
2009-04-28 22:37 ` Josef Wolf
2009-04-29 3:19 ` Avery Pennarun
2009-04-29 16:01 ` Josef Wolf
2009-04-29 18:13 ` Avery Pennarun
2009-04-29 22:37 ` Josef Wolf
2009-04-30 2:07 ` Avery Pennarun
2009-04-30 22:28 ` Josef Wolf
2009-04-30 22:59 ` Avery Pennarun
2009-05-01 14:28 ` Josef Wolf
2009-05-01 19:17 ` Avery Pennarun
2009-05-02 21:58 ` Josef Wolf [this message]
2009-05-04 15:58 ` Avery Pennarun
2009-05-04 21:14 ` Josef Wolf
2009-05-06 18:52 ` Josef Wolf
2009-05-06 19:23 ` Avery Pennarun
2009-05-06 22:50 ` Josef Wolf
2009-05-08 20:44 ` Avery Pennarun
2009-05-08 23:58 ` Josef Wolf
2009-05-13 12:09 ` Josef Wolf
2009-05-13 17:28 ` Avery Pennarun
2009-05-13 22:22 ` Josef Wolf
2009-05-14 6:35 ` Avery Pennarun
2009-05-14 21:41 ` Josef Wolf
2009-05-14 21:57 ` Avery Pennarun
2009-05-15 17:52 ` Josef Wolf
2009-05-15 19:05 ` Avery Pennarun
2009-05-17 11:24 ` Josef Wolf
2009-05-20 16:40 ` Josef Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090502215852.GJ15420@raven.wolf.lan \
--to=jw@raven.inka.de \
--cc=apenwarr@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).