Diff3.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 29 Aug 2013 12:20:29 +0100
branchjv
changeset 13468 444ac2aa4fd6
parent 12431 9f0c59c742d5
child 15566 184cea584be5
permissions -rw-r--r--
Hack: do not include Java language in language-menu. Java is funny - we don't have an evaluator for Java but we have to define evaluatorClass to return GroovyEvaluator to be able to inspect code in debugger/inspector. Hence this hack. We may need something like evaluatorClassForInspector/Debugger.
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
12218
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   147
!
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   148
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   149
fileAt: side
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   150
    "Given a side (#left, #original or #right), returns the
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   151
    corresponding file"
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   152
12226
4e263f50f1c6 Fixes in Diff3 visualization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12225
diff changeset
   153
    side == #left       ifTrue:[ ^ file1 ].
4e263f50f1c6 Fixes in Diff3 visualization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12225
diff changeset
   154
    side == #original   ifTrue:[ ^ file0 ].
12218
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   155
    side == #right      ifTrue:[ ^ file2 ].
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   156
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   157
    self error:'Invalid parameter, must be one of #left, #original or #right'.
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   158
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   159
    "Created: / 03-04-2012 / 23:30:58 / 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
   160
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
!Diff3 methodsFor:'merging'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   164
diffIndices
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   165
    "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
   166
     (containing DiffChunks, representing conflicts), together representing the 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   167
     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
   168
     '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
   169
     the result."
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   170
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   171
    | result commonOffset hunks lastOverlapHunkIndex hunk firstHunkIndex |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   172
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   173
    hunks := self computeHunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   174
    result := OrderedCollection new.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   175
    commonOffset := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   176
    firstHunkIndex := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   177
    [firstHunkIndex <= hunks size] whileTrue: [
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   178
        | conflict |
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   179
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   180
        hunk := hunks at: firstHunkIndex.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   181
        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
   182
        lastOverlapHunkIndex := self findOverlapStartingAt: firstHunkIndex in: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   183
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   184
        (firstHunkIndex = lastOverlapHunkIndex)"false" ifTrue: [
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   185
            conflict := self computeConflictFromCleanMerge: hunk.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   186
            result add: conflict.
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   187
            commonOffset := (hunks at: lastOverlapHunkIndex) oldChunk lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   188
        ] ifFalse: [ 
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   189
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   190
            conflict := self computeConflictFrom: firstHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   191
                                            to: lastOverlapHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   192
                                            hunks: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   193
            result add: conflict.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   194
            commonOffset := conflict original lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   195
        ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   196
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   197
        firstHunkIndex := lastOverlapHunkIndex + 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   198
    ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   199
    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
   200
    ^ result asArray
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   201
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   202
    "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
   203
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   204
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
merge
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 
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   207
     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
   208
     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
   209
     '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
   210
     Diff3InclusiveVisitor)."
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   211
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   212
    ^ self merge: false
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   213
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   214
    "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
   215
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
mergeClean
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   218
    "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
   219
     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
   220
     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
   221
     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
   222
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   223
    ^ self merge: true
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   224
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   225
    "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
   226
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
mergeIndices
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   229
    "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
   230
     (containing DiffChunks, representing conflicts), together representing the 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   231
     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
   232
     '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
   233
     the result."
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   234
12227
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   235
    ^self mergeIndicesDiscardEmpty: true
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   236
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   237
    "Modified: / 09-04-2012 / 16:26:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   238
!
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   239
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   240
mergeIndicesDiscardEmpty: discardEmpty
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   241
    "Returns an Array of Diff3Chunks (representing clean merges) or Diff3Conflicts 
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   242
     (containing DiffChunks, representing conflicts), together representing the 
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   243
     results of a three-way merge between file1/file0/file2. Does not detect 
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   244
     'false conflicts', and can return two Diff3Chunks next to each other in 
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   245
     the result.
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   246
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   247
    If discard empty is true, empty clean merge chunks are not included
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   248
     "
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   249
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   250
    | result commonOffset hunks lastOverlapHunkIndex hunk firstHunkIndex |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   251
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   252
    hunks := self computeHunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   253
    result := OrderedCollection new.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   254
    commonOffset := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   255
    firstHunkIndex := 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   256
    [firstHunkIndex <= hunks size] whileTrue: [
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   257
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   258
        hunk := hunks at: firstHunkIndex.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   259
        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
   260
        lastOverlapHunkIndex := self findOverlapStartingAt: firstHunkIndex in: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   261
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   262
        (firstHunkIndex = lastOverlapHunkIndex) ifTrue: [
12227
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   263
            (discardEmpty and:[hunk newChunk length == 0]) ifTrue:[
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   264
                "/Empty chunk...
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   265
            ] ifFalse:[
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   266
                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
   267
            ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   268
            commonOffset := (hunks at: lastOverlapHunkIndex) oldChunk lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   269
        ] ifFalse: [ 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   270
            | conflict |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   271
            conflict := self computeConflictFrom: firstHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   272
                                            to: lastOverlapHunkIndex
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   273
                                            hunks: hunks.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   274
            result add: conflict.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   275
            commonOffset := conflict original lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   276
        ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   277
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   278
        firstHunkIndex := lastOverlapHunkIndex + 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   279
    ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   280
    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
   281
    ^ result asArray
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
12227
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   283
    "Created: / 09-04-2012 / 16:25:45 / 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
   284
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
!Diff3 methodsFor:'private'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
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
   289
        targetOffset > commonOffset ifTrue: [
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
                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
   291
                                                side: #original;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
                                                offset: commonOffset;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
                                                length: targetOffset - commonOffset)].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
        ^ targetOffset
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
    "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
   297
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   299
computeConflictChunk: side fromCleanMerge: hunk old: old new: new into: conflict
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   300
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   301
    side == hunk side ifTrue:[
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   302
        conflict at: side put: hunk newChunk.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   303
        ^self
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   304
    ].
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   305
    "Hmm....we have to compare"
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   306
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   307
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   308
    (hunk newChunk extractSafeFrom: (self fileAt: side)) = new ifTrue:[
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   309
        conflict at: side put: hunk newChunk.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   310
    ] ifFalse:[
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   311
        conflict at: side put: hunk oldChunk.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   312
    ]
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   313
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   314
    "Created: / 06-04-2012 / 12:31:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   315
!
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   316
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
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
   318
        | 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
   319
        conflict := Diff3::Conflict new.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
        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
   321
        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
   322
        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
   323
        lo := o copy.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
        ro := o copy.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
        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
   327
                hunk := hunks at: index.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
                (hunk side = #left)
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
                        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
   330
                        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
   331
                o destructiveMergeWith: hunk oldChunk.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
                chunk destructiveMergeWith: hunk newChunk.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
                chunkOrig destructiveMergeWith: hunk oldChunk].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
        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
   336
        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
   337
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
        ^ conflict
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
    "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
   341
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   343
computeConflictFromCleanMerge: hunk
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   344
    | conflict old new |
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   345
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   346
    conflict := Conflict new.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   347
12226
4e263f50f1c6 Fixes in Diff3 visualization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12225
diff changeset
   348
    old := hunk oldChunk extractFrom: file0.
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   349
    new := hunk newChunk extractFrom: (self fileAt: hunk side).
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   350
12226
4e263f50f1c6 Fixes in Diff3 visualization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12225
diff changeset
   351
    conflict left: old.
4e263f50f1c6 Fixes in Diff3 visualization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12225
diff changeset
   352
    conflict original: old.
4e263f50f1c6 Fixes in Diff3 visualization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12225
diff changeset
   353
    conflict right: old.
4e263f50f1c6 Fixes in Diff3 visualization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12225
diff changeset
   354
    conflict instVarNamed:hunk side put: hunk newChunk.
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   355
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   356
    ^conflict.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   357
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   358
    "Created: / 06-04-2012 / 12:13:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   359
!
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   360
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
computeHunks
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
        | diff2 diff1 hunks |
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   363
        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
   364
        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
   365
        hunks := OrderedCollection new.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
        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
   367
        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
   368
        ^ 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
   369
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   370
    "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
   371
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
fileMap
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
	| files |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
	files := Dictionary new.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
	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
   377
	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
   378
	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
   379
	^ files
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
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
findOverlapStartingAt: startIndex in: hunks
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   383
        | nextRegionLhs hunk |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   384
        nextRegionLhs := (hunks at: startIndex) oldChunk lastIndex + 1.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   385
        startIndex + 1 to: hunks size do: [:index |
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   386
                hunk := hunks at: index.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   387
                hunk oldChunk offset > nextRegionLhs ifTrue: [ 
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   388
                    ^ index - 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   389
                ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   390
                nextRegionLhs := nextRegionLhs max: hunk oldChunk lastIndex + 1
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   391
        ].
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   392
        ^ hunks size.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   393
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   394
    "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
   395
!
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
merge: excludeFalseConflicts
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
	| visitor |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
	visitor := excludeFalseConflicts
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   400
		ifTrue: [Diff3ExclusiveVisitor new]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   401
		ifFalse: [Diff3InclusiveVisitor new].
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
	visitor files: self fileMap.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
	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
   404
	^ visitor result
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   405
! !
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
!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
   408
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
negativeSize: s
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
	"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
   411
	^ 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
   412
!
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
offset: o length: l
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
	^ 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
   416
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
side: aSelector chunk: aChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
	^ 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
   420
! !
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
!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
   423
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
copyright
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
 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
   427
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   428
 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
   429
 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
   430
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   431
 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
   432
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   433
 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
   434
 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
   435
 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
   436
 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
   437
 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
   438
 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
   439
 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
   440
 conditions:
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
 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
   443
 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
   444
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
 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
   446
 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
   447
 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
   448
 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
   449
 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
   450
 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
   451
 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
   452
 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
   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
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   457
documentation
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
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
   460
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
Instance Variables
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
        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
   463
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
    [author:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
        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
   466
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   467
    [instance variables:]
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
    [class variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   471
    [see also:]
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
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   475
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   476
!Diff3::Chunk methodsFor:'accessing'!
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
correctForSkewFrom: smallerChunk to: biggerChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   479
	"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
   480
	| headSize tailSize |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   481
	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
   482
	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
   483
	offset := offset - headSize.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   484
	length := length + headSize + tailSize.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   485
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   486
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   487
destructiveMergeWith: aChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   488
	| newLastIndex |
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   489
	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
   490
	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
   491
	length := newLastIndex - offset + 1.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   492
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   493
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   494
lastIndex
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
	"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
   496
	^ offset + length - 1
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
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
length
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
	^ length
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
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   503
length: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   504
	length := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   505
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   506
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   507
offset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   508
	^ offset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   509
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   510
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   511
offset: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   512
	offset := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   513
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   514
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   515
side
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   516
	^ side
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
!
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
side: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   520
	side := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
! !
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
!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
   524
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
= otherChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   527
        ^ (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
   528
        [(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
   529
        [(self length = otherChunk length)]]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   530
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   531
    "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
   532
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   533
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   534
accept: aVisitor
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
	^ 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
   536
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   537
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
extractFrom: aCollection
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   539
	"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
   540
	^ 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
   541
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   542
12218
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   543
extractFrom: aCollection offset: lineOffset
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   544
    "Given a text and lineOffset withing a chunk, return the line"
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   545
    ^ aCollection at: offset + lineOffset - 1
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   546
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   547
    "Created: / 04-04-2012 / 00:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   548
!
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   549
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   550
extractFromDiff: diff
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   551
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   552
    ^self extractFrom: (diff fileAt: side)
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   553
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   554
    "Created: / 03-04-2012 / 23:33:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   555
!
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   556
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   557
extractResolution
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   558
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   559
    side == #left     ifTrue:[ ^ #MergedUsingA ].
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   560
    side == #original ifTrue:[ ^ #MergedUsingBase ].
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   561
    side == #right    ifTrue:[ ^ #MergedUsingB ].
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   562
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   563
    self error:'Should not be reached'
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   564
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   565
    "Created: / 04-04-2012 / 00:26:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   566
!
8b88c30fb1e7 Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12202
diff changeset
   567
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   568
printOn: aStream
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   569
        aStream nextPut: $(.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   570
        super printOn: aStream.
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   571
        aStream
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   572
                nextPutAll: ' side: ';
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   573
                nextPutAll: side printString;
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   574
                nextPutAll: ' off: ';
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   575
                nextPutAll: offset printString;
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   576
                nextPutAll: ' len: ';
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   577
                nextPutAll: length printString;
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   578
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   579
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   580
                nextPut: $).
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   581
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   582
    "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
   583
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   584
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   585
!Diff3::Chunk methodsFor:'comparing'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   586
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   587
< aDiffChunk
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   588
	"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
   589
	^ self offset < aDiffChunk offset
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   590
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   591
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   592
!Diff3::Chunk methodsFor:'testing'!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   593
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   594
isChunk
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   595
    ^true
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   596
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   597
    "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
   598
!
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
isConflict
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   601
    ^false
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   602
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   603
    "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
   604
! !
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   605
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   606
!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
   607
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   608
copyright
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   609
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   610
 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
   611
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   612
 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
   613
 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
   614
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   615
 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
   616
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   617
 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
   618
 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
   619
 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
   620
 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
   621
 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
   622
 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
   623
 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
   624
 conditions:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   625
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   626
 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
   627
 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
   628
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   629
 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
   630
 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
   631
 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
   632
 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
   633
 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
   634
 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
   635
 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
   636
 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
   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
!
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
documentation
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   642
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   643
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
   644
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   645
Instance Variables
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   646
        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
   647
        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
   648
        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
   649
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   650
    [author:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   651
        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
   652
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   653
    [instance variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   654
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   655
    [class variables:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   656
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   657
    [see also:]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   658
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   659
"
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   660
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   661
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   662
!Diff3::Conflict methodsFor:'accessing'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   663
12225
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   664
at: side
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   665
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   666
    "Given a side (#left, #original or #right), returns the
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   667
    corresponding chunk"
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   668
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   669
    side == #left       ifTrue:[ ^ left ].
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   670
    side == #original   ifTrue:[ ^ original ].
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   671
    side == #right      ifTrue:[ ^ right ].
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   672
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   673
    self error:'Invalid parameter, must be one of #left, #original or #right'.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   674
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   675
    "Created: / 06-04-2012 / 12:26:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   676
!
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   677
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   678
at: side put: chunk
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   679
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   680
    "Given a side (#left, #original or #right), sets the
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   681
    corresponding chunk"
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   682
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   683
    side == #left       ifTrue:[ left := chunk. ^ self].
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   684
    side == #original   ifTrue:[ original := chunk. ^ self ].
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   685
    side == #right      ifTrue:[ right := chunk. ^ self ].
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   686
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   687
    self error:'Invalid parameter, must be one of #left, #original or #right'.
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   688
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   689
    "Created: / 06-04-2012 / 12:26:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   690
!
60dfd3fa018d - Diff3
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12218
diff changeset
   691
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   692
left
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   693
	^ left
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   694
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   695
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   696
left: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   697
	left := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   698
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   699
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   700
leftAt: index
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
    ^(index between: 1 and: left size) ifTrue:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   703
        left at: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   704
    ] ifFalse:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   705
        nil
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   706
    ]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   707
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   708
    "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
   709
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   710
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   711
length
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   712
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   713
    ^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
   714
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   715
    "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
   716
!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   717
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   718
original
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   719
	^ original
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   720
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   721
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   722
original: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   723
	original := anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   724
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   725
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   726
originalAt: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   727
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   728
    ^(index between: 1 and: original size) ifTrue:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   729
        original at: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   730
    ] ifFalse:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   731
        nil
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   732
    ]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   733
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   734
    "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
   735
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   736
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   737
right
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   738
	^ right
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   739
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   740
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   741
right: anObject
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   742
	right := anObject
12202
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   743
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   744
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   745
rightAt: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   746
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   747
    ^(index between: 1 and: right size) ifTrue:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   748
        right at: index
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   749
    ] ifFalse:[
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   750
        nil
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   751
    ]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   752
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   753
    "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
   754
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   755
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   756
!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
   757
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   758
= otherConflict
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   759
        ^ (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
   760
                [(left = otherConflict left) and:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   761
                [(original = otherConflict original) and:
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   762
                [(right = otherConflict right)]]]
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   763
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   764
    "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
   765
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   766
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   767
accept: aVisitor
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   768
	^ 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
   769
!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   770
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   771
printOn: aStream
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   772
	aStream
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   773
		nextPut: $(;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   774
		nextPutAll: self class name;
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   775
		nextPutAll: ' new left: '.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   776
	left printOn: aStream.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   777
	aStream nextPutAll: '; original: '.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   778
	original printOn: aStream.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   779
	aStream nextPutAll: '; right: '.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   780
	right printOn: aStream.
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   781
	aStream nextPut: $).
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   782
! !
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   783
12190
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   784
!Diff3::Conflict methodsFor:'testing'!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   785
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   786
isChunk
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   787
    ^false
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   788
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   789
    "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
   790
!
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   791
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   792
isConflict
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   793
    ^true
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   794
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   795
    "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
   796
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   797
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   798
isInsertionInLeft
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   799
    ^left length > 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   800
        and:[original length <= 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   801
            and:[right length <= 0]]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   802
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   803
    "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
   804
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   805
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   806
isInsertionInOriginal
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   807
    ^original length > 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   808
        and:[left length <= 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   809
            and:[right length <= 0]]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   810
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   811
    "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
   812
!
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   813
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   814
isInsertionInRight
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   815
    ^right length > 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   816
        and:[original length <= 0
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   817
            and:[left length <= 0]]
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   818
eaa1f6cb6ce8 Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12190
diff changeset
   819
    "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
   820
! !
2a77dea2eceb Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12181
diff changeset
   821
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   822
!Diff3 class methodsFor:'documentation'!
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   823
12431
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12227
diff changeset
   824
version_HG
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12227
diff changeset
   825
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12227
diff changeset
   826
    ^ '$Changeset: <not expanded> $'
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12227
diff changeset
   827
!
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12227
diff changeset
   828
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   829
version_SVN
12227
f82b3ed0726a - Tools::TextMergeInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12226
diff changeset
   830
    ^ '$Id: Diff3.st 7975 2012-04-09 18:34:24Z vranyj1 $'
12181
c6d6a0a83faa Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   831
! !
12431
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12227
diff changeset
   832