MCMergeRecord.st
author mawalch
Mon, 08 Aug 2016 20:13:50 +0200
changeset 1010 bac4a6f2690e
parent 640 9b0140e0627b
permissions -rw-r--r--
#OTHER by mawalch Fix ridiculously propagated typo.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
75
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCMergeRecord
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'version packageSnapshot ancestorInfo ancestor ancestorSnapshot
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
		imagePatch mergePatch'
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	classVariableNames:''
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	poolDictionaries:''
640
9b0140e0627b category change
Claus Gittinger <cg@exept.de>
parents: 75
diff changeset
     8
	category:'SCM-Monticello-Versioning'
75
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!MCMergeRecord class methodsFor:'as yet unclassified'!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
version: aVersion
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	^ self basicNew initializeWithVersion: aVersion
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
! !
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!MCMergeRecord methodsFor:'as yet unclassified'!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
ancestorInfo
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	^ ancestorInfo ifNil: [ancestorInfo _ version info commonAncestorWith: version workingCopy ancestry]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
ancestorSnapshot
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	^ ancestorSnapshot ifNil: [ancestorSnapshot _ version workingCopy findSnapshotWithVersionInfo: self ancestorInfo]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
imageIsClean
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	| ancestors |
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	ancestors _ version workingCopy ancestors.
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	^ ancestors size = 1
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
		and: [ancestors first = self ancestorInfo]	
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
		and: [self imagePatch isEmpty]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
imagePatch
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	^ imagePatch ifNil: [imagePatch _ self packageSnapshot patchRelativeToBase: self ancestorSnapshot]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
initializeWithVersion: aVersion
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	version _ aVersion
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
isAncestorMerge
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
	^ version workingCopy ancestry hasAncestor: version info
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
mergePatch
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	^ mergePatch ifNil: [mergePatch _ version snapshot patchRelativeToBase: self ancestorSnapshot]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
packageSnapshot
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	^ packageSnapshot ifNil: [packageSnapshot _ version package snapshot]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
updateWorkingCopy
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	self isAncestorMerge ifFalse:
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
		[self imageIsClean
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
			ifTrue: [version workingCopy loaded: version]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
			ifFalse: [version workingCopy merged: version]]
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
version
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	^ version
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!MCMergeRecord class methodsFor:'documentation'!
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
version
640
9b0140e0627b category change
Claus Gittinger <cg@exept.de>
parents: 75
diff changeset
    70
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMergeRecord.st,v 1.2 2012-09-11 21:23:10 cg Exp $'
75
9fbce249331e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
! !