Fossil

Check-in [69e7827d]
Login

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

Overview
Comment:Clarified the scale of the Linux vs SQLite projects in the same-named section of the Git vs Fossil doc, tightened up the discussion a bit, and added hard SLOC stats to ground it all. Most controversially, added the rattle wrench analogy.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 69e7827d2636c1a01a56e5ab5d8b6b3a3f120b6683d9bbdddbfd1b0f2d314be5
User & Date: wyoung 2019-07-12 13:24:49
Context
2019-07-12
13:58
Improved error messages when a commit fails due to a lock conflict: Show the age of the lock in addition to the user. Suggest using the new --override-lock option instead of --allow-fork. Expire locks after any successful check-in from the same check-out. check-in: 3a5caa86 user: drh tags: trunk
13:25
Merged in Linux vs SQLite stuff from trunk check-in: f5321731 user: wyoung tags: bsd-vs-gpl
13:24
Clarified the scale of the Linux vs SQLite projects in the same-named section of the Git vs Fossil doc, tightened up the discussion a bit, and added hard SLOC stats to ground it all. Most controversially, added the rattle wrench analogy. check-in: 69e7827d user: wyoung tags: trunk
12:37
Fix a typo in the fossil-v-git.wiki document, as reported on the forum. "fossil all status" should be "fossil all changes". check-in: 9b51c42a user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to www/fossil-v-git.wiki.

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165




166
167
168
169

170
171







172
173
174
175
176
177
178
mental picture of what is happening, and better situational awareness.

<h3>2.4 Linux vs. SQLite</h3>

Git was specifically designed to support the development of the Linux kernel.
Fossil was specifically designed to support the development of SQLite.

Both SQLite and the Linux kernel are important pieces of software.
SQLite is found on far more systems than Linux. Almost every Linux
system uses SQLite, but there are many non-Linux systems such as
iPhones, PlayStations, and Windows PCs that use SQLite. On the other
hand, for those systems that do use Linux, Linux is a far more important
component.

The Linux kernel uses a bazaar-style development model.  There are thousands and
thousands of contributors, most of whom do not know each others names.




Git is designed for this scenario.

SQLite uses cathedral-style development.  95% of the code in SQLite
comes from just three programmers, 64% from just the lead developer.

And all SQLite developers know each other well and interact daily.
Fossil is designed for this development model.








<h3>2.5 Individual Branches vs. The Entire Change History</h3>

Both Fossil and Git store history as a directed acyclic graph (DAG)
of changes, but Git tends to focus more on individual branches of
the DAG, whereas Fossil puts more emphasis on the entire DAG.








|
|
|
|
|
|



>
>
>
>
|


<
>
|

>
>
>
>
>
>
>







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172

173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
mental picture of what is happening, and better situational awareness.

<h3>2.4 Linux vs. SQLite</h3>

Git was specifically designed to support the development of the Linux kernel.
Fossil was specifically designed to support the development of SQLite.

SQLite is much more widely deployed than the Linux kernel, but for
Linux-based systems, the kernel is the more fundamental component.
Although both projects must rank high on any objective list of "most
important FOSS projects," the two projects are almost entirely unlike
one another, and this shows up in the design choices of the tools
created to support them.

The Linux kernel uses a bazaar-style development model.  There are thousands and
thousands of contributors, most of whom do not know each others names.
These thousands are responsible for producing roughly 89⨉ more code than
is in SQLite. (10.7
[https://en.wikipedia.org/wiki/Source_lines_of_code|MLOC] vs 0.12 MLOC
according to [https://dwheeler.com/sloccount/|SLOCCount].) Git is
designed for this scenario.

SQLite uses cathedral-style development.  95% of the code in SQLite

comes from just four programmers, and 64% of it is from the lead developer alone.
The SQLite developers know each other well and interact daily.
Fossil is designed for this development model.

We think you should ask yourself whether you have
[https://en.wikipedia.org/wiki/Linus_Torvalds|Linus Torvalds] scale
software configuration management problems or
[https://en.wikipedia.org/wiki/D._Richard_Hipp|D. Richard Hipp] scale
problems when choosing your DVCS. You don't use a pneumatic ratchet
wrench to hang a picture on the living room wall.

<h3>2.5 Individual Branches vs. The Entire Change History</h3>

Both Fossil and Git store history as a directed acyclic graph (DAG)
of changes, but Git tends to focus more on individual branches of
the DAG, whereas Fossil puts more emphasis on the entire DAG.