Fossil quick reference
A typical Fossil workflow
Edit source files. If you create new files, add them with
fossil add. If you delete existing files, also delete them with
fossil rm. If you rename files, also rename them
When you have finished doing whatever you are doing (fixing a bug, adding a feature, etc.), run
If you forget where you're at, run
fossil uiand look at the timeline; it will show all the changes you (and anyone else) has made.
Fossil essential commands
filenames-- Add newly created files to the current checkin, so that Fossil knows about them. You can use multiple filenames and wildcards.
file1 file2-- Rename in the checkin file1 to file2. You can do this before or after you rename the file "for real" in the filesystem.
filenames-- Remove filenames from the current checkin, so that changes to them will no longer be tracked.
fossil commit-- Commit any changed/added/moved/deleted files to the repository, as a new checkin. You will be prompted for a checkin comment, which you should use to describe your changes. (Note that
commitwill also sync your repository with the central copy, pulling in any changes that other users have made. These changes will not automatically be applied to your source tree; run
fossil updatefor that.)
fossil update-- Download any changes from the central repository, and update the source tree to the current version.
fossil extras-- Lists any files in the source tree that are not part of the checkin. Just to make sure that you've added all the files that should be there.
fossil status-- Print the status of the source tree and repository (e.g., current checkin, pending changes, etc.).
fossil ui-- Open a local webserver, providing the web interface (the same one you are viewing right now!) to your local repository. Press
A note about "autosync": Although Fossil is technically a distributed VCS, it defaults to "autosync mode". This basically means that any commands that would change the local repository will also attempt to run
fossil sync to synchronize those changes with the central repository. If you are offline for some reason, the sync will fail. That's OK; just run
fossil sync manually the next time you are online, and any changes you have made will be pushed to the central repo (and other peoples' changes will be pulled to you).
I should mention that since I've only ever used Fossil by myself, I have (almost) no idea what happens when you have a merge conflict (two people changing the same file and then trying to commit their conflicting changes). I seem to remember that whoever commits last basically gets copies of both versions, and thus is responsible for integrating the two versions of the file. But I guess we'll cross that bridge when we come to it.