MCMerger.st
author Jan Vrany <jan.vrany@labware.com>
Tue, 11 Jul 2023 12:59:07 +0100
branchjv
changeset 1174 f0a16c301971
parent 1156 b6ca954ebfc9
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:
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
     1
"
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
     2
COPYRIGHT (c) 2021 LabWare
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
     3
"
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
     4
"{ Package: 'stx:goodies/monticello' }"
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: 641
diff changeset
     5
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
     6
"{ NameSpace: Smalltalk }"
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
Object subclass:#MCMerger
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	instanceVariableNames:'conflicts'
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	classVariableNames:''
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
	poolDictionaries:''
641
048c87c1f404 category change
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
    12
	category:'SCM-Monticello-Merging'
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    15
!MCMerger class methodsFor:'documentation'!
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    16
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    17
copyright
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    18
"
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    19
COPYRIGHT (c) 2021 LabWare
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    20
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    21
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    22
"
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    23
! !
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
!MCMerger methodsFor:'as yet unclassified'!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
addConflictWithOperation: anOperation
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	self conflicts add: (MCConflict operation: anOperation)
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
applyTo: anObject
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	self isMerged ifFalse: [self error: 'You must resolve all the conflicts first'].
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	conflicts do: [:ea | ea applyTo: anObject]
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
conflicts
224
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    37
	^ conflicts ifNil: [conflicts := OrderedCollection new]
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
isMerged
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	^ self conflicts allSatisfy: [:ea | ea isResolved]
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
load
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    45
        | loader |
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    46
        loader := MCStXPackageLoader new.
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    47
        loader provisions addAll: self provisions.
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    48
        self applyTo: loader.
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    49
        loader load
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    50
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    51
    "Modified: / 29-11-2021 / 15:22:54 / Jan Vrany <jan.vrany@labware.com>"
45
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
loadWithNameLike: baseName
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    55
        | loader |
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    56
        loader := MCStXPackageLoader new.
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    57
        loader provisions addAll: self provisions.
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    58
        self applyTo: loader.
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    59
        loader loadWithNameLike: baseName
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    60
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    61
    "Modified: / 29-11-2021 / 15:22:51 / Jan Vrany <jan.vrany@labware.com>"
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
mergedSnapshot
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	^ MCPatcher apply: self to: self baseSnapshot
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
operations
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	^ #()
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
provisions
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
	^ #()
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
! !
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
!MCMerger class methodsFor:'documentation'!
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
version
641
048c87c1f404 category change
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
    79
    ^ '$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
    80
!
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    81
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    82
version_CVS
641
048c87c1f404 category change
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
    83
    ^ '$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
    84
!
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    85
6e44151e334c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 45
diff changeset
    86
version_SVN
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    87
    ^ '§Id: MCMerger.st 5 2010-08-29 07:30:29Z vranyj1 §'
45
8a2cc7383a3a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
! !
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1095
diff changeset
    89