Discussion:
[squeak-dev] The Inbox: Monticello-dtl.685.mcz
c***@source.squeak.org
0000-11-07 09:44:02 UTC
Permalink
David T. Lewis uploaded a new version of Monticello to project The Inbox:
http://source.squeak.org/inbox/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
Eliot Miranda
2018-11-06 04:20:01 UTC
Permalink
Hi David, Hi All,
Post by c***@source.squeak.org
http://source.squeak.org/inbox/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.
Nice. It is for someone like Bert to review and accept this but this seems
a very useful addition to me!
Post by c***@source.squeak.org
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 changed.!
--
_,,,^..^,,,_
best, Eliot
Chris Muller
2018-11-06 18:36:26 UTC
Permalink
You read my mind! I didn't review or test it, but I was already
thinking about this functionality to help us with Inbox submissions as
well.

What I would like to propose is that we feel the need to rapid-fire
multiple versions into trunk, to do it into Inbox instead, and when we
have the final one ready for trunk, adopt the top version in trunk as
the sole parent so that we can see just the _true_ change from the
prior version, without all the noise of the "interim" changes.

I even think the user should be prompted to do so, but one step at a time...

Best,
Chris
Post by Eliot Miranda
Hi David, Hi All,
Post by c***@source.squeak.org
http://source.squeak.org/inbox/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.
Nice. It is for someone like Bert to review and accept this but this seems a very useful addition to me!
Post by c***@source.squeak.org
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 ch
Bert Freudenberg
2018-11-06 22:12:19 UTC
Permalink
I can see that use case, but meddling with history / parentage is not the
right way to do it IMHO. (even the "adopt" button is questionable, except
in very limited circumstances) It's too easy to lose changes that way -
anything that happened in trunk up to this point from when you branched off
would be lost (or it would be the responsibility of the developer to make
sure this is not the case, which is way too fragile).

