MCMcdReader.st
author Jan Vrany <jan.vrany@labware.com>
Tue, 11 Jul 2023 12:59:07 +0100
branchjv
changeset 1174 f0a16c301971
parent 1095 87f223484bc3
permissions -rw-r--r--
Make `ProjectDefinition >> #monticelloTimestamps_code` an extension in `stx:goodies/monticello` ...and convert it to use (not so) new annotation-based extension mechanism.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1095
87f223484bc3 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 636
diff changeset
     1
"{ Encoding: utf8 }"
87f223484bc3 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 636
diff changeset
     2
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ Package: 'stx:goodies/monticello' }"
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
MCMczReader subclass:#MCMcdReader
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'baseInfo patch'
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
636
d25edd65c88c category change
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
     9
	category:'SCM-Monticello-Storing'
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!MCMcdReader class methodsFor:'as yet unclassified'!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
extension
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	^ 'mcd'
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
! !
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!MCMcdReader methodsFor:'as yet unclassified'!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
baseInfo
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	^ baseInfo ifNil: [self loadBaseInfo]
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
basicVersion
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	^ MCDiffyVersion
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
		package: self package
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
		info: self info
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
		dependencies: self dependencies
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
		baseInfo: self baseInfo
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
		patch: self patch
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
buildPatchFrom: oldDefinitions to: newDefinitions
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	^ MCPatch
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
		fromBase: (MCSnapshot fromDefinitions: oldDefinitions)
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
		target: (MCSnapshot fromDefinitions: newDefinitions)
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
loadBaseInfo
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    41
	^ baseInfo := self extractInfoFrom: (self parseMember: 'base')
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
loadPatch
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    45
	| old new m |
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    46
	(m := self zip memberNamed: 'patch.bin') ifNotNil:
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    47
		[[^ patch := (DataStream on: m contentStream) next ]
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
			on: Error do: [:fallThrough ]].
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    49
	definitions := OrderedCollection new.
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	(self zip membersMatching: 'old/*')
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
		do: [:m | self extractDefinitionsFrom: m].
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    52
	old := definitions asArray.
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    53
	definitions := OrderedCollection new.
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	(self zip membersMatching: 'new/*')
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
		do: [:m | self extractDefinitionsFrom: m].
256
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    56
	new := definitions asArray.
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    57
	^ patch := self buildPatchFrom: old to: new.
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
patch
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	^ patch ifNil: [self loadPatch]
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
! !
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!MCMcdReader class methodsFor:'documentation'!
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
version
636
d25edd65c88c category change
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    68
    ^ '$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
    69
!
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    70
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    71
version_CVS
636
d25edd65c88c category change
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    72
    ^ '$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
    73
!
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    74
e1164304aa4e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 30
diff changeset
    75
version_SVN
1095
87f223484bc3 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 636
diff changeset
    76
    ^ '§Id: MCMcdReader.st 17 2010-10-13 12:07:52Z vranyj1 §'
30
a67718d60614 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
! !