From: Andreas Ericsson Date: Mon, 20 Feb 2006 10:14:28 GMT Subject: Re: Prepend the history of one git tree to another Message-ID: <43F99684.5070403@op5.se> In-Reply-To: <20060220090909.GT6558@cip.informatik.uni-erlangen.de> Thomas Glanzmann wrote: > Hello, > I have two trees: blastwave and blastwave.old. blastwave.old is the > BitKeeper -> CVS -> GIT Tree of the project and blastwave is the newer > one that I started when I stoped using bitkeeper. What I want is to > append the history of blastwave to blastwave.old. The problem is that I > need to create new commit objects for every commit I want to append to > the old history. Is there a script which does that for me? Or do I have > to write this script myself? > Something like this might do the trick, depending on how linear your ancestry graph is: $ cd blastwave $ first=$(git rev-list HEAD | tail -n 1) $ git format-patch -k --stdout $first..HEAD > ../blw.mbox $ cd ../blastwave.old $ git am -k -3 ../blw.mbox YMMV though, so set an anchor tag at the HEAD of blastwave.old so you can return to it if things go awry. If the history is very non-linear I think you'll have to do the same for each and every branch, although you'd have to use "git merge-base" to figure out how long to go. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231