Diff3.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 21 Mar 2012 01:52:35 +0000
branchjv
changeset 12202 eaa1f6cb6ce8
parent 12190 2a77dea2eceb
child 12218 8b88c30fb1e7
permissions -rw-r--r--
Improvements in merge tool
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 Copyright (c) 2007-2012 Tony Garnock-Jones
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
 This code is based on Squeak's DiffMerge package
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 written by Tony Garnock-Jones. Original project's web site:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 http://www.squeaksource.com/DiffMerge
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 Permission is hereby granted, free of charge, to any person
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 obtaining a copy of this software and associated documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 files (the 'Software'), to deal in the Software without
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
 restriction, including without limitation the rights to use,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
 copy, modify, merge, publish, distribute, sublicense, and/or sell
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
 copies of the Software, and to permit persons to whom the
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
 Software is furnished to do so, subject to the following
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
 conditions:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
 The above copyright notice and this permission notice shall be
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
 included in all copies or substantial portions of the Software.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
 OTHER DEALINGS IN THE SOFTWARE.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
"{ Package: 'stx:libtool' }"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
Object subclass:#Diff3
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
	instanceVariableNames:'file1 file0 file2 diffClass'
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
	classVariableNames:''
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
	poolDictionaries:''
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
	category:'Collections-Sequenceable-Diff3'
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
Object subclass:#Chunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
	instanceVariableNames:'offset length side'
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
	classVariableNames:''
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
	poolDictionaries:''
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
	privateIn:Diff3
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
Object subclass:#Conflict
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
	instanceVariableNames:'left original right'
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
	classVariableNames:''
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
	poolDictionaries:''
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
	privateIn:Diff3
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
Diff3 comment:'Diff3 provides a three-way-merge algorithm suitable for performing textual merges, such as are often required as part of source-code version control systems.

Instance Variables
	diffClass:	<Class> Should be a subclass of GenericDiff. Used to resolve changes.
	file0:		<SequenceableCollection> The ancestral file.
	file1:		<SequenceableCollection> The left branch.
	file2:		<SequenceableCollection> The right branch.

-- 
Copyright (c) 2008 Tony Garnock-Jones <tonyg@lshift.net>
Copyright (c) 2008 LShift Ltd. <query@lshift.net>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction,including without limitation the rights to use, copy, modify, merge,publish, distribute, sublicense, and/or sell copies of the Software,and to permit persons to whom the Software is furnished to do so,subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
'
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
!Diff3 class methodsFor:'documentation'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
copyright
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
 Copyright (c) 2007-2012 Tony Garnock-Jones
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
 This code is based on Squeak's DiffMerge package
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
 written by Tony Garnock-Jones. Original project's web site:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
 http://www.squeaksource.com/DiffMerge
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
 Permission is hereby granted, free of charge, to any person
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
 obtaining a copy of this software and associated documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
 files (the 'Software'), to deal in the Software without
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
 restriction, including without limitation the rights to use,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
 copy, modify, merge, publish, distribute, sublicense, and/or sell
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
 copies of the Software, and to permit persons to whom the
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
 Software is furnished to do so, subject to the following
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
 conditions:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
 The above copyright notice and this permission notice shall be
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
 included in all copies or substantial portions of the Software.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
 OTHER DEALINGS IN THE SOFTWARE.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
