Monticello change log history?

Colin Putney cputney at wiresong.ca
Mon Jun 19 20:25:54 UTC 2006


On Jun 19, 2006, at 4:08 PM, Andreas Raab wrote:

> Well, maybe I'm not expressing myself very well ;-) Really, what  
> I'm looking for is something like a "CHANGELOG" file, e.g., a  
> summary of the log entries since version X. If that information  
> (the log entry for each version in the history) is readily  
> available I'd love to find out how to use it to generate such a  
> change log between version X and Y. Basically just a summary like  
> this:
>
> Croquet-Copier-ar.6 (4 April 2006, 6:58:05 pm)
> - replace underscore assignment with colon-equals
>
> Croquet-Copier-ar.5 (7 March 2006, 8:02:41 pm)
> - Homebase-Hedgehog integration
>
> Croquet-Copier-ar.4 (31 January 2006, 10:48:12 pm)
> - fix endian conversions for the copier
>
> This was created by going to the hedgehog repository and http:// 
> hedgehog.software.umn.edu:8888/hedgehogRC.html and extracting the  
> information from the accessible versions. Unfortunately, if an  
> intermediate version (Croquet-Copier-ar.5 for example) isn't  
> accessible there is no way of finding out what exactly has changed  
> in that version.
>
> So if this information is indeed readily available please let me  
> know where and how (and perhaps I can convince a SqueakSource  
> developer to add the change log to the actions for a package  
> version?).

Aha. This shouldn't be hard, and you won't need access to all the  
intermediate versions, since any version contains all the metadata  
about it's history. If you look at the VersionInfo for a particular  
version, you'll see that 'ancestors' contains an array of VersionInfo  
instances pertaining to the versions that it's based on. They form a  
tree, going back to the very first version of the package.

To create a CHANGELOG for the work done between versions X and Y,  
walk the ancestry trees to gather a set of VersionInfo instances that  
form the history of each version. Then find the difference of the  
sets, so that you have all the ancestors of Y that are not also  
ancestors of X. Sort by date and time, and collect the log messages.

No need for any versions other than X and Y.

Colin



More information about the Squeak-dev mailing list