1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# The History And Purpose Of Fossil
Fossil is a [distributed version control system (DVCS)][100] written
beginning in [2007][105] by the [architect of SQLite][110] for the
purpose of managing the [SQLite project][115].
[100]: https://en.wikipedia.org/wiki/Distributed_version_control
[105]: /timeline?a=1970-01-01&n=10
[110]: https://sqlite.org/crew.html
[115]: https://sqlite.org/
Though Fossil was originally written specifically to support SQLite,
it is now also used by countless other projects. The SQLite architect (drh)
is still the top committer to Fossil, but there are also
[many other contributors][120].
|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# The History And Purpose Of Fossil
Fossil is a [distributed version control system (DVCS)][100] written
beginning in [2007][105] by the [architect of SQLite][110] for the
purpose of managing the [SQLite project][115].
[100]: https://en.wikipedia.org/wiki/Distributed_version_control
[105]: /timeline?a=1970-01-01&n1=10
[110]: https://sqlite.org/crew.html
[115]: https://sqlite.org/
Though Fossil was originally written specifically to support SQLite,
it is now also used by countless other projects. The SQLite architect (drh)
is still the top committer to Fossil, but there are also
[many other contributors][120].
|
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
|
Though innovative and much loved in its time, CVS was not without problems.
Among those was a lack of visibility into the project history and the
lack of integrated bug tracking. To try to address these deficiencies,
the SQLite author developed the [CVSTrac][305] wrapper for CVS beginning
in [2002][310].
[305]: http://cvstrac.org/
[310]: http://cvstrac.org/fossil/timeline?a=19700101&n=10
CVSTrac greatly improved the usability of CVS and was adopted by
other projects. CVSTrac also [inspired the design][315] of [Trac][320],
which was a similar system that was (and is) far more widely used.
[315]: https://trac.edgewall.org/wiki/TracHistory
[320]: https://trac.edgewall.org/
Historians can see the influence of CVSTrac on the development of
SQLite. [Early SQLite check-ins][325] that happened before CVSTrac
often had a check-in comment that was just a "smiley".
That was not an unreasonable check-in comment, as check-in comments
were scarcely seen and of questionable utility in raw CVS. CVSTrac
changed that, making check-in comments more visible and more useful.
The SQLite developers reacted by creating [better check-in comments][330].
[325]: https://sqlite.org/src/timeline?a=19700101&n=10
[330]: https://sqlite.org/src/timeline?c=20030101&n=10&nd
At about this same time, the [Monotone][335] system appeared.
Monotone was one of the first distributed version control systems. As far as
this author is aware, Monotone was the first VCS to make use of
SHA1 to identify artifacts. Monotone stored its content in an SQLite
database, which is what brought it to the attention of the SQLite architect.
These design choices were a major source of inspiration for Fossil.
|
|
|
|
|
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
|
Though innovative and much loved in its time, CVS was not without problems.
Among those was a lack of visibility into the project history and the
lack of integrated bug tracking. To try to address these deficiencies,
the SQLite author developed the [CVSTrac][305] wrapper for CVS beginning
in [2002][310].
[305]: http://cvstrac.org/
[310]: http://cvstrac.org/fossil/timeline?a=19700101&n1=10
CVSTrac greatly improved the usability of CVS and was adopted by
other projects. CVSTrac also [inspired the design][315] of [Trac][320],
which was a similar system that was (and is) far more widely used.
[315]: https://trac.edgewall.org/wiki/TracHistory
[320]: https://trac.edgewall.org/
Historians can see the influence of CVSTrac on the development of
SQLite. [Early SQLite check-ins][325] that happened before CVSTrac
often had a check-in comment that was just a "smiley".
That was not an unreasonable check-in comment, as check-in comments
were scarcely seen and of questionable utility in raw CVS. CVSTrac
changed that, making check-in comments more visible and more useful.
The SQLite developers reacted by creating [better check-in comments][330].
[325]: https://sqlite.org/src/timeline?a=19700101&n1=10
[330]: https://sqlite.org/src/timeline?c=20030101&n1=10&nd
At about this same time, the [Monotone][335] system appeared.
Monotone was one of the first distributed version control systems. As far as
this author is aware, Monotone was the first VCS to make use of
SHA1 to identify artifacts. Monotone stored its content in an SQLite
database, which is what brought it to the attention of the SQLite architect.
These design choices were a major source of inspiration for Fossil.
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
however, it was found that the low-level byte manipulates needed for
things like delta compression and computing diffs
were better implemented in plain old C.
Experiments continued. Finally, a prototype capable of self-hosting
was devised on [2007-07-16][345].
[340]: https://www.tcl.tk/
[345]: https://fossil-scm.org/fossil/timeline?c=200707211410&n=10
The first project hosted by Fossil was Fossil itself. After a
few months of development work, the code was considered stable enough
to begin hosting the [SQLite documentation repository][350] which was
split off from the main SQLite CVS repository on [2007-11-12][355].
After two years of development work on Fossil, the
SQLite source code itself was transfered to Fossil on
[2009-08-11][360].
[350]: https://www.sqlite.org/docsrc/doc/trunk/README.md
[355]: https://www.sqlite.org/docsrc/timeline?c=200711120345&n=10
[360]: https://sqlite.org/src/timeline?c=b0848925babde524&n=12&y=ci
|
|
|
|
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
however, it was found that the low-level byte manipulates needed for
things like delta compression and computing diffs
were better implemented in plain old C.
Experiments continued. Finally, a prototype capable of self-hosting
was devised on [2007-07-16][345].
[340]: https://www.tcl.tk/
[345]: https://fossil-scm.org/fossil/timeline?c=200707211410&n1=10
The first project hosted by Fossil was Fossil itself. After a
few months of development work, the code was considered stable enough
to begin hosting the [SQLite documentation repository][350] which was
split off from the main SQLite CVS repository on [2007-11-12][355].
After two years of development work on Fossil, the
SQLite source code itself was transfered to Fossil on
[2009-08-11][360].
[350]: https://www.sqlite.org/docsrc/doc/trunk/README.md
[355]: https://www.sqlite.org/docsrc/timeline?c=200711120345&n1=10
[360]: https://sqlite.org/src/timeline?c=b0848925babde524&n1=12&y=ci
|