MCMcdReader.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 636 d25edd65c88c
child 1095 87f223484bc3
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCMczReader subclass:#MCMcdReader
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'baseInfo patch'
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
636
d25edd65c88c category change
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
     7
	category:'SCM-Monticello-Storing'
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCMcdReader class methodsFor:'as yet unclassified'!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
extension
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ 'mcd'
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCMcdReader methodsFor:'as yet unclassified'!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
baseInfo
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ baseInfo ifNil: [self loadBaseInfo]
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
basicVersion
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ MCDiffyVersion
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
		package: self package
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
		info: self info
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
		dependencies: self dependencies
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
		baseInfo: self baseInfo
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
		patch: self patch
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
buildPatchFrom: oldDefinitions to: newDefinitions
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	^ MCPatch
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
		fromBase: (MCSnapshot fromDefinitions: oldDefinitions)
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
		target: (MCSnapshot fromDefinitions: newDefinitions)
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
loadBaseInfo
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    39
	^ baseInfo := self extractInfoFrom: (self parseMember: 'base')
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
loadPatch
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    43
	| old new m |
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    44
	(m := self zip memberNamed: 'patch.bin') ifNotNil:
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    45
		[[^ patch := (DataStream on: m contentStream) next ]
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
			on: Error do: [:fallThrough ]].
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    47
	definitions := OrderedCollection new.
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	(self zip membersMatching: 'old/*')
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
		do: [:m | self extractDefinitionsFrom: m].
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    50
	old := definitions asArray.
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    51
	definitions := OrderedCollection new.
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	(self zip membersMatching: 'new/*')
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
		do: [:m | self extractDefinitionsFrom: m].
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    54
	new := definitions asArray.
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    55
	^ patch := self buildPatchFrom: old to: new.
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
patch
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	^ patch ifNil: [self loadPatch]
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
! !
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!MCMcdReader class methodsFor:'documentation'!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
version
636
d25edd65c88c category change
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    66
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMcdReader.st,v 1.4 2012-09-11 21:22:45 cg Exp $'
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    67
!
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    68
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    69
version_CVS
636
d25edd65c88c category change
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    70
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMcdReader.st,v 1.4 2012-09-11 21:22:45 cg Exp $'
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    71
!
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    72
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    73
version_SVN
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    74
    ^ '§Id: MCMcdReader.st 17 2010-10-13 12:07:52Z vranyj1 §'
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
! !