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