LinuxCommandLibrary

fossil

Manage distributed software configuration and version control

TLDR

Execute a Fossil subcommand

$ fossil [subcommand]
copy

Display help
$ fossil help
copy

Display help for a specific subcommand (like add, commit, etc.)
$ fossil help [subcommand]
copy

Display version
$ fossil version
copy

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.

SEE ALSO

git(1), svn(1), hg(1), sqlite3(1)

Copied to clipboard