Diff3 provides a three-way-merge algorithm suitable for performing textual merges, such as are often required as part of source-code version control systems.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
Instance Variables
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
        diffClass:      <Class> Should be a subclass of GenericDiff. Used to resolve changes.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
        file0:          <SequenceableCollection> The ancestral file.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
        file1:          <SequenceableCollection> The left branch.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
        file2:          <SequenceableCollection> The right branch.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    [author:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
        Tony Garnock-Jones <tonyg@lshift.com>
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    [instance variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    [class variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    [see also:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
!Diff3 methodsFor:'accessing'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
diffClass
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   116
    ^ diffClass ? Diff2::HuntMcilroy
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   117
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   118
    "Modified (format): / 16-03-2012 / 20:27:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
diffClass: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
	diffClass := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
file0
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
	^ file0
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
file0: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
	file0 := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
file1
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
	^ file1
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
file1: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
	file1 := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
file2
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
	^ file2
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
file2: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
	file2 := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
!Diff3 methodsFor:'merging'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   151
diffIndices
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   152
    "Returns an Array of Diff3Chunks (representing clean merges) or Diff3Conflicts 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   153
     (containing DiffChunks, representing conflicts), together representing the 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   154
     results of a three-way merge between file1/file0/file2. Does not detect 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   155
     'false conflicts', and can return two Diff3Chunks next to each other in 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   156
     the result."
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   157
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   158
    | result commonOffset hunks lastOverlapHunkIndex hunk firstHunkIndex |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   159
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   160
    hunks := self computeHunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   161
    result := OrderedCollection new.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   162
    commonOffset := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   163
    firstHunkIndex := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   164
    [firstHunkIndex <= hunks size] whileTrue: [
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   165
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   166
        hunk := hunks at: firstHunkIndex.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   167
        self addCommonChunkTo: result between: commonOffset and: hunk oldChunk offset.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   168
        lastOverlapHunkIndex := self findOverlapStartingAt: firstHunkIndex in: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   169
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   170
        "(firstHunkIndex = lastOverlapHunkIndex)"false ifTrue: [
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   171
            (hunk newChunk length > 0) ifTrue: [
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   172
                result add: (Diff3::Chunk side: hunk side chunk: hunk newChunk)
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   173
            ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   174
            commonOffset := (hunks at: lastOverlapHunkIndex) oldChunk lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   175
        ] ifFalse: [ 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   176
            | conflict |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   177
            conflict := self computeConflictFrom: firstHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   178
                                            to: lastOverlapHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   179
                                            hunks: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   180
            result add: conflict.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   181
            commonOffset := conflict original lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   182
        ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   183
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   184
        firstHunkIndex := lastOverlapHunkIndex + 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   185
    ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   186
    self addCommonChunkTo: result between: commonOffset and: file0 size + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   187
    ^ result asArray
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   188
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   189
    "Modified: / 16-03-2012 / 19:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   190
    "Created: / 20-03-2012 / 18:27:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   191
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   192
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
merge
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   194
    "Returns an Array of (#ok -> {...}) or (#conflict -> Diff3Conflict 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   195
     of collections) instances representing the results of a three-way 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   196
     merge between file1/file0/file2. Does not optimistically treat 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   197
     'false conflicts' as clean merges (see the class comment for 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   198
     Diff3InclusiveVisitor)."
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   199
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   200
    ^ self merge: false
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   201
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   202
    "Modified (comment): / 16-03-2012 / 20:26:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
mergeClean
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   206
    "Returns an Array of (#ok -> {...}) or (#conflict -> Diff3Conflict of 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   207
     collections) instances representing the results of a three-way merge 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   208
     between file1/file0/file2. Optimistically treats 'false conflicts' 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   209
     as clean merges (see the class comment for Diff3ExclusiveVisitor)."
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   210
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   211
    ^ self merge: true
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   212
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   213
    "Modified (format): / 16-03-2012 / 20:26:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
mergeIndices
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   217
    "Returns an Array of Diff3Chunks (representing clean merges) or Diff3Conflicts 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   218
     (containing DiffChunks, representing conflicts), together representing the 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   219
     results of a three-way merge between file1/file0/file2. Does not detect 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   220
     'false conflicts', and can return two Diff3Chunks next to each other in 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   221
     the result."
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   222
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   223
    | result commonOffset hunks lastOverlapHunkIndex hunk firstHunkIndex |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   224
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   225
    hunks := self computeHunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   226
    result := OrderedCollection new.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   227
    commonOffset := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   228
    firstHunkIndex := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   229
    [firstHunkIndex <= hunks size] whileTrue: [
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   230
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   231
        hunk := hunks at: firstHunkIndex.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   232
        self addCommonChunkTo: result between: commonOffset and: hunk oldChunk offset.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   233
        lastOverlapHunkIndex := self findOverlapStartingAt: firstHunkIndex in: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   234
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   235
        (firstHunkIndex = lastOverlapHunkIndex) ifTrue: [
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   236
            (hunk newChunk length > 0) ifTrue: [
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   237
                result add: (Diff3::Chunk side: hunk side chunk: hunk newChunk)
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   238
            ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   239
            commonOffset := (hunks at: lastOverlapHunkIndex) oldChunk lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   240
        ] ifFalse: [ 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   241
            | conflict |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   242
            conflict := self computeConflictFrom: firstHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   243
                                            to: lastOverlapHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   244
                                            hunks: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   245
            result add: conflict.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   246
            commonOffset := conflict original lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   247
        ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   248
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   249
        firstHunkIndex := lastOverlapHunkIndex + 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   250
    ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   251
    self addCommonChunkTo: result between: commonOffset and: file0 size + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   252
    ^ result asArray
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
    "Modified: / 16-03-2012 / 19:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   255
    "Modified (format): / 20-03-2012 / 18:07:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
!Diff3 methodsFor:'private'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
addCommonChunkTo: result between: commonOffset and: targetOffset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
        targetOffset > commonOffset ifTrue: [
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
                result add: (Diff3::Chunk new
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
                                                side: #original;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
                                                offset: commonOffset;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
                                                length: targetOffset - commonOffset)].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
        ^ targetOffset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
    "Modified: / 16-03-2012 / 19:20:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
computeConflictFrom: i1 to: i2 hunks: hunks
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
        | hunk conflict l o r lo ro chunk chunkOrig |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
        conflict := Diff3::Conflict new.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
        conflict left: (l := Diff2::Chunk negativeSize: file1 size).
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
        conflict original: (o := Diff2::Chunk negativeSize: file0 size).
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
        conflict right: (r := Diff2::Chunk negativeSize: file2 size).
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
        lo := o copy.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
        ro := o copy.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
        i1 to: i2 do: [:index |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
                hunk := hunks at: index.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
                (hunk side = #left)
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
                        ifTrue: [chunk := l. chunkOrig := lo.]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
                        ifFalse: [chunk := r. chunkOrig := ro.].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
                o destructiveMergeWith: hunk oldChunk.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
                chunk destructiveMergeWith: hunk newChunk.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
                chunkOrig destructiveMergeWith: hunk oldChunk].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
        l correctForSkewFrom: lo to: o.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
        r correctForSkewFrom: ro to: o.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
        ^ conflict
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
    "Modified: / 16-03-2012 / 19:20:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
computeHunks
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
        | diff2 diff1 hunks |
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   299
        diff1 := self diffClass new file1: file0; file2: file1; diffIndices.
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   300
        diff2 := self diffClass new file1: file0; file2: file2; diffIndices.
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
        hunks := OrderedCollection new.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
        diff1 do: [ :entry | hunks add: (Diff3Hunk side: #left entry: entry) ].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
        diff2 do: [ :entry | hunks add: (Diff3Hunk side: #right entry: entry) ].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
        ^ hunks asSortedCollection:[:a :b|a <= b].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   306
    "Modified: / 16-03-2012 / 20:29:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
fileMap
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
	| files |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
	files := Dictionary new.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
	files at: #left put: file1.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
	files at: #original put: file0.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
	files at: #right put: file2.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
	^ files
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
findOverlapStartingAt: startIndex in: hunks
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   319
        | nextRegionLhs hunk |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   320
        nextRegionLhs := (hunks at: startIndex) oldChunk lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   321
        startIndex + 1 to: hunks size do: [:index |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   322
                hunk := hunks at: index.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   323
                hunk oldChunk offset > nextRegionLhs ifTrue: [ 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   324
                    ^ index - 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   325
                ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   326
                nextRegionLhs := nextRegionLhs max: hunk oldChunk lastIndex + 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   327
        ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   328
        ^ hunks size.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   329
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   330
    "Modified (format): / 20-03-2012 / 18:04:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
merge: excludeFalseConflicts
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
	| visitor |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
	visitor := excludeFalseConflicts
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
		ifTrue: [Diff3ExclusiveVisitor new]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
		ifFalse: [Diff3InclusiveVisitor new].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
	visitor files: self fileMap.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
	self mergeIndices do: [:each | each accept: visitor].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
	^ visitor result
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
!Diff3::Chunk class methodsFor:'as yet unclassified'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
negativeSize: s
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
	"Returns a pseudo-chunk with *negative* length, useful as a kind of zero for destructiveMergeWith: operations intended to build up coverage over some set of chunks."
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
	^ self new offset: s + 1; length: s negated
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
offset: o length: l
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
	^ self new offset: o; length: l
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
side: aSelector chunk: aChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
	^ self new side: aSelector; offset: aChunk offset; length: aChunk length
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
!Diff3::Chunk class methodsFor:'documentation'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
copyright
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
 Copyright (c) 2007-2012 Tony Garnock-Jones
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
 This code is based on Squeak's DiffMerge package
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
 written by Tony Garnock-Jones. Original project's web site:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
 http://www.squeaksource.com/DiffMerge
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
 Permission is hereby granted, free of charge, to any person
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
 obtaining a copy of this software and associated documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
 files (the 'Software'), to deal in the Software without
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
 restriction, including without limitation the rights to use,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
 copy, modify, merge, publish, distribute, sublicense, and/or sell
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
 copies of the Software, and to permit persons to whom the
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
 Software is furnished to do so, subject to the following
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
 conditions:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
 The above copyright notice and this permission notice shall be
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
 included in all copies or substantial portions of the Software.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
 OTHER DEALINGS IN THE SOFTWARE.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   389
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   390
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   391
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   392
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
A Diff3Chunk is a subclass of DiffChunk that also knows which side of a three-way merge it represents.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   397
Instance Variables
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
        side:           <Symbol> One of #left, #original or #right
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   400
    [author:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   401
        Tony Garnock-Jones <tonyg@lshift.com>
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
    [instance variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   404
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   405
    [class variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   406
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   407
    [see also:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   408
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
!Diff3::Chunk methodsFor:'accessing'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   414
correctForSkewFrom: smallerChunk to: biggerChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
	"Given a biggerChunk that definitely contains smallerChunk but might have an extra head or tail, updates the receiver to include such an extra head or tail."
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   416
	| headSize tailSize |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
	headSize := smallerChunk offset - biggerChunk offset.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
	tailSize := biggerChunk lastIndex - smallerChunk lastIndex.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
	offset := offset - headSize.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
	length := length + headSize + tailSize.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
destructiveMergeWith: aChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
	| newLastIndex |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
	newLastIndex := self lastIndex max: aChunk lastIndex.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
	offset := offset min: aChunk offset.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
	length := newLastIndex - offset + 1.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   428
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   429
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   430
lastIndex
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   431
	"Returns the rightmost index contained in my range. (Offset is the leftmost index.) If my length is zero, will return an index lower than my offset."
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   432
	^ offset + length - 1
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   433
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   434
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   435
length
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   436
	^ length
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   437
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   438
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   439
length: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   440
	length := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   441
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   442
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   443
offset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   444
	^ offset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   446
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   447
offset: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
	offset := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   451
side
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
	^ side
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   453
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   454
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
side: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
	side := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   457
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
!Diff3::Chunk methodsFor:'as yet unclassified'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   460
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
= otherChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
        ^ (otherChunk isKindOf: self class) and:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
        [(self offset = otherChunk offset) and:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
        [(self length = otherChunk length)]]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   466
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   467
    "Modified: / 16-03-2012 / 19:25:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   468
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   469
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
accept: aVisitor
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   471
	^ aVisitor side: side chunk: self
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   472
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   473
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   474
extractFrom: aCollection
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   475
	"Extracts a subcollection from aCollection corresponding to my offset and length."
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   476
	^ aCollection copyFrom: offset to: offset + length - 1.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   477
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   478
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   479
printOn: aStream
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   480
        aStream nextPut: $(.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   481
        super printOn: aStream.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   482
        aStream
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   483
                nextPutAll: ' side: ';
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   484
                nextPutAll: side printString;
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   485
                nextPutAll: ' off: ';
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   486
                nextPutAll: offset printString;
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   487
                nextPutAll: ' len: ';
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   488
                nextPutAll: length printString;
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   489
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   490
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   491
                nextPut: $).
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   492
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   493
    "Modified: / 20-03-2012 / 17:08:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   494
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   496
!Diff3::Chunk methodsFor:'comparing'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   497
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   498
< aDiffChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
	"Used to sort changed chunks during three-way merge; see Diff3"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
	^ self offset < aDiffChunk offset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   501
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   502
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   503
!Diff3::Chunk methodsFor:'testing'!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   504
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   505
isChunk
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   506
    ^true
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   507
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   508
    "Created: / 16-03-2012 / 22:02:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   509
!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   510
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   511
isConflict
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   512
    ^false
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   513
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   514
    "Created: / 16-03-2012 / 22:02:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   515
! !
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   516
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
!Diff3::Conflict class methodsFor:'documentation'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   518
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   519
copyright
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   520
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
 Copyright (c) 2007-2012 Tony Garnock-Jones
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   522
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   523
 This code is based on Squeak's DiffMerge package
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   524
 written by Tony Garnock-Jones. Original project's web site:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
 http://www.squeaksource.com/DiffMerge
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   527
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   528
 Permission is hereby granted, free of charge, to any person
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   529
 obtaining a copy of this software and associated documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   530
 files (the 'Software'), to deal in the Software without
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   531
 restriction, including without limitation the rights to use,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   532
 copy, modify, merge, publish, distribute, sublicense, and/or sell
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   533
 copies of the Software, and to permit persons to whom the
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   534
 Software is furnished to do so, subject to the following
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
 conditions:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   536
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   537
 The above copyright notice and this permission notice shall be
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
 included in all copies or substantial portions of the Software.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   539
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   540
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   541
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   542
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   543
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   544
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   545
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   546
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   547
 OTHER DEALINGS IN THE SOFTWARE.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   548
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   549
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   550
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   551
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   552
documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   553
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   554
A Diff3Conflict represents a merge conflict.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   555
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   556
Instance Variables
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   557
        left:           Either a SequenceableCollection or a Diff3Chunk representing the left variant.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   558
        original:       Either a SequenceableCollection or a Diff3Chunk representing the original variant.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   559
        right:          Either a SequenceableCollection or a Diff3Chunk representing the right variant.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   560
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   561
    [author:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   562
        Tony Garnock-Jones <tonyg@lshift.com>
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   563
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   564
    [instance variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   565
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   566
    [class variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   567
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   568
    [see also:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   569
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   570
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   571
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   572
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   573
!Diff3::Conflict methodsFor:'accessing'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   574
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   575
left
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   576
	^ left
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   577
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   578
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   579
left: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   580
	left := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   581
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   582
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   583
leftAt: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   584
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   585
    ^(index between: 1 and: left size) ifTrue:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   586
        left at: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   587
    ] ifFalse:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   588
        nil
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   589
    ]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   590
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   591
    "Created: / 20-03-2012 / 20:48:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   592
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   593
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   594
length
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   595
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   596
    ^left length max: (original length max: right length)
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   597
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   598
    "Created: / 16-03-2012 / 22:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   599
!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   600
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   601
original
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   602
	^ original
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   603
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   604
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   605
original: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   606
	original := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   607
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   608
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   609
originalAt: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   610
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   611
    ^(index between: 1 and: original size) ifTrue:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   612
        original at: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   613
    ] ifFalse:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   614
        nil
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   615
    ]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   616
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   617
    "Created: / 20-03-2012 / 20:49:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   618
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   619
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   620
right
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   621
	^ right
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   622
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   623
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   624
right: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   625
	right := anObject
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   626
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   627
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   628
rightAt: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   629
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   630
    ^(index between: 1 and: right size) ifTrue:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   631
        right at: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   632
    ] ifFalse:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   633
        nil
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   634
    ]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   635
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   636
    "Created: / 20-03-2012 / 20:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   637
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   638
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   639
!Diff3::Conflict methodsFor:'as yet unclassified'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   640
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   641
= otherConflict
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   642
        ^ (otherConflict isKindOf: Diff3::Conflict) and:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   643
                [(left = otherConflict left) and:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   644
                [(original = otherConflict original) and:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   645
                [(right = otherConflict right)]]]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   646
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   647
    "Modified: / 16-03-2012 / 19:20:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   648
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   649
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   650
accept: aVisitor
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   651
	^ aVisitor left: left original: original right: right.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   652
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   653
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   654
printOn: aStream
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   655
	aStream
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   656
		nextPut: $(;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   657
		nextPutAll: self class name;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   658
		nextPutAll: ' new left: '.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   659
	left printOn: aStream.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   660
	aStream nextPutAll: '; original: '.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   661
	original printOn: aStream.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   662
	aStream nextPutAll: '; right: '.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   663
	right printOn: aStream.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   664
	aStream nextPut: $).
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   665
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   666
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   667
!Diff3::Conflict methodsFor:'testing'!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   668
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   669
isChunk
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   670
    ^false
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   671
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   672
    "Created: / 16-03-2012 / 22:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   673
!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   674
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   675
isConflict
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   676
    ^true
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   677
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   678
    "Created: / 16-03-2012 / 22:03:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   679
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   680
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   681
isInsertionInLeft
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   682
    ^left length > 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   683
        and:[original length <= 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   684
            and:[right length <= 0]]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   685
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   686
    "Created: / 20-03-2012 / 18:37:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   687
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   688
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   689
isInsertionInOriginal
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   690
    ^original length > 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   691
        and:[left length <= 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   692
            and:[right length <= 0]]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   693
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   694
    "Created: / 20-03-2012 / 18:36:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   695
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   696
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   697
isInsertionInRight
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   698
    ^right length > 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   699
        and:[original length <= 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   700
            and:[left length <= 0]]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   701
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   702
    "Created: / 20-03-2012 / 18:37:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   703
! !
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   704
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   705
!Diff3 class methodsFor:'documentation'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   706
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   707
version_SVN
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   708
    ^ '$Id: Diff3.st 7948 2012-03-21 01:52:35Z vranyj1 $'
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   709
! !