[Gllug] git "snapshots"

Nix nix at esperi.org.uk
Fri Apr 8 22:42:44 UTC 2011


On 6 Apr 2011, Iain Conochie said:

> <snip>
>> 040000 tree 18a79abcc4340f76e5cc8968cf6fc023290453f4    virt
>
> Of course the commit has to reference the old (non changed files). However it does not add them to the commit. It references
> them. Only when an blob changes does it get updated!

I know what you meant to say, but just to be picky, this is *not* the
commit referencing the previous one (which of course it does). This is
the commit's *tree* pointing to (many of) the *same trees* as the
previous commit.

(Equally, blobs never change: they can't, because their only name is a
hash of their contents. When a file is changed and 'git add'ed, a new
blob is generated for it, and new trees for each of its containing
directories up to the root: at commit time, a commit object is chained
onto it.  And that's how 'git commit' can be so damned fast.)

>> git isn't so much 'unhelpful' as 'different', because it was created by
>> someone who had studiously avoided other version control systems because
>> they sucked so much compared to what was in his head. :)
>>
> Or maybe they did not do what he wanted - distributed version control,
> with no real central repository.

There were a couple that did that (e.g. monotone) but they had other
downsides (really slow development, for one).

-- 
NULL && (void)
--
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list