Discussion:
[squeak-dev] The Trunk: Monticello-dtl.685.mcz
c***@source.squeak.org
0000-11-11 05:55:59 UTC
Permalink
David T. Lewis uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-dtl.685.mcz

==================== Summary ====================

Name: Monticello-dtl.685
Author: dtl
Time: 5 November 2018, 10:52:58.748205 pm
UUID: b31c1c5b-d61a-4810-8f97-5fdcaf062dc8
Ancestors: Monticello-eem.684

MCVersionInspector has an 'Adopt' button to allow the selected version to be added to the parent or parents of a working version. Provide a 'Reparent' button to allow a selected version to become the sole parent of a working version. Adjust defaultExtent to accomodate the additional button.

Motivated by the exercise of preparing to copy Chronology-Core versions from one repository into equivalent Chronology-Core.UTC versions in another repository (possibly trunk). In this scenario, it is helpful to be able to reparent a newly loaded Chronology-Core version from one repository to be the child of the last saved Chronology-Core.UTC version in another. The '.UTC' suffix in this case is intended to branch those versions from the trunk update stream, allowing later merge to trunk with branch history preserved.

=============== Diff against Monticello-eem.684 ===============

Item was changed:
----- Method: MCRepositoryInspector>>defaultExtent (in category 'morphic ui') -----
defaultExtent
+ ^***@300!
- ^***@300!

Item was added:
+ ----- Method: MCVersion>>reparent (in category 'actions') -----
+ reparent
+ "Let aNode be the sole parent of this version"
+ self workingCopy reparent: self!

Item was changed:
----- Method: MCVersionInspector>>buttonSpecs (in category 'morphic ui') -----
buttonSpecs
+ ^#(
+ ('Refresh' refresh 'refresh the version-list')
- ^ #(('Refresh' refresh 'refresh the version-list')
(Browse browse 'Browse this version' hasVersion)
+ (History history 'Browse the history of this version' hasVersion)
+ (Changes changes 'Browse the changes this version would make to the image' hasVersion)
+ (Load load 'Load this version into the image' hasVersion)
+ (Merge merge 'Merge this version into the image' hasVersion)
+ (Adopt adopt 'Adopt this version as an ancestor of your working copy' hasVersion)
+ (Reparent reparent 'Adopt this version as the sole ancestor of your working copy' hasVersion)
+ (Copy save 'Copy this version to another repository' hasVersion)
+ (Diff diff 'Create an equivalent version based on an earlier release' hasVersion)
+ )!
- (History history 'Browse the history of this version' hasVersion)
- (Changes changes 'Browse the changes this version would make to the
- image' hasVersion)
- (Load load 'Load this version into the image' hasVersion)
- (Merge merge 'Merge this version into the image' hasVersion)
- (Adopt adopt 'Adopt this version as an ancestor of your working copy'
- hasVersion)
- (Copy save 'Copy this version to another repository' hasVersion)
- (Diff diff 'Create an equivalent version based on an earlier release'
- hasVersion))!

Item was added:
+ ----- Method: MCVersionInspector>>reparent (in category 'accessing') -----
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the sole ancestor of your working copy?')
+ ifTrue: [self version reparent]!

Item was added:
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet unclassified') -----
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !

Item was added:
+ ----- Method: MCWorkingCopy>>reparent: (in category 'operations') -----
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ anc
Chris Muller
2018-11-10 00:11:59 UTC
Permalink
YO!! Two versions for one feature? Before I could even get my
feedback submitted?

