Fossil

Check-in [f5321731]
Login

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

Overview
Comment:Merged in Linux vs SQLite stuff from trunk
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | bsd-vs-gpl
Files: files | file ages | folders
SHA3-256: f5321731f9fe2538afa4d87d12b9eae8c29c004affb906cb3586611e717cf052
User & Date: wyoung 2019-07-12 13:25:09
Context
2019-07-12
13:57
Better text justifying the use of a CLA in conjunction with the GPL in the "Fossil vs Git" article. check-in: 838c9efe user: wyoung tags: bsd-vs-gpl
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
05:03
Grammar fix to previous check-in: 7cfe191b user: wyoung tags: bsd-vs-gpl
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
...
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
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.

................................................................................

  *  <b>The [/help?cmd=all|fossil all] command</b>

   Fossil keeps track of all repositories and check-outs and allows
   operations over all of them with a single command.  For example, in
   Fossil is possible to request a pull of all repositories on a laptop
   from their respective servers, prior to taking the laptop off network.
   Or it is possible to do "fossil all status" to see if there are any
   uncommitted changes that were overlooked prior to the end of the workday.

  *  <b>The [/help?cmd=ui|fossil ui] command</b>

   Fossil supports an integrated web interface.  Some of the same features
   are available using third-party add-ons for Git, but they do not provide
   nearly as many features and they are not nearly as convenient to use.







|
|
|
|
|
|



>
>
>
>
|


<
>
|

>
>
>
>
>
>
>







 







|







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
...
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
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.

................................................................................

  *  <b>The [/help?cmd=all|fossil all] command</b>

   Fossil keeps track of all repositories and check-outs and allows
   operations over all of them with a single command.  For example, in
   Fossil is possible to request a pull of all repositories on a laptop
   from their respective servers, prior to taking the laptop off network.
   Or it is possible to do "fossil all changes" to see if there are any
   uncommitted changes that were overlooked prior to the end of the workday.

  *  <b>The [/help?cmd=ui|fossil ui] command</b>

   Fossil supports an integrated web interface.  Some of the same features
   are available using third-party add-ons for Git, but they do not provide
   nearly as many features and they are not nearly as convenient to use.