MCConflict.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 616 a188c0e99a82
child 1095 87f223484bc3
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCConflict
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'operation chooseRemote'
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
616
a188c0e99a82 category change
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
     7
	category:'SCM-Monticello-Merging'
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCConflict class methodsFor:'as yet unclassified'!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
operation: anOperation
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self new operation: anOperation	
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCConflict methodsFor:'as yet unclassified'!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
annotations
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    20
	| op | 
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    21
	^(op := operation) ifNotNil: [ op annotations ]
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
applyTo: anObject
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	self isResolved ifFalse: [self error: 'Cannot continue until this conflict has been resolved'].
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	self remoteChosen ifTrue: [operation applyTo: anObject].
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
chooseLocal
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    30
	chooseRemote := false
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
chooseNewer
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	self isLocalNewer ifTrue: [ self chooseLocal ]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
		ifFalse: [ self isRemoteNewer ifTrue: [ self chooseRemote ]]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
chooseOlder
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	self isRemoteNewer ifTrue: [ self chooseLocal ]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
		ifFalse: [ self isLocalNewer ifTrue: [ self chooseRemote ]]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
chooseRemote
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    44
	chooseRemote := true
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
clearChoice
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    48
	chooseRemote := nil
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
definition
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    52
	| op | 
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    53
	^(op := operation) ifNotNil: [ op definition ]
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
isConflict
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	^true
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
isLocalNewer
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	^ self localDefinition fullTimeStamp > self remoteDefinition fullTimeStamp
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
isRemoteNewer
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	^ self localDefinition fullTimeStamp < self remoteDefinition fullTimeStamp
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
isResolved
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	^ chooseRemote notNil
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
localChosen
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
	^ chooseRemote notNil and: [chooseRemote not]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
localDefinition
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	^ operation baseDefinition
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
operation
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
	^ operation
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
operation: anOperation
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    85
	operation := anOperation
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
remoteChosen
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
	^ chooseRemote notNil and: [chooseRemote]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
remoteDefinition
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	^ operation targetDefinition
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
source
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
	^ self localChosen
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
		ifTrue: [operation fromSource]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
		ifFalse: [operation source]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
status
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
	^ self isResolved
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
		ifFalse: ['']
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
		ifTrue: [self remoteChosen
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
					ifFalse: ['L']
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
					ifTrue: ['R']]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
summary
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	| attribute |
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
   112
	attribute := 
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
		self isResolved
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
			ifTrue: [self remoteChosen ifTrue: [#underlined] ifFalse: [#struckOut]]
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
			ifFalse: [#bold].
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
	^ Text string: operation summary attribute: (TextEmphasis perform: attribute)
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
! !
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
!MCConflict class methodsFor:'documentation'!
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
274
176217c3971f initial checkin
Claus Gittinger <cg@exept.de>
parents: 191
diff changeset
   121
version
616
a188c0e99a82 category change
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
   122
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCConflict.st,v 1.4 2012-09-11 21:21:04 cg Exp $'
274
176217c3971f initial checkin
Claus Gittinger <cg@exept.de>
parents: 191
diff changeset
   123
!
176217c3971f initial checkin
Claus Gittinger <cg@exept.de>
parents: 191
diff changeset
   124
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
   125
version_CVS
616
a188c0e99a82 category change
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
   126
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCConflict.st,v 1.4 2012-09-11 21:21:04 cg Exp $'
191
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
   127
!
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
   128
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
   129
version_SVN
f8afcf4b6f29 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
   130
    ^ '§Id: MCConflict.st 17 2010-10-13 12:07:52Z vranyj1 §'
44
df9a9f28bad9 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
! !