On Wed, 16 Jan 2008, Jeff King wrote:
On Wed, Jan 16, 2008 at 03:39:06PM +0200, Petko Manolov wrote:
What i am trying to suggest is that there might be cases when you need
something in the repository, but you don't want GIT to keep it's history
nor it's predecessors. Leaving it out breaks the atomicity of such
repository and makes the project management more complex.
But not versioning some files while versioning others breaks the
atomicity of project version, which is at the core of git's model. There
is no such thing as "this file is at revision X, but that one is at
revision Y." There is only "the project is at revision X."
Sigh. You are right.
However, the said project is kind of exception. The binaries are there
from the very beginning - they are indivisible part of the project and it
won't work without them. This is why i am not worried if i revert to
previous source code version, but actually check-out fresh binary - in my
case it won't break things.
There's a few examples out there that shows how to solve this, but it
seems inconvenient and involves branching, cloning, etc. Isn't it
possible to add something like:
"git nohistory firmware.bin"
or
"git nohistory -i-understand-this-might-be-dangerous firmware.bin"
Not easily. It goes against the underlying data model at the core of
git.
Damn, i knew you'd say something like this. :-)
How big are your firmware files? How often do they change, and how large
are the changes? IOW, have you confirmed that repacking does not produce
an acceptable delta, meaning you get versioning for very low space cost?
Changes don't happen too often, but the size of everything binary in the
tree easily goes to about 100MB. Three commits later it ends up at about
300MB...
cheers,
Petko
-
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