Fossil

Check-in [98f1131c]
Login

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

Overview
Comment:Additional documentation, especially notes on how to contribute code or documentation to Fossil.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:98f1131c0d8059d0818ca97258fe94cc36c6c4c3
User & Date: drh 2011-02-18 00:52:55
References
2011-09-08
22:30 Fixed ticket [15dfbde7]: Question for FAQ: how to contribute to Fossil? plus 2 other changes artifact: 0252c618 user: dmitry
Context
2011-02-18
01:03
Fix typo and make enhancements to the build-process document. Add file omitted from the previous commit. (I should follow my own checklist more closely!) check-in: 2a02aa49 user: drh tags: trunk
00:52
Additional documentation, especially notes on how to contribute code or documentation to Fossil. check-in: 98f1131c user: drh tags: trunk
2011-02-17
22:43
Add a new contributor agreement that is based loosely on the Oracle CLA. check-in: 252e83d9 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to www/build.wiki.

68
69
70
71
72
73
74
75

76
77
78
79
80
81
82
run "<b>make -f win/Makefile.mingw</b>" instead of just "<b>make</b>"
in step 8 above.</p>

<h2>3.0 Installing</h2>

<ol>
<li value="9">
<p>The finished binary is named "fossil".  Put this binary in a 

directory that is somewhere on your PATH environment variable.
It does not matter where.</p>

<li>
<p><b>(Optional:)</b>
To uninstall, just delete the binary.</p>
</ol>







|
>







68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
run "<b>make -f win/Makefile.mingw</b>" instead of just "<b>make</b>"
in step 8 above.</p>

<h2>3.0 Installing</h2>

<ol>
<li value="9">
<p>The finished binary is named "fossil" (or "fossil.exe" on windows).  
Put this binary in a 
directory that is somewhere on your PATH environment variable.
It does not matter where.</p>

<li>
<p><b>(Optional:)</b>
To uninstall, just delete the binary.</p>
</ol>

Added www/checkin.wiki.











































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<title>Checkin Checklist</title>

Before every checkins:

  1.   <b>fossil diff</b> &rarr; no stray changes

  2.   <b>fossil extra</b> &rarr; no unmanaged files need to be added.

  3.   The checkin will go onto the desired branch.

  4.   "Autosync" is enabled &rarr;
       <ol>
       <li> The checkin will not cause a unintentional fork.
       <li> The local system clock is set correctly.
       </ol>

Before every checkin to <b>trunk</b>:

  5.   No compiler warnings on the development machine.

  6.   Changes will not cause problems on a future <b>bisect</b>.

Added www/contribute.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
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<title>Contributing To Fossil</title>

Users are encouraged to contributed enhancements back to the Fossil
project.  This note outlines some of the procedures for making
useful contributions.

<h2>1.0 Contributor Agreement</h2>

In order your contributions, we <u>must</u> have a
[./copyright-release.pdf | Contributor Agreement (PDF)]
(or [./copyright-release.html | as HTML]) on file for you.  We require
this in order to maintain clear title to the Fossil code and prevent
the introduction of code with incompatible licenses or other entanglements
that might cause legal problems for Fossil users.  Many larger companies
and other lawyer-rich organizations require this as a precondition to using 
Fossil.

If you do not wish to submit a Contributor Agreement, we would still
welcome your suggestions and example code, but we will not use your code
directly - we will be forced to reimplement your changes from scratch which
might take longer.

<h2>2.0 Submitting Patches</h2>

Suggested changes or bug fixes can be submitted by creating a patch
against the current source tree.  Email patches to 
<a href="mailto:drh@sqlite.org">drh@sqlite.org</a>.  Be sure to 
describe in detail what the patch does and which version of Fossil
it is written against.  

A contributor agreement is not strictly necessary to submit a patch.
However, without a contributor agreement on file, your patch will be
used for reference only - it will not be applied to the code.  This
may delay acceptance of your patch.

Your patches or changes might not be accepted even if you do have
a contributor agreement on file.  Please do not take this personally
or as an affront to your coding ability.  Sometimes patches are rejected
because they seem to be taking the project in a direction that the
architect does not want to go.  Or, there might be an alternative
implementation of the same feature being prepared separately.

