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.
file: [fc9d663f]
check-in: [8977dfb0]
user: drh
branch: rid-renumbering,
size: 122370

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.
file: [cdcd62a1]
check-in: [ed06585f]
user: drh
branch: trunk,
size: 120977

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.
file: [33ed4334]
check-in: [1b114d24]
user: drh
branch: trunk,
size: 120585

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.
file: [6c3c5432]
check-in: [6036bc62]
user: drh
branch: repo-fingerprint,
size: 120585

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.
file: [0c00b51a]
check-in: [5519c6b8]
user: drh
branch: trunk,
size: 114177

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.
file: [c914c293]
check-in: [2566a37e]
user: drh
branch: forum-v2,
size: 113846

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.
file: [8a8dea12]
check-in: [94da0fb2]
user: drh
branch: webmail,
size: 112604

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.
file: [9d4a61e8]
check-in: [3f5ab717]
user: drh
branch: trunk,
size: 111768

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.
file: [dab8a982]
check-in: [f87fb027]
user: drh
branch: trunk,
size: 110719

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.
file: [13168a9e]
check-in: [9a2e5f47]
user: drh
branch: trunk,
size: 108945

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.
file: [814414c8]
check-in: [421fe241]
user: drh
branch: trunk,
size: 108740

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.
file: [388f63b4]
check-in: [106fe618]
user: drh
branch: trunk,
size: 108542

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.
file: [c3ec0059]
check-in: [e7767de2]
user: drh
branch: symlink-refactor,
size: 107760

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
file: [1db0215d]
check-in: [8d6bdd1e]
user: andygoth
branch: enhanced-symlink,
size: 107170

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.
file: [77d3c26c]
check-in: [95543ce4]
user: drh
branch: fossil-2.1,
size: 109514

Run the "PRAGMA optimize" command as the database is closing. This change is intended as a test of "PRAGMA optimize".
file: [c33d1c2c]
check-in: [90555227]
user: drh
branch: optimize-pragma,
size: 110058

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'.
file: [f7573f66]
check-in: [83fd7384]
user: mistachkin
branch: trunk,
size: 110008

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.
file: [2e603ed5]
check-in: [02fa325a]
user: mistachkin
branch: trunk,
size: 109688

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
file: [cee859e1]
check-in: [f9080683]
user: andygoth
branch: trunk,
size: 109117

Since the 'manifest' setting is no longer a strictly binary option, prevent it from being displayed as such on the settings page.
file: [bde1573e]
check-in: [b73dee98]
user: mistachkin
branch: trunk,
size: 109291

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.
file: [22dffc9e]
check-in: [e5b62edb]
user: andygoth
branch: trunk,
size: 109146

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.
file: [8a4c5b96]
check-in: [b9fd5947]
user: drh
branch: trunk,
size: 103836

New documentation of enviornment variables, global options to the fossil command, and how they interact, along with a tweak to regularize the two places that guessed the current user name to use the same environment variables in the same order.
file: [728bced3]
check-in: [1ad4ae27]
user: rberteig
branch: trunk,
size: 101386

Change db_create_default_users() to align its use of environment variables to set the user name to match user_select(), and try all variables on both Unix and Windows.
file: [37fcc57a]
check-in: [ace9e00f]
user: rberteig
branch: ross-doc-env,
size: 101092

Improvements to handling of localtime. The 'utc' and 'localtime' query
parameters now work on all web pages. Timestamps can be expressed with
a timezone modifier and that works correctly.
file: [19e5cdcc]
check-in: [ea63a2d1]
user: drh
branch: trunk,
size: 101109

Revise the changes on this branch to favor the current default behavior. Also, make it possible to override the new setting with a command line option.
file: [032eb0f3]
check-in: [2036eef7]
user: mistachkin
branch: exec-rel-paths,
size: 97138

Add the "skins/details.txt" file to the skins. Change the skin editors so that
they can show a diff of the current configuration against any built-in.
file: [bc401094]
check-in: [31a337f0]
user: drh
branch: improved-skin-edit,
size: 95492

Add the --create option to "fossil server", which causes a new repository
to be created for the server if one does not already exist. The intended
use case is Docker.
file: [05c380e4]
check-in: [a6e2ceb4]
user: drh
branch: trunk,
size: 95566

Added a dotfiles setting to the repository settings. This complements the --dotfiles command line argument used by add, addremove, extras, and clean commands. Useful in a project that always needs to process dotfiles so that the --dotfiles option does not need to be specified each and every time.
file: [665dac67]
check-in: [b088c53f]
user: sdr
branch: dotfiles-setting,
size: 96547

Only define and use the new 'move-files' and 'remove-files' settings when compiled with the FOSSIL_ENABLE_LEGACY_MV_RM option.
file: [ce063d2e]
check-in: [c227e14f]
user: mistachkin
branch: mvAndRmFiles,
size: 97336

