Priority: Normal
Current State: Waiting for Release
Released In: 2.1.9
Target Release: patch
Applies To: Engine
Component:
Branches: Release02x01 master
It is very important to remember that the
view
service needs to be as fast as possible. Therefore any expensive
call - i.e. to
Foswiki::Meta::getRevisionHistory()
- needs to be considered carefully. Under certain circumstances
this call can get very expensive, i.e. when using
RCSStoreContrib and files have been synced/copied out of band
on the filesystem. As a consequence
getRevisionHistory()
forks an
rlog
process
on each click to count
the number of revisions available in the revision control system. The reason for
getRevisionHistory()
foremost is to
render the pseudo macros
REVTITLE
,
REVARG
and
REVISIONS
. These aren't real macros as they only are using during
view
(and during
rdiff
using view's local implementation).
Another reason for calling
getRevisionHistory()
is to compare the requested revision via the
?rev
url parameter to the maximum number of available revisions.
This check however is redundant as it also happens within the Foswiki::Store and/or Foswiki::Meta api itself. Therefore the call to
getRevisionHistoy()
can be spared generally and is only required for those
PatternSkin-only pseudo macros if present in the skin templates.
--
MichaelDaum - 16 Oct 2024