On Wed, May 20, 2009 at 6:08 PM, Daniel Spiewak <djspie...@gmail.com> wrote:
> :-) That's alright. I finally got things working myself. Step one > (assuming an existing repository cloned from buildr/buildr): > > $ git remote add apache git://git.apache.org/buildr.git > $ git fetch apache > $ git branch trunk apache/trunk > > Step two: > > $ cd .git > $ wget http://git.apache.org/authors.txt > $ cd .. > $ git config svn.authorsfile .git/authors.txt > > Step three: > > $ git checkout trunk > $ git svn init --prefix=apache/ --username=djspiewak -s > https://svn.apache.org/repos/asf/buildr > $ git svn rebase > > At this point, you should have a fully-updated trunk/ branch in sync with > the SVN repository. Now, the annoying part... For each local branch, we > have to identify the exact branch-point; where that branch diverged from > the > SVN trunk/. Now, find the corresponding commit in the `trunk` branch and > tag it as `branch-point`. Perform the following: > > $ git checkout *branch* > $ git rebase branch-point > # resolve any conflicts using mergetool > > If you do this for all your branches, you should get a working tree based > on > the new git clone. You can git svn dcommit from trunk/ and the results > will > be pushed into the SVN as expected. Running a git svn rebase in trunk/ > will > bring it up to date with any new changes. > > The main disadvantage to this rebasing is that you will lose any merge > history between your local branches. All of the commit data should still > be > there, but rebase will linearize it for each branch you rebase. In other > words, if you started with four local branches with various cross-merging, > you will end up with four local branches without any connectivity > whatsoever. I think it's a small price to pay though for actually getting > this working. > > Are we planning to re-sync the "townhall" based on the official Apache > clone? I would vote "no" on this one, instead pointing Git-hungry people > to > the official source. Our personal clones can (and I believe, should) > remain > on GitHub, since it makes for a very nice way to collaborate. We should > however try to get everything rebased against the same commit tree. :-) > Also, for the sake of GitHub's pretty graphs, we should also build our > repositories by using the "Fork" mechanism. My repository on GitHub is > currently in sync with the above (except that `trunk` is a local branch and > `master` contains some other stuff). If we decide on a central "fork > point", I will recreate the GitHub repo based on that fork and then fold in > my changes *again*. +1 to all of these points. Assaf > > > Daniel > > On Wed, May 20, 2009 at 7:24 PM, Assaf Arkin <ar...@intalio.com> wrote: > > > On Fri, May 15, 2009 at 4:20 PM, Daniel Spiewak <djspie...@gmail.com> > > wrote: > > > > > My committer creds finally came through! :-) Anyway, I would like to > > get > > > setup so I can commit to the SVN and push to the Git townhall, but this > > > seems to be a somewhat non-trivial process. Critically, I want to be > > able > > > to preserve all of the branches (both local and remote) and > > customizations > > > that I've built up as part of my GitHub fork. Any suggestions on the > > best > > > way to do this? Actually, this should probably be on a wiki page > > > somewhere, > > > but until then... > > > > > > my git-svn is still broken, though I did progress into a different error > > (and infinite loop on svn fetch) since upgrading to 1.6.3.1, so right now > > I'm not the best person to ask :-) > > > > > > > > > > > > > Daniel > > > > > >