148 lines
3.7 KiB
Plaintext
148 lines
3.7 KiB
Plaintext
|
head 1.3;
|
||
|
access;
|
||
|
symbols;
|
||
|
locks; strict;
|
||
|
comment @# @;
|
||
|
|
||
|
|
||
|
1.3
|
||
|
date 2007.01.16.04.12.02; author TWikiContributor; state Exp;
|
||
|
branches;
|
||
|
next 1.2;
|
||
|
|
||
|
1.2
|
||
|
date 2006.06.25.16.26.33; author TWikiContributor; state Exp;
|
||
|
branches;
|
||
|
next 1.1;
|
||
|
|
||
|
1.1
|
||
|
date 2006.02.01.12.01.25; author TWikiContributor; state Exp;
|
||
|
branches;
|
||
|
next ;
|
||
|
|
||
|
|
||
|
desc
|
||
|
@new-topic
|
||
|
@
|
||
|
|
||
|
|
||
|
1.3
|
||
|
log
|
||
|
@buildrelease
|
||
|
@
|
||
|
text
|
||
|
@---+ Package =TWiki::Store::RcsLite=
|
||
|
*extends* <tt>[[TWikiStoreRcsFileDotPm][TWiki::Store::RcsFile]]</tt>
|
||
|
|
||
|
|
||
|
This package does not publish any methods. It implements the virtual
|
||
|
methods of the [[TWikiStoreRcsFileDotPm][TWiki::Store::RcsFile]] superclass.
|
||
|
|
||
|
Simple replacement for RCS. Doesn't support:
|
||
|
* branches
|
||
|
* locking
|
||
|
Neither of which are used (or needed) by TWiki.
|
||
|
|
||
|
This module doesn't know anything about the content of the topic
|
||
|
|
||
|
There is one of these object for each file stored under RCSLite.
|
||
|
|
||
|
This object is PACKAGE PRIVATE to Store, and should NEVER be
|
||
|
used from anywhere else.
|
||
|
|
||
|
FIXME:
|
||
|
* need to tidy up dealing with \n for differences
|
||
|
* still have difficulty on line ending at end of sequences, consequence of doing a line based diff
|
||
|
|
||
|
---++ File format
|
||
|
|
||
|
<verbatim>
|
||
|
rcstext ::= admin {delta}* desc {deltatext}*
|
||
|
admin ::= head {num};
|
||
|
{ branch {num}; }
|
||
|
access {id}*;
|
||
|
symbols {sym : num}*;
|
||
|
locks {id : num}*; {strict ;}
|
||
|
{ comment {string}; }
|
||
|
{ expand {string}; }
|
||
|
{ newphrase }*
|
||
|
delta ::= num
|
||
|
date num;
|
||
|
author id;
|
||
|
state {id};
|
||
|
branches {num}*;
|
||
|
next {num};
|
||
|
{ newphrase }*
|
||
|
desc ::= desc string
|
||
|
deltatext ::= num
|
||
|
log string
|
||
|
{ newphrase }*
|
||
|
text string
|
||
|
num ::= {digit | .}+
|
||
|
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
|
||
|
id ::= {num} idchar {idchar | num }*
|
||
|
sym ::= {digit}* idchar {idchar | digit }*
|
||
|
idchar ::= any visible graphic character except special
|
||
|
special ::= $ | , | . | : | ; | @@
|
||
|
string ::= @@{any character, with @@ doubled}*@@
|
||
|
newphrase ::= id word* ;
|
||
|
word ::= id | num | string | :
|
||
|
</verbatim>
|
||
|
Identifiers are case sensitive. Keywords are in lower case only. The
|
||
|
sets of keywords and identifiers can overlap. In most environments RCS
|
||
|
uses the ISO 8859/1 encoding: visible graphic characters are codes
|
||
|
041-176 and 240-377, and white space characters are codes 010-015 and 040.
|
||
|
|
||
|
Dates, which appear after the date keyword, are of the form Y.mm.dd.hh.mm.ss,
|
||
|
where Y is the year, mm the month (01-12), dd the day (01-31), hh the hour
|
||
|
(00-23), mm the minute (00-59), and ss the second (00-60). Y contains just
|
||
|
the last two digits of the year for years from 1900 through 1999, and all
|
||
|
the digits of years thereafter. Dates use the Gregorian calendar; times
|
||
|
use UTC.
|
||
|
|
||
|
The newphrase productions in the grammar are reserved for future extensions
|
||
|
to the format of RCS files. No newphrase will begin with any keyword already
|
||
|
in use.
|
||
|
|
||
|
Revisions consist of a sequence of 'a' and 'd' edits that need to be
|
||
|
applied to rev N+1 to get rev N. Each edit has an offset (number of lines
|
||
|
from start) and length (number of lines). For 'a', the edit is followed by
|
||
|
length lines (the lines to be inserted in the text). For example:
|
||
|
|
||
|
d1 3 means "delete three lines starting with line 1
|
||
|
a4 2 means "insert two lines at line 4'
|
||
|
xxxxxx is the new line 4
|
||
|
yyyyyy is the new line 5
|
||
|
|
||
|
|
||
|
%TOC%
|
||
|
|
||
|
---++ ObjectMethod *finish* <tt></tt>
|
||
|
|
||
|
Complete processing after the client's HTTP request has been responded
|
||
|
to.
|
||
|
1 breaking circular references to allow garbage collection in persistent
|
||
|
environments
|
||
|
|
||
|
|
||
|
@
|
||
|
|
||
|
|
||
|
1.2
|
||
|
log
|
||
|
@buildrelease
|
||
|
@
|
||
|
text
|
||
|
@d25 1
|
||
|
d88 1
|
||
|
@
|
||
|
|
||
|
|
||
|
1.1
|
||
|
log
|
||
|
@buildrelease
|
||
|
@
|
||
|
text
|
||
|
@d85 8
|
||
|
@
|