[sugar] etoys - binary blob in GIT
Joshua N Pritikin
jpritikin
Sat Feb 10 04:49:56 EST 2007
On Sat, Feb 10, 2007 at 04:35:07AM +0900, Yoshiki Ohshima wrote:
> > > 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.
More information about the Sugar-devel
mailing list