The "standard" way to do this is to do a "merge-and-squash" (standard as
in, accepted practice in other developer communities, e.g. "git merge
--squash").

This is like a merge (meaning it combines changes from both trunk and your
line of commits) but throws away all the intermediate commits, "squashing"
all the changes into one single merge commit. That means you can commit as
much and as often as you like, but when merging it into trunk, it is only
seen as one commit.

But let's ask David: what is your use case?

- Bert -
Post by Chris Muller
You read my mind! I didn't review or test it, but I was already
thinking about this functionality to help us with Inbox submissions as
well.
What I would like to propose is that we feel the need to rapid-fire
multiple versions into trunk, to do it into Inbox instead, and when we
have the final one ready for trunk, adopt the top version in trunk as
the sole parent so that we can see just the _true_ change from the
prior version, without all the noise of the "interim" changes.
I even think the user should be prompted to do so, but one step at a time...
Best,
Chris
Post by Eliot Miranda
Hi David, Hi All,
Post by c***@source.squeak.org
David T. Lewis uploaded a new version of Monticello to project The
http://source.squeak.org/inbox/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.
Post by Eliot Miranda
Nice. It is for someone like Bert to review and accept this but this
seems a very useful addition to me!
Post by Eliot Miranda
Post by c***@source.squeak.org
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.
Post by Eliot Miranda
Post by c***@source.squeak.org
=============== Diff against Monticello-eem.684 ===============
----- Method: MCRepositoryInspector>>defaultExtent (in category
'morphic ui') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Changes changes 'Browse the changes this version would
make to the image' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Adopt adopt 'Adopt this version as an ancestor of your
working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Reparent reparent 'Adopt this version as the sole
ancestor of your working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Diff diff 'Create an equivalent version based on an
earlier release' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ )!
- (History history 'Browse the history of this version'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Changes changes 'Browse the changes this version
would make to the
Post by Eliot Miranda
Post by c***@source.squeak.org
- image' hasVersion)
- (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Adopt adopt 'Adopt this version as an ancestor of
your working copy'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion)
- (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Diff diff 'Create an equivalent version based on an
earlier release'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion))!
+ ----- Method: MCVersionInspector>>reparent (in category 'accessing')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the sole
ancestor of your working copy?')
Post by Eliot Miranda
Post by c***@source.squeak.org
+ ifTrue: [self version reparent]!
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet
unclassified') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !
+ ----- Method: MCWorkingCopy>>reparent: (in category 'operations')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ ancestry reparent: aVersion info.
+ self changed.!
--
_,,,^..^,,,_
best, Eliot
Chris Muller
2018-11-06 22:36:57 UTC
Permalink
I can see that use case, but meddling with history / parentage is not the right way to do it IMHO. (even the "adopt" button is questionable, except in very limited circumstances) It's too easy to lose changes that way - anything that happened in trunk up to this point from when you branched off would be lost (or it would be the responsibility of the developer to make sure this is not the case, which is way too fragile).
C'mon Bert, it's a basic developer responsibility anyway. It isn't
any different or more "fragile" than someone committing a version that
didn't merge changes since they started working on it. Why all these
drama words like "meddling"? I call it making "quality commits"...
The "standard" way to do this is to do a "merge-and-squash" (standard as in, accepted practice in other developer communities, e.g. "git merge --squash").
Of course merging the latest trunk updates is *implied*, it's a basic
dev responsibility, otherwise what one would be putting into trunk
would not be correct in either case...
This is like a merge (meaning it combines changes from both trunk and your line of commits) but throws away all the intermediate commits, "squashing" all the changes into one single merge commit. That means you can commit as much and as often as you like, but when merging it into trunk, it is only seen as one commit.
That sounds great!
But let's ask David: what is your use case?
I think Dave's use case is the same as when we split Chronology from
Kernel into its own "Chronology" package.
David T. Lewis
2018-11-06 22:46:24 UTC
Permalink
My use case is different.

Package Chronology-Core is part of the trunk update stream. Separate from
this, and hosted in a squeaksource.com repository for UTCDateAndTime, I
have a sequence of Chronology-Core versions that ends with a version that
I would like to be able to submit into the existing trunk stream.

Both streams (Squeak trunk and SS UTCDateAndTime) are rooting in a common
version Chronology-Core-cmm.2 of 3 March 2016. Both streams have progressed
in parallel, and are (mostly) functionally equivalent.

I was looking for a way to move the squeaksource.com update stream
into trunk without disrupting the existing update stream. A possible
solution is to re-save the squeaksource.com versions as versions named
'Chronology-Core.UTC-xxx.nn.mcz' rather than 'Chronology-Core-xxx.nn.mcz'.

In order to do this, I loaded individual versions 'Chronology-Core-xxx.nn.mcz'
from the squeaksource repository, then saved them as equivalent
'Chronology-Core.UTC-xxx.nn.mcz' versions in a local repository on my PC
(that could later be copied to inbox or trunk if the experiment works).

As part of this process, it was necessary for me to load from one
repository, then save to another using the '.UTC' naming. In order for
this to work, I needed to be able to reparent the new '.UTC' version to
its immediate predecessor in the new repository. This retains the '.UTC'
naming throughout the new repository version histary, and results in
a sequence of 'Chronology-Core.UTC-xxx.nn.mcz' versions in the new
repository that is equivalent to the original, but separate from the
naming conventions of the Squeak trunk update stream.

This is probably not a common use case ;-)

Dave
Post by Bert Freudenberg
I can see that use case, but meddling with history / parentage is not the
right way to do it IMHO. (even the "adopt" button is questionable, except
in very limited circumstances) It's too easy to lose changes that way -
anything that happened in trunk up to this point from when you branched off
would be lost (or it would be the responsibility of the developer to make
sure this is not the case, which is way too fragile).
The "standard" way to do this is to do a "merge-and-squash" (standard as
in, accepted practice in other developer communities, e.g. "git merge
--squash").
This is like a merge (meaning it combines changes from both trunk and your
line of commits) but throws away all the intermediate commits, "squashing"
all the changes into one single merge commit. That means you can commit as
much and as often as you like, but when merging it into trunk, it is only
seen as one commit.
But let's ask David: what is your use case?
- Bert -
Post by Chris Muller
You read my mind! I didn't review or test it, but I was already
thinking about this functionality to help us with Inbox submissions as
well.
What I would like to propose is that we feel the need to rapid-fire
multiple versions into trunk, to do it into Inbox instead, and when we
have the final one ready for trunk, adopt the top version in trunk as
the sole parent so that we can see just the _true_ change from the
prior version, without all the noise of the "interim" changes.
I even think the user should be prompted to do so, but one step at a time...
Best,
Chris
Post by Eliot Miranda
Hi David, Hi All,
Post by c***@source.squeak.org
David T. Lewis uploaded a new version of Monticello to project The
http://source.squeak.org/inbox/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.
Post by Eliot Miranda
Nice. It is for someone like Bert to review and accept this but this
seems a very useful addition to me!
Post by Eliot Miranda
Post by c***@source.squeak.org
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.
Post by Eliot Miranda
Post by c***@source.squeak.org
=============== Diff against Monticello-eem.684 ===============
----- Method: MCRepositoryInspector>>defaultExtent (in category
'morphic ui') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Changes changes 'Browse the changes this version would
make to the image' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Adopt adopt 'Adopt this version as an ancestor of your
working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Reparent reparent 'Adopt this version as the sole
ancestor of your working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Diff diff 'Create an equivalent version based on an
earlier release' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ )!
- (History history 'Browse the history of this version'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Changes changes 'Browse the changes this version
would make to the
Post by Eliot Miranda
Post by c***@source.squeak.org
- image' hasVersion)
- (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Adopt adopt 'Adopt this version as an ancestor of
your working copy'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion)
- (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Diff diff 'Create an equivalent version based on an
earlier release'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion))!
+ ----- Method: MCVersionInspector>>reparent (in category 'accessing')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the sole
ancestor of your working copy?')
Post by Eliot Miranda
Post by c***@source.squeak.org
+ ifTrue: [self version reparent]!
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet
unclassified') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !
+ ----- Method: MCWorkingCopy>>reparent: (in category 'operations')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ ancestry reparent: aVersion info.
+ self changed.!
--
_,,,
Levente Uzonyi
2018-11-09 22:11:38 UTC
Permalink
A not too common but practical use case is that you don't have to start
over from scratch when you had prepared a batch of versions depending on
each other requiring .mcm files between them, but someone pushed a
different version of the same package before you started to upload yours.
With this tool, you can just load/merge, reparent and save each version
one-by-one instead of filing out and reloading your changes.
You still have to do things to "fix it", but it's a lot less tedious with
reparent.

So, +1 from me.

Levente
Post by David T. Lewis
My use case is different.
Package Chronology-Core is part of the trunk update stream. Separate from
this, and hosted in a squeaksource.com repository for UTCDateAndTime, I
have a sequence of Chronology-Core versions that ends with a version that
I would like to be able to submit into the existing trunk stream.
Both streams (Squeak trunk and SS UTCDateAndTime) are rooting in a common
version Chronology-Core-cmm.2 of 3 March 2016. Both streams have progressed
in parallel, and are (mostly) functionally equivalent.
I was looking for a way to move the squeaksource.com update stream
into trunk without disrupting the existing update stream. A possible
solution is to re-save the squeaksource.com versions as versions named
'Chronology-Core.UTC-xxx.nn.mcz' rather than 'Chronology-Core-xxx.nn.mcz'.
In order to do this, I loaded individual versions 'Chronology-Core-xxx.nn.mcz'
from the squeaksource repository, then saved them as equivalent
'Chronology-Core.UTC-xxx.nn.mcz' versions in a local repository on my PC
(that could later be copied to inbox or trunk if the experiment works).
As part of this process, it was necessary for me to load from one
repository, then save to another using the '.UTC' naming. In order for
this to work, I needed to be able to reparent the new '.UTC' version to
its immediate predecessor in the new repository. This retains the '.UTC'
naming throughout the new repository version histary, and results in
a sequence of 'Chronology-Core.UTC-xxx.nn.mcz' versions in the new
repository that is equivalent to the original, but separate from the
naming conventions of the Squeak trunk update stream.
This is probably not a common use case ;-)
Dave
Post by Bert Freudenberg
I can see that use case, but meddling with history / parentage is not the
right way to do it IMHO. (even the "adopt" button is questionable, except
in very limited circumstances) It's too easy to lose changes that way -
anything that happened in trunk up to this point from when you branched off
would be lost (or it would be the responsibility of the developer to make
sure this is not the case, which is way too fragile).
The "standard" way to do this is to do a "merge-and-squash" (standard as
in, accepted practice in other developer communities, e.g. "git merge
--squash").
This is like a merge (meaning it combines changes from both trunk and your
line of commits) but throws away all the intermediate commits, "squashing"
all the changes into one single merge commit. That means you can commit as
much and as often as you like, but when merging it into trunk, it is only
seen as one commit.
But let's ask David: what is your use case?
- Bert -
Post by Chris Muller
You read my mind! I didn't review or test it, but I was already
thinking about this functionality to help us with Inbox submissions as
well.
What I would like to propose is that we feel the need to rapid-fire
multiple versions into trunk, to do it into Inbox instead, and when we
have the final one ready for trunk, adopt the top version in trunk as
the sole parent so that we can see just the _true_ change from the
prior version, without all the noise of the "interim" changes.
I even think the user should be prompted to do so, but one step at a time...
Best,
Chris
Post by Eliot Miranda
Hi David, Hi All,
Post by c***@source.squeak.org
David T. Lewis uploaded a new version of Monticello to project The
http://source.squeak.org/inbox/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.
Post by Eliot Miranda
Nice. It is for someone like Bert to review and accept this but this
seems a very useful addition to me!
Post by Eliot Miranda
Post by c***@source.squeak.org
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.
Post by Eliot Miranda
Post by c***@source.squeak.org
=============== Diff against Monticello-eem.684 ===============
----- Method: MCRepositoryInspector>>defaultExtent (in category
'morphic ui') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Changes changes 'Browse the changes this version would
make to the image' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Adopt adopt 'Adopt this version as an ancestor of your
working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Reparent reparent 'Adopt this version as the sole
ancestor of your working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Diff diff 'Create an equivalent version based on an
earlier release' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ )!
- (History history 'Browse the history of this version'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Changes changes 'Browse the changes this version
would make to the
Post by Eliot Miranda
Post by c***@source.squeak.org
- image' hasVersion)
- (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Adopt adopt 'Adopt this version as an ancestor of
your working copy'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion)
- (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Diff diff 'Create an equivalent version based on an
earlier release'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion))!
+ ----- Method: MCVersionInspector>>reparent (in category 'accessing')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the sole
ancestor of your working copy?')
Post by Eliot Miranda
Post by c***@source.squeak.org
+ ifTrue: [self version reparent]!
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet
unclassified') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !
+ ----- Method: MCWorkingCopy>>reparent: (in category 'operations')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ ancestry reparent: aVersion info.
+ self changed.!
--
_,,,^..^,,,_
best, Eliot
Chris Muller
2018-11-10 00:10:15 UTC
Permalink
Guys, is there any way in the UI to get the VersionInspector open on a
previously-saved version? "Browse" doesn't do it. "History" doesn't
do it. Am I missing something?

We all like this feature, but I think Bert raised a good point about
the rawness of it, so what would y'all think about if we required that
whatever version you want to reparent to *already exists in the
ancestry*? In fact, instead of a Button, maybe it should added to the
context menu of the ancestors in the "History" view.

Also, please do not change the #defaultExtent to your own personal
preference but move toward making it user-settable.

- Chris
Post by Levente Uzonyi
A not too common but practical use case is that you don't have to start
over from scratch when you had prepared a batch of versions depending on
each other requiring .mcm files between them, but someone pushed a
different version of the same package before you started to upload yours.
With this tool, you can just load/merge, reparent and save each version
one-by-one instead of filing out and reloading your changes.
You still have to do things to "fix it", but it's a lot less tedious with
reparent.
So, +1 from me.
Levente
Post by David T. Lewis
My use case is different.
Package Chronology-Core is part of the trunk update stream. Separate from
this, and hosted in a squeaksource.com repository for UTCDateAndTime, I
have a sequence of Chronology-Core versions that ends with a version that
I would like to be able to submit into the existing trunk stream.
Both streams (Squeak trunk and SS UTCDateAndTime) are rooting in a common
version Chronology-Core-cmm.2 of 3 March 2016. Both streams have progressed
in parallel, and are (mostly) functionally equivalent.
I was looking for a way to move the squeaksource.com update stream
into trunk without disrupting the existing update stream. A possible
solution is to re-save the squeaksource.com versions as versions named
'Chronology-Core.UTC-xxx.nn.mcz' rather than 'Chronology-Core-xxx.nn.mcz'.
In order to do this, I loaded individual versions 'Chronology-Core-xxx.nn.mcz'
from the squeaksource repository, then saved them as equivalent
'Chronology-Core.UTC-xxx.nn.mcz' versions in a local repository on my PC
(that could later be copied to inbox or trunk if the experiment works).
As part of this process, it was necessary for me to load from one
repository, then save to another using the '.UTC' naming. In order for
this to work, I needed to be able to reparent the new '.UTC' version to
its immediate predecessor in the new repository. This retains the '.UTC'
naming throughout the new repository version histary, and results in
a sequence of 'Chronology-Core.UTC-xxx.nn.mcz' versions in the new
repository that is equivalent to the original, but separate from the
naming conventions of the Squeak trunk update stream.
This is probably not a common use case ;-)
Dave
Post by Bert Freudenberg
I can see that use case, but meddling with history / parentage is not the
right way to do it IMHO. (even the "adopt" button is questionable, except
in very limited circumstances) It's too easy to lose changes that way -
anything that happened in trunk up to this point from when you branched off
would be lost (or it would be the responsibility of the developer to make
sure this is not the case, which is way too fragile).
The "standard" way to do this is to do a "merge-and-squash" (standard as
in, accepted practice in other developer communities, e.g. "git merge
--squash").
This is like a merge (meaning it combines changes from both trunk and your
line of commits) but throws away all the intermediate commits, "squashing"
all the changes into one single merge commit. That means you can commit as
much and as often as you like, but when merging it into trunk, it is only
seen as one commit.
But let's ask David: what is your use case?
- Bert -
Post by Chris Muller
You read my mind! I didn't review or test it, but I was already
thinking about this functionality to help us with Inbox submissions as
well.
What I would like to propose is that we feel the need to rapid-fire
multiple versions into trunk, to do it into Inbox instead, and when we
have the final one ready for trunk, adopt the top version in trunk as
the sole parent so that we can see just the _true_ change from the
prior version, without all the noise of the "interim" changes.
I even think the user should be prompted to do so, but one step at a time...
Best,
Chris
Post by Eliot Miranda
Hi David, Hi All,
Post by c***@source.squeak.org
David T. Lewis uploaded a new version of Monticello to project The
http://source.squeak.org/inbox/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.
Post by Eliot Miranda
Nice. It is for someone like Bert to review and accept this but this
seems a very useful addition to me!
Post by Eliot Miranda
Post by c***@source.squeak.org
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.
Post by Eliot Miranda
Post by c***@source.squeak.org
=============== Diff against Monticello-eem.684 ===============
----- Method: MCRepositoryInspector>>defaultExtent (in category
'morphic ui') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Changes changes 'Browse the changes this version would
make to the image' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Adopt adopt 'Adopt this version as an ancestor of your
working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Reparent reparent 'Adopt this version as the sole
ancestor of your working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Diff diff 'Create an equivalent version based on an
earlier release' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ )!
- (History history 'Browse the history of this version'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Changes changes 'Browse the changes this version
would make to the
Post by Eliot Miranda
Post by c***@source.squeak.org
- image' hasVersion)
- (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Adopt adopt 'Adopt this version as an ancestor of
your working copy'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion)
- (Copy save 'Copy this version to another repository'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Diff diff 'Create an equivalent version based on an
earlier release'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion))!
+ ----- Method: MCVersionInspector>>reparent (in category 'accessing')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the sole
ancestor of your working copy?')
Post by Eliot Miranda
Post by c***@source.squeak.org
+ ifTrue: [self version reparent]!
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet
unclassified') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !
+ ----- Method: MCWorkingCopy>>reparent: (in category 'operations')
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ ancestry reparent: aVersion info.
+ self changed.!
--
_,,,^..^,,,_
best, Eliot
Eliot Miranda
2018-11-10 05:00:17 UTC
Permalink
Post by Chris Muller
Guys, is there any way in the UI to get the VersionInspector open on a
previously-saved version? "Browse" doesn't do it. "History" doesn't
do it. Am I missing something?
We all like this feature, but I think Bert raised a good point about
the rawness of it, so what would y'all think about if we required that
whatever version you want to reparent to *already exists in the
ancestry*? In fact, instead of a Button, maybe it should added to the
context menu of the ancestors in the "History" view.
Also, please do not change the #defaultExtent to your own personal
preference but move toward making it user-settable.
IMO the *right* way to do this is simply to remember the last size when the
window was last closed. This was what I added for the debugger and I love
it. It's simple and convenient.
Post by Chris Muller
- Chris
Post by Levente Uzonyi
A not too common but practical use case is that you don't have to start
over from scratch when you had prepared a batch of versions depending on
each other requiring .mcm files between them, but someone pushed a
different version of the same package before you started to upload yours.
With this tool, you can just load/merge, reparent and save each version
one-by-one instead of filing out and reloading your changes.
You still have to do things to "fix it", but it's a lot less tedious with
reparent.
So, +1 from me.
Levente
Post by David T. Lewis
My use case is different.
Package Chronology-Core is part of the trunk update stream. Separate
from
Post by Levente Uzonyi
Post by David T. Lewis
this, and hosted in a squeaksource.com repository for UTCDateAndTime,
I
Post by Levente Uzonyi
Post by David T. Lewis
have a sequence of Chronology-Core versions that ends with a version
that
Post by Levente Uzonyi
Post by David T. Lewis
I would like to be able to submit into the existing trunk stream.
Both streams (Squeak trunk and SS UTCDateAndTime) are rooting in a
common
Post by Levente Uzonyi
Post by David T. Lewis
version Chronology-Core-cmm.2 of 3 March 2016. Both streams have
progressed
Post by Levente Uzonyi
Post by David T. Lewis
in parallel, and are (mostly) functionally equivalent.
I was looking for a way to move the squeaksource.com update stream
into trunk without disrupting the existing update stream. A possible
solution is to re-save the squeaksource.com versions as versions named
'Chronology-Core.UTC-xxx.nn.mcz' rather than
'Chronology-Core-xxx.nn.mcz'.
Post by Levente Uzonyi
Post by David T. Lewis
In order to do this, I loaded individual versions
'Chronology-Core-xxx.nn.mcz'
Post by Levente Uzonyi
Post by David T. Lewis
from the squeaksource repository, then saved them as equivalent
'Chronology-Core.UTC-xxx.nn.mcz' versions in a local repository on my
PC
Post by Levente Uzonyi
Post by David T. Lewis
(that could later be copied to inbox or trunk if the experiment works).
As part of this process, it was necessary for me to load from one
repository, then save to another using the '.UTC' naming. In order for
this to work, I needed to be able to reparent the new '.UTC' version to
its immediate predecessor in the new repository. This retains the
'.UTC'
Post by Levente Uzonyi
Post by David T. Lewis
naming throughout the new repository version histary, and results in
a sequence of 'Chronology-Core.UTC-xxx.nn.mcz' versions in the new
repository that is equivalent to the original, but separate from the
naming conventions of the Squeak trunk update stream.
This is probably not a common use case ;-)
Dave
Post by Bert Freudenberg
I can see that use case, but meddling with history / parentage is not
the
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
right way to do it IMHO. (even the "adopt" button is questionable,
except
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
in very limited circumstances) It's too easy to lose changes that way
-
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
anything that happened in trunk up to this point from when you
branched off
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
would be lost (or it would be the responsibility of the developer to
make
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
sure this is not the case, which is way too fragile).
The "standard" way to do this is to do a "merge-and-squash" (standard
as
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
in, accepted practice in other developer communities, e.g. "git merge
--squash").
This is like a merge (meaning it combines changes from both trunk and
your
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
line of commits) but throws away all the intermediate commits,
"squashing"
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
all the changes into one single merge commit. That means you can
commit as
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
much and as often as you like, but when merging it into trunk, it is
only
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
seen as one commit.
But let's ask David: what is your use case?
- Bert -
Post by Chris Muller
You read my mind! I didn't review or test it, but I was already
thinking about this functionality to help us with Inbox submissions
as
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
well.
What I would like to propose is that we feel the need to rapid-fire
multiple versions into trunk, to do it into Inbox instead, and when
we
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
have the final one ready for trunk, adopt the top version in trunk
as
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
the sole parent so that we can see just the _true_ change from the
prior version, without all the noise of the "interim" changes.
I even think the user should be prompted to do so, but one step at a time...
Best,
Chris
On Mon, Nov 5, 2018 at 10:20 PM Eliot Miranda <
Post by Eliot Miranda
Hi David, Hi All,
Post by c***@source.squeak.org
David T. Lewis uploaded a new version of Monticello to project
The
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
Post by Eliot Miranda
Post by c***@source.squeak.org
http://source.squeak.org/inbox/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
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
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
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
a working version. Adjust defaultExtent to accomodate the
additional button.
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
Post by Eliot Miranda
Nice. It is for someone like Bert to review and accept this but
this
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
seems a very useful addition to me!
Post by Eliot Miranda
Post by c***@source.squeak.org
Motivated by the exercise of preparing to copy Chronology-Core
versions
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
from one repository into equivalent Chronology-Core.UTC versions in
another
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
repository (possibly trunk). In this scenario, it is helpful to be
able to
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
reparent a newly loaded Chronology-Core version from one repository
to be
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
the child of the last saved Chronology-Core.UTC version in another.
The
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
'.UTC' suffix in this case is intended to branch those versions
from the
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
trunk update stream, allowing later merge to trunk with branch
history
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
preserved.
Post by Eliot Miranda
Post by c***@source.squeak.org
=============== Diff against Monticello-eem.684 ===============
----- Method: MCRepositoryInspector>>defaultExtent (in category
'morphic ui') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
ui') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
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'
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Changes changes 'Browse the changes this
version would
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
make to the image' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Adopt adopt 'Adopt this version as an ancestor
of your
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Reparent reparent 'Adopt this version as the
sole
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
ancestor of your working copy' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Copy save 'Copy this version to another
repository'
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ (Diff diff 'Create an equivalent version based
on an
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
earlier release' hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
+ )!
- (History history 'Browse the history of this
version'
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Changes changes 'Browse the changes this
version
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
would make to the
Post by Eliot Miranda
Post by c***@source.squeak.org
- image' hasVersion)
- (Load load 'Load this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Merge merge 'Merge this version into the image'
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Adopt adopt 'Adopt this version as an ancestor
of
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
your working copy'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion)
- (Copy save 'Copy this version to another
repository'
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
hasVersion)
Post by Eliot Miranda
Post by c***@source.squeak.org
- (Diff diff 'Create an equivalent version based
on an
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
earlier release'
Post by Eliot Miranda
Post by c***@source.squeak.org
- hasVersion))!
+ ----- Method: MCVersionInspector>>reparent (in category
'accessing')
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent
+ (self confirm:'Adopt ',self version info name, ' as the
sole
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
ancestor of your working copy?')
Post by Eliot Miranda
Post by c***@source.squeak.org
+ ifTrue: [self version reparent]!
+ ----- Method: MCWorkingAncestry>>reparent: (in category 'as yet
unclassified') -----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aNode
+ "Let aNode be the sole parent of this version"
+ ancestors := Array with: aNode
+ !
+ ----- Method: MCWorkingCopy>>reparent: (in category
'operations')
Post by Levente Uzonyi
Post by David T. Lewis
Post by Bert Freudenberg
Post by Chris Muller
-----
Post by Eliot Miranda
Post by c***@source.squeak.org
+ reparent: aVersion
+ "Let aNode be the sole parent of this version"
+ ancestry reparent: aVersion info.
+ self changed.!
--
_,,,^..^,,,_
best, Eliot
--
_,,,^..^,,,_
best, Eliot
Chris Muller
2018-11-10 22:45:23 UTC
Permalink
Post by Chris Muller
Also, please do not change the #defaultExtent to your own personal
preference but move toward making it user-settable.
IMO the *right* way to do this is simply to remember the last size when the window was last closed. This was what I added for the debugger and I love it. It's simple and convenient.
I can appreciate it as a reasonable behavior and an efficient way for
the user to "set" their preferred extent for a window, by type.

However, it also brings context-specific resizes of prior windows to
future windows. For example, just because I maximize an inspector to
do a one-time interrogation of one specific object doesn't mean I want
the next inspector to open that large. Sure, I can easily size it
back down, but by then it has distracted me from what I was thinking
about to have to think about something else. So, I think there can be
a benefit to having a simple defaultExtent and sticking with it.

The good news is, since this is Smalltalk, I'm confident we can come
up with a simple way offer both strategies, probably even by window
type.

Remembering the last also may not be very intuitive from the sense
that people don't think of "closing a window" as a way to "configure"
something -- usually they just want to close the window. So, it may
useful to also an entry to the window menu.

We definitely need to do something, because these vast swaths of
useless whitespace covering my ba

Loading...