MCSnapshot.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 1039 88f5b1106042
child 1096 4e37cbca898d
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1039
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
     1
"{ Encoding: utf8 }"
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
     2
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ Package: 'stx:goodies/monticello' }"
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
1039
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
     5
"{ NameSpace: Smalltalk }"
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
     6
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
Object subclass:#MCSnapshot
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
     8
	instanceVariableNames:'definitions'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	classVariableNames:''
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	poolDictionaries:''
681
21899a53abcd category change
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    11
	category:'SCM-Monticello-Base'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!MCSnapshot class methodsFor:'as yet unclassified'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
empty
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	^ self fromDefinitions: #()
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
fromDefinitions: aCollection
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	^ self new initializeWithDefinitions: aCollection
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!MCSnapshot methodsFor:'accessing'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
= other
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	^ definitions asArray = other definitions asArray
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
definitions
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	^ definitions
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
hash
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
	^ definitions asArray hash
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    37
!
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    38
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    39
includeExtrasForSTX
745
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    40
    "/ do not default to true here, as the version is snapshotted twice in order to
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    41
    "/ update the version-strings, and we don not need this stuff in the first round!!
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    42
    | includeExtrasForSTX |
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    43
    includeExtrasForSTX := self objectAttributeAt: #includeExtrasForSTX.
745
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    44
    ^ includeExtrasForSTX ? false
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    45
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    46
    "Modified: / 12-08-2013 / 01:57:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    47
!
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    48
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    49
includeExtrasForSTX:something
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    50
    self objectAttributeAt: #includeExtrasForSTX put: something.
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    51
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    52
    "Modified: / 12-08-2013 / 01:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    55
!MCSnapshot methodsFor:'converting'!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    56
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    57
asChangeSet
1039
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
    58
    |changes|
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    59
1039
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
    60
    changes := ChangeSet new.
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
    61
    self definitions do:[:def|def addChangesTo:changes].
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
    62
    ^ changes
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    63
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    64
    "Created: / 13-10-2010 / 17:18:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    65
    "Modified: / 26-10-2010 / 23:05:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    66
! !
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    67
849
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    68
!MCSnapshot methodsFor:'copying'!
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    69
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    70
postCopy
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    71
    "Do half-shallow copy of definitions to allow for their transformation"
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    72
    definitions := definitions copy.
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    73
    1 to: definitions size do:[:i|
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
    74
        definitions at: i put: (definitions at:i) copy
849
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    75
    ]
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    76
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    77
    "Created: / 29-05-2013 / 01:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
    78
    "Modified: / 31-05-2013 / 00:54:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
849
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    79
! !
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    80
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!MCSnapshot methodsFor:'initializing'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
initializeWithDefinitions: aCollection
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    84
	definitions := aCollection.
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!MCSnapshot methodsFor:'loading'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
install
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
	MCPackageLoader installSnapshot: self
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
updatePackage: aPackage
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	MCPackageLoader updatePackage: aPackage withSnapshot: self
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!MCSnapshot methodsFor:'patching'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
patchRelativeToBase: aSnapshot
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	^ MCPatch fromBase: aSnapshot target: self
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
862
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   103
!MCSnapshot methodsFor:'queries'!
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   104
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   105
includesClassNamed: className
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   106
    definitions reverseDo:[:definition|
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   107
        (definition isClassDefinition and:[definition className = className])
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   108
            ifTrue:[ ^ true ].
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   109
    ].
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   110
    ^false
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   111
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   112
    "Created: / 31-05-2013 / 00:04:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   113
! !
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   114
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
!MCSnapshot class methodsFor:'documentation'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
version
1039
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
   118
    ^ '$Header$'
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   119
!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   120
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   121
version_CVS
1039
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
   122
    ^ '$Header$'
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   123
!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   124
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   125
version_SVN
1039
88f5b1106042 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 895
diff changeset
   126
    ^ '$Id$'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
! !
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
   128