Artifact a6d94120b0ea5803de750ac689083409bc1ff84f
File
ideas.txt
part of check-in
[251545cd43]
- Added text notes on ideas for dealing with tickets and wiki.
by
drh on
2007-09-02 20:33:16.
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).
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
B (+|-)branchtag uuid
D date-time
E uuid new-comment
G uuid appended-remark
S repositoryid serial-number
U userid
V (+|-)versiontag uuid
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.
-- Tag "hidden" means do not sync
-- Tag "closed" means do not display as a leaf
* A cluster
M+ uuid
Z manifest-cksum
* 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