︙ | | | ︙ | |
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
|
displayOnePatch $top $leftLines $rightLines $leftLine $rightLine
}
close $ch
}
# Get a CVS revision
proc execCvsUpdate {filename outfile args} {
set old ""
set dir [file dirname $filename]
if {$dir != "."} {
set old [pwd]
set outfile [file join [pwd] $outfile]
cd $dir
set filename [file tail $filename]
}
set cmd $args
set cmd [linsert $args 0 exec cvs -z3 update -p]
lappend cmd [file nativename $filename] > $outfile
if {[catch {eval $cmd} res]} {
if {![string match "*Checking out*" $res]} {
tk_messageBox -icon error -title "CVS error" -message $res
}
}
if {$old != ""} {
cd $old
}
}
# Prepare for RCS/CVS diff. Checkout copies of the versions needed.
proc prepareRCS {top} {
global Pref
set revs {}
|
|
|
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
|
displayOnePatch $top $leftLines $rightLines $leftLine $rightLine
}
close $ch
}
# Get a CVS revision
proc getCvsRev {filename outfile {rev {}}} {
set old ""
set dir [file dirname $filename]
if {$dir != "."} {
set old [pwd]
set outfile [file join [pwd] $outfile]
cd $dir
set filename [file tail $filename]
}
set cmd [list exec cvs -z3 update -p]
if {$rev != ""} {
lappend cmd -r $rev
}
lappend cmd [file nativename $filename] > $outfile
if {[catch {eval $cmd} res]} {
if {![string match "*Checking out*" $res]} {
tk_messageBox -icon error -title "CVS error" -message $res
}
}
if {$old != ""} {
cd $old
}
}
# Get an RCS revision
proc getRcsRev {filename outfile {rev {}}} {
catch {exec co -p$rev [file nativename $filename] \
> $outfile}
}
# Get a ClearCase revision
proc getCtRev {filename outfile stream rev} {
set filerev [file nativename $filename@@[file join $stream $rev]]
if {[catch {exec cleartool get -to $outfile $filerev} msg]} {
tk_messageBox -icon error -title "Cleartool error" -message $msg
return
}
}
# Prepare for RCS/CVS diff. Checkout copies of the versions needed.
proc prepareRCS {top} {
global Pref
set revs {}
|
︙ | | | ︙ | |
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
|
switch [llength $revs] {
0 {
# Compare local file with latest version.
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightLabel) $::diff($top,RevFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
if {$::diff($top,mode) eq "CVS"} {
set ::diff($top,leftLabel) "$::diff($top,RevFile) (CVS)"
execCvsUpdate $::diff($top,RevFile) $::diff($top,leftFile)
} else {
set ::diff($top,leftLabel) "$::diff($top,RevFile) (RCS)"
catch {exec co -p [file nativename $::diff($top,RevFile)] \
> $::diff($top,leftFile)}
}
}
1 {
# Compare local file with specified version.
set r [lindex $revs 0]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightLabel) $::diff($top,RevFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
if {$::diff($top,mode) eq "CVS"} {
set ::diff($top,leftLabel) "$::diff($top,RevFile) (CVS $r)"
execCvsUpdate $::diff($top,RevFile) $::diff($top,leftFile) -r $r
} else {
set ::diff($top,leftLabel) "$::diff($top,RevFile) (RCS $r)"
catch {exec co -p$r [file nativename $::diff($top,RevFile)] \
> $::diff($top,leftFile)}
}
}
default {
# Compare the two specified versions.
set r1 [lindex $revs 0]
set r2 [lindex $revs 1]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightFile) [tmpFile]
if {$::diff($top,mode) eq "CVS"} {
set ::diff($top,leftLabel) "$::diff($top,RevFile) (CVS $r1)"
set ::diff($top,rightLabel) "$::diff($top,RevFile) (CVS $r2)"
execCvsUpdate $::diff($top,RevFile) $::diff($top,leftFile) -r $r1
execCvsUpdate $::diff($top,RevFile) $::diff($top,rightFile) -r $r2
} else {
set ::diff($top,leftLabel) "$::diff($top,RevFile) (RCS $r1)"
set ::diff($top,rightLabel) "$::diff($top,RevFile) (RCS $r2)"
catch {exec co -p$r1 [file nativename $::diff($top,RevFile)] \
> $::diff($top,leftFile)}
catch {exec co -p$r2 [file nativename $::diff($top,RevFile)] \
> $::diff($top,rightFile)}
}
}
}
# Make sure labels are updated before processing starts
update idletasks
}
# Clean up after a RCS/CVS/CT diff.
proc cleanupRCS {top} {
global Pref
clearTmp $::diff($top,rightFile) $::diff($top,leftFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
set ::diff($top,leftFile) $::diff($top,RevFile)
}
|
|
|
>
|
<
<
|
|
|
>
|
<
<
|
|
|
|
>
|
|
<
<
<
|
<
|
|
|
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
|
switch [llength $revs] {
0 {
# Compare local file with latest version.
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightLabel) $::diff($top,RevFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
set type $::diff($top,modetype)
set ::diff($top,leftLabel) "$::diff($top,RevFile) ($type)"
if {$type eq "CVS"} {
getCvsRev $::diff($top,RevFile) $::diff($top,leftFile)
} else {
getRcsRev $::diff($top,RevFile) $::diff($top,leftFile)
}
}
1 {
# Compare local file with specified version.
set r [lindex $revs 0]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightLabel) $::diff($top,RevFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
set type $::diff($top,modetype)
set ::diff($top,leftLabel) "$::diff($top,RevFile) ($type $r)"
if {$type eq "CVS"} {
getCvsRev $::diff($top,RevFile) $::diff($top,leftFile) $r
} else {
getRcsRev $::diff($top,RevFile) $::diff($top,leftFile) $r
}
}
default {
# Compare the two specified versions.
set r1 [lindex $revs 0]
set r2 [lindex $revs 1]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightFile) [tmpFile]
set type $::diff($top,modetype)
set ::diff($top,leftLabel) "$::diff($top,RevFile) ($type $r1)"
set ::diff($top,rightLabel) "$::diff($top,RevFile) ($type $r2)"
if {$type eq "CVS"} {
getCvsRev $::diff($top,RevFile) $::diff($top,leftFile) $r1
getCvsRev $::diff($top,RevFile) $::diff($top,rightFile) $r2
} else {
getRcsRev $::diff($top,RevFile) $::diff($top,leftFile) $r1
getRcsRev $::diff($top,RevFile) $::diff($top,rightFile) $r2
}
}
}
# Make sure labels are updated before processing starts
update idletasks
}
# Clean up after a RCS/CVS/CT diff.
proc cleanupRev {top} {
global Pref
clearTmp $::diff($top,rightFile) $::diff($top,leftFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
set ::diff($top,leftFile) $::diff($top,RevFile)
}
|
︙ | | | ︙ | |
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
|
set r [lindex $revs 0]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightLabel) $::diff($top,RevFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
set ::diff($top,leftLabel) "$::diff($top,RevFile) (CT $r)"
set filerev [file nativename \
$::diff($top,RevFile)@@[file join $stream $r]]
if {[catch {exec cleartool get -to $::diff($top,leftFile) \
$filerev} msg]} {
puts "Cleartool error: $msg"
return
}
}
default {
# Compare the two specified versions.
set r1 [lindex $revs 0]
set r2 [lindex $revs 1]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightFile) [tmpFile]
set ::diff($top,leftLabel) "$::diff($top,RevFile) (CT $r1)"
set ::diff($top,rightLabel) "$::diff($top,RevFile) (CT $r2)"
set filerev1 [file nativename \
$::diff($top,RevFile)@@[file join $stream $r1]]
set filerev2 [file nativename \
$::diff($top,RevFile)@@[file join $stream $r2]]
if {[catch {exec cleartool get -to $::diff($top,leftFile) \
$filerev1} msg]} {
puts "Cleartool error: $msg"
return
}
if {[catch {exec cleartool get -to $::diff($top,rightFile) \
$filerev2} msg]} {
puts "Cleartool error: $msg"
return
}
}
}
}
# Prepare for a diff by creating needed temporary files
proc prepareFiles {top} {
set ::diff($top,cleanup) ""
if {$::diff($top,mode) eq "RCS" || $::diff($top,mode) eq "CVS"} {
prepareRCS $top
set ::diff($top,cleanup) "RCS"
} elseif {$::diff($top,mode) eq "CT"} {
prepareClearCase $top
set ::diff($top,cleanup) "CT"
} elseif {[string match "conflict*" $::diff($top,mode)]} {
prepareConflict $top
set ::diff($top,cleanup) "conflict"
}
}
# Clean up after a diff
proc cleanupFiles {top} {
switch $::diff($top,cleanup) {
"RCS" - "CT" {cleanupRCS $top}
"conflict" {cleanupConflict $top}
}
}
# Main diff function.
proc doDiff {top} {
global Pref
global doingLine1 doingLine2
|
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
|
>
|
<
<
<
<
|
>
|
|
|
|
|
>
|
|
|
|
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
|
set r [lindex $revs 0]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightLabel) $::diff($top,RevFile)
set ::diff($top,rightFile) $::diff($top,RevFile)
set ::diff($top,leftLabel) "$::diff($top,RevFile) (CT $r)"
getCtRev $::diff($top,RevFile) $::diff($top,leftFile) $stream $r
}
default {
# Compare the two specified versions.
set r1 [lindex $revs 0]
set r2 [lindex $revs 1]
set ::diff($top,leftFile) [tmpFile]
set ::diff($top,rightFile) [tmpFile]
set ::diff($top,leftLabel) "$::diff($top,RevFile) (CT $r1)"
set ::diff($top,rightLabel) "$::diff($top,RevFile) (CT $r2)"
getCtRev $::diff($top,RevFile) $::diff($top,leftFile) $stream $r1
getCtRev $::diff($top,RevFile) $::diff($top,rightFile) $stream $r2
}
}
}
# Prepare for a diff by creating needed temporary files
proc prepareFiles {top} {
set ::diff($top,cleanup) ""
if {$::diff($top,mode) eq "rev"} {
if {$::diff($top,modetype) eq "RCS" || $::diff($top,modetype) eq "CVS"} {
prepareRCS $top
set ::diff($top,cleanup) "rev"
} elseif {$::diff($top,modetype) eq "CT"} {
prepareClearCase $top
set ::diff($top,cleanup) "rev"
}
} elseif {"conflict" eq $::diff($top,mode)} {
prepareConflict $top
set ::diff($top,cleanup) "conflict"
}
}
# Clean up after a diff
proc cleanupFiles {top} {
switch $::diff($top,cleanup) {
"rev" {cleanupRev $top}
"conflict" {cleanupConflict $top}
}
}
# Main diff function.
proc doDiff {top} {
global Pref
global doingLine1 doingLine2
|
︙ | | | ︙ | |
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
|
set differr [catch {eval DiffUtil::diffFiles $opts \
\$::diff($top,leftFile) \$::diff($top,rightFile)} diffres]
# In conflict mode we can use the diff information collected when
# parsing the conflict file. This makes sure the blocks in the conflict
# file become change-blocks during merge.
if {$::diff($top,mode) eq "conflictPure"} {
set diffres $::diff($top,conflictDiff)
}
if {$differr != 0} {
$::widgets($top,wDiff1) insert end $diffres
normalCursor $top
return
|
|
|
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
|
set differr [catch {eval DiffUtil::diffFiles $opts \
\$::diff($top,leftFile) \$::diff($top,rightFile)} diffres]
# In conflict mode we can use the diff information collected when
# parsing the conflict file. This makes sure the blocks in the conflict
# file become change-blocks during merge.
if {$::diff($top,mode) eq "conflict" && $::diff($top,modetype) eq "Pure"} {
set diffres $::diff($top,conflictDiff)
}
if {$differr != 0} {
$::widgets($top,wDiff1) insert end $diffres
normalCursor $top
return
|
︙ | | | ︙ | |
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
|
normalCursor $top
showDiff $top 0
if {$::widgets($top,eqLabel) eq "!"} {
set ::widgets($top,eqLabel) " "
}
cleanupFiles $top
if {[string match "conflict*" $::diff($top,mode)]} {
if {$::widgets($top,eqLabel) != "="} {
makeMergeWin $top
}
}
if {$::diff($top,printFile) != ""} {
after idle "doPrint $top 1 ; cleanupAndExit all"
}
|
|
|
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
|
normalCursor $top
showDiff $top 0
if {$::widgets($top,eqLabel) eq "!"} {
set ::widgets($top,eqLabel) " "
}
cleanupFiles $top
if {"conflict" eq $::diff($top,mode)} {
if {$::widgets($top,eqLabel) != "="} {
makeMergeWin $top
}
}
if {$::diff($top,printFile) != ""} {
after idle "doPrint $top 1 ; cleanupAndExit all"
}
|
︙ | | | ︙ | |
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
|
}
}
proc openConflict {top} {
global Pref
if {[doOpenRight $top]} {
set ::diff($top,mode) "conflict"
set Pref(ignore) " "
set Pref(nocase) 0
set ::diff($top,conflictFile) $::diff($top,rightFile)
set ::diff($top,mergeFile) ""
doDiff $top
}
}
|
>
|
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
|
}
}
proc openConflict {top} {
global Pref
if {[doOpenRight $top]} {
set ::diff($top,mode) "conflict"
set ::diff($top,modetype) ""
set Pref(ignore) " "
set Pref(nocase) 0
set ::diff($top,conflictFile) $::diff($top,rightFile)
set ::diff($top,mergeFile) ""
doDiff $top
}
}
|
︙ | | | ︙ | |
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
|
set ::diff($top,patchFile) $::diff($top,leftFile)
doDiff $top
}
}
proc openRCS {top} {
if {[doOpenRight $top]} {
set ::diff($top,mode) "RCS"
set ::diff($top,RevFile) $::diff($top,rightFile)
set ::diff($top,leftLabel) "RCS"
set ::diff($top,leftOK) 0
doDiff $top
}
}
proc openCVS {top} {
if {[doOpenRight $top]} {
set ::diff($top,mode) "CVS"
set ::diff($top,RevFile) $::diff($top,rightFile)
set ::diff($top,leftLabel) "CVS"
set ::diff($top,leftOK) 0
doDiff $top
}
}
|
>
|
>
|
|
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
|
set ::diff($top,patchFile) $::diff($top,leftFile)
doDiff $top
}
}
proc openRCS {top} {
if {[doOpenRight $top]} {
set ::diff($top,mode) "rev"
set ::diff($top,modetype) "RCS"
set ::diff($top,RevFile) $::diff($top,rightFile)
set ::diff($top,leftLabel) "RCS"
set ::diff($top,leftOK) 0
doDiff $top
}
}
proc openCVS {top} {
if {[doOpenRight $top]} {
set ::diff($top,mode) "rev"
set ::diff($top,modetype) "CVS"
set ::diff($top,RevFile) $::diff($top,rightFile)
set ::diff($top,leftLabel) "CVS"
set ::diff($top,leftOK) 0
doDiff $top
}
}
|
︙ | | | ︙ | |
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
|
set leftMergeData {}
set rightMergeData {}
if {![info exists ::diff($top,changes)]} {
set ::diff($top,changes) {}
}
if {$::diff($top,mode) eq "RCS" || $::diff($top,mode) eq "CVS"} {
prepareRCS $top
} elseif {[string match "conflict*" $::diff($top,mode)]} {
prepareConflict $top
}
set ch1 [open $::diff($top,leftFile) r]
set ch2 [open $::diff($top,rightFile) r]
set doingLine1 1
set doingLine2 1
|
|
>
|
>
|
|
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
|
set leftMergeData {}
set rightMergeData {}
if {![info exists ::diff($top,changes)]} {
set ::diff($top,changes) {}
}
if {$::diff($top,mode) eq "rev"} {
if {$::diff($top,modetype) eq "RCS" || $::diff($top,modetype) eq "CVS"} {
prepareRCS $top
}
} elseif {"conflict" eq $::diff($top,mode)} {
prepareConflict $top
}
set ch1 [open $::diff($top,leftFile) r]
set ch2 [open $::diff($top,rightFile) r]
set doingLine1 1
set doingLine2 1
|
︙ | | | ︙ | |
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
|
}
lappend leftMergeData $data1
lappend rightMergeData $data2
close $ch1
close $ch2
if {$::diff($top,mode) eq "RCS" || $::diff($top,mode) eq "CVS"} {
cleanupRCS $top
} elseif {[string match "conflict*" $::diff($top,mode)]} {
cleanupConflict $top
}
}
# Fill up the merge window with the initial version of merged files.
proc fillMergeWindow {top} {
global mergeSelection leftMergeData rightMergeData curMergeSel curMerge
|
|
>
|
>
|
|
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
|
}
lappend leftMergeData $data1
lappend rightMergeData $data2
close $ch1
close $ch2
if {$::diff($top,mode) eq "rev"} {
if {$::diff($top,modetype) eq "RCS" || $::diff($top,modetype) eq "CVS"} {
cleanupRev $top
}
} elseif {"conflict" eq $::diff($top,mode)} {
cleanupConflict $top
}
}
# Fill up the merge window with the initial version of merged files.
proc fillMergeWindow {top} {
global mergeSelection leftMergeData rightMergeData curMergeSel curMerge
|
︙ | | | ︙ | |
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
|
# Save the merge result.
proc saveMerge {top} {
set w $top.merge.t
if {$::diff($top,mergeFile) eq ""} {
set apa no
if {[string match "conflict*" $::diff($top,mode)]} {
set apa [tk_messageBox -parent $top.merge -icon question \
-title "Save merge file" -type yesno -message \
"Do you want to overwrite the original conflict file?"]
}
if {$apa == "yes"} {
set ::diff($top,mergeFile) $::diff($top,conflictFile)
} else {
|
|
|
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
|
# Save the merge result.
proc saveMerge {top} {
set w $top.merge.t
if {$::diff($top,mergeFile) eq ""} {
set apa no
if {"conflict" eq $::diff($top,mode)} {
set apa [tk_messageBox -parent $top.merge -icon question \
-title "Save merge file" -type yesno -message \
"Do you want to overwrite the original conflict file?"]
}
if {$apa == "yes"} {
set ::diff($top,mergeFile) $::diff($top,conflictFile)
} else {
|
︙ | | | ︙ | |
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
|
wm protocol $w WM_DELETE_WINDOW "closeMerge $top"
grid $w.f.rb1 $w.f.rb2 $w.f.rb3 $w.f.rb4 x $w.f.b1 $w.f.b2 x \
$w.f.bl $w.f.br x x x $w.f.bs $w.f.bq
grid columnconfigure $w.f {4 7 10 12} -minsize 10
grid columnconfigure $w.f 10 -weight 1
if {[string match conflict* $::diff($top,mode)]} {
checkbutton $w.f.bm -text "Pure" -variable diff($top,mode) \
-onvalue "conflictPure" -offvalue "conflict" -command {doDiff}
grid $w.f.bm -row 0 -column 11
}
text $w.t -width 80 -height 20 -xscrollcommand "$w.sbx set" \
-yscrollcommand "$w.sby set" -font myfont
scrollbar $w.sbx -orient horizontal -command "$w.t xview"
scrollbar $w.sby -orient vertical -command "$w.t yview"
|
|
|
|
|
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
|
wm protocol $w WM_DELETE_WINDOW "closeMerge $top"
grid $w.f.rb1 $w.f.rb2 $w.f.rb3 $w.f.rb4 x $w.f.b1 $w.f.b2 x \
$w.f.bl $w.f.br x x x $w.f.bs $w.f.bq
grid columnconfigure $w.f {4 7 10 12} -minsize 10
grid columnconfigure $w.f 10 -weight 1
if {"conflict" eq $::diff($top,mode)} {
checkbutton $w.f.bm -text "Pure" -variable diff($top,modetype) \
-onvalue "Pure" -offvalue "" -command {doDiff}
grid $w.f.bm -row 0 -column 11
}
text $w.t -width 80 -height 20 -xscrollcommand "$w.sbx set" \
-yscrollcommand "$w.sby set" -font myfont
scrollbar $w.sbx -orient horizontal -command "$w.t xview"
scrollbar $w.sby -orient vertical -command "$w.t yview"
|
︙ | | | ︙ | |
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
|
after idle [list doDiff $top]
return
}
if {!$autobrowse} {
# Check for revision control
# RCS
if {[llength [glob -nocomplain [file join $fulldir RCS]]]} {
set ::diff($top,mode) "RCS"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "RCS"
if {$noautodiff} {
enableRedo $top
} else {
after idle [list doDiff $top]
}
return
}
# CVS
if {[llength [glob -nocomplain [file join $fulldir CVS]]]} {
set ::diff($top,mode) "CVS"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "CVS"
if {$noautodiff} {
enableRedo $top
} else {
after idle [list doDiff $top]
}
return
}
# ClearCase
if {[auto_execok cleartool] != ""} {
if {![catch {exec cleartool pwv -s} view] && \
$view != "** NONE **"} {
set ::diff($top,mode) "CT"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "CT"
if {$noautodiff} {
|
>
|
>
|
>
|
|
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
|
after idle [list doDiff $top]
return
}
if {!$autobrowse} {
# Check for revision control
# RCS
if {[llength [glob -nocomplain [file join $fulldir RCS]]]} {
set ::diff($top,mode) "rev"
set ::diff($top,modetype) "RCS"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "RCS"
if {$noautodiff} {
enableRedo $top
} else {
after idle [list doDiff $top]
}
return
}
# CVS
if {[llength [glob -nocomplain [file join $fulldir CVS]]]} {
set ::diff($top,mode) "rev"
set ::diff($top,modetype) "CVS"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "CVS"
if {$noautodiff} {
enableRedo $top
} else {
after idle [list doDiff $top]
}
return
}
# ClearCase
if {[auto_execok cleartool] != ""} {
if {![catch {exec cleartool pwv -s} view] && \
$view != "** NONE **"} {
set ::diff($top,mode) "rev"
set ::diff($top,modetype) "CT"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "CT"
if {$noautodiff} {
|
︙ | | | ︙ | |
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
|
[llength [glob -nocomplain [file join $fulldir CVS]]]} {
if {[tk_messageBox -title Diff -icon question \
-message "Do CVS diff?" -type yesno] eq "yes"} {
set fulldir $::diff($top,leftDir)
set fullname $::diff($top,leftFile)
set ::diff($top,leftOK) 0
set ::diff($top,mode) "CVS"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "CVS"
after idle [list doDiff $top]
|
>
|
|
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
|
[llength [glob -nocomplain [file join $fulldir CVS]]]} {
if {[tk_messageBox -title Diff -icon question \
-message "Do CVS diff?" -type yesno] eq "yes"} {
set fulldir $::diff($top,leftDir)
set fullname $::diff($top,leftFile)
set ::diff($top,leftOK) 0
set ::diff($top,mode) "rev"
set ::diff($top,modetype) "CVS"
set ::diff($top,rightDir) $fulldir
set ::diff($top,RevFile) $fullname
set ::diff($top,rightLabel) $fullname
set ::diff($top,rightFile) $fullname
set ::diff($top,rightOK) 1
set ::diff($top,leftLabel) "CVS"
after idle [list doDiff $top]
|
︙ | | | ︙ | |