Hi, I have a few topic branches that I forked off of the old git-svn
repo run by Jim Lindley on GitHub. I'd like to keep these branches up-
to-date with trunk, but this is complicated slightly by the fact that
the preferred git mirror for CouchDB is now the one run by Tim Carey-
Smith (halorgium), which has a different working tree structure than
jlindley's old one. Here's what I did, hopefully someone else finds
it useful. All commands are executed with the topic branch checked
out ...
1) Reorganize the topic branch's working tree to look like halorgium's
master:
git rm -r branches site supplement tags vendor
git commit -m "don't include SVN branches, tags, etc. in working tree"
git mv trunk/* .
rmdir trunk
git commit -m "move trunk contents to root"
2) Find the latest SVN commit that shows up in the new master and my
topic branch. The git objects corresponding to that SVN commit will
be different. Merge that commit from master into the branch:
git merge d9a5ce0955f28373eeeab9537a37bc549f3da013
3) Step 2 almost certainly required some manual conflict resolution,
but hopefully we minimized it by choosing the latest common SVN
commit. Now we can merge all the newer changes in trunk. I tried
doing this with a git-rebase, but rebase didn't know how to handle the
step where I moved trunk's contents into the working tree, so:
git merge master
I'm not a git pro by any means, so I'd be happy to hear if there are
other, better ways of handling this. Best, Adam