<br><div class="gmail_quote">Le 14 mars 2012 18:10, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt;</span> a écrit :<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Catching up on mailing list.<br>
<br>
Nicolas, a couple of questions -- I believe the &quot;diffsWithPrettyPrint&quot;<br>
takes care of this already doesn&#39;t it?<br>
<br></blockquote><div><br>Well, my main requirement was to reduce the size of the list of methods marked as modified in the MC diff/merge tools.<br>And I didn&#39;t see how this setting would change MCMethodDefinition&gt;&gt;=, which seems to be the base for constructing such list (along with #hash of course)...<br>
I&#39;ll have to inquire a bit more about this option.<br><br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
If not, why have variable names like &quot;t1&quot; as if it were decompiled<br>
code rather than type-suggesting / intention-revealing names?<br>
<br></blockquote><div>Obviously, this was unintentional...<br>It is one of these nice features of our tools to use Decompiler when source code is unreachable...<br>I corrected in version 499 after Eliot&#39;s notification.<br>
Whether I uncovered a bug in source code management or just created this bug myself by some nasty change, I can&#39;t tell, because I&#39;m not able to reproduce above behavior.<br> <br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

Thanks..<br>
<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div>You&#39;re welcome, anyway this change is really a fast and dirty hack.<br>The most questionable side effect is that it changes the merge behavior.<br>
Using this setting would break proper image update process for example...<br>For this reason, I&#39;m not sure it should really go as is in trunk, <br><br>Nicolas<br> <br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class="HOEnZb"><div class="h5">
On Fri, Mar 9, 2012 at 4:17 PM,  &lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt; wrote:<br>
&gt; A new version of Monticello was added to project The Inbox:<br>
&gt; <a href="http://source.squeak.org/inbox/Monticello-nice.498.mcz" target="_blank">http://source.squeak.org/inbox/Monticello-nice.498.mcz</a><br>
&gt;<br>
&gt; ==================== Summary ====================<br>
&gt;<br>
&gt; Name: Monticello-nice.498<br>
&gt; Author: nice<br>
&gt; Time: 9 March 2012, 11:17:06.384 pm<br>
&gt; UUID: 395becce-f60f-4242-a937-d1fc6ab4f462<br>
&gt; Ancestors: Monticello-bf.496<br>
&gt;<br>
&gt; Add a Monticello preference in order to #ignoreSourceCodeFormattingDifferences in method definitions.<br>
&gt; This will affect the diff/merge behavior of Monticello.<br>
&gt; When ignoring the differences, the diff is performed on the scanned tokens and _ := also compare equal.<br>
&gt; It&#39;s generally a bad idea to ignore those diffs, but does really help when browsing diffs with distant cousins like Etoys or Pharo.<br>
&gt;<br>
&gt; This preference must be considered as a quick hack.<br>
&gt; A better idea would be to implement such filter in the Monticello UI, but this ain&#39;t gonna be as easy.<br>
&gt;<br>
&gt; Bis and don&#39;t forget hash this time...<br>
&gt;<br>
&gt; =============== Diff against Monticello-bf.496 ===============<br>
&gt;<br>
&gt; Item was removed:<br>
&gt; - SystemOrganization addCategory: #Monticello!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Base&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Chunk Format&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Loading&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Merging&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Modeling&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Patching&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Repositories&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Storing&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-UI&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Versioning&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Mocks&#39;!<br>
&gt; - SystemOrganization addCategory: #&#39;Monticello-Utilities&#39;!<br>
&gt;<br>
&gt; Item was added:<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Base&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Chunk Format&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Loading&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Merging&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Modeling&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Patching&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Repositories&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Storing&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-UI&#39;!<br>
&gt; + SystemOrganization addCategory: #&#39;Monticello-Versioning&#39;!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  MCDefinition subclass: #MCMethodDefinition<br>
&gt; +       instanceVariableNames: &#39;classIsMeta source category selector className timeStamp tokens&#39;<br>
&gt; +       classVariableNames: &#39;IgnoreSourceCodeFormattingDifferences&#39;<br>
&gt; -       instanceVariableNames: &#39;classIsMeta source category selector className timeStamp&#39;<br>
&gt; -       classVariableNames: &#39;&#39;<br>
&gt;        poolDictionaries: &#39;&#39;<br>
&gt;        category: &#39;Monticello-Modeling&#39;!<br>
&gt;  MCMethodDefinition class<br>
&gt;        instanceVariableNames: &#39;definitions&#39;!<br>
&gt;  MCMethodDefinition class<br>
&gt;        instanceVariableNames: &#39;definitions&#39;!<br>
&gt;<br>
&gt; Item was added:<br>
&gt; + ----- Method: MCMethodDefinition class&gt;&gt;ignoreSourceCodeFormattingDifferences (in category &#39;preferences&#39;) -----<br>
&gt; + ignoreSourceCodeFormattingDifferences<br>
&gt; +       &quot;Accessor for the system-wide preference&quot;<br>
&gt; +<br>
&gt; +       &lt;preference: &#39;Ignore source code formatting differences&#39;<br>
&gt; +               category: &#39;Monticello&#39;<br>
&gt; +               description: &#39;If enabled, the diff and merge tools will ignore formatting differences.&#39;<br>
&gt; +               type: #Boolean&gt;<br>
&gt; +       ^IgnoreSourceCodeFormattingDifferences ifNil: [ false ]!<br>
&gt;<br>
&gt; Item was added:<br>
&gt; + ----- Method: MCMethodDefinition class&gt;&gt;ignoreSourceCodeFormattingDifferences: (in category &#39;preferences&#39;) -----<br>
&gt; + ignoreSourceCodeFormattingDifferences: aBoolean<br>
&gt; +       &quot;Accessor for the system-wide preference&quot;<br>
&gt; +<br>
&gt; +       IgnoreSourceCodeFormattingDifferences := aBoolean!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: MCMethodDefinition&gt;&gt;= (in category &#39;comparing&#39;) -----<br>
&gt; + = t1<br>
&gt; +       self class ignoreSourceCodeFormattingDifferences<br>
&gt; +               ifTrue: [^ super = t1<br>
&gt; +                               and: [t1 tokens = self tokens]].<br>
&gt; +       ^ super = t1<br>
&gt; +               and: [t1 source = self source<br>
&gt; +                               and: [t1 category = self category<br>
&gt; +                                               and: [t1 timeStamp = self timeStamp]]]!<br>
&gt; - = aDefinition<br>
&gt; -       ^(super = aDefinition)<br>
&gt; -               and: [aDefinition source = self source<br>
&gt; -               and: [aDefinition category = self category<br>
&gt; -               and: [aDefinition timeStamp = self timeStamp]]]!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: MCMethodDefinition&gt;&gt;hash (in category &#39;comparing&#39;) -----<br>
&gt;  hash<br>
&gt; +       | t1 |<br>
&gt; +       self class ignoreSourceCodeFormattingDifferences<br>
&gt; +               ifTrue: [t1 := classIsMeta asString hashWithInitialHash: self tokens hash.<br>
&gt; +                       t1 := className hashWithInitialHash: t1.<br>
&gt; +                       ^ t1].<br>
&gt; +       t1 := classIsMeta asString hashWithInitialHash: 0.<br>
&gt; +       t1 := source hashWithInitialHash: t1.<br>
&gt; +       t1 := category hashWithInitialHash: t1.<br>
&gt; +       t1 := className hashWithInitialHash: t1.<br>
&gt; +       ^ t1!<br>
&gt; -       | hash |<br>
&gt; -       hash := classIsMeta asString hashWithInitialHash: 0.<br>
&gt; -       hash := source hashWithInitialHash: hash.<br>
&gt; -       hash := category hashWithInitialHash: hash.<br>
&gt; -       hash := className hashWithInitialHash: hash.<br>
&gt; -       ^ hash!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: MCMethodDefinition&gt;&gt;initializeWithClassName:classIsMeta:selector:category:timeStamp:source: (in category &#39;serializing&#39;) -----<br>
&gt;  initializeWithClassName: classString<br>
&gt;  classIsMeta: metaBoolean<br>
&gt;  selector: selectorString<br>
&gt;  category: catString<br>
&gt;  timeStamp: timeString<br>
&gt;  source: sourceString<br>
&gt;        className := classString asSymbol.<br>
&gt;        selector := selectorString asSymbol.<br>
&gt;        category := catString asSymbol.<br>
&gt;        timeStamp := timeString.<br>
&gt;        classIsMeta := metaBoolean.<br>
&gt;        source := sourceString withSqueakLineEndings.<br>
&gt; +       tokens := nil<br>
&gt;  !<br>
&gt;<br>
&gt; Item was added:<br>
&gt; + ----- Method: MCMethodDefinition&gt;&gt;tokens (in category &#39;accessing&#39;) -----<br>
&gt; + tokens<br>
&gt; +       ^tokens ifNil: [tokens := (Scanner new scanTokens: self source) replaceAll: #&#39;_&#39; with: #&#39;:=&#39;]!<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br>