f73c0e792b 2007-09-22 drh: Properties: f73c0e792b 2007-09-22 drh: f73c0e792b 2007-09-22 drh: * Started out as tags. AKU suggests adding a value. That f73c0e792b 2007-09-22 drh: seems to work well. f73c0e792b 2007-09-22 drh: * If the name begins with "br" then it propagates to non-merge f73c0e792b 2007-09-22 drh: children. f73c0e792b 2007-09-22 drh: * Special tags and properties: f73c0e792b 2007-09-22 drh: + br-bg-color=COLOR and bg-color=COLOR -- Set timeline BG color f73c0e792b 2007-09-22 drh: + comment=TEXT -- Revise the check-in comment text f73c0e792b 2007-09-22 drh: + user=TEXT -- Revise the check-in username f73c0e792b 2007-09-22 drh: + closed -- Do not display as a leaf f73c0e792b 2007-09-22 drh: * Tags and properties initially live in the tagxref table. f73c0e792b 2007-09-22 drh: * Separate operation captured tags and properites as artifacts f73c0e792b 2007-09-22 drh: so that they can be synced. f73c0e792b 2007-09-22 drh: f73c0e792b 2007-09-22 drh: ba486fec5a 2007-09-03 drh: Possible ticket file format: ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: "Ticket" ba486fec5a 2007-09-03 drh: title: TEXT ba486fec5a 2007-09-03 drh: ticketid: TEXT ba486fec5a 2007-09-03 drh: exists-in: BASELINE -- 0 or more ba486fec5a 2007-09-03 drh: fixed-in: BASELINE -- 0 or more ba486fec5a 2007-09-03 drh: tag: TAG -- 0 or more ba486fec5a 2007-09-03 drh: created: DATETIME ba486fec5a 2007-09-03 drh: attachment: FILENAME DESCRIPTION ba486fec5a 2007-09-03 drh: parent: UUID* ba486fec5a 2007-09-03 drh: derived-from: TICKET-FILENAME ba486fec5a 2007-09-03 drh: description: MULTILINE-TEXT ba486fec5a 2007-09-03 drh: remarks: MULTILINE-TEXT ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: * Things handles with tags: ba486fec5a 2007-09-03 drh: created-by ba486fec5a 2007-09-03 drh: assigned-to ba486fec5a 2007-09-03 drh: priority ba486fec5a 2007-09-03 drh: severity ba486fec5a 2007-09-03 drh: target-release ba486fec5a 2007-09-03 drh: status ba486fec5a 2007-09-03 drh: resolution ba486fec5a 2007-09-03 drh: type ba486fec5a 2007-09-03 drh: subsystem ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: Wiki header format: ba486fec5a 2007-09-03 drh: "WikiPage" ba486fec5a 2007-09-03 drh: parent: UUID* ba486fec5a 2007-09-03 drh: title: TEXT ba486fec5a 2007-09-03 drh: pagename: TEXT ba486fec5a 2007-09-03 drh: mode: (readonly|appendonly|readwrite) ba486fec5a 2007-09-03 drh: attachment: UUID name description ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: * Header ends with a blank line. wiki content follows. ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: Cluster format: ba486fec5a 2007-09-03 drh: e1c1877c99 2007-09-08 drh: M+ uuid e1c1877c99 2007-09-08 drh: Z manifest-cksum ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: * Cluster generated in server mode only. ba486fec5a 2007-09-03 drh: * Embargo cluster that reference phantoms or other embargoed clusters. ba486fec5a 2007-09-03 drh: * Never send or ihave an embargoed cluster ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: New sync algorithm based on clusters: ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: * Keep a table of unclustered artifacts. Strive to keep this table ba486fec5a 2007-09-03 drh: less than 100 entries. ba486fec5a 2007-09-03 drh: * Client sends content of unclustered table as ihaves to server ba486fec5a 2007-09-03 drh: * Server builds a new cluster if size of cluster table >100. ba486fec5a 2007-09-03 drh: * Server sends unclustered table to client ba486fec5a 2007-09-03 drh: * Server sends gimme for all unknown ihave received from client ba486fec5a 2007-09-03 drh: * Client sends gimme for all unknown ihave received from server ba486fec5a 2007-09-03 drh: * Previous two steps repeat until no more gimmes ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: Details of new push algorithm: ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: * Table "unsent" contains all files never pushed ba486fec5a 2007-09-03 drh: * TEMP table "wanted" contains files the server does not have ba486fec5a 2007-09-03 drh: Loop: ba486fec5a 2007-09-03 drh: * Client sends login and "push" record ba486fec5a 2007-09-03 drh: * Client sends file message for all files in unsent and removes ba486fec5a 2007-09-03 drh: those files from the table. ba486fec5a 2007-09-03 drh: * Client sends file message for all files in wanted. ba486fec5a 2007-09-03 drh: * Client sends ihave messages for each entry in unclustered ba486fec5a 2007-09-03 drh: ------ ba486fec5a 2007-09-03 drh: * Server receives file message ba486fec5a 2007-09-03 drh: * Server creates phantoms for unknown ihaves ba486fec5a 2007-09-03 drh: * Server sends gimme messages for all phantoms ba486fec5a 2007-09-03 drh: ------ e1c1877c99 2007-09-08 drh: * Client clears its unsent table ba486fec5a 2007-09-03 drh: * For each gimme message add an entry to wanted ba486fec5a 2007-09-03 drh: * Halt if the wanted table is empty ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: Details on new pull algorithm: ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: Loop: ba486fec5a 2007-09-03 drh: * Client sends login and "pull" record ba486fec5a 2007-09-03 drh: * Client sends "prior" message with repository id and max record number ba486fec5a 2007-09-03 drh: * Client sends "gimme" for each phantom ba486fec5a 2007-09-03 drh: -------- ba486fec5a 2007-09-03 drh: * Server creates new clusters to get unclustered size below 100 ba486fec5a 2007-09-03 drh: * If there is "prior" message with repository id that matches this ba486fec5a 2007-09-03 drh: server, then send file messages for all record ids greater than ba486fec5a 2007-09-03 drh: prior ba486fec5a 2007-09-03 drh: * Server sends ihave messages for each entry in unclustered ba486fec5a 2007-09-03 drh: * Server sends maxrid message ba486fec5a 2007-09-03 drh: -------- ba486fec5a 2007-09-03 drh: * Client receives file records ba486fec5a 2007-09-03 drh: * Client creates phantoms for unknown ihaves ba486fec5a 2007-09-03 drh: * If no phantoms exist, record maxrid for the server and halt ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: Need a dephantomize algorithm ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: Auxiliary tables needed for new sync algorithm: ba486fec5a 2007-09-03 drh: ba486fec5a 2007-09-03 drh: * unsent: files that have never been sent to another repository ba486fec5a 2007-09-03 drh: * unclustered: non-phantom files not mentioned by a cluster ba486fec5a 2007-09-03 drh: 634fd117b1 2007-08-25 drh: Random thoughts: 634fd117b1 2007-08-25 drh: 634fd117b1 2007-08-25 drh: * Changes to manifest to support: 634fd117b1 2007-08-25 drh: + Trees of wiki pages and tickets 634fd117b1 2007-08-25 drh: + The ability to cap or close a branch fd8b28ad87 2007-08-26 drh: + See "Extended Manifests" below 634fd117b1 2007-08-25 drh: 634fd117b1 2007-08-25 drh: * Add the concept of "clusters" to speed the transfer of "tips" 634fd117b1 2007-08-25 drh: on a sync. 634fd117b1 2007-08-25 drh: 634fd117b1 2007-08-25 drh: * Auxiliary tables: 634fd117b1 2007-08-25 drh: + tip 634fd117b1 2007-08-25 drh: + phantom 634fd117b1 2007-08-25 drh: + mlink 634fd117b1 2007-08-25 drh: + plink 634fd117b1 2007-08-25 drh: + branch 634fd117b1 2007-08-25 drh: + tree 634fd117b1 2007-08-25 drh: 634fd117b1 2007-08-25 drh: * Plink.isprim changed to record: fd8b28ad87 2007-08-26 drh: + child is the principal descendent of parent. (1) fd8b28ad87 2007-08-26 drh: + child is a branch from parent (2) fd8b28ad87 2007-08-26 drh: + child uses parent as a merge (0) 634fd117b1 2007-08-25 drh: 634fd117b1 2007-08-25 drh: * tree records 634fd117b1 2007-08-25 drh: + type (code, wiki, ticket) 634fd117b1 2007-08-25 drh: + name (for wiki and ticket only) 634fd117b1 2007-08-25 drh: + treeid 634fd117b1 2007-08-25 drh: 634fd117b1 2007-08-25 drh: * branch records 634fd117b1 2007-08-25 drh: + treeid 634fd117b1 2007-08-25 drh: + origin_rid 634fd117b1 2007-08-25 drh: + origin_time 634fd117b1 2007-08-25 drh: + tip_rid 634fd117b1 2007-08-25 drh: + tip_time 634fd117b1 2007-08-25 drh: + color 634fd117b1 2007-08-25 drh: 634fd117b1 2007-08-25 drh: * website can toggle isprim between principal and branch. 634fd117b1 2007-08-25 drh: + How to preserve across rebuild. A new record type? 634fd117b1 2007-08-25 drh: + How to share with other repositories 634fd117b1 2007-08-25 drh: * isprim guessed using userid of parent and child. Change 634fd117b1 2007-08-25 drh: in id suggests a branch. Same id suggests principal. fd8b28ad87 2007-08-26 drh: For a tie, go with the earliest check-in as the principal' fd8b28ad87 2007-08-26 drh: fd8b28ad87 2007-08-26 drh: * Autosync mode fd8b28ad87 2007-08-26 drh: + Set a preferred remote repository to use as a server fd8b28ad87 2007-08-26 drh: = Clone repository is the default fd8b28ad87 2007-08-26 drh: + On commit, first pull. If commit baseline is not a tip fd8b28ad87 2007-08-26 drh: prompt user to cancel or branch. Default is cancel. fd8b28ad87 2007-08-26 drh: + Push after commit fd8b28ad87 2007-08-26 drh: + Automatically pull prior to update. fd8b28ad87 2007-08-26 drh: + Need an "undo" capability fd8b28ad87 2007-08-26 drh: + Designed to avoid branching in highly collaborative fd8b28ad87 2007-08-26 drh: environments. fd8b28ad87 2007-08-26 drh: fd8b28ad87 2007-08-26 drh: * Archeological webpage improvements: fd8b28ad87 2007-08-26 drh: + Use a small amount of CSS+javascript on timelines so that fd8b28ad87 2007-08-26 drh: branching structure is displayed on mouseover. On mouseover fd8b28ad87 2007-08-26 drh: of a checkin, highlight other checkins that are direct (non-merge) fd8b28ad87 2007-08-26 drh: descendents and ancestors of the mouseover checkin. fd8b28ad87 2007-08-26 drh: + Timeline showing individual branches fd8b28ad87 2007-08-26 drh: + Timeline shows forks and merges fd8b28ad87 2007-08-26 drh: + Tags shown on timeline (maybe) and in vinfo (surely). fd8b28ad87 2007-08-26 drh: 251545cd43 2007-09-02 drh: Features needed: 251545cd43 2007-09-02 drh: * Means to suppress artifacts 251545cd43 2007-09-02 drh: * Means to cap a branch 251545cd43 2007-09-02 drh: * Ticketing 251545cd43 2007-09-02 drh: + Problem is/is-not expressed in baseline X. 251545cd43 2007-09-02 drh: + Append comment and zero or more attachments 251545cd43 2007-09-02 drh: * Modify comments on baselines 251545cd43 2007-09-02 drh: * Append comments to any artifact 251545cd43 2007-09-02 drh: * Wiki? 251545cd43 2007-09-02 drh: 251545cd43 2007-09-02 drh: 251545cd43 2007-09-02 drh: fd8b28ad87 2007-08-26 drh: Extended manifests. fd8b28ad87 2007-08-26 drh: * normal manifest has: fd8b28ad87 2007-08-26 drh: C comment fd8b28ad87 2007-08-26 drh: D date-time fd8b28ad87 2007-08-26 drh: F* filename uuid fd8b28ad87 2007-08-26 drh: P uuid ... -- omitted for first manifest fd8b28ad87 2007-08-26 drh: R repository-md5sum fd8b28ad87 2007-08-26 drh: U user-login fd8b28ad87 2007-08-26 drh: Z manifest-checksum 251545cd43 2007-09-02 drh: 251545cd43 2007-09-02 drh: * Accessory: 251545cd43 2007-09-02 drh: A uuid|* attachment-uuid description 251545cd43 2007-09-02 drh: D date-time 251545cd43 2007-09-02 drh: E uuid new-comment 251545cd43 2007-09-02 drh: G uuid appended-remark 251545cd43 2007-09-02 drh: S repositoryid serial-number 2bc0e2c565 2007-09-21 drh: T (+|-)tag uuid 2bc0e2c565 2007-09-21 drh: U userid 251545cd43 2007-09-02 drh: X uuid-to-surpress 251545cd43 2007-09-02 drh: Z this-file-checksum 251545cd43 2007-09-02 drh: fd8b28ad87 2007-08-26 drh: * Change the comment on a version: -- always a leaf except in cluster fd8b28ad87 2007-08-26 drh: D date-time fd8b28ad87 2007-08-26 drh: E new-comment fd8b28ad87 2007-08-26 drh: P uuid -- baseline whose comment is changed fd8b28ad87 2007-08-26 drh: U user-login fd8b28ad87 2007-08-26 drh: Z checksum fd8b28ad87 2007-08-26 drh: -- most recent wins fd8b28ad87 2007-08-26 drh: * Wiki edit fd8b28ad87 2007-08-26 drh: A* name uuid -- zero or more attachments fd8b28ad87 2007-08-26 drh: C? comment fd8b28ad87 2007-08-26 drh: D date-time fd8b28ad87 2007-08-26 drh: N name -- name of the wiki page fd8b28ad87 2007-08-26 drh: P uuid ... -- omit for new wiki fd8b28ad87 2007-08-26 drh: U user-login fd8b28ad87 2007-08-26 drh: W uuid -- The content file fd8b28ad87 2007-08-26 drh: Z manifest-cksum fd8b28ad87 2007-08-26 drh: * Ticket edit fd8b28ad87 2007-08-26 drh: A* name uuid -- zero or more attachments fd8b28ad87 2007-08-26 drh: D date-time fd8b28ad87 2007-08-26 drh: N name -- name of the ticket fd8b28ad87 2007-08-26 drh: P uuid -- omit for new ticket fd8b28ad87 2007-08-26 drh: T uuid -- content of the ticket fd8b28ad87 2007-08-26 drh: U user-login fd8b28ad87 2007-08-26 drh: Z manifest-cksum fd8b28ad87 2007-08-26 drh: * Set or erase a tag -- most recent date wins fd8b28ad87 2007-08-26 drh: B* (+|-)tag uuid fd8b28ad87 2007-08-26 drh: C? comment fd8b28ad87 2007-08-26 drh: D date-time fd8b28ad87 2007-08-26 drh: V* (+|-) tag uuid -- + to set, - to clear. fd8b28ad87 2007-08-26 drh: Z manifest-cksum fd8b28ad87 2007-08-26 drh: -- Must have at least one B or V. 2bc0e2c565 2007-09-21 drh: -- Branch tag "hidden" means do not sync 2bc0e2c565 2007-09-21 drh: -- Version tag "closed" means do not display as a leaf 8c828207a2 2007-08-27 drh: * A cluster 8c828207a2 2007-08-27 drh: M+ uuid 8c828207a2 2007-08-27 drh: Z manifest-cksum 2bc0e2c565 2007-09-21 drh: 2bc0e2c565 2007-09-21 drh: * Complete set of cards in a control file: fd8b28ad87 2007-08-26 drh: A filename uuid fd8b28ad87 2007-08-26 drh: B (+|-)branch-tag uuid fd8b28ad87 2007-08-26 drh: C comment fd8b28ad87 2007-08-26 drh: D date-time 2bc0e2c565 2007-09-21 drh: E uuid edited-comment fd8b28ad87 2007-08-26 drh: F filename uuid 2bc0e2c565 2007-09-21 drh: M uuid fd8b28ad87 2007-08-26 drh: N name fd8b28ad87 2007-08-26 drh: P uuid ... fd8b28ad87 2007-08-26 drh: R repository-md5sum fd8b28ad87 2007-08-26 drh: T uuid fd8b28ad87 2007-08-26 drh: U user-login fd8b28ad87 2007-08-26 drh: V (+|-)version-tag uuid fd8b28ad87 2007-08-26 drh: W uuid fd8b28ad87 2007-08-26 drh: Z manifest-checksum