Thread (6 messages) 6 messages, 5 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help