<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-07-25 23:56 GMT+02:00 Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Why interesting?  I tend to think that people should not be committing<br>
changes in which only the formatting was changed.  So, maybe better to<br>
take measures to minimize that from happening in the first place than<br>
introduce a button to &quot;undo&quot; it later....?<br>
<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div><br></div><div>Well, it happens that such change are interesting...<br></div><div>For example some literal arrays are table that can suffer from misalignment.<br></div><div>Or some constant has been expressed in decimal when the intention would have been more clear with hexa.<br><br></div><div>Also the feature concerns comment conflicts.<br><br></div><div>It&#39;s also interesting because it happens that we compare a very distant branch like Squeak vs Pharo<br></div><div>and we don&#39;t want to be perturbated by cosmetic conflicts<br></div><div>(ok this happens less and less as the divergence increase).<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
On Mon, Jul 25, 2016 at 4:43 PM, Nicolas Cellier<br>
&lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt; Whatever the flow of critics, I find the feature interesting.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2016-07-25 23:17 GMT+02:00 Chris Cunningham &lt;<a href="mailto:cunningham.cb@gmail.com">cunningham.cb@gmail.com</a>&gt;:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Jul 25, 2016 at 10:03 AM, Nicolas Cellier<br>
&gt;&gt; &lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi both,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 2016-07-25 17:55 GMT+02:00 Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt;:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Please do not use abbreviations.  What is AST?  Abstract Syntax Tree?<br>
&gt;&gt;&gt;&gt; This takes the Monticello tool to a new level of technical<br>
&gt;&gt;&gt;&gt; intimidation and confusion.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Why do we need a button for this?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I would say, why only one? Why a lack of symmetry?<br>
&gt;&gt;&gt; The same AST means that some formatting has been performed.<br>
&gt;&gt;&gt; I think AST currently contains comments, but see below...<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Of course, with auto-format that we currently apply in the UI, we can&#39;t<br>
&gt;&gt;&gt; even visualize those diff (grrr! I hate those auto-format)<br>
&gt;&gt;&gt; So anyway we are blind to these changes, we could as well throw a dice ;)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Jul 25, 2016 at 8:24 AM,  &lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt; Tim Felgentreff uploaded a new version of Monticello to project The<br>
&gt;&gt;&gt;&gt; &gt; Trunk:<br>
&gt;&gt;&gt;&gt; &gt; <a href="http://source.squeak.org/trunk/Monticello-tfel.637.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/trunk/Monticello-tfel.637.mcz</a><br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; ==================== Summary ====================<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Name: Monticello-tfel.637<br>
&gt;&gt;&gt;&gt; &gt; Author: tfel<br>
&gt;&gt;&gt;&gt; &gt; Time: 25 July 2016, 3:24:24.996828 pm<br>
&gt;&gt;&gt;&gt; &gt; UUID: cf0d6af1-c703-5044-9c57-e798b0cf3abf<br>
&gt;&gt;&gt;&gt; &gt; Ancestors: Monticello-cmm.636<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; add a button for rejecting all incoming conflicts that only change AST<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; =============== Diff against Monticello-cmm.636 ===============<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Item was added:<br>
&gt;&gt;&gt;&gt; &gt; + ----- Method: MCConflict&gt;&gt;chooseSameAST (in category &#39;as yet<br>
&gt;&gt;&gt;&gt; &gt; unclassified&#39;) -----<br>
&gt;&gt;&gt;&gt; &gt; + chooseSameAST<br>
&gt;&gt;&gt;&gt; &gt; +       | fromSrc toSrc |<br>
&gt;&gt;&gt;&gt; &gt; +       (self definition isNil or: [self definition isMethodDefinition<br>
&gt;&gt;&gt;&gt; &gt; not])<br>
&gt;&gt;&gt;&gt; &gt; +               ifTrue: [^ self].<br>
&gt;&gt;&gt;&gt; &gt; +       fromSrc := (Parser new parse: operation fromSource class: nil<br>
&gt;&gt;&gt;&gt; &gt; class)<br>
&gt;&gt;&gt;&gt; &gt; +               generate decompile asString.<br>
&gt;&gt;&gt;&gt; &gt; +       toSrc := (Parser new parse: operation toSource class: nil<br>
&gt;&gt;&gt;&gt; &gt; class)<br>
&gt;&gt;&gt;&gt; &gt; +               generate decompile asString.<br>
&gt;&gt;&gt;&gt; &gt; +       fromSrc = toSrc ifTrue: [self chooseLocal].!<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; OK, so this does not even take the comments in account, because this is<br>
&gt;&gt;&gt; decompiled code (reconstructed AST) not original AST.<br>
&gt;&gt;&gt; There&#39;s another problem here: decompile: sometimes fail, so we should<br>
&gt;&gt;&gt; protect ourselves...<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt; Item was changed:<br>
&gt;&gt;&gt;&gt; &gt;   ----- Method: MCMergeBrowser&gt;&gt;buttonSpecs (in category &#39;as yet<br>
&gt;&gt;&gt;&gt; &gt; unclassified&#39;) -----<br>
&gt;&gt;&gt;&gt; &gt;   buttonSpecs<br>
&gt;&gt;&gt;&gt; &gt;         ^ #((Merge merge &#39;Proceed with the merge&#39; canMerge)<br>
&gt;&gt;&gt;&gt; &gt;                  (Cancel cancel &#39;Cancel the merge&#39;)<br>
&gt;&gt;&gt;&gt; &gt;                 (&#39;All Newer&#39; chooseAllNewerConflicts &#39;Choose all newer<br>
&gt;&gt;&gt;&gt; &gt; conflict versions&#39;)<br>
&gt;&gt;&gt;&gt; &gt;                 (&#39;All Older&#39; chooseAllOlderConflicts &#39;Choose all older<br>
&gt;&gt;&gt;&gt; &gt; conflict versions&#39;)<br>
&gt;&gt;&gt;&gt; &gt;                 (&#39;Rest Reject&#39; chooseAllUnchosenLocal &#39;Choose local<br>
&gt;&gt;&gt;&gt; &gt; versions of all remaining conflicts&#39;)<br>
&gt;&gt;&gt;&gt; &gt;                 (&#39;Rest Accept&#39; chooseAllUnchosenRemote &#39;Choose remote<br>
&gt;&gt;&gt;&gt; &gt; versions of all remaining conflicts&#39;)<br>
&gt;&gt;&gt;&gt; &gt; +               (&#39;Accept same source&#39; chooseAllSameAST &#39;Choose all<br>
&gt;&gt;&gt;&gt; &gt; local conflicting versions that have essentially the same code&#39;)<br>
&gt;&gt;&gt;&gt; &gt;   )!<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; There&#39;s another problem above:<br>
&gt;&gt;&gt; Rest Accept is for accepting the remote changes<br>
&gt;&gt;&gt; Accept same source is for accepting the local...<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; That can&#39;t be the same word, much confusing!<br>
&gt;&gt;&gt;<br>
&gt;&gt; Right.  If that option is added, it must be called &#39;Reject same source&#39;.<br>
&gt;&gt;<br>
&gt;&gt; Probably call it something else: &#39;Reject cosmetic changes&#39;, maybe.<br>
&gt;&gt;<br>
&gt;&gt; In any case, let&#39;s not make it worse after recently cleaning up the<br>
&gt;&gt; wording.<br>
&gt;&gt;<br>
&gt;&gt; -cbc<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div></div>