author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Wed, 04 Apr 2012 01:09:32 +0100 | |
branch | jv |
changeset 12218 | 8b88c30fb1e7 |
parent 12202 | eaa1f6cb6ce8 |
child 12225 | 60dfd3fa018d |
permissions | -rw-r--r-- |
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 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
153 |
side == #left ifTrue:[ ^ file0 ]. |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
154 |
side == #original ifTrue:[ ^ file1 ]. |
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: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
178 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
179 |
hunk := hunks at: firstHunkIndex. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
180 |
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
|
181 |
lastOverlapHunkIndex := self findOverlapStartingAt: firstHunkIndex in: hunks. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
182 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
183 |
"(firstHunkIndex = lastOverlapHunkIndex)"false ifTrue: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
184 |
(hunk newChunk length > 0) ifTrue: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
185 |
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
|
186 |
]. |
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: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
189 |
| conflict | |
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 |
"Modified: / 16-03-2012 / 19:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
203 |
"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
|
204 |
! |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
205 |
|
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
206 |
merge |
12190
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
207 |
"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
|
208 |
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
|
209 |
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
|
210 |
'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
|
211 |
Diff3InclusiveVisitor)." |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
212 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
213 |
^ self merge: false |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
214 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
215 |
"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
|
216 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
217 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
mergeClean |
12190
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
219 |
"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
|
220 |
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
|
221 |
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
|
222 |
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
|
223 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
224 |
^ self merge: true |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
225 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
226 |
"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
|
227 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
228 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
229 |
mergeIndices |
12202
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
230 |
"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
|
231 |
(containing DiffChunks, representing conflicts), together representing the |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
232 |
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
|
233 |
'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
|
234 |
the result." |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
235 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
236 |
| result commonOffset hunks lastOverlapHunkIndex hunk firstHunkIndex | |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
237 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
238 |
hunks := self computeHunks. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
239 |
result := OrderedCollection new. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
240 |
commonOffset := 1. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
241 |
firstHunkIndex := 1. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
242 |
[firstHunkIndex <= hunks size] whileTrue: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
243 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
244 |
hunk := hunks at: firstHunkIndex. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
245 |
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
|
246 |
lastOverlapHunkIndex := self findOverlapStartingAt: firstHunkIndex in: hunks. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
247 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
248 |
(firstHunkIndex = lastOverlapHunkIndex) ifTrue: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
249 |
(hunk newChunk length > 0) ifTrue: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
250 |
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
|
251 |
]. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
252 |
commonOffset := (hunks at: lastOverlapHunkIndex) oldChunk lastIndex + 1. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
253 |
] ifFalse: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
254 |
| conflict | |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
255 |
conflict := self computeConflictFrom: firstHunkIndex |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
256 |
to: lastOverlapHunkIndex |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
257 |
hunks: hunks. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
258 |
result add: conflict. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
259 |
commonOffset := conflict original lastIndex + 1. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
260 |
]. |
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 + 1 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
263 |
]. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
264 |
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
|
265 |
^ result asArray |
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
266 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
267 |
"Modified: / 16-03-2012 / 19:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
12202
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
268 |
"Modified (format): / 20-03-2012 / 18:07:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
269 |
! ! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
270 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
271 |
!Diff3 methodsFor:'private'! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
272 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
273 |
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
|
274 |
targetOffset > commonOffset ifTrue: [ |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
275 |
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
|
276 |
side: #original; |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
277 |
offset: commonOffset; |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
278 |
length: targetOffset - commonOffset)]. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
279 |
^ targetOffset |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
280 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
281 |
"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
|
282 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
283 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
284 |
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
|
285 |
| 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
|
286 |
conflict := Diff3::Conflict new. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
287 |
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
|
288 |
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
|
289 |
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
|
290 |
lo := o copy. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
291 |
ro := o copy. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
292 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
293 |
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
|
294 |
hunk := hunks at: index. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
295 |
(hunk side = #left) |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
296 |
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
|
297 |
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
|
298 |
o destructiveMergeWith: hunk oldChunk. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
299 |
chunk destructiveMergeWith: hunk newChunk. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
300 |
chunkOrig destructiveMergeWith: hunk oldChunk]. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
301 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
302 |
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
|
303 |
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
|
304 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
305 |
^ conflict |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
306 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
307 |
"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
|
308 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
309 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
310 |
computeHunks |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
311 |
| diff2 diff1 hunks | |
12190
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
312 |
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
|
313 |
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
|
314 |
hunks := OrderedCollection new. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
315 |
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
|
316 |
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
|
317 |
^ 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
|
318 |
|
12190
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
319 |
"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
|
320 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
321 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
322 |
fileMap |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
323 |
| files | |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
324 |
files := Dictionary new. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
325 |
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
|
326 |
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
|
327 |
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
|
328 |
^ files |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
329 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
330 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
331 |
findOverlapStartingAt: startIndex in: hunks |
12202
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
332 |
| nextRegionLhs hunk | |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
333 |
nextRegionLhs := (hunks at: startIndex) oldChunk lastIndex + 1. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
334 |
startIndex + 1 to: hunks size do: [:index | |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
335 |
hunk := hunks at: index. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
336 |
hunk oldChunk offset > nextRegionLhs ifTrue: [ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
337 |
^ index - 1 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
338 |
]. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
339 |
nextRegionLhs := nextRegionLhs max: hunk oldChunk lastIndex + 1 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
340 |
]. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
341 |
^ hunks size. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
342 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
343 |
"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
|
344 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
345 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
346 |
merge: excludeFalseConflicts |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
347 |
| visitor | |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
348 |
visitor := excludeFalseConflicts |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
349 |
ifTrue: [Diff3ExclusiveVisitor new] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
350 |
ifFalse: [Diff3InclusiveVisitor new]. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
351 |
visitor files: self fileMap. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
352 |
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
|
353 |
^ visitor result |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
354 |
! ! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
355 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
356 |
!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
|
357 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
358 |
negativeSize: s |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
359 |
"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
|
360 |
^ 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
|
361 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
362 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
363 |
offset: o length: l |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
364 |
^ 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
|
365 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
366 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
367 |
side: aSelector chunk: aChunk |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
368 |
^ 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
|
369 |
! ! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
370 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
371 |
!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
|
372 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
373 |
copyright |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
374 |
" |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
375 |
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
|
376 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
377 |
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
|
378 |
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
|
379 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
380 |
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
|
381 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
382 |
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
|
383 |
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
|
384 |
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
|
385 |
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
|
386 |
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
|
387 |
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
|
388 |
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
|
389 |
conditions: |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
390 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
391 |
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
|
392 |
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
|
393 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
394 |
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
|
395 |
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
|
396 |
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
|
397 |
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
|
398 |
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
|
399 |
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
|
400 |
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
|
401 |
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
|
402 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
403 |
" |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
404 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
405 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
406 |
documentation |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
407 |
" |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
408 |
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
|
409 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
410 |
Instance Variables |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
411 |
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
|
412 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
413 |
[author:] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
414 |
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
|
415 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
416 |
[instance variables:] |
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 |
[class variables:] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
419 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
420 |
[see also:] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
421 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
422 |
" |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
423 |
! ! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
424 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
425 |
!Diff3::Chunk methodsFor:'accessing'! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
426 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
427 |
correctForSkewFrom: smallerChunk to: biggerChunk |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
428 |
"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
|
429 |
| headSize tailSize | |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
430 |
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
|
431 |
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
|
432 |
offset := offset - headSize. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
433 |
length := length + headSize + tailSize. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
434 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
435 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
436 |
destructiveMergeWith: aChunk |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
437 |
| newLastIndex | |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
438 |
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
|
439 |
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
|
440 |
length := newLastIndex - offset + 1. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
441 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
442 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
443 |
lastIndex |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
444 |
"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
|
445 |
^ offset + length - 1 |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
446 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
447 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
448 |
length |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
449 |
^ length |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
450 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
451 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
452 |
length: anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
453 |
length := anObject |
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 |
offset |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
457 |
^ offset |
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 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
460 |
offset: anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
461 |
offset := anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
462 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
463 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
464 |
side |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
465 |
^ side |
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 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
468 |
side: anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
469 |
side := anObject |
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 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
472 |
!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
|
473 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
474 |
= otherChunk |
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 |
^ (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
|
477 |
[(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
|
478 |
[(self length = otherChunk length)]] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
479 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
480 |
"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
|
481 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
482 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
483 |
accept: aVisitor |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
484 |
^ 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
|
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 |
extractFrom: aCollection |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
488 |
"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
|
489 |
^ 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
|
490 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
491 |
|
12218
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
492 |
extractFrom: aCollection offset: lineOffset |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
493 |
"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
|
494 |
^ aCollection at: offset + lineOffset - 1 |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
495 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
496 |
"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
|
497 |
! |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
498 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
499 |
extractFromDiff: diff |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
500 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
501 |
^self extractFrom: (diff fileAt: side) |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
502 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
503 |
"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
|
504 |
! |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
505 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
506 |
extractResolution |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
507 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
508 |
side == #left ifTrue:[ ^ #MergedUsingA ]. |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
509 |
side == #original ifTrue:[ ^ #MergedUsingBase ]. |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
510 |
side == #right ifTrue:[ ^ #MergedUsingB ]. |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
511 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
512 |
self error:'Should not be reached' |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
513 |
|
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
514 |
"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
|
515 |
! |
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
516 |
|
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
517 |
printOn: aStream |
12202
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
518 |
aStream nextPut: $(. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
519 |
super printOn: aStream. |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
520 |
aStream |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
521 |
nextPutAll: ' side: '; |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
522 |
nextPutAll: side printString; |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
523 |
nextPutAll: ' off: '; |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
524 |
nextPutAll: offset printString; |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
525 |
nextPutAll: ' len: '; |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
526 |
nextPutAll: length printString; |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
527 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
528 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
529 |
nextPut: $). |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
530 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
531 |
"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
|
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 |
!Diff3::Chunk methodsFor:'comparing'! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
535 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
536 |
< aDiffChunk |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
537 |
"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
|
538 |
^ self offset < aDiffChunk offset |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
539 |
! ! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
540 |
|
12190
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
541 |
!Diff3::Chunk methodsFor:'testing'! |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
542 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
543 |
isChunk |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
544 |
^true |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
545 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
546 |
"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
|
547 |
! |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
548 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
549 |
isConflict |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
550 |
^false |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
551 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
552 |
"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
|
553 |
! ! |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
554 |
|
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
555 |
!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
|
556 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
557 |
copyright |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
558 |
" |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
559 |
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
|
560 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
561 |
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
|
562 |
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
|
563 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
564 |
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
|
565 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
566 |
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
|
567 |
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
|
568 |
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
|
569 |
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
|
570 |
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
|
571 |
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
|
572 |
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
|
573 |
conditions: |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
574 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
575 |
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
|
576 |
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
|
577 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
578 |
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
|
579 |
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
|
580 |
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
|
581 |
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
|
582 |
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
|
583 |
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
|
584 |
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
|
585 |
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
|
586 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
587 |
" |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
588 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
589 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
590 |
documentation |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
591 |
" |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
592 |
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
|
593 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
594 |
Instance Variables |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
595 |
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
|
596 |
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
|
597 |
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
|
598 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
599 |
[author:] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
600 |
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
|
601 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
602 |
[instance variables:] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
603 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
604 |
[class variables:] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
605 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
606 |
[see also:] |
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 |
" |
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 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
611 |
!Diff3::Conflict methodsFor:'accessing'! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
612 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
613 |
left |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
614 |
^ left |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
615 |
! |
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 |
left: anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
618 |
left := anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
619 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
620 |
|
12202
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
621 |
leftAt: index |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
622 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
623 |
^(index between: 1 and: left size) ifTrue:[ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
624 |
left at: index |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
625 |
] ifFalse:[ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
626 |
nil |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
627 |
] |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
628 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
629 |
"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
|
630 |
! |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
631 |
|
12190
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
632 |
length |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
633 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
634 |
^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
|
635 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
636 |
"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
|
637 |
! |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
638 |
|
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
639 |
original |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
640 |
^ original |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
641 |
! |
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 |
original: anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
644 |
original := anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
645 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
646 |
|
12202
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
647 |
originalAt: index |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
648 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
649 |
^(index between: 1 and: original size) ifTrue:[ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
650 |
original at: index |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
651 |
] ifFalse:[ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
652 |
nil |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
653 |
] |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
654 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
655 |
"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
|
656 |
! |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
657 |
|
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
658 |
right |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
659 |
^ right |
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 |
right: anObject |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
663 |
right := anObject |
12202
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
664 |
! |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
665 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
666 |
rightAt: index |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
667 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
668 |
^(index between: 1 and: right size) ifTrue:[ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
669 |
right at: index |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
670 |
] ifFalse:[ |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
671 |
nil |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
672 |
] |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
673 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
674 |
"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
|
675 |
! ! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
676 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
677 |
!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
|
678 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
679 |
= otherConflict |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
680 |
^ (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
|
681 |
[(left = otherConflict left) and: |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
682 |
[(original = otherConflict original) and: |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
683 |
[(right = otherConflict right)]]] |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
684 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
685 |
"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
|
686 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
687 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
688 |
accept: aVisitor |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
689 |
^ 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
|
690 |
! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
691 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
692 |
printOn: aStream |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
693 |
aStream |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
694 |
nextPut: $(; |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
695 |
nextPutAll: self class name; |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
696 |
nextPutAll: ' new left: '. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
697 |
left printOn: aStream. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
698 |
aStream nextPutAll: '; original: '. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
699 |
original printOn: aStream. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
700 |
aStream nextPutAll: '; right: '. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
701 |
right printOn: aStream. |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
702 |
aStream nextPut: $). |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
703 |
! ! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
704 |
|
12190
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
705 |
!Diff3::Conflict methodsFor:'testing'! |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
706 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
707 |
isChunk |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
708 |
^false |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
709 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
710 |
"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
|
711 |
! |
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 |
isConflict |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
714 |
^true |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
715 |
|
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
716 |
"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
|
717 |
! |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
718 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
719 |
isInsertionInLeft |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
720 |
^left length > 0 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
721 |
and:[original length <= 0 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
722 |
and:[right length <= 0]] |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
723 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
724 |
"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
|
725 |
! |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
726 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
727 |
isInsertionInOriginal |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
728 |
^original length > 0 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
729 |
and:[left length <= 0 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
730 |
and:[right length <= 0]] |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
731 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
732 |
"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
|
733 |
! |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
734 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
735 |
isInsertionInRight |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
736 |
^right length > 0 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
737 |
and:[original length <= 0 |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
738 |
and:[left length <= 0]] |
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
739 |
|
eaa1f6cb6ce8
Improvements in merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12190
diff
changeset
|
740 |
"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
|
741 |
! ! |
2a77dea2eceb
Improvements in Diff3CodeiView2 - now it highlights differences
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12181
diff
changeset
|
742 |
|
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
743 |
!Diff3 class methodsFor:'documentation'! |
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
744 |
|
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
745 |
version_SVN |
12218
8b88c30fb1e7
Improvements in text merge tool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12202
diff
changeset
|
746 |
^ '$Id: Diff3.st 7965 2012-04-04 00:09:32Z vranyj1 $' |
12181
c6d6a0a83faa
Integrated Diff2 and Diff3 written by Tony Garnock-Jones
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
747 |
! ! |