apm_fetch_cached_vc_status

one of the documented procedures in this installation of the ACS
Usage:
apm_fetch_cached_vc_status   path
What 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


philg@mit.edu