Properties: * Started out as tags. AKU suggests adding a value. That seems to work well. * If the name begins with "br" then it propagates to non-merge children. * Special tags and properties: + br-bg-color=COLOR and bg-color=COLOR -- Set timeline BG color + comment=TEXT -- Revise the check-in comment text + user=TEXT -- Revise the check-in username + closed -- Do not display as a leaf * Tags and properties initially live in the tagxref table. * Separate operation captured tags and properites as artifacts so that they can be synced. Possible ticket file format: "Ticket" title: TEXT ticketid: TEXT exists-in: BASELINE -- 0 or more fixed-in: BASELINE -- 0 or more tag: TAG -- 0 or more created: DATETIME attachment: FILENAME DESCRIPTION parent: UUID* derived-from: TICKET-FILENAME description: MULTILINE-TEXT remarks: MULTILINE-TEXT * Things handles with tags: created-by assigned-to priority severity target-release status resolution type subsystem Wiki header format: "WikiPage" parent: UUID* title: TEXT pagename: TEXT mode: (readonly|appendonly|readwrite) attachment: UUID name description * Header ends with a blank line. wiki content follows. Need a dephantomize algorithm 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 + Set a preferred remote repository to use as a server = Clone repository is the default + On commit, first pull. If commit baseline is not a tip prompt user to cancel or branch. Default is cancel. + Push after commit + Automatically pull prior to update. + Need an "undo" capability + Designed to avoid branching in highly collaborative environments. * 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