MCVersion.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 06 Oct 2021 12:18:22 +0100
branchjv
changeset 1153 16866d65107a
parent 1143 1999f5363e6f
child 1167 37c202ea81a8
permissions -rw-r--r--
Do not cache `MCVersion`s in cache repository
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1143
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
     1
"
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
     2
COPYRIGHT (c) 2021 LabWare
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
     3
"
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/monticello' }"
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
1143
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
     6
"{ NameSpace: Smalltalk }"
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
     7
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
Object subclass:#MCVersion
741
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
     9
	instanceVariableNames:'package info snapshot dependencies cachable'
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	classVariableNames:''
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
	poolDictionaries:''
696
5aadac254fdd category change
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
    12
	category:'SCM-Monticello-Versioning'
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
1143
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    15
!MCVersion class methodsFor:'documentation'!
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    16
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    17
copyright
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    18
"
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    19
COPYRIGHT (c) 2021 LabWare
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    20
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    21
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    22
"
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    23
! !
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!MCVersion class methodsFor:'instance creation'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
1143
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    27
forPackage: packageId
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    28
    "Returns an MCVersion for currently loaded code"
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    29
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    30
    | pkg wc versionInfo version |
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    31
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    32
    pkg := MCPackage named: packageId.
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    33
    wc := pkg workingCopy.
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    34
    versionInfo := MCVersionInfo forPackage: packageId.
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    35
    [
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    36
        version := wc newVersion.
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    37
        version snapshot options includeExtrasForSTX:false.
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    38
    ] on:MCVersionNameAndMessageRequest do:[:ex | 
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    39
        ex resume:(Array with:versionInfo name with:versionInfo message) 
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    40
    ].
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    41
    version info:versionInfo.        
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    42
    ^ version
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    43
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    44
    "
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    45
    MCVersion forPackage: 'MachineArithmetic'
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    46
    "
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    47
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    48
    "Created: / 03-05-2021 / 16:14:04 / Jan Vrany <jan.vrany@labware.com>"
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    49
!
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
    50
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
package: aPackageOrPackageID
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    52
	aPackageOrPackageID isSymbol ifTrue:[
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    53
	    "/ an ST/X package-ID
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    54
	    ^ super package: aPackageOrPackageID
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    55
	].
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    56
	"/ a monticello package-ID
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    57
	^ self package: aPackageOrPackageID info: MCVersionInfo new
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    "Modified: / 22-11-2006 / 14:16:22 / cg"
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
package: aPackage info: aVersionInfo
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	^ self package: aPackage info: aVersionInfo snapshot: aPackage snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
package: aPackage info: aVersionInfo snapshot: aSnapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	^ self package: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: #()
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
package: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
	^ self new initializeWithPackage: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
!MCVersion methodsFor:'accessing'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
741
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    76
cachable:something
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    77
    cachable := something.
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    78
!
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    79
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
changes
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
	^ self snapshot patchRelativeToBase: package snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
