Subject: trying to figure out this git thing - some questions

From: Ehud Shabtai <[email-masked]>
Date: Thu, 14 Apr 2005 22:02:21 +0300

I'm trying to understand how it works and I'll appreciate if someone could help.

1. git uses object abstraction for the different types and so
everything is in one directory (objects). From what I've seen in the
implementation, the different kind of objects are not of the same type
(there aren't any operations which work on two different types) and
thus in each step when an object is used its type is verified.
What's the benefit of having them all in the same tree? An alternative
would be to separate the different object types into different
directories which trivially allows getting a list of all commits, or
trees or blobs.

2. A commit can have more than one parent. Can anyone draw an example
of such a case? When do we get a commit graph which is not linear?

3. How does git handle binary files? I guess it doesn't really care if
it's binary or text, but how would the diff and merge scripts handle
them?