108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
can type commands like the following to find out the status of
your local tree:</p>
<blockquote>
<b>fossil info</b><br>
<b>fossil status</b><br>
<b>fossil changes</b><br>
<b>fossil timeline</b><br>
<b>fossil leaves</b><br>
<b>fossil ls</b><br>
<b>fossil branch list</b><br>
</blockquote>
</blockquote><h2>Configuring Your Local Repository</h2><blockquote>
<p>When you create a new repository, either by cloning an existing
project or create a new project of your own, you usually want to do some
local configuration. This is easily accomplished using the webserver
that is built into fossil. Start the fossil webserver like this:</p>
<blockquote>
<b>fossil ui </b><i> repository-filename</i>
</blockquote>
<p>(Note that this requires you to have checked out a local tree
beforehand.)</p>
<p>This starts a web server then automatically launches your
web browser and makes it point to this web server. If your system
has an unusual configuration, fossil might not be able to figure out
how to start your web browser. In that case, first tell fossil
where to find your web browser using a command like this:</p>
|
>
<
|
|
|
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
can type commands like the following to find out the status of
your local tree:</p>
<blockquote>
<b>fossil info</b><br>
<b>fossil status</b><br>
<b>fossil changes</b><br>
<b>fossil diff</b><br>
<b>fossil timeline</b><br>
<b>fossil ls</b><br>
<b>fossil branch list</b><br>
</blockquote>
</blockquote><h2>Configuring Your Local Repository</h2><blockquote>
<p>When you create a new repository, either by cloning an existing
project or create a new project of your own, you usually want to do some
local configuration. This is easily accomplished using the webserver
that is built into fossil. Start the fossil webserver like this:</p>
<blockquote>
<b>fossil ui </b><i> repository-filename</i>
</blockquote>
<p>You can omit the <i>repository-filename</i> from the command above
if you are inside a checked-out local tree.</p>
<p>This starts a web server then automatically launches your
web browser and makes it point to this web server. If your system
has an unusual configuration, fossil might not be able to figure out
how to start your web browser. In that case, first tell fossil
where to find your web browser using a command like this:</p>
|
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
your changes, type:</p>
<blockquote>
<b>fossil commit</b>
</blockquote>
<p>You will be prompted for check-in comments using whatever editor
is specified by your VISUAL or EDITOR environment variable. If you
have GPG installed, you may be prompted for your GPG passphrase so
that the check-in can be signed with your GPG signature. After
this your changes will be checked in.</p>
</blockquote><h2>Sharing Changes</h2><blockquote>
<p>The changes you <b>commit</b> are only on your local repository.
To share those changes with other repositories, do:</p>
<blockquote>
|
|
<
<
<
|
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
your changes, type:</p>
<blockquote>
<b>fossil commit</b>
</blockquote>
<p>You will be prompted for check-in comments using whatever editor
is specified by your VISUAL or EDITOR environment variable.</p>
</blockquote><h2>Sharing Changes</h2><blockquote>
<p>The changes you <b>commit</b> are only on your local repository.
To share those changes with other repositories, do:</p>
<blockquote>
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
|
</blockquote>
<p>When you pull in changes from others, they go into your repository,
not into your checked-out local tree. To get the changes into your
local tree, use <b>update</b>:</p>
<blockquote>
<b>fossil update</b> <i>AID</i>
</blockquote>
<p>The <i>AID</i> is some unique abbreviation to the 40-character
artifact identifier (AID) for a particular check-in. If you omit
the <i>AID</i> fossil moves you to the
leaf version of the branch your are currently on. If your branch
has multiple leaves, you get an error - you'll have to specify the
leaf you want using a <i>AID</i> argument.</p>
</blockquote><h2>Branching And Merging</h2><blockquote>
<p>You can create branches by doing multiple commits off of the
same base version. To merge to branches back together, first
<b>update</b> to the leaf of one branch. Then do a <b>merge</b>
of the leaf of the other branch:</p>
<blockquote>
<b>fossil merge</b> <i>AID</i>
</blockquote>
<p>Test to make sure your merge didn't mess up the code, then
<b>commit</b> and possibly also <b>push</b> your changes. Remember
that nobody else can see your changes until you <b>commit</b> and
if other are using a different repository you will also need to
<b>push</b>.</p>
<a name="serversetup"></a>
</blockquote><h2>Setting Up A Server</h2><blockquote>
<p>The easiest way to set up a server is:</p>
<blockquote>
|
|
>
|
|
>
>
|
|
<
<
|
>
>
>
>
>
>
>
>
>
|
>
>
|
>
>
|
>
>
>
|
>
>
>
>
>
|
|
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
</blockquote>
<p>When you pull in changes from others, they go into your repository,
not into your checked-out local tree. To get the changes into your
local tree, use <b>update</b>:</p>
<blockquote>
<b>fossil update</b> <i>VERSION</i>
</blockquote>
<p>The <i>VERSION</i> can be the name of a branch or tag or any
abbreviation to the 40-character
artifact identifier for a particular check-in, or it can be a
date/time stamp. (<a href="./checkin_names.wiki">More information</a>.)
If you omit
the <i>VERSION</i>, then fossil moves you to the
latest version of the branch your are currently on.</p>
</blockquote><h2>Branching And Merging</h2><blockquote>
<p>You can create branches by doing multiple commits off of the
same base version. To merge to branches back together, first
<b>update</b> to the leaf of one branch. Then do a <b>merge</b>
of the leaf of the other branch:</p>
<blockquote>
<b>fossil merge</b> <i>VERSION</i>
</blockquote>
<p>The <i>VERSION</i> can be any of the forms allowed for <b>update</b>.
After performing the merge, you will normally want to test it to
make sure it does not break anything, then
<b>commit</b> your chagnes. In the default configuration, the <b>commit</b>
command will also automatically <b>push</b> your changes, but that
feature can be disabled. (More information about
<a href="concepts.wiki#workflow">autosync</a> and how to disable it.)
Remember that your coworkers can not see your changes until you
<b>commit</b> and <b>push</b> them.</p>
<p>The merge command has options to cherrypick individual
changes, or to back out individual changes.</p>
<p>If a merge or update doesn't work out (perhaps something breaks or
there are many merge conflicts) then you back up using:</p>
<blockquote>
<b>fossil undo</b>
</blockquote>
<p>This will back out the changes that the merge or update made to the
working checkout. There is also a <b>redo</b> command if you undo by
mistake. Undo and redo only work for changes that have
not yet been checked in using <b>commit</b> and there is only a single
level of undo/redo.</p>
<a name="serversetup"></a>
</blockquote><h2>Setting Up A Server</h2><blockquote>
<p>The easiest way to set up a server is:</p>
<blockquote>
|