On 29 Sep 2012, Darrell Anderson outgrape:
So checkout only creates a viewing illusion. That is,
the package
sources remain the same as the most recent re-sync and only the view a
person has is different.
Well, that's only true inasmuch as *everything* a version control system
shows you is an 'illusion' and the *real* content is a bunch of gzipped
loose objects and packfiles underneath .git/objects. That's irrelevant,
though -- nobody works with those. Everybody works with the working
copy, and that's what 'git checkout' switches between.
As my build scripts just copy the package sources
directly from GIT,
i.e. they copy them from the working tree. That's what 'git checkout'
updates, so you're fine. (Unless, of course, you mean it's getting them
from gitweb or something. I presume not becasue that would be just
crazy :) )
I am not grasping how my build scripts can distinguish
the difference.
I understand how my eyes distinguish the difference because GIT
creates the illusion of what I am allowed to see. Yet the underlying
sources in the package tree remain exactly the same.
Nope. 'git checkout' switches those sources to the sources as they were
at the requested commit. (It carries uncommitted changes over into the
new tree, as best it can, and refuses to switch if it would lose them.)
--
NULL && (void)