<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>