Re: etoys - binary blob in GIT
- From
Joshua N Pritikin <jpritikin@pobox.com>
- Date
- Feb 10, 2007, 09:49 UTC
- Message-ID
- <20070210094934.GH13381@always.joy.eth.net>
- In-Reply-To
- <usldf3z10.wl%yoshiki@squeakland.org>
On Sat, Feb 10, 2007 at 04:35:07AM +0900, Yoshiki Ohshima wrote:
Show 15 quoted lines
> > > What the Etoys team actually uses for our own change management is > > > called "update stream" mechanism. That is a sequence of small patches > > > in text. These patches are kept on an FTP/HTTP or WebDAV/HTTP server, > > > and the developers submit the patches via FTP or WebDAV, and other > > > users and developers fetches them via WebDAV or HTTP into their EToys > > > image. The image in the git repository is made in this way. 95% of > > > the case, it is enough to recreate a "practically" identical image by > > > merely fetching the patches. > > > > I think the proper way to do that is to clean the upgrade directory > > after each commit so that the upgrade directory only keeps patches for > > the current changeset. > > I'm not sure what is the upgrade directory, so not sure the upside > of this is. Can you elaborate?
Sure, something like this:
$ export IMAGE=$HOME/etoys.image $ cd etoys $ git init-db $ echo 1 > image-version $ git add image-version $ mkdir upgrade $ cd upgrade $ ls patch1 patch2
# These patches are the "update stream" from the previous commit to the # current commit.
$ cat patch1 touch $IMAGE $ cat patch2 echo abc >> $IMAGE $ cd .. $ git add patch1 patch2 $ git commit -a
# After every commit, you can remove the previous update stream.
$ git rm upgrade/*
# Here is the update stream for the next commit:
$ echo 2 > image-version $ cat upgrade/patch1 echo def >> $IMAGE $ git add upgrade/patch1 $ git commit -a $ git rm upgrade/*
# Etc
Now you have a history of the update stream and you know which image belongs with which commit.