1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
|
tk_messageBox -icon error -title "Cleartool error" -message $msg
return
}
}
# Figure out ClearCase revision from arguments
proc ParseCtRevs {filename stream rev} {
# If the argument is of the form "name/rev", look for a fitting one
if {![string is digit $rev] && [regexp {^[^/.]+(/\d+)?$} $rev]} {
if {[catch {exec cleartool lshistory -short $filename} allrevs]} {#
tk_messageBox -icon error -title "Cleartool error" \
-message $allrevs
return
}
set allrevs [split $allrevs \n]
|
>
>
>
>
>
>
>
|
|
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
|
tk_messageBox -icon error -title "Cleartool error" -message $msg
return
}
}
# Figure out ClearCase revision from arguments
proc ParseCtRevs {filename stream rev} {
# A negative version number is offset from latest.
set offset 0
set tail [file tail $rev]
if {[string is integer -strict $tail] && $tail < 0} {
set offset $tail
set rev [file dirname $rev]
}
# If the argument is of the form "name/rev", look for a fitting one
if {![string is integer $rev] && [regexp {^[^/.]+(/\d+)?$} $rev]} {
if {[catch {exec cleartool lshistory -short $filename} allrevs]} {#
tk_messageBox -icon error -title "Cleartool error" \
-message $allrevs
return
}
set allrevs [split $allrevs \n]
|
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
|
}
set apa [lsearch -regexp -all -inline $allrevs "$rev/\\d+\$"]
set apa [lindex [lsort -dictionary $apa] end]
if {$apa ne ""} {
set rev [lindex [split $apa "@"] end]
}
}
return $rev
}
# Get the last two elements in a file path
proc GetLastTwoPath {path} {
set last [file tail $path]
set penultimate [file tail [file dirname $path]]
|
>
>
>
>
>
>
>
>
|
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
|
}
set apa [lsearch -regexp -all -inline $allrevs "$rev/\\d+\$"]
set apa [lindex [lsort -dictionary $apa] end]
if {$apa ne ""} {
set rev [lindex [split $apa "@"] end]
}
}
set tail [file tail $rev]
if {[string is integer -strict $tail] && $offset < 0} {
set path [file dirname $rev]
set tail [expr {$tail + $offset}]
if {$tail < 0} {set tail 0}
set rev [file join $path $tail]
}
return $rev
}
# Get the last two elements in a file path
proc GetLastTwoPath {path} {
set last [file tail $path]
set penultimate [file tail [file dirname $path]]
|