︙ | | | ︙ | |
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
namespace eval eskil::rev::CVS {}
namespace eval eskil::rev::RCS {}
namespace eval eskil::rev::CT {}
namespace eval eskil::rev::GIT {}
namespace eval eskil::rev::SVN {}
namespace eval eskil::rev::HG {}
proc eskil::rev::CVS::detect {file} {
set dir [file dirname $file]
if {[file isdirectory [file join $dir CVS]]} {
if {[auto_execok cvs] ne ""} {
return 1
}
|
>
|
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
namespace eval eskil::rev::CVS {}
namespace eval eskil::rev::RCS {}
namespace eval eskil::rev::CT {}
namespace eval eskil::rev::GIT {}
namespace eval eskil::rev::SVN {}
namespace eval eskil::rev::HG {}
namespace eval eskil::rev::BZR {}
proc eskil::rev::CVS::detect {file} {
set dir [file dirname $file]
if {[file isdirectory [file join $dir CVS]]} {
if {[auto_execok cvs] ne ""} {
return 1
}
|
︙ | | | ︙ | |
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# HG, detect two steps down. Could be improved. FIXA
if {[file isdirectory [file join $dir .hg]] ||
[file isdirectory [file join $dir .. .hg]] ||
[file isdirectory [file join $dir .. .. .hg]]} {
if {[auto_execok hg] ne ""} {
return 1
}
}
return 0
}
proc eskil::rev::RCS::detect {file} {
set dir [file dirname $file]
if {[file isdirectory [file join $dir RCS]] || [file exists $file,v]} {
|
>
>
>
>
>
>
>
>
>
>
>
>
>
|
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# HG, detect two steps down. Could be improved. FIXA
if {[file isdirectory [file join $dir .hg]] ||
[file isdirectory [file join $dir .. .hg]] ||
[file isdirectory [file join $dir .. .. .hg]]} {
if {[auto_execok hg] ne ""} {
return 1
}
}
return 0
}
proc eskil::rev::BZR::detect {file} {
set dir [file dirname $file]
# HG, detect two steps down. Could be improved. FIXA
if {[file isdirectory [file join $dir .bzr]] ||
[file isdirectory [file join $dir .. .bzr]] ||
[file isdirectory [file join $dir .. .. .bzr]]} {
if {[auto_execok bzr] ne ""} {
return 1
}
}
return 0
}
proc eskil::rev::RCS::detect {file} {
set dir [file dirname $file]
if {[file isdirectory [file join $dir RCS]] || [file exists $file,v]} {
|
︙ | | | ︙ | |
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
}
}
if {$old != ""} {
cd $old
}
}
# Get an RCS revision
proc eskil::rev::RCS::get {filename outfile {rev {}}} {
catch {exec co -p$rev [file nativename $filename] \
> $outfile}
}
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
}
}
if {$old != ""} {
cd $old
}
}
# Get a BZR revision
proc eskil::rev::BZR::get {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 bzr cat]
if {$rev != ""} {
lappend cmd -r $rev
}
lappend cmd [file nativename $filename] > $outfile
if {[catch {eval $cmd} res]} {
if {$res ne ""} {
tk_messageBox -icon error -title "BZR error" -message $res
}
}
if {$old != ""} {
cd $old
}
}
# Get an RCS revision
proc eskil::rev::RCS::get {filename outfile {rev {}}} {
catch {exec co -p$rev [file nativename $filename] \
> $outfile}
}
|
︙ | | | ︙ | |
308
309
310
311
312
313
314
315
316
317
318
319
320
321
|
}
return $result
}
# Figure out HG revision from arguments
proc eskil::rev::HG::ParseRevs {filename revs} {
set result ""
foreach rev $revs {
# No parsing yet...
lappend result $rev
}
return $result
}
|
>
>
>
>
>
>
>
>
>
>
|
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
|
}
return $result
}
# Figure out HG revision from arguments
proc eskil::rev::HG::ParseRevs {filename revs} {
set result ""
foreach rev $revs {
# No parsing yet...
lappend result $rev
}
return $result
}
# Figure out BZR revision from arguments
proc eskil::rev::BZR::ParseRevs {filename revs} {
set result ""
foreach rev $revs {
# No parsing yet...
lappend result $rev
}
return $result
}
|
︙ | | | ︙ | |
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
|
if {![file exists $file]} { return "" }
if {[info exists cache($file)]} {
return $cache($file)
}
set searchlist [list $preference GIT HG]
foreach ns [namespace children eskil::rev] {
lappend searchlist [namespace tail $ns]
}
foreach rev $searchlist {
set result [eskil::rev::${rev}::detect $file]
if {$result} {
set cache($file) $rev
|
|
|
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
|
if {![file exists $file]} { return "" }
if {[info exists cache($file)]} {
return $cache($file)
}
set searchlist [list $preference GIT HG BZR]
foreach ns [namespace children eskil::rev] {
lappend searchlist [namespace tail $ns]
}
foreach rev $searchlist {
set result [eskil::rev::${rev}::detect $file]
if {$result} {
set cache($file) $rev
|
︙ | | | ︙ | |