Fossil SCM
Added the "Thoughts On The Design Of Fossil" document in answer to recent criticisms and critiques.
Commit
a6303982b01929b5c23b38379a7a156774a54ced
Parent
d66718f2e88698a…
2 files changed
+1
+122
+1
| --- www/index.wiki | ||
| +++ www/index.wiki | ||
| @@ -125,10 +125,11 @@ | ||
| 125 | 125 | [http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used |
| 126 | 126 | to configure the ticketing subsystem. |
| 127 | 127 | |
| 128 | 128 | <h3>Links For Fossil Developer:</h3> |
| 129 | 129 | |
| 130 | + * [./theory1.wiki | Thoughts On The Design Of Fossil]. | |
| 130 | 131 | * [./pop.wiki | Principles Of Operation] |
| 131 | 132 | * The [./fileformat.wiki | file format] used by every content |
| 132 | 133 | file stored in the repository. |
| 133 | 134 | * The [./delta_format.wiki | format of deltas] used to |
| 134 | 135 | efficiently store changes between file revisions. |
| 135 | 136 | |
| 136 | 137 | ADDED www/theory1.wiki |
| --- www/index.wiki | |
| +++ www/index.wiki | |
| @@ -125,10 +125,11 @@ | |
| 125 | [http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used |
| 126 | to configure the ticketing subsystem. |
| 127 | |
| 128 | <h3>Links For Fossil Developer:</h3> |
| 129 | |
| 130 | * [./pop.wiki | Principles Of Operation] |
| 131 | * The [./fileformat.wiki | file format] used by every content |
| 132 | file stored in the repository. |
| 133 | * The [./delta_format.wiki | format of deltas] used to |
| 134 | efficiently store changes between file revisions. |
| 135 | |
| 136 | DDED www/theory1.wiki |
| --- www/index.wiki | |
| +++ www/index.wiki | |
| @@ -125,10 +125,11 @@ | |
| 125 | [http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used |
| 126 | to configure the ticketing subsystem. |
| 127 | |
| 128 | <h3>Links For Fossil Developer:</h3> |
| 129 | |
| 130 | * [./theory1.wiki | Thoughts On The Design Of Fossil]. |
| 131 | * [./pop.wiki | Principles Of Operation] |
| 132 | * The [./fileformat.wiki | file format] used by every content |
| 133 | file stored in the repository. |
| 134 | * The [./delta_format.wiki | format of deltas] used to |
| 135 | efficiently store changes between file revisions. |
| 136 | |
| 137 | DDED www/theory1.wiki |
+122
| --- a/www/theory1.wiki | ||
| +++ b/www/theory1.wiki | ||
| @@ -0,0 +1,122 @@ | ||
| 1 | +<title Fossil DVCS</titDesign <h1 align="center">Thoughts On The h1n Of The Fossil DVCS</title> | |
| 2 | + | |
| 3 | +Two questions (or criticisms) that arise frequently regarding Fossil | |
| 4 | +can be summarized as follows: | |
| 5 | + | |
| 6 | + 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? | |
| 7 | + | |
| 8 | + 2. Why is Fossil written in C instead of a modern high-level language? | |
| 9 | + | |
| 10 | +Neither question can be answered directly because they are both | |
| 11 | +based on false assumptions. We claim that Fossil is not based on SQLite | |
| 12 | +at all and that Fossil is not based on a distributed NoSQL database | |
| 13 | +because Fossil is a distributed NoSQL database. And, Fossil does use | |
| 14 | +a modern high-level language for its implementation, namely SQL. | |
| 15 | + | |
| 16 | +<h2>Fossil Is A NoSQL Database</h2> | |
| 17 | + | |
| 18 | +We begin with the first question: Fossil is not based on a distributed | |
| 19 | +NoSQL database because Fossil <u><i>is</i></u> a distributed NoSQL database. | |
| 20 | +Fossil is <u>not</u> based on SQLite. | |
| 21 | +The current implementation of Fossnil uses | |
| 22 | +SQLite as a local store for the content of the distributed database and as | |
| 23 | +a cache for meta-information about the distributed database that is precomputed | |
| 24 | +for quick and easy presentation. But the use of SQLite in this role is an | |
| 25 | +implementation detail and is not fundamental to the design. Some future | |
| 26 | +version of Fossil might do away with SQLite and substitute a pile-of-files or | |
| 27 | +a key/value database in place of SQLite . | |
| 28 | +(Actually, that is very unlikely | |
| 29 | +to happen since SQLite works amazingly well in its current role, but the point | |
| 30 | +is that omitting SQLite from Fossil is a theoretical possibility.) | |
| 31 | + | |
| 32 | +The underlying database that Fossil implements has nothing to do with | |
| 33 | +SQLite, or SQL, or even relational database theory. The underlying | |
| 34 | +database is very simple: it is an unordered collection of "artifacts". | |
| 35 | +An artifact is a list of bytes - a "file" in the usual manner of thinking. | |
| 36 | +Many artifacts are simply the content of source files that have | |
| 37 | +been checked into the Fossil repository. Call these "content artifacts". | |
| 38 | +Other artifacts, known as | |
| 39 | +"control artifacts", contain ASCII text in a particular format that | |
| 40 | +defines relationships between other artifacts, such as which | |
| 41 | +content ar align="center">Thoughts On The h1n Of The Fossil DVCS</title> | |
| 42 | + | |
| 43 | +Two questions (or criticisms) that arise frequently regarding Fossil | |
| 44 | +can be summarized as follows: | |
| 45 | + | |
| 46 | + 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? | |
| 47 | + | |
| 48 | + 2. Why is Fossil written in C instead of a modern high-level language? | |
| 49 | + | |
| 50 | +Neither question can be answered directly because they are both | |
| 51 | +based on false assumptions. We claim that Fossil is not based on SQLite | |
| 52 | +at all and that Fossil is not based on a distributed NoSQL database | |
| 53 | +because Fossil is a distributed NoSQL database. And, Fossil does use | |
| 54 | +a modern high-level language for its implementation, namely SQL. | |
| 55 | + | |
| 56 | +<h2>Fossil Is A NoSQL Database</h2> | |
| 57 | + | |
| 58 | +We begin with the first question: Fossil is not based on a distributed | |
| 59 | +NoSQL database because Fossil <u><i>is</i></u> a distributed NoSQL database. | |
| 60 | +Fossil is <u>not</u> based on SQLite. | |
| 61 | +The current implementation of Fossnil uses | |
| 62 | +SQLite as a local store for the content of the distributed database and as | |
| 63 | +a cache for meta-information about the distributed database that is precomputed | |
| 64 | +for quick and easy presentation. But the use of SQLite in this role is an | |
| 65 | +implementation detail and is not fundamental to the design. Some future | |
| 66 | +version of Fossil might do away with SQLite and substitute a p<l DVCS</title> | |
| 67 | + | |
| 68 | +Two questions (or criticisms) that arise frequently regarding Fossil | |
| 69 | +can be summarized as follows: | |
| 70 | + | |
| 71 | + 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? | |
| 72 | + | |
| 73 | + 2. Why is Fossil written in C instead of a modern high-level language? | |
| 74 | + | |
| 75 | +Neither question can be answered directly because they are both | |
| 76 | +based on false assumptions. We claim that Fossil is not based on SQLite | |
| 77 | +at all and that Fossil is not based on a distributed NoSQL database | |
| 78 | +because Fossil is a distributed NoSQL database. And, Fossil does use | |
| 79 | +a modern high-level language for its implementation, namely SQL. | |
| 80 | + | |
| 81 | +<h2>Fossil Is A NoSQL Database</h2> | |
| 82 | + | |
| 83 | +We begin with the first question: Fossil is not based on a distributed | |
| 84 | +NoSQL database because Fossil <u><i>is</i></u> a distributed NoSQL database. | |
| 85 | +Fossil is <u>not</u> based on SQLite. | |
| 86 | +The current implementation of Fossnil uses | |
| 87 | +SQLite as a local store for the content of the distributed database and as | |
| 88 | +a cache for meta-information about the distributed datadatabase that is precomputed | |
| 89 | +for quick and easy presentation. But the use of SQLite in this role is an | |
| 90 | +implementation detail and is not fundamental to the design. Some future | |
| 91 | +version of Fossil might do away with SQLite and substitute a pile-of-files or | |
| 92 | +a key/value database in place of SQLite. | |
| 93 | +(Actually, that is very unlikely | |
| 94 | +to happen since SQLite works amazingly well in its current role, but the point | |
| 95 | +is that omitting SQLite from Fossil is a theoretical possibility.) | |
| 96 | + | |
| 97 | +The underlying database that Fossil implements has nothing to do with | |
| 98 | +SQLite, or SQL, or even relational database theory. The underlying | |
| 99 | +database is very simple: it is an unordered collection of "artifacts". | |
| 100 | +An artifact is a list of bytes - a "file" in the usual manner of thinking. | |
| 101 | +Many artifacts are simply the content ofauource files that have | |
| 102 | +been checked into the Fossil repository. Call these "content artifacts". | |
| 103 | +Other artifacts, known as | |
| 104 | +"con<,canrculCS</title> | |
| 105 | + | |
| 106 | +Two quesauons (or criticisms) that arise frequently regarding Fossil | |
| 107 | +can be summarized as follows: | |
| 108 | + | |
| 109 | + 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? | |
| 110 | + | |
| 111 | + 2. Why is Fossil written in C instead of a modern high-level language? | |
| 112 | + | |
| 113 | +Neither question can be answered directly because they are both | |
| 114 | +based on false assumptionr not based on SQLite | |
| 115 | +at all and that Fossil is not based on a distributed NoSQL database | |
| 116 | +because Fossil is a distributed NoSQL database. And, Fossil does use | |
| 117 | +a modern high-level language for its implementation, namely SQL. | |
| 118 | + | |
| 119 | +<h2>Fossil Is A NoSQL Database</h2> | |
| 120 | + | |
| 121 | +We begin with the first question: Fossil is not based on a distributed | |
| 122 | +e |
| --- a/www/theory1.wiki | |
| +++ b/www/theory1.wiki | |
| @@ -0,0 +1,122 @@ | |
| --- a/www/theory1.wiki | |
| +++ b/www/theory1.wiki | |
| @@ -0,0 +1,122 @@ | |
| 1 | <title Fossil DVCS</titDesign <h1 align="center">Thoughts On The h1n Of The Fossil DVCS</title> |
| 2 | |
| 3 | Two questions (or criticisms) that arise frequently regarding Fossil |
| 4 | can be summarized as follows: |
| 5 | |
| 6 | 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? |
| 7 | |
| 8 | 2. Why is Fossil written in C instead of a modern high-level language? |
| 9 | |
| 10 | Neither question can be answered directly because they are both |
| 11 | based on false assumptions. We claim that Fossil is not based on SQLite |
| 12 | at all and that Fossil is not based on a distributed NoSQL database |
| 13 | because Fossil is a distributed NoSQL database. And, Fossil does use |
| 14 | a modern high-level language for its implementation, namely SQL. |
| 15 | |
| 16 | <h2>Fossil Is A NoSQL Database</h2> |
| 17 | |
| 18 | We begin with the first question: Fossil is not based on a distributed |
| 19 | NoSQL database because Fossil <u><i>is</i></u> a distributed NoSQL database. |
| 20 | Fossil is <u>not</u> based on SQLite. |
| 21 | The current implementation of Fossnil uses |
| 22 | SQLite as a local store for the content of the distributed database and as |
| 23 | a cache for meta-information about the distributed database that is precomputed |
| 24 | for quick and easy presentation. But the use of SQLite in this role is an |
| 25 | implementation detail and is not fundamental to the design. Some future |
| 26 | version of Fossil might do away with SQLite and substitute a pile-of-files or |
| 27 | a key/value database in place of SQLite . |
| 28 | (Actually, that is very unlikely |
| 29 | to happen since SQLite works amazingly well in its current role, but the point |
| 30 | is that omitting SQLite from Fossil is a theoretical possibility.) |
| 31 | |
| 32 | The underlying database that Fossil implements has nothing to do with |
| 33 | SQLite, or SQL, or even relational database theory. The underlying |
| 34 | database is very simple: it is an unordered collection of "artifacts". |
| 35 | An artifact is a list of bytes - a "file" in the usual manner of thinking. |
| 36 | Many artifacts are simply the content of source files that have |
| 37 | been checked into the Fossil repository. Call these "content artifacts". |
| 38 | Other artifacts, known as |
| 39 | "control artifacts", contain ASCII text in a particular format that |
| 40 | defines relationships between other artifacts, such as which |
| 41 | content ar align="center">Thoughts On The h1n Of The Fossil DVCS</title> |
| 42 | |
| 43 | Two questions (or criticisms) that arise frequently regarding Fossil |
| 44 | can be summarized as follows: |
| 45 | |
| 46 | 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? |
| 47 | |
| 48 | 2. Why is Fossil written in C instead of a modern high-level language? |
| 49 | |
| 50 | Neither question can be answered directly because they are both |
| 51 | based on false assumptions. We claim that Fossil is not based on SQLite |
| 52 | at all and that Fossil is not based on a distributed NoSQL database |
| 53 | because Fossil is a distributed NoSQL database. And, Fossil does use |
| 54 | a modern high-level language for its implementation, namely SQL. |
| 55 | |
| 56 | <h2>Fossil Is A NoSQL Database</h2> |
| 57 | |
| 58 | We begin with the first question: Fossil is not based on a distributed |
| 59 | NoSQL database because Fossil <u><i>is</i></u> a distributed NoSQL database. |
| 60 | Fossil is <u>not</u> based on SQLite. |
| 61 | The current implementation of Fossnil uses |
| 62 | SQLite as a local store for the content of the distributed database and as |
| 63 | a cache for meta-information about the distributed database that is precomputed |
| 64 | for quick and easy presentation. But the use of SQLite in this role is an |
| 65 | implementation detail and is not fundamental to the design. Some future |
| 66 | version of Fossil might do away with SQLite and substitute a p<l DVCS</title> |
| 67 | |
| 68 | Two questions (or criticisms) that arise frequently regarding Fossil |
| 69 | can be summarized as follows: |
| 70 | |
| 71 | 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? |
| 72 | |
| 73 | 2. Why is Fossil written in C instead of a modern high-level language? |
| 74 | |
| 75 | Neither question can be answered directly because they are both |
| 76 | based on false assumptions. We claim that Fossil is not based on SQLite |
| 77 | at all and that Fossil is not based on a distributed NoSQL database |
| 78 | because Fossil is a distributed NoSQL database. And, Fossil does use |
| 79 | a modern high-level language for its implementation, namely SQL. |
| 80 | |
| 81 | <h2>Fossil Is A NoSQL Database</h2> |
| 82 | |
| 83 | We begin with the first question: Fossil is not based on a distributed |
| 84 | NoSQL database because Fossil <u><i>is</i></u> a distributed NoSQL database. |
| 85 | Fossil is <u>not</u> based on SQLite. |
| 86 | The current implementation of Fossnil uses |
| 87 | SQLite as a local store for the content of the distributed database and as |
| 88 | a cache for meta-information about the distributed datadatabase that is precomputed |
| 89 | for quick and easy presentation. But the use of SQLite in this role is an |
| 90 | implementation detail and is not fundamental to the design. Some future |
| 91 | version of Fossil might do away with SQLite and substitute a pile-of-files or |
| 92 | a key/value database in place of SQLite. |
| 93 | (Actually, that is very unlikely |
| 94 | to happen since SQLite works amazingly well in its current role, but the point |
| 95 | is that omitting SQLite from Fossil is a theoretical possibility.) |
| 96 | |
| 97 | The underlying database that Fossil implements has nothing to do with |
| 98 | SQLite, or SQL, or even relational database theory. The underlying |
| 99 | database is very simple: it is an unordered collection of "artifacts". |
| 100 | An artifact is a list of bytes - a "file" in the usual manner of thinking. |
| 101 | Many artifacts are simply the content ofauource files that have |
| 102 | been checked into the Fossil repository. Call these "content artifacts". |
| 103 | Other artifacts, known as |
| 104 | "con<,canrculCS</title> |
| 105 | |
| 106 | Two quesauons (or criticisms) that arise frequently regarding Fossil |
| 107 | can be summarized as follows: |
| 108 | |
| 109 | 1. Why is Fossil based on SQLite instead of a distributed NoSQL database? |
| 110 | |
| 111 | 2. Why is Fossil written in C instead of a modern high-level language? |
| 112 | |
| 113 | Neither question can be answered directly because they are both |
| 114 | based on false assumptionr not based on SQLite |
| 115 | at all and that Fossil is not based on a distributed NoSQL database |
| 116 | because Fossil is a distributed NoSQL database. And, Fossil does use |
| 117 | a modern high-level language for its implementation, namely SQL. |
| 118 | |
| 119 | <h2>Fossil Is A NoSQL Database</h2> |
| 120 | |
| 121 | We begin with the first question: Fossil is not based on a distributed |
| 122 | e |