Add the "hash-digits" setting for controling the number of digits of the
SHA1 hash to display in output intended for humans. The minimum is 6 and
the default is 10. Compile-time option FOSSIL_HASH_DIGITS can set a different
default. URLs use at least 6 more digits than human output.
Compile-time option FOSSIL_HASH_DIGITS_URL sets a lower-bound on the number
of hash digits in URLs.
file: [a8c67cd8]
check-in: [cc94bd07]
user: drh
branch: trunk,
size: 96881

Restrict indexed search according to the search flags. Fix the generation
of the index for wiki pages. Fix db_multi_exec() so that it aborts with
a sensible message following a syntax error.
file: [f2eddf13]
check-in: [780117d2]
user: drh
branch: indexed-fts,
size: 96628

Relax the schema requirements. This branch of Fossil can now work with
older database schemas. A "fossil rebuild" is still recommended, and goofy
displays, especially of the /finfo page, might result if the rebuild is omitted.
But the obsolete schema errors are avoided. This is expected to simplify the
upgrade path.
file: [eee89d3a]
check-in: [3f739d4d]
user: drh
branch: mlink-improvements,
size: 94368

Add the ability to bring up a web server that uses a different skin from
the default, and have multiple servers going at the same time, each using
a different skin. Currently enabled for unix only.
(Later:) Upon further reflection, I'm not convinced this is a good idea,
so the code is moved into a branch.
file: [4735abcb]
check-in: [b36e2411]
user: drh
branch: multiple-skins,
size: 95966

Update the built-in SQLite to the 3.8.8 alpha that includes the enhanced
sqlite3_table_column_metadata() interface. Use that new interface to build
new utility methods db_table_exists() and db_table_has_column() that work
more efficiently than the older technique of querying the sqlite_master table.
file: [a2fa081a]
check-in: [1aa80677]
user: drh
branch: trunk,
size: 92757

Rig the aux-schema checking so that it accepts a range of schema values.
Add the BASEID field to the PLINK table, but continue to allow older versions
of the PLINK table so that "rebuild" is not require. The schema will
automatically update on the next "rebuild".
file: [c21f61fe]
check-in: [5dd8b2da]
user: drh
branch: trunk,
size: 89265

Change the name of the admin-log table to "admin_log". Only write to it if
the "admin-log" setting is enabled (off by default). Make sure the admin_log
table is created in the repository and not in the local or config databases.
file: [c4cb539e]
check-in: [5e0514a6]
user: drh
branch: admin-logging,
size: 90343

Enhance the database aux-schema version checking so that it will accept a
range of schema versions. Fix the current implementation to work with
or without the PLINK.BASEID enhancement.
file: [3a3aea50]
check-in: [0d4b33d3]
user: drh
branch: baseline-in-plink,
size: 89247

Enhance the "fossil sql" command so that one or more SQL statements and/or
dot-commands can be entered on the command-line. Also automatically ATTACH
the local database and the config database, if they are available.
file: [24c5069b]
check-in: [f922f4e3]
user: drh
branch: trunk,
size: 89233

Add a custom static analysis program that verifies the arguments to
printf-style varargs routines used in Fossil. Adjust the source code
to be more robust for printf format errors and to fix a few minor
problems found by the static checker.
file: [eb8403b2]
check-in: [0a7e326f]
user: drh
branch: compile-time-print-checking,
size: 89183

Delay creation of server-id/project-id until the time "fossil server" is actually run. This fixes the docker issue that all docker containers derived from the same image have the same server-id/project-id.
file: [586e0436]
check-in: [3cdf0112]
user: jan.nijtmans
branch: docker,
size: 88221

Call verify_all_options() on most of fossil CLI commands. - Skip all the test-* commands for now (may be unnecessary) - Skip sha1sum, md5sum and artifact because they can take "-" as argument
and verify_all_options() would call fatal. Need to handle those
differently... - Command with subcommands that have their options are remaining: branch,
bisect, cache, configuration, json, sql, stash, tag, ticket, user, wiki.
(not sure how to handle those yet..)
file: [9e0e6c98]
check-in: [a426154b]
user: mgagnon
branch: verify-all-options,
size: 85928

Make fossil new --empty the default way to create a new repository.
THIS COMMIT WILL BE REVERTED BEFORE FOSSIL 1.30 IS BEING RELEASED, (UNLESS RICHARD DECIDES OTHERWISE AT THAT TIME).
The intent of this commit is to expose fossil new --empty to more field-testing. It should be 100% upwards/downwards compatible, but if there still turn out to be some corner-cases, now is the right time to find out (I am not aware of any!).
file: [e33eca8e]
check-in: [8364065c]
user: jan.nijtmans
branch: trunk,
size: 85790

Add setting to control the number of autosync will be tried before returning
an error. Default is historical behavior of one autosync in each direction.
file: [e9678412]
check-in: [76bc297e]
user: andybradford
branch: trunk,
size: 85131

Introduce the autosync-tries setting to control how many attempts
autosync will try if there is a failure. Defaults to 1 which is the
current behavior. Disabling autosync is still managed with the autosync
setting.
file: [2a502ee3]
check-in: [7653ab63]
user: andybradford
branch: autosync-tries,
size: 84916

fossil new no longer (by default) creates an initial empty commit. The first commit after initializing a new repository will become the initial commit, and it doesn't need to be empty any more. If you specify --date-override, an initial commit with the specified date still will be created.
file: [8c690a95]
check-in: [f2c8b4f3]
user: jan.nijtmans
branch: no-initial-commit,
size: 84235

Add the "max-loadavg" setting to the "setting" command. Add "setting" and
"unset" to the "all" command so that max-loadavg can be quickly changed on
all repos of a large server installation.
file: [2489ae95]
check-in: [1847552c]
user: drh
branch: trunk,
size: 84355

If fossil is compiled using "--disable-internal-sqlite" for Cygwin, the additional call to fossil_utf8_to_filename() is not needed any more: SQLite 3.8.3.1 for Cygwin can already handle win32 paths as well as cygwin paths.
file: [b6ebe42c]
check-in: [c7c510e3]
user: jan.nijtmans
branch: trunk,
size: 83824

[202edc2c1c]: Make `th1-setup` a textarea in settings UI. Fixed by making it a versionable setting (just as "tcl-setup", for consistancy) and moving it to the second column of the setup page.
Remark: Making "th1-setup" versionable is not a good idea: It would mean that any Web-page access must do an additional check for the presence of a versionable setting file. Therefore putting it aside.
file: [72f9570c]
check-in: [28429acb]
user: jan.nijtmans
branch: setup-textarea,
size: 83541

Fix db_open_local() fonction so it find the local checkout database on "/". It
was working inconsistently depending what was the current directory.
** Even if fossil is not the right tool to version files on the root of the
system, I found it very usefull to track what file change on my system
Tested on Linux and MinGW (Windows 8.1)
file: [71011657]
check-in: [be993c47]
user: mgagnon
branch: checkout_on_root_fix,
size: 83398

The same, but then with modified SQLite (minimal patch to function winFullPathname this time).
This way, applications wanting to use the "win32-longpath" VFS don't have to do tricky extended-path modifications any more.
file: [38c8343b]
check-in: [8e8e3a11]
user: jan.nijtmans
branch: win32-longpath,
size: 83088

Remove usage of the 'win32-longpath' VFS as it is unlikely to work correctly with the various MSVCRT functions currently required by Fossil.
file: [217ccd28]
check-in: [19de4b5b]
user: mistachkin
branch: trunk,
size: 82788

Make "fossil open" and "fossil rm" work on a repository which doesn't have any check-in.
(the latter only undoes the effect of a previous "fossil add" then).
file: [3cfd6f07]
check-in: [aef638b6]
user: jan.nijtmans
branch: trunk,
size: 82792

Now that checkout_cmd() can handle the situation that vid==0 ([b725c1cf26]), no longer assume that the initial commit has rid=1: If the initial commit is not empty that will not be true any more.
file: [d5d7ccd6]
check-in: [6791ad11]
user: jan.nijtmans
branch: trunk,
size: 82867

According to the documentation /artifact/9974dfbc5c?txt=1&ln=178-179, the first manifest in the project has no P-card. Make it so, as a P-card with no arguments is just ignored and serves no purpose. (I tested this in a new repo, and it works just fine)
file: [ba3980d4]
check-in: [989c9935]
user: jan.nijtmans
branch: trunk,
size: 80122

Simplify command line interaction: remove settings from global and provide
one less command line option. Altering settings in open fossils can be done
with sync -l or cleared with remote-url if necessary.
file: [2726afe2]
check-in: [ed20da74]
user: andybradford
branch: ssh-test-http,
size: 80311

Use-case demonstrating previous change. It restores the behavior of "fossil clean" and the "ignore-glob" documentation to what it was in 1.25 and before: clean everything unknown to fossil except the build artifacts (specified by "ignore-glob" or --ignore).
Now the build artifacts can be removed by "fossil clean -X", while "fossil clean -x" cleans everything possible for a clean build.
This renders --clean and "ignore-clean" unnecessary, it can be removed now.
file: [5c355f71]
check-in: [003062b7]
user: jan.nijtmans
branch: cleanX,
size: 79862

Attempt to set the repository application_id to 1598444364 (which is
the same as '_FSL') before any changes to the repository.
file: [b6f3c8ac]
check-in: [822d6f0d]
user: drh
branch: trunk,
size: 79202

Merging from trunk to get the annotate fixes. Trivial conflict solved.
Update: the new branch viric_flavour ([b31afcc2ca]) includes most of these changes in a more recent fossil.
file: [8b524401]
check-in: [f14798e0]
user: viriketo
branch: annotate_links,
size: 79353

In db_open_local() check writability of local-db itself in stead of the directory it is in. This should enable fossil checkouts on NFS-mounts, which sometimes lie about writability of directories.
file: [6bb39def]
check-in: [beb91c91]
user: jan.nijtmans
branch: trunk,
size: 79331

Add check for win32/cygwin whether the config-db is writable in stead of checking that the $HOME directory is writable.
Eliminate g.zHome and g.configOpen, in stead use a single g.configDbName. Then people no longer have to guess whether the config db name is ".fossil" or "_fossil". g.zHome was only used for locating the config db, nothing else.
file: [4a7ab9c5]
check-in: [473e08a6]
user: jan.nijtmans
branch: trunk,
size: 79391

Consolidate all sqlite3_open() calls into the db_open() routine and initialize
every database connection the same way. Avoid using sqlite3_exec() in order
to obtain a more accurate count of perpared statements when --sqltrace is
used.
file: [9e625e46]
check-in: [f97e1cf6]
user: drh
branch: trunk,
size: 78349

Improved error message handling. Fix the "fossil server" command so that it
works when run as root on a repository in the root directory.
file: [d98ff80c]
check-in: [baa1ebb7]
user: drh
branch: trunk,
size: 78336

Enhancements to ticket processing. There are now two tables: TICKET and
TICKETCHNG. There is one row in TICKETCHNG for each ticket artifact.
Fields from ticket artifacts go into either or both of TICKET and TICKETCHNG,
whichever contain matching column names. Default ticket edit and viewing
scripts are updated to use TICKETCHNG. The TH1 scripting language is
enhanced to support this, including the new "query" command for doing
SQL queries against the repository database. All changes should be
backwards compatible.
file: [bde42396]
check-in: [4f8c8975]
user: drh
branch: trunk,
size: 77696

Patch provided by Stefan Bellon,
>Attached you'll find a patch that adds the "unicode-glob" to the
>settings and respects its setting in the check-in. Additionally I
>disabled all the check-in warnings (crnl, binary and unicode) in case
>--force/-f is set on commit.
file: [f0db22c1]
check-in: [0c2f705c]
user: jan.nijtmans
branch: bellon-unicode,
size: 77467

When db_open_config() is called with the useAttach parameter set to non-zero, it may need to close and reopen the database using ATTACH if that was not done previously.
file: [5869bf8c]
check-in: [e0152697]
user: mistachkin
branch: dbReOpenConfigAttach,
size: 76386

Updating from trunk. I solved some merge conflicts: 1) the checkin info in the
vdiff page, taking that from trunk, and 2) the vdiff menu options, which I
tried to get similar to what I had in the branch.
file: [54a873dd]
check-in: [f4b082d4]
user: viriketo
branch: annotate_links,
size: 75497

modified fix for [c8c0b78c84], which no longer causes "Usage" printouts to use the full fossil path, even though the command line didn't use the full path
file: [f126f15d]
check-in: [dacc6946]
user: jan.nijtmans
branch: trunk,
size: 74740

Copy the control settings into the new repository as well. Also, correct the query used to copy the system user column values.
file: [c9628839]
check-in: [4bab4459]
user: mistachkin
branch: newTemplate,
size: 74763

Use the list of configuration properties when transfering content from
the template repo to the new repo. Also transfer the ticket formats.
file: [2c30b789]
check-in: [78cf4138]
user: drh
branch: newTemplate,
size: 74235

Minor additional fixes related to [c8c0b78c84]:
- Use _wsystem() in stead of system() on Windows
- Use g.argv[0] in stead of fossil_nameofexe() where only printing is involved
- Use fossil_nameofexe() where fossil_system() is involved
- Move the determination of the full windows path to fossil_nameofexec,
so g.argv[0] can always be the unmodified argv[0]
- g.argv[0] and fossil_nameofexec() are in utf-8, so we cannot use fprintf
directly. Exception: when printing malloc errors.
file: [c2fdbae1]
check-in: [be06861f]
user: jan.nijtmans
branch: ticket-c8c0b78c84,
size: 71268

Fix the manifest generator for check-ins so that when a partial commit is
done and some of the uncommitted files have been renamed, the rows of the
check-in manifest are ordered by the original, unchanged names of the
uncommitted renamed files.
file: [faf75c8c]
check-in: [01e4de6b]
user: drh
branch: trunk,
size: 70991

Use ~/.fossil4 as the configuration database to avoid conflicts with
the original fossil. Adjust SQL because INTEGER PRIMARY KEY does not
auto-fill as with SQLite3.
file: [f32bd1bb]
check-in: [3f624d49]
user: drh
branch: sqlite4,
size: 70138

Begin a branch that is modified to use sqlite4 instead of sqlite3 as the
storage engine. This check-in compiles (on unix) but does not work.
file: [fbb87725]
check-in: [68239127]
user: drh
branch: sqlite4,
size: 70136

On unix, use the ".fslckout" name instead of "_FOSSIL_" for the local
checkout database. Both names have been and continue to recognized.
But now ".fslckout" is created by "fossil open" instead of "_FOSSIL_".
the "_FOSSIL_" name is still used on windows.
file: [a71fac98]
check-in: [432306be]
user: drh
branch: trunk,
size: 70320

