# event

type: ci
user: rberteig
comment: Merged trunk and resolved conflicts. Passes all current tests.
ecomment:
  Merged trunk and resolved conflicts. Passes all current tests, except for tests wiki-15 and wiki-15.1 in wiki.test.


type: ci
user: dave.vines
comment:
  Fix bug detected by wiki-15 and wiki-15.1. Left hand thought that the mtime column was the timestamp of the tech note. Right hand thought that the mtime column was the last modification time of the tech note. Left hand was right and the relevant query has been updated to use the objid (assigned as the new tech note manifest is added) as the indication of the most recently modified version of the tech note


type: ci
user: rberteig
comment:
  Collected improvements to the fossil wiki and attach commands to support technotes as well as wiki pages, including attachments to either and new test cases. Passes all tests.


type: ci
user: joel
comment:
  find_filename_changes() should report a rename even if the file ends up reverting back to its original name.


type: ci
user: andygoth
comment:
  Add -rename-trunk, -rename-branch, -rename-tag, -rename-rev, -rev-tags, and -no-rev-tags options to import command


type: ci
user: joel
comment:
  Ensure that N is also a first-parent ancestor of P for cases where P is not on the same branch as either V or M.


type: ci
user: joel
comment:
  Remove unnecessary first commit (that isn't actually a commit because I didn't call "fossil add" first...) in test 8.


type: ci
user: joel
comment:
  Properly update the execute bit if it has changed in the commit being merged, and add info about changed permissions to the merge command's output.


type: ci
user: andygoth
comment:
  Avoid NULL dereference when importing incremental Subversion dumps.  This may not be the correct solution, but at least it's not outright crashing anymore.


type: g
user: andygoth
comment:
  Edit [d7b8b3e18328605e|d7b8b3e183]: Move to branch [/timeline?r=andygoth-import&nd&dp=d7b8b3e18328605e&unhide | andygoth-import].


type: ci
user: andygoth
comment:
  Ignore Subversion property changes when importing.  Property changes were previously interpreted as changing a file to be empty.


type: ci
user: nick.lloyd
ecomment:
  Add --import-marks and --export-marks options to 'fossil import' subcommand.

  This allows one to save all git-generated marks following an import.  Previously,
  performing an incremental import from git resulted in new commits being imported
  as orphans, and trying to perform an export to git at some later time resulted
  in git complaining of undefined marks. To remedy this, the format of the marks
  file is amended to include the rid, mark, and UUID of each commit. Now, fossil
  and git agree on the mapping between commits and marks, so updates in either
  direction can be performed easily.

