LinuxCommandLibrary

fossil

Manage distributed software configuration and version control

TLDR

Initialize a new empty Fossil repository

$ fossil init [repository_name.fossil]
copy

Create a local copy of a remote repository
$ fossil clone [remote_url]
copy

Show an overview of the current repository state
$ fossil status
copy

Stage a new file
$ fossil add [path/to/file]
copy

Stage a file for removal
$ fossil [[rm|delete]] [path/to/file]
copy

Check in all staged changes
$ fossil [[ci|commit]] [[-m|--comment]] "[comment]"
copy

Push changes from the local repository to a remote repository
$ fossil push [remote_url]
copy

Pull changes from a remote repository into the local repository
$ fossil pull [remote_url]
copy

SYNOPSIS

fossil subcommand [options] [arguments]

PARAMETERS

-h|--help
    Show detailed help for the command

-V|--version
    Display Fossil version information

-R|--repository FILE
    Use FILE as repository database

--workdir DIR
    Use DIR as checkout working directory

-v|--verbose N
    Increase verbosity level (1-3)

-q|--quiet
    Reduce verbosity

--args FILE
    Read additional command args from FILE

-N|--no-prompt
    Skip interactive prompts

--stdout
    Send output to stdout instead of browser

--localauth
    Grant privileges to local users

DESCRIPTION

Fossil is a self-contained, distributed software configuration management (SCM) system. It combines version control, a built-in wiki, issue tracker (tickets), and forum into a single executable with no external dependencies. Repositories are stored in compact, single-file .fossil databases, making backups and transfers simple.

Key features include: distributed development (clone, push, pull), branch management, tags, built-in web interface (fossil ui), autosync, and extensive help. It's designed for simplicity and reliability, avoiding the complexity of tools like Git. Fossil powers projects like SQLite, where it's the official VCS.

Usage revolves around subcommands like clone, open, commit, and ui. Global options apply across commands, such as specifying repositories. Ideal for small teams or solo developers seeking an all-in-one tool without server setup.

CAVEATS

Not installed by default on Linux; requires separate installation (e.g., via package manager or binary download). Single-file repos aid portability but may complicate large binary files. Web UI requires port access.

COMMON SUBCOMMANDS

ui - Launch web interface
clone URL - Clone remote repo
open REPO.fossil - Open local repo
commit [-m MSG] - Commit changes
update - Update working directory
push - Push changes remotely

GETTING STARTED

Install Fossil, then fossil clone https://example.com/repo.fossil, followed by cd repo; fossil open ../repo.fossil; fossil ui.

HISTORY

Created by D. Richard Hipp (SQLite author) in 2007 as a simpler alternative to CVS/SVN. First public release in 2008. Evolved with features like tickets (2010) and JSON API (2014). Actively maintained; used by SQLite project since inception.

SEE ALSO

git(1), hg(1), svn(1), bzr(1)

Copied to clipboard