Re: blobs (once more)
flat view
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:50:59
Hi, On Thu, 7 Apr 2011, Miles Bader wrote:
Pau Garcia i Quiles [off-list ref] writes:quoted
The usual answer to the "I need to put binaries in the repository" question has been "no, you do not". Well, we do. We are in heavy development now, therefore today's version may depend on a certain version of a third-party shared library (DLL) which we only can get in binary form, and tomorrow's version may depend on the next version of that library, and you cannot mix today's source with yesterday's third-party DLL. I. e. to be able to use the code from 7 days ago at 11.07 AM you need "git checkout" to "return" our source AND the binaries we were using back then. This is something ClearCase manages satisfactorily.If it were me, I'd just store the huge binaries in some sort of separate remote filesystem, and then store the remote-file-system _paths_ to them in git (in a simple text file).
That fails for a number of reasons: - it does not pass the 30,000-feet-high test - integrity is not guaranteed (anybody can edit the files on the remote file system, and nobody would realize that a "git checkout HEAD~2000" ends up being something different from before) - you would have to reinvent an efficient transfer (e.g. taking into account all the data we have already) - storage is no longer efficient, especially if you have multiple versions of the same file. - it is no longer decentralized anymore. Just think about yourself sitting in the middle of antarctica, desperately needing to match a penguin against a database of known penguins. You definitely want to have the database local instead of leeching it down the non-existing wire all the time. Likewise, if you and your group sit, say, on Viti Levu, and develop software with people from New York, Texas, you definitely want a repository-in-the-middle, making it one person's duty to synchronize, say, once per day. I am sure you can think of more reasons. Ciao, Johannes