200 check-ins occurring around 83c902be72fa4609.

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.
(check-in: 60af514d user: drh tags: trunk)

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.
(check-in: 904eb8a5 user: andybradford tags: trunk)

(cherry-pick): Update internal Unicode character tables, used in regular expression handling, from version 11.0 to 12.0.
In "fossil regexp", "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)
(check-in: e217b8b9 user: jan.nijtmans tags: branch-2.8)

Update internal Unicode character tables, used in regular expression handling, from version 11.0 to 12.0.
In "fossil regexp", "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)
(check-in: b2c424ad user: jan.nijtmans tags: trunk)

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.
(check-in: f132f86b user: drh tags: trunk)

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.
(check-in: 3275a944 user: drh tags: rmdir-on-update)

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.
(check-in: 43111aa9 user: drh tags: rmdir-on-update)

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.
(check-in: a13820dc user: wyoung tags: trunk)

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.
(check-in: 4f810279 user: wyoung tags: trunk)

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.
(check-in: 62a00bc7 user: florian tags: reconstruct-sha3)

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.
(check-in: d168be0c user: drh tags: trunk)

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.
(Closed-Leaf
check-in: 31c64c3b user: drh tags: mistake)

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.
(check-in: f54b4bf1 user: drh tags: trunk)

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.
(check-in: fff37e62 user: drh tags: trunk)

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.
(check-in: 062d2bf6 user: wyoung tags: trunk)

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.
(check-in: 8977dfb0 user: drh tags: rid-renumbering)

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.
(check-in: ed06585f user: drh tags: trunk)

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.
(check-in: 1b114d24 user: drh tags: trunk)

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.
(Closed-Leaf
check-in: 6036bc62 user: drh tags: repo-fingerprint)

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.
(check-in: f392fac7 user: wyoung tags: trunk)

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.
(check-in: 867fe0ea user: drh tags: trunk)

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.
(check-in: 31edaabf user: drh tags: trunk)

Do not allow edits to wiki pages associated with branches, checkins, or tags
for users who do not also have checkin privileges.
(Closed-Leaf
check-in: 60e8a08f user: drh tags: describe-objects-using-wiki)

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.
(check-in: 7759a00e user: drh tags: trunk)

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.
(Leaf
check-in: dc81ac70 user: drh tags: graph-test-branch)

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.
(check-in: 55ab522c user: drh tags: trunk)

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.
(check-in: 1c74e914 user: drh tags: trunk)

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
(check-in: 2efcd19f user: florian tags: cmd-options-amend)

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
(check-in: 5d5252b8 user: florian tags: cmd-options-amend)

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
(check-in: 54928ff4 user: florian tags: cmd-options-amend)

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.
(check-in: 8f4b7e1f user: florian tags: fix-timeline-view)