<h2>3.0 Check-in Privileges</h2>

Check-in privileges are granted on a case-by-case basis.   Your chances
of getting check-in privileges are much improved if you have a history
of submitting quality patches and/or making thoughtful posts on the
[http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/ | mailing list].
A contributor agreement is, of course, a prerequisite for check-in
privileges.</p>

Contributors are asked to make all non-trivial changes on a branch.  The
Fossil Architect (Richard Hipp) will merge changes onto the trunk.</p>

Contributors are required to following the
[./checkin.wiki | pre-checkin checklist] prior to every checkin to
the Fossil self-hosting repository.  This checklist is short and succinct
and should only require a few seconds to follow.  Contributors 
should print out a copy of the pre-checkin checklist and keep
it on a notecard beside their workstations, for quick reference.

Contributors should review the
[./style.wiki | Coding Style Guidelines] and mimic the coding style
used through the rest of the Fossil source code.  Your code should
blend in.  A third-party reader should be unable to distinguish your
code from any other code in the source corpus. 

<h2>4.0 Testing</h2>

Fossil has the beginnings of a 
[../test/release-checklist.wiki | release checklist] but this is an
area that needs further work.  (Your contributions here are welcomed!)
Contributors with check-in privileges are expected to run the release
checklist on any major changes they contribute, and if appropriate expand
the checklist and/or the automated test scripts to cover their additions.


<h2>5.0 See Also</h2>

  *  [./build.wiki | How To Build And Install Fossil]
  *  [./makefile.wiki | The Fossil Build Process]
  *  [./tech_overview.wiki | A Technical Overview of Fossil]

Changes to www/index.wiki.

138
139
140
141
142
143
144


145
146
147
148
149
150
151
152
153
154
  *  Customizing the [./custom_ticket.wiki | ticket system].
  *  Methods to [./checkin_names.wiki | identify a specific check-in].
  *  [./inout.wiki | Import and export] from and to Git.
  *  [./fossil-v-git.wiki | Fossil versus Git].

<h3>Links For Fossil Developer:</h3>



  *  [./theory1.wiki | Thoughts On The Design Of Fossil].
  *  [./pop.wiki | Principles Of Operation]
  *  [./tech_overview.wiki | A Technical Overview Of Fossil].
  *  The [./fileformat.wiki | file format] used by every content
     file stored in the repository.
  *  The [./delta_format.wiki | format of deltas] used to
     efficiently store changes between file revisions.
  *  The [./delta_encoder_algorithm.wiki | encoder algorithm] used to
     efficiently generate deltas.
  *  The [./sync.wiki | synchronization protocol].







>
>










138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
  *  Customizing the [./custom_ticket.wiki | ticket system].
  *  Methods to [./checkin_names.wiki | identify a specific check-in].
  *  [./inout.wiki | Import and export] from and to Git.
  *  [./fossil-v-git.wiki | Fossil versus Git].

<h3>Links For Fossil Developer:</h3>

  *  [./contribute.wiki | Contributing] code or documentation to the
     Fossil project.
  *  [./theory1.wiki | Thoughts On The Design Of Fossil].
  *  [./pop.wiki | Principles Of Operation]
  *  [./tech_overview.wiki | A Technical Overview Of Fossil].
  *  The [./fileformat.wiki | file format] used by every content
     file stored in the repository.
  *  The [./delta_format.wiki | format of deltas] used to
     efficiently store changes between file revisions.
  *  The [./delta_encoder_algorithm.wiki | encoder algorithm] used to
     efficiently generate deltas.
  *  The [./sync.wiki | synchronization protocol].

Changes to www/mkindex.tcl.

7
8
9
10
11
12
13

14

15
16
17
18
19
20
21
..
25
26
27
28
29
30
31

32
33
34
35
36

37
38
39
40
41
42
43
#

