MCSnapshot.st
author Claus Gittinger <cg@exept.de>
Wed, 25 Feb 2015 01:14:48 +0100
changeset 975 9d3047664305
parent 895 b85534b16bd4
child 1002 54b4906215ca
child 1039 88f5b1106042
permissions -rw-r--r--
class: ProjectDefinition changed: #monticelloName
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
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCSnapshot
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
     4
	instanceVariableNames:'definitions'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
681
21899a53abcd category change
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
     7
	category:'SCM-Monticello-Base'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCSnapshot class methodsFor:'as yet unclassified'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
empty
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self fromDefinitions: #()
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
fromDefinitions: aCollection
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	^ self new initializeWithDefinitions: aCollection
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
!MCSnapshot methodsFor:'accessing'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
= other
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ definitions asArray = other definitions asArray
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
definitions
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	^ definitions
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
hash
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	^ definitions asArray hash
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    33
!
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    34
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    35
includeExtrasForSTX
745
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    36
    "/ 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
    37
    "/ 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
    38
    | includeExtrasForSTX |
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    39
    includeExtrasForSTX := self objectAttributeAt: #includeExtrasForSTX.
745
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    40
    ^ includeExtrasForSTX ? false
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    41
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    42
    "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
    43
!
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    44
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    45
includeExtrasForSTX:something
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    46
    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
    47
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
    48
    "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
    49
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    51
!MCSnapshot methodsFor:'converting'!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    52
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    53
asChangeSet
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
    ^(ChangeSet withAll:
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    56
        (self definitions collect:[:def|def asChange]))
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    57
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    58
    "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
    59
    "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
    60
! !
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    61
849
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    62
!MCSnapshot methodsFor:'copying'!
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    63
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    64
postCopy
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    65
    "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
    66
    definitions := definitions copy.
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    67
    1 to: definitions size do:[:i|
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
    68
        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
    69
    ]
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    70
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    71
    "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
    72
    "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
    73
! !
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    74
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
!MCSnapshot methodsFor:'initializing'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
initializeWithDefinitions: aCollection
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    78
	definitions := aCollection.
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!MCSnapshot methodsFor:'loading'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
install
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
	MCPackageLoader installSnapshot: self
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
updatePackage: aPackage
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	MCPackageLoader updatePackage: aPackage withSnapshot: 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
!MCSnapshot methodsFor:'patching'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
patchRelativeToBase: aSnapshot
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	^ MCPatch fromBase: aSnapshot target: 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
862
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    97
!MCSnapshot methodsFor:'queries'!
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    98
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    99
includesClassNamed: className
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   100
    definitions reverseDo:[:definition|
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   101
        (definition isClassDefinition and:[definition className = className])
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   102
            ifTrue:[ ^ true ].
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   103
    ].
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   104
    ^false
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   105
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   106
    "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
   107
! !
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   108
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
!MCSnapshot class methodsFor:'documentation'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
version
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   112
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSnapshot.st,v 1.10 2013-08-12 00:59:30 vrany Exp $'
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   113
!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   114
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   115
version_CVS
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   116
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSnapshot.st,v 1.10 2013-08-12 00:59:30 vrany Exp $'
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_SVN
895
b85534b16bd4 Make includeExtrasForSTX an object attribute instead of instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   120
    ^ '$Id: MCSnapshot.st,v 1.10 2013-08-12 00:59:30 vrany Exp $'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
! !
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
   122