Tools__TextMergeInfo.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 16797 4f240085a622
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13819
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
Object subclass:#TextMergeInfo
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'list listInfos'
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Interface-Diff'
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
Object subclass:#LineInfo
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	instanceVariableNames:'line resolution conflict offset'
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	classVariableNames:''
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	poolDictionaries:''
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	privateIn:TextMergeInfo
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!TextMergeInfo class methodsFor:'documentation'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
copyright
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 COPYRIGHT (c) 2006 by eXept Software AG
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
              All Rights Reserved
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 This software is furnished under a license and may be used
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 only in accordance with the terms of that license and with the
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
 be provided or otherwise made available to, or used by, any
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 other person.  No title to or ownership of the software is
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 hereby transferred.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!TextMergeInfo methodsFor:'* uncategorized *'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
conflictLineText
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
16503
ebf6a903c564 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 13819
diff changeset
    50
    ^ '<conflict>' allBold withColor: Color red.
13819
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    "Created: / 03-04-2012 / 23:26:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
noSourceLineText
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
16503
ebf6a903c564 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 13819
diff changeset
    57
    ^'<no source line>' withColor: Color red.
13819
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    "Created: / 03-04-2012 / 23:26:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!TextMergeInfo methodsFor:'accessing'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
list
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    ^ list
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
listInfos
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    ^ listInfos
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
text
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    ^String  streamContents:[:s|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
        list withIndexDo:[:ln :i|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
            | info |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
            info := listInfos at: i ifAbsent:[nil].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
            (info isNil or:[info offset ~~ -1]) ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
                ln notNil ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
                    s nextPutLine: (list at: i)
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
                ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
            ]
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    "Created: / 19-03-2012 / 14:58:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!TextMergeInfo methodsFor:'initialization'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
text1: text1 text2: text2 text3: text3
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    | t1c t2c  t3c diff3 diffs merges resolution lnr i |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    list := StringCollection new.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    listInfos := OrderedCollection new.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    t1c := (text1 ? #()) asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    t2c := (text2 ? #()) asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    t3c := (text3 ? #()) asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    diff3 := Diff3 new
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
                    file0: t1c; "/Base version
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
                    file1: t2c; "/A
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
                    file2: t3c. "/B\
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    diffs := diff3 diffIndices.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    merges := diff3 mergeIndicesDiscardEmpty: false.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    lnr := 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    i := 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    [ i <= merges size ] whileTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
        | diff merge lines |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
        diff := diffs at: i.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
        merge := merges at: i.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
        diff isChunk ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
            lines := merge extractFromDiff: diff3.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
            1 to: diff length do:[:j|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
                list add: (lines at: j).
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
                listInfos add: (LineInfo line: lnr resolution: #NoConflict conflict: diff offset: j ).
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
                lnr := lnr + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
            ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
        diff isConflict ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
            1 to: diff length do:[:j|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
                merge isConflict ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
                    list add: self conflictLineText.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
                    listInfos add: (LineInfo line: lnr resolution: #Conflict conflict: diff offset: j).
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
                ] ifFalse:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
                    lines := merge extractFromDiff: diff3.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
                    resolution := merge extractResolution.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
                    j <= lines size ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
                        list add: (lines at: j).
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
                        listInfos add: (LineInfo line: lnr resolution: resolution conflict: diff offset: j).
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
                    ] ifFalse:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
                        list add: self noSourceLineText.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
                        listInfos add: (LineInfo line: lnr resolution: resolution conflict: diff offset: -1).
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
                    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
                ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
                lnr := lnr + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
            ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
        i := i + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    "Sanity check:"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    i < diffs size ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
        i + 1 to: diffs size do:[:j|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
            self assert: (diffs at:j) length == 0.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
        ]
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    self changed: #value
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    "Created: / 19-03-2012 / 12:10:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
!TextMergeInfo methodsFor:'merging'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
mergeUsing: text
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    list := (text ? #()) asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    listInfos := 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
        (1 to: list size) collect:[:lineNr|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
            (LineInfo line: lineNr resolution: #Merged )
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    self changed:#resolution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    "Created: / 30-11-2012 / 14:12:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
mergeUsingA: textA
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    list := (textA ? #()) asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    listInfos := 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
        (1 to: list size) collect:[:lineNr|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
            (LineInfo line: lineNr resolution: #MergedUsingA )
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    self changed:#resolution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    "Created: / 21-03-2012 / 12:03:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
mergeUsingA: textA interval: interval
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    "Given textA and section interval, merges the section
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
     using textA."
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    | listA offset |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    listA := (textA ? '') asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    offset := 0.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
    interval do:[:lineNr|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
        | info chunk line |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
        info := listInfos at: lineNr.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
        chunk := info conflict left.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
        offset < chunk length ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
            line := listA at: chunk offset + offset.            
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
            info offset: offset + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
        ] ifFalse:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
            line := self noSourceLineText.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
            info offset: -1
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
        list at: lineNr put: line.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
        info resolution: #MergedUsingA.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
        offset := offset + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    self changed:#resolution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    "Created: / 04-04-2012 / 00:51:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
mergeUsingB: textB
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    list := (textB ? #())  asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    listInfos := 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
        (1 to: list size) collect:[:lineNr|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
            (LineInfo line: lineNr resolution: #MergedUsingB )
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
    self changed:#resulution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    "Created: / 21-03-2012 / 12:04:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
mergeUsingB: textA interval: interval
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    "Given textA and section interval, merges the section
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
     using textA."
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    | listA offset |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    listA := (textA ? #()) asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
    offset := 0.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    interval do:[:lineNr|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
        | info chunk line |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
        info := listInfos at: lineNr.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
        chunk := info conflict right.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
        offset < chunk length ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
            line := listA at: chunk offset + offset.            
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
            info offset: offset + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
        ] ifFalse:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
            line := self noSourceLineText.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
            info offset: -1
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
        list at: lineNr put: line.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
        info resolution: #MergedUsingB.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
        offset := offset + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    self changed:#resolution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
    "Created: / 04-04-2012 / 01:01:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
mergeUsingBase: textBase
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    list := (textBase ? #()) asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    listInfos := 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
        (1 to: list size) collect:[:lineNr|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
            (LineInfo line: lineNr resolution: #MergedUsingBase )
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
    self changed:#resulution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
    "Created: / 21-03-2012 / 12:07:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
mergeUsingBase: textA interval: interval
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
    "Given textA and section interval, merges the section
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
     using textA."
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
    | listA offset |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
    listA := textA asStringCollection.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
    offset := 0.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    interval do:[:lineNr|
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
        | info chunk line |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
        info := listInfos at: lineNr.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
        chunk := info conflict original.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
        offset < chunk length ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
            line := listA at: chunk offset + offset.            
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
            info offset: offset + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
        ] ifFalse:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
            line := self noSourceLineText.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
            info offset: -1
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
        list at: lineNr put: line.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
        info resolution: #MergedUsingBase.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
        offset := offset + 1.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    self changed:#resolution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
    "Created: / 04-04-2012 / 01:01:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
!TextMergeInfo methodsFor:'testing'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
isMerged
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    ^listInfos allSatisfy:[:info|info isMergedOrNoConflict].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    "Created: / 19-03-2012 / 15:09:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
!TextMergeInfo::LineInfo class methodsFor:'accessing'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
line:lineArg resolution:resolutionArg
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    ^self new line:lineArg resolution:resolutionArg conflict:nil offset: nil
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
    "Created: / 19-03-2012 / 15:04:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
line:lineArg resolution:resolutionArg conflict:conflictArg 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    ^self new line:lineArg resolution:resolutionArg conflict:conflictArg
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    "Modified: / 19-03-2012 / 15:07:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
line:lineArg resolution:resolutionArg conflict:conflictArg offset: offsetArg 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
    ^self new line:lineArg resolution:resolutionArg conflict:conflictArg offset: offsetArg
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
    "Modified: / 19-03-2012 / 15:07:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
    "Created: / 20-03-2012 / 20:42:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
!TextMergeInfo::LineInfo methodsFor:'accessing'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
color
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
    | color |
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
    self isMerged ifTrue:[ 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
        self isMergedUsingA ifTrue:[ 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
            color := Tools::TextDiff3Tool colorA
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
        ] ifFalse:[self isMergedUsingB ifTrue:[ 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
                color := Tools::TextDiff3Tool colorB
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
        ] ifFalse:[self isMergedUsingBase ifTrue:[ 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
            color := Tools::TextDiff3Tool colorBase
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
        ] ifFalse:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
            color :=  Tools::TextDiff3Tool colorMerged
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
        ]]].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
        offset == -1 ifTrue:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
            color := color lighter.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
    ] ifFalse:[
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
        self isConflict ifTrue:[ 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
            color :=  Tools::TextDiff3Tool colorConflict 
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
        ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
    ].
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
    ^color
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
    "Created: / 19-03-2012 / 15:05:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
conflict
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
    ^ conflict
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
line
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    ^ line
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
line:lineArg resolution:resolutionArg
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
    self line:lineArg resolution:resolutionArg conflict:nil offset: nil
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
    "Created: / 19-03-2012 / 15:04:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
line:lineArg resolution:resolutionArg conflict:conflictArg offset: offsetArg
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
    line := lineArg.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
    resolution := resolutionArg.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
    conflict := conflictArg.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
    offset := offsetArg
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
    "Created: / 20-03-2012 / 20:41:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
offset
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
    ^ offset
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
offset:something
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
    offset := something.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
resolution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
    ^ resolution
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
resolution:something
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
    resolution := something.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
!TextMergeInfo::LineInfo methodsFor:'printing & storing'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
printOn:aStream
16787
e4c4a91c70ab #OTHER by mawalch
mawalch
parents: 16503
diff changeset
   396
    "append a printed representation of the receiver to the argument, aStream"
13819
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
    self class nameWithoutPrefix printOn:aStream.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
    aStream space.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
    aStream nextPutAll:'line: '.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
    line printOn:aStream.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
    aStream space.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
    aStream nextPutAll:'resolution: '.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
    resolution printOn:aStream.
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
    "Modified: / 19-03-2012 / 12:30:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
    "Created: / 19-03-2012 / 15:05:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
!TextMergeInfo::LineInfo methodsFor:'testing'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
isConflict
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
    ^resolution == #Conflict
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
    "Created: / 19-03-2012 / 15:06:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
isMerged
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   420
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
    ^
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
     resolution == #Merged
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
            or:[self isMergedUsingA
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
                or:[self isMergedUsingB
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
                    or:[self isMergedUsingBase]]]
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
    "Created: / 19-03-2012 / 15:06:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
isMergedOrNoConflict
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
    ^resolution == #NoConflict or:[self isMerged]
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
    "Created: / 06-04-2012 / 10:40:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
isMergedUsingA
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
    ^resolution == #MergedUsingA
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
    "Created: / 20-03-2012 / 14:21:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
isMergedUsingB
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
    ^resolution == #MergedUsingB
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
    "Created: / 20-03-2012 / 14:21:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
isMergedUsingBase
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
    ^resolution == #MergedUsingBase
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
    "Created: / 20-03-2012 / 14:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
!TextMergeInfo class methodsFor:'documentation'!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
version
16503
ebf6a903c564 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 13819
diff changeset
   461
    ^ '$Header$'
13819
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
!
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
version_CVS
16503
ebf6a903c564 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 13819
diff changeset
   465
    ^ '$Header$'
13819
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
! !
9dde9e3ac35c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467