Random thoughts: * Changes to manifest to support: + Trees of wiki pages and tickets + The ability to cap or close a branch + See "Extended Manifests" below * Add the concept of "clusters" to speed the transfer of "tips" on a sync. * Auxiliary tables: + tip + phantom + mlink + plink + branch + tree * 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) * tree records + type (code, wiki, ticket) + name (for wiki and ticket only) + treeid * branch records + treeid + origin_rid + origin_time + tip_rid + tip_time + color * 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). 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 * 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. -- Tag "hidden" means do not sync -- Tag "closed" means do not display as a leaf * Complete set of cards in a manifest files: A filename uuid B (+|-)branch-tag uuid C comment D date-time E edited-comment F filename uuid N name P uuid ... R repository-md5sum T uuid U user-login V (+|-)version-tag uuid W uuid Z manifest-checksum