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