MCMergingTest.st
author Claus Gittinger <cg@exept.de>
Thu, 08 Mar 2018 00:48:11 +0100
changeset 1039 88f5b1106042
parent 275 5ad1fc22ea2e
permissions -rw-r--r--
#BUGFIX by cg class: MCSnapshot changed: #asChangeSet don't loose comment changes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
275
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCTestCase subclass:#MCMergingTest
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'conflictBlock conflicts'
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Monticello-Tests'
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCMergingTest methodsFor:'asserting'!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
assert: aCollection hasElements: anArray
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	self assert: (aCollection collect: [:ea | ea token]) asSet = anArray asSet
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
assertMerge: local with: remote base: ancestor gives: result conflicts: conflictResult
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	| merger |
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	conflicts := #().
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	merger := MCThreeWayMerger
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
				base: (self snapshotWithElements: local)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
				target: (self snapshotWithElements: remote)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
				ancestor: (self snapshotWithElements: ancestor).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	merger conflicts do: [:ea | self handleConflict: ea].
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	self assert: merger mergedSnapshot definitions hasElements: result.
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	self assert: conflicts asSet = conflictResult asSet.
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
! !
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!MCMergingTest methodsFor:'emulating'!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
handleConflict: aConflict       
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
        | d l r|
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
        l := #removed.
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
        r := #removed.
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
        (d := aConflict localDefinition) ifNotNil: [ l := d token].
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
        (d := aConflict remoteDefinition) ifNotNil: [ r := d token].       
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
        conflicts := conflicts copyWith: (Array with: r with: l).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
        (l = #removed or: [r = #removed])
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
                ifTrue: [aConflict chooseRemote]
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
                ifFalse:
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
                        [l > r
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
                                ifTrue: [aConflict chooseLocal]
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
                                ifFalse: [aConflict chooseRemote]]
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    "Modified: / 12-09-2010 / 17:38:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
snapshotWithElements: anArray
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	^ MCSnapshot
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
		fromDefinitions: (anArray collect: [:t | self mockToken: t])
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
! !
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!MCMergingTest methodsFor:'tests'!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
testAdditiveConflictlessMerge
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	self
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
		assertMerge: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
				with: #(a1 c1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
				base: #(a1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
			
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
				gives: #(a1 b1 c1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
				conflicts: #()
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
testComplexConflictlessMerge
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
	self 
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
		assertMerge: #(a1 b1 d1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
				with: #(a2 c1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
				base: #(a1 c1 d1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
				gives: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
				conflicts: #()
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
testIdenticalModification
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	self
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
		assertMerge: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
				with: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
				base: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
				gives: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
				conflicts: #()
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
testLocalModifyRemoteRemove
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	self assertMerge: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
				with: #(b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
				base: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
				gives: #(b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
				conflicts: #((removed a2)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	self assertMerge: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
				with: #(b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
				base: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
				gives: #(b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
				conflicts: #((removed a1)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
testLocalRemoveRemoteModify
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
	self assertMerge: #(b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
				with: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
				base: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
				gives: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
				conflicts: #((a1 removed)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
	self assertMerge: #(b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
				with: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
				base: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
				gives: #(a2 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
				conflicts: #((a2 removed)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
testMultiPackageMerge
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
	| merger |
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
	conflicts := #().
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
	merger := MCThreeWayMerger new.
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
	merger addBaseSnapshot: (self snapshotWithElements: #(a1 b1)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
	merger applyPatch: ((self snapshotWithElements: #()) patchRelativeToBase: (self snapshotWithElements: #(a1))).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
	merger applyPatch: ((self snapshotWithElements: #(a2 b1)) patchRelativeToBase: (self snapshotWithElements: #(b1))).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
	merger conflicts do: [:ea | self handleConflict: ea].
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
	self assert: merger mergedSnapshot definitions hasElements: #(a2 b1).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	self assert: conflicts isEmpty
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
testMultiPackageMerge2
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
	| merger |
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
	conflicts := #().
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
	merger := MCThreeWayMerger new.
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
	merger addBaseSnapshot: (self snapshotWithElements: #(a1 b1)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
	merger applyPatch: ((self snapshotWithElements: #()) patchRelativeToBase: (self snapshotWithElements: #(a1))).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
	merger applyPatch: ((self snapshotWithElements: #(a1 b1)) patchRelativeToBase: (self snapshotWithElements: #(b1))).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
	merger conflicts do: [:ea | self handleConflict: ea].
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
	self assert: merger mergedSnapshot definitions hasElements: #(a1 b1).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
	self assert: conflicts isEmpty
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
testMultiPackageMerge3
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
	| merger |
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
	conflicts := #().
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
	merger := MCThreeWayMerger new.
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
	merger addBaseSnapshot: (self snapshotWithElements: #(a1 b1)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
	merger applyPatch: ((self snapshotWithElements: #(a1 b1)) patchRelativeToBase: (self snapshotWithElements: #(b1))).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
	merger applyPatch: ((self snapshotWithElements: #()) patchRelativeToBase: (self snapshotWithElements: #(a1))).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
	merger conflicts do: [:ea | self handleConflict: ea].
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
	self assert: merger mergedSnapshot definitions hasElements: #(a1 b1).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
	self assert: conflicts isEmpty
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
testMultipleConflicts
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
	self assertMerge: #(a1 b3 c1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
				with: #(a1 b2 d1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
				base: #(a1 b1 c2)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
				gives: #(a1 b3 d1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
				conflicts: #((removed c1) (b2 b3))
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
testSimultaneousModification
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
	self assertMerge: #(a2)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
				with: #(a3)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
				base: #(a1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
				gives: #(a3)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
				conflicts: #((a3 a2)).
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
testSimultaneousRemove
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
	self assertMerge: #(a1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
				with: #(a1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
				base: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
				gives: #(a1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
				conflicts: #()
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
testSubtractiveConflictlessMerge
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
	self assertMerge: #(a1 b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
				with: #()
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
				base: #(a1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
				
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
				gives: #(b1)
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
				conflicts: #()
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
! !
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
!MCMergingTest class methodsFor:'documentation'!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
version
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMergingTest.st,v 1.1 2011-08-20 12:03:03 cg Exp $'
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
version_CVS
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMergingTest.st,v 1.1 2011-08-20 12:03:03 cg Exp $'
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
!
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
version_SVN
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    ^ '§Id: MCMergingTest.st 8 2010-09-12 17:15:52Z vranyj1 §'
5ad1fc22ea2e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
! !