[Cuis] Time stamp of source code change of a method?

H. Hirzel hannes.hirzel at gmail.com
Mon Jul 20 07:55:57 CDT 2015


Yes,

an image diff to see what classes/methods changed between timer period X and Y

is what I am looking for.

--Hannes

On 7/20/15, Phil (list) <pbpublist at gmail.com> wrote:
> On Sun, 2015-07-19 at 20:21 +0000, H. Hirzel wrote:
>> If I take a current image (18 Jul 2015, 4.2-2424)  I get the same result
>>
>>
>> a Set(#collect: #at:ifPresent: #at:ifPresent:ifAbsent: #postCopy
>> #at:ifAbsent:)
>>
>> All the FileMan additions are not listed. Maybe because they keep
>> their original time stamp, not the time stamp of the addition to
>> Squeak.
>>
>
> Right, the timestamp will reflect when they were last edited rather than
> when they were loaded into the image.
>
>> And the recent change on #compilerClass does not show up.
>>
>
> Same situation: #compilerClass while only recently re-added to the
> image, hasn't actually been changed since it was removed and added back
> so it still shows an older timestamp.
>
> It sounds like you're looking for more of an image diff to see what
> classes/methods changed between timer period X and Y?  This isn't
> something that currently exists in an easy to use form that I'm aware
> of.
>
>> --HH
>>
>> On 7/19/15, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>> > If I use this to find out which methods have a time stamp date
>> > indicating a change after the 1st of January 2015 in a pristine Cuis
>> > 4.2-2243 (17 April 2015) image I find out that only the
>> >
>> > #postCopy method was changed (probably added) in nearly all classes.
>> >
>> > If I change the base line date to 1st of January 2014 I get
>> >
>> > a Set(#collect: #at:ifPresent: #at:ifPresent:ifAbsent: #postCopy
>> > #at:ifAbsent:)
>> > as changed/updated methods (i.e. methods which have a time stamp in
>> > this period).
>> >
>> > Of course this assumes that a method gets a time stamp when changed.
>> > Many methods have nil as a time stamp.
>> >
>> >
>> > Could somebody from the list check this please?
>> >
>> >
>> > |date coll baseLineDate dt  updatedMethods |
>> >
>> > baseLineDate := Date year: 2014 month: 1 day: 1.
>> > coll := OrderedCollection new.
>> >
>> > Smalltalk allClasses do: [ :cls |
>> > cls allSelectors do: [ :sel |
>> > dt := VersionsBrowser timeStampFor:  sel class: Dictionary
>> > reverseOrdinal:
>> > 1.
>> >
>> > dt notNil ifTrue: [
>> > date := dt select:  [ :ch | (((ch isDigit) or: [ch = $/ ]) or: [ch = $
>> > ]) or: [ch = $:]] .
>> > (date = '') ifFalse:
>> > 	[date := Date fromString: date.
>> > 		(date > baseLineDate) ifTrue: [coll add: (Association key:
>> > (Association key: cls value: sel) value: date)
>> > ]]].
>> >
>> > ]].
>> >
>> > updatedMethods := Set new.
>> > coll do: [ :elem | updatedMethods add: (elem key value)].
>> > coll inspect.
>> > updatedMethods inspect
>> >
>> >
>> >
>> >
>> > On 7/17/15, Juan Vuletich <juan at jvuletich.org> wrote:
>> >> On 7/16/2015 11:49 AM, H. Hirzel wrote:
>> >>> Hello
>> >>>
>> >>> I'd like to do a query finding out about the time stamp of  source
>> >>> code changes of all methods in the Cuis image and then do a list with
>> >>> the following four columns
>> >>>
>> >>>
>> >>> ClassTheMethodBelongsTo, PackageTheClassBelongsTo, MethodName,
>> >>> DateOfChange
>> >>>
>> >>> Help is appreciated.
>> >>>
>> >>> Hannes
>> >>
>> >> Check #timeStampFor:class:reverseOrdinal: and in general
>> >> #annotationForSelector:ofClass:
>> >>
>> >> Cheers,
>> >> Juan Vuletich
>> >>
>> >
>> _______________________________________________
>> Cuis mailing list
>> Cuis at jvuletich.org
>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>
>
>
> _______________________________________________
> Cuis mailing list
> Cuis at jvuletich.org
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>




More information about the Cuis mailing list