Like I said on the other thread, tread carefully friends; there's dogma at work here.<p>Also, take a step back and look at the history of git. Git was created by Linus Torvalds specifically for Linux kernel development. I'd argue that a key reason that the kernel is so successful is because people are able to maintain history as a first-class entity in their project. The idea the you can 'rebase -i' to build up small, neat commits that will almost always apply cleanly to a sane codebase is <i>wonderful</i>. The fact that I don't need extreme foresight to capture my meaningful units of work into individual commits means that years from now I can look back and see what I was actually doing instead of "wait, was that line deleted as part of the feature, or was he just cleaning up warnings?"<p>Remember that these features aren't for developers, they're for maintainers. If you want your code in the kernel, you follow the kernel development process or GTFO. Linus doesn't sit around saying "shucks darn, it didn't merge cleanly, I guess I'll go fix it for them." He just doesn't have the time, and neither do his "deputies."<p>That's not to say that these features don't benefit developers; they do. It's just that you need to have seen them in action to understand why.<p>And finally, I'm genuinely curious... Why are some people so obsessed with <i>perfect</i> preservation of history? Is this some sense of fear/paranoia? In practice I've never found project history to be useful <i>without</i> modification, so what am I missing? What are people trying to preserve?