Am 15.04.2013 um 15:46 schrieb Sven Van Caekenberghe <s...@stfx.eu>:

> 
> On 15 Apr 2013, at 15:07, "Sean P. DeNigris" <s...@clipperadams.com> wrote:
> 
>> Sven Van Caekenberghe-2 wrote
>>> the little fact that it is incremental - it updates and saves the same
>>> image based on 1 metacello configuration - is really a stroke of genius.
>>> It saves an enormous amount of time as in the past I always did a complete
>>> build from scratch. Updating servers is now really a joy.
>> 
>> Sounds great! And, I don't exactly understand ;) Can you say more about that 
>> feature?
> 
> Building a new image goes like this
> 
> $ ./vm.sh Pharo.image save test
> 
> $ ./vm.sh test.image config http://mc.stfx.eu/XXX ConfigurationOfBetaNineT3 
> --install=bleedingEdge --username=XXX --password=XXX
> 
> The Pharo.image is 'empty' as far as your own code is concerned, the config 
> loads lots of dependencies. A build takes 10 minutes or so.
> 
> But the next time, you can do only the second part
> 
> $ ./vm.sh test.image config http://mc.stfx.eu/XXX ConfigurationOfBetaNineT3 
> --install=bleedingEdge --username=XXX --password=XXX
> 
> The test.image contains all your project specific code, and loading the 
> config just checks all dependencies and only loads what has changed, 
> incrementally. It only takes some 10s of seconds.
> 
> It never occurred to me that this was the way to go, but the config handler 
> does it by default. Maybe it is just me, but I had the impression that 
> everybody (including CIs) always built from scratch (more or less, there were 
> staged systems), while it is actually quite practical to keep on updating the 
> same image for a much faster turn around.
> 
This is less reliable than building from scratch. If you only build your own 
packages without a lot of external packages that might go well. If there are 
external dependencies it can even be that not loading it from scratch will get 
you a different package set installed in your image afterwards. So you should 
build from scratch from time to time anyway.

For the config handler I don't see a reason why a config option should 
overwrite the existing image by default. Without extra options I don't even see 
why the image should shutdown after loading the config. Is it how it is? That 
looks like there are too many assumptions taken from the commandline handlers.

Norbert 


Reply via email to