Fossil SCM
Tweaks to the 101-reasons document, including a fix to a broken hyperlink.
Commit
84ced252d972b748c2d46d3792cf5e69b2235d4aa21b889e8a81c74863321357
Parent
d494477e0a0bd7e…
1 file changed
+11
-10
+11
-10
| --- www/hundredandone.md | ||
| +++ www/hundredandone.md | ||
| @@ -271,11 +271,12 @@ | ||
| 271 | 271 | 1. **Fossil allows check-ins to be identified by timestamp**<p> |
| 272 | 272 | The canonical name for a check-in is its hash. Both Git and Fossil |
| 273 | 273 | allow a check-in to be identified by any unique prefix of its hash. |
| 274 | 274 | But only Fossil allows a check-in to also be identified by its |
| 275 | 275 | timestamp. The names "2026-02-02T16:03:24.852Z" and "fdebbedbd9a99165" |
| 276 | - both refer to [the same check-in](https://sqlite.org/src/fdebbedbd9a99165), | |
| 276 | + both refer to | |
| 277 | + [the same check-in](https://sqlite.org/src/info/fdebbedbd9a99165), | |
| 277 | 278 | but the first one has the advantage of giving some time |
| 278 | 279 | context rather than just being a seemingly random sequence of hexadecimal |
| 279 | 280 | digits. It is possible that two or more check-ins can have the same |
| 280 | 281 | timestamp, in which case the timestamp would be ambiguous. And a |
| 281 | 282 | check-in timestamp can be changed after it is committed, by using |
| @@ -404,11 +405,11 @@ | ||
| 404 | 405 | everything you need to host a complete software project website. |
| 405 | 406 | Indeed, the |
| 406 | 407 | [canonical Fossil website](https://fossil-scm.org/home) is just |
| 407 | 408 | an instance of Fossil running on the self-hosting Fossil repository. |
| 408 | 409 | If you clone the Fossil self-hosting repository, you don't get just |
| 409 | - code - you get the entire website. (Exception: | |
| 410 | + code - you get the entire website. (Exception: | |
| 410 | 411 | [Fossil Forum](https://sqlite.org/forum) is hosted separately using |
| 411 | 412 | a separate Fossil repository, so you'd actually need to clone that |
| 412 | 413 | one too, in order to get the whole website.) |
| 413 | 414 | |
| 414 | 415 | 1. **Using Fossil, backing up your project website is just a sync.**<p> |
| @@ -1061,25 +1062,25 @@ | ||
| 1061 | 1062 | 1. **The Fossil source code is easy to enhance with new web pages and |
| 1062 | 1063 | commands.**<p> |
| 1063 | 1064 | The design of the Fossil implementation makes it easy to extend with |
| 1064 | 1065 | new capabilities as needs arise. |
| 1065 | 1066 | <ul type="disk"> |
| 1066 | - <li> The code is C89. | |
| 1067 | - <li> Each command and each web page runs as a separate process which | |
| 1067 | + <li> The code is simple C89. | |
| 1068 | + <li> Each command or web page runs as a separate process which | |
| 1068 | 1069 | exits when the action completes, so minor memory leaks are not |
| 1069 | 1070 | a concern. |
| 1070 | - <li> Preprocessors that run over the Fossil source code before the | |
| 1071 | - code reaches the C compiler help | |
| 1072 | - to ensure that there are no SQL injections nor XSS vulnerabilities. | |
| 1073 | - <li> New commands and new web pages can be added simply by adding a new | |
| 1071 | + <li> Preprocessors run over the Fossil source code before the | |
| 1072 | + code reaches the C compiler to verify | |
| 1073 | + that there are no SQL injections nor XSS vulnerabilities. | |
| 1074 | + <li> New commands and webpages can be added simply by adding a new | |
| 1074 | 1075 | procedure to do the necessary computation. The name, properties, |
| 1075 | 1076 | and documentation for the command or webpage are extracted from |
| 1076 | 1077 | specially formatted comments just prior to the procedure. |
| 1077 | 1078 | </ul><p> |
| 1078 | 1079 | The ease with which Fossil can be enhanced is part of the reason why |
| 1079 | - it has picked up so many useful features and has become so useful | |
| 1080 | - and powerful over its 19-year history. | |
| 1080 | + it has picked up so many useful features and has become so | |
| 1081 | + powerful over its 19-year history. | |
| 1081 | 1082 | |
| 1082 | 1083 | ## Conclusion |
| 1083 | 1084 | |
| 1084 | 1085 | There are more reasons to prefer Fossil over Git, but |
| 1085 | 1086 | I think 101 are sufficient to prove my point. |
| 1086 | 1087 |
| --- www/hundredandone.md | |
| +++ www/hundredandone.md | |
| @@ -271,11 +271,12 @@ | |
| 271 | 1. **Fossil allows check-ins to be identified by timestamp**<p> |
| 272 | The canonical name for a check-in is its hash. Both Git and Fossil |
| 273 | allow a check-in to be identified by any unique prefix of its hash. |
| 274 | But only Fossil allows a check-in to also be identified by its |
| 275 | timestamp. The names "2026-02-02T16:03:24.852Z" and "fdebbedbd9a99165" |
| 276 | both refer to [the same check-in](https://sqlite.org/src/fdebbedbd9a99165), |
| 277 | but the first one has the advantage of giving some time |
| 278 | context rather than just being a seemingly random sequence of hexadecimal |
| 279 | digits. It is possible that two or more check-ins can have the same |
| 280 | timestamp, in which case the timestamp would be ambiguous. And a |
| 281 | check-in timestamp can be changed after it is committed, by using |
| @@ -404,11 +405,11 @@ | |
| 404 | everything you need to host a complete software project website. |
| 405 | Indeed, the |
| 406 | [canonical Fossil website](https://fossil-scm.org/home) is just |
| 407 | an instance of Fossil running on the self-hosting Fossil repository. |
| 408 | If you clone the Fossil self-hosting repository, you don't get just |
| 409 | code - you get the entire website. (Exception: |
| 410 | [Fossil Forum](https://sqlite.org/forum) is hosted separately using |
| 411 | a separate Fossil repository, so you'd actually need to clone that |
| 412 | one too, in order to get the whole website.) |
| 413 | |
| 414 | 1. **Using Fossil, backing up your project website is just a sync.**<p> |
| @@ -1061,25 +1062,25 @@ | |
| 1061 | 1. **The Fossil source code is easy to enhance with new web pages and |
| 1062 | commands.**<p> |
| 1063 | The design of the Fossil implementation makes it easy to extend with |
| 1064 | new capabilities as needs arise. |
| 1065 | <ul type="disk"> |
| 1066 | <li> The code is C89. |
| 1067 | <li> Each command and each web page runs as a separate process which |
| 1068 | exits when the action completes, so minor memory leaks are not |
| 1069 | a concern. |
| 1070 | <li> Preprocessors that run over the Fossil source code before the |
| 1071 | code reaches the C compiler help |
| 1072 | to ensure that there are no SQL injections nor XSS vulnerabilities. |
| 1073 | <li> New commands and new web pages can be added simply by adding a new |
| 1074 | procedure to do the necessary computation. The name, properties, |
| 1075 | and documentation for the command or webpage are extracted from |
| 1076 | specially formatted comments just prior to the procedure. |
| 1077 | </ul><p> |
| 1078 | The ease with which Fossil can be enhanced is part of the reason why |
| 1079 | it has picked up so many useful features and has become so useful |
| 1080 | and powerful over its 19-year history. |
| 1081 | |
| 1082 | ## Conclusion |
| 1083 | |
| 1084 | There are more reasons to prefer Fossil over Git, but |
| 1085 | I think 101 are sufficient to prove my point. |
| 1086 |
| --- www/hundredandone.md | |
| +++ www/hundredandone.md | |
| @@ -271,11 +271,12 @@ | |
| 271 | 1. **Fossil allows check-ins to be identified by timestamp**<p> |
| 272 | The canonical name for a check-in is its hash. Both Git and Fossil |
| 273 | allow a check-in to be identified by any unique prefix of its hash. |
| 274 | But only Fossil allows a check-in to also be identified by its |
| 275 | timestamp. The names "2026-02-02T16:03:24.852Z" and "fdebbedbd9a99165" |
| 276 | both refer to |
| 277 | [the same check-in](https://sqlite.org/src/info/fdebbedbd9a99165), |
| 278 | but the first one has the advantage of giving some time |
| 279 | context rather than just being a seemingly random sequence of hexadecimal |
| 280 | digits. It is possible that two or more check-ins can have the same |
| 281 | timestamp, in which case the timestamp would be ambiguous. And a |
| 282 | check-in timestamp can be changed after it is committed, by using |
| @@ -404,11 +405,11 @@ | |
| 405 | everything you need to host a complete software project website. |
| 406 | Indeed, the |
| 407 | [canonical Fossil website](https://fossil-scm.org/home) is just |
| 408 | an instance of Fossil running on the self-hosting Fossil repository. |
| 409 | If you clone the Fossil self-hosting repository, you don't get just |
| 410 | code - you get the entire website. (Exception: |
| 411 | [Fossil Forum](https://sqlite.org/forum) is hosted separately using |
| 412 | a separate Fossil repository, so you'd actually need to clone that |
| 413 | one too, in order to get the whole website.) |
| 414 | |
| 415 | 1. **Using Fossil, backing up your project website is just a sync.**<p> |
| @@ -1061,25 +1062,25 @@ | |
| 1062 | 1. **The Fossil source code is easy to enhance with new web pages and |
| 1063 | commands.**<p> |
| 1064 | The design of the Fossil implementation makes it easy to extend with |
| 1065 | new capabilities as needs arise. |
| 1066 | <ul type="disk"> |
| 1067 | <li> The code is simple C89. |
| 1068 | <li> Each command or web page runs as a separate process which |
| 1069 | exits when the action completes, so minor memory leaks are not |
| 1070 | a concern. |
| 1071 | <li> Preprocessors run over the Fossil source code before the |
| 1072 | code reaches the C compiler to verify |
| 1073 | that there are no SQL injections nor XSS vulnerabilities. |
| 1074 | <li> New commands and webpages can be added simply by adding a new |
| 1075 | procedure to do the necessary computation. The name, properties, |
| 1076 | and documentation for the command or webpage are extracted from |
| 1077 | specially formatted comments just prior to the procedure. |
| 1078 | </ul><p> |
| 1079 | The ease with which Fossil can be enhanced is part of the reason why |
| 1080 | it has picked up so many useful features and has become so |
| 1081 | powerful over its 19-year history. |
| 1082 | |
| 1083 | ## Conclusion |
| 1084 | |
| 1085 | There are more reasons to prefer Fossil over Git, but |
| 1086 | I think 101 are sufficient to prove my point. |
| 1087 |