1. Introduction
SQLite does not use Git. Instead, we have the Fossil version control system, specifically designed and written to support SQLite.
People sometimes ask why SQLite doesn't use Git like everyone else. In the article we will try to answer this question. In addition, the third section provides tips for Git users on how to easily access SQLite source code.
1.1. Edits
The article was revised several times to clarify, respond to concerns and alarms, and correct errors found on
Hacker News ,
Reddit and
Lobsters . The full editing history is
here .
2. Some reasons why SQLite doesn't use Git
All the reasons why SQLite does not use the Git system can be expressed in one sentence: the leading SQLite developer considers this unacceptable. If you like Git and you want to use it, then great. I do not like Git and would prefer something better, in my opinion.
')
Here are some reasons why I don’t like Git:
2.1. Git makes it difficult to find descendants after committing
Git . (check-in) , Git . . - , Git , . , , . Git, GitHub, .
, Git . . ,
StackOverflow Unix :
git rev-list --all --parents | grep ".\{40\}.*.*" | awk '{print $1}'
( bash- shell , ). . . , Fossil
. .
, . Fossil , -, Fossil. : Fossil (
) «» . , , . : Fossil (
), , .

Git, , . , . , , .
2.2. Git
Git . Git :
- .
- «» (staging area).
- (HEAD).
- .
- .
Git ( ) .
, Fossil , . 60% . . Fossil , .
Git Fossil
HN:
«Fossil , … … Git».2.3. Git
Git DAG . — , . .
SQLite
GitHub Fossil.
Fossil , . , . GitHub . GitHub , .
GUI Git, . , , Git / GitHub, - , Git . , .
2.4. Git
Git — . Git - . Git . GitHub, , Git, «». GitLab, .
, Fossil — , $PATH. Git, GitHub / GitLab. -, , — .
— , ( SQLite) — .
2.5. Git
— , :
— Git. .
— . ?
— . . , . , - , .. , Git . , ,
git.
. . , . Git , . SQLite .
3. Git SQLite
Git, SQLite. .
3.1. GitHub
SQLite GitHub.
mackyle, SQLite . , . SQLite GitHub, — .
3.2.
SQLite Fossil Tarball, ZIP
SQLite SQLite. URL- , . :
https://sqlite.org/src/tarball/VERSION/sqlite.tar.gz
VERSION . ( ), , , “version-3.23.1”:
https://sqlite.org/src/tarball/version-3.23.1/sqlite.tar.gz
, “release” VERSION:
https://sqlite.org/src/tarball/release/sqlite.tar.gz
, “trunk” VERSION:
https://sqlite.org/src/tarball/trunk/sqlite.tar.gz
. ZIP SQLite “/tarball/” “/zip/”, “/sqlar/”, “.zip” “.sqlar”.
3.3. Fossil
Fossil . Unix ( Windows ).
- Fossil - $PATH.
mkdir ~/fossils
fossil clone https://sqlite.org/src ~/fossils/sqlite.fossil
mkdir ~/sqlite; cd ~/sqlite
fossil open ~/fossils/sqlite.fossil
./configure; make
( Windows MSVC
nmake /f Makefile.msc
).
Fossil,
update
:
fossil update VERSION
“trunk” SQLite. — , - . .
, VERSION.
fossil ui
~/sqLite -.
Fossil .
.
. , .
4.
, Fossil Git: