apm_fetch_cached_vc_status pathWhat it does:
Returns the CVS status of a file, caching it based on mtime if it exists and is up-to-date. The path must be relative to the ACS root.Defined in: /web/philip/packages/acs-core/apm-procs.tcl
Source code:
# If the file doesn't exist, just do a plain old CVS status and
# return the result - although the file doesn't exist in the
# working copy, it can still be under CVS control!
if { ![file exists "[acs_root_dir]/$path"] } {
return [vc_fetch_status "[acs_root_dir]/$path"]
}
# If we've examined this file before, check to see if we can
# return a cached status.
if { [nsv_exists apm_vc_status $path] } {
set vc_status_info [nsv_get apm_vc_status $path]
# If the mtime hasn't changed, return the cached status.
if { [lindex $vc_status_info 0] == [file mtime "[acs_root_dir]/$path"] } {
return [lindex $vc_status_info 1]
}
# Whoops, mtime has changed! Kill the cache entry.
nsv_unset apm_vc_status $path
}
# Obtain the status. If up-to-date, cache it; if not, don't
# (since it could easily be made up-to-date without the mtime
# changing, i.e., checked in but not keyword-substituted).
set status [vc_fetch_status "[acs_root_dir/$path"]
if { [regexp "Up-to-date" $status] } {
set mtime [file mtime "[acs_root_dir]/$path"]
nsv_set apm_vc_status $path [list $mtime $status]
}
return $status