On Tue, 21 Nov 2006, Peter Baumann wrote: > > Why not make --root the default? I also stumbled over this behaviour and > even asked on this list. I suspect we should make the thing a config option, and default it to "on". I personally do _not_ want to see the root commit, because for the kernel, it's a honking huge import that does not make sense as a "diff". It's not really a diff against anything, after all - it's an import. That's really the reason why git defaults to not showing the root diff at all: exactly because for the kernel, the initial commit was state that "just came to be", and I found it both illogical and annoying to see it as a diff, since that commit really was a "black hole" where previous history just disappeared. But if you have the _full_ history with a new project, "--root" by default probably makes tons of sense. > And one less "wart" to clean, which another thread is all about. :-) I really don't think it's a wart - see above - but it depends on the project. There's also another reason for the root being special, which is purely git-internal: the root really has no parents at all, and the normal "git diff" is "diff against parents". So from a purely implementation standpoint, the "root" case is actually a special case, and for a while I was kind of wondering whether I should do what a lot of other SCM's seem to do, namely start out with an "empty root" when doing "git init-db". git didn't end up doing that (and I'm personally pretty happy about it), but it was one of the things I was kind of thinking about: a "git import" kind of thing would have created an initial commit which was pre-populated with the thing to import, and a "git init-db" would have created an initial root commit that was empty. That would have made the current "don't show the root diff" behaviour very natural (and you'd still have gotten the initial diff for a new project), but on the other hand, it would have had that annoying unnecessary "init" commit, and you'd _still_ have wanted to have something like "--root" in order to show the import commit as a patch (which you _sometimes_ want to do). So having a config option would solve the problem, but what annoys me right now about the config options is that we really should have a graphical front-end to setting those things or something, because while _I_ don't have any issues with editing a ".git/config" file, I think we're getting to the point where a lot of our problems are really about "you can do it, but you have to know a lot about git to even know you can do it". Linus - 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