Remove appropriate "ckout:" records from the config table when closing a
checkout. Do not attempt to modify the repository with "ckout:" records
if the repository is read-only.
file: [982285f5]
check-in: [02051489]
user: drh
branch: trunk,
size: 70002

Change the name of the auto-enable-hyperlinks setting to auto-hyperlink and
make it available via the "fossil setting" command. Note: when
upgrading through this change, if you formerly had auto-hyperlink turned off,
you will have to turn it off again since the name has changed. It defaults
to on.
file: [30801b5a]
check-in: [cb5db759]
user: drh
branch: trunk,
size: 69773

Modify file_simplify_name to accept a parameter used to determine if the trailing slash, if any, should be retained. Make use of this when converting the local root to its canonical form.
file: [081a005d]
check-in: [e94c7cc4]
user: mistachkin
branch: winFiles,
size: 68464

In file_tree_name, since the file name argument is converted to its canonical form prior to the memcmp, the local root must be as well. On Windows, normalize drive letters to uppercase when converting a file name to its canonical form and fix construction of temporary file names used with the gdiff command when the --from and --to options are present.
file: [cbee402b]
check-in: [6be0898b]
user: mistachkin
branch: winFiles,
size: 68452

Collect the various file-scope variables used by the "db.c" module into
a single structure. This is code cleanup. There are no functional changes.
file: [9f5f2f9b]
check-in: [a537c995]
user: drh
branch: trunk,
size: 68327

climb up the trunk. From up here, clarify wording of the "building and installing" wiki page: you don't need to log in to get the source code for released versions of fossil, the download page will have a shiny source package for you to fetch.
file: [5b95392f]
check-in: [587dd57f]
user: martin.weber
branch: msw-docco,
size: 68005

Change the alternative name of the _FOSSIL_ checkout database to ".fslckout"
since the prior alternative name is offensive in some locales. The prior name
is still supported for backwards compatibility, but is now deprecated and
undocumented and will eventually disappear completely.
file: [e2a38923]
check-in: [f9a200f0]
user: drh
branch: trunk,
size: 67821

Store the repository filename in the _FOSSIL_ database exactly as it is
typed on the "open" command-line. That means that the repository filename
will be stored relative to the root of the check-out if a relative
pathname is given on open.
file: [818f20c5]
check-in: [a7248d8f]
user: drh
branch: trunk,
size: 67656

Merge the json branch into trunk. Json is disabled by default for now.
Use the --enable-json option to configure, or set FOSSIL_ENABLE_JSON in the
makefile to turn json processing on.
file: [4db1419d]
check-in: [796dcfe0]
user: drh
branch: trunk,
size: 67144

Merge the tcl-integration branch into trunk. To make use of big-tcl,
recompile using the --with-tcl option to ./configure and either set the
global "tcl" setting or set the TH1_ENABLE_TCL environment variable.
Big-tcl is turned off by default.
file: [a93b595b]
check-in: [d8ed5a0d]
user: drh
branch: trunk,
size: 66219

No longer display the server-code in info outputs as the server-code is no
longer used for anything. Begin recording the location of local checkouts
in the ~/.fossil database.
file: [fb2d7393]
check-in: [272e304d]
user: drh
branch: trunk,
size: 65757

Break up the command-line commands into commonly-use and auxiliary commands
and only show the commonly-used ones with "fossil help". Add a new
command "fossil commands" to show auxiliary and test commands.
file: [eb923907]
check-in: [841772c8]
user: drh
branch: trunk,
size: 65368

Merging the annotate_noleak changes, about removing an important memory leak in
the annotate operation.
It also fixes some blob behaviour in blob.c and content.c.
Update: Removed from trunk. Replaced by the must simpler fix
at [9929bab702f99839ee]
file: [b2d12f44]
check-in: [409f370a]
user: viriketo
branch: declined,
size: 65367

What I did to get the 'annotate' command not leak. Notice that I disabled again the check for blob_is_reset, as in trunk.
file: [783b348d]
check-in: [7ad4dfbe]
user: viriketo
branch: annotate_noleak,
size: 65123

Versionable settings are only checked if the local _FOSSIL_ database is
already opened. Versionable settings no longer attempts to open that
database itself. This fixes an issue with the Admin/Settings page.
file: [8ff47f4c]
check-in: [a2cc6bc6]
user: drh
branch: trunk,
size: 64080

Add ssl-ca-location setting to specify file/directory to pass to OpenSSL as the server CA location. This allows specification of CAs properly on platforms without usable centralised CA certificate lists, or management by external programs. Add note to certificate warning about this setting, and stronger instructions about what to do if the server certificate could not be verified.
file: [982ff6f8]
check-in: [636cc595]
user: ben
branch: ben-testing,
size: 62369

