Documentation Source Text

Hex Artifact Content
Login

Artifact f46fd579bd02426f17ebaa2ca5db67505ed3f10e8d0c51e46fa4b0685635e26e:


0000: 3c 74 69 74 6c 65 3e 57 68 79 20 53 51 4c 69 74  <title>Why SQLit
0010: 65 20 44 6f 65 73 20 4e 6f 74 20 55 73 65 20 47  e Does Not Use G
0020: 69 74 3c 2f 74 69 74 6c 65 3e 0a 0a 3c 74 61 62  it</title>..<tab
0030: 6c 65 5f 6f 66 5f 63 6f 6e 74 65 6e 74 73 3e 0a  le_of_contents>.
0040: 0a 3c 68 31 3e 49 6e 74 72 6f 64 75 63 74 69 6f  .<h1>Introductio
0050: 6e 3c 2f 68 31 3e 0a 0a 3c 70 3e 0a 53 51 4c 69  n</h1>..<p>.SQLi
0060: 74 65 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20  te does not use 
0070: 74 68 65 0a 5b 68 74 74 70 73 3a 2f 2f 67 69 74  the.[https://git
0080: 2d 73 63 6d 2e 6f 72 67 7c 47 69 74 5d 20 76 65  -scm.org|Git] ve
0090: 72 73 69 6f 6e 20 63 6f 6e 74 72 6f 6c 20 73 79  rsion control sy
00a0: 73 74 65 6d 2e 0a 53 51 4c 69 74 65 20 75 73 65  stem..SQLite use
00b0: 73 0a 5b 68 74 74 70 73 3a 2f 2f 66 6f 73 73 69  s.[https://fossi
00c0: 6c 2d 73 63 6d 2e 6f 72 67 2f 7c 46 6f 73 73 69  l-scm.org/|Fossi
00d0: 6c 5d 20 69 6e 73 74 65 61 64 2e 0a 46 6f 73 73  l] instead..Foss
00e0: 69 6c 20 61 6e 64 20 47 69 74 20 61 72 65 20 62  il and Git are b
00f0: 6f 74 68 20 62 6c 6f 63 6b 2d 63 68 61 69 6e 20  oth block-chain 
0100: 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 20  version-control 
0110: 73 79 73 74 65 6d 73 2e 0a 54 68 65 79 20 61 72  systems..They ar
0120: 65 20 62 6f 74 68 20 22 64 69 73 74 72 69 62 75  e both "distribu
0130: 74 65 64 22 2e 20 20 54 68 65 79 20 62 6f 74 68  ted".  They both
0140: 20 73 74 6f 72 65 20 63 6f 6e 74 65 6e 74 20 61   store content a
0150: 73 20 61 20 0a 73 65 71 75 65 6e 63 65 20 6f 66  s a .sequence of
0160: 20 69 6d 6d 75 74 61 62 6c 65 20 63 68 65 63 6b   immutable check
0170: 2d 69 6e 73 20 69 64 65 6e 74 69 66 69 65 64 20  -ins identified 
0180: 62 79 20 61 20 63 72 79 70 74 6f 67 72 61 70 68  by a cryptograph
0190: 69 63 0a 68 61 73 68 2e 20 20 47 69 74 20 69 73  ic.hash.  Git is
01a0: 20 77 69 6c 64 6c 79 20 70 6f 70 75 6c 61 72 2c   wildly popular,
01b0: 20 74 6f 20 74 68 65 20 70 6f 69 6e 74 20 74 68   to the point th
01c0: 61 74 20 6d 61 6e 79 20 79 6f 75 6e 67 65 72 0a  at many younger.
01d0: 64 65 76 65 6c 6f 70 65 72 73 20 61 72 65 20 66  developers are f
01e0: 61 6d 69 6c 69 61 72 20 77 69 74 68 20 6e 6f 74  amiliar with not
01f0: 68 69 6e 67 20 65 6c 73 65 2e 20 20 41 6e 64 20  hing else.  And 
0200: 79 65 74 2c 20 74 68 65 20 64 65 76 65 6c 6f 70  yet, the develop
0210: 65 72 73 0a 6f 66 20 53 51 4c 69 74 65 20 70 72  ers.of SQLite pr
0220: 65 66 65 72 20 46 6f 73 73 69 6c 2e 20 20 54 68  efer Fossil.  Th
0230: 69 73 20 61 72 74 69 63 6c 65 20 74 72 69 65 73  is article tries
0240: 20 74 6f 20 65 78 70 6c 61 69 6e 20 77 68 79 2e   to explain why.
0250: 0a 0a 3c 68 31 3e 41 20 46 65 77 20 52 65 61 73  ..<h1>A Few Reas
0260: 6f 6e 73 20 57 68 79 20 53 51 4c 69 74 65 20 44  ons Why SQLite D
0270: 6f 65 73 20 4e 6f 74 20 55 73 65 20 47 69 74 3c  oes Not Use Git<
0280: 2f 68 31 3e 0a 0a 3c 6f 6c 3e 0a 3c 6c 69 3e 3c  /h1>..<ol>.<li><
0290: 70 3e 0a 57 69 74 68 20 47 69 74 2c 20 69 74 20  p>.With Git, it 
02a0: 69 73 20 76 65 72 79 20 64 69 66 66 69 63 75 6c  is very difficul
02b0: 74 20 74 6f 20 66 69 6e 64 20 74 68 65 20 73 75  t to find the su
02c0: 63 63 65 73 73 6f 72 73 20 28 64 65 63 65 6e 64  ccessors (decend
02d0: 65 6e 74 73 29 20 6f 66 0a 61 20 63 68 65 63 6b  ents) of.a check
02e0: 2d 69 6e 2e 0a 0a 3c 70 3e 0a 47 69 74 20 61 6c  -in...<p>.Git al
02f0: 6c 6f 77 73 20 79 6f 75 20 74 6f 20 67 6f 20 62  lows you to go b
0300: 61 63 6b 77 61 72 64 73 20 69 6e 20 74 69 6d 65  ackwards in time
0310: 2e 20 20 47 69 76 65 6e 20 74 68 65 20 6c 61 74  .  Given the lat
0320: 65 73 74 0a 63 68 65 63 6b 2d 69 6e 20 6f 6e 20  est.check-in on 
0330: 61 20 62 72 61 6e 63 68 2c 20 47 69 74 20 6c 65  a branch, Git le
0340: 74 73 20 79 6f 75 20 73 65 65 20 61 6c 6c 20 74  ts you see all t
0350: 68 65 20 61 6e 63 65 73 74 6f 72 73 20 6f 66 20  he ancestors of 
0360: 74 68 61 74 0a 63 68 65 63 6b 2d 69 6e 2e 20 20  that.check-in.  
0370: 42 75 74 20 47 69 74 20 6d 61 6b 65 73 20 69 74  But Git makes it
0380: 20 76 65 72 79 20 64 69 66 66 69 63 75 6c 74 20   very difficult 
0390: 74 6f 20 6d 6f 76 65 20 69 6e 20 74 68 65 20 6f  to move in the o
03a0: 74 68 65 72 0a 64 69 72 65 63 74 69 6f 6e 2e 20  ther.direction. 
03b0: 20 47 69 76 65 6e 20 73 6f 6d 65 20 68 69 73 74   Given some hist
03c0: 6f 72 69 63 61 6c 20 63 68 65 63 6b 2d 69 6e 2c  orical check-in,
03d0: 20 69 74 20 69 73 20 71 75 69 74 65 20 63 68 61   it is quite cha
03e0: 6c 6c 65 6e 67 69 6e 67 0a 69 6e 20 47 69 74 20  llenging.in Git 
03f0: 74 6f 20 66 69 6e 64 20 6f 75 74 20 77 68 61 74  to find out what
0400: 20 63 61 6d 65 20 6e 65 78 74 2e 20 20 49 74 20   came next.  It 
0410: 63 61 6e 20 62 65 20 64 6f 6e 65 2c 20 62 75 74  can be done, but
0420: 20 69 74 20 69 73 20 73 75 66 66 69 63 69 65 6e   it is sufficien
0430: 74 6c 79 0a 64 69 66 66 69 63 75 6c 74 20 61 6e  tly.difficult an
0440: 64 20 73 6c 6f 77 20 74 68 61 74 20 6e 6f 62 6f  d slow that nobo
0450: 64 79 20 65 76 65 72 20 64 6f 65 73 20 69 74 2e  dy ever does it.
0460: 20 20 54 68 65 72 65 20 69 73 20 6e 6f 20 62 75    There is no bu
0470: 74 74 6f 6e 20 69 6e 0a 47 69 74 48 75 62 20 74  tton in.GitHub t
0480: 68 61 74 20 73 68 6f 77 73 20 74 68 65 20 64 65  hat shows the de
0490: 73 63 65 6e 64 65 6e 74 73 20 6f 66 20 61 20 63  scendents of a c
04a0: 68 65 63 6b 2d 69 6e 2e 0a 0a 3c 70 3e 0a 54 68  heck-in...<p>.Th
04b0: 69 73 20 69 73 20 61 20 64 65 61 6c 2d 62 72 65  is is a deal-bre
04c0: 61 6b 65 72 2c 20 61 20 73 68 6f 77 2d 73 74 6f  aker, a show-sto
04d0: 70 70 65 72 2e 20 20 54 68 65 20 70 72 69 6e 63  pper.  The princ
04e0: 69 70 6c 65 20 6d 61 69 6e 74 61 69 6e 65 72 0a  iple maintainer.
04f0: 6f 66 20 53 51 4c 69 74 65 20 63 61 6e 6e 6f 74  of SQLite cannot
0500: 20 66 75 6e 63 74 69 6f 6e 20 65 66 66 65 63 74   function effect
0510: 69 76 65 6c 79 20 77 69 74 68 6f 75 74 20 62 65  ively without be
0520: 69 6e 67 20 61 62 6c 65 20 74 6f 20 76 69 65 77  ing able to view
0530: 0a 74 68 65 20 73 75 63 63 65 73 73 6f 72 73 20  .the successors 
0540: 6f 66 20 61 20 63 68 65 63 6b 2d 69 6e 2e 20 20  of a check-in.  
0550: 54 68 69 73 20 6f 6e 65 20 69 73 73 75 65 20 69  This one issue i
0560: 73 20 73 75 66 66 69 63 69 65 6e 74 20 72 65 61  s sufficient rea
0570: 73 6f 6e 0a 74 6f 20 6e 6f 74 20 75 73 65 20 47  son.to not use G
0580: 69 74 2c 20 69 6e 20 74 68 65 20 76 69 65 77 20  it, in the view 
0590: 6f 66 20 74 68 65 20 64 65 73 69 67 6e 65 72 20  of the designer 
05a0: 6f 66 20 53 51 4c 69 74 65 2e 0a 0a 3c 6c 69 3e  of SQLite...<li>
05b0: 3c 70 3e 0a 54 68 65 20 6d 65 6e 74 61 6c 20 6d  <p>.The mental m
05c0: 6f 64 65 6c 20 66 6f 72 20 47 69 74 20 69 73 20  odel for Git is 
05d0: 6e 65 65 64 6c 65 73 73 6c 79 20 63 6f 6d 70 6c  needlessly compl
05e0: 65 78 20 61 6e 64 20 63 6f 6e 73 65 71 75 65 6e  ex and consequen
05f0: 74 6c 79 0a 64 69 73 74 72 61 63 74 73 20 61 74  tly.distracts at
0600: 74 65 6e 74 69 6f 6e 20 66 72 6f 6d 20 73 6f 66  tention from sof
0610: 74 77 61 72 65 20 75 6e 64 65 72 20 64 65 76 65  tware under deve
0620: 6c 6f 70 6d 65 6e 74 2e 20 20 41 20 75 73 65 72  lopment.  A user
0630: 20 6f 66 20 47 69 74 0a 6e 65 65 64 73 20 74 6f   of Git.needs to
0640: 20 6b 65 65 70 20 61 6c 6c 20 6f 66 20 74 68 65   keep all of the
0650: 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 20 6d 69   following in mi
0660: 6e 64 3a 0a 3c 6f 6c 20 74 79 70 65 3d 27 61 27  nd:.<ol type='a'
0670: 3e 0a 3c 6c 69 3e 20 54 68 65 20 77 6f 72 6b 69  >.<li> The worki
0680: 6e 67 20 64 69 72 65 63 74 6f 72 79 0a 3c 6c 69  ng directory.<li
0690: 3e 20 54 68 65 20 22 69 6e 64 65 78 22 20 6f 72  > The "index" or
06a0: 20 73 74 61 67 69 6e 67 20 61 72 65 61 0a 3c 6c   staging area.<l
06b0: 69 3e 20 54 68 65 20 6c 6f 63 61 6c 20 68 65 61  i> The local hea
06c0: 64 0a 3c 6c 69 3e 20 54 68 65 20 6c 6f 63 61 6c  d.<li> The local
06d0: 20 63 6f 70 79 20 6f 66 20 74 68 65 20 72 65 6d   copy of the rem
06e0: 6f 74 65 20 68 65 61 64 0a 3c 6c 69 3e 20 54 68  ote head.<li> Th
06f0: 65 20 61 63 74 75 61 6c 20 72 65 6d 6f 74 65 20  e actual remote 
0700: 68 65 61 64 0a 3c 2f 6f 6c 3e 0a 3c 70 3e 0a 47  head.</ol>.<p>.G
0710: 69 74 20 63 6f 6e 74 61 69 6e 73 20 63 6f 6d 6d  it contains comm
0720: 61 6e 64 73 20 28 6f 72 20 6f 70 74 69 6f 6e 73  ands (or options
0730: 20 6f 6e 20 63 6f 6d 6d 61 6e 64 73 29 20 66 6f   on commands) fo
0740: 72 20 6d 6f 76 69 6e 67 20 61 6e 64 0a 63 6f 6d  r moving and.com
0750: 70 61 72 69 6e 67 20 63 6f 6e 74 65 6e 74 20 62  paring content b
0760: 65 74 77 65 65 6e 20 61 6c 6c 20 6f 66 20 74 68  etween all of th
0770: 65 73 65 20 6c 6f 63 61 74 69 6f 6e 73 2e 20 0a  ese locations. .
0780: 0a 3c 70 3e 49 6e 20 63 6f 6e 74 72 61 73 74 2c  .<p>In contrast,
0790: 0a 46 6f 73 73 69 6c 20 75 73 65 72 73 20 6f 6e  .Fossil users on
07a0: 6c 79 20 6e 65 65 64 20 74 6f 20 74 68 69 6e 6b  ly need to think
07b0: 20 61 62 6f 75 74 20 74 68 65 69 72 20 77 6f 72   about their wor
07c0: 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 61  king directory a
07d0: 6e 64 0a 74 68 65 20 63 68 65 63 6b 2d 69 6e 20  nd.the check-in 
07e0: 74 68 65 79 20 61 72 65 20 77 6f 72 6b 69 6e 67  they are working
07f0: 20 6f 6e 2e 20 20 54 68 61 74 20 69 73 20 36 30   on.  That is 60
0800: 25 20 6c 65 73 73 20 64 69 73 74 72 61 63 74 69  % less distracti
0810: 6f 6e 2e 0a 45 76 65 72 79 20 64 65 76 65 6c 6f  on..Every develo
0820: 70 65 72 20 68 61 73 20 61 20 66 69 6e 69 74 65  per has a finite
0830: 20 6e 75 6d 62 65 72 20 6f 66 20 62 72 61 69 6e   number of brain
0840: 2d 63 79 63 6c 65 73 2e 20 20 46 6f 73 73 69 6c  -cycles.  Fossil
0850: 0a 72 65 71 75 69 72 65 73 20 66 65 77 65 72 20  .requires fewer 
0860: 62 72 61 69 6e 2d 63 79 63 6c 65 73 20 74 6f 20  brain-cycles to 
0870: 6f 70 65 72 61 74 65 2c 20 74 68 75 73 20 66 72  operate, thus fr
0880: 65 65 69 6e 67 20 75 70 20 0a 69 6e 74 65 6c 6c  eeing up .intell
0890: 65 63 74 75 61 6c 20 72 65 73 6f 75 72 63 65 73  ectual resources
08a0: 20 74 6f 20 66 6f 63 75 73 20 6f 6e 20 74 68 65   to focus on the
08b0: 20 73 6f 66 74 77 61 72 65 20 75 6e 64 65 72 20   software under 
08c0: 64 65 76 65 6c 6f 70 6d 65 6e 74 2e 0a 0a 3c 6c  development...<l
08d0: 69 3e 3c 70 3e 0a 47 69 74 20 64 6f 65 73 20 6e  i><p>.Git does n
08e0: 6f 74 20 74 72 61 63 6b 20 62 72 61 6e 63 68 20  ot track branch 
08f0: 68 69 73 74 6f 72 79 2e 20 20 54 68 69 73 20 6d  history.  This m
0900: 61 6b 65 73 20 72 65 76 69 65 77 20 6f 66 20 68  akes review of h
0910: 69 73 74 6f 72 69 63 61 6c 0a 62 72 61 6e 63 68  istorical.branch
0920: 65 73 20 74 65 64 69 6f 75 73 2e 0a 0a 3c 70 3e  es tedious...<p>
0930: 0a 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20  .As an example, 
0940: 63 6f 6e 73 69 64 65 72 20 64 69 73 70 6c 61 79  consider display
0950: 20 6f 66 20 61 20 73 69 6e 67 6c 65 20 68 69 73   of a single his
0960: 74 6f 72 69 63 61 6c 0a 62 72 61 6e 63 68 20 6f  torical.branch o
0970: 66 20 53 51 4c 69 74 65 20 61 73 20 72 65 6e 64  f SQLite as rend
0980: 65 72 65 64 20 62 79 20 47 69 74 48 75 62 20 61  ered by GitHub a
0990: 6e 64 20 62 79 20 46 6f 73 73 69 6c 3a 0a 0a 3c  nd by Fossil:..<
09a0: 75 6c 3e 0a 3c 6c 69 3e 3c 62 3e 47 69 74 48 75  ul>.<li><b>GitHu
09b0: 62 3a 3c 2f 62 3e 20 5b 68 74 74 70 73 3a 2f 2f  b:</b> [https://
09c0: 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 63 6b 79  github.com/macky
09d0: 6c 65 2f 73 71 6c 69 74 65 2f 63 6f 6d 6d 69 74  le/sqlite/commit
09e0: 73 2f 70 72 65 66 65 72 2d 63 6f 72 6f 75 74 69  s/prefer-corouti
09f0: 6e 65 2d 73 6f 72 74 2d 73 75 62 71 75 65 72 79  ne-sort-subquery
0a00: 5d 0a 3c 6c 69 3e 3c 62 3e 46 6f 73 73 69 6c 3a  ].<li><b>Fossil:
0a10: 3c 2f 62 3e 20 5b 68 74 74 70 73 3a 2f 2f 73 71  </b> [https://sq
0a20: 6c 69 74 65 2e 6f 72 67 2f 73 72 63 2f 74 69 6d  lite.org/src/tim
0a30: 65 6c 69 6e 65 3f 72 3d 70 72 65 66 65 72 2d 63  eline?r=prefer-c
0a40: 6f 72 6f 75 74 69 6e 65 2d 73 6f 72 74 2d 73 75  oroutine-sort-su
0a50: 62 71 75 65 72 79 5d 0a 3c 2f 75 6c 3e 0a 0a 3c  bquery].</ul>..<
0a60: 70 3e 0a 54 68 65 20 46 6f 73 73 69 6c 20 76 69  p>.The Fossil vi
0a70: 65 77 20 63 6c 65 61 72 6c 79 20 73 68 6f 77 73  ew clearly shows
0a80: 20 74 68 61 74 20 74 68 65 20 62 72 61 6e 63 68   that the branch
0a90: 20 77 61 73 20 65 76 65 6e 74 75 61 6c 6c 79 20   was eventually 
0aa0: 6d 65 72 67 65 64 20 62 61 63 6b 20 69 6e 74 6f  merged back into
0ab0: 0a 74 72 75 6e 6b 2e 20 20 49 74 20 73 68 6f 77  .trunk.  It show
0ac0: 73 20 77 68 65 72 65 20 74 68 65 20 62 72 61 6e  s where the bran
0ad0: 63 68 20 73 74 61 72 74 65 64 2c 20 61 6e 64 20  ch started, and 
0ae0: 69 74 20 73 68 6f 77 73 20 74 77 6f 20 6f 63 63  it shows two occ
0af0: 61 73 69 6f 6e 73 20 77 68 65 72 65 20 63 68 61  asions where cha
0b00: 6e 67 65 73 0a 6f 6e 20 74 72 75 6e 6b 20 77 65  nges.on trunk we
0b10: 72 65 20 6d 65 72 67 65 64 20 69 6e 74 6f 20 74  re merged into t
0b20: 68 65 20 62 72 61 6e 63 68 2e 20 20 47 69 74 48  he branch.  GitH
0b30: 75 62 20 73 68 6f 77 73 20 6e 6f 6e 65 20 6f 66  ub shows none of
0b40: 20 74 68 69 73 2e 20 20 49 6e 20 66 61 63 74 2c   this.  In fact,
0b50: 20 74 68 65 0a 47 69 74 48 75 62 20 64 69 73 70   the.GitHub disp
0b60: 6c 61 79 20 69 73 20 6d 6f 73 74 6c 79 20 75 73  lay is mostly us
0b70: 65 6c 65 73 73 20 69 6e 20 74 72 79 69 6e 67 20  eless in trying 
0b80: 74 6f 20 66 69 67 75 72 65 20 6f 75 74 20 77 68  to figure out wh
0b90: 61 74 20 68 61 70 70 65 6e 65 64 2e 0a 0a 3c 6c  at happened...<l
0ba0: 69 3e 3c 70 3e 0a 47 69 74 20 6c 61 63 6b 73 20  i><p>.Git lacks 
0bb0: 6e 61 74 69 76 65 20 77 69 6b 69 20 61 6e 64 20  native wiki and 
0bc0: 62 75 67 20 74 72 61 63 6b 69 6e 67 2e 0a 49 66  bug tracking..If
0bd0: 20 79 6f 75 20 77 61 6e 74 20 74 68 65 73 65 20   you want these 
0be0: 65 73 73 65 6e 74 69 61 6c 20 66 65 61 74 75 72  essential featur
0bf0: 65 73 2c 20 79 6f 75 20 68 61 76 65 20 74 6f 20  es, you have to 
0c00: 69 6e 73 74 61 6c 6c 20 61 64 64 69 74 69 6f 6e  install addition
0c10: 61 6c 20 73 6f 66 74 77 61 72 65 0a 73 75 63 68  al software.such
0c20: 20 61 73 20 47 69 74 4c 61 62 2c 20 6f 72 20 65   as GitLab, or e
0c30: 6c 73 65 20 75 73 65 20 61 20 74 68 69 72 64 2d  lse use a third-
0c40: 70 61 72 74 79 20 73 65 72 76 69 63 65 20 73 75  party service su
0c50: 63 68 20 61 73 20 47 69 74 48 75 62 2e 20 20 41  ch as GitHub.  A
0c60: 6e 64 20 65 76 65 6e 0a 74 68 65 6e 2c 20 74 68  nd even.then, th
0c70: 65 20 77 69 6b 69 20 61 6e 64 20 62 75 67 20 72  e wiki and bug r
0c80: 65 70 6f 72 74 73 20 61 72 65 20 63 65 6e 74 72  eports are centr
0c90: 61 6c 69 7a 65 64 2c 20 6e 6f 74 20 64 69 73 74  alized, not dist
0ca0: 72 69 62 75 74 65 64 2e 0a 0a 3c 6c 69 3e 3c 70  ributed...<li><p
0cb0: 3e 0a 47 69 74 20 72 65 71 75 69 72 65 73 20 6d  >.Git requires m
0cc0: 6f 72 65 20 61 64 6d 69 6e 69 73 74 72 61 74 69  ore administrati
0cd0: 76 65 20 73 75 70 70 6f 72 74 2e 0a 53 65 74 74  ve support..Sett
0ce0: 69 6e 67 20 75 70 20 61 20 77 65 62 73 69 74 65  ing up a website
0cf0: 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 20 74   for a project t
0d00: 6f 20 75 73 65 20 47 69 74 20 72 65 71 75 69 72  o use Git requir
0d10: 65 73 20 61 20 6c 6f 74 20 6d 6f 72 65 20 73 6f  es a lot more so
0d20: 66 74 77 61 72 65 2c 0a 61 6e 64 20 61 20 6c 6f  ftware,.and a lo
0d30: 74 20 6d 6f 72 65 20 77 6f 72 6b 2c 20 74 68 61  t more work, tha
0d40: 6e 20 73 65 74 74 69 6e 67 20 75 70 20 61 20 73  n setting up a s
0d50: 69 6d 69 6c 61 72 20 73 69 74 65 20 77 69 74 68  imilar site with
0d60: 20 61 6e 20 69 6e 74 65 67 72 61 74 65 64 20 70   an integrated p
0d70: 61 63 6b 61 67 65 0a 6c 69 6b 65 20 46 6f 73 73  ackage.like Foss
0d80: 69 6c 2e 0a 0a 3c 6c 69 3e 3c 70 3e 4e 6f 62 6f  il...<li><p>Nobo
0d90: 64 79 20 72 65 61 6c 6c 79 20 75 6e 64 65 72 73  dy really unders
0da0: 74 61 6e 64 73 20 47 69 74 2e 0a 3c 69 6d 67 20  tands Git..<img 
0db0: 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77  src="https://www
0dc0: 2e 66 6f 73 73 69 6c 2d 73 63 6d 2e 6f 72 67 2f  .fossil-scm.org/
0dd0: 66 6f 73 73 69 6c 2f 64 6f 63 2f 74 72 75 6e 6b  fossil/doc/trunk
0de0: 2f 77 77 77 2f 78 6b 63 64 2d 67 69 74 2e 67 69  /www/xkcd-git.gi
0df0: 66 22 3e 3c 62 72 3e 0a 28 63 72 65 64 69 74 3a  f"><br>.(credit:
0e00: 20 5b 68 74 74 70 73 3a 2f 2f 78 6b 63 64 2e 63   [https://xkcd.c
0e10: 6f 6d 2f 31 35 39 37 2f 5d 29 0a 3c 2f 6f 6c 3e  om/1597/]).</ol>
0e20: 0a 0a 3c 68 32 3e 53 65 65 20 41 6c 73 6f 3c 2f  ..<h2>See Also</
0e30: 68 32 3e 0a 0a 3c 70 3e 4f 74 68 65 72 20 70 61  h2>..<p>Other pa
0e40: 67 65 73 20 74 68 61 74 20 74 61 6c 6b 20 61 62  ges that talk ab
0e50: 6f 75 74 20 46 6f 73 73 69 6c 20 61 6e 64 20 47  out Fossil and G
0e60: 69 74 20 69 6e 63 6c 75 64 65 3a 0a 3c 75 6c 3e  it include:.<ul>
0e70: 0a 3c 6c 69 3e 3c 70 3e 5b 68 74 74 70 73 3a 2f  .<li><p>[https:/
0e80: 2f 66 6f 73 73 69 6c 2d 73 63 6d 2e 6f 72 67 2f  /fossil-scm.org/
0e90: 66 6f 73 73 69 6c 2f 64 6f 63 2f 74 72 75 6e 6b  fossil/doc/trunk
0ea0: 2f 77 77 77 2f 66 6f 73 73 69 6c 2d 76 2d 67 69  /www/fossil-v-gi
0eb0: 74 2e 77 69 6b 69 7c 46 6f 73 73 69 6c 20 76 73  t.wiki|Fossil vs
0ec0: 2e 20 47 69 74 5d 0a 3c 6c 69 3e 3c 70 3e 5b 68  . Git].<li><p>[h
0ed0: 74 74 70 73 3a 2f 2f 77 77 77 2e 66 6f 73 73 69  ttps://www.fossi
0ee0: 6c 2d 73 63 6d 2e 6f 72 67 2f 66 6f 73 73 69 6c  l-scm.org/fossil
0ef0: 2f 64 6f 63 2f 74 72 75 6e 6b 2f 77 77 77 2f 71  /doc/trunk/www/q
0f00: 75 6f 74 65 73 2e 77 69 6b 69 7c 57 68 61 74 20  uotes.wiki|What 
0f10: 6f 74 68 65 72 73 20 73 61 79 20 61 62 6f 75 74  others say about
0f20: 20 46 6f 73 73 69 6c 20 61 6e 64 20 47 69 74 5d   Fossil and Git]
0f30: 0a 3c 2f 75 6c 3e 0a 0a 3c 68 31 3e 41 20 47 69  .</ul>..<h1>A Gi
0f40: 74 2d 55 73 65 72 27 73 20 47 75 69 64 65 20 54  t-User's Guide T
0f50: 6f 20 41 63 63 65 73 73 69 6e 67 20 53 51 4c 69  o Accessing SQLi
0f60: 74 65 20 53 6f 75 72 63 65 20 43 6f 64 65 3c 2f  te Source Code</
0f70: 68 31 3e 0a 0a 3c 70 3e 0a 49 66 20 79 6f 75 20  h1>..<p>.If you 
0f80: 61 72 65 20 61 20 64 65 76 6f 74 65 64 20 47 69  are a devoted Gi
0f90: 74 20 75 73 65 72 20 61 6e 64 20 68 61 76 65 20  t user and have 
0fa0: 6e 6f 20 69 6e 74 65 6e 74 69 6f 6e 20 6f 66 20  no intention of 
0fb0: 63 68 61 6e 67 69 6e 67 2c 0a 79 6f 75 20 63 61  changing,.you ca
0fc0: 6e 20 73 74 69 6c 6c 20 65 61 73 69 6c 79 20 61  n still easily a
0fd0: 63 63 65 73 73 20 53 51 4c 69 74 65 2e 20 20 54  ccess SQLite.  T
0fe0: 68 69 73 20 73 65 63 74 69 6f 6e 20 67 69 76 65  his section give
0ff0: 73 20 73 6f 6d 65 20 68 69 6e 74 73 0a 6f 6e 20  s some hints.on 
1000: 68 6f 77 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 3c  how to do so...<
1010: 68 32 3e 47 69 74 48 75 62 20 4d 69 72 72 6f 72  h2>GitHub Mirror
1020: 73 3c 2f 68 32 3e 0a 0a 3c 70 3e 0a 54 68 65 72  s</h2>..<p>.Ther
1030: 65 20 69 73 20 61 20 6d 69 72 72 6f 72 20 6f 66  e is a mirror of
1040: 20 74 68 65 20 53 51 4c 69 74 65 20 73 6f 75 72   the SQLite sour
1050: 63 65 20 74 72 65 65 20 6f 6e 20 47 69 74 48 75  ce tree on GitHu
1060: 62 20 61 74 0a 5b 68 74 74 70 73 3a 2f 2f 67 69  b at.[https://gi
1070: 74 68 75 62 2e 63 6f 6d 2f 6d 61 63 6b 79 6c 65  thub.com/mackyle
1080: 2f 73 71 6c 69 74 65 5d 2e 20 20 54 68 69 73 20  /sqlite].  This 
1090: 6d 69 72 72 6f 72 20 69 73 20 6d 61 69 6e 74 61  mirror is mainta
10a0: 69 6e 65 64 0a 62 79 20 75 73 65 72 20 22 6d 61  ined.by user "ma
10b0: 63 6b 79 6c 65 22 20 77 68 6f 20 69 73 20 75 6e  ckyle" who is un
10c0: 61 66 66 69 6c 69 61 74 65 64 20 77 69 74 68 2c  affiliated with,
10d0: 20 61 6e 64 20 75 6e 6b 6e 6f 77 6e 20 74 6f 2c   and unknown to,
10e0: 0a 74 68 65 20 6f 66 66 69 63 69 61 6c 20 53 51  .the official SQ
10f0: 4c 69 74 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74  Lite development
1100: 20 74 65 61 6d 2e 20 20 57 65 20 64 6f 20 6e 6f   team.  We do no
1110: 74 20 6b 6e 6f 77 20 6d 61 63 6b 79 6c 65 2c 0a  t know mackyle,.
1120: 62 75 74 20 77 65 20 6f 62 73 65 72 76 65 20 74  but we observe t
1130: 68 61 74 20 68 65 20 64 6f 65 73 20 61 20 74 65  hat he does a te
1140: 72 72 69 66 69 63 20 6a 6f 62 20 6f 66 20 6b 65  rrific job of ke
1150: 65 70 69 6e 67 20 68 69 73 20 6d 69 72 72 6f 72  eping his mirror
1160: 0a 63 75 72 72 65 6e 74 2c 20 61 6e 64 20 73 6f  .current, and so
1170: 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20   if you want to 
1180: 61 63 63 65 73 73 20 74 68 65 20 53 51 4c 69 74  access the SQLit
1190: 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 6e  e source code on
11a0: 0a 47 69 74 48 75 62 2c 20 68 69 73 20 6d 69 72  .GitHub, his mir
11b0: 72 6f 72 20 69 73 20 74 68 65 20 72 65 63 6f 6d  ror is the recom
11c0: 6d 65 6e 64 65 64 20 73 6f 75 72 63 65 2e 0a 0a  mended source...
11d0: 3c 68 32 3e 57 65 62 20 41 63 63 65 73 73 3c 2f  <h2>Web Access</
11e0: 68 32 3e 0a 0a 3c 70 3e 0a 54 68 65 20 5b 68 74  h2>..<p>.The [ht
11f0: 74 70 73 3a 2f 2f 73 71 6c 69 74 65 2e 6f 72 67  tps://sqlite.org
1200: 2f 73 72 63 2f 74 69 6d 65 6c 69 6e 65 7c 53 51  /src/timeline|SQ
1210: 4c 69 74 65 20 46 6f 73 73 69 6c 20 52 65 70 6f  Lite Fossil Repo
1220: 73 69 74 6f 72 79 5d 20 63 6f 6e 74 61 69 6e 73  sitory] contains
1230: 20 6c 69 6e 6b 73 0a 66 6f 72 20 64 6f 77 6e 6c   links.for downl
1240: 6f 61 64 69 6e 67 20 20 61 20 54 61 72 62 61 6c  oading  a Tarbal
1250: 6c 2c 20 5a 49 50 20 41 72 63 68 69 76 65 2c 20  l, ZIP Archive, 
1260: 6f 72 20 5b 53 51 4c 69 74 65 20 41 72 63 68 69  or [SQLite Archi
1270: 76 65 5d 20 66 6f 72 20 61 6e 79 0a 68 69 73 74  ve] for any.hist
1280: 6f 72 69 63 61 6c 20 76 65 72 73 69 6f 6e 20 6f  orical version o
1290: 66 20 53 51 4c 69 74 65 2e 20 20 54 68 65 20 55  f SQLite.  The U
12a0: 52 4c 73 20 66 6f 72 20 74 68 65 73 65 20 64 6f  RLs for these do
12b0: 77 6e 6c 6f 61 64 73 20 61 72 65 0a 73 69 6d 70  wnloads are.simp
12c0: 6c 65 20 61 6e 64 20 63 61 6e 20 62 65 20 69 6e  le and can be in
12d0: 63 6f 72 70 6f 72 61 74 65 64 20 65 61 73 69 6c  corporated easil
12e0: 79 20 69 6e 74 6f 20 61 75 74 6f 6d 61 74 65 64  y into automated
12f0: 20 74 6f 6f 6c 73 2e 20 20 54 68 65 20 66 6f 72   tools.  The for
1300: 6d 61 74 20 69 73 3a 0a 0a 3c 63 65 6e 74 65 72  mat is:..<center
1310: 3e 0a 3c 74 74 3e 68 74 74 70 73 3a 2f 2f 73 71  >.<tt>https://sq
1320: 6c 69 74 65 2e 6f 72 67 2f 73 72 63 2f 74 61 72  lite.org/src/tar
1330: 62 61 6c 6c 2f 3c 2f 74 74 3e 3c 69 3e 56 45 52  ball/</tt><i>VER
1340: 53 49 4f 4e 3c 2f 69 3e 3c 74 74 3e 2f 73 71 6c  SION</i><tt>/sql
1350: 69 74 65 2e 74 61 72 2e 67 7a 3c 2f 74 74 3e 0a  ite.tar.gz</tt>.
1360: 3c 2f 63 65 6e 74 65 72 3e 0a 0a 3c 70 3e 0a 53  </center>..<p>.S
1370: 69 6d 70 6c 79 20 72 65 70 6c 61 63 65 20 3c 69  imply replace <i
1380: 3e 56 45 52 53 49 4f 4e 3c 2f 69 3e 20 77 69 74  >VERSION</i> wit
1390: 68 20 73 6f 6d 65 20 64 65 73 63 72 69 70 74 69  h some descripti
13a0: 6f 6e 20 6f 66 20 74 68 65 20 76 65 72 73 69 6f  on of the versio
13b0: 6e 20 74 6f 20 62 65 0a 64 6f 77 6e 6c 6f 61 64  n to be.download
13c0: 65 64 2e 20 20 54 68 65 20 3c 69 3e 56 45 52 53  ed.  The <i>VERS
13d0: 49 4f 4e 3c 2f 69 3e 20 63 61 6e 20 62 65 20 61  ION</i> can be a
13e0: 20 70 72 65 66 69 78 20 6f 66 20 74 68 65 20 63   prefix of the c
13f0: 72 79 70 74 6f 67 72 61 70 68 69 63 20 68 61 73  ryptographic has
1400: 68 0a 6e 61 6d 65 20 6f 66 20 61 20 73 70 65 63  h.name of a spec
1410: 69 66 69 63 20 63 68 65 63 6b 2d 69 6e 2c 20 6f  ific check-in, o
1420: 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20  r the name of a 
1430: 62 72 61 6e 63 68 20 28 69 6e 20 77 68 69 63 68  branch (in which
1440: 20 63 61 73 65 20 74 68 65 0a 6d 6f 73 74 20 72   case the.most r
1450: 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66  ecent version of
1460: 20 74 68 65 20 62 72 61 6e 63 68 20 69 73 20 66   the branch is f
1470: 65 74 63 68 65 64 29 20 6f 72 20 61 20 74 61 67  etched) or a tag
1480: 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 63 0a   for a specific.
1490: 63 68 65 63 6b 2d 69 6e 20 6c 69 6b 65 20 22 76  check-in like "v
14a0: 65 72 73 69 6f 6e 2d 33 2e 32 33 2e 30 22 2e 0a  ersion-3.23.0"..
14b0: 0a 3c 68 32 3e 46 6f 73 73 69 6c 20 41 63 63 65  .<h2>Fossil Acce
14c0: 73 73 3c 2f 68 32 3e 0a 0a 3c 70 3e 0a 46 6f 73  ss</h2>..<p>.Fos
14d0: 73 69 6c 20 69 73 20 72 65 61 6c 6c 79 20 65 61  sil is really ea
14e0: 73 79 20 74 6f 20 69 6e 73 74 61 6c 6c 20 61 6e  sy to install an
14f0: 64 20 75 73 65 2e 20 20 48 65 72 65 20 61 72 65  d use.  Here are
1500: 20 74 68 65 20 73 74 65 70 73 20 66 6f 72 20 75   the steps for u
1510: 6e 69 78 2e 0a 28 57 69 6e 64 6f 77 73 20 69 73  nix..(Windows is
1520: 20 73 69 6d 69 6c 61 72 2e 29 0a 0a 3c 6f 6c 3e   similar.)..<ol>
1530: 0a 3c 6c 69 3e 0a 44 6f 77 6e 6c 6f 61 64 20 74  .<li>.Download t
1540: 68 65 20 73 65 6c 66 2d 63 6f 6e 74 61 69 6e 65  he self-containe
1550: 64 20 46 6f 73 73 69 6c 20 65 78 65 63 75 74 61  d Fossil executa
1560: 62 6c 65 20 66 72 6f 6d 0a 5b 68 74 74 70 73 3a  ble from.[https:
1570: 2f 2f 66 6f 73 73 69 6c 2d 73 63 6d 2e 6f 72 67  //fossil-scm.org
1580: 2f 66 6f 73 73 69 6c 2f 75 76 2f 64 6f 77 6e 6c  /fossil/uv/downl
1590: 6f 61 64 2e 68 74 6d 6c 5d 20 61 6e 64 20 70 75  oad.html] and pu
15a0: 74 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65  t the executable
15b0: 0a 73 6f 6d 65 77 68 65 72 65 20 6f 6e 20 79 6f  .somewhere on yo
15c0: 75 72 20 24 50 41 54 48 2e 0a 3c 6c 69 3e 3c 74  ur $PATH..<li><t
15d0: 74 3e 6d 6b 64 69 72 20 7e 2f 66 6f 73 73 69 6c  t>mkdir ~/fossil
15e0: 73 3c 2f 74 74 3e 0a 3c 6c 69 3e 3c 74 74 3e 66  s</tt>.<li><tt>f
15f0: 6f 73 73 69 6c 20 63 6c 6f 6e 65 20 68 74 74 70  ossil clone http
1600: 73 3a 2f 2f 73 71 6c 69 74 65 2e 6f 72 67 2f 73  s://sqlite.org/s
1610: 72 63 20 7e 2f 66 6f 73 73 69 6c 73 2f 73 71 6c  rc ~/fossils/sql
1620: 69 74 65 2e 66 6f 73 73 69 6c 3c 2f 74 74 3e 0a  ite.fossil</tt>.
1630: 3c 6c 69 3e 3c 74 74 3e 6d 6b 64 69 72 20 7e 2f  <li><tt>mkdir ~/
1640: 73 71 6c 69 74 65 3b 20 63 64 20 7e 2f 73 71 6c  sqlite; cd ~/sql
1650: 69 74 65 3c 2f 74 74 3e 0a 3c 6c 69 3e 3c 74 74  ite</tt>.<li><tt
1660: 3e 66 6f 73 73 69 6c 20 6f 70 65 6e 20 7e 2f 66  >fossil open ~/f
1670: 6f 73 73 69 6c 73 2f 73 71 6c 69 74 65 2e 66 6f  ossils/sqlite.fo
1680: 73 73 69 6c 20 2e 3c 2f 74 74 3e 0a 3c 2f 6f 6c  ssil .</tt>.</ol
1690: 3e 0a 0a 3c 70 3e 0a 53 75 62 73 65 71 75 65 6e  >..<p>.Subsequen
16a0: 74 6c 79 2c 20 74 6f 20 75 70 64 61 74 65 20 79  tly, to update y
16b0: 6f 75 72 20 63 68 65 63 6b 2d 6f 75 74 2c 20 73  our check-out, s
16c0: 69 6d 70 6c 79 20 74 79 70 65 3a 0a 0a 3c 62 6c  imply type:..<bl
16d0: 6f 63 6b 71 75 6f 74 65 3e 0a 3c 74 74 3e 66 6f  ockquote>.<tt>fo
16e0: 73 73 69 6c 20 75 70 20 3c 2f 74 74 3e 3c 69 3e  ssil up </tt><i>
16f0: 56 45 52 53 49 4f 4e 3c 2f 69 3e 0a 3c 2f 62 6c  VERSION</i>.</bl
1700: 6f 63 6b 71 75 6f 74 65 3e 0a 0a 3c 70 3e 0a 55  ockquote>..<p>.U
1710: 73 65 20 22 74 72 75 6e 6b 22 20 66 6f 72 20 76  se "trunk" for v
1720: 65 72 73 69 6f 6e 20 74 6f 20 67 65 74 20 74 68  ersion to get th
1730: 65 20 6c 61 74 65 73 74 20 74 72 75 6e 6b 20 76  e latest trunk v
1740: 65 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69 74 65  ersion of SQLite
1750: 2e 0a 4f 72 20 75 73 65 20 61 20 70 72 65 66 69  ..Or use a prefi
1760: 78 20 6f 66 20 61 20 63 72 79 70 74 6f 67 72 61  x of a cryptogra
1770: 70 68 69 63 20 68 61 73 68 20 6e 61 6d 65 2c 20  phic hash name, 
1780: 6f 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 73  or the name of s
1790: 6f 6d 65 20 62 72 61 6e 63 68 0a 6f 72 20 74 61  ome branch.or ta
17a0: 67 2e 0a 0a 3c 70 3e 0a 55 73 65 20 74 68 65 20  g...<p>.Use the 
17b0: 22 3c 74 74 3e 66 6f 73 73 69 6c 20 75 69 3c 2f  "<tt>fossil ui</
17c0: 74 74 3e 22 20 63 6f 6d 6d 61 6e 64 20 66 72 6f  tt>" command fro
17d0: 6d 20 77 69 74 68 69 6e 20 74 68 65 20 7e 2f 73  m within the ~/s
17e0: 71 6c 69 74 65 20 63 68 65 63 6b 6f 75 74 20 74  qlite checkout t
17f0: 6f 0a 62 72 69 6e 67 20 75 70 20 61 20 6c 6f 63  o.bring up a loc
1800: 61 6c 20 63 6f 70 79 20 6f 66 20 74 68 65 20 77  al copy of the w
1810: 65 62 73 69 74 65 2e 0a                          ebsite..