📜 ⬆️ ⬇️

Why SQLite does not use Git


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 :

  1. .
  2. «» (staging area).
  3. (HEAD).
  4. .
  5. .

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 ).

  1. Fossil - $PATH.
  2. mkdir ~/fossils
  3. fossil clone https://sqlite.org/src ~/fossils/sqlite.fossil
  4. mkdir ~/sqlite; cd ~/sqlite
  5. 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:

Source: https://habr.com/ru/post/353654/


All Articles