Do not use strcmp() for comparison since the sort order can vary by
locale. Use fossil_strcmp() instead. Ticket [3f0216560679fd41].
file: [84e1490d]
check-in: [32ad9a15]
user: drh
branch: trunk,
size: 57373

Add makefile to ensure no DLLs are used for the MinGW build (zlib was installed as both a static and a dynamic library)
Extensions and minor textual revisions to the online help for several commands
file: [8a7ef2cb]
check-in: [6469b814]
user: Arjen Markus
branch: arjen-doc-updates,
size: 58349

Use a combination of $HOMEDRIVE$HOMEPATH instead of just $HOMEPATH when
searching for the home directory on windows.
Ticket [44002a7760cf5406]file: [6e5f7463]
check-in: [3715b5d2]
user: drh
branch: trunk,
size: 57388

The "open" command now automatically opens to the "trunk", or to some
other branch designated by the new "main-branch" setting.
file: [9b290c48]
check-in: [e3e43bbe]
user: drh
branch: trunk,
size: 56358

Add the new crnl-glob setting which defines files for which it is OK to have
CRNL line endings. Windows projects on which this is preferred can set
the crnl-glob pattern to '*'.
file: [4e4fa23b]
check-in: [04665884]
user: drh
branch: trunk,
size: 56022

Add the --sqlstats command-line option for use in optimization work.
Use a persistent prepared statement for a single query to reduce the
number of calls to sqlite3_prepare() for the "update" command.
file: [b6d25be1]
check-in: [b8111237]
user: drh
branch: trunk,
size: 55744

Add the --nested option to the "open" command to allow checkouts from
one repository to be created inside the checkout of another respository.
file: [63fbe1ec]
check-in: [f15943f3]
user: drh
branch: trunk,
size: 55154

Add a new meta-data table named LEAF that holds a precomputed set of all
leaves in the checkin DAG. Use this precomputed table rather than trying
to compute the LEAFs on the fly, as a performance enhancement for
repositories with many checkins. A rebuild is required.
file: [d95d2e82]
check-in: [69f43fc0]
user: drh
branch: experimental,
size: 54870

Do not drop the accesslog table on a rebuild. If the accesslog table does
not exist, do not generate and error on the User-Log report.
file: [2c76e525]
check-in: [f1efc905]
user: drh
branch: trunk,
size: 54820

Change the "setting" command so that it works for global settings even if
it is run outside of a check-out and with no repository specified using -R.
file: [0b5c5db1]
check-in: [3d592297]
user: drh
branch: trunk,
size: 53477

Add new function fossil_strcmp() that works like strcmp() except that it
handles NULL arguments correctly. Use fossil_strcmp() in place of strcmp()
in many places in the code.
file: [2f5043fb]
check-in: [31c52c7b]
user: drh
branch: trunk,
size: 53427

Many bug fixes while testing stash: Fix "revert" so that it updates the
file status correctly. Fix several cases of "//" being used as a file
separator instead of just "/". Fix undo on stash apply. Make "stash drop"
undoable. Update documentation for undo and stash.
file: [68ebfbd3]
check-in: [8a6aa0a1]
user: drh
branch: experimental,
size: 51801

New cloning algorithm appears to be much faster at the cost of slightly
more network bandwidth. Fully backwards compatible. Need to look at the
network bandwidth issue prior to merging with trunk. Perhaps a command-line
option for the clone command to select between slow-and-small or
fast-and-larger.
file: [8516ed0b]
check-in: [8bb8be26]
user: drh
branch: experimental,
size: 51536

Two new settings: "manifest" and "repo-cksum". The first enables the
output of the manifest and manifest.uuid files on each checkout. This
is now off by default. The second enables repository checksums. It
defaults on.
file: [ce96c7eb]
check-in: [2f3b9bd3]
user: drh
branch: experimental,
size: 50080

This is the first check-in on the windowscompilers branch and it adds the
Digital Mars C compiler
The user should have dmc installed in c:\DM with zlib in c:\DM\extra\lib
and c:\DM\extra\include.
typing c:\DM\bin\make -f win\Makefile.dmc builds fossil.exe in dmcobj
The following files were edited or added:
Checks if one of the windows compilers is used. If so we define _WIN32.
Defining _WIN32 is normally done by#include <windows.h>
However most of the time we don't use windows.h.
Adding an other windows compiler is done by adding
"|| defined(__COMPILER_IDENTIFIER__)"
and maybe some special things in the files below.
Like
These have all __MINGW32__ replaced by _WIN32. And in some places special processing for either MINGW32 or DMC
In popen2 the _open_osfHandle call first parameter is cast to a long. DMC refused to compile without the cast.
DMC complained that it didn't knew of time_t in rss.h. time.h came after
rss.h. Switching the two solved it!
added tcl code to generate Makefile.dmc. tclsh src/makemake.tcl dmc
prints to stdout the makefile. As a convienience to the
end-user I added the win/Makefile.dmc to the repository.
There are few changeable variables in there for adjusting path,
CFLAGS LIBS etc.
These are needed because DMC and MSVC doesn't provided them.
dirent.h is copied verbatim from the net. unistd.h I found on the
net too, but added some defines.
The problem with windows it doesn't have AWK standard installed.
version.c creates VERSION.h. It is a very simple C-program and
doesn't do a lot of checking.
file: [8bdbff61]
check-in: [f66f414f]
user: renez
branch: windowscompilers,
size: 46340

