Re: git-show --stat on first commit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]