Update to 1.30:
This is Version 1.30. Key changes in this release include:
Added the fossil bundle command.
Added the fossil purge command.
Added the fossil publish command.
Added the fossil unpublished command.
Enhance the /tree webpage to show the age of each file with
the option to sort by age.
Enhance the /brlist webpage to show additional information
about each branch and to be sortable by clicking on column
Add support for Docker. Just install docker and type "sudo
docker run -d -p 8080:8080 nijtmans/fossil" to get it running.
Add the fossil fusefs DIRECTORY command that mounts a Fuse
Filesystem at the given DIRECTORY and populates it with read-only
copies of all historical check-ins. This only works on systems
that support FuseFS.
Add the administrative log that records all configuration.
Added the /sitemap webpage.
Added the /bloblist web page.
Let fossil new no longer create an initial empty commit by
default. The first commit after checking out an empty repository
will become the initial commit.
Added the fossil all dbstat and fossil all info commands.
Update SQLite to version 3.8.8.
Added the --verily option to the fossil clean command.
Add the "autosync-tries" setting to control the number of
autosync attempts before returning an error.
Added a compile-time option (--with-miniz) to build using miniz
instead of zlib. Disabled by default.
Support customization of commands and webpages, including the
ability to add new ones, via the "TH1 hooks" feature. Disabled
by default. Enabled via a compile-time option.
Add the [checkout], [render], [styleHeader], [styleFooter],
[trace], [getParameter], [setParameter], [artifact], and
[globalState] commands to TH1, primarily for use by TH1 hooks.
Automatically adjust the width of command-line timeline output
according to the detected width of the terminal.
Prompt the user to optionally fix invalid UTF-8 at check-in.
Added a line-number toggle option to the /info and /artifact
Most commands now issue errors rather than silently ignoring
unrecognized command-line options.
Use full 40-character SHA1 hashes (instead of abbreviations)
in most internal URLs.
The "ssh:" sync method on windows now uses "plink.exe" \
of "ssh" as the secure-shell client program.
Prevent a partial clone when the connection is lost.
Make the distinction between 301 and 302 redirects.
Allow commits against a closed check-in as long as the commit
goes onto a different branch.
Improved cache control in the web interface reduces unnecessary
requests for common resources like the page logo and CSS.
Fix a rare and long-standing sync protocol bug that would
silently prevent the sync from running to completion. Before
this bug-fix it was sometimes necessary to do "fossil sync
--verily" to get two repositories in sync.
Add the files_of_checkin virtual table - useful for ad hoc
queries in the fossil sql interface, and also used internally.
Added the "$secureurl" TH1 variable for use in headers and
(Internal:) Add the ability to include resources as separate
files in the source tree that are converted into constant byte
arrays in the compiled binary. Use this feature to store the
Tk script that implements the --tk diff option in a separate
file for easier editing.
(Internal:) Implement a system of compile-time checks to help
ensure the correctness of printf-style formatting strings.
Fix CVE-2014-3566, also known as the POODLE SSL 3.0 vulnerability.
Numerous documentation fixes and improvements.
Other obscure and minor bug fixes - see the timeline for details.
Update to 1.27
This is Version 1.27. Key changes in this release include:
Enhance the fossil changes, fossil clean, fossil extras, fossil ls and \
fossil status commands to restrict operation to files and directories named on \
New --integrate option to fossil merge, which automatically closes the \
merged branch when committing.
Renamed /stats_report page to /reports. Graph width is now relative, not \
Added yw=YYYY-WW (year-week) filter to timeline to limit the results to a \
specific year and calendar week number, e.g. /timeline?yw=2013-01.
Updates to SQLite to prevent opening a repository file using file \
descriptors 1 or 2 on unix. This fixes a bug under which an assertion failure \
could overwrite part of a repository database file, corrupting it.
Added support for unlimited line lengths in side-by-side diffs.
New --close option to fossil commit, which immediately closes the branch \
Added chart option to fossil bisect.
Improvements to the "human or bot?" determination.
Reports errors about missing CGI-standard environment variables for HTTP \
servers which do not support them.
Minor improvements to sync support on Windows.
Added --scgi option to fossil server.
Internal improvements to the sync process.
The internals of the JSON API are now MIT-licensed, so downstream \
users/packagers are no longer affected by the "do no evil" license \
Update to 1.26
This is Version 1.26. Key changes in this release include:
The argument to the --port option for the "fossil ui" and \
"fossil server" commands can take an IP address in addition to the \
port number, causing Fossil to bind to just that one IP address.
After prompting for a password, also ask if that password should be remembered.
Performance improvements to the diff engine.
Fix the side-by-side diff engine to work better with multi-byte unicode text.
Color-coding in the web-based annotation (blame) display. Fix the annotation \
engine so that it is no longer confused by time-warps.
The markdown formatter is now available by default and can be used for \
tickets, wiki, and embedded documentation.
Add subcommands "fossil bisect log" and "fossil bisect \
status" to the "fossil bisect" command, as well as other bisect \
Enhanced defenses that prevent spiders from using excessive CPU and bandwidth.
Consistent use of the -n or --dry-run command line options.
Win32: Fossil now understands Cygwin paths containing one or more of the \
characters "*:<>?|. Those are normally forbidden in win32. This means \
that the win32 fossil.exe is better usable in a Cygwin environment.
Cygwin: Fossil now understands win32 absolute paths starting with a drive \
letter everywhere. The default value of the "case-sensitive" setting \
is now FALSE, except when case-sensitivity is enabled in the Windows kernel.
Enhancements to /timeline.rss, adding more flags for filtering results, \
including the ability to subscribe to changes made to individual tickets.
Improved handling of the differences between case-sensitive and \
JSON API: added the 'status' command to report local checkout status.
Fixes to the --args support and documented this feature in the help.
Added /stats_report page.
Added ym=YYYY-MM filter to the "/timeline" url.
Fixed: config reset now re-installs default ticket report format.
ssh:// and file:// protocols now ignore proxy settings.
Added /hash-color-test web page.
Cherry-pick merges are recorded internally (though no yet displayed on the \
Bring in the latest versions of SQLite, zlib, and autosetup from upstream.
Update to 1.25:
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.
Add the ability to moderate ticket and wiki changes. Unmoderated
changes do not sync and may be deleted by the moderator if
found to contain spam or other objectionable content.
selects that node. Then clicking on a second node shows a diff
between the two nodes. Clicking on the selected node unselects
Warn of unresolved merge conflicts in "fossil status" and
disallow commits of unresolved conflicts unless the --allow-conflict
option is used.
report sorts by the indicated column.
Add the "fossil cat" command which is basically an alias for
"fossil finfo -p".
Hyperlinks with the class "button" are rendered as submenu
buttons on embedded documentation.
The check-in comment editor on windows now defaults to NotePad.exe.
Correctly deal with BOMs in check-in comments. Also attempt to
convert check-in comments to UTF8 from other encodings.
Allow the deletion of multiple stash entries using multiple
arguments to the "fossil stash rm" command.
Enhance the "fossil server DIRECTORY" command to serve static
content files contained in DIRECTORY. For security, only files
with a recognized suffix (such as *.html, *.jpg, *.txt, etc)
will be delivered as static content, and *.fossil files are
not on the list of recognized suffixes. There are additional
restrictions on the names of the files.
Allow the "fossil ui" command to specify a directory as long
as the the --notfound option is used.
Add a configuration option that causes timeline messages to be
rendered as text/x-fossil-plain (which is the same as text/plain
except that hyperlinks inside of [...] are decorated.)
Only decorate [...] in check-in comments and tickets if the
contented text really is a valid hyperlink target.
Improvements to the side-by-side diff algorithm, for a more
human-friendly display in some complex cases.
Added [utime] and [stime] commands to TH1. These commands can
be used for things such as displaying the page rendering time
in the footer.
Add the ability to pass command-line options of "fossil rebuild"
to "fossil all rebuild".
Add the --deanalyze option to "fossil rebuild" (and "fossil
Do not run the graphical merging tool nor leave merge-droppings
after a dry-run merge. Display an improved merge-summary message
at the end of the merge.
Add options to "fossil commit" to override the various sanity
checks. Options added: --allow-empty, --allow-fork, --allow-older,
Optionally require a CAPTCHA (controlled by a setting on the
Admin/Access webpage) when a user who is not logged in tries
to edit wiki, or a ticket, or an attachment.
Improvements to the "ssh://" sync protocol, to help it move
past noisey motd comments.
Add the uf=FILE-SHA1-HASH query parameter to the timeline,
causing the timeline to show only check-ins that contain the
specific file identified by FILE-SHA1-HASH. ("uf" stands for
Enhance the file change annotator so that it follows the file
across name changes.
Fix the server-side of the sync protocol so that it will not
generate a delta loop when a file changes from its original
state, through two or more intermediate states, and back to
the original state, all within a single sync.
Show much less output during a sync operation, unless the
--verbose option is used.
as an addition defense against spam-bots.
Disallow invalid UTF8 characters (such as characters in the
surrogate pair range) in filenames.
Judge the UserAgent strings issued by the NetSurf webbrowser
to be coming from a human, not from a bot.
Add the zlib sources to the Fossil source tree (under compat/zlib)
and use those sources when compiling on (windows) systems that
do not have a zlib library installed by default.
Prompt the user with the option to convert non-UTF8 files into
UTF8 when committing.
Allow the characters *? in filenames.
Allow the --context option on diff commands to have a value of
Added the "dbstat" command.
Enhanced "fossil merge" so that if the VERSION argument is
omitted, Fossil tries to merge any forks of the current branch.
Improved detection of forks in a commit race.
Added the --analyze option to "fossil rebuild".
Added support for WYSIWYG editing of wiki pages. WYSIWYG is
turned off by default and can be turned on by setting a
Allow style= attribute to occur in HTML markup on wiki pages.
Added the --tk option to the "fossi diff" and "fossil stash
diff" commands, causing color-coded diff output to be displayed
in a Tcl/Tk GUI window. This option only works if Tcl/Tk is
installed on the host.
On windows, make the "gdiff" command default to use WinDiff.exe.
Update the "fossil stash" command so that it always prompts
for a comment if the -m option is omitted.
Enhance the timeline webpages so that a=, b=, c=, d=, p=, and
dp= query parameters (and others) can all accept any valid
checkin name (such as branch names or labels) instead of just
Added the "fossil stash show" command.
Added the "fileage" webpage with links to this page from the
check-in information page and from the file browser.
Added --age and -t options to the "fossil ls" command.
Added the --setmtime option to "fossil update". When used, the
mtime of all mananged files is set to the time when the most
recent version of the file was checked in.
Changed the "vdiff" webpage to show the complete text of files
that were added or removed (the equivelent of using the -N or
--newfile options with the "fossil diff" command-line.)
Added the --temp option to "fossil clean" and "fossil extra",
causing those commands to only look at temporary files generated
by Fossil, such as merge-conflict reports or aborted check-in
Enhance the raw page download so that it can guess the mimetype
of attachments based on the filename.
Change the behavior of the from= and to= query parameters on
the timeline page so that by default the path between the two
specified check-ins avoids merges.
Add the --baseurl option to "fossil server" and "fossil http"
commands, so that those commands can be used with reverse
If unable to determine the command-line user, do not guess.
Instead issue an error message. This helps prevent check-ins
from accidentally occurring under the wrong username.
Include branch information in the output of file change listings
(the "finfo" webpage).
Make the simplified view of file history, rather than the full
view, the default.
In the "fossil configuration" command, allow the "css" option
for synchronizing, importing, or exporting just the CSS file.
This makes it easier to share CSS files across repositories by
exporting from one and importing to another.
Add the (unsupported) "fossil test-orphans" command.
Add the --template option to the "fossil init" command, to
facilitate creating new repositories based on a template
Add the diff-binary setting, which if enabled causes binary
files to be passed to the "gdiff" command for it to deal with,
rather than simply printing a "cannot diff binary files" error.
Add the --unified option to the "fossil diff" command to force
a unified diff even if the --tk option (which normally implies
a side-by-side diff) is used.
Present a choice of nearby branches and versions to diff against
on the check-in information page.
Add the --force option to the "fossil merge" command that will
force the merge to occur even if it would be a no-op. This is
sometimes useful for documentation purposes.
Add another built-in skin: "Enhanced Default". Other minor
tweaks to the existing skins.
Add the "urllist" webpage, showing a list of URLs by which a
server instance of Fossil has been accessed. Requires
"Administrator" privileges. A link is on the "Setup" \
Enable dynamic loading of the Tcl runtime for installations
that want to use Tcl as part of their configuration. This
reduces the size of the Fossil binary and allows any version
of Tcl 8.4 or later to be used.
Merge the latest SQLite changes from upstream.
Lots of minor bug fixes.