Fossil is a single-EXE, cross-platform, distributed source control management program written by SQLite author Dr. Richard Hipp. Unsurprisingly, data is saved in an SQLite database file, making it very easy to back up.
1. Fossil SCM -For the Enterprise
Brought to you by @fulstacker
1
2. Fossil key features
1. Fully Integrated Bug Tracking, Wiki, and Technotes
2. Built-in Web Interface
3. Self-Contained
4. Simple Networking - http(s) / SSH
5. Fully Flexible : Four ways of server configuration
6. AutoSync
7. Roboust and Reliable
8. Free and Open Source - BSD License
2
3. The Concept
Fossil is a single-EXE, cross-platform, distributed source control management program written by SQLite author
Dr. Richard Hipp. Unsurprisingly, data is saved in an SQLite database file, making it very easy to back up. A project resides
in one or more repositories. Each change ("commit", a.k.a. check-in) is identified by an "artifact ID", which can refer either
to a specific change made to a specific file, or to the whole commit."At its lowest level, a Fossil repository consists of an
unordered set of immutable "artifacts". You might think of these artifacts as "files", since in many cases the artifacts
exactly correspond to source code files that are stored in the Fossil repository. But other "control artifacts" are also
included in the mix. These control artifacts define the relationships between artifacts - which files go together to form a
particular version of the project, who checked in that version and when, what was the check-in comment, what wiki
pages are included with the project, what are the edit histories of each wiki page, what bug reports or tickets are
included, who contributed to the evolution of each ticket, and so forth, and so on."
3
4. Main commands for local use
add: Adds new files to the next commit; must run "commit" afterwards for
this file to actually be added to the repository
changes: Shows changes made to files in the work directory; if no output,
it means that no checked out files have been modified yet
close: Closes the connection to the repo, ie. the _FOSSIL_ file in the work
directory
commit: Saves all changes to the repository, eg. add/remove files, add
changes, etc.
extras: Lists files in the work directory and below that Fossil doesn't
track, because they haven't been added and commited to the repo
info: Provides information about the current tree (if no argument given)
or a particular object (otherwise). See "changes" and "status"
finfo: Infos on a specific file
info: Infos about the repo
ls: Lists files that Fossil tracks
new: Creates a new repo
open: Opens the connection to the repo, creating a _FOSSIL_ file in the
current work directory
mv: Same as "rename"
revert: Forgets changes to one or all files that haven't been commited
yet
rm: Same as "delete". Deletes files from the repository (but not from the
work directory). From now on, the file(s) will no longer be part of the
repository, altough all versions until then are still available
search: Searches for any comment that matches the pattern
status: Same as "changes", but with additional infos about changes made
to checked-out files, if any, ie. status = info + changes
tag: Add a tag to a revision. Can be used either when commiting changes
or later
undo: Cancels "revert"
4
5. Up and running in 5mn as a single user
cd c:
fossil new sample.repo
cd c:temp
fossil open c:sample.repo
notepad dummy.c
mkdir test
cd test
notepad dummy2.c
fossil add .
fossil commit -m "Original files"
notepad dummy2.c
fossil changes
fossil commit -m "Edited
testdummy2.c.
5