Fossil

Check-in [aef81bf3]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:cli docs
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:aef81bf344e688a620af8db143e54cff1bbbf017
User & Date: kejoki 2008-12-21 16:36:43
Context
2008-12-26
17:36
Require wiki edit privilege in order to edit the Sandbox wiki page, just like any other wiki page. check-in: 2a3e85f2 user: drh tags: trunk
2008-12-21
16:36
cli docs check-in: aef81bf3 user: kejoki tags: trunk
2008-12-20
11:36
Prevent tag cancellations from showing in "fossil tag list" and "fossil tag find", and also on the tagview web page, but make them visible with "--raw" or on the RawTags webpage (admin only). Fixes ticket [f273b440c38eb8478822812e0730f0fc2c8b4c36]. check-in: 7c281b62 user: eric tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to www/cmd_.wiki-template.

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
The <code>foo</code> command is informational, it doesn't do anything to
a checked-out project, but it tells you something about it.

The <code>foo</code> command <<allows you | helps> to> | <ensures that> bar.

The flibenglookners that the foo command <operates on> | <displays> bar.

Typing <code>fossil foo</cod> will gonkulate any flibenglookners, but baz.

What we going to exemplify.

Example.

Raison d'etre.

Compare <code>foo</code> to this here other <code>thingy</code>.

See also: <a href="cmd_bar.wiki">fossil bar</a>,
<a href="cmd_baz.wiki">fossil baz</a>,
<a href="reference.wiki">Reference</a>







|









|
|
|
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
The <code>foo</code> command is informational, it doesn't do anything to
a checked-out project, but it tells you something about it.

The <code>foo</code> command <<allows you | helps> to> | <ensures that> bar.

The flibenglookners that the foo command <operates on> | <displays> bar.

Typing <code>fossil foo</code> will gonkulate any flibenglookners, but baz.

What we going to exemplify.

Example.

Raison d'etre.

Compare <code>foo</code> to this here other <code>thingy</code>.

See also: [./cmd_bar.wiki | fossil bar],
[./cmd_baz.wiki | fossil baz],
[./reference.wiki | Reference]

Added www/cmd_cgi.wiki.







































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<h2>cgi</h2>

<code>cgi</code> is the command that tells fossil it is running as a
web-page supplier for an external http server.  (For you web-miesters,
the "cgi" is actually unnecessary if your web environment is set up in
a normal fashion.)

