The "tag" command:
Usage: fossil tag SUBCOMMAND ...
Run various subcommands to control tags and properties.
fossil tag add ?OPTIONS? TAGNAME CHECK-IN ?VALUE?
Add a new tag or property to CHECK-IN. The tag will
be usable instead of a CHECK-IN in commands such as
update and merge. If the --propagate flag is present,
the tag value propagates to all descendants of CHECK-IN
--raw Raw tag name.
--propagate Propagating tag.
--date-override DATETIME Set date and time added.
--user-override USER Name USER when adding the tag.
--dryrun|-n Display the tag text, but do not
actually insert it into the database.
The --date-override and --user-override options support
importing history from other SCM systems. DATETIME has
the form 'YYYY-MMM-DD HH:MM:SS'.
fossil tag cancel ?--raw? TAGNAME CHECK-IN
Remove the tag TAGNAME from CHECK-IN, and also remove
the propagation of the tag to any descendants. Use the
the --dryrun or -n options to see what would have happened.
fossil tag find ?OPTIONS? TAGNAME
List all objects that use TAGNAME. TYPE can be "ci" for
check-ins or "e" for events. The limit option limits the number
of results to the given value.
--raw Raw tag name.
-t|--type TYPE One of "ci", or "e".
-n|--limit N Limit to N results.
fossil tag list|ls ?--raw? ?CHECK-IN?
List all tags, or if CHECK-IN is supplied, list
all tags and their values for CHECK-IN.
The option --raw allows the manipulation of all types of tags
used for various internal purposes in fossil. It also shows
"cancel" tags for the "find" and "list" subcommands. You should
not use this option to make changes unless you are sure what
you are doing.
If you need to use a tagname that might be confused with
a hexadecimal baseline or artifact ID, you can explicitly
disambiguate it by prefixing it with "tag:". For instance:
fossil update decaf
will be taken as an artifact or baseline ID and fossil will
probably complain that no such revision was found. However
fossil update tag:decaf
will assume that "decaf" is a tag/branch name.