Bert Freudenberg uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-bf.474.mcz ==================== Summary ==================== Name: Monticello-bf.474 Author: bf Time: 21 June 2011, 1:51:43.377 pm UUID: 174ed5e0-0903-4e69-8484-1fe3d0eb2527 Ancestors: Monticello-ul.473 Add "revert unchanged methods..." item to Changes list, allowing to bulk-revert methods that only differ in timestamp =============== Diff against Monticello-ul.473 =============== Item was added: + ----- Method: MCModification>>isUnchangedMethod (in category 'as yet unclassified') ----- + isUnchangedMethod + "true if this is a modification of a method where only the timestamp changed" + ^ obsoletion isMethodDefinition + and: [obsoletion source = modification source + and: [obsoletion category = modification category] ]! Item was changed: ----- Method: MCPatchBrowser>>methodListMenu: (in category 'menus') ----- methodListMenu: aMenu selection ifNotNil: [aMenu addList:#( ('install' installSelection) ('revert' revertSelection) -)]. + self unchangedMethods ifNotEmpty: + [aMenu addList:#( + ('revert unchanged methods...' revertUnchangedMethods) + -)]. super methodListMenu: aMenu. ^ aMenu ! Item was added: + ----- Method: MCPatchBrowser>>revertUnchangedMethods (in category 'actions') ----- + revertUnchangedMethods + "revert methods that only have changed timestamps" + | loader unchangedMethods | + unchangedMethods := items select: [:op | op isUnchangedMethod]. + (self confirm: ('Revert {1} methods that only differ in timestamp?' translated format: {unchangedMethods size})) + ifTrue: [ + loader := MCPackageLoader new. + unchangedMethods do: [:op | op inverse applyTo: loader]. + loader loadWithName: self changeSetNameForInstall]. + ! Item was added: + ----- Method: MCPatchBrowser>>unchangedMethods (in category 'as yet unclassified') ----- + unchangedMethods + ^ items select: [:op | op isUnchangedMethod]! Item was added: + ----- Method: MCPatchOperation>>isUnchangedMethod (in category 'as yet unclassified') ----- + isUnchangedMethod + "true if this is a modification of a method where only the timestamp changed" + ^false! |
On Tue, Jun 21, 2011 at 11:51:49AM +0000, [hidden email] wrote:
> Bert Freudenberg uploaded a new version of Monticello to project The Trunk: > http://source.squeak.org/trunk/Monticello-bf.474.mcz > > ==================== Summary ==================== > > Name: Monticello-bf.474 > Author: bf > Time: 21 June 2011, 1:51:43.377 pm > UUID: 174ed5e0-0903-4e69-8484-1fe3d0eb2527 > Ancestors: Monticello-ul.473 > > Add "revert unchanged methods..." item to Changes list, allowing to bulk-revert methods that only differ in timestamp > Excellent! Thanks. Dave |
In reply to this post by commits-2
Great enhancement Bert! We should not only not submit "noise"
(methods which differ only by timestamp and/or author), but also care to keep the original accounting info as much as possible. That's why, when recategorizing a method, we should use the *drag-and-drop* rather than cut-and-paste, so that the original accounting information for the methods _implementation_, is preserved, which is much more meaningful than only the category. - Chris On Tue, Jun 21, 2011 at 6:51 AM, <[hidden email]> wrote: > Bert Freudenberg uploaded a new version of Monticello to project The Trunk: > http://source.squeak.org/trunk/Monticello-bf.474.mcz > > ==================== Summary ==================== > > Name: Monticello-bf.474 > Author: bf > Time: 21 June 2011, 1:51:43.377 pm > UUID: 174ed5e0-0903-4e69-8484-1fe3d0eb2527 > Ancestors: Monticello-ul.473 > > Add "revert unchanged methods..." item to Changes list, allowing to bulk-revert methods that only differ in timestamp > > =============== Diff against Monticello-ul.473 =============== > > Item was added: > + ----- Method: MCModification>>isUnchangedMethod (in category 'as yet unclassified') ----- > + isUnchangedMethod > + "true if this is a modification of a method where only the timestamp changed" > + ^ obsoletion isMethodDefinition > + and: [obsoletion source = modification source > + and: [obsoletion category = modification category] ]! > > Item was changed: > ----- Method: MCPatchBrowser>>methodListMenu: (in category 'menus') ----- > methodListMenu: aMenu > selection ifNotNil: > [aMenu addList:#( > ('install' installSelection) > ('revert' revertSelection) > -)]. > + self unchangedMethods ifNotEmpty: > + [aMenu addList:#( > + ('revert unchanged methods...' revertUnchangedMethods) > + -)]. > super methodListMenu: aMenu. > ^ aMenu > ! > > Item was added: > + ----- Method: MCPatchBrowser>>revertUnchangedMethods (in category 'actions') ----- > + revertUnchangedMethods > + "revert methods that only have changed timestamps" > + | loader unchangedMethods | > + unchangedMethods := items select: [:op | op isUnchangedMethod]. > + (self confirm: ('Revert {1} methods that only differ in timestamp?' translated format: {unchangedMethods size})) > + ifTrue: [ > + loader := MCPackageLoader new. > + unchangedMethods do: [:op | op inverse applyTo: loader]. > + loader loadWithName: self changeSetNameForInstall]. > + ! > > Item was added: > + ----- Method: MCPatchBrowser>>unchangedMethods (in category 'as yet unclassified') ----- > + unchangedMethods > + ^ items select: [:op | op isUnchangedMethod]! > > Item was added: > + ----- Method: MCPatchOperation>>isUnchangedMethod (in category 'as yet unclassified') ----- > + isUnchangedMethod > + "true if this is a modification of a method where only the timestamp changed" > + ^false! > > > |
Free forum by Nabble | Edit this page |