The checkout command is how a project version goes from the repository to the chosen project directory.

Without going into detail about getting/opening a repository, once you have a repository and a place in which the repository has been opened, you can "check out" a "version" of the files which make up the repository at somewhen.

The term "checkout" is traditional in source management systems, but a bit of an anachronism in a distributed system like fossil. "Checking out" a version of a project means getting all of the source artifacts out into the standard environment---currently the shell/file-system.

Traditionally, the version is some "incrementing" code like v1.3.2rcQuink or f451 or something. In distributed SCM systems it's some absolutely unique identifier, usually the result of a one-way hash (SHA1, in fossil's case.) The fossil term for these is artifact IDs.

fossil checkout  id will check out the version corresponding to id into the source tree.

checkout requires you to pick a precise version to put into the "on-disk" source tree, and leaves any edited files which are already in the tree intact.

update, on the other hand, merges edits into the version you choose (if you choose one; you can default the version.)

Since a version is required, and fossil's artifact IDs are fairly long, there are two good ways to refer to the version. You can use a unique proper prefix of the version (six or eight characters is more than enough in most cases) or you can tag your check-ins and use the tags for checkouts, reverting, branching (tags are the best way to branch) and so forth. Both methods work throughout fossil.

See also fossil tag, fossil revert, fossil update, fossil push, fossil pull, fossil clone, fossil open, fossil close, fossil new, Reference