The Trunk: Monticello-bf.474.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Monticello-bf.474.mcz

commits-2
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!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Monticello-bf.474.mcz

David T. Lewis
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


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Monticello-bf.474.mcz

Chris Muller-3
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!
>
>
>