4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
|
# Figure out if we start in a diff or dirdiff window.
set len [llength $files]
if {$len == 0 && $dodir} {
set dirdiff(leftDir) [pwd]
set dirdiff(rightDir) [pwd]
return [makeDirDiffWin]
}
if {$len == 1} {
set fullname [lindex $files 0]
if {[FileIsDirectory $fullname 1]} {
set dirdiff(leftDir) $fullname
set dirdiff(rightDir) $dirdiff(leftDir)
# Experiment to support -r for directory diff
# Currently only Fossil is supported
if {[info exists opts(doptrev1)] && $opts(doptrev1) ne ""} {
if {[detectRevSystem $fullname] eq "FOSSIL"} {
set revs [list $opts(doptrev1)]
if {[info exists opts(doptrev2)] && $opts(doptrev2) ne ""} {
lappend revs $opts(doptrev2)
}
set revs [eskil::rev::FOSSIL::ParseRevs $fullname $revs]
set rev1 [lindex $revs 0]
set rev2 [lindex $revs 1]
set d1 [vcsvfs::fossil::mount $fullname $rev1]
set dirdiff(leftDir) $d1
if {$rev2 ne ""} {
set d2 [vcsvfs::fossil::mount $fullname $rev2]
set dirdiff(rightDir) $d2
}
}
}
return [makeDirDiffWin]
}
} elseif {$len >= 2} {
set fullname1 [lindex $files 0]
set fullname2 [lindex $files 1]
if {[FileIsDirectory $fullname1 1] && [FileIsDirectory $fullname2 1]} {
set dirdiff(leftDir) $fullname1
set dirdiff(rightDir) $fullname2
return [makeDirDiffWin]
}
}
# Ok, we have a normal diff
set top [makeDiffWin]
update
# Copy the previously collected options
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
|
# Figure out if we start in a diff or dirdiff window.
set len [llength $files]
if {$len == 0 && $dodir} {
set dirdiff(leftDir) [pwd]
set dirdiff(rightDir) [pwd]
return [makeDirDiffWin opts]
}
if {$len == 1} {
set fullname [lindex $files 0]
if {[FileIsDirectory $fullname 1]} {
set dirdiff(leftDir) $fullname
set dirdiff(rightDir) $dirdiff(leftDir)
return [makeDirDiffWin opts]
}
} elseif {$len >= 2} {
set fullname1 [lindex $files 0]
set fullname2 [lindex $files 1]
if {[FileIsDirectory $fullname1 1] && [FileIsDirectory $fullname2 1]} {
set dirdiff(leftDir) $fullname1
set dirdiff(rightDir) $fullname2
return [makeDirDiffWin opts]
}
}
# Ok, we have a normal diff
set top [makeDiffWin]
update
# Copy the previously collected options
|