fossil
Manage distributed software configuration and version control
TLDR
Execute a Fossil subcommand
Display help
Display help for a specific subcommand (like add, commit, etc.)
Display version
SYNOPSIS
fossil [global-options] <subcommand> [subcommand-options] [arguments]
PARAMETERS
init
Creates a new, empty Fossil repository file.
clone
Creates a local copy of a remote Fossil repository.
open
Opens an existing repository file and creates a working directory.
add
Adds files or directories to the current checkout.
commit
Records changes from the working directory into the repository.
pull
Fetches changes from a remote repository.
push
Sends local changes to a remote repository.
status
Displays the status of files in the current checkout.
web
Starts the built-in web server for the repository.
ui
Opens the web interface in a browser (alias for 'web --browse').
--repository <file>
Specifies the repository file to use instead of the default.
--chdir <dir>
Changes the current directory before processing the command.
DESCRIPTION
Fossil is a simple, distributed, self-contained software configuration management system. It integrates version control, a bug tracking system, a wiki, and a forum into a single, compact binary. Developed by D. Richard Hipp, the creator of SQLite, Fossil stores an entire project's history, including code, wiki pages, forum posts, and bug reports, within a single SQLite database file. Its design emphasizes ease of deployment, minimal dependencies, and robustness, making it suitable for small to medium-sized projects. Fossil includes a powerful built-in web interface for browsing repositories, managing tickets, and interacting with the wiki and forum, accessible directly from the command line. It supports both centralized and distributed workflows, allowing developers to clone repositories, commit changes locally, and then push/pull updates between repositories.
CAVEATS
Fossil is less widely adopted than Git or Mercurial, which may mean fewer community resources and integrations. While distributed, its typical usage often leans towards a centralized hub model due to its integrated project management features. Performance for very large binary files or extremely massive repositories might not match specialized version control systems.
INTEGRATED PROJECT MANAGEMENT
Fossil is unique in bundling version control with a wiki, bug tracking, and a forum into a single repository file and a single executable. This significantly simplifies project setup and management for small to medium-sized teams, fostering a complete project ecosystem.
SINGLE FILE REPOSITORY
All project data, including code history, wiki content, tickets, and forum discussions, is stored within a single SQLite database file. This design makes backup, cloning, and archiving extremely straightforward and simplifies repository management.
BUILT-IN WEB INTERFACE
Fossil includes a powerful and fully functional web interface that can be launched directly from the command line using the web or ui subcommands. This allows users to browse the repository, view file history, manage tickets, and interact with the wiki and forum using just a web browser, without needing a separate web server setup.
HISTORY
Fossil was created by D. Richard Hipp, the primary author of SQLite, starting around 2007-2008. His motivation was to develop a robust, self-contained, and easy-to-deploy SCM that also integrated project management tools like a wiki and bug tracker, similar to how he managed SQLite's development. It was designed to be simple, reliable, and to have minimal external dependencies, compiling into a single executable. Fossil is self-hosting, meaning its own source code is managed using Fossil itself. It has gained traction among projects that prioritize simplicity, single-file distribution, and integrated project management features, especially those that appreciate the robustness and simplicity of SQLite.