Artifact Content
Not logged in

Artifact b3e2a2903947bac9af49456ca380265ac2fd9768

File ideas.txt part of check-in [6458f020fc] - Change the spelling of "descendant" to use the -ant suffix everywhere, including in the filename "descendant.c". The adjective form can be spelled either -ant or -ent, but the noun form requires -ant, or so says American Heritage. by drh on 2008-05-14 02:03:45.


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 <fieldname> <type> <param> ...
      template <type> <delimiter>
      <text>
   * 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
       + Create ticket entry if necessary
       + Update fields.  Ignore unrecognized fields.
   * 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 size \n text \n
   Z cksum

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 descendant 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)
       descendants 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