This is the command you will probably use if you want to make a
moderate-to-high hit rate public repository (like the <b>fossil</b>
project's self-hosted repository) but you'll be using it in the
shebang line.

If you need lower level access to the pages <b>fossil</b> generates,
you'll want to look at the [./cmd_http.wiki | <code>http</code>]
command.

See also: [./cmd_http.wiki | fossil http],
[./concepts.wiki#saserv | <i>Concepts (setting up a server)</i>],
[./reference.wiki | Reference]

Added www/cmd_mv.wiki.

















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<h2>mv | rename</h2>

The <code>mv</code> (alias "<code>rename</code>") command tells
<b>fossil</b> that a file has gone from one external name to another
without changing content.

You could do this by renaming the file in the file system,
[./cmd_rm.wiki | deleting] the old name from the project, and
[./cmd_add.wiki | adding] the new name.  But you would lose the
continuity of the <u>content's</u> history that way.  Using
<code>mv</code> makes the name change a part of the history
maintained by <b>fossil</b>.  You will, of course, need a good
comment somewhere (say, the commit comment) if you want to
remember <em>why</em> you changed the name...  <b>fossil</b>
only maintains history, it doesn't (yet) explain it.

<code>mv</code> is much like the [./cmd_rm.wiki | <code>rm</code>]
command, in that it manipulates <b>fossil</b>'s "idea" of what is
part of the project.  The difference is that <code>mv</code> assumes
you have actually made some change to the file system.

See also: [./cmd_rm.wiki | fossil rm],
[./cmd_add.wiki | fossil add],
[./reference.wiki | Reference]

Added www/cmd_rm.wiki.

















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<h2>del | rm</h2>

The <code>del</code> (alias <code>rm</code>) command takes a "file"
<em>out</em> of a project.

It does <u>not</u> delete the file from the repository, it does
<u>not</u> remove the file from the file system on disk.  It tells
<b>fossil</b> that the file is no longer a part of the project for
which <b>fossil</b> is maintaining the sources.

For example, if you have a nice, clean source tree and use the
[./cmd_extra.wiki | <code>extra</code>] command on it, you won't
get any output.  If you then <code>rm</code> some file and commit
the change, that file will be listed by the <code>extra</code>
command.

The file is still on the disk, and it is still in the repository.
<strong>But</strong> the file <em>is not part of the project</em>
anymore.  Further changes to the file will not be checked in unless
you [./cmd_add.wiki | <code>add</code>] the file again.

It can initially be confusing to see a file that's been "deleted"
still showing up in the files list in the repository, but remember
that the files list currently<a href="#vnote"><sup>*</sup></a> shows
all of the files that have ever been in the repository <em>because
<b>fossil</b> is a source control system and therefore keeps a record
of the history of a project.</em>

To get a list of the files <em>only in the current version</em> of the
project, use the [./cmd_ls.wiki | <code>ls</code>] command.

The <code>del</code> command is the logical opposite of the
[./cmd_add.wiki | <code>add</code>] command, in its single-file-add
form.

<font size="-1"><a name="vnote"><sup>*</sup></a>version 7c281b629a on 20081220</font>

See also: [./cmd_add.wiki | fossil add],
[./cmd_ls.wiki | fossil ls],
[./reference.wiki | Reference]

Changes to www/concepts.wiki.

364
365
366
367
368
369
370
371
372
373
374
375
376
377
378

<p>With other configuration management software, setting up a server is
a lot of work and normally takes time, patience, and a lot of system
knowledge.  Fossil is designed to avoid this frustration.  Setting up
a server with fossil is ridiculously easy.  You have three options:</p>

<ol>
<li><p><b>Setting up a stand-alone server</b></p>

<p>From within your source tree just use the <b>server</b> command and
fossil will start listening for incoming requests on TCP port 8080.
You can point your web browser at <a href="http://localhost:8080/">
http://localhost:8080/</a> and begin exploring.  Or your coworkers
can do pushes or pulls against your server.  Use the <b>--port</b>
option to the server command to specify a different TCP port.  If







|







364
365
366
367
368
369
370
371
372
373
374
375
376
377
378

<p>With other configuration management software, setting up a server is
a lot of work and normally takes time, patience, and a lot of system
knowledge.  Fossil is designed to avoid this frustration.  Setting up
a server with fossil is ridiculously easy.  You have three options:</p>

<ol>
<li><p><b><a name="saserv">S</a>etting up a stand-alone server</b></p>

<p>From within your source tree just use the <b>server</b> command and
fossil will start listening for incoming requests on TCP port 8080.
You can point your web browser at <a href="http://localhost:8080/">
http://localhost:8080/</a> and begin exploring.  Or your coworkers
can do pushes or pulls against your server.  Use the <b>--port</b>
option to the server command to specify a different TCP port.  If

Changes to www/reference.wiki.

12
13
14
15
16
17
18





19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
..
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  *  Fossil cli commands do not use special delimeters, they use spaces.
  This is traditional with VCS/SCM.  Some <i>options</i> to fossil commands
  <i>do</i> use special delimiters, particularly the '-' (hyphen, or dash)
  character.  This is very similar to Tcl.  Think of fossil as a shell you
  invoke and feed a command to, including any options, and it will make
  more sense.






  *  A <u>version</u> in <b>fossil</b> is 40 character hexadecimal string.
  <b>fossil</b> will be able to figure out which version you want with any
  prefix of that string that is distinct from all others.  <em>Commands
  which require a version are looking for that string, the unique prefix,
  or a <code>tag</code>.</em>

  *  Any fossil command is acceptable once enough of it has been
  entered to make the intent unambiguous.  'clo' is a proper prefix of
  both the 'clone' and 'close' commands, for instance, but 'clon' is
  enough to make the intent&#8212;the 'clone' command&#8212;unambiguous.

  You should probably start interacting with fossil at the command line
  by asking it what it can do:&nbsp;&nbsp;&nbsp;&nbsp;<a name="tof">&#710;</a>

  <code>$ fossil help</code><nowiki><pre>
Usage: fossil help COMMAND.
Available COMMANDs:</pre><table width="80%" style="font-family: fixed, courier, monospace; ">
      <tr>
................................................................................
	<td><a href="#redo">redo</a></td>
	<td><a href="#timeline">timeline</a></td>
      </tr>
      <tr>
	<td><a href="#all">all</a>*</td>
	<td><a href="#deconstruct">deconstruct</a></td>
	<td><a href="#ls">ls</a>*</td>
	<td><a href="#mv">rename</a></td>
	<td><a href="#server">ui</a></td>
      </tr>
      <tr>
	<td><a href="#cgi">cgi</a></td>
	<td><a href="#rm">del</a></td>
	<td><a href="#merge">merge</a></td>
	<td><a href="#revert">revert</a></td>
	<td><a href="#undo">undo</a></td>
      </tr>
      <tr>
	<td><a href="#changes">changes</a>*</td>
        <td><a href="#descendants">descendants</a></td>
	<td><a href="#mv">mv</a></td>
	<td><a href="#rm">rm</a></td>
	<td><a href="#setting">unset</a></td>
      </tr>
      <tr>
	<td><a href="#checkout">checkout</a>*</td>
	<td><a href="#diff">diff</a></td>
	<td><a href="#new">new</a>*</td>
	<td><a href="#rstats">rstats</a></td>







>
>
>
>
>






<
<
<
<
<







 







|



|
|







|
|







12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29





30
31
32
33
34
35
36
..
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  *  Fossil cli commands do not use special delimeters, they use spaces.
  This is traditional with VCS/SCM.  Some <i>options</i> to fossil commands
  <i>do</i> use special delimiters, particularly the '-' (hyphen, or dash)
  character.  This is very similar to Tcl.  Think of fossil as a shell you
  invoke and feed a command to, including any options, and it will make
  more sense.

  *  Any fossil command is acceptable once enough of it has been
  entered to make the intent unambiguous.  'clo' is a proper prefix of
  both the 'clone' and 'close' commands, for instance, but 'clon' is
  enough to make the intent&#8212;the 'clone' command&#8212;unambiguous.

  *  A <u>version</u> in <b>fossil</b> is 40 character hexadecimal string.
  <b>fossil</b> will be able to figure out which version you want with any
  prefix of that string that is distinct from all others.  <em>Commands
  which require a version are looking for that string, the unique prefix,
  or a <code>tag</code>.</em>






  You should probably start interacting with fossil at the command line
  by asking it what it can do:&nbsp;&nbsp;&nbsp;&nbsp;<a name="tof">&#710;</a>

  <code>$ fossil help</code><nowiki><pre>
Usage: fossil help COMMAND.
Available COMMANDs:</pre><table width="80%" style="font-family: fixed, courier, monospace; ">
      <tr>
................................................................................
	<td><a href="#redo">redo</a></td>
	<td><a href="#timeline">timeline</a></td>
      </tr>
      <tr>
	<td><a href="#all">all</a>*</td>
	<td><a href="#deconstruct">deconstruct</a></td>
	<td><a href="#ls">ls</a>*</td>
	<td><a href="#mv">rename</a>*</td>
	<td><a href="#server">ui</a></td>
      </tr>
      <tr>
	<td><a href="#cgi">cgi</a>*</td>
	<td><a href="#rm">del</a>*</td>
	<td><a href="#merge">merge</a></td>
	<td><a href="#revert">revert</a></td>
	<td><a href="#undo">undo</a></td>
      </tr>
      <tr>
	<td><a href="#changes">changes</a>*</td>
        <td><a href="#descendants">descendants</a></td>
	<td><a href="#mv">mv</a>*</td>
	<td><a href="#rm">rm</a>*</td>
	<td><a href="#setting">unset</a></td>
      </tr>
      <tr>
	<td><a href="#checkout">checkout</a>*</td>
	<td><a href="#diff">diff</a></td>
	<td><a href="#new">new</a>*</td>
	<td><a href="#rstats">rstats</a></td>