set doclist {
  bugtheory.wiki {Bug Tracking In Fossil}
  branching.wiki {Branching, Forking, Merging, and Tagging}
  build.wiki {Building and Installing Fossil}
  checkin_names.wiki {Checkin And Version Names}

  concepts.wiki {Fossil Core Concepts}

  custom_ticket.wiki {Customizing The Ticket System}
  delta_encoder_algorithm.wiki {Fossil Delta Encoding Algorithm}
  delta_format.wiki {Fossil Delta Format}
  embeddeddoc.wiki {Embedded Project Documentation}
  event.wiki {Events}
  faq.wiki {Frequently Asked Questions}
  fileformat.wiki {Fossil File Format}
................................................................................
  makefile.wiki {The Fossil Build Process}
  password.wiki {Password Management And Authentication}
  pop.wiki {Principles Of Operations}
  qandc.wiki {Questions And Criticisms}
  quickstart.wiki {Fossil Quick Start Guide}
  quotes.wiki
      {Quotes: What People Are Saying About Fossil, Git, and DVCSes in General}

  selfcheck.wiki {Fossil Repository Integrity Self Checks}
  selfhost.wiki {Fossil Self Hosting Repositories}
  server.wiki {How To Configure A Fossil Server}
  shunning.wiki {Shunning: Deleting Content From Fossil}
  stats.wiki {Performance Statistics}

  sync.wiki {The Fossil Sync Protocol}
  tech_overview.wiki {A Technical Overview Of The Design And Implementation
                      Of Fossil}
  tech_overview.wiki {SQLite Databases Used By Fossil}
  theory1.wiki {Thoughts On The Design Of The Fossil DVCS}
  webui.wiki {The Fossil Web Interface}
  wikitheory.wiki {Wiki In Fossil}







>

>







 







>





>







7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#

set doclist {
  bugtheory.wiki {Bug Tracking In Fossil}
  branching.wiki {Branching, Forking, Merging, and Tagging}
  build.wiki {Building and Installing Fossil}
  checkin_names.wiki {Checkin And Version Names}
  copyright-release.html {Contributor License Agreement}
  concepts.wiki {Fossil Core Concepts}
  contribute.wiki {Contributing Code or Documentation To The Fossil Project}
  custom_ticket.wiki {Customizing The Ticket System}
  delta_encoder_algorithm.wiki {Fossil Delta Encoding Algorithm}
  delta_format.wiki {Fossil Delta Format}
  embeddeddoc.wiki {Embedded Project Documentation}
  event.wiki {Events}
  faq.wiki {Frequently Asked Questions}
  fileformat.wiki {Fossil File Format}
................................................................................
  makefile.wiki {The Fossil Build Process}
  password.wiki {Password Management And Authentication}
  pop.wiki {Principles Of Operations}
  qandc.wiki {Questions And Criticisms}
  quickstart.wiki {Fossil Quick Start Guide}
  quotes.wiki
      {Quotes: What People Are Saying About Fossil, Git, and DVCSes in General}
  ../test/release-checklist.wiki {Pre-Release Testing Checklist}
  selfcheck.wiki {Fossil Repository Integrity Self Checks}
  selfhost.wiki {Fossil Self Hosting Repositories}
  server.wiki {How To Configure A Fossil Server}
  shunning.wiki {Shunning: Deleting Content From Fossil}
  stats.wiki {Performance Statistics}
  style.wiki {Source Code Style Guidelines}
  sync.wiki {The Fossil Sync Protocol}
  tech_overview.wiki {A Technical Overview Of The Design And Implementation
                      Of Fossil}
  tech_overview.wiki {SQLite Databases Used By Fossil}
  theory1.wiki {Thoughts On The Design Of The Fossil DVCS}
  webui.wiki {The Fossil Web Interface}
  wikitheory.wiki {Wiki In Fossil}

Changes to www/permutedindex.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
..
48
49
50
51
52
53
54

55
56
57
58
59
60
61
62

63
64
65
66

67
68
69
70
71

72
73

74
75
76
77
78
79
80
81
82
83
84
85
86

87
88
89

90
91
92
93

94
95
96
97
98
99
100
101
102
103
104
105
<title>Permuted Index Of Fossil Documentation</title>
<nowiki>
<ul>
<li><a href="event.wiki">Events</a></li>
<li><a href="tech_overview.wiki">A Technical Overview Of The Design And Implementation
                      Of Fossil</a></li>

<li><a href="delta_encoder_algorithm.wiki">Algorithm &#151; Fossil Delta Encoding</a></li>
<li><a href="faq.wiki">Asked Questions &#151; Frequently</a></li>
<li><a href="password.wiki">Authentication &#151; Password Management And</a></li>
<li><a href="branching.wiki">Branching, Forking, Merging, and Tagging</a></li>
<li><a href="bugtheory.wiki">Bug Tracking In Fossil</a></li>
<li><a href="makefile.wiki">Build Process &#151; The Fossil</a></li>
<li><a href="build.wiki">Building and Installing Fossil</a></li>
<li><a href="checkin_names.wiki">Checkin And Version Names</a></li>

<li><a href="selfcheck.wiki">Checks &#151; Fossil Repository Integrity Self</a></li>


<li><a href="concepts.wiki">Concepts &#151; Fossil Core</a></li>
<li><a href="server.wiki">Configure A Fossil Server &#151; How To</a></li>
<li><a href="shunning.wiki">Content From Fossil &#151; Shunning: Deleting</a></li>


<li><a href="concepts.wiki">Core Concepts &#151; Fossil</a></li>
<li><a href="qandc.wiki">Criticisms &#151; Questions And</a></li>
<li><a href="custom_ticket.wiki">Customizing The Ticket System</a></li>
<li><a href="tech_overview.wiki">Databases Used By Fossil &#151; SQLite</a></li>
<li><a href="shunning.wiki">Deleting Content From Fossil &#151; Shunning:</a></li>
<li><a href="delta_encoder_algorithm.wiki">Delta Encoding Algorithm &#151; Fossil</a></li>
<li><a href="delta_format.wiki">Delta Format &#151; Fossil</a></li>
<li><a href="tech_overview.wiki">Design And Implementation Of Fossil &#151; A Technical Overview Of The</a></li>
<li><a href="theory1.wiki">Design Of The Fossil DVCS &#151; Thoughts On The</a></li>
<li><a href="embeddeddoc.wiki">Documentation &#151; Embedded Project</a></li>

<li><a href="theory1.wiki">DVCS &#151; Thoughts On The Design Of The Fossil</a></li>
<li><a href="quotes.wiki">DVCSes in General &#151; Quotes: What People Are Saying About Fossil, Git, and</a></li>
<li><a href="embeddeddoc.wiki">Embedded Project Documentation</a></li>
<li><a href="delta_encoder_algorithm.wiki">Encoding Algorithm &#151; Fossil Delta</a></li>
<li><a href="inout.wiki">Export To And From Git &#151; Import And</a></li>
<li><a href="fileformat.wiki">File Format &#151; Fossil</a></li>
<li><a href="branching.wiki">Forking, Merging, and Tagging &#151; Branching,</a></li>
................................................................................
<li><a href="shunning.wiki">From Fossil &#151; Shunning: Deleting Content</a></li>
<li><a href="inout.wiki">From Git &#151; Import And Export To And</a></li>
<li><a href="quotes.wiki">General &#151; Quotes: What People Are Saying About Fossil, Git, and DVCSes in</a></li>
<li><a href="fossil-v-git.wiki">Git &#151; Fossil Versus</a></li>
<li><a href="inout.wiki">Git &#151; Import And Export To And From</a></li>
<li><a href="quotes.wiki">Git, and DVCSes in General &#151; Quotes: What People Are Saying About Fossil,</a></li>
<li><a href="quickstart.wiki">Guide &#151; Fossil Quick Start</a></li>

<li><a href="index.wiki">Home Page</a></li>
<li><a href="selfhost.wiki">Hosting Repositories &#151; Fossil Self</a></li>
<li><a href="server.wiki">How To Configure A Fossil Server</a></li>
<li><a href="tech_overview.wiki">Implementation Of Fossil &#151; A Technical Overview Of The Design And</a></li>
<li><a href="inout.wiki">Import And Export To And From Git</a></li>
<li><a href="build.wiki">Installing Fossil &#151; Building and</a></li>
<li><a href="selfcheck.wiki">Integrity Self Checks &#151; Fossil Repository</a></li>
<li><a href="webui.wiki">Interface &#151; The Fossil Web</a></li>

<li><a href="password.wiki">Management And Authentication &#151; Password</a></li>
<li><a href="branching.wiki">Merging, and Tagging &#151; Branching, Forking,</a></li>
<li><a href="checkin_names.wiki">Names &#151; Checkin And Version</a></li>
<li><a href="pop.wiki">Operations &#151; Principles Of</a></li>

<li><a href="tech_overview.wiki">Overview Of The Design And Implementation Of Fossil &#151; A Technical</a></li>
<li><a href="index.wiki">Page &#151; Home</a></li>
<li><a href="password.wiki">Password Management And Authentication</a></li>
<li><a href="quotes.wiki">People Are Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What</a></li>
<li><a href="stats.wiki">Performance Statistics</a></li>

<li><a href="pop.wiki">Principles Of Operations</a></li>
<li><a href="makefile.wiki">Process &#151; The Fossil Build</a></li>

<li><a href="embeddeddoc.wiki">Project Documentation &#151; Embedded</a></li>
<li><a href="sync.wiki">Protocol &#151; The Fossil Sync</a></li>
<li><a href="faq.wiki">Questions &#151; Frequently Asked</a></li>
<li><a href="qandc.wiki">Questions And Criticisms</a></li>
<li><a href="quickstart.wiki">Quick Start Guide &#151; Fossil</a></li>
<li><a href="quotes.wiki">Quotes: What People Are Saying About Fossil, Git, and DVCSes in General</a></li>
<li><a href="selfhost.wiki">Repositories &#151; Fossil Self Hosting</a></li>
<li><a href="selfcheck.wiki">Repository Integrity Self Checks &#151; Fossil</a></li>
<li><a href="quotes.wiki">Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What People Are</a></li>
<li><a href="selfcheck.wiki">Self Checks &#151; Fossil Repository Integrity</a></li>
<li><a href="selfhost.wiki">Self Hosting Repositories &#151; Fossil</a></li>
<li><a href="server.wiki">Server &#151; How To Configure A Fossil</a></li>
<li><a href="shunning.wiki">Shunning: Deleting Content From Fossil</a></li>

<li><a href="tech_overview.wiki">SQLite Databases Used By Fossil</a></li>
<li><a href="quickstart.wiki">Start Guide &#151; Fossil Quick</a></li>
<li><a href="stats.wiki">Statistics &#151; Performance</a></li>

<li><a href="sync.wiki">Sync Protocol &#151; The Fossil</a></li>
<li><a href="custom_ticket.wiki">System &#151; Customizing The Ticket</a></li>
<li><a href="branching.wiki">Tagging &#151; Branching, Forking, Merging, and</a></li>
<li><a href="tech_overview.wiki">Technical Overview Of The Design And Implementation Of Fossil &#151; A</a></li>

<li><a href="makefile.wiki">The Fossil Build Process</a></li>
<li><a href="sync.wiki">The Fossil Sync Protocol</a></li>
<li><a href="webui.wiki">The Fossil Web Interface</a></li>
<li><a href="theory1.wiki">Thoughts On The Design Of The Fossil DVCS</a></li>
<li><a href="custom_ticket.wiki">Ticket System &#151; Customizing The</a></li>
<li><a href="bugtheory.wiki">Tracking In Fossil &#151; Bug</a></li>
<li><a href="checkin_names.wiki">Version Names &#151; Checkin And</a></li>
<li><a href="fossil-v-git.wiki">Versus Git &#151; Fossil</a></li>
<li><a href="webui.wiki">Web Interface &#151; The Fossil</a></li>
<li><a href="quotes.wiki">What People Are Saying About Fossil, Git, and DVCSes in General &#151; Quotes:</a></li>
<li><a href="wikitheory.wiki">Wiki In Fossil</a></li>
</ul>






>








>

>
>



>
>










>







 







>








>




>





>


>













>



>




>












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
41
42
..
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<title>Permuted Index Of Fossil Documentation</title>
<nowiki>
<ul>
<li><a href="event.wiki">Events</a></li>
<li><a href="tech_overview.wiki">A Technical Overview Of The Design And Implementation
                      Of Fossil</a></li>
<li><a href="copyright-release.html">Agreement &#151; Contributor License</a></li>
<li><a href="delta_encoder_algorithm.wiki">Algorithm &#151; Fossil Delta Encoding</a></li>
<li><a href="faq.wiki">Asked Questions &#151; Frequently</a></li>
<li><a href="password.wiki">Authentication &#151; Password Management And</a></li>
<li><a href="branching.wiki">Branching, Forking, Merging, and Tagging</a></li>
<li><a href="bugtheory.wiki">Bug Tracking In Fossil</a></li>
<li><a href="makefile.wiki">Build Process &#151; The Fossil</a></li>
<li><a href="build.wiki">Building and Installing Fossil</a></li>
<li><a href="checkin_names.wiki">Checkin And Version Names</a></li>
<li><a href="../test/release-checklist.wiki">Checklist &#151; Pre-Release Testing</a></li>
<li><a href="selfcheck.wiki">Checks &#151; Fossil Repository Integrity Self</a></li>
<li><a href="contribute.wiki">Code or Documentation To The Fossil Project &#151; Contributing</a></li>
<li><a href="style.wiki">Code Style Guidelines &#151; Source</a></li>
<li><a href="concepts.wiki">Concepts &#151; Fossil Core</a></li>
<li><a href="server.wiki">Configure A Fossil Server &#151; How To</a></li>
<li><a href="shunning.wiki">Content From Fossil &#151; Shunning: Deleting</a></li>
<li><a href="contribute.wiki">Contributing Code or Documentation To The Fossil Project</a></li>
<li><a href="copyright-release.html">Contributor License Agreement</a></li>
<li><a href="concepts.wiki">Core Concepts &#151; Fossil</a></li>
<li><a href="qandc.wiki">Criticisms &#151; Questions And</a></li>
<li><a href="custom_ticket.wiki">Customizing The Ticket System</a></li>
<li><a href="tech_overview.wiki">Databases Used By Fossil &#151; SQLite</a></li>
<li><a href="shunning.wiki">Deleting Content From Fossil &#151; Shunning:</a></li>
<li><a href="delta_encoder_algorithm.wiki">Delta Encoding Algorithm &#151; Fossil</a></li>
<li><a href="delta_format.wiki">Delta Format &#151; Fossil</a></li>
<li><a href="tech_overview.wiki">Design And Implementation Of Fossil &#151; A Technical Overview Of The</a></li>
<li><a href="theory1.wiki">Design Of The Fossil DVCS &#151; Thoughts On The</a></li>
<li><a href="embeddeddoc.wiki">Documentation &#151; Embedded Project</a></li>
<li><a href="contribute.wiki">Documentation To The Fossil Project &#151; Contributing Code or</a></li>
<li><a href="theory1.wiki">DVCS &#151; Thoughts On The Design Of The Fossil</a></li>
<li><a href="quotes.wiki">DVCSes in General &#151; Quotes: What People Are Saying About Fossil, Git, and</a></li>
<li><a href="embeddeddoc.wiki">Embedded Project Documentation</a></li>
<li><a href="delta_encoder_algorithm.wiki">Encoding Algorithm &#151; Fossil Delta</a></li>
<li><a href="inout.wiki">Export To And From Git &#151; Import And</a></li>
<li><a href="fileformat.wiki">File Format &#151; Fossil</a></li>
<li><a href="branching.wiki">Forking, Merging, and Tagging &#151; Branching,</a></li>
................................................................................
<li><a href="shunning.wiki">From Fossil &#151; Shunning: Deleting Content</a></li>
<li><a href="inout.wiki">From Git &#151; Import And Export To And</a></li>
<li><a href="quotes.wiki">General &#151; Quotes: What People Are Saying About Fossil, Git, and DVCSes in</a></li>
<li><a href="fossil-v-git.wiki">Git &#151; Fossil Versus</a></li>
<li><a href="inout.wiki">Git &#151; Import And Export To And From</a></li>
<li><a href="quotes.wiki">Git, and DVCSes in General &#151; Quotes: What People Are Saying About Fossil,</a></li>
<li><a href="quickstart.wiki">Guide &#151; Fossil Quick Start</a></li>
<li><a href="style.wiki">Guidelines &#151; Source Code Style</a></li>
<li><a href="index.wiki">Home Page</a></li>
<li><a href="selfhost.wiki">Hosting Repositories &#151; Fossil Self</a></li>
<li><a href="server.wiki">How To Configure A Fossil Server</a></li>
<li><a href="tech_overview.wiki">Implementation Of Fossil &#151; A Technical Overview Of The Design And</a></li>
<li><a href="inout.wiki">Import And Export To And From Git</a></li>
<li><a href="build.wiki">Installing Fossil &#151; Building and</a></li>
<li><a href="selfcheck.wiki">Integrity Self Checks &#151; Fossil Repository</a></li>
<li><a href="webui.wiki">Interface &#151; The Fossil Web</a></li>
<li><a href="copyright-release.html">License Agreement &#151; Contributor</a></li>
<li><a href="password.wiki">Management And Authentication &#151; Password</a></li>
<li><a href="branching.wiki">Merging, and Tagging &#151; Branching, Forking,</a></li>
<li><a href="checkin_names.wiki">Names &#151; Checkin And Version</a></li>
<li><a href="pop.wiki">Operations &#151; Principles Of</a></li>
<li><a href="contribute.wiki">or Documentation To The Fossil Project &#151; Contributing Code</a></li>
<li><a href="tech_overview.wiki">Overview Of The Design And Implementation Of Fossil &#151; A Technical</a></li>
<li><a href="index.wiki">Page &#151; Home</a></li>
<li><a href="password.wiki">Password Management And Authentication</a></li>
<li><a href="quotes.wiki">People Are Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What</a></li>
<li><a href="stats.wiki">Performance Statistics</a></li>
<li><a href="../test/release-checklist.wiki">Pre-Release Testing Checklist</a></li>
<li><a href="pop.wiki">Principles Of Operations</a></li>
<li><a href="makefile.wiki">Process &#151; The Fossil Build</a></li>
<li><a href="contribute.wiki">Project &#151; Contributing Code or Documentation To The Fossil</a></li>
<li><a href="embeddeddoc.wiki">Project Documentation &#151; Embedded</a></li>
<li><a href="sync.wiki">Protocol &#151; The Fossil Sync</a></li>
<li><a href="faq.wiki">Questions &#151; Frequently Asked</a></li>
<li><a href="qandc.wiki">Questions And Criticisms</a></li>
<li><a href="quickstart.wiki">Quick Start Guide &#151; Fossil</a></li>
<li><a href="quotes.wiki">Quotes: What People Are Saying About Fossil, Git, and DVCSes in General</a></li>
<li><a href="selfhost.wiki">Repositories &#151; Fossil Self Hosting</a></li>
<li><a href="selfcheck.wiki">Repository Integrity Self Checks &#151; Fossil</a></li>
<li><a href="quotes.wiki">Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What People Are</a></li>
<li><a href="selfcheck.wiki">Self Checks &#151; Fossil Repository Integrity</a></li>
<li><a href="selfhost.wiki">Self Hosting Repositories &#151; Fossil</a></li>
<li><a href="server.wiki">Server &#151; How To Configure A Fossil</a></li>
<li><a href="shunning.wiki">Shunning: Deleting Content From Fossil</a></li>
<li><a href="style.wiki">Source Code Style Guidelines</a></li>
<li><a href="tech_overview.wiki">SQLite Databases Used By Fossil</a></li>
<li><a href="quickstart.wiki">Start Guide &#151; Fossil Quick</a></li>
<li><a href="stats.wiki">Statistics &#151; Performance</a></li>
<li><a href="style.wiki">Style Guidelines &#151; Source Code</a></li>
<li><a href="sync.wiki">Sync Protocol &#151; The Fossil</a></li>
<li><a href="custom_ticket.wiki">System &#151; Customizing The Ticket</a></li>
<li><a href="branching.wiki">Tagging &#151; Branching, Forking, Merging, and</a></li>
<li><a href="tech_overview.wiki">Technical Overview Of The Design And Implementation Of Fossil &#151; A</a></li>
<li><a href="../test/release-checklist.wiki">Testing Checklist &#151; Pre-Release</a></li>
<li><a href="makefile.wiki">The Fossil Build Process</a></li>
<li><a href="sync.wiki">The Fossil Sync Protocol</a></li>
<li><a href="webui.wiki">The Fossil Web Interface</a></li>
<li><a href="theory1.wiki">Thoughts On The Design Of The Fossil DVCS</a></li>
<li><a href="custom_ticket.wiki">Ticket System &#151; Customizing The</a></li>
<li><a href="bugtheory.wiki">Tracking In Fossil &#151; Bug</a></li>
<li><a href="checkin_names.wiki">Version Names &#151; Checkin And</a></li>
<li><a href="fossil-v-git.wiki">Versus Git &#151; Fossil</a></li>
<li><a href="webui.wiki">Web Interface &#151; The Fossil</a></li>
<li><a href="quotes.wiki">What People Are Saying About Fossil, Git, and DVCSes in General &#151; Quotes:</a></li>
<li><a href="wikitheory.wiki">Wiki In Fossil</a></li>
</ul>

Added www/style.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
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<title>Coding Style</title>

Fossil source code should following the style guidelines below.

<b>General points:</b>:

  10.  No line of code exceeds 80 characters in length.  (Occasional
       exceptions are made for HTML text on @-lines.)

  11.  There are no tab characters.

  12.  Line terminators are \n only.  Do not use a \r\n line terminator.

  13.  2-space indentation is used.  Remember:  No tabs.

  14.  Comments contain no spelling or grammatical errors.  (Abbreviations
       and sentence fragments are acceptable when trying to fit a comment
       on a single line as long as the meaning is clear.)

  15.  The tone of comments is professional and courteous.  Comments
       contain no profanity, obscenity, or innuendo.

  16.  All C-code conforms to ANSI C-89.

  17.  All comments and identifiers are in English.

  18.  The program is single-threaded.  Do not use threads.
       (One except to this is the HTTP server implementation for windows,
       which we do not know how to implement without the use of threads.)


<b>C preprocessor macros</b>:

  20.  The purpose of every preprocessor macros is clearly explained in a
       comment associated with its definition.

  21.  Every preprocessor macro is used at least once.

  22.  The names of preprocessor macros clearly reflect their use.

  23.  Assumptions about the relative values of related macros are
       verified by asserts.  Example: <tt>assert(READ_LOCK+1==WRITE_LOCK);</tt>


<b>Function header comments</b>:

  30.  Every function has a header comment describing the purpose and use
       of the function.

  31.  Function header comment defines the behavior of the function in
       sufficient detail to allow the function to be reimplemented from
       scratch without reference to the original code.

  32.  Functions that perform dynamic memory allocation (either directly
       or indirectly via subfunctions) say so in their header comments.


<b>Function bodies</b>:

<ol>
  <li value=40>  The name of a function clearly reflects its purpose.

  <li> Automatic variables are small, not large objects or arrays.  Avoid
       excessive stack usage.

  <li>  The check-list items for functions also apply to major subsections
     within a function.

  <li>  All code subblocks are enclosed in {...}.


  <li> <b>assert() macros are used as follows </b>:
    <ol type="a">

  <li>  Function preconditions are clearly stated and verified by asserts.

  <li>  Invariants are identified by asserts.
    </ol>

</ol>


<b>Class (struct) declarations</b>:

  50.  The purpose and use of every class (a.k.a. structure) is clearly defined
     in the header comment of its declaration.

  51.  The purpose and use of every class member is clearly defined either
     in the header comment of the class declaration or when the member is
     declared or both.

  52.  The names of class members clearly reflect their use.

  53.  Invariants for classes are clearly defined.

<b>Variables and class instances</b>:

  60.  The purpose and use of every variable is defined by a comment at the
     variable definition.

  61.  The names of variables clearly reflect their use.

  62.  Related variables have related names. (ex: aSavepoint and nSavepoint.)

  63.  Variables have minimum practical scope.

  64.  Automatic variables are small, not large objects or arrays.

  65.  Constants are "const".

  66.  Invariants on variables or groups of variables are defined and
     tested by asserts.

  67.  When a variable that refers to the same value is used within
     multiple scopes, the same name is used in all cases.

  68.  When variables refer to different values, different names are used
     even when the names are in different scopes.

  69.  Variable names with wide scope are sufficiently distinctive to allow
     searching for them using grep.