Changes for Version 2.8 (2019-02-20)
* Show cherry-pick merges as dotted lines on the timeline graph.
The "fossil rebuild" command must be run to create and
populate the new "cherrypick" table in the repository in order
for this feature to operate.
* Add the ability to associate branches, check-ins, and tags with
specially-named Wiki pages. This gives the ability to better
document branches and tags, and provide more documentation on
check-ins beyond the check-in comment. The associated Wiki is
automatically displayed on /info pages for check-ins, and on
/timeline?r=BRANCH and /timeline?t=TAG pages for branches and
tags. This feature is on by default, but can be disabled in on
the Admin/Wiki page.
* Enhance the repository list page (shown for example by
"fossil all ui") so that it shows the name and last check-in
time for each project. The implementation of the repository
list page is now broken out into a separate source file (repolist.c).
* Allow users with Forum Supervisor permission ('6') to add Forum
Write Trusted permission ('4') to users as they are approving a
forum post by that user.
* When running a bisect, report the number of check-ins still in
the search range and the estimated number of bisect steps remaining.
Do this at each step of the bisect.
* Provide a permanent link to a bisect timeline using the bid= query
parameter.
* Make the chronological forum display feature available to all users,
and make it the default format on mobile devices.
* Break out Wiki setup into a separate /setup_wiki page, accessible
on the standard menus through Admin/Wiki.
* Add "Next" and "Previous" buttons on the /wdiff page, allowing
the user to step through the versions of a wiki page.
* Improve the display of the /whistory page.
* Omit the "HH:MM" timestamps on timeline graphs on narrow-screen
devices, to improve horizontal space uses. This helps make Fossil
more mobile-friendly.
* Enhance /wcontent to show a sortable list of Wiki pages together
with the number of revisions and the most recent change time for
each page.
* Hyperlinks to Wiki pages on the /timeline go to the specific
version of the Wiki page named in the timeline, not to the latest
version.
* Enhancements to the "amend", "tag", and "reparent" commands, including
adding options --override-date, --override-user, and --dry-run.
* Add the global --comment-format command-line option and the
comment-format setting to control the display of the command-line
timeline.
* Change the "fossil reparent" command so that it only works from
within an active checkout.
* On the /setup_ucap_list, show administrators how many users have
each capability. The counts are a hyperlink to the /setup_ulist
page showing the subset of users that have that capability.
* Provide the ability to redirect all HTTP pages to HTTPS. Formerly
one could cause this to occur for the /login page only. That option
still exists, but the redirect can now also be done for all pages.
* "Compress" the built-in javascript by omitting comments and
leading and trailing whitespace.
* Detect when the repository used by a checkout is swapped out for
a clone that uses different RID values, and make appropriate adjustments
to the checkout database to avoid any problems.
* Add the backoffice-disable setting to completely disable the
backoffice feature.
* Update the built-in SQLite to version 3.27.1.
* Various other small enhancements to webpages and documentation.
Changes for Version 2.7 (2018-09-22)
* Add the email alerts feature for commits, ticket changes, wiki changes,
forum posts, and announcements. This is still a work in progress. It is
functional, but it is not as easy to setup and use as it ought to be.
* Add the discussion forum feature.
* Add new user capabilities letters needed to support alerts and forum.
Formerly, user capabilities were letters from [a-z], but with the
enhancements, the supply of lower case letters was exhausted. User
capabilities are now letters in [a-zA-Z0-9].
* The built-in skins are now responsive, providing better layout on small
screens, including mobile devices.
* The default skin now includes a hamburger menu that is generated by the /
sitemap page.
* All of the built-in skins now use a Content Security Policy (CSP) to help
prevent cross-site injection and forgery attacks. There are no known
vulnerabilities in Fossil. The added CSP does not fix anything; it merely
adds another layer of defense.
* The /sitemap and other list pages show as multiple columns if the viewing
window is wide enough.
* There is an optional "js" file for each skin that can be used to hold
javascript. This file can be loaded by reference or can be included in the
header or footer.
* Add the backoffice.
* Update internal Unicode character tables, used in regular expression
handling, from version 10.0 to 11.0.
* Improvements to the "Security Audit" administration page
* Add the fossil branch current command.
* Add the grep command.
* Update the built-in SQLite to version 3.25.1.
* Some code and interfaces are in place to support sending and receiving
email directly via SMTP, but this feature is not yet complete or ready for
production use.
* The `mv-rm-files` setting is now compiled into Fossil in the default Fossil
configuration; no longer must you say ./configure --with-legacy-mv-rm to
make it available. The setting remains disabled by default, however, so you
must still say fossil set mv-rm-files 1 to enable it on each repository
where you want hard mv/rm behavior.
Changes for Version 2.6 (2018-05-04)
* Fix a bug that was causing crashes while trying to clone the TCL
repository. This fix is the main reason for the current release.
* Added the new "Classic" timeline viewing mode. "Classic" is the same as
"Verbose" in the previous release. The "Verbose" mode is now like "Compact"
except the extra check-in details are shown by default.
* Add support for ETags:, Last-Modified:, and If-Modified-Since: cache
control mechanisms.
* 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.
* On the /timeline webpage, add the days=N query parameter and enhance the
ymd=DATE and yw=DATE query parameters to accept 'now' as an argument to
show the latest day or week.
* In the web page that comes up in response to the fossil all ui command,
show the last modification time for each repository, and allow
click-to-sort on the modification time column.
* In the tarball cache replacement algorithm, give extra weight to tarballs
that have been accessed more than once.
* Additional defenses against web-based attacks. There have not been any
known vulnerabilities. We are just being paranoid.
* Update the built-in SQLite to an alpha version of 3.24.0.
Changes for Version 2.5 (2018-02-07)
* Numerous enhancements to the look and feel of the web interface.
Especially: Added separate "Modern", "Compact", "Verbose", and "Columnar"
view options on timelines.
* Common display settings (such as the "view" option and the number of rows
in a timeline) are held in a cookie and thus persist across multiple pages.
* Rework the skin editing process so that changes are implemented on one of
nine /draft pages, evaluated, then merged back to the default.
* Added the Ardoise skin.
* Fix the "fossil server" command on Unix to be much more responsive to
multiple simultaneous web requests.
* Use the IPv6 stack for the "fossil ui" and "fossil server" commands on
Windows.
* Support for SQL Archives as a download option.
* Fossil now automatically generates the <html><head>...</head><body> at the
beginning of each web page if the configurable header lacks a <body> tag.
* Added the /artifact_stats page, currently accessible only by the
administrator.
* Upgrade to the latest versions of SQLite and OpenSSL.
* Improved key bindings on the Tk diff screen generated by "fossil diff
--tk".
* Begin factoring out in-line javascript into separately loaded script files.
This is a step along the road toward supporting a strict Content Security
Policy. More work is to be done.
* Initial infrastructure is in place to make use of the pledge() system call
in OpenBSD. More work is to be done.
Based on PR 52850 by dziltener@lyrion.ch.
Changes for Version 2.4 (2017-11-03)
New feature: URL Aliases. URL Aliases allow an administrator to define their own URLs on the web interface that are rewritten to built-in URLs with specific parameters. Create and configure URL Aliases using the /Setup/URL_Aliases menu option in the web interface.
Add tech-note search capability.
Add the -r|--revision and -o|--origin options to the annotate command.
Add the origin= query parameter to the /annotate webpage.
The fossil annotate command and the /annotate web page go backwards in time as far as can be computed in 30 milliseconds by default, rather than stopping after 20 steps. The new limit= query parameter or the --limit command-line option can be used to alter this timeout.
Provide separate on-line help screens for each setting.
Back out support for the --no-dir-symlinks option
Remove support from the legacy configuration sync protocol. The only way now to do a configuration push or pull is to use the new protocol that was added in 2011.
Add the from= and to= query parameters to /fdiff in order to get a diff of two files in the same check-in.
Fix the "ssh://" protocol to prevent an attack whereby the attacker convinces a victim to run a "clone" with a dodgy URL and thereby gains access to their system.
Provide a checkbox that will temporarily disable all ad-units.
Improvements to the /stat page
Various new hyperlinks to the /bloblist and /bigbloblist pages.
Correct the /doc page to support read-only repositories.
Correct /zip, /tarball, zip, and tarball pages and commands to honor the versioned manifest setting when outside of an open checkout directory.
The admin-log and access-log settings are now on by default for new repositories.
Update the built-in SQLite to version 3.21.0.
Changes for Version 2.3 (2017-07-21)
Update the built-in SQLite to version 3.20.0 (beta).
Update internal Unicode character tables, used in regular expression handling, from version 9.0 to 10.0.
Show the last-sync-URL on the /urllist page.
Added the "Event Summary" activity report. example
Added the "Security Audit" page, available to administrators only
Added the Last Login time to the user list page, for administrators only
Added the --numstat option to the fossil diff command
Limit the size of the heap and stack on unix systems, as a proactive defense against the Stack Clash attack.
Fix "database locked" warnings caused by "PRAGMA optimize".
Fix a potential XSS vulnerability on the /help webpage.
Documentation updates
GIT comment tags are now handled by Fossil during import/export.
Show the content of README files on directory listings.
Support for Basic Authentication if enabled (default off).
Show the hash algorithms used on the /rcvfromlist page.
The /tarball and /zip pages now use the the r= query parameter to
select which check-in to deliver. The uuid= query parameter is still
accepted for backwards compatibility.
Update the built-in SQLite to version 3.18.0.
Run "PRAGMA optimize" on the database connection as it is closing.
Add support for hash policies that control which of the
Hardened-SHA1 or SHA3-256 algorithms is used to name new artifacts.
Add the "gshow" and "gcat" subcommands to fossil stash.
Add the /juvlist web page and use it to construct the
Download Page of the Fossil self-hosting website using Ajax.
Use the hardened SHA1 implemenation by Marc Stevens and Dan Shumow.
Add the ability to read and understand artifact names that are
based on SHA3-256 rather than SHA1, but do not actually generate any
such names.
Added the sha3sum command.
Add checkbox widgets to various web pages.
Add the fossil all ui command
Add the /file webpage
Enhance the /brlist webpage to make use of branch colors.
Add support for the ms=EXACT|LIKE|GLOB|REGEXP query parameter on the
/timeline webpage, with associated form widgets.
Enhance the changes and status commands with many new filter options
so that specific kinds of changes can be found without having to pipe
through grep or sed.
Enhanced the fossil sql command so that it opens the checkout
database and the configuration database in addition to the
respository database.
Various TH1 enhancements.
Rename crnl-glob setting to crlf-glob, but keep crnl-glob as a
compatibility alias.
Added the --command option to the diff command.
Fix ticket set when using the "+" prefix with fields from the
"ticketchng" table.
Remove the "fusefs" command from builds that do not have the
underlying support enabled.
Fixes for incremental git import/export.
Minor security enhancements to encrypted repositories.
Local changes:
- update MASTER_SITES to http://fossil-scm.org/xfer/uv/download/
Upstream changelog
==================
Changes for Version 1.36 (2016-10-24)
Add support for unversioned content, the fossil unversioned command and the /uv and /uvlist web pages.
The download page is moved into unversioned content so that the self-hosting Fossil websites no longer uses any external content.
Added the "Search" button to the graphical diff generated by the --tk option on the diff command.
Added the "--checkin VERSION" option to the diff command.
Various performance enhancements to the diff command.
Update internal Unicode character tables, used in regular expression handling, from version 8.0 to 9.0.
Update the built-in SQLite to version 3.15 (beta). Fossil now requires the SQLITE_DBCONFIG_MAINDBNAME interface of SQLite which is only available in SQLite version 3.15 and later and so Fossil will not work with earlier SQLite versions.
Fix multi-line timeline bug
Enhance the fossil purge command.
New command fossil shell.
SQL parameters whose names are all lower-case in Ticket Report SQL queries are filled in using HTTP query parameter values.
Added support for child projects that are able to pull from their parent but not push.
Added the -nocomplain option to the TH1 "query" command.
Added support for the chng=GLOBLIST query parameter on the /timeline webpage.
* Enable symlinks by default on all non-Windows platforms.
* Enhance the Markdown formatting so that hyperlinks that begin with "/" are relative to the root of the Fossil repository.
* Rework the /setup_list page (the User List page) to display all users in a click-to-sort table.
* Fix backslash-octal escape on filenames while importing from git
* When markdown documents begin with <h1> HTML elements, use that header at the document title.
* Added the /bigbloblist page.
* Enhance the /finfo page so that when it is showing the ancestors of a particular file version, it only shows direct ancestors and omits changes on branches, thus making it show the same set of ancestors that are used for /blame.
* Added the --page option to the fossil ui command
* Added the fossil bisect ui command
* Enhanced the fossil diff command so that it accepts directory names as arguments and computes diffs on all files contained within those directories.
* Fix the fossil add command so that it shows "SKIP" for files added that were already under management.
* TH1 enhancements:
* Add [array exists] command.
* Add minimal [array names] command.
* Add tcl_platform(engine) and tcl_platform(platform) array elements.
* Get autosetup working with MinGW.
* Fix autosetup detection of zlib in the source tree.
* Added autosetup detection of OpenSSL when it may be present under the "compat" subdirectory of the source tree.
* Added the fossil reparent command
* Added --include and --exclude options to fossil tarball and fossil zip and the in= and ex= query parameters to the /tarball and /zip web pages.
* Add support for encrypted Fossil repositories.
* If the FOSSIL_PWREADER environment variable is set, then use the program it names in place of getpass() to read passwords and passphrases
* Option --baseurl now works on Windows.
* Numerious documentation improvements.
* Update the built-in SQLite to version 3.13.0.
Remove readline dependency fossil now uses the linenoise library
(embedded src).
Install manpage, license and linenoise license.
Changelog:
* Make the fossil clean command undoable for files less than 10MiB.
* Update internal Unicode character tables, used in regular expression
handling, from version 7.0 to 8.0.
* Add the new amend command which is used to modify tags of a "check-in".
* Fix bug in import command, handling version 3 of the svndump format for
subversion.
* Add the all cache command.
* TH1 enhancements:
Add minimal [lsearch] command. Only exact case-sensitive matching is
supported.
Add the [glob_match], [markdown], [dir], and [encode64] commands.
Add the [tclIsSafe] and [tclMakeSafe] commands to the Tcl integration
subsystem.
Add 'double', 'integer', and 'list' classes to the [string is] command.
* Add the --undo option to the diff command.
* Build-in Antirez's "linenoise" command-line editing library
for use with the fossil sql command on Unix platforms.
* Add stash cat as an alias for the stash show command.
* Automatically pull before fossil merge when auto-sync is enabled.
* Fix --hard option to fossil mv and fossil rm to enable them to work properly
with certain relative paths.
* Change the mimetype for ".n" and ".man" files to text/plain.
* Display improvements in the fossil bisect chart command.
* Updated the built-in SQLite to version 3.9.1 and activated JSON1 and
FTS5 support (both currently unused within Fossil).
Changelog:
This is Version 1.33 (2015-05-23)
Principal changes in this release:
Improved fork detection on fossil update, fossil status and related commands.
Change the default skin to what used to be called "San Francisco Modern".
Add the /repo-tabsize web page
Add fossil import --svn, for importing a subversion repository into fossil which was exported using "svnadmin dump".
Add the "--compress-only" option to fossil rebuild.
Use a pie chart on the /reports?view=byuser page.
Enhanced fossil clean --verily so that it ignores keep-glob and ignore-glob settings. Added the -x alias for --verily.
Add the --soft and --hard options to fossil rm and fossil mv. The default is still --soft, but that is now configurable at compile-time or by the mv-rm-files setting.
Improved ability to customize the timelime graph.
Improvements to the /sitemap page.
Automatically adjust the CLI timeline to the terminal width on Linux.
Added [info commands] and [info vars] commands to TH1. These commands perform the same function as their Tcl counterparts, except they do not accept a pattern argument.
Fix some obscure issues with TH1 expression processing.
Fix titles in search results for documents that are not wiki, markdown, or HTML.
Formally translate TH1 to Tcl return codes and vice-versa, where necessary, in the Tcl integration subsystem.
Add fossil leaves -multiple, for finding multiple leaves on the same branch.
Added the "Blitz" skin option.
Removed the ".fossil-settings/keep-glob" file. It should not have been checked into the repository.
Update the built-in SQLite to version 3.8.10.2.
Make fossil open honor ".fossil-settings/allow-symlinks".
Allow fossil add to be used on symlinks to nonexistent or unreadable files in the same way as fossil addremove.
Added fork warning to be issued if sync produced a fork
Update the info page to report when a file becomes a symlink. Additionally show the UUID for files whose types have changed without changing contents or symlink target.
Have fossil changes and fossil status report when executable or symlink status changes on otherwise unmodified files.
Permit filtering weekday and file reports by user. Also ensure the user parameter is preserved when changing types. Add a field for direct entry of the user name to each applicable report.
Create parent directories of empty-dirs if they don't already exist.
Inhibit timeline links to wiki pages that have been deleted.
Changes for Version 1.32 (2015-03-14)
When creating a new repository using fossil init, ensure that
the new repository is fully compatible with historical versions
of Fossil by having a valid manifest as RID 1.
Anti-aliased rendering of arrowheads on timeline graphs.
Added vi/less-style key bindings to the --tk diff GUI.
Documentation updates to fix spellings and changes all "checkins"
to "check-ins".
Add the --repolist option to server commands such as fossil
server or fossil http.
Added the "Xekri" skin.
Enhance the "ln=" query parameter on artifact displays to accept
multiple ranges, separate by spaces (or "+" when URL-encoded).
Added fossil forget as an alias for fossil rm.
Changes For Version 1.31 (2015-02-23)
Change the auxiliary schema by adding columns MLINK.ISAUX and
MLINK.PMID columns to the schema, to support better drawing of
file change graphs. A fossil rebuild is recommended but is not
required. so that the new graph drawing logic can work effectively.
Added search over Check-in comments, Documents, Tickets and
Wiki. Disabled by default. The search can be either a full-scan
or it can use an index that is kept up-to-date automatically.
The new /srchsetup web-page and the fts-config command were
added to help configure the search capability. Expect further
enhancements to the search capabilities in subsequent releases.
Added form elements to some submenus (in particular the /timeline)
for easier operation.
Added the --ifneeded option to fossil rebuild.
Added "override skins" using the "skin:" line of the CGI script
or using the --skin LABEL option on the server, ui, or http
commands.
Embedded html documents that begin with <doc class="fossil-doc">
are displayed with standard headers and footers added.
Allow <div style='...'> markup in wiki.
Renamed "Events" to "Technical Notes", while updating the
technote display and control pages. Add support for technotes
as plain text or as Markdown.
Added the /md_rules pages containing summary instructions on
the Markdown format.
Added the --repolist and --nojail options to the various server
commands (ex: fossil server).
Added the fossil all add subcommand to "fossil all".
Improvements to the /login page. Some hyperlinks to pages that
require "anonymous" privileges are displayed even if the current
user is "nobody" but automatically redirect to /login.
The /doc web-page will now try to deliver the file "404.md"
from the top-level directory (if such a file exists) in place
of its built-in 404 text.
Download of Tarballs and ZIP Archives by user "nobody" is now
enabled by default in new repositories.
Enhancements to the table sorting controls. More display tables
are now sortable.
Add IPv6 support to fossil sync and fossil clone
Add more skins such as "San Francisco Modern" and "Eagle".
During shutdown, check to see if the check-out database
(".fslckout") contains a lot of free space, and if it does,
VACUUM it.
Added the /mimetype_list page.
Added the /hash-collisions page.
Allow the user of Common Table Expressions in the SQL that
defaults ticket reports.
Break out the components (css, footer, and header) for the
various built-in skins into separate files in the source tree.
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
headers.
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
pages.
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" instead
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
footers.
(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.
* Enchanced /reports
* If a username is passed during clone, that user is now the local admin
* Tenfold performance increase in annotate and blame rendering
* Fixed handling of passwords embedded in URL
* Sends gzipped HTTP replies to supporting clients
Changelog:
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 the command-line.
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 absolute.
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 being committed.
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 clause.
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
Changelog:
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 enhancements.
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 case-insensitive filesystems.
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 timeline graph.)
Bring in the latest versions of SQLite, zlib, and autosetup from upstream.
Version 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.
Add javascript so that clicking on a node of the timeline graph
selects that node. Then clicking on a second node shows a diff
between the two nodes. Clicking on the selected node unselects
it.
Warn of unresolved merge conflicts in "fossil status" and
disallow commits of unresolved conflicts unless the --allow-conflict
option is used.
Add javascript so that clicking on column headers in a ticket
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
all rebuild")
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,
and --allow-conflict.
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
"uses file".)
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.
Set the action= attribute of <form> elements using javascript,
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
0.
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".
Version 1.24:
Added support for WYSIWYG editing of wiki pages. WYSIWYG is
turned off by default and can be turned on by setting a
configuration option.
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
SHA1 hashes.
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
messages.
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
proxies.
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
repository.
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" main page.
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.
COMMENT should not be longer than 70 characters.
COMMENT should not begin with 'A'.
COMMENT should not begin with 'An'.
COMMENT should not begin with 'a'.
COMMENT should not end with a period.
COMMENT should start with a capital letter.
pkglint warnings. Some files also got minor formatting, spelling, and style
corrections.
Notable changes:
* Greatly improved "diff" processing including the new --brief option,
partial line matching, colorized in-line diffs, and better performance.
* Promote "allow-symlinks" to a versionable setting
* Harden the CGI processing logic against DOS attacks
* Add the ability to run TH1 scripts after sync requests
* Store the repository name in _FOSSIL_ as it is type in the "open" command,
possibly as a relative pathname.
* Make ".fslckout" the alternative name for the "_FOSSIL_" file.
* Change the "ssh:" transfer method to allow all access regardless of
user permission.
* Improvements to the timeline messages associated with tag changes.
(Requires a "fossil rebuild" to take effect.)
* Various additions and fixes for the JSON API.
* Improved merge-with-rename handling.
* --cherrypick merges use their origin's commit message by default.
* Added support for multiple concurrent logins per user.
* Update to use SQLite version 3.7.11.
* Various minor bug fixes.
website now, so the tarball is now on MASTER_SITE_LOCAL.
Changes For Version 1.21 (2011-12-13)
* Added side-by-side diffs in the command-line interface
* Automatically enable hyperlinks if the UserAgent string in the HTTP
header suggests that the requestor is a human and not a bot.
* Show only commonly used commands with "fossil help". Use "fossil
help --all" to see the complete list now.
* Improvements to the "stash" command: (1) Stash all files, not just
those below the working directory. (2) Add the --detail option to
"list". (3) Confirm before "drop --all". (4) Add the "help"
subcommand.
* Add an Admin/Access setting to change the number of octets of the
IP address that are saved in login cookies - allowing this setting
to be changed to zero
* Promote the "test-md5sum" command to "md5sum".
* Added the "whatis" command.
* Stop showing the server-code in status outputs - it is no longer
used for anything.
* Added a compile-time option (--with-tcl) to build in the full TCL
interpreter to augment TH1.
* Merged the JSON branch into trunk. Disabled by default. Enabled by
a compile-time option. Probably it will be enabled by default in
some future release.
* Update to use SQLite version 3.7.9 plus the alignment fix for
Sparc. align
Changes For Version 1.20 (2011-10-21)
* Added side-by-side diffs in HTML interface.
* Added support for symlinks. (Controlled by "allow-symlinks"
setting, off by default).
* Fixed CLI annotate to show the proper file version in case there
are multiple equal versions in history.
* Timeline now shows tag changes (requires rebuild).
* Fixed annotate to show "more relevant" versions of lines in some
cases.
* New command: ticket history.
* Disabled SSLv2 in HTTPS client.
* Fixed constant prompting regarding previously-saved SSL
certificates.
* Other SSL improvements.
* Added -R REPOFILE support to several more CLI commands.
* Generated tarballs now have constant timestamps, so they are always
identical for any given checkin.
* A number of minor HTML-related tweaks and fixes.
* Added --args FILENAME global CLI argument to import arbitrary CLI
arguments from a file (e.g. long file lists).
* Fixed significant memory leak in annotation of files with long
histories.
* Added warnings when a merge operation overwrites local copies (UNDO
is available, but previously this condition normally went silently
unnoticed).
* Improved performance when adding many files.
* Improve merges which contain many file renames.
* Added protection against timing attacks.
* Firefox now remembers filled fields when returning to forms.
* Added the --stats option to the rebuild command.
* RSS feed now passes validation.
* Show overridden user when entering commit comment.
* Made rebuilding from web interface silent.
* Now works on MSVC with repos >2GB.
* A number of code cleanups to resolve warnings from various
compilers.
* Update the built-in SQLite to version 3.7.9 beta.
Changes For Version 1.19 (2011-09-02)
* Added a ./configure script based on autosetup.
* Added the "fossil winsrv" command for creating a Fossil service
on windows systems.
* Added "versionable settings" where settings that affect the local
tree can be stored in versioned files in the .fossil-settings
directory.
* Background colors for branches are choosen automatically if no
color is specified by the user.
* The status, changes and extras commands now show pathnames relative
to the current working directory, unless overridden by command line
options or the "relative-paths" setting.
WARNING: This change will break scripts which rely on the current
output when the current working directory is not the repository
root.
* Added "empty-dirs" versionable setting.
* Added support for client-side SSL certificates with "ssl-identity"
setting and --ssl-identity option.
* Added "ssl-ca-location" setting to specify trusted root SSL
certificates.
* Added the --case-sensitive BOOLEAN command-line option to many
commands. Default to true for unix and false for windows.
* Added the "Color-Test" submenu button on the branch list web page.
* Compatibility improvements to the git-export feature.
* Performance improvements on SHA1 checksums
* Update to the latest SQLite version 3.7.8 alpha.
* Fix the tarball generator to work with very log pathnames.
Major changes in this release:
* Added sequential version numbering
* Added a optional configure script - the Makefile still works
for most systems.
* Improvements to the "annotate" algorithm: only search
primary ancestors and ignore branches.
* Update the "scrub" command to remove traces of login-groups
and subrepositories.
* Added the --type option to the "fossil tag find" command.
* In contexts where only a check-in makes sense, resolve
branch and tag names to checkins only, never events or other
artifacts.
* Improved display of file renames on a diff. A rebuild is
required to take full advantage of this change.
* Update the built-in SQLite to version 3.7.7.
New in release 2011-05-23 15:11:12:
This release merges in the windows internationalization patches.
Fossil should now work better on windows machines that use a
non-ASCII and non-UTF8 code page for the DOS box.
New in release 2011-05-12 14:56:52:
This release adds an enhanced configuration sync capability
which entails an irreversible schema change.
You _must_ run "fossil rebuild" on all of your repositories after
updating to this version of fossil.
Other changes in this release include:
* Refactor the "add", "rm", and "addremove" commands to
simplify the code and fix various problems.
* Added a "diff" hyperlink after each file in the "Show Files"
timeline view.
* The "fossil open" and "fossil co" commands always prompt
before overwriting preexisting files unless the --force
option is used.
* Enhanced the merge-conflict markup to show both recent
versions and the common-ancestor version.
* Change the definition of what it means to be a "leaf"
check-in, to be consistent and to work better for most
people.
* Commands that recursively decend through the file hierarchy
("fossil extra", "fossil clean", etc.) will now ignore
nested checkouts.
* Automatically delete the _FOSSIL_ file upon a failed "open".
* Improvements to the "annotate" feature.
* Other minor bug fixes.
- Support for git-fast-export format
- More efficient synchronisation mechanism
- "addremove", "bisect" and "stash" commands
- sqlite3 shell with some bindings to fossil logic like content_get
- undo cleans merge state
- Various improvements and bugfixes to other commands
manifests (resulting in much less metadata for large repositories), lots
of speed ups for the manifest parser, and smaller improvements like revert
dealing with merge records.
There are plenty of open-source version control systems available
on the internet these days. What makes Fossil worthy of attention?
1. Bug Tracking And Wiki - In addition to doing distributed
version control like Git and Mercurial, Fossil also supports
distributed bug tracking and distributed wiki all in a single
integrated package.
2. Web Interface - Fossil has a built-in and easy-to-use web
interface that simplifies project tracking and promotes situational
awareness. Simply type "fossil ui" from within any check-out
and Fossil automatically opens your web browser in a page that
gives detailed history and status information on that project.
3. Autosync - Fossil supports "autosync" mode which helps to
keep projects moving forward by reducing the amount of needless
forking and merging often associated distributed projects.
4. Self-Contained - Fossil is a single stand-alone executable
that contains everything needed to do configuration management.
Installation is trivial: simply download a precompiled binary
for Linux, Mac, or Windows and put it on your $PATH. Easy-to-compile
source code is available for users on other platforms. Fossil
sources are also mostly self-contained, requiring only the "zlib"
library and the standard C library to build.
5. Simple Networking - Fossil uses plain old HTTP (with proxy
support) for all network communications, meaning that it works
fine from behind restrictive firewalls. The protocol is bandwidth
efficient to the point that Fossil can be used comfortably over
a dial-up internet connection.
6. CGI Enabled - No server is required to use fossil. But a
server does make collaboration easier. Fossil supports three
different yet simple server configurations. The most popular is
a 2-line CGI script. This is the approach used by the self-hosting
fossil repositories.
7. Robust & Reliable - Fossil stores content in an SQLite database
so that transactions are atomic even if interrupted by a power
loss or system crash. Furthermore, automatic self-checks verify
that all aspects of the repository are consistent prior to each
commit. In over two years of operation, no work has ever been
lost after having been committed to a Fossil repository.