On Thu, 1 Sep 2011 17:22:18 +0100
Adam Prescott <a...@aprescott.com> wrote:
> > I think you're concentrating too much on that "source code" idea.
> > If we instead look at these two things: a) Unix has special files
> > (such as devices, named pipes etc), b) Git tracks hierarchies of
> > files, then one can think of using Git as something like a
> > "versioned tar".
> It is often repeated that Git does not track files, it tracks content.
I honestly do not want to appear as wishing to be smarter than those
smart guys who wrote Git, but I'm yet to see a developer around me who
really thinks of Git (or any other [D]VCS for that matter) in terms of
tracking content. We shove files to our VCSes, we `git add` or
`git rm` them, and after we cloned, we see a filesystem tree populated
with files. So while it may be 150% correct to have this
"content-based" mental picture in mind, it's equally hard to deny
that popular VCSes, Git included, do track files assembled in
The real problem (with the origin of this discussion) is that
Unix special files only superficially look like files. Distinct kinds
of those files require their own special syscalls to create and delete
files of those kinds. Also their properties are not that
uniform--consider major/minor numbers of device files for instance.
So one problem would be to store records for these files in tree objects
and much bigger problem would be to properly create/delete them when
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To post to this group, send email to email@example.com.
To unsubscribe from this group, send email to
For more options, visit this group at