Recovering code from changeset ?

tim Rowledge tim at rowledge.org
Sat Aug 4 16:29:25 UTC 2007


On 4-Aug-07, at 8:30 AM, Jason Johnson wrote:

> Why does it need "rename" specifically?  If change sets reliably  
> show every class creation, update and deletion then applying a  
> change set with a class rename will still work.  You just wont be  
> able to see as clearly that it was a rename ( i.e. rename is just  
> delete one thing then add a new thing that is exactly the same but  
> with a new name).

Unfortunately not. When renaming a class it is not deleted and  
recreated; it is simply renamed. As an illustration, I edited method,  
changed the name of the class and re-edited the same method; the  
below is what went into the changeslog.

/Users/tim/Documents/Squeak/TPR-Squeak3.8.1-6747.image!

!ClassBuilderFormatTests methodsFor: 'utilities' stamp: 'tpr 8/4/2007  
09:20' prior: 34639308!
makeNormalSubclassOf: aClass
"testing class rename logging"
	subClass := aClass subclass: self subClassName
		instanceVariableNames: ''
		classVariableNames: ''
		poolDictionaries: ''
		category: 'Kernel-Tests-ClassBuilder'! !
!ClassBuilderFormatTestsRenamed methodsFor: 'utilities' stamp: 'tpr  
8/4/2007 09:20' prior: 45481544!
makeNormalSubclassOf: aClass
"testing class rename logging again"
	subClass := aClass subclass: self subClassName
		instanceVariableNames: ''
		classVariableNames: ''
		poolDictionaries: ''
		category: 'Kernel-Tests-ClassBuilder'! !

No mention of renaming. If you tried to recover from this log you  
would have problems. In fact in the image I used for that experiment  
the worst possible thing happens - nothing! No error is raised,  
nothing appears in the transcript...

I'm puzzled by having this memory of such things being logged though.  
Maybe I'm mis-remembering from much older images like ST80V2 ?

tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Useful random insult:- His shared libraries aren't installed.





More information about the Squeak-dev mailing list