08c4cc6d16 2007-07-30 drh: Things to work on: 08c4cc6d16 2007-07-30 drh: 9c28ba4956 2007-07-31 drh: * Bug: The timeline is visible in sqlitert even though anonymous 9c28ba4956 2007-07-31 drh: access is turned off. The timeline menu item should be omitted 9c28ba4956 2007-07-31 drh: and the timeline page should be disallowed if the user does not 9c28ba4956 2007-07-31 drh: have the right access permissions. Feel free to add new access 9c28ba4956 2007-07-31 drh: permissions (view timeline permission?) if this seems like something 9c28ba4956 2007-07-31 drh: appropriate to do. 7fe1e734e9 2007-07-31 drh: 7fe1e734e9 2007-07-31 drh: * Use the wiki_convert() routine to render comments and other text 7fe1e734e9 2007-07-31 drh: on web pages. 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. f767ae0568 2007-07-30 drh: f767ae0568 2007-07-30 drh: * When constructing a new manifest (see the commit_cmd function f767ae0568 2007-07-30 drh: in checkin.c, near line 303) make an attempt to PGP clearsign f767ae0568 2007-07-30 drh: the manifest before checking it in. There will need to be f767ae0568 2007-07-30 drh: configuration parameters for the PGP (or more likely GPG) f767ae0568 2007-07-30 drh: command to do the actual signing. Write the manifest to f767ae0568 2007-07-30 drh: a temp file, clearsign, read it back in, verify that it is f767ae0568 2007-07-30 drh: still parsable by manifest_parse(), then continue with the f767ae0568 2007-07-30 drh: check-in. 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. f767ae0568 2007-07-30 drh: f767ae0568 2007-07-30 drh: * The ipaddr field of the rcvfrom table is not being set. This f767ae0568 2007-07-30 drh: field should be the IP address from which information is received f767ae0568 2007-07-30 drh: for the local repository. So when somebody does a push of new f767ae0568 2007-07-30 drh: files we record the ipaddr. Or when we do a pull, we record f767ae0568 2007-07-30 drh: the ipaddr. 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: 9c28ba4956 2007-07-31 drh: * Enhancements to the diff and tkdiff commands in the cli. 9c28ba4956 2007-07-31 drh: Allow the entire tree or a subtree to be diffed, not just a 9c28ba4956 2007-07-31 drh: single file. Allow diffs against any two arbitrary versions, 9c28ba4956 2007-07-31 drh: not just diffs against the current check-out. Allow 9c28ba4956 2007-07-31 drh: configuration options to replace tkdiff with some other 9c28ba4956 2007-07-31 drh: visual differ of the users choice. 9c28ba4956 2007-07-31 drh: 08c4cc6d16 2007-07-30 drh: * Ticketing interface (expand this bullet) 9c28ba4956 2007-07-31 drh: 9c28ba4956 2007-07-31 drh: + Create new tickets as files in the file hierarchy 9c28ba4956 2007-07-31 drh: + Append remarks to a ticket 9c28ba4956 2007-07-31 drh: + Add attachments to a ticket 9c28ba4956 2007-07-31 drh: + Change attributes of a ticket 9c28ba4956 2007-07-31 drh: + Delete tickets that are no longer current. (The old 9c28ba4956 2007-07-31 drh: content is still accessible, the ticket is just not in 9c28ba4956 2007-07-31 drh: the current check-out.) 9c28ba4956 2007-07-31 drh: + Server setup to define the allowed attributes and 9c28ba4956 2007-07-31 drh: attribute values for tickets 9c28ba4956 2007-07-31 drh: + Permanently remove malicious edits and/or attachments 9c28ba4956 2007-07-31 drh: such as wiki-spam or warez. (Content is no longer accessible.) 9c28ba4956 2007-07-31 drh: + View a history of all changes to a ticket 9c28ba4956 2007-07-31 drh: + Generate reports over all tickets 9c28ba4956 2007-07-31 drh: + Generate reports over all tickets as they existed for 9c28ba4956 2007-07-31 drh: a chosen point in time and space. 9c28ba4956 2007-07-31 drh: + Do full text search against the text in any single ticket or 9c28ba4956 2007-07-31 drh: across the current versions of all tickets, or across all current 9c28ba4956 2007-07-31 drh: and historical versions of all tickets. 08c4cc6d16 2007-07-30 drh: 08c4cc6d16 2007-07-30 drh: * Wiki interface (expand this bullet) 08c4cc6d16 2007-07-30 drh: 9c28ba4956 2007-07-31 drh: + Create new wiki pages 9c28ba4956 2007-07-31 drh: + Designate a single wiki page as the home page for the www interface 9c28ba4956 2007-07-31 drh: + Designate wiki pages as read-only, append-only, or read/write. 9c28ba4956 2007-07-31 drh: + Append comments to a wiki page 9c28ba4956 2007-07-31 drh: + Add attachments (such as GIF images) to a wiki page 9c28ba4956 2007-07-31 drh: + Change the content of a wiki page 9c28ba4956 2007-07-31 drh: + Delete obsolete wiki pages. (Old content is still accessible, 9c28ba4956 2007-07-31 drh: the page is just not on the current list of pages.) 9c28ba4956 2007-07-31 drh: + Permanently remove malicious edits and/or attachments 9c28ba4956 2007-07-31 drh: such as wiki-spam or warez. (Old content is no longer accessible.) 9c28ba4956 2007-07-31 drh: + Add nofollow on external links added by unprivileged 9c28ba4956 2007-07-31 drh: users when the link is less than N hours old. 9c28ba4956 2007-07-31 drh: + Show the complete history of a single wiki page 9c28ba4956 2007-07-31 drh: + Provide the ability to diff two versions of a wiki page 9c28ba4956 2007-07-31 drh: + Show a listing of all wiki pages, both current and deleted 9c28ba4956 2007-07-31 drh: + Do a full-text search against current versions of all wiki pages 9c28ba4956 2007-07-31 drh: + Do a full-text search against all historical versions of a single 9c28ba4956 2007-07-31 drh: wiki page 9c28ba4956 2007-07-31 drh: + Do a full-text search against all historical versions of all 9c28ba4956 2007-07-31 drh: wiki pages 9c28ba4956 2007-07-31 drh: 08c4cc6d16 2007-07-30 drh: * Full-text search against check-in comments and diffs of each 08c4cc6d16 2007-07-30 drh: check-in. 9c28ba4956 2007-07-31 drh: 9c28ba4956 2007-07-31 drh: * Ability to check-in some subset of changes to the tree instead 9c28ba4956 2007-07-31 drh: of having to check in all changes. 9c28ba4956 2007-07-31 drh: 9c28ba4956 2007-07-31 drh: * Add a "revert" command that will undo all changes to a file 9c28ba4956 2007-07-31 drh: or files in the current check-out - restoring the files back 9c28ba4956 2007-07-31 drh: to their original check-out state. 9c28ba4956 2007-07-31 drh: 9c28ba4956 2007-07-31 drh: * Add an "annotate" command in both the cli and the www interface 9c28ba4956 2007-07-31 drh: that will show line-by-line the most recent changes to every line 9c28ba4956 2007-07-31 drh: in the file. 9c28ba4956 2007-07-31 drh: 9c28ba4956 2007-07-31 drh: * Browse the file hierarchy, similar to the "Browse" feature in 9c28ba4956 2007-07-31 drh: CVSTrac. 9c28ba4956 2007-07-31 drh: 9c28ba4956 2007-07-31 drh: * Add the ability to override check-in comments. It is not possible 9c28ba4956 2007-07-31 drh: to change the comment in the check-in itself due to the cryptographic 9c28ba4956 2007-07-31 drh: hash. But you can add a new record to the repository that overloads 9c28ba4956 2007-07-31 drh: a check-in comment with a new comment. Comment changes should be 9c28ba4956 2007-07-31 drh: GPG clearsigned at the very least. Comment changes only apply if 9c28ba4956 2007-07-31 drh: the user who made the change has the right permissions. 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()). 9c28ba4956 2007-07-31 drh: 9c28ba4956 2007-07-31 drh: * Make the interface to fossil look pretty and be customizable so 9c28ba4956 2007-07-31 drh: that other people will be attracted to it, will take over maintenance 9c28ba4956 2007-07-31 drh: of it, and we can eventually move on to other things.