<div dir="auto">Hi Dave,<div dir="auto">The bold-red only appears in version list, not in package list, and more over, only on selected version.</div><div dir="auto">This is because the id are not easily accessible until the package is loaded.</div><div dir="auto">For an example, select Installer-Core in inbox, any version.</div></div><br><div class="gmail_quote"><div dir="ltr">Le jeu. 14 févr. 2019 à 03:21, David T. Lewis <<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This should be very helpful. But I am confused, and I don't know<br>
how to see the bold-red-UI warning.<br>
<br>
Can you give an example of a browser that shows the bold red font?<br>
For example, if I open a MCFileRepositoryInspector on the inbox,<br>
with Monticello selected as the package in the left pane, should<br>
I see a version in bold red font on the list of versions in the<br>
right pane?<br>
<br>
Thanks,<br>
Dave<br>
<br>
<br>
On Wed, Feb 13, 2019 at 04:10:48PM +0000, <a href="mailto:commits@source.squeak.org" target="_blank" rel="noreferrer">commits@source.squeak.org</a> wrote:<br>
> Nicolas Cellier uploaded a new version of Monticello to project The Trunk:<br>
> <a href="http://source.squeak.org/trunk/Monticello-nice.694.mcz" rel="noreferrer noreferrer" target="_blank">http://source.squeak.org/trunk/Monticello-nice.694.mcz</a><br>
> <br>
> ==================== Summary ====================<br>
> <br>
> Name: Monticello-nice.694<br>
> Author: nice<br>
> Time: 13 February 2019, 5:10:42.293481 pm<br>
> UUID: 32251c33-6f20-4c4f-8e6b-b0bb32019731<br>
> Ancestors: Monticello-tpr.693<br>
> <br>
> Warn about false ancestors thru bold-red-UI<br>
> <br>
> A false ancestor is a package that has same name-author.versionNumber than a true ancestor, but not the same id (UUID).<br>
> Generally, its contents will be different from the true ancestor.<br>
> It is vital to know this information, particularly when browsing an inbox, otherwise we could override a true ancestor when moving/copying this package to repository that already contains the true one.<br>
> <br>
> Right now, the warning is only for selected version in the versionList.<br>
> It's because the list is built from version names only and ignore ids.<br>
> Most actions will operate on selected version though, so it's better than nothing.<br>
> <br>
> =============== Diff against Monticello-tpr.693 ===============<br>
> <br>
> Item was changed:<br>
> MCVersionInspector subclass: #MCRepositoryInspector<br>
> + instanceVariableNames: 'repository packageNames versionNames selectedPackage selectedVersion order versionInfo loaded newer inherited inheritedId'<br>
> - instanceVariableNames: 'repository packageNames versionNames selectedPackage selectedVersion order versionInfo loaded newer inherited'<br>
> classVariableNames: 'BrowseBranchedVersionsSeparately Order'<br>
> poolDictionaries: ''<br>
> category: 'Monticello-UI'!<br>
> <br>
> Item was changed:<br>
> ----- Method: MCRepositoryInspector>>identifyLoadedAndInherited: (in category 'morphic ui') -----<br>
> identifyLoadedAndInherited: aMCWorkingCopy <br>
> | seen |<br>
> seen := Set new.<br>
> aMCWorkingCopy ancestors do:<br>
> [ : ancestor | loaded add: ancestor versionName.<br>
> seen add: ancestor.<br>
> ancestor ancestorsDoWhileTrue:<br>
> [ : heir | (seen includes: heir)<br>
> ifTrue: [ false ]<br>
> ifFalse:<br>
> [ inherited add: heir versionName.<br>
> + inheritedId add: heir id.<br>
> seen add: heir.<br>
> true ] ] ]!<br>
> <br>
> Item was changed:<br>
> ----- Method: MCRepositoryInspector>>initializeEmphasis (in category 'initialize-release') -----<br>
> initializeEmphasis<br>
> inherited := Set new.<br>
> + inheritedId := Set new.<br>
> loaded := Set new!<br>
> <br>
> Item was added:<br>
> + ----- Method: MCRepositoryInspector>>selectedVersionIsFalseAncestor (in category 'testing') -----<br>
> + selectedVersionIsFalseAncestor<br>
> + "Answer true if selectedVersion is a false ancestor of working copy.<br>
> + An ancestor of working copy that has same name, but not same id is a false ancestor!!"<br>
> + ^(selectedVersion notNil<br>
> + and: [(inherited includes: selectedVersion versionName)<br>
> + and: [(inheritedId includes: self versionInfo id) not]])!<br>
> <br>
> Item was added:<br>
> + ----- Method: MCRepositoryInspector>>summary (in category 'morphic ui') -----<br>
> + summary<br>
> + self selectedVersionIsFalseAncestor<br>
> + ifTrue: [^ (Text string: 'Beware, this is a false ancestor whose name conflicts with a true one\' withCRs attributes: {TextColor red. TextEmphasis bold})<br>
> + , super summary].<br>
> + ^ super summary!<br>
> <br>
> Item was changed:<br>
> ----- Method: MCRepositoryInspector>>versionHighlight: (in category 'morphic ui') -----<br>
> + versionHighlight: aMCVersionName <br>
> - versionHighlight: aMCVersionName<br>
> inherited ifNil: [inherited := #()].<br>
> + inheritedId ifNil: [inheritedId := #()].<br>
> + (selectedVersion notNil<br>
> + and: [selectedVersion = aMCVersionName<br>
> + and: [self selectedVersionIsFalseAncestor]])<br>
> + ifTrue: ["False ancestor might be dangerous, signal them in red"<br>
> + ^ Text string: aMCVersionName attributes: {TextColor red. TextEmphasis bold}].<br>
> + ^ Text<br>
> - ^Text<br>
> string: aMCVersionName<br>
> + attribute: (TextEmphasis new<br>
> + emphasisCode: ((loaded includes: aMCVersionName)<br>
> + ifTrue: ["underlined" 4]<br>
> + ifFalse: [(inherited includes: aMCVersionName)<br>
> + ifTrue: [0]<br>
> + ifFalse: ["bold" 1]]))!<br>
> - attribute: (TextEmphasis new emphasisCode: (<br>
> - ((loaded includes: aMCVersionName) ifTrue: [ 4 "underlined" ]<br>
> - ifFalse: [ (inherited includes: aMCVersionName)<br>
> - ifTrue: [ 0 ]<br>
> - ifFalse: [ 1 "bold" ] ])))!<br>
> <br>
> Item was changed:<br>
> ----- Method: MCRepositoryInspector>>versionSelection: (in category 'morphic ui') -----<br>
> versionSelection: aNumber <br>
> selectedVersion := version := nil.<br>
> aNumber isZero ifFalse: [ selectedVersion := (self versionList at: aNumber) asString ].<br>
> + self selectedVersionIsFalseAncestor ifTrue: [self changed: #versionList].<br>
> self<br>
> changed: #versionSelection ;<br>
> changed: #summary ;<br>
> changed: #hasVersion!<br>
> <br>
> <br>
<br>
</blockquote></div>