MCVersion.st
author Claus Gittinger <cg@exept.de>
Thu, 03 Nov 2016 13:22:28 +0100
changeset 1014 8e77e7bafd66
parent 891 a4e2e9b2947d
child 1143 1999f5363e6f
permissions -rw-r--r--
#BUGFIX by cg class: MCMczWriter changed: #flush obsolete method called.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCVersion
741
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
     4
	instanceVariableNames:'package info snapshot dependencies cachable'
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
696
5aadac254fdd category change
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
     7
	category:'SCM-Monticello-Versioning'
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCVersion class methodsFor:'instance creation'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
package: aPackageOrPackageID
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    14
	aPackageOrPackageID isSymbol ifTrue:[
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    15
	    "/ an ST/X package-ID
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    16
	    ^ super package: aPackageOrPackageID
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    17
	].
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    18
	"/ a monticello package-ID
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
    19
	^ self package: aPackageOrPackageID info: MCVersionInfo new
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    "Modified: / 22-11-2006 / 14:16:22 / cg"
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
package: aPackage info: aVersionInfo
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	^ self package: aPackage info: aVersionInfo snapshot: aPackage snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
package: aPackage info: aVersionInfo snapshot: aSnapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	^ self package: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: #()
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
package: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	^ self new initializeWithPackage: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!MCVersion methodsFor:'accessing'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
741
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    38
cachable:something
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    39
    cachable := something.
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    40
!
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
    41
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
changes
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ self snapshot patchRelativeToBase: package snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
dependencies
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	^ dependencies ifNil: [#()]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
fileName
764
3eb1773a5ce8 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 741
diff changeset
    51
    |rawName cookedName legalName|
570
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    52
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    53
    rawName := info name.
764
3eb1773a5ce8 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 741
diff changeset
    54
    cookedName := rawName copy replaceAny:'/:' with:$_.
765
03519ebb18d1 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 764
diff changeset
    55
    legalName := cookedName asFilename makeLegalFilename name.
570
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    56
    ^ legalName, '.', self writerClass extension
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    57
ca75d756f909 changed: #fileName
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
    58
    "Modified: / 24-07-2012 / 16:30:13 / cg"
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
info
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	^ info
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
882
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
    65
info: anMCAncestry
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
    66
    info := anMCAncestry.
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
    67
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
    68
    "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
    69
!
e646ec04fd53 class: MCVersion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 765
diff changeset
    70
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
package
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	^ package
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^ snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
531
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    79
snapshot:anMCSnapshot
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    80
   snapshot := anMCSnapshot
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    81
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    82
    "Created: / 02-12-2011 / 16:10:18 / cg"
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    83
!
fa84c1b275d4 added: #snapshot:
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    84
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
summary
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	^ String streamContents:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
		[:s |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
		s nextPutAll: info summaryHeader.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
		(dependencies isNil or: [dependencies isEmpty]) ifFalse:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
			[s cr; nextPutAll: 'Dependencies: '.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
			dependencies
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
				do: [:ea | s nextPutAll: ea versionInfo name]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
				separatedBy: [s nextPutAll: ', ']].
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
		s cr; cr; nextPutAll: info message]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
workingCopy
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
	^ package workingCopy
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
writerClass
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   102
    Smalltalk isSmalltalkX ifTrue:[
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   103
	^ MCStxMczWriter
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   104
    ] ifFalse:[
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   105
	^ MCMczWriter
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   106
    ]
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
!MCVersion methodsFor:'actions'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
addToCache
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
	MCCacheRepository default storeVersion: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
adopt
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
	self workingCopy adopt: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
browse
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
	(MCSnapshotBrowser forSnapshot: self snapshot)
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
		showLabelled: 'Snapshot of ', self fileName
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
fileOutOn: aStream
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
	self writerClass fileOut: self on: aStream
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
load
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
	MCVersionLoader loadVersion: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
merge
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
	MCVersionMerger mergeVersion: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
open
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
	(MCVersionInspector new version: self) show
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
!MCVersion methodsFor:'converting'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
asDiffAgainst: aVersion
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
	aVersion info = self info ifTrue: [self error: 'Cannot diff against self!!'].
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
	^ MCDiffyVersion
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
		package: self package
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
		info: self info
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
		snapshot: self snapshot
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
		dependencies: self dependencies
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
		baseVersion: aVersion
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
!MCVersion methodsFor:'enumerating'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
allAvailableDependenciesDo: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
	| version |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	self dependencies do:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
		[:ea |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
		[version _ ea resolve.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
		version allAvailableDependenciesDo: aBlock.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
		aBlock value: version]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
			on: Error do: []]
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
allDependenciesDo: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
	self allDependenciesDo: aBlock ifUnresolved: [:ignored | true]
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
allDependenciesDo: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
	| dict |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
	dict _ Dictionary new.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
	self allDependenciesNotIn: dict do: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
allDependenciesNotIn: aDictionary do: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
	| version |
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   176
	self dependencies do:
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   177
		[:ea |
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
		version := aDictionary at: ea ifAbsent: [ea resolve].
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   179
		version
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
			ifNil: [failBlock value: ea]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
			ifNotNil: [(aDictionary includes: version) ifFalse:
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
						[aDictionary at: ea put: version.
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   183
						version
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   184
							allDependenciesNotIn: aDictionary
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
							do: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
							ifUnresolved: failBlock.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
						aBlock value: version]]]
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
withAllDependenciesDo: aBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
	self allDependenciesDo: aBlock ifUnresolved: [:ignored].
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
	aBlock value: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
withAllDependenciesDo: aBlock ifUnresolved: failBlock
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
	| dict |
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
	dict _ Dictionary new.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
	self allDependenciesNotIn: dict do: aBlock ifUnresolved: failBlock.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
	aBlock value: self
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
!MCVersion methodsFor:'initialize-release'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
initializeWithPackage: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
	package _ aPackage.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
	info _ aVersionInfo.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
	snapshot _ aSnapshot.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
	dependencies _ aCollection.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
	self addToCache.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
setPackage: aPackage info: aVersionInfo snapshot: aSnapshot dependencies: aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
	package _ aPackage.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
	info _ aVersionInfo.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
	snapshot _ aSnapshot.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
	dependencies _ aCollection
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
!MCVersion methodsFor:'printing'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
printOn: aStream
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
	super printOn: aStream.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
	aStream nextPut: $(.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
	aStream nextPutAll: self info name.
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
	aStream nextPut: $).
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
!MCVersion methodsFor:'testing'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
canOptimizeLoading
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   231
	"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
   232
	^false
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
isCacheable
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   236
	^ cachable ? true
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
isDiffy
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
	^ false
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
! !
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
!MCVersion class methodsFor:'documentation'!
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
version
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   246
    ^ '$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
   247
!
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   248
a77e36ddfa96 class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   249
version_CVS
891
a4e2e9b2947d wether -> whether (lookup what wether is ;-)
Claus Gittinger <cg@exept.de>
parents: 882
diff changeset
   250
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersion.st,v 1.10 2013-07-27 13:50:54 cg Exp $'
85
3404b1e779d0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
! !
737
1b7e7767b99f class: MCVersion
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
   252