On Sat, May 12, 2007 at 09:39:51AM -0400, Jan Harkes wrote: > On Fri, May 11, 2007 at 03:09:14PM -0700, Junio C Hamano wrote: > > Suppose you have something like this (you may have more than one > > such merge but the principle is the same): > > > > U---o---o---o---M---x---o---o---o---T > > / > > Linville o---o > > > > Up to 'U' you have already sent upstream and no need for > > resending. 'M' is merge with Linville tree. 'x' is the bad > > one, and 'o' are good ones. 'T' is the tip of your net driver > > branch. > > There are even more ways to fix this up, they both start with > identifying the commit 'y' that was committed after 'x', > > git rebase --onto x^ y T > > The other solution is to use .git/info/grafts, > > Add a line with the sha1 of 'y' with the parents of 'x'. You can > visually inspect with gitk if it looks right and then use a script > that rewrites the history. Either cg-admin-rewrite or the one I > posted to the list a while ago. > > The history rewriting solution will work even if 'x' was introduced > before the merge commit. My brain must be fried. history rewriting is not a good solution here. Although it removes the commit message, it would leave the bad change around because it leaves the actual trees intact. Jan - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html