MCMerger.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 641 048c87c1f404
child 1095 87f223484bc3
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCMerger
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'conflicts'
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
641
048c87c1f404 category change
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
     7
	category:'SCM-Monticello-Merging'
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCMerger methodsFor:'as yet unclassified'!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
addConflictWithOperation: anOperation
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	self conflicts add: (MCConflict operation: anOperation)
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
applyTo: anObject
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	self isMerged ifFalse: [self error: 'You must resolve all the conflicts first'].
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	conflicts do: [:ea | ea applyTo: anObject]
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
conflicts
224
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    23
	^ conflicts ifNil: [conflicts := OrderedCollection new]
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
isMerged
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	^ self conflicts allSatisfy: [:ea | ea isResolved]
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
load
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	| loader |
224
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    32
	loader := MCPackageLoader new.
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	loader provisions addAll: self provisions.
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	self applyTo: loader.
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	loader load
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
loadWithNameLike: baseName
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	| loader |
224
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    40
	loader := MCPackageLoader new.
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	loader provisions addAll: self provisions.
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	self applyTo: loader.
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	loader loadWithNameLike: baseName
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
mergedSnapshot
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	^ MCPatcher apply: self to: self baseSnapshot
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
operations
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	^ #()
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
provisions
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
	^ #()
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
! !
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!MCMerger class methodsFor:'documentation'!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
version
641
048c87c1f404 category change
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
    61
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMerger.st,v 1.4 2012-09-11 21:23:15 cg Exp $'
224
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    62
!
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    63
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    64
version_CVS
641
048c87c1f404 category change
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
    65
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMerger.st,v 1.4 2012-09-11 21:23:15 cg Exp $'
224
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    66
!
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    67
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    68
version_SVN
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    69
    ^ '§Id: MCMerger.st 5 2010-08-29 07:30:29Z vranyj1 §'
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
! !