From: Alex Riesen Date: Sun, 24 Jun 2007 18:35:52 GMT Subject: Re: [PATCH] transplant: move a series of commits to a different parent Message-ID: <20070624183552.GA2374@steel.home> In-Reply-To: Steffen Prohaska, Sun, Jun 24, 2007 19:13:42 +0200: > >>I am changing the repository. > > > >No, you don't. > > Magically, the script solved my problem by creating a new, corrected > branch that is different from the original one. I didn't run any > other script. I promise, I ran the script that I sent in the patch. I meant: "it does not change the working directory". It is irrelevant, was a bit of confusion on my part. Your script works, just it can be made simplier: no need for diff, it'll only hurt perfomance and complicates things. And you don't have to care about additions/deletions, and it is trivially extensible to support merges, and the current index is untouched - your user can continue working in predictable environment. As to perfomance: read-tree doesn't actually _read_ the blobs to populate index, just the trees. And diff-tree has do do the same, but also _compare_ two trees recursively: more work, more memory needed. BTW, Johannes moved that ident code you copied from git-filter-branch into its own shell file, so it can be sourced and trivially reused.