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 ... template * 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 + * 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 wikipagename uuid Z md5sum On page: .... 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 descendent 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) descendents 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