{"thread":{"id":"19039","subject":"How to manage this workflow? (reloaded)","startedAt":"2009-04-24T07:59:15Z","lastAt":"2009-04-24T07:59:15Z","messageCount":1,"participants":["Josef Wolf"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"112167","messageId":"20090424075915.GB15420@raven.wolf.lan","threadId":"19039","inReplyTo":null,"subject":"How to manage this workflow? (reloaded)","fromName":"Josef Wolf","fromEmail":"jw@raven.inka.de","sentAt":"2009-04-24T07:59:15Z","receivedAt":"2009-04-24T07:59:15Z","isPatch":false,"sender":{"key":"jw@raven.inka.de","avatar":null},"body":"Hello,\n\nI have two subversion repositories which I would like to synchronize via\ngit-svn.  For this, I have set up a git repository and configured two\nbranches to track the subversion repositories via git-svn:\n\n    mkdir test-sync\n    cd    test-sync\n    git svn init --stdlayout file://$REPOSDIR/svn-first\n\n    for repos in svn-first svn-second; do\n        git config svn-remote.$repos.url      file://$REPOSDIR/$repos\n        git config svn-remote.$repos.fetch    trunk:refs/remotes/$repos/trunk\n        git config svn-remote.$repos.branches branches/*:refs/remotes/$repos/*\n        git config svn-remote.$repos.tags     tags/*:refs/remotes/$repos/tags/*\n        git svn fetch -R $repos\n        git checkout -b $repos $repos/trunk\n    done\n    git gc\n\nThis gives me two remote and two local branches:\n\n    master\n    svn-first\n  * svn-second\n    svn-first/trunk\n    svn-second/trunk\n\nAs a first step, I tried to \"mirror\" the manual \"merges\" that were done\nbetween the subversion repositories in the past:\n\n    git checkout svn-first\n    git cherry-pick svn-second-sha1 .... # repeat as needed\n\n    git checkout svn-second\n    git cherry-pick svn-first-sha1 .... # repeat as needed\n\nSo I've spent almost 4 weeks to cherry-pick and resolve all the conflicts.\nLooks good so far, since\n\n    git diff svn-first svn-second\n    git diff svn-first/trunk svn-first/trunk\n    git diff svn-second/trunk svn-second/trunk\n\ngive me the desired outputs.  Now I do\n\n    git checkout svn-first\n    git merge -s ours svn-second\n    git checkout svn-second\n    git merge -s ours svn-first\n\nto tell git that the branches are in sync.\n\nBut now, when I try to\n\n    git checkout svn-second\n    git svn rebase\n\nI get lots of conflicts.  When I inspect the .git/rebase-apply directory\nand the conflicts, it looks like \"git svn rebase\" tries to re-apply all\nthe commits from svn-first.  When I omit the \"git merge -s ours svn-first\"\ncommand, it does not re-apply those commits.  So it looks like the\n\"git merge -s ours\" wipes some information that git-svn needs to know\nwhat was already merged.\n\nWhat am I missing?  I thought the \"ours\" strategy is meant to tell git\nthat everything from that branch was merged, either manually or by\ncherry-pick.\n\nAny hints how to track this down?\n\nBTW: this is git version 1.6.0.2\n"}]}