1<title>Fossil FAQ</title>
2<h1 align="center">Frequently Asked Questions</h1>
3
4<p>Note: See also <a href="qandc.wiki">Questions and Criticisms</a>.
5
6<ol>
7<li><a href="#q1">What GUIs are available for fossil?</a></li>
8<li><a href="#q2">What is the difference between a "branch" and a "fork"?</a></li>
9<li><a href="#q3">How do I create a new branch?</a></li>
10<li><a href="#q4">How do I tag a check-in?</a></li>
11<li><a href="#q5">How do I create a private branch that won't get pushed back to the
12  main repository.</a></li>
13<li><a href="#q6">How can I delete inappropriate content from my fossil repository?</a></li>
14<li><a href="#q7">How do I make a clone of the fossil self-hosting repository?</a></li>
15<li><a href="#q8">How do I import or export content from and to other version control systems?</a></li>
16</ol>
17<hr>
18<p id="q1"><b>(1) What GUIs are available for fossil?</b></p>
19
20<blockquote>The fossil executable comes with a [./webui.wiki | web-based GUI] built in.
21Just run:
22
23<blockquote>
24<b>fossil [/help/ui|ui]</b> <i>REPOSITORY-FILENAME</i>
25</blockquote>
26
27And your default web browser should pop up and automatically point to
28the fossil interface.  (Hint:  You can omit the <i>REPOSITORY-FILENAME</i>
29if you are within an open check-out.)</blockquote></li>
30
31<p id="q2"><b>(2) What is the difference between a "branch" and a "fork"?</b></p>
32
33<blockquote>This is a big question - too big to answer in a FAQ.  Please
34read the <a href="branching.wiki">Branching, Forking, Merging,
35and Tagging</a> document.</blockquote></li>
36
37<p id="q3"><b>(3) How do I create a new branch?</b></p>
38
39<blockquote>There are lots of ways:
40
41When you are checking in a new change using the <b>[/help/commit|commit]</b>
42command, you can add the option  "--branch <i>BRANCH-NAME</i>" to
43make the new check-in be the first check-in for a new branch.
44
45If you want to create a new branch whose initial content is the
46same as an existing check-in, use this command:
47
48<blockquote>
49<b>fossil [/help/branch|branch] new</b> <i>BRANCH-NAME BASIS</i>
50</blockquote>
51
52The <i>BRANCH-NAME</i> argument is the name of the new branch and the
53<i>BASIS</i> argument is the name of the check-in that the branch splits
54off from.
55
56If you already have a fork in your check-in tree and you want to convert
57that fork to a branch, you can do this from the web interface.
58First locate the check-in that you want to be
59the initial check-in of your branch on the timeline and click on its
60link so that you are on the <b>ci</b> page.  Then find the "<b>edit</b>"
61link (near the "Commands:" label) and click on that.  On the
62"Edit Check-in" page, check the box beside "Branching:" and fill in
63the name of your new branch to the right and press the "Apply Changes"
64button.</blockquote></li>
65
66<p id="q4"><b>(4) How do I tag a check-in?</b></p>
67
68<blockquote>There are several ways:
69
70When you are checking in a new change using the <b>[/help/commit|commit]</b>
71command, you can add a tag to that check-in using the
72"--tag <i>TAGNAME</i>" command-line option.  You can repeat the --tag
73option to give a check-in multiple tags.  Tags need not be unique.  So,
74for example, it is common to give every released version a "release" tag.
75
76If you want add a tag to an existing check-in, you can use the
77<b>[/help/tag|tag]</b> command.  For example:
78
79<blockquote>
80<b>fossil [/help/branch|tag] add</b> <i>TAGNAME</i> <i>CHECK-IN</i>
81</blockquote>
82
83The CHECK-IN in the previous line can be any
84[./checkin_names.wiki | valid check-in name format].
85
86You can also add (and remove) tags from a check-in using the
87[./webui.wiki | web interface].  First locate the check-in that you
88what to tag on the timeline, then click on the link to go the detailed
89information page for that check-in.  Then find the "<b>edit</b>"
90link (near the "Commands:" label) and click on that.  There are
91controls on the edit page that allow new tags to be added and existing
92tags to be removed.</blockquote></li>
93
94<p id="q5"><b>(5) How do I create a private branch that won't get pushed back to the
95  main repository.</b></p>
96
97<blockquote>Use the <b>--private</b> command-line option on the
98<b>commit</b> command.  The result will be a check-in which exists on
99your local repository only and is never pushed to other repositories.
100All descendants of a private check-in are also private.
101
102Unless you specify something different using the <b>--branch</b> and/or
103<b>--bgcolor</b> options, the new private check-in will be put on a branch
104named "private" with an orange background color.
105
106You can merge from the trunk into your private branch in order to keep
107your private branch in sync with the latest changes on the trunk.  Once
108you have everything in your private branch the way you want it, you can
109then merge your private branch back into the trunk and push.  Only the
110final merge operation will appear in other repositories.  It will seem
111as if all the changes that occurred on your private branch occurred in
112a single check-in.
113Of course, you can also keep your branch private forever simply
114by not merging the changes in the private branch back into the trunk.
115
116[./private.wiki | Additional information]</blockquote></li>
117
118<p id="q6"><b>(6) How can I delete inappropriate content from my fossil repository?</b></p>
119
120<blockquote>See the article on [./shunning.wiki | "shunning"] for details.</blockquote></li>
121
122<p id="q7"><b>(7) How do I make a clone of the fossil self-hosting repository?</b></p>
123
124<blockquote>Any of the following commands should work:
125<blockquote><pre>
126fossil [/help/clone|clone]  http://fossil-scm.org/  fossil.fossil
127fossil [/help/clone|clone]  http://www2.fossil-scm.org/  fossil.fossil
128fossil [/help/clone|clone]  http://www3.fossil-scm.org/site.cgi  fossil.fossil
129</pre></blockquote>
130Once you have the repository cloned, you can open a local check-out
131as follows:
132<blockquote><pre>
133mkdir src; cd src; fossil [/help/open|open] ../fossil.fossil
134</pre></blockquote>
135Thereafter you should be able to keep your local check-out up to date
136with the latest code in the public repository by typing:
137<blockquote><pre>
138fossil [/help/update|update]
139</pre></blockquote></blockquote></li>
140
141<p id="q8"><b>(8) How do I import or export content from and to other version control systems?</b></p>
142
143<blockquote>Please see [./inout.wiki | Import And Export]</blockquote></li>
144
145</ol>
146