Somebody got a itchy commit finger there! :(
Post by c***@source.squeak.org
http://source.squeak.org/trunk/Monticello-dtl.685.mcz
==================== Summary ====================
Name: Monticello-dtl.685
Author: dtl
Time: 5 November 2018, 10:52:58.748205 pm
UUID: b31c1c5b-d61a-4810-8f97-5fdcaf062dc8
Ancestors: Monticello-eem.684
MCVersionInspector has an 'Adopt' button to allow the selected version to be added to the parent or parents of a working version. Provide a 'Reparent' button to allow a selected version to become the sole parent of a working version. Adjust defaultExtent to accomodate the additional button.
Motivated by the exercise of preparing to copy Chronology-Core versions from one repository into equivalent Chronology-Core.UTC versions in another repository (possibly trunk). In this scenario, it is helpful to be able to reparent a newly loaded Chronology-Core version from one repository to be the child of the last saved Chronology-Core.UTC version in another. The '.UTC' suffix in this case is intended to branch those versions from the trunk update stream, allowing later merge to trunk with branch history preserved.
=============== Diff against Monticello-eem.684 ===============
----- Method: MCRepositoryInspector>>defaultExtent (in category 'morphic ui') -----
defaultExtent
+ ----- Method: MCVersion>>reparent (in category 'actions') -----
+ reparent
+ "Let aNode be the sole parent of this version"
+ self workingCopy reparent: self!
----- Method: MCVersionInspector>>buttonSpecs (in category 'morphic ui') -----
buttonSpecs
+ ^#(
+ ('Refresh' refresh 'refresh the version-list')
- ^ #(('Refresh' refresh 'refresh the version-list')
(Browse browse 'Browse this version' hasVersion)
+ (History history 'Browse the history of this version' hasVersion)
+ (Changes changes 'Browse the changes this version would make to the image' hasVersion)
+ (Load load 'Load this version into the image' hasVersion)
+ (Merge merge 'Merge this version into the image' hasVersion)
+ (Adopt adopt 'Adopt this version as an ancestor of your working copy' hasVersion)
+ (Reparent reparent 'Adopt this version as the sole ancestor of your working copy' hasVersion)
+ (Copy save 'Copy this version to another repository' hasVersion)
+ (Diff diff 'Create an equivalent version based on an earlier release' hasVersion)
+ )!
- (History history 'Browse the history of this version' hasVersion)
- (Changes changes 'Browse the changes this version would make to the
- image' hasVersion)
- (Load load 'Load this version into the image' hasVersion)
- (Merge merge 'Merge this version into the image' hasVersion)
- (Adopt adopt 'Adopt this version as an ancestor of your working copy'
- hasVersion)
- (Copy save 'Copy this version to another repository' hasVersion)
- (Diff diff 'Create an equivalent version based on an earlier release'
- hasVersion))!
+ ----- Method: MCVersionInspector>>reparent (in category 'accessing') -----
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the sole ancestor of your working copy?')
+ ifTrue: [self version reparent]!
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet unclassified') -----
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !
+ ----- Method: MCWorkingCopy>>reparent: (in category 'operations') -----
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ ancestry reparent: aVersion info.
+ self
David T. Lewis
2018-11-10 00:48:10 UTC
Permalink
Post by Chris Muller
YO!! Two versions for one feature? Before I could even get my
feedback submitted?
Somebody got a itchy commit finger there! :(
I don't understand what you mean.

I put this in the inbox last Tuesday. Eliot said it looked nice.
Chris said "you read my mind", which I took to be positive feedback.
Bert sounded cautious and asked for my used case, which I provided.
Levente replied with another used case that seemed to make sense.

What other feedback should I have been waiting for?

Or are you saying that the original Monticello-dtl.685 version
should have been deleted, rather than merged and retained in trunk?
That does not sound right to me.

Confused,
Dave
Post by Chris Muller
Post by c***@source.squeak.org
http://source.squeak.org/trunk/Monticello-dtl.685.mcz
==================== Summary ====================
Name: Monticello-dtl.685
Author: dtl
Time: 5 November 2018, 10:52:58.748205 pm
UUID: b31c1c5b-d61a-4810-8f97-5fdcaf062dc8
Ancestors: Monticello-eem.684
MCVersionInspector has an 'Adopt' button to allow the selected version to be added to the parent or parents of a working version. Provide a 'Reparent' button to allow a selected version to become the sole parent of a working version. Adjust defaultExtent to accomodate the additional button.
Motivated by the exercise of preparing to copy Chronology-Core versions from one repository into equivalent Chronology-Core.UTC versions in another repository (possibly trunk). In this scenario, it is helpful to be able to reparent a newly loaded Chronology-Core version from one repository to be the child of the last saved Chronology-Core.UTC version in another. The '.UTC' suffix in this case is intended to branch those versions from the trunk update stream, allowing later merge to trunk with branch history preserved.
=============== Diff against Monticello-eem.684 ===============
----- Method: MCRepositoryInspector>>defaultExtent (in category 'morphic ui') -----
defaultExtent
+ ----- Method: MCVersion>>reparent (in category 'actions') -----
+ reparent
+ "Let aNode be the sole parent of this version"
+ self workingCopy reparent: self!
----- Method: MCVersionInspector>>buttonSpecs (in category 'morphic ui') -----
buttonSpecs
+ ^#(
+ ('Refresh' refresh 'refresh the version-list')
- ^ #(('Refresh' refresh 'refresh the version-list')
(Browse browse 'Browse this version' hasVersion)
+ (History history 'Browse the history of this version' hasVersion)
+ (Changes changes 'Browse the changes this version would make to the image' hasVersion)
+ (Load load 'Load this version into the image' hasVersion)
+ (Merge merge 'Merge this version into the image' hasVersion)
+ (Adopt adopt 'Adopt this version as an ancestor of your working copy' hasVersion)
+ (Reparent reparent 'Adopt this version as the sole ancestor of your working copy' hasVersion)
+ (Copy save 'Copy this version to another repository' hasVersion)
+ (Diff diff 'Create an equivalent version based on an earlier release' hasVersion)
+ )!
- (History history 'Browse the history of this version' hasVersion)
- (Changes changes 'Browse the changes this version would make to the
- image' hasVersion)
- (Load load 'Load this version into the image' hasVersion)
- (Merge merge 'Merge this version into the image' hasVersion)
- (Adopt adopt 'Adopt this version as an ancestor of your working copy'
- hasVersion)
- (Copy save 'Copy this version to another repository' hasVersion)
- (Diff diff 'Create an equivalent version based on an earlier release'
- hasVersion))!
+ ----- Method: MCVersionInspector>>reparent (in category 'accessing') -----
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the sole ancestor of your working copy?')
+ ifTrue: [self version reparent]!
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet unclassified') -----
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !
+ ----- Method: MCWorkingCopy>>reparent: (in category 'operations') -----
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ ancestry reparent: aVersion
Chris Muller
2018-11-10 01:50:21 UTC
Permalink
Post by David T. Lewis
Post by Chris Muller
YO!! Two versions for one feature? Before I could even get my
feedback submitted?
Somebody got a itchy commit finger there! :(
I don't understand what you mean.
I put this in the inbox last Tuesday. Eliot said it looked nice.
"Last Tuesday?" Is that supposed to mean "it's been a long time?"
Because, to me, it's not nearly enough time to properly think about
what we're really wanting to do, what we want to guard against, and
the best way to accomplish it.

But apparently a new button has now already been added to our dev tools...
Post by David T. Lewis
Chris said "you read my mind", which I took to be positive feedback.
That was positive feedback about the _idea_ of being able to reparent,
but I did not fathom that this implementation was your final
submission.
Post by David T. Lewis
Bert sounded cautious and asked for my used case, which I provided.
Bert had concerns about safety, but this implementation completely
ignores them.
Post by David T. Lewis
Levente replied with another used case that seemed to make sense.
Dave, he presented a use-case in which a Reparenting function is
useful. We all agree it is useful function, but you didn't allow
adequate time for feedback and refinements.
Post by David T. Lewis
What other feedback should I have been waiting for?
Actual usage feedback. How many times has it actually been used?

Do you actually think this raw power should be there with no warnings?
<---- Please don't take that as me advocating that a Warning is the
way to make it safer... e.g., What do you think of my suggestion in
my other email about selecting one from the existing ancestry? What
you have (as well as Adopt) is selecting one from the _Repository_.
That's unnecessarily dangerous for the use-cases we're solving.
Post by David T. Lewis
Or are you saying that the original Monticello-dtl.685 version
should have been deleted, rather than merged and retained in trunk?
That does not sound right to me.
Yeah, Eliots commit was a couple of days ago,so it would be nice if
you could've merged it before committing -- and, hey -- you actually
passed on the chance to try out the very feature you were implementing
(for the very first time?) by leaving dtl.685 behind and Reparenting to eem-685.
______
I guess I'm fine to just move forward and make the refinements it from
here, but I hope you're convinced to let some things of this caliber
to gestate longer, and until you are we are all _certain_ that we have
our _final product_, the diamond we want to commit to trunk.

Either that or liberal use of a new Squash feature p

Loading...