Fossil SCM 2.18

Fossil is a distributed version control system, quite robust and easy to use. It manages local and remote repositories, user permissions, has a built-in wiki, bugtracker, release blog and an extendable web interface. It's github-in-a-box as all features are packed into a stand-alone executable which also doubles as server. Internally the database utilizes SQLite and allows extending that or its user interface through TCL or the builtin TH1 scripting language. An optional JSON API permits further extensions.

Tags c sqlite fossil scm dvcs wiki bugtracker server project-management cgi wcms
License BSDL-2
State development

Recent Releases

2.1829 Mar 2022 07:05 minor feature: On file listing pages, sort filenames using the "uintnocase" collating Sequence, so that filenames that contains embedded integers sort in Numeric order even if they contain a different number of digits. Example: "fossil_80_..." comes before "fossil_100.png" in the. skins/blitz directory listing.). Enhancements to the graph layout algorithm design to improve readability. And promote better situational awareness. Performance enhancement for the. root:BRANCHNAME" style of tag. Accomplished using a Common Table Expression in the underlying SQL.
2.1603 Jul 2021 12:05 minor feature: Security: the client-side TLS so that it verifies that the Server hostname matches its certificate. The default "ssh" command on Windows is changed to "ssh" instead of the. Legacy "plink", as ssh is now generally available on Windows systems. Installations that still need to use the legacy "plink" can make that. Happen by running: '. fossil set ssh-command "plink -ssh" --global '. Added the fossil patch command. The fossil ui command is enhanced in multiple ways: The REPOSITORY argument can be the name of a check-out directory. If the REPOSITORY argument is preby "HOST:" or "USER@HOST:". Then the ui is run on the remote machine and tunnelled back to the local Machine using ssh. (The latest version of fossil must be installed on Both the local and the remote for this to work correctly.) The new --nobrowser and --fossilcmd options is provided. The REPOSITORY argument can be the name of a check-out directory. If the REPOSITORY argument is preby "HOST:" or "USER@HOST:". Then the ui is run on the remote machine and tunnelled back to the local Machine using ssh. (The latest version of fossil must be installed on Both the local and the remote for this to work correctly.) The new --nobrowser and --fossilcmd options is provided. The /brlist web page allows the user to. Select multiple branches to be displayed together in a single Timeline. The Forum provides a hyperlink on the author of each. Post that goes to a timeline of recent posts by that same author. Added the " fossil bisect run " command for improved. Automation of bisects. The fossil merge command now does a better job merging. Branches where files have been renamed between the current branch and the Branch being merged. The fossil open command allows the repository file to be inside the working directory without requiring the --force flag. The /wikiedit and /wikinew. Pages now default to markdown format. The /login page now links to a user's forum post. Timeline if the repository has forum posts
2.1528 Mar 2021 02:45 minor feature: The default CSP has been relaxed slightly to allow Images to be loaded from any URL. All other resources are still Locked down by default. The built-in skins all use the " mainmenu ". Setting to determine the content of the main menu. The ability to edit the. mainmenu" setting is added on the /Admin/Configuration page. The hamburger menu is now available on most of the built-in skins. Any built-in skin named "X" can be used instead of the standard. Repository skin by adding the URL parameter. skin=X to the Request. The selection is persisted using the display Preferences cookie unless the "once" query parameter is also Included. The /skins page may be used to select a skin. The /cookies page now gives the user an opportunity to delete. Individual cookies. And the /cookies page is linked from the sitemap, so that it appears in hamburger menus. The /sitemap extensions are now specified by a single new. sitemap-extra setting ". Rather than a cluster of various sitemap-*" settings. The older settings are no longer used.. This change might require minor server configuration. Adjustments on servers that use /sitemap extensions. The /Admin/Configuration page provides the ability to edit. The new "sitemap-extra" setting. Added the "--ckout-alias NAME" option to. Fossil ui, fossil server, and Fossil http. This option causes Fossil to Understand URIs of the form "/doc/NAME/..." as if they were doc/ckout/... ", to facilitate testing of. Embedded documentation changes prior to Check-in. For diff web pages, if the diff type (unified versus side-by-side) is not specified by a query parameter, and if the. preferred-diff-type ". Setting is omitted or less than 1, then select the diff type based on a guess of whether or not the request is coming from a mobile. Device. Mobile gets unified and desktop gets side-by-side. The various pages which show diffs now have toggles to show/hide. Individual diffs. Add the " preferred-diff-type ". Setting to allow an admin to force a de
2.1421 Jan 2021 06:45 minor feature: Schema Update Notice #1: This release drops a trigger from the database schema (replacing it with a TEMP trigger that is created as needed). This. Change happens automatically the first time you Add content to a repository using Fossil 2.14 or later. No Action is needed on your part. However, if you upgrade to Version 2.14 and then later downgrade or otherwise use an earlier Version of Fossil, the email notification mechanism may fail to send out notifications for some events, due to the missing. Trigger. If you want to Permanently downgrade an installation, then you should run fossil rebuild " after the downgrade to get email notifications working again. If you are not using. Email notification, then the schema change will not affect you in Any way. Schema Update Notice #2: This release changes how the descriptions of wiki edits are stored in the EVENT table, for improved display on timelines. You must. Run " fossil rebuild " to take advantage of This enhancement. Everything will still work without fossil rebuild", except you will get goofy descriptions of. Wiki updates in the timeline. Add support for Fossil chat. The " fossil clone " command is enhanced so that if the repository filename is omitted, an appropriate name is derived. From the remote URL and the newly cloned repo is opened. This makes The clone command work more like Git, thus making it easier for People transitioning from Git. Added the --mainbranch option to the fossil git export. Command. Added the --format option to the. fossil timeline " command. Enhance the --numstat option on the. fossil diff " command so that it shows a total. Number of lines added and deleted and total number of files Modified. Add the "contact" sub-command to fossil user. Added commands " fossil all git export " and. fossil all git status ". Added the "df=CHECKIN" query parameter to the. timeline page. Improvements to the " /sitemap " page. Add subpages. sitemap-timeline and /sitemap-test. Better text position in cylin
2.1301 Nov 2020 07:45 minor feature: Added support for interwiki links. Enable INS and DEL markup in wiki. Improvements to the Forum threading display. Added support for embedding pikchr. Markup in markdown and fossil-wiki content. The new " pikchr " command can render. Pikchr scripts, optionally pre-processed with TH1 blocks and variables exactly like. Site skins are. The new pikchrshow page provides an. Editor and previewer for pikchr markup in /wikiedit and fileedit, Ctrl-Enter can now be used. Initiate a preview and to toggle between the editor and preview tabs. The /artifact and /file views, when in Line-number mode, now support interactive selection of a range of lines to hyperlink to enhance the /finfo webpage so that when query parameters identify both a filename and a checkin, the resulting graph tracks the identified file across renames. The built-in SQLite is updated to an alpha of version 3.34.0, and. The minimum SQLite version is increased to 3.34.0 because the finfo change in the previous bullet depends on enhancements to. Recursive common table expressions that are only available in SQLite 3.34.0 and later. Countless other minor refinements and documentation improvements..
2.1005 Oct 2019 09:05 minor feature: Added support for CGI-based Server Extensions. Added the repolist-skin setting used to. Add style to repository list pages. Enhance the hierarchical display of Forum threads to do less. Indentation and to provide links back to the previous message in the thread. Provide sequential numbers for all messages in a forum thread. Add support for fenced code blocks and improved hyperlink. Processing to the markdown formatter. Add support for hyperlinks to wiki pages in the. Markdown formatter. Enhance the /stat page so that it gives the. Option to show a breakdown of forum posts. The special check-in name "merge-in:BRANCH" means the source of. The most recent merge-in from the parent branch of BRANCH. Add hyperlinks to branch-diffs on the /info page and from. Timelines of a branch. Add graphical context on the /vdiff page. Uppercase query parameters, POST parameters, and cookie names are. Converted to all lowercase and entered into the parameter set, Instead of being discarded. Change the default hash policy to SHA3. Timeout CGI requests after 300 seconds, or. Some other value set by the timeout:" property in the CGI script. The check-in lock interval is reduced from 24 hours to 60 seconds. Though the interval is now configurable using a setting. An additional check for conflicts is added after interactive. Check-in comment entry, to compensate for the reduced lock interval. Performance optimizations. Many documentation improvements..
2.723 Sep 2018 07:05 minor feature: Add the email alerts feature for commits, 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 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. Added the fossil branch current 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.
2.604 May 2018 14:45 minor feature: a that was causing crashes while trying to clone the TCL Repository. This 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..
2.516 Nov 2017 00:05 minor feature: Fossil now automatically generates the lt;html gt; lt;head gt;... lt;/head gt; lt;body gt; at the beginning of each web page if the configurable header. Lacks a lt;body gt; tag. Upgrade to the latest versions of SQLite and OpenSSL..
2.408 Nov 2017 03:15 minor feature: 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. 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..
1.3515 Jun 2016 06:45 minor feature: 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. backslash-octal escape on filenames while importing from git. When markdown documents begin with lt;h1 gt; 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. 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. Add array exists command.. Add minimal array names command.. Add tcl_platform(engine) and tcl_platform(platform) array. Elements.. Get autosetup working with MinGW. 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-i
1.3403 Nov 2015 13:45 minor feature: 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". 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 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. 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).
1.3215 Mar 2015 11:05 minor feature: 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.
1.3124 Feb 2015 13:05 minor feature: 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 lt;doc class="fossil-doc" gt; are displayed with standard headers and footers added. Allow lt;div style='...' gt; 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 fos
1.31rc119 Feb 2015 23:20 major feature: The next release (1.31) will include a built-in search function, which can scan among check-in comments, configurable documents/file sets, tickets and wiki pages. It needs to be enabled, but may also perform a SQLite full text search (FTS3/FTS4). The timeline now provides some submenu items as dropdown fields for compactness. Skins have been updated and a new default "San Francisco Modern" introduced. Further improvements to some document URLs and rendering behaviour, as well as online documentation enhancements were made. ZIP/Tar downloads are now enabled per default.
1.3020 Jan 2015 02:25 major feature: Added new fossil commands: `bundle`, `purge`, `publish`, `unpublish`, `dbstat` and `all info` commands. The /tree file browser now shows file ages, and /brlist adds additional information and sorting abilities. Also added the /sitemap and /bloblist web page. Update SQLite to version 3.8.8. Docket support added. A new `fusefs` command makes historical checkins accessible as read-only mapped filesystem. A new administrative log records all config changes. The initial checkin is now empty, the first file commit will become the root foosil entry. New options include --verily for the clean command, and "autosync-tries" to limit sync attempts. A compile option --with-miniz can now replace zlib. New "TH1 hooks" provide for custom commands and web pages, and new TH1 functions checkout , render , styleHeader , styleFooter , trace , getParameter , setParameter , artifact , and globalState were added. The console timeline width is adapted to the current terminal size. UTF-8 checkin checks. Line numbers can be toggled for /info and /artifact pages. Unrecognized command line parameters now are warned about consistently. Full SHA1 hashes are used for most internal URLs. On Windows "plink.exe" is now used for SSH connections. Prevent a partial clone when the connection is lost, and a long-standing syncing bug was fixed. Better HTTP behaviour with distinct 301/302 requests, improved chaching for CSS and page logo. Introduced a `files_of_checkin` virtual SQLite table for ad hoc queries. New " secureurl" TH1 variable. Fix CVE-2014-3566, also known as the POODLE SSL 3.0 vulnerability. Numerous documentation fixes and improvements.
1.2926 Jun 2014 21:03 major feature: This release adds UTF16 file display support in the web interface, a "SaveAs..." and "Invert" button to the graphical Tk diff, permission changes to the /reports page, HTTPS tunneling through a plain HTTP proxy, glob parameter support in the filepage, CR handling for diff and stash diff, an option to ignore whitespace for various UI features, the cat command now working outside an active checkout, preferred SHA1 hashes for hyperlinks, whatis now detects attachments and cluster artifacts. Support for HTTP Basic auth on clone and sync, the stash now remembers added files, more server load management support, Haiku supprt, empty repository creation options, optimized sync procedure. And it brought some minor portability fixes for platforms where the char type is unsigned by default.