I suspected it might be something like that. But as I understand it, ENVY already has a way to have a designated latest and greatest version among all the other versions stored on the ENVY server, just as we have trunk or master in other file-based systems. So it sounds as if people would have been able to merge to the latest and greatest version from their own desk.
Could it perhaps just have been a way to ensure atomic, sequential integration? I know people have used it for that, I'm just not sure whether that was the original intention or whether it had to do with some special Smalltalk things i'm not familiar with. If integration took a while then some mutex mechanism makes sense. Then again, if you do the merge from latest and greatest to local copy first, then the subsequent merge back to latest and greatest would be very quick.
Is this an optimisation people overlooked at the time or am I overlooking subtleties they were aware of?
More broadly I'm wondering whether the manual integration station should be seen as a manual precursor to today's ill-named CI servers.
I've always interpreted (and explained) CI as extremely frequently applying two forms of integration:
1) integrating multiple code streams into trunk/master/main and
2) integrating modules into a working system.
In other words trunk is 'always' releasable and new work is merged into trunk within a day at most, and generally much less than that.
On the other hand
3) having a build server
seems like a later addition. I have the impression that most people nowadays apply 2) and 3) and don't do 1) and often are even opposed to it. Then they might say things like 'if you want to do CI with stories that take longer than a day you'll pretty much need feature branches', which to me pretty much goes against the essence of CI which is not to have feature branches.
AFAIK 1) & 2) were the definition of CI and while 3) is a good practice, it wasn't part of the definition. Even automated unit tests were not part of the definition of CI, but covered under Relentless Testing AFAIK.
You might say that it doesn't matter much of the current recommended practice is to do all three, with automated tests run on the server, but in practice I often see people refusing to do 1), yet insisting they do CI. I'd rather keep the definitions clear and crisp.
Or do people here feel it's reasonable to see the integration station as a precursor to todays' build servers?
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.