comment:
  Add --import-marks and --export-marks options to `fossil import' subcommand.

  This allows one to save all git-generated marks following an import.  PPreviously,
  performing an incremental import from git resulted in new commits being imported
  as orphans, and trying to perform an export to git at some later time resultedd
  in git complaining of undefined marks. To remedy this, the format of the marks
  file is amended to include the rid, mark, and UUID of each commit. Now, fossil
  and git agree on the mapping between commits and marks, so updates in either
  direction can be performed easily.


type: ci
user: drh
comment:
  Add logic to process "parent" tags.  Add the "reparent" command used to
  create an appropriate parent tag to cause a check-in to be reparented.


type: ci
user: andygoth
comment:
  Remove extra "+" that was being prefixed to the parent tag in the reparent command.  tag_add_artifact() already prefixes one "+" because its fifth argument is 1.


type: ci
user: andygoth
comment:
  Adjust documentation for extras command to say CSG instead of GLOBPATTERN for more internally consistent terminology


type: ci
user: andygoth
comment:
  Remove obsolete "cannot be undone" warning from documentation for clean, fix spelling error, and add mention of --disable-undo to description for --verily


type: ci
user: andygoth
comment:
  Correct clean-glob example to use commas as delimiters since whitespace (other than newline) is not a valid delimiter


type: ci
user: andygoth
comment:
  Rename crnl-glob to crlf-glob, retaining support for crnl-glob as a compatibility alias.  Change terminology from NL to LF throughout, excepting cases where NL means newline and not line feed.  Also don't change linenoise.c which is third-party code.


type: ci
user: drh
comment:
  Add the --dryrun option to "reparent" and "tag add" and "tag cancel".
  Fix a typo in the command-line help for "reparent".


type: g
user: mistachkin
comment:
  Edit [0ac4f5d33b6c5275|0ac4f5d33b]: Move to branch [/timeline?r=mingw-exp&nd&dp=0ac4f5d33b6c5275&unhide | mingw-exp].


type: ci
user: mistachkin
comment:
  MinGW makefile integration fixes, mostly for zlib.  Also, Clang can define _MSC_VER in some circumstances; therefore, check for Clang first in 'config.h'.


type: ci
user: drh
comment:
  Enhance the files_of_checkin virtual table so that it can work as a table
  valued function, allowing queries such as:
  "SELECT * FROM files_of_checkin('version-1.34');"


type: ci
user: mgagnon
comment:
  Fix typo in test_markdown_render function name. (no functional change since
  the command name was okay).


type: ci
user: drh
comment:
  If the FOSSIL_PWREADER environment variable is set to the name of a program,
  then use that program to prompt and read passwords and passphrases from the
  user when required, in place of the getpass() library routine.


type: ci
user: andybradford
comment:
  Use sqlite3_snprintf instead because it guarantees that the buffer will be
  zero-terminated and to avoid warnings on OpenBSD.


type: ci
user: jan.nijtmans
comment:
  Fix corner-case in invalid utf-8 detection, with modified test-cases. Additional test-cases still to be done.


type: g
user: jan.nijtmans
comment:
  Edit [314cdab0d49d7423|314cdab0d4]: Move to branch [/timeline?r=invalid_utf8_table&nd&dp=314cdab0d49d7423&unhide | invalid_utf8_table].


type: ci
user: drh
comment:
  Add the --include and --exclude options to the tarball and zip commands and
  the in= and ex= query parameters to the /tarball and /zip webpages.


type: ci
user: drh
comment:
  For Markdown hyperlinks, if the URL begins with "/" then prepend the root
  of repository.  This allows repository-relative hyperlinks.


type: ci
user: drh
comment:
  Add the "fossil reparent" command and the --dryrun option on "fossil tag add"
  and "fossil tag cancel".


type: ci
user: sdr
ecomment:
  fixed a bad function name; had tested it external to fossil but didn't build/test before committing; mea culpa

comment:
  committed a function with a bad name because I C&P and foolishly didn't build or test; glad it was on a branch


type: ci
user: mistachkin
comment: Further coding style improvements for the new invalid_utf8() function.
ecomment:
  Further coding style improvements for the new invalid_utf8() function.  Also fixes several C99-isms.


type: ci
user: jan.nijtmans
ecomment:
  Fix handling of byte sequence \xF4\x00 in utf-8 validation. Now all tests pass again. Thanks to Scott Robison for discovering this!

comment:
  Fix handling of byte sequence \xF4\x00 in utf-8 validation. Now all tests pass again. Thanks to Scott Robinson for discovering this!


type: ci
user: sdr
ecomment:
  moved static table data out of invalid_utf8 and pre-initialized the table to avoid run time overhead; also shrunk the table by 50% by removing the ASCII code points

comment:
  restructured the invalid_utf8 so that it doesn't have to initialize the table on the first pass and shrink the size of the table


type: ci
user: jan.nijtmans
comment:
  Update internal Unicode character tables, used in regular expression handling, from version 8.0 to 9.0.


type: ci
user: jan.nijtmans
comment:
  Use faster table-based approach when checking for invalid utf-8, in stead of complex bit-operations.


type: ci
user: jan.nijtmans
comment:
  Further invalid_utf8() improvement: Save one indirection and a check, and make the table size even smaller.


type: ci
user: sdr
ecomment:
  more optimizations (all lead bytes between 0x80 & 0xBF are invalid, so use simple check for those, and also can shrink the invalid_utf8 lead byte table even more)

comment:
  more optimizations (all bytes between 0x80 & 0xBF are invalid, so use simple check for those, and also can shrink the invalid_utf8 lead byte table even more)


type: ci
user: sdr
comment:
  shrunk size of lead byte table for invalid_utf8, and took a shortcut to invalidate lead bytes between 0x80 & 0xBF inclusive


type: ci
user: jan.nijtmans
comment:
  Juggle variables and code arround, making it as efficient and readable as possible. Also add more comments.


type: ci
user: jan.nijtmans
comment:
  If the table is encoded as start-value/size, a variable and a comparison can be saved. Should be even faster ....


type: ci
user: drh
comment:
  Add an example to the webpage-ex.md documentation page showing the use of
  the chng= query parameter of timeline.


type: ci
user: jan.nijtmans
comment:
  Fix problem reported by Carlo Miron on fossil-dev mailing list: [38a47074] broke empty markdown links


type: ci
user: drh
comment:
  Full-text search for check-in diffs.  This works, but it creates a huge
  index (2x the size of the BLOB table) in spite of being a contentless index.
  The index is slow to build because of all the diffs that must be computed.
  Because the index is contentless, the snippet generator runs very slowly on
  queries - a typical query with a couple hundred hits takes several minutes.


type: ci
user: drh
comment:
  If the FOSSIL_SECURITY_LEVEL environment variable is 2 or more, then present
  a simple substitution matrix when entering passwords, as a defense against
  key loggers.  For FOSSIL_SECURITY_LEVEL of 1 or more, do not remember the
  remote-url password.


type: ci
user: andybradford
comment:
  Detect old stashfile schema and recreate to allow file renames to be stashed
  in existing checkout databases.


type: ci
user: jan.nijtmans
ecomment:
  Partially revert [f73411025e8ebec7]. This fixes a problem that when closing a fork by just doing "fossil merge" and additonal arrow going up is displayed. Probably not the right fix. Remark: reverting more than necessary. Already fixed on trunk.

comment:
  Partially revert [f73411025e8ebec7]. This fixes a problem that when closing a fork by just doing "fossil merge" and additonal arrow going up is displayed. Probably not the right fix.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick) Another place where checking for pRow->isLeaf is too simple (which could result in more phantom up-arrows)


type: ci
user: jan.nijtmans
comment:
  Another place where checking for pRow->isLeaf is too simple (which could result in more phantom up-arrows)


type: ci
user: drh
comment:
  Enhance the "fossil purge" command to allow it to specify individual
  artifacts and files to be purged.


type: ci
user: drh
comment:
  Update the built-in SQLite to the 3.14 alpha.  Use sqlite3_trace_v2() instead
  of sqlite3_trace(), which is not deprecated.


type: ci
user: drh
comment:
  Begin enhancing the "fossil purge" command to be much more flexible and
  powerful.  Plans are to provide the ability to purge specific files, or tickets,
  or wiki pages, with options to limit the timeframe of the purge.


type: ci
user: drh
comment:
  Compiler warning fixes.  This includes disabling the undocumented
  FOSSIL_PWREADER feature and upgrading the built-in SQLite.


type: ci
user: drh
comment:
  Disable navigation key binds in the --tk diff screen.  Otherwise, pressing
  "q" in the Search entry box causes the whole diff window to die.


type: ci
user: drh
comment:
  Add a further warning on the purge command to indicate that it is dicey.
  That extra warning makes the purge code permissible to add to trunk.


type: ci
user: drh
comment:
  Bring the sync protocol documentation more up-to-date.  Fix typos in the
  command-line documentation for "push" and "sync".


type: ci
user: rberteig
comment:
  Add a basic set of tests for the manifest property, including minimal coverage of the existance of the tags manifest. This can and should be extended to cover interesting content for the tags manifest, and likely should be extended to cover lots more corner cases. These new tests pass on Windows, but should be tried on at least one unix-like platform.


type: ci
user: jan
comment:
  Add more tags manifest test cases. Check the manifest.tags contents updates on tagging, commit and switching branches. Tests pass successfully on OS X.


type: ci
user: drh
comment:
  Change the schema for the unversioned table.  Add some initial code to do 
  unversioned sync, but the code is incomplete and untested.


type: ci
user: rberteig
comment:
  Added quick checks to verify that the manifest and manifest.uuid files have sensible content, at least for the initial empty checkin. This does require that an SHA1 module be installed for use by the test harness, which I am slightly surprised was not already needed by any other test case.


type: ci
user: jan
comment:
  Two manifest.tags changes: 1) Unconditionally add branch. 2) Change the format to explicitly state tag or branch entry.


type: ci
user: rberteig
comment:
  Improved documentation of the date and time stamps understood by most fossil commands and web pages. No non-documentation changes were made, but comments in eight source files were edited.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick) Fix for lockup on merge with rename and custom baseline. Change received from drh via mailing list. See [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg23838.html] for details.


type: ci
user: drh
comment:
  Add the ability to create a child-project repository that can pull from its
  parent repository but never push back.


type: ci
user: drh
comment:
  Add the ability to create a child-project repository that can pull from 
  its parent repository but never push back.


type: ci
user: drh
comment:
  Add the /setup_ucap_list built-in documentation page.  Improvements to the
  /setup_ulist_notes built-in documentation page.


type: ci
user: drh
comment:
  Add the -nocomplain option to the TH1 "query" command.  Add the ability to
  query the unversioned table, if such a table exists.


type: ci
user: drh
comment:
  Do not show a blank table on the /uvlist page if the server contains no
  unversioned files.  Instead show a message explaining that no unversioned
  files are present.


type: ci
user: drh
comment:
  Limit the amount of unversioned content sent with each HTTP request.  Also:
  fix up source code lines in xfer.c to be less than 80 characters long.


type: ci
user: drh
comment:
  Show the number and total size of unversioned files on the /stat page.
  Add a link to /uvlist from /sitemap.


type: ci
user: drh
comment:
  For the "query -nocomplain" TH1 command, make sure the SQLite log does not
  add error messages to the output.


type: ci
user: drh
comment:
  Send the parent-project-name and parent-project-code configurations when
  syncing the project configurations.


type: ci
user: drh
comment:
  Add the -u/--unversioned flag to the "fossil sync" command.
  Implement the "fossil unversioned revert" command.


type: ci
user: mistachkin
comment:
  Add tests for the 'anycap', 'anoncap', and 'hascap' TH1 commands.  Also, add the --set-user-caps and --set-anon-caps options to the 'test-th-eval', 'test-th-render', and 'test-th-source' test commands.


type: ci
user: mistachkin
comment:
  Since the intent of the TH1 'hascap' command is that all specified permissions are required (i.e. the first missing permission should stop further checks), correct the loop invariant.


type: ci
user: mistachkin
comment:
  When tracing the 'anoncap' or 'hascap' commands, which share an implementation, show which one is being traced.


type: ci
user: mistachkin
comment:
  Defer copying the capabilities for the logged in user until after the special 'auto-hyperlink' processing is completed; otherwise, the anonymous permissions may not gain the 'h' permission.


type: ci
user: drh
comment:
  Fix the "fossil rebuild" command so that it no longer trashes the unversioned
  content.  Add the -u option to "fossil clone" to retrieve unversioned content
  during the clone.


type: ci
user: drh
comment:
  Use the new SQLITE_DBCONFIG_MAINDBNAME feature of SQLite to eliminate the
  need for the db_name() hack.


type: ci
user: mistachkin
comment:
  Fix the code in db_open_config() that checks the current 'attachment mode' for the configuration database against the requested one.


type: ci
user: drh
comment:
  Fix the /uv page so that it correctly handles a missing "name".  First it
  looks for "index.html", "index.wiki", "index.md" and "index.th1", then if
  none of those documents are found, it does the equivalent of /uvlist.


type: ci
user: drh
comment:
  Remove the db_name() function.  In its place, the SQLITE_DBCONFIG_MAINDBNAME
  feature of SQLite is used to ensure that the three attached databases are
  always exactly named "repository", "configdb" and "localdb", regardless of
  which is opened first or the order in which they are attached.  Update to
  the latest 3.15 alpha of SQLite which is now required for correct
  operation, since SQLITE_DBCONFIG_MAINDBNAME is required.


type: ci
user: drh
comment:
  Improved origin tracking for unversioned files.  Show Admin/Setup users
  the rcvid and allow them to see the originating IP address and to delete
  unversioned files.  Update the rcvfrom table viewer to include unversioned
  file entries.


type: ci
user: mistachkin
comment:
  Add extensive tests for the 'settings' and 'unset' commands.  Also, add --exact option to the 'settings' / 'unset' commands.


type: g
user: jan.nijtmans
comment:
  Edit [22ed008469c15dfa|22ed008469]: Move to branch [/timeline?r=mistake&nd&dp=22ed008469c15dfa&unhide | mistake]. Add propagating "hidden". Mark "Closed".


type: ci
user: drh
comment:
  When there is no argument to the /uv page, make "index.wiki" the default.
  Do not allow "index.html" since that probably will not have
  the correct &lt;base&gt; header.


type: ci
user: mistachkin
comment:
  Add extensive tests for the 'settings' and 'unset' commands. Also, add --exact option to the 'settings' / 'unset' commands.


type: ci
user: drh
comment:
  In the pie-chart generator, if there is a wedge pointing straight down,
  make sure its text label flows off to the right, not the left.


type: ci
user: jan.nijtmans
ecomment:
  Unbreak compilation on Cygwin. Allow notepad to be used as unversioned content editor (notepad cannot handle UNIX line-endings)

comment:
  Unbreak compilation on Cygwin. Allow notpad to be used as unversioned content editor (notepad cannot handle UNIX line-endings)


type: ci
user: drh
comment:
  In documentation search results, change URLs of the form "/doc/BRANCH/path"
  so that BRANCH is the branch name specified by the "doc-branch" setting.


type: ci
user: drh
comment:
  Add the /test-ftsdocs page, accessible only by administrators.  Improved
  comments in the search logic.


type: ci
user: drh
comment:
  Put the "trunk" in the document URL when the ftsdocs table is first constructed,
  rather than translating the URL upon display.


type: ci
user: drh
comment:
  Fix overlength source lines in diff.c.  Raise limits and fix inappropriate
  use of memcmp() in mkindex.c.


type: ci
user: drh
comment:
  Change the UNVERSIONED table to use an INTEGER PRIMARY KEY with AUTOINCREMENT.
  This is a precondition to adding search to unversioned files.  To rebuild
  legacy repos, first DROP the old unversioned table, then run "fossil sync -u".


type: ci
user: jan.nijtmans
comment:
  Fix for lockup on merge with rename and custom baseline. Change received from drh via mailing list. See [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg23838.html] for details.


type: ci
user: andygoth
ecomment:
  Possible fix for lockup on merge with rename and (maybe?) custom baseline (exact reasons for lockup not 100% known), resolves issue with my (private) repository. Change received from drh via mailing list. See [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg23838.html] for details.

comment:
  Possible fix for lockup on merge with rename and (maybe?) custom baseline (exact reasons for lockup not 100% known), resolves issue with my (private) repository. Change received from drh via mailing list. See http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg23838.html for details.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick) Make fossil compilable with (externally-built) openssl-1.1.0. Still compiles/runs with openssl 1.0.2 equally well (actual switch is not made yet)


type: ci
user: jan.nijtmans
comment:
  Complete transition to OpenSSL 1.1.0, which needs additional library on Windows (crypt32.dll) and which has support for ssl2 removed completely.


type: ci
user: drh
ecomment:
  Oops.  FTS5 depends on INCRBLOB.  Was:
  Add the SQLITE_OMIT_INCRBLOB and SQLITE_OMIT_SHARED_CACHE compile-time options
  to SQLite.  Update the built-in SQLite sources to the latest 3.15 alpha 
  that will build without warnings when the above options are set.

comment:
  Add the SQLITE_OMIT_INCRBLOB and SQLITE_OMIT_SHARED_CACHE compile-time options
  to SQLite.  Update the built-in SQLite sources to the latest 3.15 alpha 
  that will build without warnings when the above options are set.


type: g
user: mistachkin
comment:
  Edit [958f1a89dc720e96|958f1a89dc]: Move to branch [/timeline?r=openssl-1.1.0&nd&dp=958f1a89dc720e96&unhide | openssl-1.1.0].


type: g
user: mistachkin
comment:
  Edit [1912b2f864a746bb|1912b2f864]: Move to branch [/timeline?r=stash-fixes-openssl-1.1.0&nd&dp=1912b2f864a746bb&unhide | stash-fixes-openssl-1.1.0].


type: ci
user: jan.nijtmans
ecomment:
  Make fossil compilable with (externally-built) openssl-1.1.0. Still compiles/runs with openssl 1.0.2 equally well (actual switch is not made yet)

comment:
  Make fossil compilable with (externally-built) openssl-1.1.0. Still compiles/runs with openssl 1.1.2 equally well (actual switch is not made yet)


type: ci
user: jan.nijtmans
ecomment:
  (cherry-pick): Update the makefiles so that the build-in SQLite compiles with SQLITE_OMIT_SHARED_CACHE. 
  Update the build-in SQLite sources to 3.14.2.

comment:
  (cherry-pick): Update the makefiles so that the build-in SQLite compiles with SQLITE_OMIT_SHARED_CACHE. 
  Update the build-in SQLite sources to 3.15.2.


type: g
user: drh
comment:
  Edit [65207d617dfb2da1|65207d617d]: Move to branch [/timeline?r=mistake&nd&dp=65207d617dfb2da1&unhide | mistake]. Edit check-in comment.


type: ci
user: drh
comment:
  Update the makefiles so that the build-in SQLite compiles with
  SQLITE_OMIT_SHARED_CACHE.  Update the build-in SQLite sources to the latest
  3.15 alpha, which compiles without warning with the above option.


type: ci
user: drh
comment:
  Previous documentation change did not work for repositories that are not
  at the root of the domain.  This should fix it.


type: ci
user: drh
comment:
  Only include the built-in help text once, it the "help" command implementation,
  not also in the "setup" command.  This reduces the size of the binary by
  the size of the built-in help table.


type: ci
user: andybradford
ecomment:
  Fix timeline command bug reported by Roy Keene.  If the nearest artifact 
  found is a wiki page, it may not have a child, so instead use the time of
  whatever name_to_uuid finds. For example:
  fossil timeline after 2015-03-14T13:46:20

comment:
  Fix timeline command bug reported by Roy Keene.  If the nearest artifact 
  found is a wiki page, it may not have a child, so instead use time time of
  whatever name_to_uuid finds. For example:
  fossil timeline after 2015-03-14T13:46:20


type: ci
user: drh
comment:
  Refactor command and webpage name lookup.  Move all associated logic out
  of main.c and into a new file named "dispatch.c".  There is now a single
  const array of objects named "aCommand" that contains all command and webpage
  names together with their help text.


type: ci
user: drh
comment:
  Revise the COMMAND: and WEBSITE: parsing to add the ability to specify flag
  options after the command or website name.


type: ci
user: mistachkin
comment:
  Make it easier to debug the ZIP web page.  Enhance consistency between the Tarball and ZIP web pages.


type: ci
user: mistachkin
comment:
  Make it easier to debug the ZIP web page. Enhance consistency between the Tarball and ZIP web pages.


type: ci
user: andygoth
ecomment:
  Remove extraneous periods in timeline on branch move events, also correct verb tense to be more consistent. This change may require a rebuild to take full effect because an event table may be caching the old event text.

comment:
  Remove extraneous periods in timeline on branch move events, also correct verb tense to be more consistent.


type: ci
user: drh
comment:
  Fix for the "-u" option on clone - make sure at least three round-trips occur
  as it takes that many to get the UV transfer started.


type: ci
user: drh
comment:
  Add the --verbose and --dryrun options to the "fossil unversioned revert"
  and "fossil unversioned sync" commands.


type: ci
user: drh
comment:
  Add the uv-sync setting, which if enabled causes the server to automatically
  send all unversioned content as part of a clone, and which causes all syncs
  to also sync unversioned content.


type: ci
user: drh
comment:
  Drop support for the undocumented (and non-working) subrepository feature
  unless the -DFOSSIL_ENABLE_SUBREPOSITORY compile-time option is used.


type: ci
user: nick.lloyd
comment:
  Fix a problem that can occasionally occur with repeated syncs to/from a git repository,
  where a fossil-generated mark clashes with a mark previously generated by git, causing
  the sync to fail.


type: ci
user: drh
comment:
  Update to the latest SQLite 3.15.0 beta for testing.  Adjust the SQLite
  compilation to use the "lean" configuration.


type: ci
user: drh
comment:
  Fix the "fossil fts-config reindex" command so that it really does reindex
  everything.  Fix the markdown HTML formatter so that it can be run from the
  command-line.  Change a query in the search engine to use a row-value update,
  in order to beta-test the new row-value update mechanism of SQLite.


type: ci
user: nick.lloyd
ecomment:
  Remove comment from inout.wiki about having to merge trunk into master after importing from Git repo.

  This is no longer true.  Fossil automatically converts references to master into trunk
  when importing, and vice versa when exporting.

comment:
  Remove comment about having to merge trunk into master after importing from Git repo.

  This is no longer true.  Fossil automatically converts references to master into trunk
  when importing, and vice versa when exporting.


type: ci
user: drh
comment:
  Add the help_to_html() routine which transforms plaintext help into HTML for
  display on web pages.  So far it only surrounds the text with 
  &lt;pre&gt;..&lt;/pre&gt;.  But it can (in theory) be enhanced to do more
  sophisticated formatting.


type: ci
user: rberteig
comment:
  Fix regression to test case amend-close-1.3 caused by checkin [f4b5881b] which changed the commit message stored when marking a branch closed. The test case has been changed so that it passes.


type: ci
user: drh
comment:
  Use the DBSTAT virtual table as a table-valued function instead of creating
  a TEMP instance of the table, while generating the /repo-tabsize page.


type: ci
user: rberteig
comment:
  Fix test suite regression caused by the addtion of the new uv-sync setting in check-in [b9fd5947ef] without updating the list of all settings in tester.tcl.


type: ci
user: drh
comment:
  Simplification and optimization of the break_into_lines() helper routine
  in the diff logic.  Use the strchr() routine from the standard library to
  help locate \n characters.


type: ci
user: drh
comment:
  In the random merge test (merge2.test) ignore cases where the parallel
  random edits overlap, resulting in a merge conflict.


type: ci
user: drh
comment:
  Distinguish between a deleted file and a binary file in the side-by-side
  diff generator.  Fix for a bug introduced by check-in [233e9328ee639b].


type: ci
user: andygoth
comment:
  Add "circa" timeline link to show changes made around the time of a given check-in even if they are neither ancestors nor descendants.


type: ci
user: mistachkin
comment:
  The 'diff' command operates on files within the repository; therefore, it should use the directory symlinks.


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest 3.15.0 beta for testing.
  Add new performance-enhancing compile-time options to the SQLite build.


type: ci
user: drh
comment:
  The previous check-in was interpreting any file that did not end in \n as
  binary.  This check-in should fix the problem.


type: ci
user: drh
comment:
  If a file to be diffed contains an 0x00 character, consider it to be binary
  and do not attempt the diff.


type: ci
user: drh
comment:
  Fix typos in the sync document.  Make "uv" an alias for "unversioned".
  Prohibit unversioned filename that contain whitespace since the sync protocol
  cannot currently handle such files.


type: ci
user: drh
comment:
  Give a better error message when unable to open a file that uses one of
  the Windows reserved names, like "AUX" or "LPT3".


type: ci
user: mistachkin
comment:
  Make the '--stopper' option for the 'server' command on Windows work as advertised even when the server thread is being blocked by accept().


type: ci
user: andybradford
comment:
  Given that the buffer may not actually be memory obtained by
  malloc(), make sure that it is, that checksum() doesn't fail an assertion.


type: ci
user: mistachkin
comment:
  Modify expected results for one of the TH1 hooks tests to account for the changes in [274e537bb064db9d].


type: ci
user: mistachkin
comment:
  The changes in [b045d0774ed48936] are too far reaching.  Instead, add a -keepNewline option and use it where appropriate.


type: ci
user: andybradford
comment:
  Update delta1 test cases to normalize the result so they pass again.
  Add additional tests to cover assertion failure caused by empty delta inputs.


type: ci
user: andygoth
comment:
  Propose an enhanced changes command.  At this point, there is no implementation, only help text describing the new options and behaviors.


type: ci
user: andybradford
comment:
  Enhance the functionality of the Login Group feature to allow administrators
  to enable Login Group self-registration.


type: ci
user: andybradford
comment:
  Update test_start_server procedure to return the port as well because fossil
  server dynamically allocates a port.


type: ci
user: mistachkin
comment:
  Adjustments to the 'test_start_server' Fossil test suite procedure to make it work better on Windows.


type: ci
user: andygoth
ecomment:
  Show all files in fusefs directory listings.  Previously, if one file's name is a prefix of another file's name in the same directory, the file with the longer name is not included in directory listings.

comment:
  Show all files in fusefs directory listings.  Previously, if one file's name is a prefix of another file's name in the same directory, the file with the longer name would not be included in directory listings.


type: ci
user: rberteig
comment:
  Add the --localhost argument to the fossil server command invoked by test_start_server in test/tester.tcl. This change causes the server to only bind to localhost:8080, which does not trigger the Windows Firewall to panic about a program attempting to communicate with the world. Tested on a 64-bit binary built from VS2010, and a 32-bit binaray build from MinGW GCC 4.2.7, both under Windows 10 Pro. I expect the flag works and is harmless on other platforms.


type: ci
user: mistachkin
comment:
  Further revise the 'test_start_server' and 'test_stop_server' test suite helper procedures to make it possible to actually delete the temporary output-capture file on Windows.


type: ci
user: andygoth
comment:
  "stash cat" worked the same as "stash diff", yet "stash cat -tk" worked the same as "stash show -tk".  Make "stash cat" behave like "stash show" which matches the -tk case and also the documentation.  Also add mention of DIFF-OPTIONS to the stash show|cat|diff|gdiff usage text.  Remove unnecessary variable initialization in stash_get_id(), plus show the bad stash ID string rather than "0" if a non-numeric was used.


type: ci
user: mistachkin
comment:
  Add text for the '--ssl-identity' global option to the 'Environment Variables and Global Options' page.


type: ci
user: andybradford
comment: Begin the transaction block before inserting any content.
ecomment:
  Begin the transaction block before inserting any content.  Addresses one of the bugs reported by Venkat Iyer on ML.


type: ci
user: andygoth
comment:
  Add ms=EXACT|LIKE|GLOB|REGEXP timeline query parameter which changes the interpretation of the t= and r= query parameters to exact (default), SQL LIKE, glob, or regular expression matching.  Other than exact matching, the t= or r= parameter value is interpreted as a whitespace- or comma-delimited list of match patterns, with the option to quote a pattern using single or double quotes in case it contains commas or whitespace.  For regular expression matching only, backslash can also be used to inhibit delimiter interpretation of the next character.  At this point, the only way to use this feature is to type ms= directly into the URL; the UI still needs to be updated.  Be aware for LIKE interpretation that % needs to be written as %25.


type: ci
user: drh
comment:
  Add fragment anchors in the changes.wiki page.  Update the mkdownload.tcl
  script so that it works with the new unversioned-file download.


type: ci
user: andybradford
comment:
  Now that FuseFS support is conditional, permit config.h to be included so FOSSIL_HAVE_FUSEFS can be correctly included from autoconfig.h to avoid linker failure to find fusefs_cmd.


type: ci
user: drh
comment:
  Combine multiple merge lines to the bottomn of the page when they reference the
  same source check-in.


type: ci
user: jan.nijtmans
comment:
  Fix harmless "Local declaration of 'rc' hides declaration of the same name in outer scope", reported by Kevin (arnoldemu) on fossil-users list.


type: ci
user: drh
comment:
  Backout the fusefs change.  The correct solution is to run "./configure" 
  followed by "make clean fossil" in order to rebuild when updating from 
  historical sources.


type: ci
user: mistachkin
comment:
  Fix compilation issue on Unix due to 'mkindex' wrongly attempting to include 'cmd_win32_service' due to its #if processing.


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest trunk version that includes a fix
  to VACUUM to prevent it from running out of memory on very large databases.


type: ci
user: jan.nijtmans
comment:
  Cherrypick 3 bug-fixes from SQLite trunk, discovered just after the SQLite 3.15 release, among them a fix to VACUUM to prevent it from running out of memory on very large databases
  See [http://www.sqlite.org/src/info/34a579141b2c5ac|34a579141b2c5ac] and [http://www.sqlite.org/src/info/fef4bb4bd9185ec8f|fef4bb4bd9185ec8f]
  (most likely, those 3 will be in SQLite 3.15.1, if ever released)


type: ci
user: andygoth
comment:
  Change style_submenu_entry() to allow zero and negative iSize.  Zero iSize means display size and length limit are not specified, and negative iSize means no length limit is specified but the display size is set to the absolute value of iSize.


type: ci
user: andygoth
ecomment:
  Add timeline web UI to set tag filter and match style.  Still not 100%.  (1) Now that more than one text entry is on the page, pressing enter does not trigger a submit [Firefox ESR 10.0.12], (2) electing "Related" causes Tag Filter to blank, (3) entering a tag filter while "Related" is selected causes "Related" to be deselected, (4) possibly too much clutter, and (5) definitely too much clutter if combined with any future expansions.  (1) is due to the lack of a submit button.  (2) and (3) are a bad interaction between the t=/r= dichotomy and the design of style_submenu_entry().  (4) maybe could be addressed by changing "Related"/"Branch Only" and "Without Files"/"With Files" to checkbuttons, but style_submenu_checkbox() was never actually implemented.  (Probably also want "Unhide" to be a checkbox.)  For (5) I have in mind letting the admin define a project-specific list of preset filters.

comment:
  Add timeline web UI to set tag filter and match style.  Still not 100%.  (1) Now that more than one text entry is on the page, pressing enter does not trigger a submit [Firefox ESR 10.0.12], (2) electing "Related" causes Tag Filter to blank, (3) entering a tag filter while "Related" is selected causes "Related" to be deselected, (4) possibly too much clutter, and (5) definitely too much clutter if combined with any future expansions.  (1) is due to the lack of a submit button.  (2) and (3) are a bad interaction between the t=/r= dichotomy and the design of style_submenu_entry().  (4) maybe could be addressed by changing "Related"/"Branch Only" and "Without Files"/"With Files" to checkbuttons, but style_submenu_checkbox() was never actually implemented.  (Probably also want "Unhide" to be a checkbox.  For (5) I have in mind letting the admin define a project-specific list of preset filters.


type: ci
user: andygoth
comment:
  Integrate andygoth-quote-apostrophe.  Needed because single quotes can be used in the tag filter entry, and these single quotes would otherwise be passed through unprotected to the output HTML.


type: ci
user: andygoth
comment:
  Modify linenoise.c so that it can build with -std=c89.  Baseline linenoise.c relied on snprintf(), strdup(), and strcasecmp() which are technically not in C89.  Since linenoise.c's only purpose (at present) is to implement the SQLite shell, make use of the SQLite compatibility functions.  Following this change, "fossil clean -f && CFLAGS='-std=c89 -Wall' ./configure && make" builds without warnings or errors on gcc 4.4.7 20120313 (Red Hat 4.4.7-3) on CentOS release 6.4 (Final).  Unrelated note: discovered during testing that "CFLAGS=-Werror ./configure" fails to add -lm to link step due to conflicting types for built-in function "sin" being regarded as an error.


type: ci
user: andygoth
comment: Remove unused, undocumented zTitle argument to style_submenu_element()
ecomment:
  Remove unused, undocumented zTitle argument to style_submenu_element().  This argument appears to have been unused all the way back to [dbda8d6ce9].


type: ci
user: andygoth
ecomment:
  Fix various typos in makeheaders.html.  Use curly quotes instead of classic `` and '' quotes (ref: [http://www.dwheeler.com/essays/quotes-in-html.html]).  Format most such quoted text in monospace print.

comment:
  Fix various typos in makeheaders.html.  Use curly quotes instead of classic  and '' quotes (ref: http://www.dwheeler.com/essays/quotes-in-html.html).  Format most such quoted text in monospace print.


type: ci
user: andygoth
comment:
  Consistently use the count(X) macro in place of sizeof(X)/sizeof(*X) throughout the Fossil core, excluding things that don't use makeheaders.  Also use count(X) instead of ArraySize(X) which has the same definition.


type: ci
user: andygoth
comment:
  Merge trunk.  Some issues identified by [d4a6d3c1ec] are now improved.  (1) is fixed, though clicking/tabbing outside the entry field also triggers a submit which may prove annoying.  (2) and (3) are still broken.  (4) is better because "With/Without Files" is now a checkbox simply labeled "Files".  (5) is closer to being feasible, perhaps if "Tag Filter:" is changed to "Filter:".


type: ci
user: andygoth
comment:
  Implement style_submenu_checkbox().  Change "unhide" to a checkbox so it can be cancelled without editing the URL by hand.  Update skins to support use of <label> tag.  Remove redundant "if" check in style.c.  Checkbox styling can certainly be improved, but this is a start.


type: ci
user: andygoth
comment:
  Change "v" (files) option from a binary submenu to a checkbox, move to the right of the unhide checkbox so the checkboxes are grouped together


type: ci
user: andygoth
comment:
  Remove extra class='submenuctrl' from checkbox input because already present in the enclosing <label>


type: ci
user: andygoth
comment:
  Add explicit call to form submit() when changing a text entry so style_submenu_entry() can be used multiple times per page


type: ci
user: andygoth
comment:
  Use <label> to connect setup checkboxes with their label text so either the checkbox or the label can be clicked on, also makes the checkbox highlight when the mouse hovers on the label


type: ci
user: andygoth
comment:
  Rework [98cc8782e1] to more thoroughly ignore empty match tags and patterns so that the "Related" submenu item does not appear due to an empty tag filter text entry adding "t=" to the query string


type: ci
user: andygoth
comment:
  Draw dotted box around entire row of checkout version, not just the check-in comment and descriptive text.  In my experience, it's too hard to see the dotted box against a colored background when the checkout version is on a branch.  This whole-row behavior matches the version marking option provided by the timeline "m" query string.  I considered also increasing the line thickness from 1px to 2px, but I found it to be too distracting.  Instead, I added a very faint shadow similar to, but much lighter than, the one used by the "m" version marker.


type: ci
user: andygoth
comment:
  Add timeline rel query string and change r=TAG to be an alias for t=TAG&rel so that related can be a checkbox and the tag filter text entry can work whether or not related is checked.  This addresses issues (2) and (3).


type: ci
user: ashepilko
comment: diff: extra empty lines in non-console output on Windows
ecomment:
  Fix extra empty lines in diff output from non-interactive process on Windows; similar to [f2fc37c0].


type: ci
user: andygoth
comment:
  Check regular expressions for errors.  Add error reporting mechanism.  Leave bad patterns out of filter.  Add showid and showsql to timeline help text.


type: ci
user: andygoth
comment:
  Enhance translate.c to interpret backslash at the end of a cgi_printf() "@" line as a directive to omit the newline


type: ci
user: andygoth
comment:
  Change help index command list from seven columns to six to better match the widths of the other lists presented on the page


type: ci
user: andygoth
comment:
  Demote the rss command to second-tier because it is infrequently used and falls in the saame general category as the server and cgi commands which are already second-tier


type: ci
user: andygoth
comment:
  Add BCCFLAGS and XBCC to build system so that programs which run on the build platform (e.g. translate) can have the benefit of CFLAGS, e.g. -ggdb3 for easier debugging in gdb or -std=c89 to flush out C99.  Do not update win/* because I don't have the ability to test those changes.


type: ci
user: andygoth
comment:
  Correct title of Principles Of Operation page.  Perhaps mkindex.tcl should be taught to extract titles from the documents themselves


type: ci
user: andygoth
comment:
  Remove cmd_.wiki-template which is a relic (avoiding the pun...) from when the commands were documented as individual /doc/cmd_*.wiki files


type: ci
user: andygoth
comment:
  Have makeheaders ignore completely anonymous enums so they can be used within a single source file, useful for value autoincrementing.  Update documentation accordingly.  Write more about makeheaders's limitations discovered while researching this issue.  Remove unnecessary explicit links to makeheaders.html in said file so it can be renamed without consequence.  Ensure href attributes are surrounded by quotes.  Add missing </html> to end of makeheaders.html.


type: ci
user: andygoth
comment:
  Adjust the way --changed is implemented.  Improve documentation.  Avoid saying
  EDITED for files with other types of changes if those change types were not
  selected for display.


type: ci
user: andygoth
comment:
  Fold print_changes() into status_cmd() (formerly changes_cmd()).  Remove C_SHA1SUM, C_HEADER, and C_VERBOSE flags which are no longer needed for communicating options to print_changes().  Move locate_unmanaged_files() closer to the top of the file so status_cmd() can call it.  Implement C_UNMODIFIED and C_EXTRA in status_report().  Document the fact that the changes and status commands take optional path arguments.  Let changes and status commands accept --case-sensitive (was already done), --dotfiles, and --ignore for the benefit of --extras.  Incorporate search for extra files into status_cmd().


type: ci
user: andybradford
comment:
  Move macro definition to config.h which is included everywhere to fix build
  failure reported on mailing list with "configure --json --with-tcl --with-th1-docs".


type: ci
user: andygoth
comment:
  Minor optimization to status_report() to avoid building list of managed files if only unmanaged files are requested.  Move unmanaged file reserved name filtering to status_report().  Ensure db_get*() calls happen after db_must_be_within_tree().  Implement extras_cmd() in terms of status_report().


type: ci
user: andygoth
comment:
  Change -unmodified/UNMODIFIED to -unchanged/UNCHANGED in status_report() for consistency with the ls -v command


type: ci
user: andygoth
comment:
  Add more comments.  Replace the changesOnly field with the knowledge that --classify and --no-classify are the only table-driven options specific to the changes command.  Correctly ignore --header and -v|verbose when running the status command so their use triggers an error.  Add the --differ option which combines the default list of changes (sans --merge) with --extra, i.e. all files that differ from the checked-out baseline version.


type: ci
user: andygoth
comment: Add workaround code
ecomment:
  Begin expanding status_report() to support being the backend for the ls command.  The work is not yet complete.  First we must debug a mysterious abort in SQLite.  Test case: run "./fossil changes -differ" with at least one changed file.


type: ci
user: andygoth
comment:
  More reliably work around the problem experienced by the previous commit.  Not sure if this is the right long-term solution since we seem to have an architectural problem: at least one of Fossil's custom SQL functions can change the schema (in this case, by creating a temporary table), thereby invalidating a prepared statement while it is running.  See the comment in checkin.c for a bit more information.  Of course, there are rearrangements that avoid the issue, but it is certainly a trap for the unwary.


type: ci
user: andygoth
comment:
  Document actual behavior of ls command.  I'm questioning whether it's worth maintaining backward compatibility with this highly non-orthogonal collection of options whose behaviors all affect each other with varying degrees of nuance.


type: g
user: andybradford
comment:
  Edit [ae424dc16a2958f1|ae424dc16a]: Move to branch [/timeline?r=mistake&nd&dp=ae424dc16a2958f1&unhide | mistake]. Add propagating "hidden". Mark "Closed". Edit check-in comment.


type: ci
user: andygoth
comment:
  Correct internal contradiction in updated ls documentation to match actual behavior.  This is too complicated.


type: ci
user: andygoth
comment:
  Correct SQL syntax error on "fossil changes -merge" which is not supposed to display any files yet still tries to run the file query even though it says only "ORDER BY pathname" with no SELECT


type: ci
user: andygoth
comment:
  Integrate andygoth-changes for broader testing and comment.  This change should be fully backward-compatible, unless of course a script depends on the help text never changing or new options never being added.  All existing options and defaults should work identically to before.  I had planned to update the ls command to use the same backend as changes/status, but that work will have to wait until we decide if the ls options should be redesigned.  The SCAN_MTIME, SCAN_SIZE, C_MTIME, and C_SIZE flags are currently unused and can be removed, but their presence harms nothing, and they should be useful for a basis for an updated ls command, though they may need modification to address confusion between commit time, on-disk mtime, checked-in size, and on-disk size.


type: ci
user: andygoth
ecomment:
  Ensure deleted/missing files are not processed as other types of files when C_DELETED and C_MISSING are not specified

comment:
  Ensure deleted/missing files are not processed as other types of files even if C_DELETED and C_MISSING are not specified


type: ci
user: andygoth
comment:
  Integrate andygoth-crlf.  This renames CRNL to CRLF throughout Fossil.  crnl-glob is renamed to crlf-glob, but crnl-glob is retained as a compatibility alias.


type: ci
user: andygoth
comment:
  Move changes to bottom (were placed at top by prior merge) and change verb tense to match other changes


type: ci
user: andygoth
comment:
  Use rgba(0,0,0,0.5) instead of #888 to implement 50% shadow so that the shadow works even against a colored or dark background


type: ci
user: andygoth
comment:
  Correct recent makeheaders.html documentation update to respect the prohibition of multiple global variables per declaration


type: ci
user: andybradford
comment:
  Add option to test-find-pivot to assist in discovering "name pivots" when
  diagnosing merge failures.


type: ci
user: andygoth
comment:
  Correct issue with open/closed tags by changing the closed column to a quasi-aggregate query, i.e. one which is a function of the argument to GROUP BY and not anything which varies within the group.  This gives consistent results with the baseline branch ls command, but it introduces a MAJOR performance regression.  Listing closed tags goes from 0.033s in the baseline to 1.882s, i.e. it takes 56 times longer.


type: g
user: andygoth
comment:
  Edit [01c83bfbbfc5700a|01c83bfbbf]: Move to branch [/timeline?r=mistake&nd&dp=01c83bfbbfc5700a&unhide | mistake]. Add propagating "hidden".


type: ci
user: jan.nijtmans
comment:
  Make "fossil extra" work as expected in fossil repository: not mentioning build-artifacts any more. This makes sure that files resulting from a build cannot be accidently "fossil add"-ed any more.


type: ci
user: mistachkin
comment:
  Regenerate the MinGW makefile, since it apparently does use XBCC.  Also, sync up the custom MinGW makefile with it.


type: ci
user: mistachkin
comment:
  Since the 'manifest' setting is no longer a strictly binary option, prevent it from being displayed as such on the settings page.


type: ci
user: mistachkin
ecomment:
  The 'ignore-glob' setting should not be used for build output files; otherwise, 'extras' command is unable to see them and 'clean' command is unable to remove then.  Also, the 'add' command should already ignore files matching the 'clean-glob', there is no need to duplicate its contents in 'ignore-glob'.

  Remark (JN): "fossil clean -x" could be your friend here, it makes life a lot easier.

comment:
  The 'ignore-glob' setting should not be used for build output files; otherwise, 'extras' command is unable to see them and 'clean' command is unable to remove then.  Also, the 'add' command should already ignore files matching the 'clean-glob', there is no need to duplicate its contents in 'ignore-glob'.


type: ci
user: andygoth
comment:
  Minor tweak to changes help text: move some trivia to the end so the more important material is read first


type: ci
user: andygoth
ecomment:
  Make artifact|whatis page use local time to match the timeline.  Otherwise clicking on date/time links finds the wrong check-in in the timeline.  May wish to convert other calls to datetime() to use local time.

comment:
  Make artifact|whatis page use local time to match the timeline.  Otherwise clicking on date/time links finds the wrong check-in in the timeline


type: ci
user: andybradford
comment:
  Add test case to handle file add and rename before merging to trunk.
  Make test_setup return the repository path so it can be used in the test.


type: ci
user: andygoth
comment:
  Fix timeline -n 0 to display an unlimited number of lines (rather than zero) to match documentation.  Correct timeline -n for negative N documentation to match actual behavior.  Limit compute_ancestors() and compute_descendants() on the assumption that there is no more than one entry per line.


type: ci
user: andygoth
comment:
  Don't rely on vfile.islink to tell whether or not a file is currently a symlink for the purpose of avoiding calling file_contains_merge_marker().  It is possible for a file to have become a symlink since the last commit.  If the link target's string length is not equal to the former file size, vfile_check_signature() will treat it as a normal change and not mark it as chnged==8 (SYMLINK), so execution can fall through to the undesirable call to file_contains_merge_marker().


type: ci
user: andygoth
comment:
  Make changing to a symlink take priority over all other change types.  This might also be a solution to the problem fixed by the previous commit, but it also avoids having a file that becomes a symlink (with target string length not equal to former file size) being marked as an ordinary edit.


type: ci
user: andygoth
comment:
  Fix revert -r option to mark a reverted file as edited if the reverted-to version does not exactly match the checkout version, even if the file size is equal


type: ci
user: andygoth
comment: Allow uv delete (or del) as an alias for uv remove or uv rm
ecomment:
  Allow uv delete (or del) as an alias for uv remove or uv rm.  See [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg24322.html].


type: ci
user: andygoth
comment:
  Enable linenoise multiline editing so long commands and queries may be seen all at once therefore highlighted and copied from xterms


type: ci
user: andygoth
ecomment:
  Begin work merging new_brlist_page() into brlist_page().

  Annoyance: The new open/closed checkboxes don't quite work the way I want
  them to work.  Deselecting both has the effect of selecting both.  This makes
  sense in that if neither the open nor closed query parameters are given,
  everything should be displayed, rather than nothing.  Yet, the user interface
  would be nicer if deselecting the only selected checkbox causes the other
  checkbox to be selected.  This can't be done with straight HTML because
  deselecting the checkbox removes it from the query string, and the server does
  not know which checkbox was deselected so it cannot force the other one to
  become selected.  As far as I know, JavaScript is required.

  Bug: Non-aggregate HAVING clause expressions are evaluated on an arbitrarily
  chosen row within each group.  This breaks closed and open filtering for the
  command-line branch command and the new checkboxes.  But shouldn't this also
  break non-aggregate result expressions?

  Wish: Filter on normal/hidden branches too.

  Wish: If a merged-to branch is hidden, don't show it in the resolution column,
  instead show something else.  The latest merged-to?  The earliest merged-to?

  Wish: Branch name filters, just like on the timeline page.

comment:
  Begin work merging new_brlist_page() into brlist_page().

  Annoyance: The new open/closed checkboxes don't quite work the way I want
  them to work.  Deselecting both has the effect of selecting both.  This makes
  sense in that if neither the open nor closed query parameters are given,
  everything should be displayed, rather than nothing.  Yet, the user interface
  would be nicer if deselecting the only selected checkbox causes the other
  checkbox to be selected.  This can't be done with straight HTML because
  deselecting the checkbox removes it from the query string, and the server does
  not know which checkbox was deselected so it cannot force the other one to
  become selected.  As far as I know, JavaScript is required.

  Bug: Non-aggregate HAVING clause expressions are evaluated on an arbitrarily
  chosen row within each group.  This breaks closed and open filtering for the
  command-line branch command and the new checkboxes.  But shouldn't this also
  break non-aggregate result expressions?

  Wish: Filter on normal/hidden branches too.

  Wish: If a merged-to branch is hidden, don't show it in the resolution column,
  instead show something else.  The latest merged-to?  The earliest merged-to?


type: ci
user: andygoth
comment:
  Remove min() from closed expression.  It doesn't solve the problem, and it confuses analysis of the issue.


type: ci
user: drh
comment:
  Avoid comparing a variable to NULL after the memory it is pointing to has been
  freed.  This is harmless, as implemented, but it is technically undefined
  behavior in C.  (This is a bug in the specification of the C language, imho.)


type: ci
user: andybradford
comment: Possible fix for regression reported on mailing list.
ecomment:
  Possible fix for regression reported on mailing list.
  It looks like there is already a better fix in [9807a05d8a].


type: ci
user: drh
comment:
  New /file page that works like /artifact except takes a filename as an
  argument instead of a SHA1 hash of an artifact, and resolves to the most
  recent version of any file with that name.


type: ci
user: drh
comment:
  Fix the "fossil all ui" command so that it works on Windows.  But also
  comment out some very confused logic in process_on_web_page() that is
  associated with "--baseurl" option.  This logic needs to be fixed prior
  to merging with trunk.


type: g
user: drh
comment:
  Edit [98e9fd735211c578|98e9fd7352]: Move to branch [/timeline?r=all-ui&nd&dp=98e9fd735211c578&unhide | all-ui].


type: ci
user: drh
comment:
  Get the "fossil all ui" command working on windows systems where the
  global_config table has "repo:" entries that omit the drive letter.


type: ci
user: jan.nijtmans
comment:
  Get the "fossil all ui" command working on Cygwin where the global_config table has "repo:" entries containing the windows drive letter


type: ci
user: drh
comment:
  Fix a link to the download page on the homepage.  Fix a typo in the
  concepts.wiki documentation page.


type: ci
user: drh
comment:
  Fix the logic that combines merge risers (originally added to trunk by
  check-in [95d6ddc3]).  Add test cases for this fix to graph-test-1.wiki.


type: ci
user: mgagnon
comment:
  When calling gdiff (or stash gdiff) command between 2 versions, use the
  filename to prefix the temporary random filename so once inside the external
  diff program we know what file is being compared.

  (pending-review)


type: ci
user: drh
comment:
  When doing a gdiff between two versions, use the files being diffed as a 
  basis for the temporary filenames that are constructed.


type: ci
user: drh
comment:
  When a file has been deleted on the current branch and edited on a
  separate branch, bring in the edited version of the file when merging
  from the separate branch.


type: ci
user: drh
comment:
  Improve the "fossil sql" command so that it opens all database - repository,
  localdb, and configdb.  Use the latest command-line shell code from the
  SQLite project so that the ".tables" command correctly shows all tables.


type: ci
user: drh
comment:
  Update the shell.c file from upstream (SQLite) so that the ".databases"
  command works with arbitrary-length filenames.


type: ci
user: drh
comment:
  Update the built-in SQLite to include the change that makes "main" an
  acceptable alias for the primary database, even if the primary database
  has been renamed to "repository" or "localdb".


type: ci
user: drh
comment:
  Improved documentation of the "fossil sql" command.  Add a note to the
  change log discussing recent enhancements to the "fossil sql" command.


type: ci
user: jan.nijtmans
comment:
  Add a web-page, where we can see the details on how SQLite was compiled (pragma compile_options), as sub-page for "stat".


type: ci
user: drh
comment:
  The "fossil all ui" command still does not work for repos that do not end
  in ".fossil", but it at least does not hyperlink them any more.


type: ci
user: drh
comment:
  Expand the scope of the new Remark artifact so that it may be attached to
  either a check-in or a branch.


type: ci
user: mistachkin
comment:
  Since the db_database_slot() function is called during database error processing, it must use db_prepare_ignore_error() and then check the return code.


type: ci
user: mistachkin
comment:
  Add the changes from check-in [3dddf7674b] to the 'makemake.tcl' tool, which is used to generate the Makefiles.


type: ci
user: drh
comment:
  Fix obsolete references to the legacy download page.  Always refer to the new
  unversioned-content download page.


type: ci
user: drh
comment:
  The "fossil version -v" command and the /version?verbose webpage show the
  same output.  Update the change log for the 1.37 release.


type: ci
user: drh
comment:
  Update the www/mkdownload.tcl script so that it generates a download page
  appropriate for version 1.37.


type: ci
user: jan.nijtmans
comment:
  Make "fossil version -v" work again with SQLite 3.15.x, since no-where is documented that "fossil now requires SQLite 3.16"


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Fix the --differ option on "fossil changes" which was broken in the 1.37 release.
  Openssl 1.0.2j -> 1.0.2k


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): The default MIME type for JSON wiki text should be 'text/x-fossil-wiki', not 'text/plain'.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Make "fossil version -v" work again with SQLite 3.15.x, since no-where is documented that "fossil now requires SQLite 3.16"
  Change VERSION to 1.37.1 (if ever released, this should at least be in it)


type: ci
user: mistachkin
comment:
  Rename and repurpose '--no-symlinks' into '--no-dir-symlinks', to prevent traversing into symlinked directories.  Make the '--verily' option to 'clean' imply '--no-dir-symlinks'.


type: ci
user: mistachkin
comment:
  Add '--no-dir-symlinks' command line option, which prevents traversing into symlinked directories.  Make the '--verily' option to 'clean' imply '--no-dir-symlinks'.


type: ci
user: mgagnon
comment:
  On diff/gdiff command, override "diff-binary" setting when argument
  "--diff-binary off" command line option is specified, not only with
  "--diff-binary on".


type: ci
user: drh
comment:
  Fail a "fossil commit" that contains a --branch option for an open branch
  unless there is also a --force option.


type: ci
user: mgagnon
comment:
  On /dir page, add a link named "[history]" that point to the timeline
  affecting only the files inside the current directory. Use the
  "chng=dirname/*" query parameter of the /timeline page)

    TODO: Implement the same in Tree-View mode (could add the link beside each
          directory)


type: ci
user: roy.marples
comment:
  Add function print_ref to sanitize branch and tag names in accordance with
  https://git-scm.com/docs/git-check-ref-format

  Use this rather than simply replacing non alpha or numeric chars for branch
  and tag names when exporting.


type: ci
user: roy.marples
comment:
  When importing a git fast-import, we silently change master branch to trunk
  to match the default fossil naming conventions.
  So when we export to the git fast-import format, we should silently change
  the trunk branch back into master to match the git naming conventions.


type: ci
user: roy.marples
comment:
  Match committer / tag name <email> with a user's contact info record.
  If not found, then use the email address as the user name.


type: ci
user: mistachkin
comment:
  If the 'allow-symlinks' option is enabled (or the '--no-dir-symlinks' flag is specified), do not traverse into symlinked directories.


type: ci
user: roy.marples
comment:
  Add comment cards to tags, which are accepted by git import and exported to
  git export.

  They are visible via the timeline, but currently lack an editable means via the UI.


type: ci
user: jan.nijtmans
comment:
  Same as "roy-export", but use tag value in stead of comment for storing comment related to tags. (Not actually tested with GIT yet!)


type: ci
user: mistachkin
comment:
  Remove forced setting of the 'allow-symlinks' cached setting from the 'clean' and 'extras' commands.


type: ci
user: mistachkin
comment:
  For the '--no-dir-symlinks' flag to be honored when the 'allow-symlinks' setting is disabled, the file_wd_isdir() function must force lstat() to be used.


type: ci
user: mistachkin
comment:
  When the --reset option is used, reset the cached stat() information before and after dealing with it.


type: ci
user: mistachkin
comment:
  For safety, the --verily option to clean should force all symlinks to be treated as normal content files.


type: ci
user: jan.nijtmans
comment:
  Cherrypick [http://www.sqlite.org/src/info/810d29320b853b3a|810d29320b]: Remove the CLANG_VERSION macro, since we have learned that version numbers in clang are "marketing" and are inconsistent and unreliable. Builds using clang will still use the GCC_VERSION macro since clang works hard to be gcc compatible.


type: ci
user: mistachkin
comment:
  Improve the warning message about versioned/non-versioned settings so that it includes the full path to the versioned settings file, for better use with things like 'fossil all'.


type: ci
user: drh
comment:
  Add a SHA3 hash algorithm. So far the only integration is the
  "fossil sha3sum" command.

ecomment:
  Add a SHA3 hash algorithm.  So far the only integration is the 
  "fossil sha3sum" command.  (This was suppose to go on trunk.)


type: ci
user: drh
comment:
  Run the "PRAGMA optimize" command as the database is closing.  This change is intended as a test of "PRAGMA optimize".


type: ci
user: drh
comment:
  Add the /repo_stat1 webpage (accessible only to administrators).  Enhance
  the /repo_schema page so that it can optionally show the schema for a single
  table.  Include sqlite_stat1 information on the /repo_schema page.


type: ci
user: jan.nijtmans
comment:
  Fix MD5 function (actually: byteReverse) for ARM processors. If OpenSSL is available, use their MD5 impl. Exchange SHA1Final() method parameters, being compatible with OpenSSL.


type: g
user: drh
comment:
  Edit [17ea282226a68c79|17ea282226]: Move to branch [/timeline?r=sha3&nd&dp=17ea282226a68c79&unhide | sha3]. Edit check-in comment.


type: ci
user: drh
comment:
  On a check-out the manifest.uuid file is determined by the display name, not
  the SHA1 hash of the manifest.


type: ci
user: drh
comment:
  Abandon the HNAME table idea.  Instead, continue to use the BLOB.UUID as the
  primary artifact name and add the ALIAS table for aliased artifact names after
  a hash algorithm change.  Add the optional alias argument to the M-card.


type: ci
user: drh
comment:
  Back out the change to the cluster artifact M-card that added an alias name.
  The plan is to transmit alias information by new cards in the sync protocol.


type: ci
user: drh
comment:
  Update "fossil rebuild" so that it changes the CHECK constraint on the BLOB
  table to be "length(uuid)>=40" instead of "==40".


type: ci
user: drh
comment:
  Change the --sha1sum options on "fossil commit" and "fossil status" to
  be --hash, since it is no longer restricted to a single hash algorithm.


type: ci
user: drh
comment:
  Add the hname_verify_hash() routine and use it to fix "fossil test-integrity"
  such that it verifies the display hash regardless of the algorithm used.


type: ci
user: drh
comment:
  Fix the tarball and ZIP archive generators so that the use the display hash
  to populate the manifest.uuid file.


type: ci
user: drh
comment:
  Fix the FOSSIL_VERSION_NUMBER macro so that it is always of the form XYYZZ
  X is the major version number (ex: 2) and YY is the minor version number and
  ZZ is the patch number, or 0.


type: ci
user: drh
comment:
  Fix a bug in the schema definition that prevented new repositories from
  being created.  On the server side, check the authentication hash using 
  the appropriate hash algorithm.


type: ci
user: drh
comment:
  This is the branch for Fossil 2.1.  The only difference from 2.0 will be that
  in this branch SHA3 hash names are used by default, instead of SHA1.


type: ci
user: drh
comment:
  Show the correct hash algorithm name in the Overview section of the /info
  webpage.  (Originally committed to the wrong branch.)


type: ci
user: drh
comment:
  Show on the the first 40 characters of SHA3 hashes in the "fossil status"
  command, and similar, to avoid overflowing the 80-character width of a
  standard TTY window.


type: ci
user: drh
comment:
  The server issues an error asking the client to upgrade if the client is less
  than Fossil 2.0 and SHA3 content is encountered.


type: ci
user: drh
comment:
  Use the hardened SHA1 hash function from
  [https://github.com/cr-marcstevens/sha1collisiondetection].


type: ci
user: jan.nijtmans
comment:
  Cherry-pick [http://www.sqlite.org/src/info/ac760db0727209db|ac760db072] from SQLite: Fix a use-after-free problem in the shell tool code that could occur if an SQL statement were executed after an ".open" command with invalid options.


type: ci
user: mgagnon
comment:
  Add gshow and gcat command to allow to use gdiff-command when diffing the
  stash against baseline. When using gdiff, call external tool directly with the
  file from the checkout, it's usefull when merging change manually using the
  external tool.


type: ci
user: mgagnon
comment:
  Improve stash diff commands when using external diff tool to make it behave a
  little bit more like the "fossil gdiff" command.


type: ci
user: drh
comment:
  Implement the hash-policy setting and the "fossil hash-policy" command.
  The default hash policy is "auto" for existing repositories and "shun-sha1"
  for new repositories.


type: ci
user: drh
comment:
  New repositories default to hash policy "shun-sha1" with a SHA3 initial
  check-in.  But this can be overridden using the --template option with a
  template repository that is already set to a different hash policy.


type: ci
user: drh
comment:
  Add the --sha1 option to the "fossil new" command, to simplify the
  creation of new SHA1-only repositories.


type: ci
user: drh
comment:
  Move the display of hash-policy to the Schema Version line of the /stat page,
  and only show the hash-policy name if it is something other than "auto".


type: ci
user: jan.nijtmans
comment:
  For new Docker-generated repositories, use "auto" hash-policy as default: They might be synced with "sha1"-type repositories, this would render those repositories useless.


type: g
user: jan.nijtmans
comment:
  Edit [aa92dc8efe6d941a|aa92dc8efe]: Move to branch [/timeline?r=mistaks&nd&dp=aa92dc8efe6d941a&unhide | mistaks]. Add propagating "hidden". Mark "Closed".


type: ci
user: jan.nijtmans
comment:
  Remove RFC documentation from zlib redistribution. Motivation: [http://core.tcl.tk/tcl/info/e14d152114efee10394a7e0b4b1c0478efff52c5|bundled zlib documentation is under a potentially non-free license]


type: ci
user: drh
comment:
  Fix an #ifdef error in the sha3 implementation that caused suboptimal code
  for little-endian machines.


type: ci
user: drh
comment:
  The default SHA3 hash size is 256, not 224.  Fix the comments and the
  (unused) default initialization in the SHA3Init() routine.


type: ci
user: drh
comment:
  Fix the "fossil wiki export --technote" command so that it allows hash
  abbreviations again, as it should.


type: ci
user: drh
comment:
  For commands where the --sha1sum option has changed to --hash, continue
  to accept --sha1sum for historical compatibility, though leave this
  undocumented.


type: ci
user: drh
comment:
  More refactoring of "control artifact" to "structural artifact".  Also improve
  the wording.  All in the selfcheck document.


type: ci
user: drh
comment:
  Add the capability for Fossil to directly interpret the Authentication:
  HTTP header for Basic Authentication, if enabled on the /setup_access page.
  Disabled by default.


type: ci
user: drh
comment:
  Add the capability for Fossil to directly interpret the Authentication: 
  HTTP header for Basic Authentication, if enabled on the /setup_access page.
  Disabled by default.


type: ci
user: drh
comment:
  Fix a obsolete comment related to updating the CHECK constraint on the BLOB
  table when moving up to version 2.0 or later.


type: ci
user: rberteig
comment:
  Merge in small fixes to the test suite and plan to continue improving the suite in the trunk. Also kludge login.c on MinGW which has no strtok_r() available in its libc by supplying a public domain one. There certainly is a better way to deal with this, but this unbreaks the build on Windows broken by [315cf2436].


type: ci
user: jan.nijtmans
comment:
  Fix [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847556#10|Debian bug 847556]: Cannot clone/sync over HTTPS


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Fix by Natacha Porté for delimiter escape bug discovered by Mark Janssen. (fossil-users list)


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Fix [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847556#10|Debian bug 847556]: Cannot clone/sync over HTTPS


type: ci
user: jan.nijtmans
comment:
  Merge trunk. Upgrade to OpenSSL 1.1.0f. Note that this branch only adapts the Windows buildfiles, no source-code or anything else, since Openssl 1.1.0 is (almost, not significant for fossil) upwards compatible.


type: ci
user: rberteig
comment:
  New test case for the Markdown bug, fixed issues with hash matching, fixed tests for the TH1 unversioned command so they no longer depend on unversioned files from a past release in the real repository.


type: ci
user: rberteig
comment:
  Changed remaining regexps in test cases that match hashes to allow hashes to range from 40 to 64 hex digits. Added the same_uuid proc to the test harness to regularize comparing uuids. It is true if one is a prefix of the other. There are still regressions in the test suite, especially in amend.test, but this is progress.


type: ci
user: drh
comment:
  Simplify the Basic Authentication implementation, removing the need for
  the strtok_r() library function.


type: ci
user: drh
comment:
  Enhance the /file/NAME page so that it shows directory listings if the NAME
  argument is a directory instead of a file.  If NAME is omitted, it shows
  all the files at the top-level.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Have Fossil use the new "PRAGMA optimize" feature of SQLite 3.18.0 alpha. Use latest SQLite CLI enhancements.


type: ci
user: drh
comment:
  If a directory listing (from /file or /dir or /tree) contains a README file,
  then render the content of that README beneath the directory listing.
  Example: [/file/skins]


type: ci
user: drh
comment:
  On the /tarball and /zip pages, use r= as the query parameter to select which
  check-in to download.  The uuid= query parameter is still accepted as an alias
  for backwards compatibility.


type: ci
user: rberteig
comment:
  Wrap each .test file in a catch command, with output of the error messages to the log for sanity. This should reduce the ways that a failing test case can unexpectedly wedge the entire test suite.


type: ci
user: rberteig
comment:
  In json.test, look for the empty file artifact using its new SHA3 hash explicitly. This allows json-artifact-file and related tests to pass, and eliminates a cascade of false failures that had crashed the test harness.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): On the /tarball and /zip pages, use r= as the query parameter to select which check-in to download.  The uuid= query parameter is still accepted as an alias for backwards compatibility.


type: ci
user: drh
comment:
  The hclr query parameter to /bloblist color-codes the display to show
  whether each artifact is SHA1 or SHA3.  There are no links or buttons to
  activate this query parameter.  It is designed for expert users only, to 
  be typed in manually into the URL.


type: ci
user: drh
comment:
  Update to the latest pre-release of SQLite 3.18.0 that includes a fix for
  the harmless compiler warning on Macs.


type: ci
user: rberteig
comment:
  Improve commit-warning tests by constructing test files for interesting cases aiming for coverage of all the situations that should produce warnings independent of the other files in the fossil repository.


type: ci
user: jan.nijtmans
comment:
  Since "allow-symlinks" is already ON by default on non-unix platforms (since fossil 1.35 already), no need to do anything special during GIT/SVN import.


type: ci
user: jan.nijtmans
comment:
  Remove superflouous part of autosetup/local.tcl, suggested by [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg24976.html|Steve Bennett]


type: ci
user: steveb
comment:
  Update autosetup to v0.6.6

  Includes minor update to local.tcl for new option handling,
  and also remove some unused code from local.tcl


type: ci
user: jan.nijtmans
comment:
  merge trunk. 
  Use new Win10 flag: SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE. See: [https://blogs.windows.com/buildingapps/2016/12/02/symlinks-windows-10/#Y9sMOye6Y8vVYmDx.97] for why this might make this branch work better.


type: ci
user: rberteig
comment:
  Fixed bug in test files generated in commit-warning tests that caused some UCS-2 (aka UTF-16) files to have an odd byte length and be seen as binary instead of Unicode.


type: ci
user: jan.nijtmans
comment:
  Add support for GIT comment tags, as suggested [https://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg24595.html|here]. Implementation by Roy Marples, but modified to use the (existing) 'T' card in stead of the 'C' card.


type: ci
user: sdr
comment:
  Added verbiage to --ignore options of add and addremove to state that they apply to unmanaged files only.


type: ci
user: drh
comment:
  Suppress "database locked" warnings on the "PRAGMA optimize" that occurs as
  the process is shutting down.


type: ci
user: rberteig
comment:
  Added a new document describing the details of the GLOB syntax used with many 
  settings. Updated the permuted index generator (and the index) to include it.


type: ci
euser: andygoth
user: andy
comment:
  Replace []] example with [][] because a single-character character class is not terribly useful whereas the latter demonstrates the same concept as well as the visibly unusual way to match either bracket.  Add example showing how to match a ^ character as well as ], further reinforcing the above.


type: ci
user: rberteig
comment:
  Add some hints about translating from .gitignore to ignore-glob. I only scratched the surface: this could easily become the subject of a book.


type: ci
euser: wyoung
user: tangent
comment:
  Replaced the Platform Quirks section of the www/globs.md document with
  a modified version of what I (Warren Young) posted to the mailing list,
  the differences answering Ross Berteig critiques of the original
  version.


type: ci
user: jan.nijtmans
comment:
  No need for the /version page to distinguish between verbose=2 and verbose=1, just presence (or not) of "verbose" is enough.


type: ci
user: jan.nijtmans
comment:
  gzip.c:70:13: warning: implicit conversion from 'int' to 'char' changes
        value from 255 to -1 [-Wconstant-conversion]
    aHdr[9] = 255;
            ~ ^~~


type: ci
user: drh
comment:
  Enhancements to the password prompt logic for Windows so that it works better
  in non-standard shells.


type: ci
user: andygoth
comment:
  Tweak format of initial list of special characters to match format of examples given two sections below


type: ci
user: rberteig
comment:
  Added new documentation for File Name Glob Patterns, suitable for explaining how the patterns found in the various xxx-glob settings work in detail.


type: ci
user: rberteig
comment:
  Final proofreading of file glob patterns document before merging to trunk. Also updated the permuted index to match mkindex.tcl and the current glob article title.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Enhancements to the password prompt logic for Windows so that it works better in non-standard shells.


type: ci
user: jan.nijtmans
comment:
  Suppress "database locked" warnings on the "PRAGMA optimize" that occurs as the process is shutting down.


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest 3.19.0 alpha that includes the
  authorizer callback enhancements.


type: ci
user: jan.nijtmans
comment:
  Don't access g.argv[2], when g.argc indicates there's no such element. Reported by Tony Papadimitriou.


type: g
user: drh
comment:
  Edit [748ec13b3316b3d1|748ec13b33]: Move to branch [/timeline?r=mistake&nd&dp=748ec13b3316b3d1&unhide | mistake]. Add propagating "hidden".


type: ci
user: mistachkin
comment:
  Patch for autosetup to restore previous behavior of the --with options to configure, by Steve Bennett.


type: ci
user: mistachkin
comment:
  Restore previous behavior of the --with-tcl option to configure, where the value portion is optional.


type: ci
user: jan.nijtmans
comment:
  Update internal Unicode character tables, used in regular expression handling, from version 9.0 to 10.0.


type: ci
user: andybradford
comment:
  Restore the ability to use amend outside an open check-out disabled by
  [8c22e1bbcd8ec048].  Only allow interactive edits within an open
  check-out.  Perhaps unixTempFileDir() could be used to locate a suitable
  TMP location for the edit in the event that there is not an open-checkout.


type: ci
user: andybradford
comment:
  Remove the restriction entirely for editing a comment only in the working
  check-out directory and choose an appropriate temporary file if no working
  check-out is available instead.


type: ci
user: jan.nijtmans
comment:
  Requesting Fossil 2.3 release just after the Unicode 10.0 release (expected around june 20, 2017). If earlier, please revert commit [09bcc322f7bcf52f|09bcc322f7] first.


type: ci
user: andybradford
comment:
  Restore the ability to amend a comment both with and without an interactive
  editor.  If the edit happens outside a working check-out then use a suitable
  TMP directory.


type: ci
user: drh
comment:
  Bug fix in the sha3sum() routine.  Also comment-out that routine since it is
  not used anyplace in the code.


type: ci
user: drh
comment:
  Update the /tarball and /zip pages to return status code 404 if given
  an unknown checkin to download.


type: ci
user: drh
comment:
  Fix some cases in wikiformat.c where it was assuming that a hash name
  would be UUID_SIZE or fewer characters, when in fact the size could be
  as many as HNAME_MAX characters.  This is a change that we missed in the
  SHA3 cut-over.


type: ci
user: drh
comment:
  Experimental and undocument --yy option to the various diff operations does
  a slow O(N*N) algorithm which can sometimes compute a better side-by-side diff.
  But it can also take a lot longer and so is not recommended unless really
  needed.


type: ci
user: drh
comment:
  When dropping surplus tables during "fossil rebuild", make sure to use
  IF EXISTS so that shadow tables from previously dropped virtual tables
  do not cause an SQL error.


type: ci
user: drh
comment:
  Bring in the enhanced "shell.c" with the improved ".schema" and ".tables"
  commands from upstream SQLite.


type: ci
user: drh
comment:
  Fix compiler warnings in the shell.c from the previous check-in.  Also bring
  in the latest trunk version of SQLite for testing.


type: ci
user: drh
comment:
  On unix, use setrlimit() to limit total heap space usage to 1GB on 32-bit
  systems and 10GB on 64-bit systems, and total stack space to 2MB, as a
  proactive defense again the "stack clash" vulnerability found on many
  unix-like OSes.  I do not yet know if these limits are reasonable.


type: ci
user: stephan
comment:
  updated license description from GPL to 2-clause BSD, with a tip of the hat to er38hcma on the mailing list.


type: ci
user: drh
comment:
  Increase the stack size limit to 8MB.  Disable stack and heap size limits
  prior to invoking subprocesses.


type: ci
user: andybradford
comment:
  Make the command-line timeline behave more like the timeline page by handling
  dates before resolving to symbolic rid which might actually not meet the
  "before" or "after" criteria.  Bug reported by Roy Keene: timeline output
  always included a timeline entry which happened to be before the "after"
  date indicated.


type: ci
user: drh
comment:
  Make use of the new sqlite3_prepare_v3() interface and the
  SQLITE_PREPARE_PERSISTENT flag in SQLite.


type: ci
user: drh
comment:
  Add the Security-Audit page.  There is more work to be done here, but it is
  now at least partially functional.


type: ci
user: drh
comment:
  Add the cgi_referer() utility function.  Use it to cause the setup_uedit
  page to always go back to the page it came from.


type: ci
user: drh
comment:
  On the /test_env page, report the values of the REMOTE_USER and
  HTTP_AUTHENTICATION environment variables, if they exist.


type: ci
user: jan.nijtmans
comment:
  Suggestion for 2.3 release: Eliminate the need for SQLITE_PREPARE_PERSISTENT, which makes fossil work with SQLite 3.19.3.


type: g
user: jan.nijtmans
comment:
  Edit [aa92dc8efe6d941a|aa92dc8efe]: Move to branch [/timeline?r=mistake&nd&dp=aa92dc8efe6d941a&unhide | mistake].


type: ci
user: drh
comment:
  On the /test_env page, show the AUTH_CONTENT and AUTH_TYPE environment
  variables in "cookie" mode.

ecomment:
  On the /test_env page, show the AUTH_CONTENT and AUTH_TYPE environment
  variables in "cookie" mode. - On second thought, better to not show these, since they can expose passwords on screen.


type: g
user: drh
comment:
  Edit [d28cb283f3d75388|d28cb283f3]: Move to branch [/timeline?r=security-risk&nd&dp=d28cb283f3d75388&unhide | security-risk]. Edit check-in comment.


type: ci
user: drh
comment:
  On the text descriptions of the various administrator settings, identify
  the property in the CONFIG table that is being modified.


type: ci
user: drh
comment:
  Do not show checkouts with the "info -v" command or in the /urllist webpage
  if the checkout does not appear to exist any more.


type: ci
user: drh
comment:
  On the /urllist page, stop the display of access URLs after at least 8 have
  been shown and the last access is more than 30 days ago.  Except, show them
  all if the "all" query parameter is used.


type: ci
user: drh
comment:
  Fix timeline rendering so that multiple timelines can be drawn on each
  page without interferring with one another.  Move the "Referenced By"
  section of the /info page upward and rename it as "References".  Added
  the /test-backlink page for showing all pages that contain references.


type: ci
user: drh
ecomment:
  In the "last change" report, show the user as "anonymous" if the EVENT.USER
  field is NULL or an empty string. (Later:) Removed from trunk because a
  better solution is to not store empty strings in the EVENT.USER field in the
  first place.

comment:
  In the "last change" report, show the user as "anonymous" if the EVENT.USER
  field is NULL or an empty string.


type: ci
user: andygoth
comment:
  Avoid appending to g.zPath inside doc_page() loop.  Instead, wait until the loop is done to modify g.zPath.  When doing a directory lookup, the check-in and directory name were being repeatedly appended to g.zPath each step through the list of possible filename suffixes.  This corrupted <base href> should index.html not exist, which in turn broke relative URLs.


type: g
user: drh
comment:
  Edit [970adec0fee7fcec|970adec0fe]: Move to branch [/timeline?r=mistake&nd&dp=970adec0fee7fcec&unhide | mistake]. Mark "Closed". Edit check-in comment.


type: ci
user: andygoth
comment:
  Improve built-in Markdown reference documentation to describe more features I long wished Markdown had but just now discovered it already does


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest 3.20.0 beta, including support
  for tab-completion in the SQL shell.


type: ci
user: jan.nijtmans
comment:
  merge trunk (without SQLite update to 3.20.0 beta, but WITH support for tab-completion in the SQL shell)


type: ci
user: drh
comment:
  Update to the latest SQLite from upstream and make other changes, all to
  silence a few utterly harmless compiler warnings about incompletely
  initialized structures.


type: g
user: drh
comment:
  Edit [1eab060a84f24fa5|1eab060a84]: Move to branch [/timeline?r=fossil-2.3-with-older-SQLite&nd&dp=1eab060a84f24fa5&unhide | fossil-2.3-with-older-SQLite].


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): SQLite version 3.20.1
  (cherry-pick): Remove an unused global variable from the path_shortest() logic


type: ci
user: rberteig
comment:
  Fixed commit-warning.test broken by addition of the bootstrap skin which includes a file with long lines that generated a new warning.


type: ci
user: andygoth
comment:
  Enable processing of versioned manifest setting when creating zips and tarballs outside of an open checkout directory


type: ci
user: andygoth
ecomment:
  Restore end-of-line spaces used to demonstrate mid-paragraph line break in markdown.md.  The spaces were removed by [23895c7b99] which appeared to clean house on end-of-line whitespace in addition to its documented purpose.

comment:
  Restore end-of-line spaces used to demonstrate mid-paragraph line break in markdown.md.  Line spaces were removed by [23895c7b99] which appeared to clean house on end-of-line whitespace in addition to its documented purpose.


type: ci
user: drh
comment:
  Hyperlinks to the SSL versions of the website.  Redirect to the local
  unversioned source for the "precompiled binaries" link on the homepage.


type: ci
user: drh
ecomment:
  Fix the SSH sync protocol to avoid "ssh" command-line option injection
  attacks such as those fixed in Git 2.14.1, Mercurial 4.2.3, and
  Subversion 1.9.7.  As "ssh://" URLs cannot be buried out of sight in
  Fossil, the vulnerability does not appear to be as severe as in those other
  systems.

comment:
  Fix the SSH sync protocol to avoid "ssh" command-line option injection
  attacks such as those fixed in Git 2.14.1 and Mercurial 4.2.3.


type: ci
user: andybradford
ecomment:
  Avoid another attack vector when using SSH sync protocol by not calling a
  shell interpreter.  Fixes only Unix-like environments by using execvp()
  instead of a string that can be mishandled by /bin/sh.
  Superseded by [3b191c984b] &co.

comment:
  Avoid another attack vector when using SSH sync protocol by not calling a
  shell interpreter.  Fixes only Unix-like environments by using execvp()
  instead of a string that can be mishandled by /bin/sh.


type: ci
user: drh
comment:
  Change the shell_escape() procedure into blob_append_escaped_arg().  Have
  that procedure raise a fatal error if the argument to be appended contains
  dodgy characters that might pose a security risk.  Also, prepend "./" in
  front of arguments that begin with "-" to prevent them from looking like
  switches.


type: ci
user: drh
comment:
  Enhance the ssh:// URL to be cautious about the fossil= query parameter.
  Only commands "fossil" and "echo" (with an optional path) are accepted.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Fix the SSH sync protocol to avoid "ssh" command-line option injection attacks such as those fixed in Git 2.14.1, Mercurial 4.2.3, and Subversion 1.9.7. As "ssh://" URLs cannot be buried out of sight in Fossil, the vulnerability does not appear to be as severe as in those other systems. 
  (cherry-pick): Enhance the ssh:// URL to be cautious about the fossil= query parameter. Only commands "fossil" and "echo" (with an optional path) are accepted.


type: ci
user: jan.nijtmans
comment:
  Fix build (previous cherry-pick was not complete)
  (cherry-pick): For temporary filename paths on Windows, changes all backslash characters into forward slashes, so that the new enhanced-security shell escape mechanism from check-in [3b191c98] can use those temporary filenames.


type: ci
user: drh
comment:
  For temporary filename paths on Windows, changes all backslash characters into
  forward slashes, so that the new enhanced-security shell escape mechanism
  from check-in [3b191c98] can use those temporary filenames.


type: ci
user: drh
comment:
  Change the file_mkfolder() implementation to assume that the folder already
  exists and only go about creating it and its path if it does not previously
  exit.


type: ci
user: andygoth
comment:
  Typo fixes thanks to rosscanning, ref [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg25775.html]


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Remove a redundant directory separator character from the temporary filenames generated on windows. 
  (cherry-pick): Change the file_mkfolder() implementation to assume that the folder already exists and only go about creating it and its path if it does not previously exit.


type: ci
user: drh
comment:
  Remove the --no-dir-symlinks option.  This is a back-out of check-in
  [2375d6cbce933267] together with other cleanup changes.


type: ci
user: drh
comment:
  Enhance the mkindex utility to extract help text for each setting separately
  and automatically build the aSetting table.


type: ci
user: drh
comment:
  Enhance the mkindex utility to extract help text for each setting 
  separately and automatically build the aSetting table.  Various other
  enhancements that take advantage of this new capability.


type: ci
user: drh
comment:
  Improvements to the /fdiff webpage:  Add the option of using from= and to=
  query parameters to get a diff between two files in the same check-in.


type: ci
user: wyoung
comment:
  Moved the check for iconv(3) in -liconv up within auto.def.  If it
  happens after the checks for OpenSSL on certain macOS configurations,
  autosetup can be fooled into believing it doesn't need -liconv on that
  platform.  This checkin splits up the group of cc-check-functions calls,
  so the moved call is now documented as to why its segregated.


type: ci
user: drh
comment:
  When the "showid" query parameter is given on /timeline or /finfo, show
  the delta-source artifact ID in addition to the artifact ID.


type: ci
user: drh
comment:
  Change the content_deltify() routine so that looks an array of candidate
  source artifacts and picks the one that gives the best delta.


type: ci
user: drh
comment:
  Show the delta-source ID on files as well as check-ins for the "showid"
  query parameter on the /timeline page.


type: ci
user: drh
comment:
  On the /stat page, show only the compressed size of unversioned artifacts,
  and show the percentage of the total repository space taken up by unversioned
  files.


type: ci
user: drh
comment:
  Add preliminary support for URL aliasing.  Create aliases by visiting
  the "URL Aliases" subscreen under the Setup menu.


type: ci
user: andygoth
comment:
  Correct /doc webpage in the case of a read-only database containing a vcache table lacking the desired vid


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest 3.21.0 alpha that includes the
  enhancements to the Windows VFS that help it better deal with read-only
  repository files.


type: ci
user: andygoth
comment:
  Show all possible heading styles in Markdown reference.  Expand table example to more closely resemble typical usage.


type: ci
user: drh
comment:
  Fix the value of the ANN_FILE_VERS flag so that it no longer overlaps with
  DIFF_SLOW_SBS.  Omit the ANN_FILE_ANCEST flag which was always true.  Update
  the annotator so that it follows check-ins in generation order according to
  the ancestor table.


type: ci
user: andygoth
ecomment:
  Consolidated annotation file and manifest lookup code.  This changes the error handling for the annotation web page to report an error rather than redirect to home.  It also enables omitting the checkin query parameter when used with a server running within a checkout. (Later, by drh:) Move this code onto a 
  branch because of build errors on Ubuntu.

comment:
  Consolidated annotation file and manifest lookup code.  This changes the error handling for the annotation web page to report an error rather than redirect to home.  It also enables omitting the checkin query parameter when used with a server running within a checkout.


type: ci
user: andygoth
comment:
  Begin work on searching technotes.  Credit goes to Chris Rydalch for the idea.  Sadly, this version doesn't work yet.  Technote searches fail at this time.


type: ci
user: drh
comment:
  Remove unused local variables that caused breakages with -Werror.
  To do: This branch still gives a very different answer than trunk
  for [/annotate?limit=-1&checkin=8e27a5a0&filename=src/login.c&log=1]


type: g
user: drh
comment:
  Edit [41f35ca4ec617891|41f35ca4ec]: Move to branch [/timeline?r=annotation-enhancements&nd&dp=41f35ca4ec617891&unhide | annotation-enhancements]. Edit check-in comment.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Correct /doc webpage in the case of a read-only database containing a vcache table lacking the desired vid


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Correct handling of mtime updates for UV push.
  (cherry-pick): Moved the check for iconv(3) in -liconv up within auto.def. If it happens after the checks for OpenSSL on certain macOS configurations, autosetup can be fooled into believing it doesn't need -liconv on that platform. This checkin splits up the group of cc-check-functions calls, so the moved call is now documented as to why its segregated.


type: ci
user: andygoth
comment:
  Update /dir to support readme and readme.* files being a symlink to the actual document.  Symlinks to symlinks are not supported in this instance.  The document type is determined by the link target name.


type: ci
user: drh
comment:
  Merge miscellaneous changes that have accumulated on the 
  annotation-enhancements branch.  See a log of the whole branch for details.


type: ci
user: drh
comment:
  Change the "Log" submenu element of the annotation page so that it shows or
  hides the log using javascript, avoiding a server roundtrip and a recomputation
  of the annotation.


type: ci
user: drh
comment:
  Improved limit handling for annotation.  The limit can now be expressed in
  compute-time seconds rather than versions analyzed, and defaults to "1.0s",
  which is enough to compute a complete annotation on most reasonable files.


type: ci
user: drh
comment:
  Add the origin= query parameter to /annotate and the --origin option to the
  annotation command, to enable reverse annotations.


type: ci
user: drh
comment: Update the change log. Improved documentation of reverse annotations.
ecomment:
  Update the change log.  Improved documentation of reverse annotations.
  (Note: The check-in time has been moved 5 minutes earlier
  as a test of the ability to edit check-in times.)


type: ci
user: drh
comment:
  Provide a link to the reverse annotation for an /fdiff of two versions of the
  same file.  Improvements to the description of a reverse annotation.


type: ci
user: drh
comment:
  The revision numbers in the annotate output were off by one check-in.  This
  changes should fix the problem.


type: ci
user: drh
comment:
  Add the orig= query parameter to the /finfo webpage.  Use this in the
  hyperlink from the analysis log of the /annotate page.


type: ci
user: drh
comment:
  Take the "Built-in Documents" section back out, as all of referenced documents
  are already available in other parts of the same page.


type: ci
user: andygoth
comment:
  Assorted cleanups associated with [f74f7014], most notably making "fossil dif" work again despite the ambiguity with setting "diff-command"


type: ci
user: andygoth
comment:
  Add support for the "l" flag to the "manifest" setting to enable creation of a file "manifest.symlinks" which lists the names of all symlinks


type: g
user: drh
comment:
  Edit [8d6bdd1e00cf2cf8|8d6bdd1e00]: Move to branch [/timeline?r=enhanced-symlink&nd&dp=8d6bdd1e00cf2cf8&unhide | enhanced-symlink].


type: ci
user: drh
comment:
  Update the build-in SQLite to the latest 3.21.0 beta that includes the
  enhance use of co-routines for subqueries.


type: ci
user: mistachkin
comment:
  Add docs and tests for the TH1 'string index' command added by check-in [0c57ba3eb4].  Also, fix issue with handling of the special 'end' index.


type: ci
user: drh
comment:
  Avoid large SQL inserts when computing the path between two check-ins for
  use by reverse annotation.


type: ci
user: mistachkin
comment:
  Improvement to TH_RETURN handling needed for TH1 hooks.  Update and correct TH1 hook tests.  Add draft documentation for TH1 hooks.


type: ci
user: drh
comment:
  Fix a hyperlink on the /mlink page.  Add a link from /info for a check-in
  to the /mlink page under "Other Links".


type: ci
user: drh
comment:
  Delta checksum verification is disabled by default, for better performance.
  It can be reenabled using -DFOSSIL_ENABLE_DELTA_CKSUM_TEST.


type: ci
user: wyoung
comment:
  Added "reconfig" target to the top-level Makefile, which uses an
  autosetup feature to re-run configure with the same options you gave
  manually.


type: ci
user: wyoung
comment:
  Automatically re-configuring (same as "make reconfig") when Makefile.in,
  src/main.mk, or one of the autosetup files changes.  This should avoid
  the need to recommend to people "re-run configure" whenever they call
  "fossil update" on this tree.


type: ci
user: wyoung
comment:
  Merged in an upstream improvement from Autosetup addressing GH issue
  in a different output file.  That in turn requires an adjustment to our
  new autoreconfigure feature to avoid a make(1) loop.


type: ci
user: wyoung
comment:
  Removed the GNU make conditional around the new autoreconfigure
  dependency rule in the top-level Makefile.in.  Apparently we have users
  using some other make, perhaps BSD make.  Since the conditional only
  prevents autoreconfigure in the "make clean" case, where it is a minor
  annoyance, it's not important to work out how to retain this in a
  non-GNU make world.


type: ci
user: andygoth
comment:
  When committing on Windows with the "l" manifest flag set, update the symlink permission for selected files from the manifest.symlinks file if it exists


type: ci
user: andygoth
comment:
  Move manifest.symlinks read functionality into the new get_checkout_symlink_table() function in checkout.c


type: ci
user: andygoth
comment:
  Protect against symlink_perm table already existing, should get_checkout_symlink_table() have already been called


type: ci
user: andygoth
comment:
  Correct vfile_check_signature() handling of manifest.symlinks not existing or manifest setting not containing the l flag


type: g
user: drh
comment:
  Edit [eb4dda482056b1db|eb4dda4820]: Move to branch [/timeline?r=doc-symlink&nd&dp=eb4dda482056b1db&unhide | doc-symlink].


type: ci
user: drh
comment:
  In the "fossil all ui" command, shows the "(hidden)" mark after repos that
  contain "/." in their pathnames.


type: ci
user: drh
comment:
  Add a blank entry to the end of the Setting array so that loops can be
  terminated by checking for a null zName pointer.


type: ci
user: drh
comment:
  Fix a typo that prevented the diff-binary setting from being picked up by
  the mkindex.c comment scanner.


type: ci
user: drh
comment:
  Automatically generate the &lt;html&gt;&lt;head&gt;...&lt;/head&gt;&lt;body&gt;
  section at the beginning of each HTML document if the header template does not
  contain a &lt;body&gt; tag.  Likewise for the &lt;/body&gt;&lt;/html&gt;
  after the footer.


type: ci
user: drh
comment:
  Change the "/wiki_rules" page so that it displays a wiki source file, either
  formatted or plain-text, just like /md_rules does.


type: ci
user: drh
comment:
  Fix the --with-tcl=PATH option on the configure script using a one-character
  patch suggested by Christoph Iserlohn.


type: ci
user: drh
comment:
  Fix key bindings on the "fossil diff --tk" command.  Control-q now
  exits.  Pressing Enter does the right things at the right times and does
  not raise errors.  Etc.


type: ci
user: drh
comment:
  Improvements to the "Fossil Build Process" documentation, with improved
  comments in related source files.  No changes to real code.


type: ci
user: drh
comment:
  Give greater emphasis to the check-in comment on timeline displays.  Move the
  check-in hash into the details section at the end of each entry.


type: ci
user: drh
comment:
  New &lt;span&gt; element with the timelineExtraLinks class for the
  hyperlinks at the end of each entry on the /finfo page.


type: ci
user: drh
comment:
  Add the "Comment Format" selector for to the /setup_timeline page.  This
  allows the admin to configure the timeline comment display in various ways,
  so that nearly all preferences are satisfied.


type: ci
user: drh
comment:
  Provide a configuration option that can move the hash in a timeline before
  the comment, after the comment, or into the details, and can omit the details
  span.


type: ci
user: drh
comment:
  Add a new timeline format that puts the details in a separate table column
  from the check-in comment.


type: ci
user: drh
comment:
  New class "timelineDetailCell" for all &lt;td&gt; elements that hold the
  separate detail column of a timeline.


type: ci
user: drh
comment:
  On the /timeline and /finfo pages, change the hyperlinks under the
  timestamp to point to the object referenced.  This allows the timeline
  to be configured for "comment-only" but still provide a link to the object.


type: ci
user: drh
comment:
  Make the "basic" query parameter the default for built-in skins when
  clicking on the Timeline menu.  Add "basic" to /finfo.  Other improvements
  to timeline.


type: ci
user: drh
ecomment:
  Suppress the "Related" checkbox on the submenu of /timeline when the
  basic query parameter is enabled.

comment:
  Suppress the "Related" checkbox on the submenu of /timelien when the
  basic query parameter is enabled.


type: ci
user: drh
comment:
  Add a "Basic" button to the submenu for /timeline pages that do not already
  have the "basic" query parameter.


type: ci
user: drh
comment:
  Change the names of the "Basic" and "Advanced" buttons to "Declutter" and
  "Details".  (These names are subject to further refinement.)  Add a
  [checkins-using] link to the artifact view for content artifacts.


type: ci
user: drh
comment:
  On the /timeline page, begin with the "basic" view. Provide an "Advanced"
  button to fill in details using JS.  The "basic" query parameter no longer
  functions.


type: ci
user: drh
comment:
  Clicking anywhere on the comment field of a /timeline toggles the
  (detail) on/off.  The ellipsis is no longer a hyperlink.


type: ci
user: drh
comment:
  The javascript Advanced/Basic toggles on the timelines is working well
  enough now to merge to trunk.


type: ci
user: drh
comment:
  Add a Help submenu item to the /timeline page, so that advanced users can
  quickly see all of the query parameters, and perhaps start to enter them directly on the URL.


type: ci
user: drh
comment:
  Change the default CSS so that the cursor is a pointer over the timeline
  check-in comment and the following ellipsis, as a hint to that one can click
  on those elements.


type: ci
user: drh
comment:
  Use three U+002e characters to form the ellipsis in timelines, rather than
  the U+22ef, since some browsers do not know how to render U+22ef.


type: ci
user: drh
comment:
  Fix a problem in the /info page for check-ins wherein it was not showing
  the links to the descendents graph.


type: ci
user: drh
comment:
  If there is a selection or marked entry, scroll the /timeline so that the
  marked entry as as close to the middle of the screen as we can get, upon
  initial display of the timeline.


type: ci
user: drh
comment:
  Remove a leftover "basic" query parameter on an internal /timeline line.
  Change the default number of entries shown for "c=" timelines to 50, as
  this works better with the new centering logic.


type: ci
user: drh
comment:
  The /timeline page shows check-ins only if there is no y= query parameter and
  if the user has read ("r") permissions on the repo.


type: ci
user: drh
comment:
  Add a setup parameter under Setup/Timeline for configuring the default
  number of entries in a timeline that lacks an n= query parameter.


type: ci
user: drh
comment:
  The intent of this branch is to refactor /timeline comment rendering, giving
  the user multiple display options, and making the option sticky in the sense
  that the option selected most recently becomes the new default.  This
  is an incremental check-in containing infrastructure cookie-handling logic.


type: ci
user: drh
comment:
  Add the /cookies page for debugging.  (Maybe that page can be expanded to
  allow users to edit their preferences?)  Use sticky values for the "n="
  and "y=" query parameters on timelines.


type: ci
user: drh
comment:
  Work toward getting the mode selector to work on /timeline.  This check-in
  is incomplete and is intended only to transfer code between machines.


type: ci
user: drh
comment:
  Change the style selector query parameter on /timeline to "ss".  Other code
  cleanup.  The new style selector is working, but needs default CSS.


type: ci
user: drh
comment:
  Change the name of "Normal View" to "Modern View".  Add the "View" modifier
  to all choices in the view mode selector, to help make it clear what the
  selector is for.


type: ci
user: drh
comment:
  The /timeline supports 4 sticky viewing modes: Modern, Verbose, Compact,
  and Columnar.  The new cookie.c module supports sticky user viewing
  preferences.


type: ci
user: drh
comment:
  Generate the big cssDefaultList table in the middle of style.c using
  default_css.txt as the source.  The default_css.txt file will be easier
  to understand, edit, and comment.


type: ci
user: jan.nijtmans
comment:
  Eliminate fossil_utf8_to_console() for non-windows platforms: it isn't used then. Thanks to "bytevolcano" for the suggestion.


type: ci
user: drh
comment:
  Refactor the symlink processing logic so that most of the file access routines
  take a new parameter indicating the conditions under which symlinks should
  and should not be followed.  This should fix a few bugs related to symlink
  processing.  Lots of testing required before merging to trunk.


type: ci
user: drh
comment:
  Rework the Setup/Skin page so that all edits are done on a draft, then tested,
  then the draft is published to become the default skin.  This specific
  check-in is just the beginning.  Must code needs to be added.  This is
  just an incremental check-in.


type: ci
user: drh
comment:
  Refactor the symlink processing logic so that most of the file access 
  routines take a new parameter indicating the conditions under which 
  symlinks should and should not be followed.


type: ci
user: drh
comment:
  The URL parser now understands the /draftN/ prefix.  Draft skins can
  now be initialized from built-ins.  Another incremental check-in.


type: ci
user: drh
comment:
  On the Skins admin page, add Step 8 which gives administrators a
  link to the legacy Skin control page, with updates to deal with drafts.


type: ci
user: drh
comment:
  Rework the Setup/Skin page so that all edits are done on a draft, 
  then tested, then the draft is published to become the default skin.


type: ci
user: drh
comment:
  Add the "main.js" javascript file.  Load that script on every page just
  before the &lt;/body&gt; element, and use it to reduce the need for
  inline JS and CSS.


type: ci
user: drh
comment:
  Change the name of "main.js" to "href.js".  Rework the javascript code so
  that there can be multiple javascript files sourced on an as-needed basis.


type: ci
user: drh
comment:
  Move the in-line javascript used to initialize side-by-side diffs into a
  separately loaded script file.


type: ci
user: drh
comment:
  Make the Basic/Advanced menu controls on timelines a setting that persists
  in the display preferences cookie.


type: ci
user: drh
comment:
  Add the --no-opt option to the ./configure script.  Fix the menu.js script
  to avoid the use of eval().


type: ci
user: drh
comment:
  Move the in-line javascript associated with the user capability editing into
  a separate script file.


type: ci
user: drh
comment:
  Reorganize the elements of the "Overview" section of a check-in view, to
  give more prominence to the "Download" links.


type: ci
user: drh
comment:
  Remove the seldom-used "Tags And Properties" section from the check-in
  information screen.  Move that information off into a new page /ci_tags
  that includes a timeline showing all relevant timeline items in addition
  to the basic tag information.


type: ci
user: drh
comment:
  Make "fossil sql" an alias for "fossil sqlite3" so that typing "fossil sql"
  does not generate an ambiguity with the new "fossil sqlar" command.


type: ci
user: drh
comment:
  Fix the SQL archive generator so that for a check-in containing no files it
  generates an empty SQL archive instead of an empty file.


type: ci
user: drh
comment:
  On the Unknown Artifacts section of the /artifact_stats page, provide
  links to the RCVFROM table entry for each unknown artifact.


type: ci
user: drh
comment:
  Merge the /artifact_size_stats page into the /artifact_stats page.  Make that
  page accessible to anybody with check-in privilege.


type: ci
user: drh
comment:
  Add the "," qualifier to %d formats in printf() and use the capability for
  improve display of stats.


type: ci
user: drh
comment:
  Timeline styling changes:  (1) The td.timelineModernCell and 
  td.timelineColumnarCell elements omit the id attribute when they are the
  current check-out or the selection.  (2) Default CSS is changed to give
  a light-gray color to modern and columnar cells that are not current or
  selected and do not have a branch color.  (3) The detail string in the
  verbose and compact views is now surrounded by parentheses.


type: ci
user: drh
comment:
  Default CSS adjustment:  Extra space to the left of .timelineModernDetail
  to prevent it from colliding with the check-in comment.


type: ci
user: drh
comment:
  Always generate timeline-data for a timeline even if the table has no
  check-ins and thus no graph.  This causes the timeline-data scanner to
  continue looking for subsequent timelines.


type: ci
user: drh
comment:
  Fix an infinite recursion on db_err() that might occur if SQLite is unable
  to create the WAL file for a database due to lack of write permission on the
  containing directory.


type: ci
user: drh
comment:
  Fix default CSS so that it does not break a date string on the timeline at
  one of the "-" characters.


type: ci
user: drh
comment:
  Fix the parentheses around the "detail" section of each timeline entry in
  Verbose and Compact views on the /finfo timeline.


type: ci
user: drh
comment:
  Remove pointless code that initializes a BSS data structure to zeros, even
  though it is already all-zero.  This avoids a compiler warning in GCC7.


type: ci
user: drh
comment:
  Update the built-in copy of linenoise to the latest from the GitHub
  repository ([https://github.com/antirez/linenoise])


type: ci
user: drh
comment:
  Remove an unused static variable.  Update the style guidelines to mention
  that imported code does not necessarily follow the guidelines.


type: ci
user: drh
comment:
  Fix the "fossil server" command to allow up to FOSSIL_MAX_CONNECTIONS
  (default 1000) pending HTTP requests.  This is an increase from 2.  Add
  the --max-latency command-line option for "fossil server".  Do a better
  job of harvesting dead child processes.  Report the number of sibling
  HTTP request handler processes on the /test_env page.


type: ci
user: drh
comment:
  The "fossil server" command keeps track of the total number of requests and
  displays that value on the /test_env page.


type: ci
user: drh
comment:
  Only show the number of requests on the /test_env page if running on unix
  from "fossil server" or "fossil ui".


type: ci
user: zakero
comment:
  Minor Adjustments

    *  Uncommented ".timelineHistDsp"
    *  Made the main branch commits stand out a bit more based on DRH's fix


type: ci
user: zakero
comment:
  A few more adjustments

    *  Made the detail for Modern and Columnar a bit larger for readablity
    *  For the Columnar View, added "files:" to the file list
    *  For the Columnar View, file list no longer wraps


type: ci
user: drh
comment:
  Changes from Olivier Mascia to implement IPV6 support for "fossil server"
  on Windows.  Currently does not compile on MinGW due to a missing header
  file.


type: ci
user: drh
comment:
  Disable the the --max-latency option on "fossil server" on windows, as it has
  always been a no-op there.


type: ci
user: andybradford
comment:
  Check for explicit error condition from ticket_put() because otherwise
  Fossil thinks a successful ticket add is an error and outputs an empty line.


type: ci
user: drh
comment:
  Fix the login mechanism on the new IPv6 code for "fossil server" on Windows.
  Patch from Olivier Mascia.


type: ci
user: drh
comment:
  Always try to extract the IP address and PORT number from the --port option
  to "fossil server" if the option contains a ':' character.


type: ci
user: drh
comment:
  Remove dependencies on test_windirent.h from the SQLite-supplied shell.c
  source file, so that the build will work on MinGW.


type: ci
user: drh
comment:
  Remove varargs C-preprocessor macros from linenoise.c, since some older C
  compilers (ex: gcc on a circa-2000 iBook) are unable to deal with them.


type: ci
user: achavasse
comment:
  Enlarge the diff view font and tweak the diff highlight colors. The skin was globally widened to accomodate more space for the diff view.


type: ci
user: stephan
comment:
  Latest upstream cson - increases a unicode output buffer size after reports of certain MSVC version(s) complaining about it.


type: g
user: drh
comment:
  Edit [d4bac2c59a5582ae|d4bac2c59a]: Move to branch [/timeline?r=mistake&nd&dp=d4bac2c59a5582ae&unhide | mistake]. Mark "Closed". Edit check-in comment.


type: ci
user: achavasse
comment:
  Reskinned the ticket view and switched to black text in the ticket reports so that they are readable with the default colors.


type: ci
user: drh
comment:
  Do not show the numeric user ids on the /setup_ulist page.  The login name
  is sufficient.  On the /setup_uedit page, provide a link to an access log
  for that particular user.


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest 3.22.0 beta, with a fix for
  a compile-time issue reported on the mailing list.


type: ci
user: achavasse
comment:
  Fix the search result highlighting, fix timeline layout issues with non-commit events, replace the WYSIWYG editor icons, and slightly improve the file browser icons.


type: ci
user: andybradford
comment:
  Only #define fossil_pledge in config.h if FOSSIL_HAVE_PLEDGE is not defined so
  that makeheaders can pick up the function prototype for checkin.h when 
  FOSSIL_HAVE_PLEDGE is defined.


type: g
user: andybradford
comment:
  Edit [73d0734a4b841cb0|73d0734a4b]: Move to branch [/timeline?r=mistake&nd&dp=73d0734a4b841cb0&unhide | mistake]. Add propagating "hidden". Mark "Closed".


type: ci
user: mgagnon
comment:
  Fix bad url on "Advanced"/"Basic" link of the timeline page.

  The zLink argument of style_submenu_element() should be a literal "%s",
  otherwise, encoded url parameter value may contain "%" and get corrupt by the
  vmprintf() call inside.

  Problem was happening when clicking on "Basic/Advanced" link on this page:
  http://www.fossil-scm.org/index.html/timeline?advm=1&chng=src/*


type: ci
user: drh
comment:
  Update the codecheck1.c utility program to find unsafe format strings
  for recently added varargs functions.  Fix unsafe varargs found by this
  update.  This is a continuation of the fix in check-in [3c2ef25d03fb48d5].


type: ci
user: drh
comment:
  Fix bug in the db_get_mprintf() function and its siblings introduced by
  the previous check-in and caused by the parameter reordering.


type: ci
user: drh
comment:
  Only make the first argument to pledge() available using the
  fossil_pledge() interface.  The second argument is always NULL.


type: ci
user: andybradford
comment:
  Now that pledge() is automatically detected, update the comment with the new
  name of the configuration parameter.


type: ci
user: mgagnon
comment:
  If running "fossil status" when pledge() is enabled, the "chown" promise needs
  to be added when running as root, otherwise fossil receive a SIGABRT and
  crash when attempting to call fchown(...) on creation of the .fossil-journal
  file.


type: ci
user: mgagnon
comment:
  Remove call of "getuid()" added on previous commit because it is not available
  on windows. For the pledge() call, always allow "chown" for now, even if not
  running as root.


type: ci
euser: mgagnon
user: meeks
comment:
  Need this "-e none" options to ssh.. if not, ssh can process the escape
  caracter to process command from data that's goes to fossil proces..


type: ci
user: mgagnon
comment:
  Now, just call /bin/sh as command argument.. I don't have problem with mail
  checking and motd and modification is very simple..

  - Have to check if it work in all conditions and all systems.

  - Might not work for settups where server use a restricted shell..


type: ci
euser: mgagnon
user: martine
comment:
  work time to time..
  	*** rely on a delay, which is not good
  	    don't work all the time... need to build more solid logic..


type: ci
euser: mgagnon
user: meeks
comment:
  attemp to fix ssh problem on debian linux host when non interactive shell still
  print some message (motd and mail checking stuff).

  	*** not really working yet..


type: ci
user: drh
comment:
  Fix annotate_file() so that it correctly errors out if the named file
  does not exist in the repository.


type: ci
user: drh
comment:
  Correctly show the edited and original comments on the /info page for
  check-ins.  Fixes a bug spotted by Stephan Beal.


type: ci
user: drh
comment:
  Fix the /annotate webpage so that it works even if "fossil ui" is not launched
  from the root of the check-out.


type: ci
user: drh
comment:
  Update the built-in SQLite to the third 3.22.0 beta for testing.
  Also fix a typo in a comment in the "fossil ui" command.


type: ci
user: drh
comment:
  Timeline fixes: (1) Show the artifact-id for tickets, wiki, and tags in the
  detail section for Verbose and Compact Mode. (2) Fix the graph.js script so
  that it sets ellipsis callbacks even if there are not graph elements.


type: ci
user: mistachkin
comment:
  Stop including settings in the 'Available commands' section of the help web page.  Fix typo of '--setting' help option.


type: g
user: drh
comment:
  Edit [396513fa4a6f8da8|396513fa4a]: Move to branch [/timeline?r=trunk&nd&dp=396513fa4a6f8da8&unhide | trunk].


type: ci
user: drh
comment:
  Add (undocumented) from= and to= query parameters on the /reports webpage.
  If both parameters are a date/time string, then report only covers the span
  of dates specified.


type: ci
user: drh
comment:
  Add the cgi_csrf_safe() routine as a supplimental defense against
  cross-site request forgery attacks.


type: ci
user: drh
comment:
  On the Fossil repository screen list that comes up with commands like
  "fossil all ui", show the last modification time of each repo, and allow
  sorting by mtime.


type: ci
user: mgagnon
comment:
  Fix segfault when accessing the initial checkin directory on a fusefs mounted
  repository. This is on a branch because the Fix is on
  manifest_file_seek_base() function which is not only fuse-related.


type: ci
user: drh
comment:
  Further changes trying to get ETags to work well.  But as I type this, I
  feel like this design is not working out well and I am about ready to
  start over from scratch.  This check-in is just to preserve work in case
  I want to come back to it later.


type: ci
user: drh
comment:
  An HTTPS upgrade redirect loop now is broken and gives a warning.  The
  "-nossl" is no longer the default on "fossil server".  Warning messages
  are provided when trying to log in via an insecure connection.


type: ci
user: drh
comment:
  Remove the mkdownload.html file from the documentation folder, since it is
  no longer used.  Remove mention of OpenBSD from installation instructions,
  since precompiled binaries for that platform are no longer provided.


type: ci
user: drh
comment:
  Add support for the ETag: and If-None-Match: headers for improved cache
  control.  Currently this only works for /uv but the mechanism is reasonably
  general and can be extended to other pages.


type: g
user: drh
comment:
  Edit [787896c5eb427c4e|787896c5eb]: Move to branch [/timeline?r=etags&nd&dp=787896c5eb427c4e&unhide | etags].


type: ci
user: drh
comment:
  Add support for Last-Modified: and If-Modified-Since:.  Currently only works
  for /uv but can be easily expanded to other resources.  Also change Set-Cookie
  to use max-age= rather than expires=.


type: ci
user: drh
comment:
  Rid the code of the legacy UUID_SIZE macro.  Replace it everywhere with
  either HNAME_MAX or HNAME_LEN_SHA1 or HNAME_LEN_K256, as appropriate.


type: ci
user: drh
ecomment:
  This doesn't quite work, so I'll try a different approach.
  Was:
  When clicking on the "Move to branch ...." links in the timeline, show
  only check-ins relevant to that branch.

comment:
  When clicking on the "Move to branch ...." links in the timeline, show
  only check-ins relevant to that branch.


type: ci
user: stephan
comment:
  Upstream cson patch to change f() decls to f(void) and rename internal symbols which collide with system/compiler symbols on HPUX and Solaris 11/Illumos.


type: ci
user: drh
comment:
  Add a new viewing mode called "Classic".  The new "Classic" is the same
  as "Verbose" in the previous release.  The "Verbose View" is now the same
  as "Compact" except that the check-in details are always expanded.


type: ci
user: drh
comment:
  Do no update the display cookie except when the user specifically changes
  the selectors on the /timeline submenu.


type: g
user: drh
comment:
  Edit [63b967e0ab3649df|63b967e0ab]: Move to branch [/timeline?r=mistake&nd&dp=63b967e0ab3649df&unhide | mistake]. Edit check-in comment.


type: ci
user: drh
comment:
  If the dp= and r= query parameters are both supplied to /timeline, use
  only the r= query parameter and ignore dp=.


type: ci
user: drh
comment:
  Add the magic comment to the query for /tagtimeline to suppress the
  sort-w/o-index warning message from FOSSIL_DEBUG.


type: ci
user: drh
ecomment:
  New security feature:  Reject any query parameter, POST parameter, or cookie
  whose name contains a non-alphanumeric character.  No know vulnerabilities
  exist because of this.  I'm just be paranoid.  This enhancement is inspired
  by Drupalgeddon2.

comment:
  New security feature:  Reject any query parameter, POST parameter, or cookie
  whose name contains a non-alphanumeric character.


type: ci
user: drh
comment:
  Also allow the '-' character in parameter and cookie names.  This is necessary
  for the login cookie.


type: ci
user: drh
comment:
  Enhance the /tarball, /zip, and /sqlar pages so that the checkin name
  to be downloaded can be expressed as part of the URI, and without the need
  for query parameters.


type: ci
user: drh
comment:
  Enhance the replacement algorithm for the tarball cache so that it gives
  extra weight to tarballs that have been accessed more than once.


type: g
user: jan.nijtmans
comment:
  Edit [4a516fb72cd277cf|4a516fb72c]: Move to branch [/timeline?r=openssl-1.1&nd&dp=4a516fb72cd277cf&unhide | openssl-1.1].


type: g
user: jan.nijtmans
comment:
  Edit [958f1a89dc720e96|958f1a89dc]: Move to branch [/timeline?r=openssl-1.1&nd&dp=958f1a89dc720e96&unhide | openssl-1.1].


type: ci
user: drh
comment:
  Merge in the latest 3.24.0 alpha version of SQLite including the
  ORDER BY LIMIT performance enhancement.


type: ci
user: drh
comment:
  Do not limit the number of rows shown in a timeline using the n= query
  parameter if any of the yw=, ymd=, or days= query parameters are present.


type: ci
user: jan.nijtmans
comment:
  When building with --internal-sqlite, require at least SQLite 3.24.0. Let's hope that the new sqlite3_keyword_*() functions don't change signature in SQLite 3.24.0 final.


type: ci
user: drh
comment:
  When doing "fossil export" make sure the output is in strict topological
  orders, since Git hates timewarps.


type: ci
user: drh
comment:
  Enhance the /test-rename-list page to show only distinct rename operations
  by default, with an option to show them all with the all=1 query parameter.


type: ci
user: drh
comment:
  Further enhance the test-rename-list to include a title with the number
  of renames and the number of associated check-ins.


type: ci
user: drh
comment:
  Honor the If-Modified-Since header even if the Fossil executable is more
  recent.  Assume that any changes in the Fossil executable will make minimal
  difference in the output.


type: ci
user: drh
comment:
  If the fossil binary is launched with no command-line arguments, check
  to see if there is an appended repository and if there is, run "ui" against
  that repository.


type: ci
user: drh
comment:
  If launched with no command-line arguments, check for a repo appended to the
  end of the executable and open "ui" on that repo.


type: ci
user: stephan
comment:
  An off-mailing-list patch which fixes the lack of deleted files from /json/timeline/checkin's file list. Thanks to Edgardo Cruz for tracking this down.


type: ci
user: drh
comment:
  Experimental option --fast on the clone command only clones manifest
  artifacts and related tags.  This is an experiment to see how much bandwidth
  and time are saved by omitting the download of file content until it is
  actually needed.


type: ci
user: drh
comment:
  Disable the feature that changes the foreground color of the graph based on
  the background color of the item, as the item background color no longer
  extends under the graph.


type: ci
user: drh
comment:
  The "fossil grep" command now agrees with the documentation.  But there
  is still a lot of opportunity to make enhancements.


type: ci
bgcolor: #00aa00
user: drh
comment:
  Reinstate the foreground color changing for timeline arrors based on the
  background color of the text.  This check-in uses the #00aa00 background
  color intentially for testing purposes.


type: ci
user: drh
comment:
  Reinstate the timeline arrow foreground color changes that were removed
  by check-in [7ac88481a69dd], but with fixes to avoid integer overflow.


type: ci
user: drh
comment:
  This code demonstrates ideas on how to implement a Forum feature in Fossil.
  This is just ideas - it is not even a working prototype.  This change was
  originally stashed, but then I thought it better to check it in on a branch
  for the historical record.


type: ci
user: drh
comment:
  Rough and untested implementation for forum display and reply.  Add two
  new capabilities for posting to the forum not subject to moderation, and
  for the ability to edit posts from others.


type: ci
user: drh
comment:
  Merge the speculative Forum changes.  This is because I need the enhancements
  to the user capabilities in order to add a new capability for Email Notifiation.
  The Forum logic itself is not ready, and is subject to change and removal.
  But it is well isolated and shouldn't hurt anything if it hangs out on trunk
  for a while.


type: ci
user: stephan
comment:
  Fixed a C99-ism, removed a couple ancient #if blocks. Re-added uuid to /json/timeline/event output (because it's useful in ways which the event name is not).


type: ci
user: drh
comment:
  Rig the "fossil sql" command so that it always comes up in --quote mode.
  This mode is more useful for Fossil repos dues to the many binary blobs.


type: ci
user: drh
comment:
  Add a new capability that allows signup for email notification.  Change the
  name of the older "EMail" privilege to "View-PII" to avoid confusion.


type: ci
user: drh
comment:
  Remove the configuration of the show-version-diffs property from
  the /setup_timeline page as that property is no longer used.


type: ci
user: drh
comment:
  Strengthen the codecheck1.c utility program to help find cases where query
  parameters are used in unsafe ways.  No unsafe usage of query parameters
  was detected in the current code.


type: ci
user: drh
comment:
  Add the "fossil email inbound" command, though it currently does not analyze
  the inbound emails - it just stores the emails in a directory for later
  human viewing.


type: ci
user: drh
comment:
  Rename the email_pending table to pending_alert.  Add triggers to fill
  in the pending_alert table each time a row is added to the event table.


type: ci
user: drh
comment:
  Merge in support for email notifications.  Munch more work is needed, but it
  seems ready to begin functional testing.


type: ci
user: drh
comment:
  Rework the internal email sending logic so that it is connection-oriented.
  This makes it more efficient and makes it easier to add support for an
  SMTP sending method at a later date.


type: ci
user: drh
comment:
  Include the email-sender.tcl script as an example of how to relay from
  the database drop to /usr/sbin/sendmail.


type: ci
user: drh
comment:
  Enhance the --sqltrace logic.  Using those enhancements, locate and fix
  and unclosed transaction in the email alert sender logic.


type: ci
user: drh
comment:
  Extra defenses against running the digest alert generator in a context where
  the transaction will rollback, thus failing to record the new digest time.
  Change the "fossil server" and "fossil ui" commands to always log errors to
  the console if no other error logging is defined.


type: ci
user: drh
comment:
  Only invoke the email alert sender after a successful HTTP request.
  Mark Not Found requests as 404, unsuccessful.


type: ci
user: drh
comment:
  Fix the /doc webpage so that it does not call fossil_fatal() when it
  cannot find the requested document.  It simply does a 404 routine.
  By not calling fossil_fatal(), it avoids unnecessary entries in the
  error log.


type: ci
user: drh
comment:
  Any call to fossil_fatal() while generating a webpage changes the output
  to a 400 Bad Request with an appropriately formatted web page.


type: ci
user: drh
comment:
  Include the HTTP_REFERER value in the error log file.  Also, omit empty
  environment variables from the error log.


type: ci
user: drh
comment:
  Add information about the server error log to the security audit page.
  Provide the new /errorlog page for viewing the server logfile online.


type: ci
user: drh
comment:
  Extend the user capability system to allow the use of upper-case ASCII
  letters for new capabilities.


type: ci
user: drh
comment:
  Enhance the subscriber since to include the creation time and so that
  a new random subscriber code is set.


type: ci
user: drh
comment:
  Fix harmless compiler warnings.  Also remove the "ago" text from the
  "Last Change" column in the subscriber list webpage.


type: ci
user: drh
comment:
  Change the schema of the subscriber table to make it compatible with the
  "fossil config sync" mechanism.  Upgrading through this check-in requires
  running "fossil email reset" to rebuild the email notification schema, and
  losing subscriber information.


type: ci
user: drh
comment:
  Fix a critical bug in the new blob_append_char() routine that was added
  to the previous check-in.  This bug causes crashes.  Also change the
  quoted-printable encoding to escape the ':' character so that lines
  in the body of an email will never be confused with a header line
  like "From:".


type: ci
user: drh
comment:
  Fix compiler warnings on windows.  Fix the file_directory_size() function so that it works on windows.


type: ci
user: drh
comment:
  Begin the smtp.c module.  Start with a routine to locate the hostname on
  which to contact the SMTP server for a domain.


type: ci
user: drh
comment:
  Add features to make it easier to test and debug the "fossil smtp" command
  from the command-line using stdin and stdout.


type: ci
user: drh
comment:
  Further enhancements to the on-line help for the "fossil uv add" command
  in an effort to clear up confusion.


type: ci
user: drh
comment:
  The "fossil smtpd" command stores incoming messages in the database and
  routes them according to the emailroute table.


type: ci
user: drh
comment:
  Adjust the cgi_rfc822_datetime() routine to use the newer
  rfc2822 date/time format that uses "+0000" for the timezone
  instead of "GMT".


type: ci
user: drh
comment:
  Fix the fossil_fatal() routine so that it avoids trying to do a webpage
  display if the repository database has not yet been opened.


type: ci
user: drh
comment: Merge fixes from trunk.
ecomment:
  Merge fixes from trunk.
  (This was suppose to be a check-in on the smtp branch.
  I don't know why Fossil didn't warn me about the null check-in.)


type: ci
user: drh
comment:
  Fixes to the "SMTP relay" alert send method.  Add the --smtp-trace option
  to the "fossil email send" command.  Expose and document
  the "email-send-relayhost" setting.


type: ci
user: stephan
comment:
  Patched cgi_set_cookie() to be a no-op when not running in HTTP(s) mode (e.g. in JSON CLI mode), since g.zTop is not set in that case. Resolves a segfault reported on the ML.


type: ci
user: drh
comment:
  Only add the default &lt;body&gt; element to the header if the configured
  header lacks "&lt;body".  Formerly, it searched for "&lt;body&gt;" and that
  search would fail if the body element contained attributes.
  ToDo: This default
  body-element mechanism needs to be better documented.


type: ci
user: ashepilko
comment:
  Fix annotate_file() so that it correctly errors out if the named file does not exist in the revision.


type: ci
user: drh
comment:
  Add a setup menu option for Email-Server.  Try to get the build of this
  branch working (without DNS support) for non-linux systems.


type: ci
user: drh
comment:
  Fix the socket_receive() function so that it compiles on systems that
  lack the MSG_DONTWAIT macro (Windows).  Such systems lose non-blocking
  capabilities, but they work otherwise.


type: ci
user: drh
comment:
  The email-server enhancements are far from complete, but they at least
  compile now on non-linux systems, so it seems safe to merge the existing
  skeleton to trunk and continue development there where it can be more
  easily tested on live systems.


type: ci
user: drh
comment:
  Add "Truncate" and "Download" buttons to the /errorlog display.  Provide
  a link to the error log on the /setup page.


type: ci
user: drh
comment:
  Add "Download", "Test", and "Truncate" submenu buttons on the /errorlog
  page.  Show a confirmation page prior to truncating the error log.
  Improvements to the /test-warning page, including a link back to /errorlog
  through the submenu.


type: ci
user: drh
comment:
  When rendering SQLite log messages to the error log, include the SQL for all
  busy SQL statements in the log message.


type: ci
user: drh
comment:
  When logging transaction errors on the error log, try to include
  information about where the transaction started.


type: ci
user: drh
comment:
  Improved code to discover the IP address of the peer.  Record the IP
  address of the peer in a Received: header line of all input emails.


type: ci
user: drh
comment:
  Attempts to obtain the IPv6 address of the peer do not seem to work.
  Fallback to getting the IPv4 address until we figure this out.


type: ci
user: drh
comment:
  Improved process debugging for "fossil ui" and "fossil server".
  Sanely close the open database connection upon receiving SIGPIPE.


type: ci
user: drh
comment:
  Add the --nocompress option to the "ui", "server", and "http" commands. This
  option prevents HTTP reply compression, which is useful during debugging.
  The option is on by default for "test-http".  Also, make sure the mimetype
  for error messages is set to text/html.


type: ci
user: drh
comment:
  Update the built-in SQLite to the lastest 3.25.0 alpha version due to
  improved error message processing in that version.  3.25.0 also includes
  support for window functions, but we do not (yet) use that feature in Fossil.


type: ci
user: drh
comment:
  Webmail navigation updates.  Move message between Unread/Read/Trash.  Show
  50 messages per page with Newer and Older links when appropriate.


type: ci
user: drh
comment:
  Clarify the difference between fossil_fatal() and fossil_panic().  The
  fossil_panic() interface puts a message on the error log when generating
  webpages.  Otherwise the two routines are identical.  Convert some
  fossil_fatal() calls into fossil_panic() where appropriate.  The goal here
  is to limit messages on the error log to things that require attention from
  the system administrator, or represent bugs.


type: ci
user: drh
comment:
  Add a reference count field to the emailblob table and triggers to keep
  the reference count current and to drop entries when the reference count
  reaches zero.


type: ci
user: drh
comment:
  Webmail changes compile on linux, mac, and windows now, so merge them to
  trunk.  They are not ready for use, but they should not interfere with
  the stable parts of the code, and it is easier to test from trunk.


type: ci
user: drh
comment:
  Set an timeout on the database connection to the web-cache.  Use the
  sqlite3_table_column_metadata() interface to check to see if the web-cache
  database file needs to be initialized prior to actually initializing it.


type: ci
user: drh
comment:
  In the webmail interface, provide the option to show the SMTP transcript
  when that transcript is available.


type: ci
user: drh
comment:
  Improved tracing capabilities for email notifications.  Add the SelectAll
  button to the webmail display.


type: ci
user: drh
comment:
  The emailblob table holds content a little while before deleting it.
  Change the /test-emailblob page to /emailblob, though it is still only
  accessible by the administrator.


type: ci
user: drh
comment:
  Add the backoffice module for doing post-processing actions such as sending
  alerts and/or syncing repositories.


type: ci
user: drh
comment:
  Add the concept of "backoffice" processing, used to do background cleanup
  operations after repository changes, such sending alerts and/or syncing
  to peer repositories.


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest 3.25.0 alpha that includes support
  for the SQLITE_FCNTL_DATA_VERSION file control.


type: ci
user: drh
comment:
  Use the new SQLITE_FCNTL_DATA_VERSION interface in SQLite to limit running
  the backoffice processing to case when the repository file changes.


type: ci
user: drh
comment:
  Fix the backoffice delay so that it extends the deadline for the follow-on
  process if the current process runs overtime.  This prevents multiple
  follow-ons.


type: ci
user: drh
comment:
  The configuration loader automatically creates the subscriber table if
  necessary.  This fixes the "fossil clone" command for privileged users.


type: ci
user: drh
comment:
  Run the backoffice processing after every webpage.  Fix a memory error in
  one of the backoffice error messages.


type: ci
user: drh
comment:
  Backoffice only runs for successful webpage that have the database open.
  Add "refresh" and "Show All" buttons on the /errorlog page.


type: ci
user: drh
comment:
  At the end of CGI processing, close the output pipe before starting
  backoffice processing, in order to let higher levels know that the CGI
  is finished.


type: ci
user: drh
comment:
  Improved SQL logging after SIGPIPE.  Exponential backoff in the warnings
  issued when the backoffice process misses its deadline.


type: ci
user: drh
comment:
  The email_auto_exec property is removed.  The routine that sends alert emails
  is renamed to email_backoffice() and it is configured to always auto-run.


type: ci
user: drh
comment:
  Proposed new design for the forum.  Individual posts are stored as ordinary
  artifacts and thus participate in sync just like any other artifact.  There
  is a new artifact type used to describe forum posts.  This check-in defines
  the format of the new artifact type.  Follow-up check-ins on this thread will
  attempt to flesh-out the idea in code.


type: ci
user: drh
comment:
  Enhance the manifest parser to support parsing of Forum posts artifacts.
  At the same time, simplify the artifact syntax error detection logic
  using tables rather than straight code.


type: ci
user: drh
comment:
  Extra effort to close all prepared statements prior to exiting, in order
  to avoid dangling journal files.


type: ci
user: drh
comment:
  New options to the "fossil http" command:  --in FILE, --out FILE, 
  --ipaddr ADDRESS, and --nodelay.  Use the --in, --out, and --inaddr options
  for subprocesses that handle HTTP requests via file I/O.  This replaced
  the older and undocumented form of the "fossil http" command that accepted
  extra arguments.  Use the --nodelay option to prevent lengthy backoffice
  processing.  The use of --nodelay during "fossil ui" on Windows prevents
  annoying pauses on that platform.


type: ci
user: ashepilko
comment:
  In debug config,  reference the compiled sources; this allows stepping through the actual code in the debugger


type: ci
user: drh
comment:
  Revamp the /register page for added security.  Require entry of a
  display name and email address.  Validate the email address format and
  check for duplicate email addresses.


type: ci
user: drh
comment:
  Work toward pages to enter forum posts.  This is an incremental check-in
  to save state and definitely does not work.


type: ci
user: drh
comment:
  Always unlink prepared statements from the Stmt list prior to finalizing them.
  This prevents an error in db_finalize() from triggering a rollback and
  hence a recursive call to sqlite3_finalize().


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest trunk version that includes
  enhancements that allow a CREATE INDEX statement to occur without 
  interrupting a running SELECT statement.  This is important for correct
  operation of "fossil rebuild" since the forumpost table is created 
  on demand in the middle of a query over the blob table.


type: ci
user: drh
comment:
  Enhance the webpage_error() routine to show the complete calling
  environment to authorized users.  Also, continuing work on forum.


type: ci
user: drh
comment:
  Add the 'D' Debug user capability.  This is designed to show additional
  information and controls on webpages for debugging purposes.  Also take
  steps to avoid trying to generate a webpage error message after the webpage
  has already gone out.


type: ci
user: drh
comment:
  Make forum posts visible to object_description().  Add new diagnostics
  visible to users with the new "D" capability.


type: ci
user: drh
comment:
  If the user has the 'D' capability and the "showqp" query parameter
  exists, then all query parameters are shown at the top of the webpage.
  Also, fix some issues with forum.


type: ci
user: drh
comment:
  Further improvements to webpage_error() and webpage_assert().  Fix
  forum processing so that moderator approval and disapproval work.
  Add the "Delete" feature to forum that simply nulls out the page using
  an edit.


type: ci
user: drh
comment:
  Add the missing forum.js file.  Adjust forum.js so that it does a better
  job of autoscrolling to the selected forum message.


type: ci
user: drh
comment:
  Backoffice processing improvements:  Set a timer on the backoffice to prevent
  it from running too long.  Report errors on failed attempts to open
  /dev/null.  Use "NUL" instead of "/dev/null" on Windows.


type: ci
user: drh
comment:
  Improvements to error detection and reporting in the artifact parser.
  Add the test-parse-all-blobs command for verifying the artifact parser
  against historical repositories.


type: ci
user: drh
comment:
  Invoke abort() after a call to fossil_panic(), not exit(1).  This will leave
  a core file if the system is correctly configured.  Also show the panic on
  debugging logs.


type: ci
user: drh
comment:
  Break out the processing of capability strings into a separate source file.
  Add new SQL functions: capunion() and fullcap().  Only send email notifications
  to users who have appropriate capabilities.


type: ci
user: drh
comment:
  Add the backoffice-nodelay setting as a temporary measure to aid in
  debugging the unseemly delays currently being experienced in the UI.


type: ci
user: drh
comment:
  Try to make moderation a little easier, as recent experience suggests that
  will be a big deal with the forum.


type: ci
user: drh
comment:
  Only show the "Moderation Requests" submenu button if there exist one or more
  posts in need of moderation.


type: ci
user: drh
comment:
  Use the fork() system call (when available) to start backoffice, in an
  attempt to avoid unseemly delays in upstream.


type: ci
user: wyoung
ecomment:
  Posts are now hidden on the /forum page if they're marked as private
  (i.e. needing moderator attention) and they were posted by another user,
  except when the user is a moderator.

  (Closed because a different method was implemented on trunk.)

comment:
  Posts are now hidden on the /forum page if they're marked as private
  (i.e. needing moderator attention) and they were posted by another user,
  except when the user is a moderator.


type: ci
user: drh
comment:
  Make the backoffice-nodelay a setting visible on the settings display,
  and make it on by default.  This is a temporary fix to avoid webserver
  problems until such time as I can figure out what it is about backserver
  sleeping that is causing the webserver to latch up.


type: ci
user: drh
ecomment:
  Change the backoffice-nodelay setting back to default off.  Work around
  a bug in althttpd by making sure CGI runs with no file descriptors open
  other than 0, 1, and 2.  (Edit:)  These changes proved insufficient to clear
  the problem.

comment:
  Change the backoffice-nodelay setting back to default off.  Work around
  a bug in althttpd by making sure CGI runs with no file descriptors open
  other than 0, 1, and 2.


type: g
user: drh
comment:
  Edit [1073593e901e1791|1073593e90]: Move to branch [/timeline?r=failed-fix&nd&dp=1073593e901e1791&unhide | failed-fix]. Edit check-in comment.


type: g
user: mistachkin
comment:
  Edit [a9578f7870ced305|a9578f7870]: Move to branch [/timeline?r=win32Proc&nd&dp=a9578f7870ced305&unhide | win32Proc].


type: ci
user: mistachkin
comment:
  When sleeping inside the backoffice work loop, permit the sleep to be interrupted on Win32, which stops processing.


type: ci
user: drh
comment:
  Improved windows code for the backoffice. Properly check to see if processes
  still exist.  Provide a timeout feature.


type: ci
user: drh
comment:
  Improvements to email notification.  Rename the "email" command to "alerts".
  Try to avoid sending alerts about unapproved events, except it is ok to send
  such alerts to moderators.  This is a work in progress.


type: ci
user: drh
comment:
  Rearrange some of the subcommands on "fossil alerts" for better UX.  Fix
  a problem in the /webmail display for messages with no subject.  Improved
  comments.


type: ci
user: drh
comment:
  Boo.  All day I have been checking in changes to the failed-fix branch when
  I should have been putting them on the forum-v2 branch.  This is a cherry-pick
  merge that moves all of the changes from today from failed-fix over to
  forum-v2 in one go.  The "email" command is renamed to "alert" and is revised
  for a better interface.  Events that are waiting on moderator approval are
  not shown to non-moderator users.


type: ci
user: drh
comment:
  Fix the mkbuiltin.c code generator so that it tolerates Windows-style
  backslash path separators on its arguments.  This fixes the windows build
  that was busted by check-in [774bdc83556442c5].


type: ci
user: drh
comment:
  For non-digest subscribers, alerts for new forum posts are now in separate
  emails with each email having a subject which is the title of the forum thread,
  and with appropriate Message-Id and In-Reply-To header fields so that email
  clients can string together the email thread.  Digest subscribes still get
  just the synopsis.


type: ci
user: drh
comment:
  A new implementation for "Forum" in which each forum post is an artifact.
  This merge includes lots of enhancements to email notification, backoffice,
  configuration, and other subsystems, all in support of the new forum artifacts.
  The forum feature is not complete nor bug-free but at this point it seems
  good enough to continue development on trunk.


type: ci
user: drh
comment:
  Fix the separate-process backoffice so that it works smoothly on linux.
  Still work to be done on Windows.


type: ci
user: drh
comment:
  Improvements to the way backoffice is launched, especially on unix where it
  now runs in a separate process using fork().  Also fix some minor bugs in
  other parts of the system that were found while testing backoffice.


type: ci
user: drh
comment:
  Allow manifest artifacts to omit the C and U cards, because otherwise there
  are some historical manifest artifacts in Fossil itself that will not parse,
  and there may be similar artifacts in other repositories.


type: ci
user: drh
comment:
  Use the Windows _wspawnv() interface with the _P_NOWAIT option to start
  a separate backoffice process whenever necessary.  Add the
  backoffice-logfile setting for monitoring backoffice operation.


type: ci
user: mistachkin
comment:
  Fix error when compiling with JSON support enabled (TODO: review semantics to preserve JSON error handling).


type: ci
user: mistachkin
comment:
  In the backoffice module, use GETPID macro consistently, fix compiler warning with MinGW, and add an assert().


type: ci
user: jan.nijtmans
comment:
  Update internal Unicode character tables, used in regular expression
   handling, from version 10.0 to 11.0.


type: ci
user: drh
comment:
  Add initial documentation about email alerts.  Remove obsolete forum
  features from the "fossil config" command.


type: ci
user: wyoung
ecomment:
  Added Forum navbar before Tickets in all skins that had such a link,
  pointing to /forum if the user is anonymous and has capability 2 or 3,
  or is logged in and has any capabilities in 2-6 inclusive.

comment:
  Added Forum navbar before Tickets in all skins that had such a link,
  pointing to /forum if the user is anonymous and has capability 2 or 3,
  or is logged in and has capabilities 2-6 inclusive.


type: ci
user: drh
comment:
  If the "fds" query parameter is provided, then the /test-backoffice-lease
  webpage shows the open file descriptors.


type: ci
user: drh
comment:
  Fix the backoffice processes on unix so that they close file descriptors 0,
  1, and 2 and reopen them on /dev/null, so as not to interfere with parent
  processes in any way.  Restore the default of backoffice-nodelay back to off.
  Remove the /test-backoffice-lease webpage, which did not work correctly.


type: ci
user: drh
comment:
  In the backoffice process, close the 0, 1, and 2 file descriptiors and
  reopen them as /dev/null, on unix.


type: ci
user: drh
comment:
  Remove the /test-backoffice-lease webpage, since it doesn't really work
  correctly.  Use only the "fossil test-backoffice-lease" command moving
  forward.  We can wrap that command in a Wapp script if necessary.


type: ci
user: wyoung
comment:
  Fixed some Markdown formatting problems in www/emaildesign.md.  Made a
  few minor grammar tweaks while in there.


type: ci
user: drh
comment:
  Enhance the /register page so that it also does email subscriptions if that
  is enabled for self-registered users.


type: ci
user: drh
comment:
  Disable backoffice timeouts.  This is a temporary measure to avoid a
  horrible bug in which a timeout causes the email notification sending process
  to exit before recording the fact that notifications have already been sent,
  and thus causing the same notifications to be sent again on the next
  backoffice cycle, and so forth over and over and over.


type: ci
user: drh
comment:
  Go ahead and permanently remove the backoffice timeout mechanism, as it
  seems clear we will not have a use for it moving forward.


type: ci
user: wyoung
comment:
  Added point about multiple copies of each matching post in web search
  results to the forum.wiki doc.


type: ci
user: wyoung
comment:
  Clarity pass on the forum capability names in www/forum.wiki to match
  nomenclature on the Admin -> Users page.


type: ci
user: drh
comment:
  Take care that a bug in the email alert sender results in missed alerts
  rather than an endless cascade of duplicate alerts.


type: ci
user: drh
comment:
  Improvements to formatting in generated emails to make them appear less
  like spam.  Suggestions from "gahr" on the forum.


type: ci
user: drh
comment:
  Remove an unused function from the backoffice.c.  This problem only comes up
  on Windows as the function call was contained within #ifdef _WIN32.


type: ci
user: drh
comment:
  Allow login using either the username or the first email address found
  in the USER.INFO column.  Note that it might be useful to create an
  index on user(find_emailaddr(info)) to make this efficient in the case
  where there are many rows in the user table.


type: ci
user: drh
comment:
  Fix the /forum webpage so that it works even if the forumpost table does
  not exist in the repository.


type: ci
user: drh
comment:
  Try to put the human name of the person who posted on the From: line of
  email notifications for new forum posts.


type: ci
user: wyoung
comment:
  Fix to checkin [8c91be8b], which was intended to allow the user to log
  in with the email found in the contact info field of the user table.
  That checkin is fine as far as it goes, but it only works if the caller
  doesn't subsequently try to use the passed user name for anything else,
  since it isn't actually a user name.  This checkin causes the low-level
  login checking function to re-point the user name pointer at the actual
  login name discovered while scanning for matching email addresses.


type: ci
user: wyoung
comment:
  Zeroed a pointer in its declaration to squish a warning from GCC 4.8.4
  on Ubuntu 14.04 about use of a potentially uninitted pointer.  I don't
  think it's actually possible for the current code to use the pointer in
  the window between its declaration and first use, but I think we can
  afford the extra machine instruction this will cost us.  (I assume newer
  GCCs are smart enough to analyze this situation correctly, which is why
  the warning hasn't been squished earlier.)


type: ci
user: wyoung
comment:
  The periodic "updateClock()" call made in the header for several of the
  built-in skins (Eagle, Enhanced1, and Xekri) violates the new stricter
  CSP, since it requires a JS eval.  We don't need an eval here: we can
  pass the function's name literally to window.setTimeout instead, which
  treats it as a Function object, which doesn't need to be eval'd.


type: ci
user: mistachkin
ecomment:
  Update JSON code to account for new capabilities.  Also, the 'setup' and 'admin' capabilities should imply 'debug'.

comment:
  Update JSON code to account for new capabilities.  Also, the 'setup' capability should imply 'debug'.


type: ci
user: mistachkin
comment:
  Update JSON code to account for new capabilities. Also, the 'setup' and 'admin' capabilities should imply 'debug'.


type: ci
user: wyoung
comment:
  Fixed a few references to MIME type "text/x-fossil" in the fileformat
  document.  It's "text/x-fossil-wiki" everywhere else.


type: ci
user: wyoung
comment:
  Added "id"s to every header tag in the forum.wiki document, so you can
  create links to sub-sections.


type: ci
user: wyoung
comment:
  Added the "How Moderation Works" section to www/forum.wiki, and improved
  the newly-renamed "Using the Moderation Feature" section as a result.


type: ci
user: wyoung
comment:
  Assorted minor improvements to the www/alerts.md document.  The major
  one is re-emphasizing the need to give capability 7 to some user or user
  category.  Ask me how I came to think this necessary. :)


type: ci
user: wyoung
comment:
  Covered capability 7 in the forum.wiki document, and made several
  improvements to the "Using the Moderation Feature" section.


type: ci
user: wyoung
ecomment:
  The blob-to-SMTP encoding logic was not strictly following RFC 5321 in that it was only dealing with the lone dot on the line case, doubling it to prevent the SMTP server from interpreting that as end-of-message. It missed the case where, if anything follows the dot, SMTP drops the leading dot, so you must also double the leading dot in that case. Basically, you always double a leading dot, regardless of line length.

  This only affects Fossil's direct-to-SMTP email sending case, not those that send via a piped command or via DB. That is dealt with later in [8c0ec30bc3].

comment:
  Fixed the blob-to-SMTP encoding logic to prevent a possible data
  truncation when the line wrapping happens to place a period alone at the
  start of a new line.  SMTP treats that as end-of-message.  Fix diagnosed
  by gumblex, /forumpost/4290f75ba1.


type: ci
user: wyoung
ecomment:
  Changed all of the "sendmail -t" commands to "sendmail -ti" to make it ignore lines containing only a dot; we use EOF to signal "end of message," so we don't need the second signal. This is separate from the smtp.c fix in [51740ce45f]: that's only used when Fossil speaks directly to an SMTP server, where a leading dot is treated somewhat differently than the lone dot rule for sendmail(1)'s stdin. 

  This problem with leading dots was diagnosed by gumblex, /forumpost/4290f75ba1.

comment:
  Changed all of the "sendmail -t" commands to "sendmail -ti" to make it
  ignore lines containing only a dot.  This is separate from the smtp.c
  fix checked in just prior: that's about the SMTP level, where a leading
  dot is treated somewhat differently than the lone dot rule for
  sendmail(1)'s stdin.  Need for fix noticed by gumblex on the forums.


type: ci
user: jan.nijtmans
comment:
  Don't use "file nativename" in makemake.tcl, because it gives a different win/Makefile.msc when run on UNIX


type: ci
user: drh
comment:
  Improvements to self-register (the /register page) so that it works correctly
  for users how are already subscribers and enter the subscriber email.


type: ci
user: drh
comment:
  On the main /forum screen, provide the new n= and x= query parameters to
  enable access to older threads.


type: ci
user: drh
comment:
  Fix the hextoblob() function so that does not report out-of-memory
  if the size of the input string is zero bytes.  This fixes the instances
  of "out-of-memory" reports when accessing the /alerts page without an
  argument.


type: ci
user: drh
comment:
  Adjust the /forum page so that it for users without forum moderator privilege,
  it pretends that unmoderated posts do not exist, and for user with
  moderator privilege it paints an "Awaiting Moderator Approval" message on
  posts that need moderation.


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest trunk version which includes the
  fix for EXPLAIN QUERY PLAN for the query that runs the /forum page.


type: ci
user: drh
ecomment:
  Do not show posts that are awaiting moderation to users without moderator
  privilege unless they are the same user that generated the post in the
  first place.

comment:
  Do not posts that are awaiting moderation to users without moderator
  privilege unless they are the same user that generated the post in the
  first place.


type: ci
user: drh
comment:
  For email notifications abound events from a single user (such as individual
  forum post notifications) make the From: address be a "noreply" hash based
  on the users human-readable name or handle.  Always include a Return-Path:
  field in the header that is the email-self setting, to be used by MTUs that
  need to bounce the message.


type: ci
user: drh
comment:
  Do not put "Return-Path:" headers in notification emails to be sent.  That
  is a violation of standards as only the receiving SMTP server should add
  the Return-Path header.  Instead, include a custom X-Fossil-From: header
  that downstream software can use (if desired) to set the envelope header
  of the message.


type: ci
user: drh
comment:
  Enhance the backoffice to automatically purge stale entries from the
  emailblob table, if that table exists.


type: ci
user: wyoung
comment:
  Allow + signs in email addresses.  Added a comment to link to a source
  giving the true limit on legal characters in email addresses, which are
  currently far less restrictive than our newly-expanded limits.


type: ci
user: drh
comment:
  Simple changes to the default CSS and Header that seem to help Fossil work
  better on mobile by avoiding menu wraps.


type: ci
user: drh
comment:
  Make all webpages more mobile-friendly.  There are still many tweaks possible,
  but it seems to basically work now.


type: ci
user: drh
comment:
  When displaying a timeline on a narrow screen, move the date to the third
  column to make the first column narrower.


type: ci
user: drh
comment:
  For timeline graphs on narrow screens, set the rail pitch to its minimum value
  to conserve horizontal space.


type: ci
user: jan.nijtmans
comment:
  Add configurations "enable-capieng" (use Windows Certificate Store) and "no-weak-ssl-ciphers" (disable RC4 support)


type: ci
user: wyoung
comment:
  Added new CSS class forumPosts to the <div> containing the list of posts
  on the /forum page so that skins can target elements of this list
  differently than others.  One immediate use for this is styling read
  threads differently via a:visited styling.  Currently, only one of the
  stock skins ships with an unconditional a:visited change, so that all
  links show in the same color regardless of their state.  That's fine in
  most areas of the UI, but in the forum, a skin developer may want
  something special, so we need a way to mark them differently.  This
  <div> was already using the broadly-used "fileage" style, but we don't
  want changes to a:visited and such to affect all other users of fileage,
  so we need a unique style to this page.


type: ci
user: wyoung
comment:
  Applied the new CSP nonce to the <script> tags in the header for the
  Enhanced Original, Eagle, and Xekri skins, else the clock in the upper
  right breaks and Chrome gives an error about the CSP violation.


type: ci
user: wyoung
comment:
  Coloring the hyperlinks to the newest forum posts from /forum with a
  dimmer and less saturated version of the normal hyperlink color in the
  default skin, to test the new div.forumPosts selector.  Other skins to
  be updated later if this is approved.


type: ci
user: drh
comment:
  Try to start a new write transaction before updating the VCACHE table.  This
  will hopefully prevent occasional "database is locked" errors when browsing
  the documentation.


type: ci
user: drh
comment:
  Change the name of the "email.c" source file into "alerts.c".  Make
  corresponding changes to various interfaces.


type: ci
user: drh
comment:
  Enhancements to the /sitemap page.  New configuration options to add
  optional entries to the /sitemap page.


type: ci
user: drh
comment:
  Fix hyperlinks for extra pages on the /sitemap so that they correctly
  resolve to the root of the repository.


type: ci
user: drh
comment:
  Fix the "Public Pages" setting so that the initial part of the path that
  identifies a particular repository is ignored.


type: ci
user: drh
comment:
  Add 1em of left padding to multi-column unordered lists.  This extra
  padding is necessary to get Chrome and Edge to display the bullets on
  second and subsequent columns.


type: ci
user: wyoung
comment:
  Added "overflow-y: hidden;" to the CSS for the default skin to prevent
  some browsers (Chrome, Firefox, and Safari on macOS, at least) from
  adding a vertical scroll bar to the navbar.  This was only necesasry on
  this skin because of the recently-added "overflow-x: auto" style, which
  tells the browser to clip or horizontally-scroll the navbar if the
  screen width isn't sufficient to show the whole thing; previously in
  this skin, and currently in all other skins, this condition causes the
  navbar to wrap to the next line, which looks particularly bad on the
  default skin.  I believe this then made these browsers calculate some
  extra space for a possible horizontal scroll bar, which then ran the
  layout engine out of space, so it included the vertical bar just in
  case.  This may be macOS specific, due to the scroll bar hiding behavior
  introduced several OS release back.


type: ci
user: wyoung
ecomment:
  Noted the responsive design changes to the default skin in the change
  log. Expanded on the forum and alerts feature items.  Changed
  all the past-tense verbs to present tense to match the rest of the items
  and the prevailing style in past change log entries.

comment:
  Noted the responsive design changes to the default skin in the change
  log, and expanded on the forum and alerts feature items.  Also changed
  all the past-tense verbs to present tense to match the rest of the items
  and the prevailing style in past changelog entries.


type: ci
user: drh
comment:
  In the file browser, limit the maximum number of columns to be the number of
  files, so that a single file is never split across two columns.


type: ci
user: wyoung
comment:
  After autosetup checks for the existence of tclsh in the PATH, it now
  checks whether it's at least version 8.6, because macOS is still
  shipping 8.5, despite it being nearly 6 years old.  If we find an old
  tclsh, try to find the Homebrew tcl-tk package, and use that version
  instead.  This is not a macOS or Homebrew specific change in principle:
  we can extend this logic for other systems to find their best Tcl/Tk
  version, as needed.

  On systems where autosetup is used, this only affects "make test".
  There are other uses of tclsh in this tree which may also benefit from
  our PATH discoveries, but this checkin doesn't update those.

  This checkin also doesn't try to address similar problems on other
  platforms, such as the "TCLSH = tclsh" line in Makefile.mingw.


type: ci
user: wyoung
comment:
  Explained "Why can't we use Jim Tcl for the test suite?" in the auto.def
  comment above the check for a suitable tclsh version.  Basically, I
  tried it and then documented a few of the resulting failures.


type: g
user: wyoung
comment:
  Edit [e449cb09c18004ed|e449cb09c1]: Move to branch [/timeline?r=tclsh-macos&nd&dp=e449cb09c18004ed&unhide | tclsh-macos].


type: ci
user: wyoung
comment:
  Cached the result of "$tcl_platform(platform) eq "windows"" in
  test/tester.tcl and replaced all of the repetitions of this 
  expression with a test of the variable.


type: ci
user: wyoung
comment:
  The -quiet flag passed by default to tester.tcl can now be overridden by
  passing TESTFLAGS to make.  Before, there was no way to set -verbose
  this way because "-quiet -verbose" means the same thing as "-quiet".


type: ci
user: wyoung
comment:
  Replaced most of the direct calls to run_in_checkout from within the
  test suite with one of two wrapper functions that skip those tests when
  you run "make test" outside a Fossil repository checkout directory, such
  as from a directory containing an unpacked source release tarball.  (The
  two remaining direct calls to that proc from test/*.test are preceded by
  a check that skips the whole file they're in, since that whole file does
  nothing else.)   This is being checked in on a branch because it is not
  yet thoroughly tested, yet I need the checkpoint.


type: ci
user: wyoung
comment:
  Extracted the logic that was in tester.tcl's new outside_fossil_repo
  proc to the global level which just saves the result to a global
  variable so the logic doesn't have to be re-run for each test that
  relies on it.  The result doesn't change from one call to the next, as
  you'd hope for a proc without parameters.


type: ci
user: wyoung
comment:
  The new test_block_in_checkout proc in tester.tcl was not setting the CODE
  and RESULT global variables when it skipped a test, so there was a
  chance that a test would end up checking the prior values and throw a
  false positive.


type: ci
user: wyoung
comment:
  Fixed a Tcl syntax error checked in with [33efa2fa].  (Yay dynamic
  languages that run the code even if it's syntactically invalid.  P'tui!)


type: ci
user: wyoung
comment:
  Partially reverted one of the run_in_checkout replacements in
  test/th1.test: it was inside a foreach loop, which means the test for
  whether we're inside the Fossil repo checkout was being done 26 times.
  This is not only inefficient, it spammed the output with "Skipping test
  blabla..." lines.  Now doing a manual check outside the loop and
  skipping the in-repo tests silently inside the loop.


type: ci
user: wyoung
comment:
  The test harness now skips all tests done in the Fossil source repo
  checkout directory while there are uncommitted changes because that will
  affect the behavior of fossil status, fossil diff, etc., which in turn
  tends to create false positives in test harness code that checks for
  changes in fossil command output.


type: ci
user: wyoung
comment:
  Calling db_end_transaction() from the early-exit code paths of
  setup_skin_admin() to avoid "Transaction started at ./src/skins.c:466
  never commits" complaints with some types of Admin -> Skins edits.


type: ci
user: wyoung
ecomment:
  Ajaxy animated drop-down menu on clicking a new hamburger
  button in the default skin, as requested by drh on the forum:
  https://fossil-scm.org/forum/forumpost/40a18bd742

  Initial version uses jQuery loaded from Google Hosted APIs for ease of development.

comment:
  Ajaxy animated hamburger button as requested by drh on the forum:
  https://fossil-scm.org/forum/forumpost/40a18bd742


type: ci
user: wyoung
ecomment:
  Fixed a bug in the onclick handler for the new hamburger button which
  allowed the browser to follow our empty 'a href="#"' link.  For some
  reason, Chrome only did this sometimes, not always, which lead to me
  thinking it was some kind of race condition.

comment:
  Fixed a bug in the onclick handler for the new hamburger button which
  allowed the browser to follow our empty <a href="#"> link.  For some
  reason, Chrome only did this sometimes, not always, which lead to me
  thinking it was some kind of race condition.


type: ci
user: wyoung
comment:
  Converted src/href.js to jQuery as a demonstration: the code's nearly
  half the size, and it's clearer as a result.


type: ci
user: wyoung
comment:
  The hyperlinks in the hamburger menu drop-down still had the anti-robot
  defense activated.  Defeated it.


type: ci
user: wyoung
comment:
  Reverted [59c7ca0509]: drh says we can't use jQuery.  Also, there was a
  syntax error that sent all hyperlinks to the honeypot in some
  conditions.


type: ci
user: wyoung
ecomment:
  Converted JS hamburger button menu code to use standard JS only, no
  jQuery. 

  Temporarily lost the animation with this change: I'm checking this in separately to make the difference between this and the jQuery version clearer.

  Not sure how portable it is yet; I wouldn't be surprised if it
  broke on old IE, since we're using xhr.onload instead of the horrid
  mess that is xhr.onreadystatechange.

comment:
  Converted JS hamburger button menu code to use standard JS only, no
  jQuery.  Not sure how portable it is yet; I wouldn't be surprised if it
  broke on old IE, since we're using xhr.onload instead of the horrid
  mess that is xhr.onreadystatechange.


type: ci
user: wyoung
comment:
  Using CSS transitions to mimic jQuery's slideUp/Down() transitions.
  This probably restricts browser compatibility still further above the
  XHR issue noted in the earlier checkin on this branch.  According to
  MDN, we're probably restricted to IE 10+ with this, and maybe not
  even that due to not using vendor-specific extensions for the
  transitional browser versions.


type: g
user: wyoung
comment:
  Edit [d7c43c5aa7761cbc|d7c43c5aa7]: Move to branch [/timeline?r=js-hamburger-menu&nd&dp=d7c43c5aa7761cbc&unhide | js-hamburger-menu]. Edit check-in comment.


type: ci
user: wyoung
comment:
  Removed the <div> wrapping <ul id="sitemap"> and moved the multicolumn
  styling applied to it down to the <ul>, since it is already a block
  level element, so we don't need a div wrapper on it.  And then there's
  the real reason, which is that we want the multicolumn styling to work
  on the drop-down hamburger menu version as well.


type: ci
user: wyoung
comment:
  Changed hamburger menu drop-down menu from 33% of the screen width to
  90%: it works better on small screens, and it allows the sitemap to go
  multi-column on wider screens.  Also added some right-side padding to
  balance the padding added for <ul> on the left.


type: ci
user: wyoung
comment:
  Timing tweaks: made "hide borders" hack occur about the same time as the
  CSS transition finishes, and increased the menu show delay still further
  to make it work for Firefox.


type: ci
user: wyoung
comment:
  Added a guard on the use of CSS transitions so it falls back to a
  non-animated menu pull down if they appear not to be available on the
  current browser.  Also added a check for the existence of the hamburger
  menu item in case the skin admin diked it out, and did a few other minor
  tweaks to the footer JS code.


type: ci
user: drh
comment:
  Add the new "script" element to skins, accessible as /script.js.  The idea
  is to put the hamburger menu javascript from the js-hamburger-menu branch
  in this script element, rather than inlining it in the footer.  But I am not
  certain that is the best way to go so this change is parked on a branch
  for now.


type: ci
user: drh
comment:
  Add the styleScript TH1 command to enabling including the script element of
  the skin in-line in the header or footer.


type: ci
user: jan.nijtmans
comment:
  Compile openssl with option no-weak-ssl-ciphers (or -DOPENSSL_NO_WEAK_SSL_CIPHERS)
  Update custum Makefile.mingw


type: ci
user: jan.nijtmans
comment:
  add support for TLS 1.3, when compiled with OpenSSL 1.1.1 (LTS). Windows build adapted to use OpenSSL 1.1.1 by default. Still compiles and runs with older OpenSSL as well


type: ci
user: wyoung
comment:
  Avoided a divide by 1000 by changing a value formerly specified in
  floating point seconds to be specified in milliseconds, so we don't
  need the arithmetic.


type: ci
user: wyoung
comment:
  Removed the anti-robot defense stand-down call from the default skin's
  new footer JS: that's handled server-side now with /sitemap?popup=1.


type: ci
user: jan.nijtmans
comment:
  Make sure that Fossil is always compiled with SQLite >= 3.25.0. 
  Add mention of TLS 1.3 to changelog.


type: ci
user: jan.nijtmans
comment:
  Docker: upgrade to fedora 28, and use https in stead of http to retrieve fossil source code. 
  Use fedora versions of Tcl in stead of building our own.


type: ci
user: wyoung
comment:
  Replaced the WIP and indefinite future paragraphs in www/alerts.md with
  definite statements now that we're approaching release.


type: ci
user: wyoung
comment:
  Reworked the documentation for email alerts to put all the information
  in a single document: a) Moved the "quick email setup" material from the
  forums.wiki document into `alerts.md`; b) linked to that moved material
  from its original location; c) greatly expanded the material previously
  present in the `alerts.md` document; c) merged the `emaildesign.md`
  document into `alerts.md`, so we don't have to link out to two separate
  documents which previously partially repeated each other.  This pass
  also fixed a number of grammar errors and broken links.


type: ci
user: wyoung
comment:
  Updated the documentation permuted index to include a grammar fix
  checked in with the previous checkin.


type: ci
user: wyoung
comment:
  Added colored shading, more padding, and a thick left border to
  <blockquote> elements in the default skin.  This is based on some custom
  styling that Florian Balmer has been doing for quoted text on the forum
  lately, but the styling is rather different.  It affects all such
  elements, not just those in forum posts, since I couldn't see a good
  reason to restrict it: it should be equally valuable in wiki and
  embedded doc articles as well.


type: ci
user: drh
comment:
  Add the "fossil branch current" command.  Also rearrange the code and the
  help text for the "fossil branch" command so that the various subcommands
  are in alphabetical order.


type: ci
user: stephan
comment:
  Added a missing db_finalize() call in /json/branch/list which led to a downstream segfault via an invalid/destructed Stmt handle.


type: ci
user: mistachkin
ecomment:
  Backout of [115544e97517f447].  Unbreaks the SSL enabled build for MSVC on Windows, due to OpenSSL build system changes that are not accounted for by the check-in.  Also, there were crashes with MinGW produced binaries using OpenSSL 1.1.1.

comment:
  Backout of [115544e97517f447].  Unbreaks the SSL enabled build on Windows, due to OpenSSL build system changes that are not accounted for by the check-in.  Also, there were crashes with MinGW produced binaries using OpenSSL 1.1.1.


type: ci
user: drh
comment:
  Allow /sitemap to accept the popup query parameter as GET as long as the
  incoming request is from the same origin.  This is probably sufficient to
  prevent revealing URLs to robots.  And the use of GET seems to be more in
  keeping with the REST idea.


type: ci
user: drh
comment:
  The POST request by the hamburger menu must set the right content type of
  application/x-www-form-urlencoded in order to pass the popup=1 query parameter.


type: ci
user: wyoung
comment:
  Fixed the panel.style.hasOwnProperty() test in the default skin's js.txt
  so that it will work on IE8 and below.  See code comment for rationale.


type: ci
user: drh
comment:
  Fix the default CSS for the "columns" class to avoid breaking column breaks
  within a single &lt;li&gt; element.


type: ci
user: wyoung
comment:
  Replaced the "hasOwnProperty" test for CSS transition support in the
  animated hamburger menu JS code with a better test that not only works
  on old IE but also on some truly ancient versions of SeaMonkey, Firefox,
  Chrome, etc.


type: t
user: wyoung
brief: Ticket [c541b6e73460ecb6|c541b6e734]: 6 changes
comment:
  Ticket [c541b6e73460ecb6|c541b6e734] <i>Allow tech notes to have binary attachments, with CLI support</i> status still Open with 6 other changes


type: t
user: wyoung
brief: Ticket [683457aa0f15fadc|683457aa0f]: 4 changes
comment:
  Ticket [683457aa0f15fadc|683457aa0f] <i>localtime on server not syncronized. &quot;strange&quot; behaviour in fossil</i> status still Open with 4 other changes


type: t
user: wyoung
brief: Ticket [c4677b052bd10659|c4677b052b]: 6 changes
comment:
  Ticket [c4677b052bd10659|c4677b052b] <i>Make &quot;help&quot; command smarter to reduce the need for &quot;-a&quot; option</i> status still Open with 6 other changes


type: ci
user: wyoung
comment:
  Second attempt at blockquote styling, this time restricting it to forum
  posts only.  (Previous: [2190f86c324d0])


type: ci
user: wyoung
comment:
  The previous checkin on this branch prevented src/smtp.c from both
  building and linking because the code previously assumed that it could
  only build against libresolv for MX lookups and such on Linux, but the
  checkin gave it enough slack to *attempt* to build on macOS.  This
  checkin prevents that from happening if run on stock macOS, but if you
  install libbind via Homebrew, it also opens up the possibilty to biuld
  against it for the first time.  It's a complicated sequence of checks
  due to the way libbind interacts with the stock libresolv.  This means
  we have yet more reason to want to test this widely before merging it
  to trunk.


type: ci
user: wyoung
comment:
  Added autosetup checks for alternative libraries and names for
  the res_query() and ns_*() functions that module smtp.c previously
  depended on finding in libresolv/glibc.  Checking it in on a branch
  because it needs multiplatform testing.  This version solves the problem
  originally reported on the forum by Andy Goth, being that the current
  trunk doesn't build on CentOS 5.


type: ci
user: wyoung
comment:
  Replaced the call to the undocumented ns_name_uncompress() function with
  dn_expand(), which is documented, at least on OpenBSD, and it's shorter.
  Then made ns_name_uncompress() and __ns_name_uncompress() fallbacks for
  this, with suitable autosetup tests for all of it.


type: ci
user: wyoung
comment:
  Removed the "Linux" platform test from the DNS MX stuff in src/smtp.c.
  You should always test for features, not platforms, and we've now got
  the feature tests we need to replace this too-broad platform test.


type: ci
user: wyoung
comment:
  Added a check for ns_parserr(), which we currently don't know how to
  find on OpenBSD.  This also fixes a logic error in auto.def which would
  cause the warning that this feature won't be compiled to not be given.


type: ci
user: wyoung
comment:
  Merged branch libbind-ns-alternative: I haven't found any platform where
  this won't build. It doesn't enable libbind or use libresolv better on
  every platform where it might possibly work, but at the very least it
  avoids build errors everywhere I've tried it.


type: g
user: mistachkin
comment:
  Edit [bddd4961aa845456|bddd4961aa]: Move to branch [/timeline?r=build-ignore-glob&nd&dp=bddd4961aa845456&unhide | build-ignore-glob].


type: ci
user: drh
comment:
  When clicking on a username in the timeline, link to a timeline that shows
  *all* events for that user.  In other words, override the display-cookie
  y= query parameter by providing an explicit y=a query term.


type: ci
user: drh
comment:
  Enable the chronological forum display for all users able to read the
  forum.  Make chronological the default display mode for mobile devices,
  as determined by the user-agent string.


type: ci
user: wyoung
comment:
  Setup and Admin users that are in the subscriber table were getting
  email alerts only if they had explicit moderator capabilities set.
  Those with bare "s" or "a" weren't getting notified.


type: ci
user: andygoth
comment: Update Fossil man page to include new "common" commands, according to the output of "fossil help"
ecomment:
  Run "tools/man_page_command_list.tcl fossil.1" to update Fossil man page to include new "common" commands, according to the output of "fossil help"


type: ci
user: wyoung
comment:
  Noted the addition of "fossil grep" in Fossil 2.7. (Somehow this missed
  the release.)

ecomment:
  Added an entry for `fossil grep` to the www/changes.wiki file in the 2.7 section. Somehow this addition wasn't noted prior to the release.


type: ci
user: wyoung
comment:
  Moved the documentation for Fossil's grep implementation out of 
  src/regexp.c into a new document with greatly-expanded content, 
  www/grep.md, which is now referenced both from the source code and in
  the output for "fossil help grep".


type: ci
user: wyoung
comment:
  Listed the actual differences between fossil grep options and those
  defined by POSIX in www/grep.md.


type: ci
user: wyoung
comment:
  Added -DUSE_LINENOISE to Makefile.classic, since it's built into Fossil,
  and that build system has no way to find or use libedit or libreadline
  intead.


type: ci
user: wyoung
comment:
  Added -lm to LIB in Makefile.classic to allow src/piechart.c to build on
  systems where the trig functions are in libm.


type: ci
user: wyoung
comment:
  Checkin [15e1dcd058b5b3e1] had no useful effect: we need to set this
  flag at the "make" level, not as a C preprocessor flag.  Not backing it
  out because the change is harmless as well as useless.


type: ci
user: wyoung
comment:
  Commented out the -lm option added to Makefile.classic recently: libm
  doesn't exist on all platforms.


type: ci
user: wyoung
comment:
  Avoided a crash in Fossil > Admin > Notification > Send Announcement
  triggered when no subscribers are set up, causing it to fail on Submit
  if you tell it to send the announcement to all subscribers.  The check
  also guards against sending such things before email alerts are set up.
  In either case, the "Send Announcmeent" page gives an error pointing you
  to the docs, rather than a form that cannot be successfully submitted.


type: ci
user: drh
ecomment:
  Remove the
  [https://www.sqlite.org/compile.html#enable_fts3_parenthesis|SQLITE_ENABLE_FTS3_PARENTHESIS]
  compile-time option from default builds.  This avoids problems that might
  arise when users type parentheses in search boxes that use FTS.

comment:
  Disable FTS_PARENTHESIS in default builds.  This avoids problems that might
  arise when users type parentheses in search boxes that use FTS.


type: ci
user: drh
comment:
  Allow users with Forum Supervisor permission ('6') to add Forum Write Trusted
  permission ('4') to users as they are approving a post by that user.


type: ci
user: drh
comment:
  On the /setup_ucap_list page, show the number of users having each
  capability, with a link to a list of users.  This only works for 
  administrators.


type: ci
user: wyoung
comment:
  Fixed an HTML typo in the /help page, reported by "Z03":
  (https://fossil-scm.org/forum/forumpost/13c80e13e2


type: ci
user: wyoung
comment:
  Bolded the card letters in fileformat.wiki and normalized 'X card' vs
  'X-card' vs '"X" card' to make it easier to search for a given card type
  in the document.


type: ci
user: wyoung
comment:
  Added a nonce attribute to the <script> tag for the inline JavaScript
  backing the WYSIWYG wiki editor feature.  Without this, modern browsers
  throw a CSP violation.


type: ci
user: wyoung
comment:
  Removed a period at the end of a sentence ending in a URL to avoid the
  need for cleverness in URL handling to get the correct document to open.
  (Affects "fossil help grep" output.)  Problem noticed by jungleboogie on
  the forum, /forumpost/13332107cc.)


type: ci
user: wyoung
comment:
  Applied a patch by forum user vor0nwe to allow the WYSIWYG wiki page
  editor to work in the face of the new CSP restrictions on inline
  JavaScript.  The patch and explicit license for inclusion in Fossil are
  here: https://fossil-scm.org/forum/forumpost/6985a4754e


type: ci
user: florian
comment:
  Allow the hamburger menu to be closed instantly by pressing ESC or by clicking outside. This is the patch initially submitted to [https://fossil-scm.org/forum/forumpost/2abe305c2d], with the interim changes incorporated.


type: ci
user: florian
comment:
  Read the CSS transition style to be restored later directly from the (previously initialized) style property, as window.getComputedStyle() seems to return null with Firefox, in this specific case. This fixes a problem introduced with the previous check-in.


type: ci
user: florian
comment:
  Extend the CSS fixes to avoid column breaks inside list items, [dc5e06ff71] and [51da396650], as Firefox classifies 'break-inside' as an 'invalid property name'. This affects the sitemap and the hamburger drop-down menu.


type: ci
user: florian
comment:
  Fix the hamburger menu template from the documentation to ensure TH1 variables are properly HTMLized.


type: ci
user: florian
comment:
  Cancel the timer to remove the border of the hamburger menu panel after the closing animation, if the menu is closed and immediately reopened by double-clicking the hamburger button.


type: ci
user: florian
comment:
  Switch away from classic (bubbling-only) event handling to simplify management of temporary handlers, and to have the ESC key listener use a priority (capturing) handler, to prevent any other keydown handlers or default actions for the ESC key while the panel is open. This does not change the compatibility test results summarized here: [https://fossil-scm.org/forum/forumpost/f425a1756c]. (IE8 halts JS processing at JSON.parse in antiRobotDefense, anyway.) Also, for non-compatible browsers, there's a new fallback to transform the hamburger button into a simple (non-scripted) link to the sitemap.


type: ci
user: drh
comment:
  Fix a comment on the "html" and "puts" TH1 commands.  Before this fix, the
  meanings of the two commands were reversed.


type: ci
user: florian
comment:
  Modify the comment formatter to avoid output of incomplete UTF-8 sequences, and to avoid line breaks inside UTF-8 sequences. See [https://fossil-scm.org/forum/forumpost/1247e4a3c4] for detailed information and tests.


type: ci
user: florian
comment:
  For consistency, HTMLize another TH1 variable, though not sure if this is required, see [https://fossil-scm.org/forum/forumpost/bc0b6ce4a1].


type: ci
user: florian
comment:
  Remove leftover IE8 compatibility code, as the hamburger menu never worked with this browser. (The hamburger button would be replaced with a non-scripted link to the sitemap, if JS processing got this far.)


type: ci
user: florian
comment:
  Add output buffering to the (non-legacy) comment printing algorithm, to reduce calls to fossil_print(). The resulting performance improvement can be up to factor 10, with a perceptible difference even for short comments (measured and tested on Windows with MSVC builds, and on Ubuntu with GCC builds). (For comparison: for the legacy comment printing algorithm, the extra UTF-8 checks added by this branch impair performance by 0.12-1.8%, depending on whether the input contains predominantly multi-byte vs. ASCII-only sequences.)


type: ci
user: drh
comment:
  Enhance the security-audit page to detect insecurities resulting from having
  self-registration enabled.  This is a work in progress.  More testing and
  more checks are needed in this area.


type: ci
user: wyoung
comment:
  Fixed an off-by-one error in the error log header printer, resulting in
  the day number being for the next day past the call time.  Bug diagnosis
  and fix from https://fossil-scm.org/forum/forumpost/0d5933da4c


type: ci
user: drh
comment:
  Split out the repo_list_page() routine, used to generate the repository list
  for "fossil all ui" and similar, into a separate source file "repolist.c" to
  make it easier to enhance and maintain.


type: ci
user: drh
comment:
  Enhance the repository list page so that it shows the name of project for
  each repository, and so that the "Last Modified" time is based on the most
  recent event in the repository, not the repository file mtime.


type: ci
user: drh
comment:
  Enhance makeheaders so that it is able to deal with static_assert() statements.
  (These do not come up in Fossil itself.  This check-in is in response to use
  of Makeheaders by external projects.)


type: ci
user: drh
comment:
  Enhance the "fossil branch ls" command with two new options.  The -t option
  sorts the branch list with the most recent branch first.  The -r option
  reverses the sort order.


type: ci
user: drh
comment:
  When running a bisect, show the span between the two extremes and the
  number of steps remaining after each step.


type: ci
user: wyoung
ecomment:
  The "New Thread" button in /forum is no longer restricted to those with
  forum write capability: if you lack it, we now send you to the login
  page instead.  Without this, users without the capability to post are
  left looking in through the window of a building without obvious doors.
  This change pairs especially nicely with the self-registration feature,
  but it doesn't require it, since /login also allows anonymous login,
  which should be enabled for Fossil forums on sites where non-users are
  expected to visit.

comment:
  The "New Thread" button in /forum is no longer ristricted to those with
  forum write capability: if you lack it, we now send you to the login
  page instead.  Without this, users without the capability to post are
  left looking in through the window of a building without obvious doors.
  This change pairs especially nicely with the self-registration feature,
  but it doesn't require it, since /login also allows anonymous login,
  which should be enabled for Fossil forums on sites where non-users are
  expected to visit.


type: ci
user: wyoung
comment:
  Fix to previous for the "non-constant format" complaint from some
  compilers.  I can't see what they're yelling about, but this fixes it.


type: g
user: wyoung
comment:
  Edit [cdb7f3b988da4624|cdb7f3b988]: Move to branch [/timeline?r=login-on-post&nd&dp=cdb7f3b988da4624&unhide | login-on-post].


type: ci
user: florian
comment:
  Fix a problem with initial indent introduced by the previous check-in, so that all regression tests from test/comment.test now succeed. Also eliminate three more calls to fossil_print(). Regarding performance, the legacy comment printing algorithm is outnumbered by factor 2-3, with these changes.


type: ci
user: florian
comment:
  Ensure the line buffer for the legacy comment printing algorithm can hold maximum-length UTF-8 sequences.


type: ci
user: florian
comment:
  For better word breaking results with the (non-legacy) comment printing algorithm, make sure the lookahead to the next space character is UTF-8-aware. Also make sure the per-line remaining character count is decremented properly for UTF-8 sequences. The neuralgic points now handle UTF-8 sequences correctly, and they could be enhanced to work with the effective display width, if required (to handle combining characters, and East Asian Wide and Fullwidth characters).


type: ci
user: florian
comment:
  Fix a bug (already present on trunk) with the (non-legacy) comment printing algorithm, detected while running the regression tests from test/comment.test with UTF-8 text: the function to print the indent (modified to a calculate-only function on this branch) was handed a pointer to the current line index and the current line index, thus performing checks at (current line index * 2), causing random increments of the current line index.


type: ci
user: florian
comment:
  Minor optimizations: drop a few redundant comparisons and calculations, and take advantage of the logical AND short-circuit by testing the least expensive and most unlikely condition first. Also fold away the iterative comments into cross references.


type: ci
user: wyoung
comment:
  The /secaudit0 page was checking for both Admin and Setup capabilities,
  which means it was only accessible to users with Setup users, since that
  is the only class that can have both capabilities.  Since it's
  documented as being available to Admin users, changed the logic to allow
  access to Admin *OR* Setup users.


type: ci
user: wyoung
comment:
  Found several more pages protected with "!g.perm.Setup && !g.perm.Admin"
  guards: changed them all to "!g.perm.Admin" only for the same reason as
  [558952c8].


type: ci
user: wyoung
comment:
  The /setup_modreq page was limited to Setup users, but since it controls
  what users with Moderator capability can do, made it available to Admin
  users as well.


type: ci
user: wyoung
comment:
  The /setup page can now be seen by both Admin and Setup users, as
  requested by drh via private email.  The set of links shown is culled
  for Admin-only users.  Also changed some comments to match the code with
  respect to Admin vs Setup capability.  The only change to user
  capability interpretation in this checkin is to the /setup page.


type: ci
user: drh
comment:
  Improvements to the command-line comment formatter so that it works better
  with non-ASCII characters.


type: ci
user: wyoung
comment:
  The /setup_adunit, /setup_logo, and /setup_skin pages now give full
  rights to Admin-only users, not just to Setup users, since it seems
  sensible for a Setup user to delegate cosmetic matters to "mere" Admins.


type: ci
user: wyoung
comment:
  Added the admin-v-setup.md document explaining the differences between
  the Setup and Admin user capabilities, and offering a philosophical
  argument for why these distinctions are drawn as they currently are.


type: ci
user: wyoung
comment:
  The recent change that allows Admin-only users to edit the skin affected
  the setup.c side of things only: there were also several bits in skins.c
  that checked for g.perm.Setup, so an Admin-only user couldn't actually
  do anthing useful.


type: ci
user: wyoung
comment:
  The new blockquote tinting feature of the default skin now works in the forum
  post editor screen as well, not just in the forum post display screen.


type: ci
user: stephan
comment:
  Reworded 2 references to 40-character artifact IDs, since those particular IDs may now be longer than 40 characters.


type: ci
user: drh
comment:
  In /timeline, the cherrypicks query parameter puts the graph into "disjoint"
  mode, which displays much better for the data it is presenting.


type: ci
user: drh
comment:
  Enhance the /wcontent page to show a sortable list of wiki pages
  together with the number of versions and the time of last change.


type: ci
user: drh
comment:
  Change timeline hyperlinks to wiki pages to point to the specific version
  of the wiki page that the timeline entry refers to, not to the latest version
  of that page.


type: ci
user: drh
comment:
  On the /info page for wiki, give a link to the next version of that
  wiki page in chronological order.


type: ci
user: drh
comment:
  Use an ordinary table to display /whistory rather than a timeline, as the
  timeline comments are not helpful.


type: ci
user: drh
comment:
  Next and Previous submenu buttons on the /wdiff page in order to step through
  all versions of a wiki page.


type: ci
user: florian
comment:
  Move a variable declaration introduced by [b695e97d7a] to the beginning of the scope, for strict ANSI C-89 conformance, as specified in the Coding Style document [/doc/trunk/www/style.wiki]. (Required by some old MSVC compilers, to build executables with dynamic linking to msvcrt.dll.)


type: ci
user: florian
comment:
  Fix a problem introduced by [06586ef70f]: on cloning, only create the tables for the email notification system if any configuration data from the 'Email subscribers' group is received.


type: ci
user: florian
comment:
  Also add background colors, clickable nodes, the option box to select the viewing mode, and timeline query parameters 'ng', 'brbg' and 'ubg' for the /brtimeline and /tagtimeline web pages.


type: ci
user: florian
comment:
  Revise and partially revert [d28f9e99a0] and [f174bfa157]: no need to remove the parents, TIMELINE_DISJOINT already does the magic. Related nodes now again have connecting rails for the /leaves, /brtimeline, and /tagtimeline web pages.


type: ci
user: florian
comment:
  Add the 'hide' query parameter to remove check-ins tagged as "hidden" (which are shown by default) for the /leaves, /brtimeline, and /tagtimeline web pages. (Rationale: listings of open leaves not tagged as "hidden" can make handy TODO lists.)


type: ci
user: florian
comment:
  Add the 'onlyhidden' query parameter to show only check-ins tagged as "hidden" for the /leaves, /brtimeline, and /tagtimeline web pages.


type: ci
user: florian
comment:
  For consistency with the 'tag' and 'reparent' commands, have --dry-run always print the generated control artifact and omit the unchanged summary, and drop --verbose


type: ci
user: florian
comment:
  Enhance the options for the 'amend' command: document --date-override, and add --user-override, --verbose, and --dry-run


type: ci
user: florian
comment:
  Rename the 'hide' query parameter to 'nohidden' for the /leaves, /brtimeline, and /tagtimeline web pages.


type: ci
user: florian
comment:
  For the 'tag find' command, move parsing of the -n|--limit option to the innermost scope, to avoid conflicts with the 'tag add' variant of the -n|--dryrun option


type: ci
user: florian
comment:
  For the 'tag' command, parse all options after the sub-commands, so that no unsupported options can be used (for example, disallow 'fossil tag cancel --propagate ...'), and to have a consistent command-line format with sub-commands followed by options


type: ci
user: florian
comment:
  Enhance the options for the 'tag cancel' command: add --date-override and --user-override, and show a summary for the help text


type: ci
user: drh
comment:
  Draw arrows for cherrypick merges on the context graph. There is still
  no distinction between normal and cherrypick merges, though. Both arrows
  look alike.


type: ci
user: drh
comment:
  For checkins that are a cherrypick or that are cherrypicked, so the other
  side of the cherrypick merge in the "Context" section of the /info page.
  This enhancement requires a "fossil rebuild" in order to function.


type: ci
user: drh
comment:
  General enhancements to the "amend", "tag", and "reparent" command, including
  adding flags like --override-date, --override-user, and --dry-run.


type: ci
user: drh
comment:
  Show cherrypick merges on the default timeline.  Disable the display of
  cherrypicks using the "ncp" query parameter.  Currently, the only display
  difference between a normal merge and a cherrypick merges is in the final
  horizontal segment of the merge line as it moves into the child node.  More
  work is needed on the display logic.


type: ci
user: drh
comment:
  Improvements to /timeline generation of cherrypick merges.  Cherrypicks are
  now shown with the f= query parameter. Add the cherrypicks query parameter
  to /timeline.  Add test cases to the graph-test-1.wiki page.


type: ci
user: mistachkin
comment:
  Experimental changes to unified diff output to 'ignore' sections that are purely additions.  Still needs SBS support and tests.


type: ci
user: drh
comment:
  This checkin does a cherrypick merge off of another checkin that already
  has a prior full merge.  The purpose of this checkin is to provide a test
  case for the cherrypick graph drawing logic.  The code in this checkin is
  not intended to actually be used for anything.


type: ci
user: drh
comment:
  Enhance the from=/to= query parameters on the /timeline page so that when
  the "rel" query parameter is present, the graph shows checkins that merge
  with checkins on the choose path.


type: ci
user: florian
comment:
  Fix the login links for the /download web page, as suggested here: [https://fossil-scm.org/forum/forumpost/a742969590].


type: ci
user: drh
comment:
  Begin adding the ability to use specially-named wiki pages to supplemental
  information about branches, tags, and/or checkins.


type: ci
user: drh
comment:
  Improved page titles when editing wiki about branches, checkins, and tags.
  Honor the wiki-about flag.


type: ci
user: drh
comment:
  Allow wiki pages with names like "branch/BRANCH", "checkin/HASH", and
  "tag/TAGNAME" to automatically link to displays of the corresponding branch,
  checkin, or tag.


type: ci
user: drh
comment:
  Change the /info page Overview section to have "Wiki:" links for wiki
  display, instead of "Edit Wiki:" links.  Users who want to edit, can do
  the additional "Edit" click from the wiki page.  Also have /info honor
  the nowiki query parameter.


type: ci
user: drh
comment:
  Do not allow edits to wiki pages associated with branches, checkins, or tags
  for users who do not also have checkin privileges.


type: ci
user: drh
comment:
  On the /timeline page with the r= or t= query parameters, change the header
  to report that it is showing only check-ins, since that is all it will show
  regardless.


type: ci
user: drh
comment:
  Put an "Add Wiki" button in the submenu for /timeline displays of branches
  and tags.  Add the "Add Wiki:" line to the overview section of check-in /info
  pages.


type: ci
user: florian
comment:
  List the FOSSIL_SECURITY_LEVEL environment variable in the Environment Variables and Global Options document.


type: ci
user: drh
comment:
  Increase the version number to 2.8 and update the change log, in case we decide
  to do a new release soon.


type: ci
user: drh
comment:
  Omit hard-coded n= query parameters on /timeline hyperlinks for branches
  and tags.  Use the n= cookie.


type: ci
user: wyoung
comment:
  Updated the hash policy document, mainly to put it in past tense and to
  cover the current situation.


type: ci
user: wyoung
comment:
  Updated the Debian Stretch speculation bit at the end of the hashpolicy
  document with latest results from the forum thread.


type: ci
user: wyoung
comment:
  Added a hyperlink from the "upgrade to Fossil 2.1 or later"
  recommendation at the top of the hash policy document to the
  "Installing" section of the Quick Start document.


type: ci
user: drh
comment:
  Fix the remote_repo_info() function to avoid resource leaks and to
  suppress unhelpful error and warning messages.


type: ci
user: drh
comment:
  Verify the repository fingerprint whenever a repository is opened from
  a checkout database. For now, abort with an error if the fingerprint is
  incorrect. To do: have Fossil automatically adjust RIDs in the checkout
  database if the fingerprint is incorrect.


type: ci
user: drh
comment:
  Detect when the repository associated with a check-out has been swapped out
  for a clone with different RID values, and give the user a warning.
  Still to do: automatically recover.


type: ci
user: stephan
comment:
  Extended the repo/checkout fingerprint mismatch warning to offer an interim workaround, per forumpost/5f9d4cef56.


type: ci
user: stephan
comment:
  Added a warning about loss of stash and undo when performing the 'interim workaround' for an RID mismatch.


type: ci
user: drh
comment:
  Enhance the stash so that it stores hashes and no long depends on RID value.
  Do this is a way that is backwards compatible and transparent to the user.
  After running any "stash" command using this version of Fossil or later, the
  schema will automatically update and the stash should survive a subsequent
  RID renumbering event in the repository without damage.


type: ci
user: wyoung
comment:
  Largely rewrote www/ssl.wiki, it being 7 years since the last update,
  during which time much has changed in TLS land.  Added the initial
  version of www/tls-nginx.md as a companion article to it, since the
  topic is too deep to get into within ssl.wiki.  Finally, added a new
  script, tools/fslsrv, referred to by tls-nginx.md, since it's too big to
  put inline within the article.


type: ci
user: drh
comment:
  Change the schema of the vmerge table so that it remembers the hash of
  merged artifacts, not the RID.  Schema updates are automatic, but once
  the update occurs, you are committed to using the newer version of
  Fossil moving forward.


type: ci
user: drh
comment:
  Fix a hyperlink error on the graph-test page.  (This should have been 
  committed to trunk to begin with.)


type: ci
user: drh
comment:
  Automatically update the VFILE and VMERGE tables when the fingerprinting
  detects that a repository has been replaced by clone.


type: ci
user: drh
comment:
  When SQLite detects that the repository associated with a checkout has
  been replaced by a clone (such that the RID values potentially change) then
  automatically adjust the content of the checkout database.


type: ci
user: drh
comment:
  Enhance the "redirect-to-https" setting so that if it is 2 or more it
  forces all pages to travel of a secure connection.


type: ci
user: wyoung
comment:
  Updated the Security-Audit page to better handle the change from the old
  https-login setting to the new redirect-to-https setting.


type: ci
user: wyoung
comment:
  Updated www/ssl.wiki to cover the new "Redirect to HTTPS" setting and to
  add recovery methods for the case where enabling it causes a redirect
  loop.


type: ci
user: drh
ecomment:
  Does not work.
  Was: Do not display the "HH:MM" timestamps to the left of the graph on very
  narrow displays (phones in viewed in portrait mode) as the HH:MM takes up
  precious horizontal space and does not add that much value to the display.

comment:
  Do not display the "HH:MM" timestamps to the left of the graph on very
  narrow displays (phones in viewed in portrait mode) as the HH:MM takes up
  precious horizontal space and does not add that much value to the display.


type: ci
user: drh
comment:
  Fix the chref() helper function so that it correctly renders the class
  attribute on the generated hyperlink with hyperlink display is delayed as
  an anti-robot defense.


type: g
user: drh
comment:
  Edit [31c64c3b1a8f60ac|31c64c3b1a]: Move to branch [/timeline?r=mistake&nd&dp=31c64c3b1a8f60ac&unhide | mistake]. Mark "Closed". Edit check-in comment.


type: ci
user: florian
comment:
  Add the "comment-format" setting to set the default options for printing timeline comments to the console, as discussed here: [https://fossil-scm.org/forum/forumpost/d9954370c7].


type: ci
user: drh
comment:
  Add the global --comment-format command-line option and the "comment-format"
  setting for controlling the display of the command-line timeline.


type: ci
user: drh
comment:
  Change the "reparent" command so that it only works within an open checkout.
  Documentation improvements, especially add documentation to about the
  FOSSIL_SECURITY_LEVEL environment variable.


type: ci
user: florian
comment:
  Enhance the 'reconstruct' command to set the correct hash policy (SHA1 or SHA3-256) for artifacts read from disk, inferred from the length of the path name. Also enhance the 'deconstruct' and 'reconstruct' commands with an option to ensure the artifact with RID=1 is a valid manifest. See the wiki page linked to this branch for more information and tests.


type: ci
user: wyoung
comment:
  Expanded the discussion of OpenSSL options in www/ssl.wiki, mainly
  adding advice on installing it via package managers.  The new OpenSSL
  discussion in build.wiki now points to this, rather than to the next
  section level up, as in the prior checkin.


type: ci
user: wyoung
comment:
  Expanded the section on --with-openssl=none in www/build.wiki to explain
  why adding that option is a bad idea, what to do instead, and to point
  to the newly expanded OpenSSL discussion in www/ssl.wiki for more
  information.


type: ci
user: wyoung
comment:
  Noted that linking Fossil to an OpenSSL built from source opens the user
  to the "no root certs" problem previously solved in www/ssl.wiki.


type: ci
user: florian
comment:
  Add a test command to infer the hash policy from the length of path names on reconstruct (disabled by preprocessor directive).


type: ci
user: drh
comment:
  Enhance the "reconstruct" command so that sets the correct hash policy
  for artifacts read from disk.


type: ci
user: florian
comment:
  For the 'tag' command, omit updating the "manifest" files without an open check-out, as reported here: [https://fossil-scm.org/forum/forumpost/dc06c157e5].


type: ci
user: florian
comment:
  Backout [6e80af7e52], as this branch enables the 'reparent' command to work without an open check-out.


type: ci
user: florian
comment:
  Allow arguments with non-ASCII characters for constructed shell commands, as reported here: [https://fossil-scm.org/forum/forumpost/81e6854386].


type: ci
user: mistachkin
comment:
  When rendering the default header via TH1, allow the default Content-Security-Policy content to be overridden via the 'default_csp' variable.


type: ci
user: mistachkin
comment: Skip setting the 'default_csp' TH1 variable if it already exists (i.e. it was manually overridden).
ecomment:
  Skip setting the 'default_csp' TH1 variable if it already exists (e.g. it was manually overridden via the TH1 setup script).


type: ci
user: mistachkin
comment:
  Add the 'nonce' command to TH1.  Improve clarity of the 'default_csp' variable handling and add comments.


type: ci
user: mistachkin
comment:
  When rendering the default header via TH1, allow the default Content-Security-Policy content to be overridden via the 'default_csp' variable.  Also, add the 'nonce' command to TH1.


type: ci
user: drh
comment:
  Fix the display of wiki and markdown on /artifact pages so that hyperlinks
  are shown as if relative to /doc/VERSION.


type: ci
user: drh
comment:
  Add extension functions delta_apply(), delta_create(), delta_output_size(),
  and delta_parse() to the SQL connection for the "fossil sql" command.


type: ci
user: drh
comment:
  Update the built-in SQLite to the latest trunk version that includes
  all of the fixes that were in the 3.27.2 release.


type: ci
user: drh
comment:
  When doing a "fossil update" if files are removed from a directory, then try
  to delete that directory (if it is empty) at the end of the update, if the
  directory is not on the empty-dirs list.


type: ci
user: drh
comment:
  Fix the rmdir-on-update so that it works even if the update is occurring in
  a subdirectory of the repository.  Do not remove the subdirectory that is
  the current working directory even if it is empty.


type: ci
user: drh
comment:
  For the "fossil update" and "fossil checkout" commands, if a managed file is
  removed because it is no longer part of the target check-in and the directory
  containing the file is empty after the file is removed and the directory is 
  not the current working directory and is not on the empty-dirs list, then
  also remove the directory.


type: ci
user: jan.nijtmans
comment:
  Update internal Unicode character tables, used in regular expression handling, from version 11.0 to 12.0. 
  In "[/help?cmd=regexp|fossil regexp]", "[/help?cmd=grep|fossil grep]" and the TH1 "regexp" command, the -nocase option now removes multiple diacritics from the same character (derived from SQLite's remove_diacritics=2)


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Make fossil work with Tcl 8.7 (still in alpha), even when Tcl is compiled with -DTCL_NO_DEPRECATED


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Fix a mysterious bug in is_ticket() that was preventing me from updating the TCL repository.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Update internal Unicode character tables, used in regular expression handling, from version 11.0 to 12.0. 
  In "[/help?cmd=regexp|fossil regexp]", "[/help?cmd=grep|fossil grep]" and the TH1 "regexp" command, the -nocase option now removes multiple diacritics from the same character (derived from SQLite's remove_diacritics=2)


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Add the "New Era" or "元号" placeholder to the (regexp) Unicode tables. So fossil is ready for the expected japanese May 1 event. See: [http://blog.unicode.org/2018/09/new-japanese-era.html]


type: ci
user: andybradford
comment:
  Enable make install without first calling make workflow by adjusting the
  install target prerequisites. This allows make install to be called on a
  fresh clone/checkout of  Fossil because otherwise OBJDIR  is missing and
  make install fails.


type: ci
user: drh
comment:
  Enhancements to the "backoffice" command:  Added the --nodelay option and
  added the ability to specify multiple repositories.


type: ci
user: drh
comment:
  Initial check-in of the documentation for the proposed VCCP.  
  Very incomplete.
  This is just to save my work.


type: ci
user: drh
comment:
  When doing a "fossil stash" make sure that the stash has committed before
  deleting changes from disk, so that the changes can be recovered if something
  goes wrong.


type: ci
user: drh
comment:
  Do the export within a transaction for performance.  Record a complete
  two-way map of Git and Fossil names in the mirror.mmark table.


type: ci
user: drh
comment:
  Add the "fossil git export" command, designed to simplify making a Git
  mirror of a working Fossil repository.


type: ci
user: drh
comment:
  Update the "fossil git export" command so that it remembers the last repository
  name and reuses it if no repository is specified.  Add the --force option.


type: ci
user: drh
comment:
  When the "fossil git export" command displays the "git push" command it is
  about to run, omit the display of any password that happens to be embedded
  in the URL.


type: ci
user: drh
comment:
  Abandon an export to Git if a phantom artifact is encountered on any
  check-in that is less than one year old.  This is a defense against generating
  an incorrect export from a repository that has an incomplete sync.  Shunned
  artifacts are always ignored, regardless of age.


type: ci
user: drh
comment:
  Do not use the --input-marks option with "git fast-import".  Instead, remember
  older Git-names and insert them directly into the fast-import stream.


type: ci
user: drh
comment:
  Automatically run "git repack -adf" after an initial export to git using
  the "fossil git export" command.  (Recommended by Linus Torvalds himself.)


type: ci
user: wyoung
comment:
  Removed the Markdown and Wiki help page links from the Help section of
  the sitemap when the accessing user has no ability to create content in
  those formats: no wiki, ticket, or forum creation capability, no checkin
  rights, and no Admin rights.


type: ci
user: wyoung
comment:
  Only showing the file name extension to MIME type map page on the
  sitemap if the accessing user has an ability to check in named files.
  I can't see how anyone else would care what that table contains.


type: ci
user: wyoung
ecomment:
  Wiki formatting fix pass on www/server.wiki in preparation for more
  substantial changes: removed all explicit &lt;p> tags where they don't
  affect rendering; changed all &lt;a name...>&lt;h2> with &lt;h2 id=...>; added
  whitespace; moved &lt;blockquote> tags down to their own line since they're
  key to the page layout.

comment:
  Wiki formatting fix pass on www/server.wiki in preparation for more
  substantial changes: removed all explicit <p> tags where they don't
  affect rendering; changed all <a name...><h2> with <h2 id=...>; added
  whitespace; moved <blockquote> tags down to their own line since they're
  key to the page layout.


type: ci
user: wyoung
comment:
  Expanded the discussion of the difference between "fossil ui" and
  "fossil server" in www/server.wiki.


type: ci
user: wyoung
comment:
  Moved the section on stunnel configuration from www/server.wiki to
  www/ssl.wiki, adding links from one to the other.  Also changed all
  remaining references to "SSL" in server.wiki to "TLS".


type: ci
user: wyoung
comment:
  Expanded the "Standalone server" section of www/server.wiki to add more
  examples.  Also fixed a few grammar problems elsewhere in the doc.


type: ci
user: andybradford
comment:
  Replace most calls to db_begin_transaction() with db_begin_write() to avoid
  having a reader locking during a COMMIT.


type: ci
user: jan.nijtmans
comment:
  Add the "New Era" or "元号" placeholder to the (regexp) Unicode tables. So fossil is ready for the expected japanese May 1 event. See: [http://blog.unicode.org/2018/09/new-japanese-era.html]


type: ci
user: drh
comment:
  Add a new explanatory comment to clarify the operation of
  the "fossil server" implementation.  No code changes.


type: ci
user: wyoung
comment:
  Fixed a few bugs in the Makefile in the www/image-format-vs-repo-size.md
  doc, and added a caveat about potential further bugs.


type: ci
user: drh
comment:
  Use the BIO_ADDR_hostname_string() function from OpenSSL to obtain the
  IP address of the remote side, if that function is available.


type: ci
user: drh
comment:
  If the login fails during a clone or sync, fail the command immediately rather
  than reprompting for a new password, as the sync is going to eventually fail
  anyhow.


type: ci
user: andybradford
comment:
  Remove extra output  when requirements are found and there  is really no
  need for a warning here either.


type: ci
user: drh
comment:
  Accept pure numeric ISO8601 date/time strings (without punctuation) if there
  are not conflicts with other identifiers.


type: ci
user: drh
comment:
  Expand the dates in the timeline description when using punctuationless dates
  in the query parameters.


type: ci
user: wyoung
comment:
  Several improvements to the image-format-vs-repo-size experiment and the
  report documenting it: dropped the first 3 columns of data to make the
  bar chart clearer; drawing the bar chart on a transparent BG in case
  it's used on a page with a non-white BG, as with a selected Fossil forum
  post; added axis labels; added a run time calculation to the expensive
  first step; fixed a few syntax problems that prevent the Python code
  from compiling on Python 3; documented some problems with running it under
  Anaconda on macOS; better documented the notebook's dependencies; many
  clarifications to the experimental report text.


type: ci
user: wyoung
comment:
  Added Jupyter nbviewer link for www/image-format-vs-repo-size.ipynb, and
  made a few small edits to the notebook after seeing it in that viewer.


type: ci
user: drh
comment:
  Support both "1)" and "1." for numbered lists in markdown, as
  commonmark does.  Patch from A. Kupries.


type: ci
user: andybradford
ecomment:
  Backout [f517cb7f] because  they both come together anyway  and this one
  is a macro.  See [https://fossil-scm.org/forum/forumpost/da64c38d6a] for
  discussion.

comment:
  Backout [f517cb7f] because they both come together anyway.  See https://fossil-scm.org/forum/forumpost/da64c38d6a for discussion.


type: ci
user: andybradford
ecomment:
  Clean up the detection of BIO_ADDR_hostname_string by removing redundant
  definitions;  apparently autosetup  has  a  feature which  automatically
  creates a define with HAVE_  prepended for whatever function is intended
  to be detected.

comment:
  Clean up the detection of BIO_ADDR_hostname-string by removing redundant
  definitions;  apparently autosetup  has  a  feature which  automatically
  creates a define with HAVE_  prepended for whatever function is intended
  to be detected.


type: ci
user: wyoung
comment:
  The abbreviated certbot command didn't work here on my first Let's
  Encrypt renewal after writing the tls-nginx.md document, so changed
  that advice to use the full-strength form.


type: ci
user: drh
comment:
  Sync and Clone HTTP requests omit the extra /xfer path element from the
  end.  This should work fine with all versions of Fossil server published
  since 2010, but might require that the /xfer path element be added manually
  to the URL for server instances that predate check-in [94bb313444b0165e].


type: ci
user: drh
comment:
  Try to suppress an SQLite scan warning on servers for repositories with
  a large number of shunned or private artifacts.


type: ci
user: andybradford
comment:
  Fix private content push bug mentioned on Forum. It's possible that this
  content has already been recorded as private so ignore unique constraint
  error.


type: ci
user: wyoung
comment:
  Applied a fix to fossil-autocomplete.bash posted on the forum, said to
  avoid adding a space to the end of an autocompleted path:
  https://fossil-scm.org/forum/forumpost/7ba4a4c495


type: ci
user: drh
comment:
  If a "fossil sync" gets a 301 or 302 redirect, then change the saved remote
  URL to the redirected URL.


type: ci
user: drh
comment:
  Issue a gentle warning, rather than a scary error message, if the autopush
  following a commit fails due to insufficient permissions.


type: ci
user: drh
comment:
  Change redirect handling so that (1) status codes 307 and 308 are recognized
  as redirects in addition to 301 and 302 and (2) the remote URL is only changed
  if it encounters a permanent redirect (301 or 308).


type: ci
user: drh
comment:
  Enhance the /timeline query parameter parsing so that the ymd=, ym=, and
  yw= query parameters can optionally omit the date punctuation.


type: ci
user: drh
comment:
  On the /artifact page, only show the "Line Numbers" checkbox if the artifact
  is displayed as text/plain.


type: ci
user: drh
comment:
  Enhance the "fossil git export" so that it works for repositories that use
  a single artifact as both an ordinary file and as a check-in manifest.


type: ci
user: drh
comment:
  On a "fossil git export", run appropriate "git update-ref" commands to make
  sure that all refs/heads point to the latest check-ins for the branch, even
  in cases there the branch has been renamed on the Fossil side by a tag.


type: ci
user: drh
comment:
  Fix the computation of capabilities in the "Capability Summary" report so that
  it ignores the special users "nobody", "anonymous", "reader", and "developer".


type: ci
user: drh
comment:
  Make full use of the new file_tempname() in "fossil diff" with both --from and
  --to options.  Improve file_tempname() to allow for a suggested differentiator
  tag.


type: ci
user: tsbg
comment:
  Make sure that the "--nocgi" option gets removed from the command line (hint: short circuit evaluation of the && operator).


type: ci
user: andybradford
comment:
  When attempting to  determine the Fossil user information,  do not smash
  the global URL  information which may contain an alternate  URL used for
  sync operations (e.g.  when using "fossil sync --once").  This fixes the
  ability  to work  offline  and  synchronize with  a  USB thumbdrive  ala
  sneaker-net.


type: ci
user: drh
comment:
  Improved rendering of the graphs on the /thisdayinhistory page.  More
  generally, improved rendering of multiple graphs on the same page that
  omit the TIMELINE_DISJOINT flag.


type: ci
user: drh
comment:
  Fix the anti-robot logic so that auto-hyperlink-mouseover actually works
  and so that the "mouseover" setting sent down to javascript is determined
  only by the setting on the Access page.


type: ci
user: drh
comment:
  The dotted vertical lines in the graph should use the default color, not the
  foreground color of the node.


type: ci
user: drh
comment:
  Add a new TIMELINE flag to control the dotted vertical lines that indicate
  omitted nodes.  Only enable the dotted verticals where they make sense.


type: ci
user: jan.nijtmans
comment:
  (cherry-pick): Clean up the detection of BIO_ADDR_hostname_string by removing redundant definitions;  apparently autosetup  has  a  feature which  automatically creates a define with HAVE_  prepended for whatever function is intended to be detected.


type: ci
user: drh
comment:
  Attempts at improving timeline graphs to be more intuitive and informational.
  For this check-in, add the TIMELINE_XMERGE property to disable merge lines
  to non-graph nodes.  Then disable TIMELINE_DISJOINT for branch graphs.


type: ci
user: drh
comment:
  Do not draw risers and descenders all the way to the top and bottom of the
  graph if that is not necessary.


type: ci
user: drh
comment:
  Connect the horizontal merge arrow all the way over to vertical rises toward
  the top for nodes with u==0.


type: ci
user: stephan
comment: Create new branch named "moderate-disapprove-on-user-delete"
ecomment:
  Create new branch named "moderate-disapprove-on-user-delete" (ooops - all these years and i never realized that "branch new" automatically creates a new empty commit!)


type: ci
user: stephan
comment:
  When deleting a user via /setup_uedit, also disapprove any pending-moderation entries for users which are no longer in the user table. This is programmatically simpler than only removing entries for the removed user but (potential corner case) would also disapprove pending modreq entries if a user account is renamed while moderation of their content is pending.


type: ci
user: drh
comment:
  Automatically disapprove pending moderation requests when deleting a user.
  This makes it easier to deal with spam-robots.


type: ci
user: stephan
comment:
  Added missing nonce to script tags in the bootstrap skin, one of which caused the submenus to not be properly displayed.


type: ci
user: drh
comment:
  Add the %j formatting directive to the customized printf() inside of
  Fossil.  The %j format generates a string with appropriate backslash
  escapes so that the string can be part of a Javascript string literal.


type: ci
user: drh
comment:
  Proof-of-concept for how to pop up a tooltip when mousing over one of the
  branch arrows in a timeline graph.


type: ci
user: drh
comment:
  Add tooltips to more elements.  Click to jump to the branch displayed by
  the tooltip - except clicking no a node toggles the node selection on and off
  as it always has.


type: ci
user: mistachkin
comment:
  When attempting to determine the Fossil user information, do not smash the global URL information which may contain an alternate URL used for sync operations (e.g. when using 'fossil sync --once'). This fixes the ability to work offline and synchronize with a USB thumbdrive ala sneaker-net.


type: ci
user: drh
comment:
  Improvements to the timeline graph layout:  (1) Use a dotted vertical line
  to indicate a gab of one or more check-ins in a branch.  (2) Do not necessarily
  draw branch lines all the way to the top or bottom of the page.  Leave space
  for the rail to be reused by other branches.


type: ci
user: drh
comment:
  Single-click to get the tooltip.  Double-click to hyperlink to the branch
  graph. Click is approximate and does not require a direct hit on the graph
  line.


type: ci
user: drh
comment:
  Check-in [344a3331d34d896776] breaks the build when using openssl-1.0.1 so
  back it out for now.

ecomment:
  Check-in [344a3331d34d896776] breaks the build when using openssl-1.0.1 so
  back it out for now.  (Added:) The content is correct, but this check-in
  shows an unexpected merge.  I don't know yet if the extra merge is a bug in
  fossil or a PBKAC.  This check-in was originally to trunk but is now moved
  to a branch.


type: ci
user: drh
comment:
  Improvements to the default tooltip CSS so that it is readable on skins
  with dark backgrounds and light text.


type: ci
user: drh
comment:
  Improvements to branch linkage from the tooltip.  Branch linkage now works
  even from a file history graph.  And the source check-in is always
  highlighted in the linked timeline.


type: g
user: drh
comment:
  Edit [8ac66ef33b464d28|8ac66ef33b]: Move to branch [/timeline?r=bad-merge&nd&dp=8ac66ef33b464d28&unhide | bad-merge]. Edit check-in comment.


type: g
user: drh
comment:
  Edit [d99debe8ee5079f9|d99debe8ee]: Move to branch [/timeline?r=bad-merge&nd&dp=d99debe8ee5079f9&unhide | bad-merge].


type: ci
user: florian
comment:
  Make the "click to show tooltip" action more "discoverable" with a changing mouse cursor, similar to the timeline nodes. This example uses the "pointer" cursor, but the "help" cursor may also be an option.


type: ci
user: florian
comment:
  Hide the tooltip if the mouse is outside the current timeline table, and outside the tooltip itself.


type: ci
user: florian
comment:
  Classic styling for the tooltip (grey shadow, also works with dark backgrounds) and the hyperlink (blue and underlined, to indicate it can be clicked).


type: ci
user: florian
comment:
  Experimental change to have the tooltip appear automatically after a "dwell timeout", in addition to mouse clicks. See the wiki page linked to this branch for more information.


type: ci
user: drh
comment:
  Merge in the most recent enhancements from trunk, and the new experimental
  feature that puts the select branch first in the timeline.


type: ci
user: drh
comment:
  Add a new test case to the graph-test-1.wiki file that verifies that when
  a fork occurs, the longest chain of check-ins occurs directly above the
  fork.  That test case is currently failing and needs to be fixed.


type: ci
user: jan.nijtmans
ecomment:
  Better solution than [344a3331d34d896], which doesn't involve runtime-detection. Works with both Openssl 1.0.2 and 1.1.x.

comment:
  Better solution than [344a3331d34d896], which doesn't involve runtime-detection. Works with both Openssl 1.0.1 and 1.1.0.


type: ci
user: drh
comment:
  Fix to the graph layout algorithm so that forks try to stay to the same rail,
  as they did in prior releases.


type: ci
user: drh
comment:
  For timelines of a particular branch, try to put the target branch on the left
  side of the graph, before "trunk".  Trunk comes second.


type: ci
user: drh
comment:
  Add a configuration option under the Admin/Timeline setup menu to set the
  dwellTimeout for tooltips.


type: ci
user: florian
comment:
  Deduplicate code, and consistently use "style.display" instead of "style.visibility" to show and hide the tooltip.


type: ci
user: florian
comment:
  Auto-close the tooltip after a timeout, if the mouse pointer is no longer over the associated element. The auto-close timeout is elapsed (and the tooltip closed instantly) if the mouse pointer is over another element, paused (and reset) as long as the mouse pointer is over the tooltip, and cancelled (and the tooltip kept open) if the mouse pointer is moved back over the same element.


type: ci
user: florian
comment:
  Fix a bug introduced with [e0198213f3]: using "style.visibility" is essential to calculate the dimensions in the hidden state.


type: ci
user: drh
comment:
  For timelines with the r= query parameter for a particular branch, try to
  draw that branch on the far left.


type: ci
user: drh
comment:
  Improved computation of the rail mapper for timelines on a branch.
  If the branch is across two or more rails, then all rails of that
  branch are moved to the left as far as practical.


type: ci
user: drh
comment:
  The tooltip over a graph node shows a link to the check-in or artifact that
  the node represents, not a link to the branch.


type: ci
user: drh
comment:
  Add a non-linked "type" name in front of all tooltips.  Style the foreground
  color and border color based on the default font color.


type: ci
user: florian
comment:
  Ensure the close timer is started for tooltips belonging to nodes instead of rails, and prevent an out-of-bounds array access for double-clicks outside of rails.


type: ci
user: florian
comment:
  Add a "Copy Hash" icon to the tooltip, to copy the hash or branch name of the underlying element to the clipboard. See the wiki page linked to this branch for more information.


type: ci
user: florian
comment:
  Move the code to setup the "Copy Hash" icon to a separate function, and link the icon to the target element through a "data-copytarget" attribute, so that "Copy Hash" icons could be added in other places than just tooltips.


type: ci
user: stephan
comment:
  Pedantic cleanup to how to the SQL compress()/decompress() UDFs report an OOM, which can happen via zlib, outside of fossil's fail-fast allocator.


type: ci
user: florian
comment:
  Introduce the "copy-button" CSS class with the SVG icon as the background image, to simplify the Javascript part.


type: ci
user: florian
comment:
  Cherry-pick [ac199e7a8a]: Explicitly query the client mouse coordinates, to fix the positioning of tooltips for nodes in IE.


type: ci
user: florian
comment:
  Tune the SVG image data URI for IE: remove the (invalid) encoding tag, and URL-encode the smaller than and greater than signs.


type: ci
user: drh
comment:
  Make the new "login-group" command a secondary command in the help system
  so that one needs to include the "--all" option to see it.


type: ci
user: florian
comment:
  Revert the manual edits to the makefiles from [f6fcbf292b], and only keep the changes made by the src/makemake.tcl script.


type: ci
user: florian
comment:
  Move the "Copy Button" functionality to a separate Javascript module, to be loaded and used independently from the timeline graph module.


type: ci
user: florian
comment:
  Add the "data-copylength" attribute to control the length of the copied text. (Rationale: Allow copying just the shortened hash prefixes from elements displaying the full-length hashes, because the short forms are preferred when building command-lines or URLs, and because the full-length hashes are already much easier to copy.)


type: ci
user: florian
comment:
  Check that the value of the "data-copylength" attribute is a positive number prior to chopping the text.


type: ci
user: florian
comment:
  Revamp the comments, and refactor the code in preparation for an auto-init functionality for HTML-defined buttons.


type: ci
user: florian
comment:
  Auto-init HTML-defined buttons during the "DOMContentLoaded" event, so no more Javascript code required, apart from loading the copybtn.js module.


type: ci
user: florian
comment:
  Demonstration of the copybtn.js module beyond tooltips: add a copy button near the full-length hash of check-ins on the /info page, to copy only the hash prefix when clicked.


type: ci
user: florian
comment:
  Also use the now global hash_digits() function in src/info.c, and set the copy length limit to FOSSIL_HASH_DIGITS_URL for consistency with the copy buttons on the tooltips.


type: ci
user: florian
comment:
  Add a TH1 command to output text with a copy button, and modify the default View Ticket Page template to include a copy button for the ticket hash (UUID).


type: ci
user: florian
comment:
  Add a copy button near the branch name on the /info page, to have a way to copy the branch name without opening a tooltip.


type: ci
user: florian
comment:
  Cherry-pick [6a54cf2939]: Trim leading and trailing white space from the text to be copied to clipboard (do this in Javascript, so no need to care about the extra white space when generating HTML elements).


type: ci
user: florian
comment:
  Trim leading and trailing white space from the text to be copied to clipboard (do this in Javascript, so no need to care about the extra white space when generating HTML elements).


type: ci
user: florian
comment:
  Output the copy button patterns for HTML pages and TH1 scripts from a centralized function, to make it easier to apply global modifications.


type: ci
user: florian
comment:
  Automatically set the element ID for dynamically created copy buttons to "copy-IDTARGET" (analogous to the TH1 copybtn function).


type: ci
user: florian
comment:
  Define the spacing between copy buttons and adjacent elements by CSS rules, so that (0) no additional white space (nbsp) needs to be inserted into the HTML document, (1) the spacing can be modified by CSS rules, and (2) the copy buttons can be hidden by CSS rules.


type: ci
user: florian
comment:
  Make sure there's any graph elements, before accessing their properties (applies to timelines for tickets, wiki pages, or forum posts).


type: ci
user: drh
comment:
  Since the /info page is now reachable by double-clicking on the graph node,
  change the timestamp to be a link to the general /timeline page around that
  particular time.


type: ci
user: drh
comment:
  Disable the mouse-motion anti-robot requirement for devices that self-identify
  as a tablet or mobile device, and hence might never send mouse-motion events.


type: ci
user: drh
comment:
  Add a configuration option to cause timeline timestamps to link to 
  the /info page instead of to the /timeline page.


type: ci
user: drh
comment:
  Minor name refactoring and comment enhancements in graph.js.  No logic changes.
  Improvements to the javascript compressor.  Apply compression to "*/js.txt"
  files in addition to "*.js" files.


type: ci
user: drh
comment:
  Improvements to tooltip behavior in an effort to make it easier to move
  the mouse over to the "copy button" or to the hyperlink without the tooltip
  changing out from under the user.


type: g
user: drh
comment:
  Edit [60d25189d2718a5a|60d25189d2]: Move to branch [/timeline?r=tablet-antirobot-fix&nd&dp=60d25189d2718a5a&unhide | tablet-antirobot-fix].


type: ci
user: florian
comment:
  This check-in started as a follow-up to [55f56e91ba] to make the tooltip less hasty, and prevent it from being instantly reshown (and slightly moved) when the mouse pointer goes back from the tooltip to the owning node. The final result is a combined and simplified "mousemove" handler for both nodes and rails, with consistent tooltip lifetime: the tooltip is only closed if the mouse pointer is at a fixed point over another element for the (full) duration of the dwell timeout, or away from the owning element (and the tooltip) for the (full) duration of the close timeout. This check-in also improves positioning of the tooltip for longer dwell timeouts.


type: ci
user: stephan
comment:
  Added a -setmtime flag to the checkout and open commands which works identically to that flag for the update command. The open command should arguably do this by default.


type: ci
user: drh
comment:
  Add the --setmtime option to the "checkout" and "open" commands.  Add a new
  "touch" command that does nothing but run --setmtime on all named files.


type: ci
user: florian
comment:
  Update the copyTextToClipboard() Javascript function to suppress scrolling, and remove the temporary textarea in case of an error (i.e. blocked clipboard access), as suggested here: [https://fossil-scm.org/forum/forumpost/40189d7d2f].


type: ci
user: stephan
comment:
  Per forum discussion, the "touch" command now defaults to --now (the current timestamp) unless --checkin is used, which applies the timestamp of the most recent checkin in which each file was modified.


type: ci
user: drh
comment:
  Add an entry about the new "touch" command and "--setmtime" option to
  the change log for version 2.9.


type: ci
user: stephan
comment:
  Minor reformatting, doc updates, and corrected duplicate display of touched file count in dry-run mode.


type: ci
user: stephan
comment:
  Per forum discussion: when the calculated timestamp of a to-be-touched file is 0, emit a warning and do not set the timestamp. As-yet-uncommitted merges can cause mtime_of_manifest_file() to calculate a time of zero: https://fossil-scm.org/forum/forumpost/6e49ee3725


type: ci
user: wyoung
comment:
  Adding a simulation (www/collisions.ipynb) for checkin collisions over a
  working day, given parameters like number of checkins per day.  This
  is in support of discussion on the forum centering on this post:
  https://fossil-scm.org/forum/forumpost/7349f4b6e1


type: ci
user: wyoung
comment:
  Removed the "or --allow-fork" advice output from "fossil checkin" when
  forcing the checkin would fork the branch.  It's good for Fossil to have
  this option, especially for automated tooling that needs to just bull
  forward blindly, but it's bad advice to give to interactive users.  Let
  them discover it via --help, if they learn of it at all.


type: ci
user: wyoung
comment:
  Polishing pass on www/collisions.ipynb: improved docs, simplified the
  "sd" parameter as "spread", removed an empty cell, and renumbered the
  cells.


type: ci
user: stephan
comment:
  The touch command no longer treats missing files as a fatal error, instead emitting a warning message.


type: ci
user: wyoung
comment:
  Partial walk-back of [66d55e9b43]: instead of simply removing the
  recommendation to pass --allow-fork to fossil checkin to solve the
  "would fork" problem, recommend instead that the user create a new
  branch with --branch.  That advice causes Fossil to create a named
  branch rather than a nameless branch -- well, *duplicate-named*, anyway
  -- which is easier to cope with and doesn't make all the other Fossil
  instances in an organization start griping about unresolved forks.
  Only the user who created the named fork is bothered with creating and
  resolving the fork in this mode of operation.


type: ci
user: wyoung
comment:
  Replaced the GIFs in www/branching.wiki with yEd diagrams and SVGs
  exported from them.  This allows scalability on various screen sizes,
  avoids crunchy pixelated edges, allows editing, and saves space
  on the wire.


type: ci
user: wyoung
comment:
  Removed www/branching.graphml: that was accidentally checked in.  (The
  diagrams started out in a single yEd document, but I later decided to
  make them separate documents, and forgot to remove this from the local
  filesystem before saying "fossil add www/bra*".)


type: ci
user: wyoung
comment:
  Removed other Figures' graphs from www/branch0*.graphml left from the
  breaking up of www/branching.graphml.


type: ci
user: wyoung
comment:
  Added the key distinction ("A branch is a named, intentional fork") to
  www/branching.wiki and added info on actually creating branches.


type: ci
user: wyoung
comment:
  More expansion on the discussion of creating branches in Fossil,
  especially in the second-form commands, which were incomplete in the
  prior version.


type: ci
user: wyoung
comment:
  Added a link to https://fossil-scm.org/fossil/doc/trunk/www/branching.wiki#branching
  from the recent changes to the fossil ci "would fork" error message.
  *Hopefully* this will end the debate.


type: ci
user: wyoung
comment:
  Added the section "Fixing Forks" to www/branching.wiki, and added an
  explanatory paragraph about the intentionality of forking.


type: ci
user: wyoung
comment:
  Added new section, "The Authors' Voice" to www/branching.wiki.  Other
  assorted improvements as well.


type: ci
user: wyoung
comment:
  Better internal links in www/branching.wiki to the new "How Can Forks
  Divide Development Effort?" section.  Also added a Wikipedia link for
  "DVCS".


type: ci
user: wyoung
comment:
  Fixed an alignment problem in Figure 6 of branching.wiki, and clarified
  the "back online" step in User C's lane.


type: ci
user: wyoung
comment:
  Moved check-ins 3 and later right in the Figure 6 swim lane diagram
  within branching.wiki so that there is only one event at each time step.
  As previously drawn, it implied that check-ins 2 and 3 occurred at the
  same time, but that's neither true nor necessary to our point here.
  Also evened up the lane widths.


type: ci
user: wyoung
comment:
  More clarifications in the "How Can Forks Divide Development Effort?"
  section of branching.wiki, primarily in explaining how each user in the
  example arrives at the view shown in the swim lane diagram.  There were
  multiple implicit possilibities before, and some were misinterpreting
  it.


type: ci
user: andybradford
comment:
  Because the sync status updates all occur on the same line make this client
  warning show up on its own line so the output doesn't get cluttered.


type: ci
user: drh
comment:
  When doing a commit with autosync enabled, the first autosync now takes
  a temporary (24-hour) lock on the baseline commit in order to prevent any
  other connected user from simultaneously committing and creating an
  accidental fork.


type: ci
user: wyoung
comment: commit from workarea2
ecomment:
  Accidental commit by running mattwell's "makeforks" script from within a fossil-scm.org checkout directory. Moving to hidden branch.


type: g
user: wyoung
comment:
  Edit [28549ec29a258213|28549ec29a]: Move to branch [/timeline?r=inadvertent-checkin&nd&dp=28549ec29a258213&unhide | inadvertent-checkin]. Add propagating "closed". Add propagating "hidden". Edit check-in comment.


type: g
user: wyoung
comment:
  Edit [7ae81524ee3f48cf|7ae81524ee]: Move to branch [/timeline?r=inadvertent-checkin&nd&dp=7ae81524ee3f48cf&unhide | inadvertent-checkin]. Add propagating "hidden". Mark "Closed". Edit check-in comment.


type: ci
user: wyoung
comment:
  Assorted improvements to the new material in www/branching.wiki, mainly
  in the way of clarifications and moderation of tone.


type: ci
user: wyoung
comment:
  Added the --save-http-url-password option to the clone command to make
  it skip the "remember password (Y/n)?" prompt if the password was given
  in an HTTP URL.  We avoid this for ssh:// URLs since you have pre-shared
  keys, SSH agents, and such to avoid the need in that case.  Without this
  feature, you can't script around it by piping "echo y" through the
  command because the "remember password" feature as of trunk only works
  when isatty(0), which will be false when Fossil is downstream from a
  pipe like that.


type: ci
user: drh
comment:
  Add the --save-password option to "fossil clone".  Put the command-line options
  for "fossil clone" in alphabetical order.


type: ci
user: drh
comment:
  Steps to prevent accidental forks during a commit when two users try to
  commit to the same parent at the same time.  The first user to do the
  autosync pull takes a lock which causes the second user to get a "would fork"
  error, unless the --allow-fork or --force options are used.


type: ci
user: drh
comment:
  Update the change log and the sync protocol documentation for the new
  check-in locking mechanism that tries to prevent race-condition forks.


type: ci
user: drh
comment:
  Rename the --save-password option on "fossil clone" to --save-http-password,
  since it only works for HTTP.


type: ci
user: stephan
ecomment:
  When activating one of the new "in reply to" links, tag the newly-focused post with CSS class forumSelReplyTo so that it can be visually marked. Added default forumSelReplyTo CSS class which uses the same border as forumTime but with a dotted style. EDIT: do not merge with trunk - there are problems to solve (if feasible) regarding linking to edited posts, as their IDs are of course different, as well as linking responses made to deleted posts.

comment:
  When activating one of the new "in reply to" links, tag the newly-focused post with CSS class forumSelReplyTo so that it can be visually marked. Added default forumSelReplyTo CSS class which uses the same border as forumTime but with a dotted style.


type: ci
user: stephan
comment:
  Per request in forumpost/9fd5135acc, added intra-document links to each response which link back to the being-replied-to post within the same page (using an #anchor-tag), without reloading from the server.


type: ci
user: stephan
comment:
  Replaced the forum post DIV ids forum{RID} with post-{short-UUID}, which allowed removal of the new A NAME tag and enables permalinks (RIDs are volatile). Added forumPost class to all post DIVs, to hopefully simplify some upcoming JS code.


type: ci
user: stephan
comment:
  Switched Immediately-Invoked Function Expression parentheses from Crockford-style to the more conventional/portable style. See https://stackoverflow.com/questions/9053842/ for details.


type: ci
user: drh
comment:
  Update the server.wiki document to try to make it clear that Fossil works
  fine as a peer-to-peer system and does not require the use of a server.


type: ci
user: drh
comment:
  Fix an apparent bug in the "fossil grep" command causing it to miss the first
  character of each line.


type: ci
user: drh
comment:
  Update the built-in SQLite to the first 3.29.0 beta for testing.
  Enable the -DSQLITE_DQS=0 compile-time option for Fossil, thus preventing
  SQLite from using double-quoted string literals by default.


type: ci
user: wyoung
comment:
  Renamed the test-move-repository command to local-repo, since it's
  useful for more than just testing, and there's no good alternative in
  the main command set otherwise.  It is especially useful with local-only
  repos, since that means use of the sync and remote-url commands isn't
  the correct way to change the location of the local repo.


type: ci
user: drh
comment:
  Back out check-in [a52c3e1256288c7d].  Perhaps the "test-move-repository"
  command should be promoted to a supported and documented command, but I don't
  think "local-repo" is the correct name, and in any event, the command needs
  additional work before it is given first-class status.  For example, typing
  "fossil local-repo" without the 3rd term should show the current repository,
  not give an error.


type: ci
user: wyoung
comment:
  Assorted improvements to www/fossil-v-git.wiki: added hyperlinks, fixed
  some spelling, capitalization, and grammar problems, clarified "Linux"
  vs "Linux kernel", clarified the description of the git-worktree
  feature, moved punctuation inside double quotes (typography), and added
  a few detail paragraphs.


type: ci
user: wyoung
comment:
  Rewrote the "GPL vs. BSD" section in www/fossil-v-git.wiki.  See forum
  post here for justification and discussion: https://fossil-scm.org/forum/forumpost/3239c30fff


type: ci
user: wyoung
comment:
  Clarified the scale of the Linux vs SQLite projects in the same-named
  section of the Git vs Fossil doc, tightened up the discussion a bit, and
  added hard SLOC stats to ground it all.  Most controversially, added the
  rattle wrench analogy.


type: ci
user: drh
comment:
  Fix a typo in the fossil-v-git.wiki document, as reported on the forum.
  "fossil all status" should be "fossil all changes".


type: ci
user: drh
comment:
  Improved error messages when a commit fails due to a lock conflict:  Show
  the age of the lock in addition to the user.  Suggest using the
  new --override-lock option instead of --allow-fork.  Expire locks after
  any successful check-in from the same check-out.


type: ci
user: wyoung
comment:
  Clarified the consequences of a CLA on Fossil and on FOSS projects in
  general in the "Fossil vs Git" doc.


type: ci
user: drh
comment:
  Do not invoke db_lget() in the sync protocol if the local checkout database
  is unavailable (such as when running "fossil all sync").


type: ci
user: wyoung
comment:
  Changed "pneumatic ratchet wrench" to "impact wrench" and added a
  Wikipedia link to make an analogy clearer in the "Fossil vs Git" doc.


type: ci
user: wyoung
comment:
  Distilled the points about "GPL + CLA = commrecial interests" to only
  the bits essential to the "Fossil vs Git" argument.


type: ci
user: wyoung
comment:
  Removed a final sentence in a paragraph that basically just restated the
  paragraph in the new Fossil vs Git doc.


type: ci
user: wyoung
comment:
  Moved a sentence from the final paragraph up to the first in the "GPL vs
  BSD" section of the "Fossil vs. Git" doc.  It was something of a
  non-sequitur where it was, and in its new position, it serves to bookend
  the discussion: we lay out our proposition at the top and come to a
  conclusion that we believe supports that proposition by the end.


type: ci
user: wyoung
comment:
  Rewrote the opening paragraph to "GPL vs BSD" in "Fossil vs Git" doc to
  make it clear that we're not trying to persuade you to make our same
  choice.  Also removed two paragraphs making a judgement about the nature
  of each license for the same reason.


type: ci
user: wyoung
comment:
  Reduced repeition of the "deisgn and implementation" bits of "Fossil vs
  Git" in the new "GPL vs BSD" material.


type: ci
user: wyoung
comment:
  Added "and use" to fossil-v-git: the license has effects that extend
  beyond design and implementation.


type: ci
user: wyoung
comment:
  Moved the "BSD vs GPL" section up in the fossil-v-git doc and made it a
  sub-section of a new "Linux vs SQLite" section which has two other
  sub-sections: "Development Organization," which contains an expanded
  version of what used to be called "Cathedral vs. Bazaar" and "Scale,"
  which contains what is left of the prior version's "Linux vs. SQLite"
  section. These are sub-sections of a common parent because they were
  mutually repetitive, and they're all aspects of the "Linux vs. SQLite"
  comparison, not separate things at all.


type: ci
user: drh
comment:
  Change the default hash policy to "sha3".  Bump the version number to 2.10
  to start the next development cycle.


type: ci
user: drh
comment:
  Disable the SQLITE_DQS=0 compile-time option.  It turns out the ".schema"
  command in the SQLite CLI makes use of double-quoted string literals.


type: ci
user: drh
comment:
  Import the command-line tool fix from SQLite (without the other changes
  on SQLite trunk) and then disable double-quoted string literals again.


type: ci
user: jan.nijtmans
comment:
  Eliminate all usage of Tcl_GetStringResult(), since that causes loss of Tcl_Obj representation in Tcl 8.x (this is solved in Tcl 9.0)


type: ci
user: mistachkin
comment:
  When removing a directory on Windows, make sure it is a real directory (i.e. not a junction, symbolic link, etc).


type: ci
user: drh
comment:
  Try to omit unnecessary indentation on the hierarchical forum display.
  Include an "in reply to" mark on the hierarchical display.


type: ci
user: wyoung
comment:
  Re-cast the "BSD vs GPL" section as "Accepting Contributions."  In the
  end, that's what the difference in license amounts to.  This makes the
  section longer, but the change includes a link to skip past the actual
  licensing discussion for those who don't want to read our attempt at an
  unbiased discussion of GPL vs BSD, since even if we've succeded, we
  won't always agree with the user's biases!


type: ci
user: wyoung
comment:
  Turned a redundancy in the "Scale" section of fossil-v-git into a
  clearer point.  Also added a bit on Fossil's later birthday and our take
  on its consequences.


type: ci
user: wyoung
comment:
  Rewrote the "Accepting Contributions" section of the fossil-v-git doc to
  focus on the size of each tool in terms of SLOC and features, rather
  than on licensing details.


type: ci
user: drh
comment:
  Fix the in-reply-to link for hierarchical forum display to maintain the
  hierarchical display.  Make the link say "previous" if linking to the
  previous post in the thread.


type: ci
user: jan.nijtmans
comment:
  When committing without parent-id (additional "initial" commits), make sure the branch-name is set to "trunk" when not provided otherwise.


type: ci
user: jan.nijtmans
comment:
  Code cleanup: Add a lot of "const" qualifiers for static (string) arrays, where appropriate. This allows the C compiler to optimize more


type: ci
user: wyoung
comment:
  Reworked several sections of the fossil-v-git.wiki doc as sub-sections
  of "Linux vs. SQLite", which now acts as a frame for those sections.
  Some of these sections are expanded while others disappear entirely,
  most especially the "BSD vs GPL" argument that we started off on the
  now-merged branch to try and refine.  We replace a discussion of
  licensing with one of community structure and our approach to patch
  acceptance, which is more of what the old licensing discussion was
  trying to get at without getting into the details of software licensing
  per se.


type: ci
user: wyoung
comment:
  Added info about fossil undo, fossil amend, and shunning to the
  fossil-v-git doc, with comparison to the Git way of changing history.


type: ci
user: drh
comment:
  In the hierarchical display of the forum, go back to strict hierarchical
  indentation.  But, reduce the width of indentation for deeply nested
  discussions.


type: ci
user: drh
comment:
  Give sequential numbers to all display posts in the forum, and reference
  other forum posts in a thread by the sequence number.


type: ci
user: drh
comment:
  In the hierarchical forum display, make sure that the edited post number is
  displayed, not the original post number.


type: ci
user: wyoung
comment:
  Moved the comment about patch files in fossil-v-git down to a footnote
  and expanded on the point.  It isn't a Git vs Fossil difference, but we
  need to explain why "just use a patch file" isn't a good answer to the
  common "allow easy drive-by contributions" wish.


type: ci
user: wyoung
comment:
  Recast the "Anonymous contribution discouraged" point in fossil-v-git as
  "No easy drive-by contributions".


type: ci
user: wyoung
comment:
  Expanded the "Sync over push" section of fossil-v-git beyond the
  technology to cover the "why" behind the decision.  Moved the Jim
  McCarthy quote up to be with it.


type: ci
user: wyoung
comment:
  Moved numbered digressions in fossil-v-git down to the end of the
  document as a new "Asides and Digressions" section.  These are things we
  don't want cluttering the main argument, not merely big parentheticals.


type: ci
user: drh
comment:
  In the alert sending logic, if no "email-self" is specified, then substitute
  the bogus email address "nobody@invalid".


type: ci
user: andybradford
comment:
  If the setting is long enough to fill in the format specifier---like the
  email-send-relayhost  setting---there will  be  no  whitespace after  it
  unless it  has a  value set,  so make the  regex handle  this particular
  state better.


type: ci
user: drh
comment:
  Bail out of the alert_send() routine if the notification system is
  misconfigured with a blank email-self value.


type: ci
user: drh
comment:
  Initial but incomplete work on an experimental /aux page that runs secondary
  CGI that has access to the Fossil user login credentials and similar
  information.  This is an incremental check-in of work-in-progress.


type: ci
user: andybradford
comment:
  Use new functionality in "fossil whatis" to correct wiki test cases since /info
  hrefs are no longer included in the wiki pages.


type: ci
user: drh
comment:
  The test-httpmsg command now sends the payload uncompressed unless the
  new --compress option is used.


type: ci
user: drh
comment:
  Disable HTTP_ACCEPT_ENCODING for the extension CGI.  But leave that setting
  unchanged for Fossil as it might be needed for the relay back to the client.


type: ci
user: drh
comment:
  Add the ability to extend a Fossil server using CGI.  This is a refactor of
  the prior sub-cgi branch.


type: ci
user: drh
comment:
  Add the ability for Debug users to trace sub-CGI responses by adding
  the fossil-ext-debug query parameter.


type: ci
user: drh
comment:
  Defer decoding POST parameters until after the webpage name is located.
  Do not do the decode if the webpage has the new "raw-content" property.
  Set that property on /ext so that is can relay the encoded content to
  sub-cgi.


type: ci
user: drh
comment:
  Ensure that the cgi_decode_post_parameters() routine does not delete the
  raw content used by the /xfer page.


type: ci
user: drh
comment:
  Add the /ext page that will run CGI or deliver static content from a
  document hierarchy specified by the --extroot command-line option on
  "fossil server" or the extroot: option in the CGI file.


type: ci
user: drh
comment:
  Neither Setup nor Admin users get Write-Unversioned permission by default.
  And only Setup users are able to include Write-Unversioned permission when
  editing a user.


type: ci
user: stephan
comment:
  Removed an old (#if 0)'d-out block - the permissions check it was blocking out is performed further down in the function.


type: ci
user: drh
comment:
  Fix the fullcap() SQL function so that it correctly expands the capabilities
  of Admin and Setup users to include everything.


type: ci
user: drh
comment:
  Do not allow /ext to return files whose names begin with "." or "-" even if
  those files occur in the top-level extroot directory.


type: ci
user: drh
comment:
  Enhancements to the CGI extension documentation.  Update the 2.10 change
  log to mention this enhancement and other changes.


type: ci
user: florian
comment:
  Trim spaces from the CSS background image SVG data URI for the copy icon, to make it look more compact -- this may not necessarily reduce the overall size of the final gzipped CSS resource delivered by the Fossil web server. The uncompressed source code for the icon is on the [branch/tooltip-copyhash] wiki page, with a comment why the variant with the "inaccurately" calculated outline looks better.


type: ci
user: florian
comment:
  Move each command-line option to their own paragraph, for consistency with the document structure in "Environment Variables and Global Options", as this seems easier to browse and search. The explicit line-break between the two options was wiped with automatic cleanup of trailing spaces by [e2751b18af].


type: ci
user: drh
comment:
  When to a repolist, if any of the repositories have a non-zero repolist-skin
  setting, use that repository as the skin for the listing.  If the repolist-skin
  setting is 2, then omit that repository from the list for directory-scan
  lists, but always show all repos for a "fossil all ui" list.  This *almost*
  works, but still has some small issues.  This is an incremental check-in.


type: ci
user: drh
comment:
  Fix the build for -DFOSSIL_ENABLE_TH1_DOCS.  The build was broken by
  check-in [ed2def5ffb96d74c] and on trunk by [ec56c69fe98d26d9].


type: ci
user: drh
comment:
  Fix the repolist-skin setting so that it sets up URL on the header menu
  correctly.  Back out the stylesheet hack is that is now covered by the
  same fix.


type: ci
user: drh
comment:
  When doing a repository list, use the first repository that has a non-zero
  value for the "repolist-skin" setting as the skin for the list.  If the
  "repolist-skin" setting is 2 and if the repository list is coming from a
  directory scan, the omit that repository from the list.  All repositories
  are always shown, regardless of the "repolist-skin" setting for a
  "fossil all ui" or "fossil all server" generated repository list.


type: ci
user: stephan
comment:
  Fixed fossil_strcmp() usage in cgi_init() when in JSON mode. Through some extremely serendipitous fluke, its broken usage just happened to work until a bit was removed from that function in [ec56c69f] which, purely coincidentally, caused the bug (mine, from 2011!) to start triggering when x-www-form-urlencoded forms were submitted (login/logout). Before that, the buggy block never got a chance to trigger for those forms.


type: ci
user: drh
comment:
  Clear all environment variables prior to invoking a CGI extension.
  (Works on posix - need to fix it for windows.)


type: ci
user: drh
comment:
  When rendering HTML pages using the fossil-doc class and the
  data-title="..." attribute, reverse the HTML escapes in the argument to
  data-title since they will be reencoded prior to rendering.


type: ci
user: drh
comment:
  Make sure all CGI environment variables are loaded into the CGI cache
  prior to clearing the environment, when launching extension CGIs.


type: ci
user: wyoung
comment:
  Made --baseurl parameter optional in tools/fslsrv since Fossil complains
  if you give only a top-level URL; it's right, it doesn't need --baseurl
  in that case.


type: ci
user: wyoung
comment:
  Added a comment to fslsrv in place of the just-removed parameter to make
  it clear what's going on here.


type: ci
user: drh
comment:
  Avoid the clearenv() interface (which seems to be missing on NetBSD
  according to [2d4c16df5a9e61c2]) and simply set the global "environ"
  variable directly.


type: ci
user: drh
comment:
  Fix the repolist function for CGI server invocations, apparently broken by
  check-in [ec56c69fe98d26d9]


type: ci
user: drh
comment:
  Improvements to the Security-Audit page - mostly in providing additional
  information about the files in the CGI extension folder.


type: ci
user: wyoung
comment:
  Updated explanatory text at the top of
  www/image-format-vs-repo-size.ipynb to track the recent update for
  Python 3.


type: ci
user: wyoung
comment:
  Updated image-format-vs-repo-size.ipynb to run within the Fossil tree
  checkout, to run under the Python 3 JupyterLab kernel, and to have the
  output SVG embedded in the notebook so it shows up in the notebook
  viewer without needing to run it first.  This updates the associated
  separate SVG file as well, so the two SVG instantiations match.


type: ci
user: wyoung
comment:
  Removed some points in section 3.1 of fossil-v-git (Features found in
  Fossil but missing from Git) which are already covered above.


type: ci
user: wyoung
comment:
  Added paragraph about hosting efficiency of Fossil vs Gitlab (to make it
  an apples-to-apples comparison) to the fossil-v-git doc.


type: ci
user: wyoung
comment:
  Updated the "A Pure SHA3 Future" section of www/hashpolicy.wiki to track
  the recent decision to make "sha3" mode the default in Fossil 2.10.


type: ci
user: wyoung
comment:
  Tightened up footnote 1 in fossil-v-git to delegate its points more
  fully to the new mirrorlimitations.md doc.


type: ci
user: wyoung
comment:
  Added footnote 2 to the fossil-v-git doc, which explains that not
  "everything" on fossil-scm.org is in the main Fossil self-hosting repo,
  and links to info explaining the details.


type: ci
user: wyoung
comment:
  Extracted part of section 2.1 and merged it with the entire prior
  content of section 2.5 in fossil-v-git as a new section, "2.2 Efficient
  and Effective".  These were two partially-redundant sections covering
  Git's sprawl of tools, third-party dependencies, and extensions vs
  Fossil's self-contained single-binary nature.  The new section combines
  all of that.


type: ci
user: wyoung
comment:
  Prior section 2.5 in fossil-v-git is now section 2.4.4, since it's part
  of the "2.4 Linux vs SQLite" story.  Little change in content; primarily
  just an organization fix.


type: ci
user: wyoung
comment:
  Added info about althttpd to footnote 2 in fossil-v-git.wiki, which
  gives details about the web serving configuration of fossil-scm.org.


type: ci
user: wyoung
comment:
  Added a new section to fossil-v-git.wiki, "2.4 Portable" covering how
  much more portable Fossil is than Git and its common third-party
  extensions.


type: ci
user: wyoung
comment:
  Many improvements to section "2.3 Durable" in fossil-v-git.wiki, largely
  involving the merger of a near-repeat of the same points down in section
  3.1, but also adding more information emphasizing the durability of
  SQLite DBs in general and Fossil repos in specific.


type: ci
user: wyoung
comment:
  Clarified the issue of building and installing Git vs Fossil from source
  vs as binary packages in fossil-v-git.wiki


type: ci
user: wyoung
comment:
  Merged two lists of similarities between Fossil and Git into a single
  instance up at the top of fossil-v-git.wiki.


type: ci
user: drh
comment:
  Add an SQLite compatibility test program and run that program during
  the "./configure" if the --disable-internal-sqlite option is used in order
  to verify that the system SQLite library has all of the capabilities that
  we need.


type: ci
user: wyoung
comment:
  More details on althttpd in the section of www/ssl.wiki that discusses
  the stunnel + althttpd + fossil serving option used by fossil-scm.org
  and sqlite.org.


type: ci
user: drh
comment:
  Remove the SQLITE_ENABLE_DBPAGE_VTAB requirement from external SQLite
  libraries, as without it only the ".recover" command in "fossil sql" is
  omitted, and that is an obscure case.


type: ci
user: drh
comment: Do not make authorizer SQLITE_READ calls on transient internal tables.
ecomment:
  Adjust the SQL authorizer to ignore SQLITE_READ calls for transient
  internal-use-only tables.  SQLite should not be issuing those, but some
  legacy versions of SQLite do.  It is harmless to ignore them.


type: ci
user: drh
comment:
  Have the test-httpmsg command try to open the repository database in case
  that repository database contains TLS certificate exceptions.


type: ci
user: wyoung
comment:
  Added Digital Ocean pricing footnote to fossil-v-git.wiki to back up the
  GitLab comparison.  Also clarified the "smallest thing you could call a
  server" comment.


type: ci
user: wyoung
comment:
  Deferred discussion of data modeling from the intro of fossil-v-git to
  section 2.3 where it's fully covered.  This material now talks more
  clearly about Fossil's hybrid NoSQL/relational data model, rather than
  handwave it as "relational".


type: ci
user: wyoung
comment:
  Moved the comment about learning from Git's design mistakes to a place
  higher up in the document where it makes more sense.  It was almost a
  non sequitur where it was before.


type: ci
user: drh
comment:
  A triple grave accent quoted text (```....```) is rendered inside of
  &lt;pre&gt;...&lt;/pre&gt;.

ecomment:
  A triple grave accent quoted text (```....```) in markdown is rendered as
  &lt;pre&gt;...&lt;/pre&gt;.


type: ci
user: drh
comment:
  Further refine the fenced code block rendering in markdown to try to
  comply with the CommonMark spec.


type: ci
user: drh
comment:
  Fix the www/fossil_prompt.sh Fossilized Bash Prompt script so that it works
  even if the current check-in comment contains grave accents (backticks).


type: ci
user: wyoung
comment:
  Expanded the discussion on user learning time vs arcance feature set
  size in fossil-v-git.wiki, within section 2.5.3 "Accepting
  Contributions".


type: ci
user: wyoung
comment:
  Simplified the table line items for the hash algorithm point in
  fossil-v-git.wiki as "SHA-3" vs "SHA-2".  Details we delegate to the
  discussion prose below.


type: ci
user: wyoung
comment:
  Added an aside in fossil-v-git about Git's minority use of high-level
  scripting languages aside from its dominant one, POSIX shell, with a
  comparison to Fossil's own use of high-level scripting.


type: ci
user: drh
comment:
  Further work on the fenced code blocks of markdown.  Allow blank lines
  in the middle of a fenced code block.  And also allow ~ character (three
  or more) to serve as the delimiter for fenced code blocks.


type: ci
user: drh
comment:
  Fix up the markdown rules to include recent enhancements to fenced code
  blocks.  On "Markup Style:" entry boxes, provide a hyperlink for easy
  access to the rule sheets.


type: ci
user: drh
comment:
  Enhance markdown to use the same hyperlink target resolving logic as
  Fossil wiki.  That means that wiki page names and check-in and ticket hashes
  can now be used as markdown hyperlink URLs.  Also enhance markdown hyperlinks
  so that if the display text is an empty string, the URL is used as the
  display text.


type: ci
user: ckennedy
comment:
  Contributing PowerShell script Set-ChildProject.ps1.  This script wraps the code for converting a project into a child project into an easy to use PowerShell script.  The script should be cross platform, but was only tested on Windows 10.


type: ci
user: wyoung
comment:
  Inserted %USERPROFILE% between %FOSSIL_HOME% and %LOCALAPPDATA% in the
  code that chooses where the user's account-wide _fossil file lives on
  Windows.  (This is the Windows analog to the ~/.fossil file on POSIX
  systems.)  Also updated the docs to match.


type: ci
user: wyoung
comment:
  Updated the temp file and dir location documentation in www/env-opts.md
  to match what the current code does.


type: ci
user: mistachkin
comment:
  Refine HOME search order on Windows to maintain backward compatibility with the previous search hierarchy.


type: ci
user: drh
comment:
  Additional documentation on CGI configuration options.  Updates to the
  change log.  New hyperlinks interconnecting the various documents.


type: ci
user: ckennedy
comment:
  Server Documentation Update.  This ckeckin contains instructions for using Fossil as a windows service and with stunnel as an https proxy.


type: ci
user: wyoung
ecomment:
  Another spell check pass on www/* using a different dictionary than in
  the prior pass. ([79c2cb083152])

comment:
  Another spell check pass on www/* using a different dictionary than in
  the prior pass. ([79c2cb083d2c6])


type: ci
user: wyoung
comment:
  Broke most of the contents of www/server/wiki out into a series of
  www/server/*.md articles that are now linked from a checkmark table in
  its place, which also links to the new www/server/windows/*.md files
  created to start this branch off.  This is not purely a matter of moving
  prose around: there is a fair bit of improvement to the pre-existing
  prose as well, most notably that we now document the Fossil chroot jail
  requirements for the first time.  (Previously, you had to go dig up
  mailing list or forum posts (or even RTFS!) to work out those
  requirements.)  There's more to do on all of this; do not merge it to
  trunk yet.


type: ci
user: wyoung
comment:
  Relaxed the "enforcing" language around the planned change of hash
  policy from "auto" to "sha3" in Fossil 2.10 within section 2.8 of the
  fossil-v-git.wiki doc, and clarified what will actually happen with that
  release as compared to the current release.


type: ci
user: wyoung
comment:
  Split the HTTP-only parts out of www/tls-nginx.md into a new document
  discussing only the reverse-proxying of `fossil --scgi` to HTTP using
  nginx on Debian type OSes.  That material is now in
  www/server/debian/nginx.md, which is referred to from www/server.wiki.
  While in there, did a bit of prose polishing on this old guide.


type: ci
user: wyoung
comment:
  Moved the stunnel proxying docs from www/ssl.wiki to a new document
  www/server/any/stunnel.md, and pointed www/server.wiki at it.  Also
  replaced some similar material in this branch's new
  www/server/windows/stunnel.md file at this generic document.  Between
  these two changes, the generic stunnel docs now cover the reverse
  proxying option for the first time.  (The old version used the socket
  activation method exclusively.)  The new document also gives a more
  realistic configuration, showing Let's Encrypt paths and a sensible
  ciphersuite configuration.


type: ci
user: wyoung
comment:
  Moved the "Serving via althttpd" material from www/ssl.wiki to a new 
  document, www/server/any/althttpd.md, linked from www/server.wiki.


type: ci
user: wyoung
comment:
  Converted the backwards-compatibility sections in www/server.wiki into
  identified hyperlinks to the new docs, which allows existing external
  ".../server.wiki#cgi" URLs and such to work without needing the
  near-empty sections containing only a hyperlink just to anchor the link.


type: ci
user: wyoung
comment:
  Moved the chroot and loadmgmt sections of www/server.wiki into separate
  documents.  This change also adds info on /proc to the chroot doc, which
  was missing in its prior server.wiki form.  Also reduced a few other
  "details" sections of server.wiki to bullet points in the new "Further
  Details" list at the end of the document.


type: ci
user: wyoung
comment:
  Assorted improvements to www/server/windows/iis.md. Removed the empty
  CGI and SCGI sections, as those will be separate articles.  Added "Why
  Bother?" section.  Added link to ./service.md.  Better explanation of
  the /code rewriting example.  Hoist TLS info up into the new "Why
  Bother?" section.


type: ci
user: mistachkin
comment:
  Fix embedded HTML detection for the 'doc' web page when the 'data-title' attribute is not specified.


type: ci
user: wyoung
comment:
  Renamed www/server.wiki to www/server/index.html and converted it to
  HTML format. Did a bit of prose polishing and CSS work while in there.


type: ci
user: wyoung
comment:
  Moved inline CSS within www/server/index.html elements up into a <style>
  block at the top.  Then used that to create a more even matrix layout.
  Also fixed some incorrect URLs checked in with the prior version, due to
  the document changing directory level.


type: ci
user: wyoung
comment:
  Reduced the number of columns in the server setup tutorial matrix by
  collapsing all of those for the OS's default web server down to a single
  shared column.  Also dropped the xinetd column as obsolete.  (We still
  have the explicit xinetd article link above.)


type: ci
user: wyoung
comment:
  Added the nonce="$NONCE" embedded documentation substitution feature and
  documented that and the other pre-existing text substitution features.


type: ci
user: wyoung
comment:
  Implemented the first version of the JavaScript tutorial chooser in
  www/server/index.html, complete with fallbacks for the noscript case,
  optional display of the static document matrix, and pretty CSS
  transitions between the states.


type: ci
user: wyoung
comment:
  Merged the lists of socket listener daemons into the Socket Listener
  section of www/server/index.html: the list of known-working daemons down
  from the numbered list at the top of the article, and the list of
  potentially-working daemons up from the <noscript>-cloaked document
  matrix below.  Also reordered the sections from simplest to most
  complex.


type: ci
user: wyoung
comment:
  Justified the ordering of sections in www/server/index.html by including
  info on complexity.  CGI remains last because CGI is only a "simple"
  option when someone else sets up the CGI security for you, as on
  old-style cheap hosting plans.  Also added several inline sub-document
  references.


type: ci
user: wyoung
comment:
  Added links back to the top-level www/server/index.html article from the
  tail end of www/server/*/*.md.


type: ci
user: wyoung
comment:
  Added explicit instructions on installing IIS within the new IIS server
  docs.  It isn't installed by default, and in the CGI case, CGI isn't
  part of the default IIS install.


type: ci
user: wyoung
comment:
  The www/customskin.md document hadn't been updated since we removed the
  explicit <html><head> stuff from the default skins and moved that into
  the C code so we could insert the CSP and such automatically.  Updated
  it to show the inner <div> tags that you actually get by default now,
  and talked about how the HTML document wrapper is added automatically.
  Also fixed some spelling and grammar errors.


type: ci
user: drh
comment:
  Increase the default HTTP request timeout to 10 minutes.  Provide the
  FOSSIL_DEFAULT_TIMEOUT compile-time option for setting an alternative default.


type: ci
user: wyoung
comment:
  Added www/server/debian/service.md, demonstrating systemd configuration
  of Fossil for the first time in the official docs, both as a user
  serivce and in socket activation mode as a system-level service.


type: ci
user: wyoung
comment:
  Added www/server/macos/service.md and then added macOS to the set of
  server OSes offered in www/server/index.html


type: ci
user: wyoung
comment:
  Updated www/server/index.html to no longer discuss launchd as a "maybe"
  option now that we have a document for it, and removed mention of
  Solaris SMF entirely.


type: ci
user: wyoung
ecomment:
  Added --with-sanitizer configure-time option for appending
  -fsanitize=VALUE to CFLAGS and LDFLAGS, plus automatic detection of
  -lubsan for GCC, which doesn't automatically link to that with
  -fsanitize=undefined as Clang does. EDIT: This check-in breaks the built
  on Ubuntu 18.04.

comment:
  Added --with-sanitizer configure-time option for appending
  -fsanitize=VALUE to CFLAGS and LDFLAGS, plus automatic detection of
  -lubsan for GCC, which doesn't automatically link to that with
  -fsanitize=undefined as Clang does.


type: ci
user: wyoung
comment:
  Removed documentation of the nonce="$NONCE" feature in
  www/embeddeddoc.wiki, removed as part of [8264fd75].


type: ci
user: wyoung
comment:
  Removed "known to work with IIS" bit from www/server/index.html in the
  CGI section, since that is not actually true.  We can put it back once
  someone figures out [https://fossil-scm.org/forum/forumpost/de18dc32c0 |
  the IIS + CGI + Fossil CPU pegging problem].


type: ci
user: wyoung
comment:
  Updated all of the internal hyperlinks referencing www/server.wiki to point
  at either www/server/index.html or one of the docs it now points at.


type: ci
user: wyoung
comment:
  Fixed a couple of Tcl syntax fixes that caused the new --with-sanitizer
  code to a) run unconditionally irrespective of the option's setting and
  b) to check for the existence of libubsan whether it was actually needed
  or not.


type: g
user: drh
comment:
  Edit [7907b6ffae6c6fa1|7907b6ffae]: Move to branch [/timeline?r=configure-updates&nd&dp=7907b6ffae6c6fa1&unhide | configure-updates]. Edit check-in comment.


type: ci
user: wyoung
comment:
  Added www/defcsp.md, which documents the default Content Security Policy
  applied by Fossil to the HTML pages it serves.  Linked that into
  embeddeddoc.wik and customskin.md, which touched on this topic before
  but didn't go into much detail.


type: ci
user: wyoung
comment:
  Fixed a link from the new material in embeddeddoc.wiki to the new CSP
  material: that briefly lived in customskin.md before checking it in, but
  then I moved it to a new document and forgot to update the link.


type: ci
user: wyoung
comment:
  Fixed an unwanted "$nonce" variable expansion within the new
  customskin.md introduced by [9044fd2dbe] which only occurs *sometimes*:
  not on fossil-scm.org, and apparently not in my earlier ckout testing
  prior to checking it in, but now in a different ckout test.  This has to
  be a TH1 thing, but I don't understand why we didn't see this earlier.
  This is just a workaround for the symptom.


type: ci
user: wyoung
comment:
  Reverted src/doc.c to the trunk version.  The "Plan Z" reversion in
  [8264fd75] was incomplete, causing bad TH1 variable expansion.  I
  believe this explains the symptom I worked around in [9bdf650f0b8].
  This check-in also cherry-picks [3d6a4fd95c] onto the branch.


type: ci
user: wyoung
comment:
  The merge from trunk accidentally reverted part of the new text in
  www/embeddeddoc.wiki.  (This part was manually merged, and I missed a
  diff relative to trunk.)


type: ci
user: wyoung
comment:
  Replaced the redundant copy of the default CSP in
  skins/bootstrap/header.txt with "$default_csp", allowing the TH1 setup
  script to override the CSP as in all the other stock skins.  (Bootstrap
  is the last stock skin to define a custom <head> element.)


type: ci
user: wyoung
comment:
  Major improvements to the new defcsp.md article.  Expanded the
  introductory material to better describe what the CSP does; added named
  anchors to headers; moved the discussion of $default_csp overrides into
  this document from customskin.md, which now just says how you use that
  variable read-only; and added an entirely new section, "Replacing the
  Default CSP".


type: ci
user: wyoung
comment:
  More thorough explanation of <script nonce> in www/defcsp.md, and
  explained the reason why Fossil has no way of providing that nonce in
  most content types rather than link to the "XSS via check-in rights"
  forum post.  This new presentation of that post's ideas is more detailed
  and includes discussion of the feature's interaction with the TH1 docs
  feature.


type: ci
user: drh
comment:
  Update to the default CSP page.  Attempted to resolve merge conflicts, but
  more editting is likely necessary.


type: ci
user: drh
comment:
  Disallow versioning of security sensitive settings tcl-setup, th1-setup,
  and th1-uri-regexp.  For effective security, these settings should only be
  controllable by an administrator.


type: ci
user: drh
comment:
  Fix the $ROOT mechanism in HTML documents so that it accepts any
  whitespace character before href= and script=.  Add $ROOT in appropriate
  places in the server documentation.


type: ci
user: wyoung
comment:
  Assorted refinements to the new pre- and post-activation advice sections
  in www/server/index.html: nix passive voice, add a few details, add some
  links to related docs, etc.  Also fixed a CSS indenting problem
  preventing correct use of <p> in <li>, then made use of the new freedom
  in these sections' numbered lists.


type: ci
user: wyoung
comment:
  Reworked the new introductory material in defcsp.md to be less about the
  CSP as last-resort and more about being a secondary filter to our other
  measures.  Gave examples to clarify the tensions that prevent a purely
  server-side solution from being a practical solution.


type: ci
user: wyoung
comment:
  Reworked the material explaining why in-page <style> is currently
  allowed by Fossil's default CSP to make it clearer that this is most
  likely a temporary situation and that local custom CSS should go in the
  skin instead.


type: ci
user: wyoung
comment:
  Added bullet list detailing the sources for <script nonce=""> from
  a Fossil server and the reasons we consider each path safe.


type: ci
user: wyoung
comment:
  Stronger recommendation for changing the default user's random hex
  password prior to setting up a Fossil server after learning it's 6 hex
  digits, not 8 as I thoght when I wrote that!


type: ci
user: wyoung
comment:
  Fixed a few fatal error messages from the login-group command that
  referred to an "add" command, which is now called "join".  The symptom I
  saw is that "fossil login-group add" complained that "add" is not a
  valid command and that you should give '"add" or "leave"' instead!


type: ci
user: drh
comment:
  Markdown hyperlinks are only converted to links to wiki if the named
  wikipage actually exists.  Otherwise, the link becomes a relative link.
  This is for backwards compatibility.


type: ci
user: wyoung
comment:
  Clarified the placement of "moderator" and "subscriber" in the power
  hierarchy expression within www/capabilities.md, since each could float
  up and down somewhat within the fixed hierarchy we give here. Also fixed
  a broken URL.


type: ci
user: wyoung
comment:
  Added www/capabilities.md, a complete treatment on user capabilities,
  user categories, login groups, and administration matters involving all
  of this.  It does not replace the pre-existing admin-v-setup.md doc, but
  a bit of its content did move into this new doc.  The new doc also
  contains the user capability info previously in the forum.wiki doc.
  This is on a branch because although it's quite useful already, it could
  use some work before being merged down. At the barest minimum, there are
  some unanswered questions in the new doc that need addressing.

  This new doc does not replace the existing documentation in the UI. It
  may be that we end up paring that down a bit now that we have a full doc
  to refer to, but that is a topic for the forum thread that will appear
  shortly after this checkin.


type: ci
user: drh
comment:
  If the test-markdown-render or test-wiki-render commands are invoked without
  a repository in which to check for Wiki page names and artifact hashes, then
  substitute a temporary, empty, in-memory repository so that the commands will
  still work and won't give SQL errors.


type: ci
user: wyoung
comment:
  Added (Names) to the "Capability Reference" section of capabilities.md
  so the reference can be used while reading C source code, which uses
  these names instead of the capability characters in all code past the
  login handler.


type: ci
user: drh
comment:
  Add the fossil_random_password() utility function and use it to generate
  a stronger initial admin-user password in the "fossil new" command.


type: ci
user: wyoung
comment:
  Fixed a few messages from the login-group command that referred to an
  apparent older name for the "join" sub-command, "add".  This lead to a
  confusing symptom: "fossil login-group add foo" -> {unknown command
  "add" - should be "add" or "leave"}.


type: ci
user: wyoung
comment:
  Clarified use of scgi_params, SCRIPT_NAME, and service starting in the
  generic SCGI server setup doc.


type: ci
user: wyoung
comment:
  Swapped the simple foo.net "whole site is Fossil" example in
  www/server/debian/nginx.md for the more complicated example.com one
  where only /code is served by Fossil.  This is probably going to be more
  common, and it shows off the important detail of setting SCRIPT_NAME
  properly.  Made a minor adjustment to any/scgi.md to track this change,
  so there is not a pointless difference between these two nginx configs.


type: ci
user: wyoung
comment:
  Replaced the content of "Running Fossil in SCGI Mode" within
  www/server/debian/nginx.md with references to our other Fossil server
  docs.  This also reduces the prior focus of this section on fslsrv to a
  single sentence, since we now prefer the systemd option, now that we
  have it.


type: ci
user: wyoung
comment:
  Changed all of the [anycap jor] TH1 calls in the stock skins wrapping
  the generation of that skin's /timeline and /timeline.rss links to
  [anycap ijr2] to match the user caps the timeline HTTP hit handler
  actually checks for in the C code.  This is a branch in part because
  it needs review, but also it's the start of a broader effort to check
  the other cap checks in the skins to make sure they a) match what the 
  C code checks for; and b) match each other.


type: ci
user: wyoung
comment:
  Added cap "n" to "r" in skins that show a /ticket link in their header,
  since the handler for it allows the page to show for those who can only
  file new tickets, not just those who can see existing tickets.  Also
  fixed some skins that were using "anoncap" to test this: it needs to
  work for all logged-in users, not just "anonymous".


type: ci
user: drh
comment:
  On the /vdiff page, show a timeline with both check-ins using different
  highlights on each check-in.


type: ci
user: drh
comment:
  Add the "merge-in:NAME" name type, similar to "root:NAME" except that it
  finds the youngest anscestor of NAME that is in the branch from which the
  branch of NAME derived.


type: ci
user: drh
comment:
  Updates to the /vdiff page with the branch=BRANCH query parameter so that
  it uses merge-in: instead of root: and thus excludes merge-in check-ins from
  the diff.


type: ci
user: wyoung
comment:
  Grepped the Fossil source code for C code that checks for Setup caps
  exclusively to preotect functions and listed those in the Reference
  section of capablities.md.  Also expanded the coverage of the "caps
  affect Fossil web interfaces only" section, which plays into this.


type: ci
user: wyoung
comment:
  Merged most of the new material on Setup vs Admin in the new capabilities
  doc into the pre-existing admin-v-setup.md doc, which already covers
  this topic.


type: ci
user: mistachkin
comment:
  If the '--cgiupperparamsok' command line option or 'uppercase_params' CGI control line are present, allow parameter names to start with an uppercase letter.


type: ci
user: drh
comment:
  Query and post parameters may never begin with an upper-case letter.  To
  allow that is a huge security hole.


type: ci
user: mistachkin
comment:
  For candidate CGI parameter names that start with an uppercase letter, convert them to lowercase and then add.


type: ci
user: wyoung
comment:
  Moved www/capabilities.md to www/caps/index.md and www/admin-v-setup.md
  to www/caps/admin-v-setup.md.  Then broke three chunks of the old
  capabilities.md doc out into new www/caps/* docs: login groups,
  implementation details of user capabilities, and the user capability
  reference material.  The latter switched from Markdown to HTML format
  so we could make it a clearer-looking table, rather than its prior
  hard-to-read bullet list form.


