Here's what I did: * Create a copy of my git-svn repo to avoid messing it up (I will refer to this as copy-repo). * cd to the copied repo * Make the blender folder the root of the repot with: git filter-branch --subdirectory-filter blender/ -- --all * cd into your new Blender repo * Add your old repo as a remote: git remote add old <path-to-copy-repo> * Checkout a branch you want to transplant: git checkout old_branch (git should find it from the remote)
Now we need to rebase the history, which for me was kind of painful, so someone might have a better solution, but here is what I did: * git rebase master -i * Select all the commits that aren't part of my branch and delete them * I then had a merge conflict with every revision due to the scons folder now being a module (this could probably be fixed with another git filter-branch) * I just used git mergetool, chose local, and did git rebase --continue (I only had 15 revisions, so this didn't take too long) This only handles one branch at a time, but that also means I can pull them over as needed. I'm not very knowledgeable with git, and there could be an easier way, but this seems to be a little simpler for smaller branches. --Mitchell Stokes On Sun, Nov 17, 2013 at 10:36 AM, Julien RIVAUD (_FrnchFrgg_) < [email protected]> wrote: > Hi everyone, > > I'd like to give you notice of a somewhat advanced git HOWTO for people > that used previout git mirrors of blender (as the mirror by jesterKing). > The HOWTO is here: > http://wiki.blender.org/index.php/User:Frnchfrgg/Transplant > > This HOWTO aims to salvage developement branches made with SVN mirrors, > that are impossible to rebase. The HOWTO is long and you'll need some > git knowledge, but you'll be well guided throughout. > A lot of the cleaning part directly comes from the experience I gained > working on the git.blender.org conversion. > > To know if this is for you, check the following: > > * MANDATORY Did you use to develop for Blender in a Git repository > either cloned from jesterking's SVN mirror or directly from git-svn ? > (other SVN mirrorring solutions might also be handled with > modifications, but not manual periodic dumps of SVN) > > and any of: > > * Is the branch that much intertwinned with trunk from git-svn (several > merges with conflict resolutions) that rebasing is too painful ? (Note > that while rebasing you'd have to know how to use the -Xsubtree=blender > option, unless your SVN clone doesn't have the leading blender/ directory) > * Did you commit to files with CR-LF line endings so that conflicts > happen all the time with git.blender.org while rebasing and the > -Xrenormalize rebase option doesn't help ? > * Do you want to try a wicked smart way to transplant history ? > > I'm hoping this will be of good use for some of you, and am mostly > available to help on #blendercoders. > > Cheers, > > _FrnchFrgg_ > > P.S.: I devised that method to fix the multiview branch of dfelinto that > was seriously entangled with Nathan's mirror and had ~400 commits to > salvage including merges from trunk, so rebasing was nigh impossible and > cherry-picking by hand (resolving all conflicts anew) was a nightmare. > Of course you can always use the conversion as a base to rework your > branch into a set of clean, sorted, progressive and reviewable commits. > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
