MCPatcher.st
author Claus Gittinger <cg@exept.de>
Sat, 01 Sep 2018 17:33:15 +0200
changeset 1092 8d0ea96a3d72
parent 789 a43e80fce0a6
permissions -rw-r--r--
initial checkin class: MCFileTreeFileSystemUtils class: MCFileTreeFileSystemUtils class added:17 methods
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
67
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCPatcher
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'definitions'
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
667
24a56c13f27e category change
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
     7
	category:'SCM-Monticello-Patching'
67
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
789
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    10
!MCPatcher class methodsFor:'documentation'!
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    11
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    12
documentation
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    13
"
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    14
    I can add or remove or modify definitions. My main purpose is to generate
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    15
    monticello snapshot out of multiple snapshots or definitions by using my
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    16
    most used method #apply:to:.
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    17
"
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    18
! !
67
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!MCPatcher class methodsFor:'as yet unclassified'!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
apply: aPatch to: aSnapshot
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	| loader |
255
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    24
	loader := self snapshot: aSnapshot.
67
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	aPatch applyTo: loader.
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	^ loader patchedSnapshot
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
snapshot: aSnapshot
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	^ self new initializeWithSnapshot: aSnapshot
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
! !
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!MCPatcher methodsFor:'as yet unclassified'!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
addDefinition: aDefinition
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
	definitions add: aDefinition
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
initializeWithSnapshot: aSnapshot
255
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    40
	definitions := MCDefinitionIndex definitions: aSnapshot definitions
67
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
modifyDefinition: baseDefinition to: targetDefinition
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	self addDefinition: targetDefinition
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
patchedSnapshot
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	^ MCSnapshot fromDefinitions: definitions definitions
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
removeDefinition: aDefinition
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	definitions remove: aDefinition
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
! !
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
!MCPatcher class methodsFor:'documentation'!
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
version
789
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    58
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCPatcher.st,v 1.5 2013-05-15 11:56:18 cg Exp $'
255
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    59
!
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    60
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    61
version_CVS
789
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    62
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCPatcher.st,v 1.5 2013-05-15 11:56:18 cg Exp $'
255
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    63
!
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    64
49df642e079f added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
    65
version_SVN
789
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    66
    ^ '$Id: MCPatcher.st,v 1.5 2013-05-15 11:56:18 cg Exp $'
67
32119b00545b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
! !
789
a43e80fce0a6 class: MCPatcher
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
    68