Artifact b3e2a2903947bac9af49456ca380265ac2fd9768
File
ideas.txt
part of check-in
[6458f020fc]
- Change the spelling of "descendant" to use the -ant suffix everywhere,
including in the filename "descendant.c". The adjective form can be
spelled either -ant or -ent, but the noun form requires -ant, or so
says American Heritage.
by
drh on
2008-05-14 02:03:45.
Possible ticket file format:
A uuid name description
D datetime
J field value
K uuid
U user
Z md5sum
FIELDs:
comment cumulative text
title text
assignedto text
status enum
resolution enum
subsystem enum
type enum
priority enum
severity enum
deferuntil datetime
duedate datetime
derivedfrom add or subtract uuid
relatedversions add or subtract associate with manifest
presentin add or subtract uuid
fixedin add or subtract uuid
Other table columns:
origintime
lastchange
Field Types:
text width height
enum width valuelist
datetime width
cumulative-text width height
set-of-uuid width
set-of-checkin width
Tables:
tktrid(rid, tkid, mtime); index(tkid, mtime);
ticket(tkid, tkuuid UNIQUE, starttime, lastmod, ...);
tktfield(fieldname UNIQUE, type, width, other);
tktxref(tkid, mid); index(tkid); index(mid);
Tktformat in the config table.
* Three pages: creation, display, and edit
* Separate global and local versions of each page. Local overwrites
global if it exists.
* HTML
* [[field]] to substitute the appropriate form or display element
Ticket Configuraiton File:
* Format:
ticket-configuration
field <fieldname> <type> <param> ...
template <type> <delimiter>
<text>
* Each repository selects a single ticket config for its own use.
* Rescan all tickets following any config change
* Use the ticket-configuration tag must be on the file
Todo:
* Configuration file parser
+ tkt-new-template
+ tkt-view-template
+ tkt-edit-template
+ Reconstruct the ticket table schema
+ Repopulate tktfield
* Ticket control file parser
+ Create ticket entry if necessary
+ Update fields. Ignore unrecognized fields.
* Transfer tkt control info to ticket table
* Setup pages for selecting and editing ticket configuration
* Ticket display
* New ticket creation display
* Ticket change screen
* Ticket query screens
------------------------------------------------------------------------
Change to wiki:
A uuid filename description
D datetime
P uuid ...
U user
W size \n text \n
Z cksum
Hyperlinks:
[lowercasehex] /info/lowercasehex
[attachment.gif] inline image
[tagname] /info/tagname
[wikipagename] /wiki/wikipagename
[/internal/page] /internal/page
[http:...] external link
Markup:
blank-line paragraph break
_*__ bullet
__ indentation
_#.__ enumeration
*text* bold
_text_ italic
------------------------------------------------------------------------
Random thoughts:
* Plink.isprim changed to record:
+ child is the principal descendant of parent. (1)
+ child is a branch from parent (2)
+ child uses parent as a merge (0)
* website can toggle isprim between principal and branch.
+ How to preserve across rebuild. A new record type?
+ How to share with other repositories
* isprim guessed using userid of parent and child. Change
in id suggests a branch. Same id suggests principal.
For a tie, go with the earliest check-in as the principal'
* Autosync mode
* Notes:
+ Designed to avoid branching in highly collaborative
environments.
* Outstanding:
+ On commit, first pull. If commit baseline is not a tip
prompt user to cancel or branch. Default is cancel.
+ Need an "undo" capability
* Done:
* Set a preferred remote repository to use as a server
= Clone repository is the default
* Push after commit
* Automatically pull prior to update.
* Archeological webpage improvements:
+ Use a small amount of CSS+javascript on timelines so that
branching structure is displayed on mouseover. On mouseover
of a checkin, highlight other checkins that are direct (non-merge)
descendants and ancestors of the mouseover checkin.
+ Timeline showing individual branches
+ Timeline shows forks and merges
+ Tags shown on timeline (maybe) and in vinfo (surely).
Features needed:
* Means to suppress artifacts
* Means to cap a branch
* Ticketing
+ Problem is/is-not expressed in baseline X.
+ Append comment and zero or more attachments
* Modify comments on baselines
* Append comments to any artifact
* Wiki?
Extended manifests.
* normal manifest has:
C comment
D date-time
F* filename uuid
P uuid ... -- omitted for first manifest
R repository-md5sum
U user-login
Z manifest-checksum
* Accessory:
A uuid|* attachment-uuid description
D date-time
E uuid new-comment
G uuid appended-remark
S repositoryid serial-number
T (+|-)tag uuid
U userid
X uuid-to-surpress
Z this-file-checksum
* Change the comment on a version: -- always a leaf except in cluster
D date-time
E new-comment
P uuid -- baseline whose comment is changed
U user-login
Z checksum
-- most recent wins
* Wiki edit
A* name uuid -- zero or more attachments
C? comment
D date-time
N name -- name of the wiki page
P uuid ... -- omit for new wiki
U user-login
W uuid -- The content file
Z manifest-cksum
* Ticket edit
A* name uuid -- zero or more attachments
D date-time
N name -- name of the ticket
P uuid -- omit for new ticket
T uuid -- content of the ticket
U user-login
Z manifest-cksum
* Set or erase a tag -- most recent date wins
B* (+|-)tag uuid
C? comment
D date-time
V* (+|-) tag uuid -- + to set, - to clear.
Z manifest-cksum
-- Must have at least one B or V.
-- Branch tag "hidden" means do not sync
-- Version tag "closed" means do not display as a leaf
* A cluster
M+ uuid
Z manifest-cksum
* Complete set of cards in a control file:
A filename uuid
B (+|-)branch-tag uuid
C comment
D date-time
E uuid edited-comment
F filename uuid
M uuid
N name
P uuid ...
R repository-md5sum
T uuid
U user-login
V (+|-)version-tag uuid
W uuid
Z manifest-checksum