On Thu, 17 Jul 2008, Linus Torvalds wrote: > > But even then, any testing you did in your private tree is now suspect, > because that testing was done with the old history that you threw away. > So even if you delete all the old histories and never show them, they kind > of do exist conceptually - they existed in the sense that you tested them, > and you've just hidden the fact that what you release is different from > what you tested. One final note on this: the above is obviously not a problem for simple code that only really does one thing, and in particular for code that you wrote yourself. Moving your own commits around to make them make more sense - or splitting them up etc - is often a _good_ thing, even if it obviously does change history. So using rebase to clean up and simplify and/or fix up stupid ordering issues is good, and "git rebase -i" is actually really good for this thing. No, the problems start happening when you do it on a larger scale, or (and this is very common in the kernel), your rebase _moves_ the commits over big distances because you update to the top of my development tree. In that case, while your patches themselves may not have changed, the base that you based them on may have changed really subtly - it still compiles, it still "works", but maybe it doesn't work as well as it used to. And that's why the old testing you did is basically almost worthless. So rebasing can be good or bad. It's a matter of degree. Rebasing private and small things is generally good. Rebasing bigger things can cause problems. And the further away you rebase something, the more problems it will generally cause. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html