threads / discuss / 19039

How to manage this workflow? (reloaded)

Subject: How to manage this workflow? (reloaded)

## tl;dr

One message between Apr 24, 2009 and Apr 24, 2009.

replies: 0people: 1as markdown or json

Josef Wolf· Apr 24, 2009, 07:59 UTC · lore
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

← back to recent threads