The ssh:// method on windows is now working well with plink. It will even
prompt for passwords if the URL contains a "*" password.
file: [d3d0e3df]
check-in: [0cdb6403]
user: drh
branch: trunk,
size: 46422

Take care to close the connection to the database file before existing.
This gives the database a chance to clean up (and, for example, delete
WAL and shared-memory files).
file: [4e19a4ae]
check-in: [932825bc]
user: drh
branch: trunk,
size: 46062

Automatically pull the shunning list when pulling from the "remote-url"
server, which we assume is a trusted server. Add the new "auto-shun"
setting to disable this feature, if desired.
file: [5f5446cf]
check-in: [515814f8]
user: drh
branch: trunk,
size: 45859

Infrastructure changes that will allow the client-side sync to be run
from a web interface - the status messages now go to CGI output if the
sync is run from a web page. This is a partial implementation of the
"SyncNow" button. The button itself has not yet been added.
file: [481ea1fc]
check-in: [c56af61e]
user: drh
branch: trunk,
size: 45439

Add the --binary option to the "merge" command and a new "binary-glob" setting.
These identify files that should be treated as binary files and which should
not be subjected to a 3-way merge.
file: [661dae96]
check-in: [d327f125]
user: drh
branch: trunk,
size: 44144

Add a --ignore option to the "extra" command, and an "ignore-glob" setting
which causes files with given patterns to be ignored.
Tickets [705181a992c] and [5125de2e624]. See also ticket [4e8410bfd69].
file: [62f60a50]
check-in: [3555c0fc]
user: drh
branch: trunk,
size: 43921

Added --admin-user|-A USERNAME to the new command which will set the default admin user name. If not supplied, the existing mechanism is used to determine the default user name. This implements [9195b1e5f3].
file: [7f7b60c8]
check-in: [b8d812ef]
user: jeremy_c
branch: trunk,
size: 45034

Store passwords in USER.PW as either cleartext (as is done in legacy) or as
the SHA1 hash of the password. When changing a password or adding a new user,
always use the SHA1 hash password.
file: [b89e3126]
check-in: [cfe33dcf]
user: drh
branch: experimental,
size: 44368

Change the name of the "anon-login-enable-captcha-filler" setting to
"auto-captcha". Move the GUI setting of this setting over to the
"Setup/Behavior" page.
file: [2ee5db4d]
check-in: [fe019f94]
user: drh
branch: trunk,
size: 43238

Update to the latest version of SQLite with improved sqlite3_trace() support.
This makes the output of --sqltrace much more helpful.
file: [295793e5]
check-in: [732d7c40]
user: drh
branch: trunk,
size: 42987

Deal with windows filename aliasing in the "all" command.
Ticket [974618fe5a8]. Also display the home directory for windows
users with the "info" command since the home directory is non-obvious
in windows.
file: [39a38ca8]
check-in: [d5695157]
user: drh
branch: trunk,
size: 42916

After any kind of database error, include in the error message a warning
to the user that it might be wise to run "fossil all rebuild".
file: [1d7cecfa]
check-in: [397fa9bf]
user: drh
branch: trunk,
size: 42882

Disconnect the global configuration database in ~/.fossil from the
respository database in most cases. This allows multiple "sync" or
"commit" operations to be running on different repositories at the same time.
file: [b0740e57]
check-in: [00ac7945]
user: drh
branch: trunk,
size: 47423

Provide --user-override option on the ci command and the --date-override
option on the new command. Make a correction to the file format document.
file: [fa417115]
check-in: [8b630bb5]
user: drh
branch: trunk,
size: 45302

Update to the latest SQLite. On the "Ticket" page, if "nobody" is not allowed
to create new tickets but "anonymous" is, then offer a hyperlink to log in
as anonymous. Change the default settings to be more secure.
file: [f365dd4c]
check-in: [623a9129]
user: drh
branch: trunk,
size: 44888

Add the --keep option to the "open" and "checkout" commands. Added the
--latest option to "checkout". These changes allow one to shift the
baseline version and repository of a checkout without changing any files
in the checkout.
file: [a1f15c6b]
check-in: [915bfd99]
user: drh
branch: trunk,
size: 44794

Change the way branches are tagged: The value of the "branch" property is
used to identify the branch name. Repository rebuild required. Also,
branches must be retagged.
file: [c34a03c3]
check-in: [42c2a18e]
user: drh
branch: trunk,
size: 44289

