Fossil

Fossil FAQ
Login

Fossil FAQ

Frequently Asked Questions

Note: See also Questions and Criticisms.

  1. What GUIs are available for fossil?
  2. What is the difference between a "branch" and a "fork"?
  3. How do I create a new branch in fossil?
  4. How do I create a private branch that won't get pushed back to the main repository.
  5. How can I delete inappropriate content from my fossil repository?
  6. How do I make a clone of the fossil self-hosting repository?

(1) What GUIs are available for fossil?

The fossil executable comes with a web-based GUI built in. Just run:
fossil ui REPOSITORY-FILENAME

And your default web browser should pop up and automatically point to the fossil interface. (Hint: You can omit the REPOSITORY-FILENAME if you are within an open check-out.)

(2) What is the difference between a "branch" and a "fork"?

This is a big question - too big to answer in a FAQ. Please read the Branching, Forking, Merging, and Tagging document.

(3) How do I create a new branch in fossil?

There are lots of ways:

When you are checking in a new change using the commit command, you can add the option "--branch BRANCH-NAME" to make the change be the founding check-in for a new branch. You can also add the "--bgcolor COLOR" option to give the branch a specific background color on timelines.

If you want to create a new branch whose founding check-in is the same as an existing check-in, use this command:

fossil branch new BRANCH-NAME BASIS

The BRANCH-NAME argument is the name of the new branch and the BASIS argument is the name of the check-in that the branch splits off from.

If you already have a fork in your check-in tree and you want to convert that fork to a branch, you can do this from the web interface. First locate the check-in that you want to be the founding check-in of your branch on the timeline and click on its link so that you are on the ci page. Then find the "edit" link (near the "Commands:" label) and click on that. On the "Edit Check-in" page, check the box beside "Branching:" and fill in the name of your new branch to the right and press the "Apply Changes" button.

(4) How do I create a private branch that won't get pushed back to the main repository.

Use the --private command-line option on the commit command. The result will be a check-in which exists on your local repository only and is never pushed to other repositories. All descendents of a private check-in are also private.

Unless you specify something different using the --branch and/or --bgcolor options, the new private check-in will be put on a branch named "private" with an orange background color.

You can merge from the trunk into your private branch in order to keep your private branch in sync with the latest changes on the trunk. Once you have everything in your private branch the way you want it, you can then merge your private branch back into the trunk and push. Only the final merge operation will appear in other repositories. It will seem as if all the changes that occurred on your private branch occurred in a single check-in. Of course, you can also keep your branch private forever simply by not merging the changes in the private branch back into the trunk.

(5) How can I delete inappropriate content from my fossil repository?

See the article on "shunning" for details.

(6) How do I make a clone of the fossil self-hosting repository?

Any of the following commands should work:
fossil  clone  http://www.fossil-scm.org/  fossil.fossil
fossil clone http://www2.fossil-scm.org/ fossil.fossil
fossil clone http://www.hwaci.com/cgi-bin/fossil fossil.fossil
Once you have the repository cloned, you can open a local check-out as follows:
mkdir src; cd src; fossil open ../fossil.fossil
Thereafter you should be able to keep your local check-out up to date with the latest code in the public repository by typing:
fossil update