Fossil SCM

fossil-scm / www / history.md
1
# The History And Purpose Of Fossil
2
3
Fossil is a [distributed version control system (DVCS)][100] written
4
beginning in [2007][105] by the [architect of SQLite][110] for the
5
purpose of managing the [SQLite project][115].
6
7
[100]: https://en.wikipedia.org/wiki/Distributed_version_control
8
[105]: /timeline?a=1970-01-01&n1=10
9
[110]: https://sqlite.org/crew.html
10
[115]: https://sqlite.org/
11
12
Though Fossil was originally written specifically to support SQLite,
13
it is now also used by countless other projects. The SQLite architect (drh)
14
is still the top committer to Fossil, but there are also
15
[many other contributors][120].
16
17
[120]: /reports?type=ci&view=byuser
18
19
## History
20
21
The SQLite project started out using [CVS][300], as CVS was the most
22
commonly used version control system in thant era (circa 2000). CVS
23
was an amazing version control system for its day in that it allowed
24
multiple developers to be editing the same file at the same time.
25
26
[300]: https://en.wikipedia.org/wiki/Concurrent_Versions_System
27
28
Though innovative and much loved in its time, CVS was not without problems.
29
Among those was a lack of visibility into the project history and the
30
lack of integrated bug tracking. To address these deficiencies,
31
the SQLite author developed the [CVSTrac][305] wrapper for CVS beginning
32
in [2002][310].
33
34
[305]: http://cvstrac.org/
35
[310]: http://cvstrac.org/fossil/timeline?a=19700101&n1=10
36
37
CVSTrac greatly improved the usability of CVS and was adopted by
38
other projects. CVSTrac also [inspired the design][315] of [Trac][320],
39
which was a similar system that was (and is) far more widely used.
40
41
[315]: https://trac.edgewall.org/wiki/TracHistory
42
[320]: https://trac.edgewall.org/
43
44
Historians can see the influence of CVSTrac on the development of
45
SQLite. [Early SQLite check-ins][325] that happened before CVSTrac
46
often had a check-in comment that was just a "smiley".
47
That was not an unreasonable check-in comment, as check-in comments
48
were scarcely seen and of questionable utility in raw CVS. CVSTrac
49
changed that, making check-in comments more visible and more useful.
50
The SQLite developers reacted by creating [better check-in comments][330].
51
52
[325]: https://sqlite.org/src/timeline?a=19700101&n1=10
53
[330]: https://sqlite.org/src/timeline?c=20030101&n1=10&nd
54
55
At about this same time, the [Monotone][335] system appeared.
56
Monotone was one of the first distributed version control systems. As far as
57
this author is aware, Monotone was the first VCS to make use of
58
SHA1 to identify artifacts. Monotone stored its content in a SQLite
59
database, which is what brought it to the

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button