Add the sym-trunk and newbranch tags to the root check-in when rebuilding.
Also add the newbranch tag to the root check-in when creating a new
repository.
file: [7c762083]
check-in: [7c7edde1]
user: drh
branch: trunk,
size: 44227

Add the ability to detect file changes using only the mtime. This is turned
on using the "fossil setting mtime-changes ON" command. It is off by default,
but it does make many operations go much faster, especially on large
repositories, so we might want to start turning it on by default.
file: [33915798]
check-in: [2dffce04]
user: drh
branch: trunk,
size: 44026

When creating a new repository or cloning a repository, print the
initial administrator password on standard output. This is intended
to help new users figure out how to log in. Ticket [ca08d51f19]file: [63d9c57b]
check-in: [0c6ea0d9]
user: drh
branch: trunk,
size: 43266

Convert the changes that support microsoft character sets so that they
work (so that they are #ifdef-ed out) on other platforms.
file: [3dffe034]
check-in: [c6a9e4ed]
user: drh
branch: trunk,
size: 42613

Update for making mycfg.exe.
WARNING: This is an incompatible change. Do not use this branch
of development to build a copy of fossil that needs to interoperate with
official releases.
file: [7fa037b9]
check-in: [b54de50a]
user: urmil
branch: trunk,
size: 40376

Allow the "_FOSSIL_" file at the root of each check-out to be renamed ".fos".
At some point we might make .fos the default, but for now _FOSSIL_ is the
default. The file can be freely changed between these two names.
file: [398830ae]
check-in: [8bdea95c]
user: drh
branch: trunk,
size: 41026

Added the "all" command for things like "fossil all sync". I am not sure
"all" is quite the right name for this command, so I may yet change it.
file: [d2615a7d]
check-in: [9346f229]
user: drh
branch: trunk,
size: 40741

Store private ticket fields (ex: the originators email address) as their
SHA1 hash so that malefactors cannot read them. Add the new "concealed"
table to the repository database and store mappings from SHA1 hashes back
to email addresses in that table. Ticket [a24ec6005f]. Note: run
"rebuild" on repositories after updating to this version of fossil in order
to create the "concealed" table. Need to add the ability to manage the
concealed table from the web interface and the ability to sync concealed
content between trusted repositories.
file: [984f70bf]
check-in: [f46fe42d]
user: drh
branch: trunk,
size: 39818

The "h" capability is now used to enable hyperlinks to non-wiki pages.
When "h" is missing, many pages give a hyperlink to the login page and
automatically fill in "anonymous" as the user name. The login page
jumps back to the target page after a successful login.
file: [5e79625a]
check-in: [d57de287]
user: drh
branch: trunk,
size: 35997

Honor the http_proxy environment variable as another source for the
URL of the HTTP proxy if the "proxy" setting is undefined or is "off".
file: [cbb81a64]
check-in: [387cbeda]
user: drh
branch: trunk,
size: 35778

Fix a bug in the db_get_int() routine that was causing the default value
to be ignored - resulting in very slow clones for systems without a
configuration database.
file: [a160182d]
check-in: [bf1a30c9]
user: drh
branch: trunk,
size: 30398

Fix the delta computation on download so that it never tries to
delta a file that has the same file as both its parent and its child.
file: [dab15ea6]
check-in: [16fbb59b]
user: drh
branch: trunk,
size: 30398

Added support for a user defined diff command, which if set (fossil config diff-command), is run by default. The user can give a -i flag to run the internal diff command regardless of user defined diff command setting. Removed command tkdiff, no longer needed. Made the config remove message a bit more clear, when removing a config setting, it states it has been removed instead of telling you it's undefined.
file: [65cc9f76]
check-in: [c82fb617]
user: jnc
branch: trunk,
size: 25514

Some elements moved to correct order in wiki AllowedMarkup array. Removed hardcoded link in resolveHyperlink and also made it handle outside links, such as http, ftp, mailto, etc... When looking for valid HTML codes, I changed isalpha to isalnum so that H1, H2, etc... would be recognized. Better code for setting inital checkout db entry.
file: [c864ef2a]
check-in: [55dc2abc]
user: jnc
branch: trunk,
size: 25360

Fixed bug in open_cmd. As of ff4c, open now runs update --latest as well, which would err on a brand new, blank, database. open_cmd now only runs update --latest if the current pid != 0
file: [6ce289db]
check-in: [4dc622f3]
user: jnc
branch: trunk,
size: 25317

Moved the core logic of both "rebuild_database" and "create_repository_cmd" into their own functions, for sharing with "reconstruct_cmd".
file: [ca474c1e]
check-in: [e00384d2]
user: aku
branch: trunk,
size: 24417

Changes to the way new repositories are created. Also make the
CGI output blob available to all modules through a function call.
file: [d44b76e9]
check-in: [a48936e8]
user: drh
branch: trunk,
size: 22907

Extend the commit command so that specific files can be committed. There are still some problems with doing this after a merge.
file: [acf733f7]
check-in: [22552fb8]
user: dan
branch: trunk,
size: 23426