08c4cc6d16 2007-07-30 drh: Things to work on: 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * On every push, pull, or clone command, remember the URL of the 08c4cc6d16 2007-07-30 drh: server using db_put(). On subsequent pushes and pulls, allow 08c4cc6d16 2007-07-30 drh: the URL to be omitted and substitute the URL that was used the 08c4cc6d16 2007-07-30 drh: previous time. Display the saved URL as part of the "info" 08c4cc6d16 2007-07-30 drh: command in the cli. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * If the server does not have write permission on the database 08c4cc6d16 2007-07-30 drh: file, or on the directory containing the database file (and 08c4cc6d16 2007-07-30 drh: it is thus unable to update database because it cannot create 08c4cc6d16 2007-07-30 drh: a rollback journal) then it currently fails silently on a push. 08c4cc6d16 2007-07-30 drh: It needs to return a helpful error. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * The "leaves ?UUID?" command displays all leaf versions for the 08c4cc6d16 2007-07-30 drh: version UUID or for the current version if UUID is omitted. If 08c4cc6d16 2007-07-30 drh: UUID is itself a leaf, it would be more helpful to display a 08c4cc6d16 2007-07-30 drh: message to that effect: "<uuid> is itself a leaf" 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * We need a command to show other branches - leaves of the root 08c4cc6d16 2007-07-30 drh: which are not leaves of the indicated node. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Additional information displayed for the "vinfo" page: 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: + The comment and user for this version (available in 08c4cc6d16 2007-07-30 drh: the event table). 08c4cc6d16 2007-07-30 drh: + All decendents of this version (together with date, 08c4cc6d16 2007-07-30 drh: user, comment, and hyperlink to the vinfo page) for 08c4cc6d16 2007-07-30 drh: N generations. N to be determined. Perhaps configurable 08c4cc6d16 2007-07-30 drh: using db_get_int()/db_set_int(). Note: decendents can 08c4cc6d16 2007-07-30 drh: be found using the plink table. 08c4cc6d16 2007-07-30 drh: + All leaves of this version that are not included in the 08c4cc6d16 2007-07-30 drh: decendent list. With date, user, comment, and hyperlink. 08c4cc6d16 2007-07-30 drh: Leaves in the decendent table should be marked as such. 08c4cc6d16 2007-07-30 drh: See the compute_leaves() function to see how to find all 08c4cc6d16 2007-07-30 drh: leaves. 08c4cc6d16 2007-07-30 drh: + All ancestors of the current version with date, user, 08c4cc6d16 2007-07-30 drh: comment, hyperlink. M generations back, where M is 08c4cc6d16 2007-07-30 drh: to be determined. 08c4cc6d16 2007-07-30 drh: + List of files added or modified by this version. 08c4cc6d16 2007-07-30 drh: Information available in the mlink table. Hyperlinks to 08c4cc6d16 2007-07-30 drh: the finfo page for each file. 08c4cc6d16 2007-07-30 drh: + Hyperlinks to diff all files in this version against any 08c4cc6d16 2007-07-30 drh: of the named decendents or ancestors. The unified_diff() 08c4cc6d16 2007-07-30 drh: function will compute a unified diff given to file blobs. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * A new webpage: "finfo" Information about a particular file 08c4cc6d16 2007-07-30 drh: given its name. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: + All historical changes to this file with version number, 08c4cc6d16 2007-07-30 drh: user, and comment, and hyperlink to the vinfo page for 08c4cc6d16 2007-07-30 drh: the version. Information available from the minfo table. 08c4cc6d16 2007-07-30 drh: + Hyperlinks for diffing consecutive versions of the file. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Given any version uuid, construct a ZIP archive that contains 08c4cc6d16 2007-07-30 drh: the complete content for that version. Feature should be 08c4cc6d16 2007-07-30 drh: callable from the command-line or from the www interface. 08c4cc6d16 2007-07-30 drh: Perhaps a hyperlink on the vinfo page to download the ZIP archive 08c4cc6d16 2007-07-30 drh: for any version. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Timeline enhanced so that you can specify a range of dates. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * The /xfer handler (for push, pull, and clone) does not do 08c4cc6d16 2007-07-30 drh: delta compression. This results in excess bandwidth usage. 08c4cc6d16 2007-07-30 drh: There are some code in xfer.c that are sketches of ideas on 08c4cc6d16 2007-07-30 drh: how to do delta compression, but nothing has been implemented. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Ticketing interface (expand this bullet) 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Wiki interface (expand this bullet) 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Full-text search against check-in comments and diffs of each 08c4cc6d16 2007-07-30 drh: check-in. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * New cli commands: "deconstruct" and "reconstruct". The deconstruct 08c4cc6d16 2007-07-30 drh: command populates an indicated directory with copies of all files 08c4cc6d16 2007-07-30 drh: contained within the repository. Files are named aaa/bbbbbbb where 08c4cc6d16 2007-07-30 drh: aaa is the first 3 characters of the uuid and bbbbbb is the 08c4cc6d16 2007-07-30 drh: remaining 37 characters. reconstruct builds a new repository 08c4cc6d16 2007-07-30 drh: containing all files in an indicated directory. When reconstructing, 08c4cc6d16 2007-07-30 drh: some information is lost: project-code, server-code, users. 08c4cc6d16 2007-07-30 drh: Just make up a new project-code. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Get a build working for win32. Perhaps use cygwin. Or omit 08c4cc6d16 2007-07-30 drh: the server component from win32 (to eliminate the need for fork()).