With the transition of the Tcl/Tk Source Repositories from CVS over to Fossil it becomes necessary to learn a new set of commands. This page was made to help with that, by showing equivalent CVS and Fossil commands.
|Add a file|| touch FOO |
cvs add FOO
| touch FOO |
fossil add FOO
|Remove a file|| rm FOO |
cvs remove FOO
| rm FOO |
fossil rm FOO
|Rename a file|| mv FOO BAR |
cvs remove FOO
cvs add BAR
| mv FOO BAR |
fossil mv FOO BAR
|Show files made and not added||fossil extra|
|Show modified files (incl. deleted)||fossil changes|
|Commit changes||cvs commit||fossil commit|
|Update local working copy||cvs up -Pd||fossil pull |
|Dry run, make no changes||cvs -tn||fossil update --nochange|
|Compare versions||cvs diff||fossil diff (or gdiff) |
Note the relevant "fossil settings"
|Tool version||cvs --version||fossil version|
|History of a file||cvs log FOO||fossil finfo FOO|
CVS has the ability to assemble a checkout from multiple sources, i.e. modules. This handled server side.
While Fossil does not have such a feature it supports something similar on the client side: Nested Fossil Repositories.
# Start with a regular checkout of a project OUTER % mkdir checkout % cd checkout % fossil open /path/to/outer.fossil # Then add the INNER project # Remember, we are in .../checkout here % mkdir inner % cd inner % fossil open --nested /path/to/inner.fossil # Note the --nested option in the last command. This is necessary to make this work.
A more concrete example of this can be found at Tracking Thread Sources with the packages Thread and tclconfig as OUTER and INNER. The usecase driving this was that we wanted to share the same tclconfig across many packages instead of maintaining actual copies per package.
General Note: Fossil has a builtin help system. Invoke it via
For help on specific commands use
fossil help <commandname>