[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnu-arch-users] [BUG] feature plan -- version variables
From: |
Aaron Bentley |
Subject: |
Re: [Gnu-arch-users] [BUG] feature plan -- version variables |
Date: |
Tue, 25 May 2004 12:16:37 -0400 |
User-agent: |
Mozilla Thunderbird 0.5 (X11/20040309) |
Tom Lord wrote:
Version variables are persistent variables associated
with versions. At each revision within a version, all
of the variables have a definate value. By default,
each revision inherits the values from its immediate ancestor
but variable values can be changed by any revision.
Sounds pretty resonable. I worry a bit because patchlogs are not always
guaranteed to be present, but maybe I worry too much.
* Range
The value of a version variable must be a Pika Scheme s-expression
satisfying certain constraints:
1) Only cons pairs, booleans, small integers,
nil, and strings containing only iso-8859-1
characters may occur in the value.
Why iso-8859-1? Since we plan to make patchlogs utf-8, I'd imagine
limiting it to ASCII until we make patchlogs utf-8.
One thing we could use this for is for version descriptions-- but only
if people can use their own alphabets for the descriptions.
2) Cons pairs may occur in the value only
as part of a proper list.
* Domain
The name of a version variable must consist entirely of ascii
numbers and letters, dash ('-'), and dot ('.').
* Representation
Within a project tree, variable values are usually found by
reading the patch-log. The latest patch-log entry for the
tree-version of the project tree may contain a header:
set-in-version: (<name> <value>)*
Are those parentheses literal charaters or part of the definition
syntax? (I'm wondering what the separator is. Personally, I'd probably
do it one-var-per-line instead)
Are those map semantics? I'd imagine if the same name appears multiple
times, only the last assignment is used? Or is it an error?
Care to specify a representation for lists, or do you think the list
user should chooose it?
Variables without an explicitly set value have the value false
(`#f').
If the file ./{arch}/++variables exists then it should contain
0 or more valid `set-in-version' log message headers -- these
override the settings in the latest patch log entry.
Is this file immortal, or is it deleted by commit/import?
% tla version-var name value
[locally set the value of name to value]
% tla version-var --unset name
[remove any local setting for name]
Would this delete a version-var?
% tla version-var name #f
(Is there any difference between a false value and a missing value?)
Aaron
--
Aaron Bentley
Director of Technology
Panometrics, Inc.
Re: [Gnu-arch-users] [BUG] feature plan -- version variables, Bug Goo, 2004/05/28