dependencies
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
	^ dependencies ifNil: [#()]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
fileName
764
3eb1773a5ce8 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 741
diff changeset
    89
    |rawName cookedName legalName|
570
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    90
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    91
    rawName := info name.
764
3eb1773a5ce8 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 741
diff changeset
    92
    cookedName := rawName copy replaceAny:'/:' with:$_.
765
03519ebb18d1 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 764
diff changeset
    93
    legalName := cookedName asFilename makeLegalFilename name.
570
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    94
    ^ legalName, '.', self writerClass extension
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    95
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    96
    "Modified: / 24-07-2012 / 16:30:13 / cg"
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
info
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	^ info
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
882
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
   103
info: anMCAncestry
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
   104
    info := anMCAncestry.
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
   105
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
   106
    "Modified (format): / 07-06-2013 / 01:01:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
   107
!
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
   108
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
package
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	^ package
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	^ snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
531
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   117
snapshot:anMCSnapshot
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   118
   snapshot := anMCSnapshot
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   119
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   120
    "Created: / 02-12-2011 / 16:10:18 / cg"
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   121
!
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   122
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
summary
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
	^ String streamContents:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
		[:s |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
		s nextPutAll: info summaryHeader.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
		(dependencies isNil or: [dependencies isEmpty]) ifFalse:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
			[s cr; nextPutAll: 'Dependencies: '.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
			dependencies
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
				do: [:ea | s nextPutAll: ea versionInfo name]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
				separatedBy: [s nextPutAll: ', ']].
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
		s cr; cr; nextPutAll: info message]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
workingCopy
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
	^ package workingCopy
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
writerClass
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   140
    Smalltalk isSmalltalkX ifTrue:[
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   141
	^ MCStxMczWriter
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   142
    ] ifFalse:[
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   143
	^ MCMczWriter
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   144
    ]
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
!MCVersion methodsFor:'actions'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
addToCache
1153
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   150
        MCCacheRepository default storeVersion: self
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   151
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   152
    "Modified: / 06-10-2021 / 12:16:44 / Jan Vrany <jan.vrany@labware.com>"
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
adopt
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	self workingCopy adopt: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
browse
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
	(MCSnapshotBrowser forSnapshot: self snapshot)
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
		showLabelled: 'Snapshot of ', self fileName
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
fileOutOn: aStream
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
	self writerClass fileOut: self on: aStream
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
load
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
	MCVersionLoader loadVersion: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
merge
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
	MCVersionMerger mergeVersion: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
open
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
	(MCVersionInspector new version: self) show
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
!MCVersion methodsFor:'converting'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
asDiffAgainst: aVersion
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
	aVersion info = self info ifTrue: [self error: 'Cannot diff against self!!'].
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
	^ MCDiffyVersion
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
		package: self package
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
		info: self info
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
		snapshot: self snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
		dependencies: self dependencies
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
		baseVersion: aVersion
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
!MCVersion methodsFor:'enumerating'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
allAvailableDependenciesDo: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
	| version |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
	self dependencies do:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
		[:ea |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
		[version _ ea resolve.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
		version allAvailableDependenciesDo: aBlock.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
		aBlock value: version]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
			on: Error do: []]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
allDependenciesDo: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
	self allDependenciesDo: aBlock ifUnresolved: [:ignored | true]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
allDependenciesDo: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
	| dict |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
	dict _ Dictionary new.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
	self allDependenciesNotIn: dict do: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
allDependenciesNotIn: aDictionary do: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
	| version |
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   216
	self dependencies do:
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   217
		[:ea |
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
		version := aDictionary at: ea ifAbsent: [ea resolve].
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   219
		version
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
			ifNil: [failBlock value: ea]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
			ifNotNil: [(aDictionary includes: version) ifFalse:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
						[aDictionary at: ea put: version.
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   223
						version
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   224
							allDependenciesNotIn: aDictionary
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
							do: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
							ifUnresolved: failBlock.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
						aBlock value: version]]]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
withAllDependenciesDo: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
	self allDependenciesDo: aBlock ifUnresolved: [:ignored].
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
	aBlock value: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
withAllDependenciesDo: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
	| dict |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
	dict _ Dictionary new.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
	self allDependenciesNotIn: dict do: aBlock ifUnresolved: failBlock.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
	aBlock value: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
!MCVersion methodsFor:'initialize-release'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
initializeWithPackage: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
1153
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   245
        package _ aPackage.
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   246
        info _ aVersionInfo.
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   247
        snapshot _ aSnapshot.
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   248
        dependencies _ aCollection.
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   249
        "/ self addToCache.
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   250
16866d65107a Do not cache `MCVersion`s in cache repository
Jan Vrany <jan.vrany@labware.com>
parents: 1143
diff changeset
   251
    "Modified: / 06-10-2021 / 12:17:04 / Jan Vrany <jan.vrany@labware.com>"
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
setPackage: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
	package _ aPackage.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
	info _ aVersionInfo.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
	snapshot _ aSnapshot.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
	dependencies _ aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
!MCVersion methodsFor:'printing'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
printOn: aStream
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
	super printOn: aStream.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
	aStream nextPut: $(.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
	aStream nextPutAll: self info name.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
	aStream nextPut: $).
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
!MCVersion methodsFor:'testing'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
canOptimizeLoading
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   273
	"Answer whether I can provide a patch for the working copy without the usual diff pass"
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
	^false
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
isCacheable
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   278
	^ cachable ? true
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
isDiffy
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
	^ false
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
!MCVersion class methodsFor:'documentation'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
version
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   288
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersion.st,v 1.10 2013-07-27 13:50:54 cg Exp $'
741
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   289
!
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   290
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   291
version_CVS
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   292
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersion.st,v 1.10 2013-07-27 13:50:54 cg Exp $'
1143
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
   293
!
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
   294
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
   295
version_HG
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
   296
1999f5363e6f Add utility `MCVersion class >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 891
diff changeset
   297
    ^ '$Changeset: <not expanded> $'
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
! !
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   299