[squeak-dev] The Inbox: Monticello-nice.498.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Mar 9 22:17:25 UTC 2012
A new version of Monticello was added to project The Inbox:
http://source.squeak.org/inbox/Monticello-nice.498.mcz
==================== Summary ====================
Name: Monticello-nice.498
Author: nice
Time: 9 March 2012, 11:17:06.384 pm
UUID: 395becce-f60f-4242-a937-d1fc6ab4f462
Ancestors: Monticello-bf.496
Add a Monticello preference in order to #ignoreSourceCodeFormattingDifferences in method definitions.
This will affect the diff/merge behavior of Monticello.
When ignoring the differences, the diff is performed on the scanned tokens and _ := also compare equal.
It's generally a bad idea to ignore those diffs, but does really help when browsing diffs with distant cousins like Etoys or Pharo.
This preference must be considered as a quick hack.
A better idea would be to implement such filter in the Monticello UI, but this ain't gonna be as easy.
Bis and don't forget hash this time...
=============== Diff against Monticello-bf.496 ===============
Item was removed:
- SystemOrganization addCategory: #Monticello!
- SystemOrganization addCategory: #'Monticello-Base'!
- SystemOrganization addCategory: #'Monticello-Chunk Format'!
- SystemOrganization addCategory: #'Monticello-Loading'!
- SystemOrganization addCategory: #'Monticello-Merging'!
- SystemOrganization addCategory: #'Monticello-Modeling'!
- SystemOrganization addCategory: #'Monticello-Patching'!
- SystemOrganization addCategory: #'Monticello-Repositories'!
- SystemOrganization addCategory: #'Monticello-Storing'!
- SystemOrganization addCategory: #'Monticello-UI'!
- SystemOrganization addCategory: #'Monticello-Versioning'!
- SystemOrganization addCategory: #'Monticello-Mocks'!
- SystemOrganization addCategory: #'Monticello-Utilities'!
Item was added:
+ SystemOrganization addCategory: #'Monticello-Base'!
+ SystemOrganization addCategory: #'Monticello-Chunk Format'!
+ SystemOrganization addCategory: #'Monticello-Loading'!
+ SystemOrganization addCategory: #'Monticello-Merging'!
+ SystemOrganization addCategory: #'Monticello-Modeling'!
+ SystemOrganization addCategory: #'Monticello-Patching'!
+ SystemOrganization addCategory: #'Monticello-Repositories'!
+ SystemOrganization addCategory: #'Monticello-Storing'!
+ SystemOrganization addCategory: #'Monticello-UI'!
+ SystemOrganization addCategory: #'Monticello-Versioning'!
Item was changed:
MCDefinition subclass: #MCMethodDefinition
+ instanceVariableNames: 'classIsMeta source category selector className timeStamp tokens'
+ classVariableNames: 'IgnoreSourceCodeFormattingDifferences'
- instanceVariableNames: 'classIsMeta source category selector className timeStamp'
- classVariableNames: ''
poolDictionaries: ''
category: 'Monticello-Modeling'!
MCMethodDefinition class
instanceVariableNames: 'definitions'!
MCMethodDefinition class
instanceVariableNames: 'definitions'!
Item was added:
+ ----- Method: MCMethodDefinition class>>ignoreSourceCodeFormattingDifferences (in category 'preferences') -----
+ ignoreSourceCodeFormattingDifferences
+ "Accessor for the system-wide preference"
+
+ <preference: 'Ignore source code formatting differences'
+ category: 'Monticello'
+ description: 'If enabled, the diff and merge tools will ignore formatting differences.'
+ type: #Boolean>
+ ^IgnoreSourceCodeFormattingDifferences ifNil: [ false ]!
Item was added:
+ ----- Method: MCMethodDefinition class>>ignoreSourceCodeFormattingDifferences: (in category 'preferences') -----
+ ignoreSourceCodeFormattingDifferences: aBoolean
+ "Accessor for the system-wide preference"
+
+ IgnoreSourceCodeFormattingDifferences := aBoolean!
Item was changed:
----- Method: MCMethodDefinition>>= (in category 'comparing') -----
+ = t1
+ self class ignoreSourceCodeFormattingDifferences
+ ifTrue: [^ super = t1
+ and: [t1 tokens = self tokens]].
+ ^ super = t1
+ and: [t1 source = self source
+ and: [t1 category = self category
+ and: [t1 timeStamp = self timeStamp]]]!
- = aDefinition
- ^(super = aDefinition)
- and: [aDefinition source = self source
- and: [aDefinition category = self category
- and: [aDefinition timeStamp = self timeStamp]]]!
Item was changed:
----- Method: MCMethodDefinition>>hash (in category 'comparing') -----
hash
+ | t1 |
+ self class ignoreSourceCodeFormattingDifferences
+ ifTrue: [t1 := classIsMeta asString hashWithInitialHash: self tokens hash.
+ t1 := className hashWithInitialHash: t1.
+ ^ t1].
+ t1 := classIsMeta asString hashWithInitialHash: 0.
+ t1 := source hashWithInitialHash: t1.
+ t1 := category hashWithInitialHash: t1.
+ t1 := className hashWithInitialHash: t1.
+ ^ t1!
- | hash |
- hash := classIsMeta asString hashWithInitialHash: 0.
- hash := source hashWithInitialHash: hash.
- hash := category hashWithInitialHash: hash.
- hash := className hashWithInitialHash: hash.
- ^ hash!
Item was changed:
----- Method: MCMethodDefinition>>initializeWithClassName:classIsMeta:selector:category:timeStamp:source: (in category 'serializing') -----
initializeWithClassName: classString
classIsMeta: metaBoolean
selector: selectorString
category: catString
timeStamp: timeString
source: sourceString
className := classString asSymbol.
selector := selectorString asSymbol.
category := catString asSymbol.
timeStamp := timeString.
classIsMeta := metaBoolean.
source := sourceString withSqueakLineEndings.
+ tokens := nil
!
Item was added:
+ ----- Method: MCMethodDefinition>>tokens (in category 'accessing') -----
+ tokens
+ ^tokens ifNil: [tokens := (Scanner new scanTokens: self source) replaceAll: #'_' with: #':=']!
More information about the Squeak-dev
mailing list
|