From: Kevin Ballard Date: Fri, 16 May 2008 17:40:28 GMT Subject: Re: git-svn, merging et al. Message-ID: <05A51125-339A-45A2-B2CF-8035F2FAE741@sb.org> In-Reply-To: <320075ff0805160850r473582d9qc33f71ba7f56dd51@mail.gmail.com> On May 16, 2008, at 11:50 AM, Nigel Magnay wrote: > Ok - it's Friday and I've got to interact with svn again.. > > I'm using git-svn, and I've not followed the guidance. Development has > gone on in git branches and merges - but now I need to commit the > changes back into svn, and dcommit is, understandably, not very happy. > > I'm intending to instead do something like a > git format-patch svn-branch..git-branch > git checkout svn-branch > ... apply all the patches ... > git commit > git svn dcommit > # back to the git work > git checkout git-branch > # this shouldn't have to do merging - but it will have the parents > to make it clear where the last merge happened from ? > git merge svn-branch > > > I'm happy that I'm bludgeoning changes in one big blob into SVN, as I > can reasonably say 'if you want the real details, go look at gitweb) > > I've tried doing this with > git checkout svn-branch > git merge --squash git-branch > > But I don't get the result I'm expecting - what have I missed? That merge command will produce a single commit, which isn't what you want. format-patch + am should work to linearize history, but you could also use rebase. I recommend trying something like git checkout -b test svn-branch && git format-patch svn-branch..git- branch | git am Then you can examine your test branch to make sure it's linear, make sure it compiles and looks good, then if it's good merge that into svn- branch (which will be a fast-forward). -Kevin Ballard -- Kevin Ballard http://kevin.sb.org kevin@sb.org http://www.tildesoft.com