libfossil  Hex Artifact Content

Artifact fc4605a4599dd06955782c2d95b2551ff573ed49:

Wiki page [home] by stephan 2015-07-25 17:46:09.
0000: 44 20 32 30 31 35 2d 30 37 2d 32 35 54 31 37 3a  D 2015-07-25T17:
0010: 34 36 3a 30 39 2e 33 37 32 0a 4c 20 68 6f 6d 65  46:09.372.L home
0020: 0a 50 20 64 30 37 39 38 32 38 34 61 64 30 32 39  .P d0798284ad029
0030: 37 61 33 61 64 64 38 66 35 33 36 64 65 61 38 38  7a3add8f536dea88
0040: 39 34 34 66 32 38 31 64 36 32 62 0a 55 20 73 74  944f281d62b.U st
0050: 65 70 68 61 6e 0a 57 20 39 32 39 39 0a 3c 68 31  ephan.W 9299.<h1
0060: 3e 6c 69 62 66 6f 73 73 69 6c 3a 20 46 6f 73 73  >libfossil: Foss
0070: 69 6c 20 53 43 4d 20 4c 69 62 72 61 72 79 20 41  il SCM Library A
0080: 50 49 3c 2f 68 31 3e 0d 0a 0d 0a 53 65 65 20 61  PI</h1>....See a
0090: 6c 73 6f 3a 20 5b 64 6f 77 6e 6c 6f 61 64 5d 2c  lso: [download],
00a0: 20 5b 62 75 69 6c 64 69 6e 67 5d 2c 20 5b 66 2d   [building], [f-
00b0: 74 6f 6f 6c 73 5d 2c 0d 0a 5b 44 62 46 75 6e 63  tools],..[DbFunc
00c0: 74 69 6f 6e 73 5d 2c 20 5b 53 51 4c 53 6e 69 70  tions], [SQLSnip
00d0: 70 65 74 73 5d 2c 20 5b 48 61 63 6b 65 72 73 47  pets], [HackersG
00e0: 75 69 64 65 5d 2c 0d 0a 5b 68 74 74 70 3a 2f 2f  uide],..[http://
00f0: 66 6f 73 73 69 6c 2e 77 61 6e 64 65 72 69 6e 67  fossil.wandering
0100: 68 6f 72 73 65 2e 6e 65 74 2f 72 65 70 6f 73 2f  horse.net/repos/
0110: 6c 69 62 66 6f 73 73 69 6c 2f 64 6f 78 79 67 65  libfossil/doxyge
0120: 6e 2f 7c 64 6f 78 79 67 65 6e 20 64 6f 63 73 5d  n/|doxygen docs]
0130: 20 28 72 65 66 72 65 73 68 65 64 20 66 72 6f 6d   (refreshed from
0140: 20 63 75 72 72 65 6e 74 20 73 6f 75 72 63 65 73   current sources
0150: 20 72 65 6c 61 74 69 76 65 6c 79 20 66 72 65 71   relatively freq
0160: 75 65 6e 74 6c 79 29 2c 20 5b 68 74 74 70 73 3a  uently), [https:
0170: 2f 2f 64 6f 63 73 2e 67 6f 6f 67 6c 65 2e 63 6f  //docs.google.co
0180: 6d 2f 64 6f 63 75 6d 65 6e 74 2f 64 2f 31 33 67  m/document/d/13g
0190: 52 53 6c 36 2d 62 6a 33 4c 56 2d 4f 4b 67 45 2d  RSl6-bj3LV-OKgE-
01a0: 42 73 71 76 71 46 33 33 55 46 59 57 33 6f 61 33  BsqvqF33UFYW3oa3
01b0: 41 32 4f 4a 43 35 51 53 59 2f 76 69 65 77 7c 22  A2OJC5QSY/view|"
01c0: 73 32 22 20 73 63 72 69 70 74 20 62 69 6e 64 69  s2" script bindi
01d0: 6e 67 73 5d 0d 0a 0d 0a 0d 0a 54 68 69 73 20 73  ngs]......This s
01e0: 6f 75 72 63 65 20 63 6f 64 65 20 72 65 70 6f 73  ource code repos
01f0: 69 74 6f 72 79 20 68 6f 75 73 65 73 20 61 6e 20  itory houses an 
0200: 69 6e 2d 64 65 76 65 6c 6f 70 6d 65 6e 74 20 6c  in-development l
0210: 69 62 72 61 72 79 20 41 50 49 20 66 6f 72 20 74  ibrary API for t
0220: 68 65 20 5b 68 74 74 70 3a 2f 2f 66 6f 73 73 69  he [http://fossi
0230: 6c 2d 73 63 6d 2e 6f 72 67 7c 46 6f 73 73 69 6c  l-scm.org|Fossil
0240: 20 53 43 4d 5d 2e 20 54 68 65 20 70 72 69 6d 61   SCM]. The prima
0250: 72 79 20 67 6f 61 6c 20 69 73 20 74 6f 20 70 6f  ry goal is to po
0260: 72 74 20 65 78 69 73 74 69 6e 67 20 62 65 68 61  rt existing beha
0270: 76 69 6f 75 72 20 69 6e 74 6f 20 61 20 6c 69 62  viour into a lib
0280: 72 61 72 79 20 66 6f 72 6d 20 28 74 68 65 20 76  rary form (the v
0290: 31 20 61 70 70 20 69 73 20 65 78 74 72 65 6d 65  1 app is extreme
02a0: 6c 79 20 6d 6f 6e 6f 6c 69 74 68 69 63 20 69 6e  ly monolithic in
02b0: 20 6e 61 74 75 72 65 29 2e 20 54 68 69 73 20 65   nature). This e
02c0: 66 66 6f 72 74 2c 20 6f 66 66 69 63 69 61 6c 6c  ffort, officiall
02d0: 79 20 63 61 6c 6c 65 64 20 22 6c 69 62 66 6f 73  y called "libfos
02e0: 73 69 6c 22 2c 20 69 6e 74 65 6e 64 73 20 74 6f  sil", intends to
02f0: 20 69 6e 74 72 6f 64 75 63 65 20 6e 6f 20 62 72   introduce no br
0300: 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 2c 20  eaking changes, 
0310: 61 6e 64 20 74 68 65 20 69 6e 74 65 6e 74 69 6f  and the intentio
0320: 6e 20 69 73 20 74 6f 20 70 72 6f 76 69 64 65 20  n is to provide 
0330: 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69  an alternative i
0340: 6e 74 65 72 66 61 63 65 20 69 6e 74 6f 20 66 6f  nterface into fo
0350: 73 73 69 6c 20 72 65 70 6f 73 69 74 6f 72 69 65  ssil repositorie
0360: 73 2c 20 61 73 20 6f 70 70 6f 73 65 64 20 74 6f  s, as opposed to
0370: 20 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 66   a replacement f
0380: 6f 72 20 74 68 65 20 63 6f 72 65 20 66 6f 73 73  or the core foss
0390: 69 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 0d  il application..
03a0: 0a 0d 0a 54 68 69 73 20 63 6f 64 65 20 63 75 72  ...This code cur
03b0: 72 65 6e 74 6c 79 20 64 6f 65 73 6e 27 74 20 64  rently doesn't d
03c0: 6f 20 6d 75 63 68 20 77 68 69 63 68 20 77 6f 75  o much which wou
03d0: 6c 64 20 69 6e 74 65 72 65 73 74 20 6e 6f 6e 2d  ld interest non-
03e0: 46 6f 73 73 69 6c 20 68 61 63 6b 65 72 73 2e 20  Fossil hackers. 
03f0: 49 74 20 6d 69 67 68 74 20 62 65 20 6f 66 20 69  It might be of i
0400: 6e 74 65 72 65 73 74 20 74 6f 20 74 68 6f 73 65  nterest to those
0410: 20 77 61 6e 74 69 6e 67 20 74 6f 20 66 6f 6c 6c   wanting to foll
0420: 6f 77 20 6f 72 20 70 61 72 74 69 63 69 70 61 74  ow or participat
0430: 65 20 69 6e 20 74 68 65 20 64 65 73 69 67 6e 20  e in the design 
0440: 6f 66 20 6c 69 62 66 6f 73 73 69 6c 2e 0d 0a 0d  of libfossil....
0450: 0a 3c 73 74 72 6f 6e 67 3e 4c 69 63 65 6e 73 65  .<strong>License
0460: 3a 3c 2f 73 74 72 6f 6e 67 3e 20 73 61 6d 65 20  :</strong> same 
0470: 61 73 20 46 6f 73 73 69 6c 3a 20 74 68 65 20 22  as Fossil: the "
0480: 32 2d 43 6c 61 75 73 65 20 42 53 44 22 20 61 2e  2-Clause BSD" a.
0490: 6b 2e 61 2e 20 22 46 72 65 65 42 53 44 20 4c 69  k.a. "FreeBSD Li
04a0: 63 65 6e 73 65 22 20 77 69 74 68 20 74 68 65 20  cense" with the 
04b0: 73 61 6d 65 20 6c 69 63 65 6e 73 65 20 68 6f 6c  same license hol
04c0: 64 65 72 20 28 5b 68 74 74 70 3a 2f 2f 65 6e 2e  der ([http://en.
04d0: 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69  wikipedia.org/wi
04e0: 6b 69 2f 44 2e 5f 52 69 63 68 61 72 64 5f 48 69  ki/D._Richard_Hi
04f0: 70 70 7c 44 2e 20 52 69 63 68 61 72 64 20 48 69  pp|D. Richard Hi
0500: 70 70 5d 2c 20 74 68 65 20 70 72 69 6d 61 72 79  pp], the primary
0510: 20 61 75 74 68 6f 72 20 61 6e 64 20 61 72 63 68   author and arch
0520: 69 74 65 63 74 20 6f 66 20 5b 68 74 74 70 3a 2f  itect of [http:/
0530: 2f 73 71 6c 69 74 65 2e 6f 72 67 7c 73 71 6c 69  /sqlite.org|sqli
0540: 74 65 5d 20 61 6e 64 20 5b 68 74 74 70 3a 2f 2f  te] and [http://
0550: 66 6f 73 73 69 6c 2d 73 63 6d 2e 6f 72 67 7c 46  fossil-scm.org|F
0560: 6f 73 73 69 6c 5d 29 2e 20 54 6f 20 6b 65 65 70  ossil]). To keep
0570: 20 74 68 69 73 20 63 6f 64 65 20 61 73 20 22 6c   this code as "l
0580: 69 63 65 6e 73 65 20 63 6c 65 61 6e 22 20 61 73  icense clean" as
0590: 20 70 6f 73 73 69 62 6c 65 20 76 69 73 2d 61 2d   possible vis-a-
05a0: 76 69 73 20 46 6f 73 73 69 6c 2c 20 63 6f 64 65  vis Fossil, code
05b0: 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 72   contributions r
05c0: 65 71 75 69 72 65 20 68 61 76 69 6e 67 20 61 20  equire having a 
05d0: 46 6f 73 73 69 6c 20 63 6f 70 79 72 69 67 68 74  Fossil copyright
05e0: 20 77 61 69 76 65 72 20 6f 6e 20 66 69 6c 65 2e   waiver on file.
05f0: 20 41 6c 6c 20 46 6f 73 73 69 6c 20 63 6f 6d 6d   All Fossil comm
0600: 69 74 74 65 72 73 20 28 74 68 6f 73 65 20 77 68  itters (those wh
0610: 6f 20 68 61 76 65 20 61 20 73 69 67 6e 65 64 20  o have a signed 
0620: 61 20 6c 69 63 65 6e 73 65 20 77 61 69 76 65 72  a license waiver
0630: 20 6f 6e 20 66 69 6c 65 20 77 69 74 68 20 44 52   on file with DR
0640: 48 2c 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f  H, whether or no
0650: 74 20 74 68 65 79 20 61 63 74 75 61 6c 6c 79 20  t they actually 
0660: 63 6f 6d 6d 69 74 20 63 6f 64 65 20 74 6f 20 46  commit code to F
0670: 6f 73 73 69 6c 29 20 61 72 65 20 75 6e 72 65 73  ossil) are unres
0680: 65 72 76 65 64 6c 79 20 77 65 6c 63 6f 6d 65 64  ervedly welcomed
0690: 20 61 73 20 6c 69 62 66 6f 73 73 69 6c 20 63 6f   as libfossil co
06a0: 6e 74 72 69 62 75 74 6f 72 73 20 2d 20 65 6d 61  ntributors - ema
06b0: 69 6c 20 79 6f 75 72 20 70 72 65 66 65 72 72 65  il your preferre
06c0: 64 20 75 73 65 72 20 6e 61 6d 65 20 74 6f 20 67  d user name to g
06d0: 65 74 20 61 6e 20 61 63 63 6f 75 6e 74 3a 20 73  et an account: s
06e0: 67 62 65 61 6c 40 67 6f 6f 67 6c 65 6d 61 69 6c  gbeal@googlemail
06f0: 2e 63 6f 6d 2e 20 47 65 74 74 69 6e 67 20 61 20  .com. Getting a 
0700: 77 61 69 76 65 72 20 69 73 20 61 20 73 69 6d 70  waiver is a simp
0710: 6c 65 20 6d 61 74 74 65 72 20 6f 66 20 5b 68 74  le matter of [ht
0720: 74 70 3a 2f 2f 77 77 77 2e 66 6f 73 73 69 6c 2d  tp://www.fossil-
0730: 73 63 6d 2e 6f 72 67 2f 69 6e 64 65 78 2e 68 74  scm.org/index.ht
0740: 6d 6c 2f 64 6f 63 2f 74 72 75 6e 6b 2f 77 77 77  ml/doc/trunk/www
0750: 2f 63 6f 70 79 72 69 67 68 74 2d 72 65 6c 65 61  /copyright-relea
0760: 73 65 2e 68 74 6d 6c 7c 66 69 6c 6c 69 6e 67 20  se.html|filling 
0770: 69 74 20 6f 75 74 20 61 6e 64 20 73 65 6e 64 69  it out and sendi
0780: 6e 67 20 69 74 20 6f 66 66 20 74 6f 20 44 52 48  ng it off to DRH
0790: 5d 20 61 74 20 74 68 65 20 61 64 64 72 65 73 73  ] at the address
07a0: 20 73 68 6f 77 6e 20 6f 6e 20 74 68 65 20 66 6f   shown on the fo
07b0: 72 6d 20 28 70 6c 65 61 73 65 20 61 74 74 61 63  rm (please attac
07c0: 68 20 61 20 6e 6f 74 65 20 69 6e 64 69 63 61 74  h a note indicat
07d0: 69 6e 67 20 74 68 61 74 20 74 68 65 20 77 61 69  ing that the wai
07e0: 76 65 72 20 69 73 20 66 6f 72 20 6c 69 62 66 6f  ver is for libfo
07f0: 73 73 69 6c 20 28 61 73 20 6f 70 70 6f 73 65 64  ssil (as opposed
0800: 20 74 6f 20 66 6f 73 73 69 6c 29 2c 20 73 6f 20   to fossil), so 
0810: 74 68 61 74 20 68 65 20 6b 6e 6f 77 73 20 6e 6f  that he knows no
0820: 20 61 64 64 69 74 69 6f 6e 61 6c 20 65 66 66 6f   additional effo
0830: 72 74 20 69 73 20 6e 65 63 65 73 73 61 72 79 20  rt is necessary 
0840: 6f 6e 20 68 69 73 20 70 61 72 74 21 29 2e 20 54  on his part!). T
0850: 68 6f 73 65 20 77 69 74 68 6f 75 74 20 61 20 77  hose without a w
0860: 61 69 76 65 72 20 6d 61 79 20 6f 66 20 63 6f 75  aiver may of cou
0870: 72 73 65 20 63 6f 6e 74 72 69 62 75 74 65 20 69  rse contribute i
0880: 6e 20 6f 74 68 65 72 20 77 61 79 73 20 28 69 64  n other ways (id
0890: 65 61 73 2c 20 64 69 73 63 75 73 73 69 6f 6e 73  eas, discussions
08a0: 2c 20 64 6f 63 73 2c 20 2e 2e 2e 29 2e 0d 0a 0d  , docs, ...)....
08b0: 0a 3c 68 32 3e 4f 6e 6c 69 6e 65 20 44 65 6d 6f  .<h2>Online Demo
08c0: 3c 2f 68 32 3e 0d 0a 0d 0a 57 65 20 68 61 76 65  </h2>....We have
08d0: 20 61 6e 20 6f 6e 6c 69 6e 65 20 64 65 6d 6f 6e   an online demon
08e0: 73 74 72 61 74 69 6f 6e 20 6f 66 20 43 47 49 20  stration of CGI 
08f0: 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 69 6d 70  applications imp
0900: 6c 65 6d 65 6e 74 65 64 20 75 73 69 6e 67 20 74  lemented using t
0910: 68 65 20 5b 74 68 31 69 73 68 5d 20 62 69 6e 64  he [th1ish] bind
0920: 69 6e 67 73 20 74 6f 20 6c 69 62 66 6f 73 73 69  ings to libfossi
0930: 6c 20 68 65 72 65 3a 0d 0a 0d 0a 20 20 20 20 5b  l here:....    [
0940: 68 74 74 70 3a 2f 2f 66 6f 73 73 69 6c 2e 77 61  http://fossil.wa
0950: 6e 64 65 72 69 6e 67 68 6f 72 73 65 2e 6e 65 74  nderinghorse.net
0960: 2f 72 65 70 6f 73 2f 6c 69 62 66 6f 73 73 69 6c  /repos/libfossil
0970: 2f 63 67 69 64 65 6d 6f 2f 69 6e 64 65 78 2e 63  /cgidemo/index.c
0980: 67 69 5d 0d 0a 0d 0a 54 68 6f 73 65 20 70 61 72  gi]....Those par
0990: 74 69 63 75 6c 61 72 20 73 63 72 69 70 74 20 62  ticular script b
09a0: 69 6e 64 69 6e 67 73 20 68 61 76 65 20 62 65 65  indings have bee
09b0: 6e 20 6f 62 73 6f 6c 65 74 65 64 20 62 79 20 6e  n obsoleted by n
09c0: 65 77 65 72 20 6f 6e 65 73 20 28 62 61 73 65 64  ewer ones (based
09d0: 20 6f 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20   on a different 
09e0: 6c 61 6e 67 75 61 67 65 29 2c 20 62 75 74 20 74  language), but t
09f0: 68 65 20 6e 65 77 65 72 20 6f 6e 65 73 20 64 6f  he newer ones do
0a00: 6e 27 74 20 79 65 74 20 68 61 76 65 20 43 47 49  n't yet have CGI
0a10: 2d 6c 65 76 65 6c 20 64 65 6d 6f 73 2e 0d 0a 0d  -level demos....
0a20: 0a 3c 68 32 3e 53 74 61 74 75 73 2c 20 54 4f 44  .<h2>Status, TOD
0a30: 4f 73 2c 20 61 6e 64 20 57 68 61 74 6e 6f 74 3c  Os, and Whatnot<
0a40: 2f 68 32 3e 0d 0a 0d 0a 41 6c 6c 20 6f 66 20 74  /h2>....All of t
0a50: 68 69 73 20 63 6f 64 65 20 69 73 20 61 6e 20 3c  his code is an <
0a60: 65 6d 3e 65 78 70 65 72 69 6d 65 6e 74 3c 2f 65  em>experiment</e
0a70: 6d 3e 2c 20 61 6e 64 20 69 74 20 64 6f 65 73 20  m>, and it does 
0a80: 6e 6f 74 20 72 65 70 72 65 73 65 6e 74 20 61 20  not represent a 
0a90: 63 6f 6d 6d 69 74 6d 65 6e 74 20 62 79 20 61 6e  commitment by an
0aa0: 79 6f 6e 65 20 74 68 61 74 20 61 6e 79 20 6f 66  yone that any of
0ab0: 20 74 68 69 73 20 63 6f 64 65 20 77 69 6c 6c 20   this code will 
0ac0: 73 6f 6d 65 20 64 61 79 20 65 6e 64 20 75 70 20  some day end up 
0ad0: 6c 69 76 69 6e 67 20 75 6e 64 65 72 20 74 68 65  living under the
0ae0: 20 75 6d 62 72 65 6c 6c 61 20 6f 66 20 74 68 65   umbrella of the
0af0: 20 6c 61 72 67 65 72 20 46 6f 73 73 69 6c 20 53   larger Fossil S
0b00: 43 4d 20 70 72 6f 6a 65 63 74 2e 20 49 66 20 61  CM project. If a
0b10: 6c 6c 20 67 6f 65 73 20 77 65 6c 6c 2c 20 74 68  ll goes well, th
0b20: 61 74 27 73 20 74 68 65 20 65 76 65 6e 74 75 61  at's the eventua
0b30: 6c 20 67 6f 61 6c 2c 20 74 68 6f 75 67 68 2e 20  l goal, though. 
0b40: 49 74 20 69 73 20 61 6c 70 68 61 20 71 75 61 6c  It is alpha qual
0b50: 69 74 79 2e 20 57 68 61 74 27 73 20 74 68 65 72  ity. What's ther
0b60: 65 20 77 6f 72 6b 73 20 62 75 74 20 69 73 20 73  e works but is s
0b70: 75 62 6a 65 63 74 20 74 6f 20 63 68 61 6e 67 65  ubject to change
0b80: 20 61 6e 64 20 74 68 65 72 65 20 69 73 20 73 74   and there is st
0b90: 69 6c 6c 20 61 20 67 72 65 61 74 20 64 65 61 6c  ill a great deal
0ba0: 20 6f 66 20 74 68 65 20 68 69 67 68 65 72 2d 6c   of the higher-l
0bb0: 65 76 65 6c 20 53 43 4d 20 62 69 74 73 20 6c 65  evel SCM bits le
0bc0: 66 74 20 74 6f 20 70 6f 72 74 20 69 6e 20 61 6e  ft to port in an
0bd0: 64 20 72 65 66 61 63 74 6f 72 20 74 6f 20 6d 61  d refactor to ma
0be0: 6b 65 20 74 68 65 6d 20 75 73 61 62 6c 65 20 76  ke them usable v
0bf0: 69 61 20 6c 69 62 72 61 72 79 2d 73 74 79 6c 65  ia library-style
0c00: 20 69 6e 74 65 72 66 61 63 65 73 2e 20 41 6e 79   interfaces. Any
0c10: 6f 6e 65 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20  one looking for 
0c20: 61 20 70 72 6f 6a 65 63 74 20 72 6f 61 64 6d 61  a project roadma
0c30: 70 2f 74 69 6d 65 6c 69 6e 65 20 69 73 20 61 73  p/timeline is as
0c40: 6b 65 64 20 72 65 73 70 65 63 74 66 75 6c 6c 79  ked respectfully
0c50: 20 74 6f 20 6c 6f 6f 6b 20 65 6c 73 65 77 68 65   to look elsewhe
0c60: 72 65 20 2d 20 74 68 65 72 65 20 69 73 20 6e 6f  re - there is no
0c70: 20 74 69 6d 65 62 6f 78 20 6f 6e 20 6e 6f 72 20   timebox on nor 
0c80: 73 63 68 65 64 75 6c 65 20 66 6f 72 20 74 68 69  schedule for thi
0c90: 73 20 70 72 6f 6a 65 63 74 2f 65 78 70 65 72 69  s project/experi
0ca0: 6d 65 6e 74 2e 20 54 68 61 74 20 73 61 69 64 3a  ment. That said:
0cb0: 20 74 68 65 20 5b 66 2d 74 6f 6f 6c 73 5d 20 64   the [f-tools] d
0cc0: 65 6d 6f 6e 73 74 72 61 74 65 20 77 68 61 74 20  emonstrate what 
0cd0: 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 69 73  functionality is
0ce0: 20 77 6f 72 6b 69 6e 67 2e 0d 0a 0d 0a 54 68 65   working.....The
0cf0: 20 63 6f 64 65 20 63 68 61 6e 67 65 73 20 63 61   code changes ca
0d00: 6e 20 62 65 20 66 6f 6c 6c 6f 77 65 64 20 76 69  n be followed vi
0d10: 61 20 5b 2f 74 69 6d 65 6c 69 6e 65 20 7c 20 74  a [/timeline | t
0d20: 68 65 20 74 69 6d 65 6c 69 6e 65 5d 2e 0d 0a 0d  he timeline]....
0d30: 0a 54 68 65 20 63 75 72 72 65 6e 74 20 70 75 62  .The current pub
0d40: 6c 69 63 20 28 61 6e 64 20 64 6f 63 75 6d 65 6e  lic (and documen
0d50: 74 65 64 29 20 41 50 49 20 63 61 6e 20 62 65 20  ted) API can be 
0d60: 66 6f 75 6e 64 20 69 6e 20 5b 2f 64 69 72 3f 6e  found in [/dir?n
0d70: 61 6d 65 3d 69 6e 63 6c 75 64 65 2f 66 6f 73 73  ame=include/foss
0d80: 69 6c 2d 73 63 6d 20 7c 20 74 68 65 20 68 65 61  il-scm | the hea
0d90: 64 65 72 20 66 69 6c 65 73 5d 2c 20 61 6e 64 20  der files], and 
0da0: 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 74 68 61  occasionally tha
0db0: 74 20 67 65 74 73 20 5b 68 74 74 70 3a 2f 2f 66  t gets [http://f
0dc0: 6f 73 73 69 6c 2e 77 61 6e 64 65 72 69 6e 67 68  ossil.wanderingh
0dd0: 6f 72 73 65 2e 6e 65 74 2f 72 65 70 6f 73 2f 6c  orse.net/repos/l
0de0: 69 62 66 6f 73 73 69 6c 2f 64 6f 78 79 67 65 6e  ibfossil/doxygen
0df0: 2f 7c 65 78 70 6f 72 74 65 64 20 74 6f 20 64 6f  /|exported to do
0e00: 78 79 67 65 6e 5d 2e 0d 0a 0d 0a 54 4f 44 4f 73  xygen].....TODOs
0e10: 2c 20 64 65 73 69 67 6e 20 64 69 73 63 75 73 73  , design discuss
0e20: 69 6f 6e 73 2c 20 65 74 63 2e 2e 2e 20 79 6f 75  ions, etc... you
0e30: 20 6d 69 67 68 74 20 77 61 6e 74 20 74 6f 20 67   might want to g
0e40: 65 74 20 61 20 63 6f 66 66 65 65 2f 74 65 65 2f  et a coffee/tee/
0e50: 62 65 65 72 20 62 65 66 6f 72 65 20 73 74 61 72  beer before star
0e60: 74 69 6e 67 20 74 68 72 6f 75 67 68 20 5b 68 74  ting through [ht
0e70: 74 70 73 3a 2f 2f 64 6f 63 73 2e 67 6f 6f 67 6c  tps://docs.googl
0e80: 65 2e 63 6f 6d 2f 64 6f 63 75 6d 65 6e 74 2f 64  e.com/document/d
0e90: 2f 31 32 67 30 73 35 41 32 54 50 58 37 2d 79 34  /12g0s5A2TPX7-y4
0ea0: 37 4e 73 77 32 33 35 72 76 73 6a 63 75 68 34 39  7Nsw235rvsjcuh49
0eb0: 54 6e 48 66 4d 44 42 34 41 53 76 6c 6f 2f 76 69  TnHfMDB4ASvlo/vi
0ec0: 65 77 7c 74 68 65 20 6c 69 73 74 5d 2e 0d 0a 0d  ew|the list]....
0ed0: 0a 3c 68 32 3e 22 52 75 6c 65 73 22 20 66 6f 72  .<h2>"Rules" for
0ee0: 20 43 6f 64 65 20 43 6f 6e 74 72 69 62 75 74 6f   Code Contributo
0ef0: 72 73 3c 2f 68 32 3e 0d 0a 0d 0a 20 20 20 2a 20  rs</h2>....   * 
0f00: 20 41 6c 6c 20 63 6f 64 65 20 63 6f 6e 74 72 69   All code contri
0f10: 62 75 74 6f 72 73 20 6d 75 73 74 20 68 61 76 65  butors must have
0f20: 20 61 20 6c 69 63 65 6e 73 65 20 77 61 69 76 65   a license waive
0f30: 72 20 6f 6e 20 66 69 6c 65 20 77 69 74 68 20 44  r on file with D
0f40: 52 48 2c 20 61 73 20 74 68 65 20 68 6f 70 65 20  RH, as the hope 
0f50: 69 73 20 74 6f 20 65 76 65 6e 74 75 61 6c 6c 79  is to eventually
0f60: 20 72 65 6c 65 61 73 65 20 74 68 69 73 20 63 6f   release this co
0f70: 64 65 20 61 73 20 74 68 65 20 6e 65 78 74 20 67  de as the next g
0f80: 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 46 6f 73  eneration of Fos
0f90: 73 69 6c 2e 20 4e 6f 6e 2d 63 6f 64 65 20 63 6f  sil. Non-code co
0fa0: 6e 74 72 69 62 75 74 69 6f 6e 73 20 61 72 65 20  ntributions are 
0fb0: 68 61 70 70 69 6c 79 20 61 63 63 65 70 74 65 64  happily accepted
0fc0: 20 66 72 6f 6d 20 61 6e 79 6f 6e 65 2e 0d 0a 20   from anyone... 
0fd0: 20 20 2a 20 20 57 68 65 6e 20 77 6f 72 6b 69 6e    *  When workin
0fe0: 67 20 6f 6e 20 62 69 74 73 20 77 68 69 63 68 20  g on bits which 
0ff0: 74 68 65 6d 73 65 6c 76 65 73 20 77 72 69 74 65  themselves write
1000: 20 74 6f 20 74 68 65 20 72 65 70 6f 73 69 74 6f   to the reposito
1010: 72 79 2c 20 65 2e 67 2e 20 63 72 65 61 74 69 6e  ry, e.g. creatin
1020: 67 20 63 68 65 63 6b 69 6e 73 2c 20 70 6c 65 61  g checkins, plea
1030: 73 65 20 62 65 20 65 78 63 65 65 64 69 6e 67 6c  se be exceedingl
1040: 79 20 63 61 72 65 66 75 6c 20 6e 6f 74 20 74 6f  y careful not to
1050: 20 63 6f 72 72 75 70 74 20 74 68 65 20 64 62 20   corrupt the db 
1060: 3a 2d 44 2e 0d 0a 20 20 20 2a 20 20 50 6c 65 61  :-D...   *  Plea
1070: 73 65 20 74 72 79 20 74 6f 20 63 6f 6e 66 6f 72  se try to confor
1080: 6d 20 74 6f 20 74 68 65 20 6f 76 65 72 61 6c 6c  m to the overall
1090: 20 63 6f 64 69 6e 67 20 73 74 79 6c 65 20 28 61   coding style (a
10a0: 73 20 6c 61 69 64 20 6f 75 74 20 62 79 20 46 6f  s laid out by Fo
10b0: 73 73 69 6c 20 76 31 29 2e 20 57 65 27 72 65 20  ssil v1). We're 
10c0: 6e 6f 74 20 70 69 63 6b 79 20 61 62 6f 75 74 20  not picky about 
10d0: 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 73  whether or not s
10e0: 70 61 63 65 73 20 62 65 6c 6f 6e 67 20 62 65 66  paces belong bef
10f0: 6f 72 65 2f 61 66 74 65 72 20 61 6e 20 3c 74 74  ore/after an <tt
1100: 3e 69 66 3c 2f 74 74 3e 2c 20 62 75 74 20 74 68  >if</tt>, but th
1110: 65 20 67 65 6e 65 72 61 6c 20 6f 76 65 72 61 6c  e general overal
1120: 6c 20 73 74 79 6c 65 20 73 68 6f 75 6c 64 20 62  l style should b
1130: 65 20 75 6e 69 66 6f 72 6d 2e 0d 0a 20 20 20 2a  e uniform...   *
1140: 20 20 50 6c 65 61 73 65 20 62 75 69 6c 64 20 77    Please build w
1150: 69 74 68 20 74 68 65 20 68 69 67 68 65 73 74 20  ith the highest 
1160: 70 6f 73 73 69 62 6c 65 20 77 61 72 6e 69 6e 67  possible warning
1170: 20 6c 65 76 65 6c 20 61 6e 64 20 65 6e 61 62 6c   level and enabl
1180: 65 20 66 61 74 61 6c 20 77 61 72 6e 69 6e 67 73  e fatal warnings
1190: 20 28 69 6e 20 47 43 43 20 61 6e 64 20 73 69 6d   (in GCC and sim
11a0: 69 6c 61 72 20 63 6f 6d 70 69 6c 65 72 73 3a 20  ilar compilers: 
11b0: 3c 74 74 3e 2d 57 61 6c 6c 20 2d 57 65 72 72 6f  <tt>-Wall -Werro
11c0: 72 3c 2f 74 74 3e 29 2e 0d 0a 20 20 20 2a 20 20  r</tt>)...   *  
11d0: 44 6f 6e 27 74 20 62 6f 74 68 65 72 20 75 73 69  Don't bother usi
11e0: 6e 67 20 62 72 61 6e 63 68 65 73 20 75 6e 6c 65  ng branches unle
11f0: 73 73 20 79 6f 75 20 72 65 61 6c 6c 79 20 77 61  ss you really wa
1200: 6e 74 20 74 6f 20 2d 20 74 68 65 20 74 72 75 6e  nt to - the trun
1210: 6b 20 68 61 73 20 6e 6f 20 73 74 61 62 69 6c 69  k has no stabili
1220: 74 79 20 67 75 61 72 61 6e 74 65 65 73 20 61 6e  ty guarantees an
1230: 64 20 69 73 20 76 65 72 79 20 6d 75 63 68 20 69  d is very much i
1240: 6e 20 66 6c 75 78 2c 20 73 6f 20 66 65 65 6c 20  n flux, so feel 
1250: 66 72 65 65 20 74 6f 20 77 6f 72 6b 20 74 68 65  free to work the
1260: 72 65 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20  re instead of a 
1270: 62 72 61 6e 63 68 20 69 66 20 79 6f 75 20 6c 69  branch if you li
1280: 6b 65 2e 0d 0a 0d 0a 54 68 65 72 65 20 69 73 20  ke.....There is 
1290: 6e 6f 74 68 69 6e 67 20 68 6f 6c 79 20 6f 72 20  nothing holy or 
12a0: 73 61 63 72 65 64 20 61 62 6f 75 74 20 74 68 69  sacred about thi
12b0: 73 20 72 65 70 6f 2c 20 73 6f 20 66 65 65 6c 20  s repo, so feel 
12c0: 66 72 65 65 20 74 6f 20 68 61 63 6b 20 61 74 20  free to hack at 
12d0: 77 69 6c 6c 2e 20 4d 6f 73 74 20 6f 66 20 74 68  will. Most of th
12e0: 65 20 6c 69 62 72 61 72 79 27 73 20 73 61 6e 69  e library's sani
12f0: 74 79 20 74 65 73 74 73 20 61 72 65 20 70 61 63  ty tests are pac
1300: 6b 61 67 65 64 20 69 6e 20 3c 74 74 3e 5b 2f 66  kaged in <tt>[/f
1310: 69 6e 66 6f 3f 6e 61 6d 65 3d 73 72 63 2f 66 2d  info?name=src/f-
1320: 73 61 6e 69 74 79 2e 63 7c 66 2d 73 61 6e 69 74  sanity.c|f-sanit
1330: 79 2e 63 5d 3c 2f 74 74 3e 2e 20 53 65 65 20 3c  y.c]</tt>. See <
1340: 74 74 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d  tt>[/finfo?name=
1350: 69 6e 63 6c 75 64 65 2f 66 6f 73 73 69 6c 2d 73  include/fossil-s
1360: 63 6d 2f 66 6f 73 73 69 6c 2d 63 6c 69 2e 68 7c  cm/fossil-cli.h|
1370: 66 6f 73 73 69 6c 2d 63 6c 69 2e 68 5d 3c 2f 74  fossil-cli.h]</t
1380: 74 3e 20 66 6f 72 20 61 20 6d 69 6e 69 2d 66 72  t> for a mini-fr
1390: 61 6d 65 77 6f 72 6b 20 74 6f 20 62 6f 6f 74 73  amework to boots
13a0: 74 72 61 70 20 6e 65 77 20 61 70 70 73 20 61 6e  trap new apps an
13b0: 64 20 5b 66 2d 74 6f 6f 6c 73 5d 2e 0d 0a 0d 0a  d [f-tools].....
13c0: 0d 0a 3c 68 32 3e 4e 65 77 73 3c 2f 68 32 3e 0d  ..<h2>News</h2>.
13d0: 0a 0d 0a 4e 6f 74 61 62 6c 65 20 63 68 61 6e 67  ...Notable chang
13e0: 65 73 20 28 6e 65 77 65 73 74 20 61 74 20 74 68  es (newest at th
13f0: 65 20 74 6f 70 29 2e 2e 2e 0d 0a 20 20 20 2a 20  e top).....   * 
1400: 20 32 30 31 33 30 39 31 39 3a 20 52 65 61 6c 69   20130919: Reali
1410: 7a 65 64 20 69 20 68 61 64 6e 27 74 20 75 70 64  zed i hadn't upd
1420: 61 74 65 64 20 74 68 65 20 6e 65 77 73 20 69 6e  ated the news in
1430: 20 61 20 77 68 69 6c 65 2e 20 46 75 74 75 72 65   a while. Future
1440: 20 6e 65 77 73 20 77 69 6c 6c 20 62 65 20 70 6f   news will be po
1450: 73 74 65 64 20 61 73 20 5b 2f 74 69 6d 65 6c 69  sted as [/timeli
1460: 6e 65 3f 79 3d 65 7c 45 76 65 6e 74 73 20 69 6e  ne?y=e|Events in
1470: 20 74 68 65 20 2f 74 69 6d 65 6c 69 6e 65 5d 2e   the /timeline].
1480: 0d 0a 20 20 20 2a 20 20 32 30 31 33 30 39 30 31  ..   *  20130901
1490: 3a 20 3c 62 3e 4d 69 6c 65 73 74 6f 6e 65 3a 3c  : <b>Milestone:<
14a0: 2f 62 3e 20 73 69 64 65 2d 62 79 2d 73 69 64 65  /b> side-by-side
14b0: 20 28 53 42 53 29 20 64 69 66 66 20 67 65 6e 65   (SBS) diff gene
14c0: 72 61 74 69 6f 6e 20 77 61 73 20 70 6f 72 74 65  ration was porte
14d0: 64 20 69 6e 2e 0d 0a 20 20 20 2a 20 20 32 30 31  d in...   *  201
14e0: 33 30 38 33 31 3a 20 3c 62 3e 4d 69 6c 65 73 74  30831: <b>Milest
14f0: 6f 6e 65 3a 3c 2f 62 3e 20 74 68 65 20 62 61 73  one:</b> the bas
1500: 69 63 20 64 69 66 66 2d 67 65 6e 65 72 61 74 69  ic diff-generati
1510: 6f 6e 20 63 6f 64 65 20 68 61 73 20 62 65 65 6e  on code has been
1520: 20 70 6f 72 74 65 64 20 69 6e 20 28 63 6f 6e 74   ported in (cont
1530: 65 78 74 20 64 69 66 66 73 20 6f 6e 6c 79 2c 20  ext diffs only, 
1540: 6e 6f 74 20 79 65 74 20 53 42 53 29 2e 0d 0a 20  not yet SBS)... 
1550: 20 20 2a 20 20 32 30 31 33 30 38 32 38 3a 20 3c    *  20130828: <
1560: 62 3e 4d 69 6c 65 73 74 6f 6e 65 3a 3c 2f 62 3e  b>Milestone:</b>
1570: 20 77 65 20 63 61 6e 20 6e 6f 77 20 63 72 65 61   we can now crea
1580: 74 65 20 6e 65 77 20 72 65 70 6f 73 2e 0d 0a 20  te new repos... 
1590: 20 20 2a 20 20 32 30 31 33 30 38 32 35 3a 20 4d    *  20130825: M
15a0: 69 6e 6f 72 20 6d 69 6c 65 73 74 6f 6e 65 3a 20  inor milestone: 
15b0: 63 6c 69 65 6e 74 73 20 63 61 6e 20 6e 6f 77 20  clients can now 
15c0: 68 6f 6f 6b 20 69 6e 20 74 6f 20 74 68 65 20 63  hook in to the c
15d0: 72 6f 73 73 6c 69 6e 6b 69 6e 67 20 70 68 61 73  rosslinking phas
15e0: 65 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 66  e. This is the f
15f0: 69 72 73 74 20 73 74 65 70 20 6e 65 65 64 65 64  irst step needed
1600: 20 66 6f 72 20 67 65 6e 65 72 61 74 69 6e 67 20   for generating 
1610: 6e 61 74 69 76 65 2d 6c 61 6e 67 75 61 67 65 20  native-language 
1620: 74 69 6d 65 6c 69 6e 65 20 76 69 65 77 73 2e 0d  timeline views..
1630: 0a 20 20 20 2a 20 20 32 30 31 33 30 38 32 34 3a  .   *  20130824:
1640: 20 4d 69 6e 6f 72 20 6d 69 6c 65 73 74 6f 6e 65   Minor milestone
1650: 3a 20 73 61 76 65 64 20 74 68 65 20 66 69 72 73  : saved the firs
1660: 74 20 77 69 6b 69 20 63 68 61 6e 67 65 73 20 74  t wiki changes t
1670: 6f 64 61 79 2e 0d 0a 20 20 20 2a 20 20 32 30 31  oday...   *  201
1680: 33 30 38 32 32 3a 20 3c 62 3e 4d 69 6c 65 73 74  30822: <b>Milest
1690: 6f 6e 65 3a 3c 2f 62 3e 20 74 68 65 20 22 76 65  one:</b> the "ve
16a0: 72 69 66 79 20 61 74 20 63 6f 6d 6d 69 74 22 20  rify at commit" 
16b0: 6f 70 65 72 61 74 69 6f 6e 2c 20 77 68 69 63 68  operation, which
16c0: 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 66 6f   ensures that fo
16d0: 73 73 69 6c 20 63 61 6e 20 61 63 74 75 61 6c 6c  ssil can actuall
16e0: 79 20 72 65 61 64 20 62 61 63 6b 20 77 68 61 74  y read back what
16f0: 20 74 68 65 20 75 73 65 72 20 77 6f 75 6c 64 20   the user would 
1700: 6c 69 6b 65 20 74 6f 20 73 61 76 65 20 62 65 66  like to save bef
1710: 6f 72 65 20 74 68 65 20 74 72 61 6e 73 61 63 74  ore the transact
1720: 69 6f 6e 20 69 73 20 63 6f 6d 6d 69 74 74 65 64  ion is committed
1730: 2c 20 69 73 20 69 6e 20 70 6c 61 63 65 20 61 6e  , is in place an
1740: 64 20 77 6f 72 6b 69 6e 67 20 28 6f 72 20 6e 6f  d working (or no
1750: 74 20 66 61 69 6c 69 6e 67 20 3b 29 2e 20 54 68  t failing ;). Th
1760: 69 73 20 77 61 73 20 74 68 65 20 6c 61 73 74 20  is was the last 
1770: 6d 69 73 73 69 6e 67 20 70 69 65 63 65 20 6f 66  missing piece of
1780: 20 74 68 65 20 6c 6f 77 65 72 2d 6c 65 76 65 6c   the lower-level
1790: 20 53 43 4d 20 62 69 74 73 20 28 6f 72 20 74 68   SCM bits (or th
17a0: 65 20 6c 61 73 74 20 70 69 65 63 65 20 77 68 69  e last piece whi
17b0: 63 68 20 77 61 73 20 68 6f 6c 64 69 6e 67 20 61  ch was holding a
17c0: 6e 79 74 68 69 6e 67 20 75 70 20 2d 20 74 68 65  nything up - the
17d0: 72 65 20 6d 69 67 68 74 20 62 65 20 6d 6f 72 65  re might be more
17e0: 20 70 69 65 63 65 73 20 74 6f 20 70 6f 72 74 20   pieces to port 
17f0: 6f 6e 63 65 20 69 20 67 65 74 20 61 72 6f 75 6e  once i get aroun
1800: 64 20 74 6f 20 74 68 65 20 27 72 65 62 75 69 6c  d to the 'rebuil
1810: 64 27 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79  d' functionality
1820: 29 2e 0d 0a 20 20 20 2a 20 20 32 30 31 33 30 38  )...   *  201308
1830: 31 39 3a 20 3c 65 6d 3e 4d 69 6e 6f 72 20 6d 69  19: <em>Minor mi
1840: 6c 65 73 74 6f 6e 65 3c 2f 65 6d 3e 3a 20 77 65  lestone</em>: we
1850: 20 63 61 6e 20 6e 6f 77 20 6c 6f 73 73 6c 65 73   can now lossles
1860: 73 6c 79 20 72 6f 75 6e 64 2d 74 72 69 70 20 45  sly round-trip E
1870: 76 65 6e 74 20 41 72 74 69 66 61 63 74 73 20 74  vent Artifacts t
1880: 6f 2f 66 72 6f 6d 20 66 6f 73 73 69 6c 2e 20 45  o/from fossil. E
1890: 76 65 6e 74 20 63 72 6f 73 73 6c 69 6e 6b 69 6e  vent crosslinkin
18a0: 67 20 77 61 73 20 69 6d 70 6c 65 6d 65 6e 74 65  g was implemente
18b0: 64 2e 0d 0a 20 20 20 2a 20 20 32 30 31 33 30 38  d...   *  201308
18c0: 31 36 3a 20 3c 62 3e 4d 69 6c 65 73 74 6f 6e 65  16: <b>Milestone
18d0: 3a 3c 2f 62 3e 20 6d 61 6e 69 66 65 73 74 20 70  :</b> manifest p
18e0: 61 72 73 69 6e 67 20 69 73 20 6d 6f 72 65 20 6f  arsing is more o
18f0: 72 20 6c 65 73 73 20 63 6f 6d 70 6c 65 74 65 2c  r less complete,
1900: 20 63 6f 76 65 72 69 6e 67 20 74 68 65 20 77 68   covering the wh
1910: 6f 6c 65 20 72 61 6e 67 65 20 6f 66 20 63 6f 6e  ole range of con
1920: 74 72 6f 6c 20 61 72 74 69 66 61 63 74 20 74 79  trol artifact ty
1930: 70 65 73 2e 20 53 74 72 69 63 74 20 76 61 6c 69  pes. Strict vali
1940: 64 61 74 69 6f 6e 20 69 73 20 64 6f 6e 65 20 28  dation is done (
1950: 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 5a 2d  including the Z-
1960: 63 61 72 64 20 68 61 73 68 29 20 74 6f 20 65 6e  card hash) to en
1970: 73 75 72 65 20 74 68 61 74 20 62 6f 67 75 73 20  sure that bogus 
1980: 6d 61 6e 69 66 65 73 74 73 20 63 61 6e 6e 6f 74  manifests cannot
1990: 20 62 65 20 72 65 61 64 20 28 61 6e 64 20 74 68   be read (and th
19a0: 65 20 67 65 6e 65 72 61 74 6f 72 20 64 6f 65 73  e generator does
19b0: 20 74 68 65 20 73 61 6d 65 20 61 74 20 73 65 76   the same at sev
19c0: 65 72 61 6c 20 64 69 66 66 65 72 65 6e 74 20 6c  eral different l
19d0: 65 76 65 6c 73 29 2e 20 22 50 61 72 73 69 6e 67  evels). "Parsing
19e0: 2c 22 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 65  ," in this conte
19f0: 78 74 20 6d 65 61 6e 73 20 63 6f 6e 76 65 72 74  xt means convert
1a00: 69 6e 67 20 61 20 72 61 77 20 46 6f 73 73 69 6c  ing a raw Fossil
1a10: 20 6d 61 6e 69 66 65 73 74 20 74 6f 20 61 20 68   manifest to a h
1a20: 69 67 68 65 72 2d 6c 65 76 65 6c 20 28 4f 4f 29  igher-level (OO)
1a30: 20 63 6f 6e 73 74 72 75 63 74 2e 20 54 68 61 74   construct. That
1a40: 20 63 6f 6e 73 74 72 75 63 74 20 63 61 6e 20 74   construct can t
1a50: 68 65 6e 20 62 65 20 6f 75 74 70 75 74 20 74 6f  hen be output to
1a60: 20 61 20 6e 65 77 20 6d 61 6e 69 66 65 73 74 20   a new manifest 
1a70: 77 68 69 63 68 20 69 73 20 69 64 65 6e 74 69 63  which is identic
1a80: 61 6c 20 74 6f 20 74 68 65 20 6f 6c 64 20 6f 6e  al to the old on
1a90: 65 2c 20 70 72 6f 76 69 64 69 6e 67 20 61 20 31  e, providing a 1
1aa0: 30 30 25 20 6c 6f 73 73 2d 6c 65 73 73 20 72 6f  00% loss-less ro
1ab0: 75 6e 64 2d 74 72 69 70 20 63 6f 6e 76 65 72 73  und-trip convers
1ac0: 69 6f 6e 2e 20 28 53 75 63 68 20 72 6f 75 6e 64  ion. (Such round
1ad0: 2d 74 72 69 70 73 20 61 72 65 20 75 73 65 66 75  -trips are usefu
1ae0: 6c 20 6f 6e 6c 79 20 66 6f 72 20 74 65 73 74 69  l only for testi
1af0: 6e 67 2f 70 72 6f 6f 66 2d 6f 66 2d 63 6f 6e 63  ng/proof-of-conc
1b00: 65 70 74 2c 20 61 6e 64 20 61 72 65 20 6e 6f 74  ept, and are not
1b10: 20 6e 65 65 64 65 64 20 69 6e 20 70 72 61 63 74   needed in pract
1b20: 69 63 65 2e 29 0d 0a 20 20 20 2a 20 20 32 30 31  ice.)..   *  201
1b30: 33 30 38 31 35 3a 20 74 68 65 20 70 61 73 74 20  30815: the past 
1b40: 63 6f 75 70 6c 65 20 64 61 79 73 20 68 61 76 65  couple days have
1b50: 20 73 65 65 6e 20 6d 61 6e 79 20 69 6e 63 72 65   seen many incre
1b60: 6d 65 6e 74 61 6c 20 61 64 64 69 74 69 6f 6e 73  mental additions
1b70: 20 74 6f 20 74 68 65 20 6d 61 6e 69 66 65 73 74   to the manifest
1b80: 20 6d 61 63 68 69 6e 65 72 79 2e 20 57 65 20 63   machinery. We c
1b90: 61 6e 20 6e 6f 77 20 22 72 6f 75 6e 64 2d 74 72  an now "round-tr
1ba0: 69 70 22 20 73 6f 6d 65 20 61 72 74 69 66 61 63  ip" some artifac
1bb0: 74 20 74 79 70 65 73 2c 20 70 61 72 73 69 6e 67  t types, parsing
1bc0: 20 74 68 65 6d 20 69 6e 74 6f 20 61 20 68 69 67   them into a hig
1bd0: 68 2d 6c 65 76 65 6c 20 66 6f 72 6d 20 61 6e 64  h-level form and
1be0: 20 72 65 2d 67 65 6e 65 72 61 74 69 6e 67 20 74   re-generating t
1bf0: 68 65 6d 20 66 72 6f 6d 20 74 68 61 74 20 68 69  hem from that hi
1c00: 67 68 2d 6c 65 76 65 6c 20 66 6f 72 6d 2e 0d 0a  gh-level form...
1c10: 20 20 20 2a 20 20 32 30 31 33 30 38 31 32 3a 20     *  20130812: 
1c20: 53 74 61 72 74 65 64 20 74 68 65 20 5b 66 2d 74  Started the [f-t
1c30: 6f 6f 6c 73 5d 2e 0d 0a 20 20 20 2a 20 20 32 30  ools]...   *  20
1c40: 31 33 30 38 31 31 3a 20 47 6f 74 20 22 6d 61 6e  130811: Got "man
1c50: 69 66 65 73 74 20 63 72 6f 73 73 6c 69 6e 6b 69  ifest crosslinki
1c60: 6e 67 22 20 6f 66 20 63 6f 6e 74 72 6f 6c 20 61  ng" of control a
1c70: 72 74 69 66 61 63 74 20 28 74 61 67 20 63 68 61  rtifact (tag cha
1c80: 6e 67 65 73 29 20 70 6f 72 74 65 64 20 69 6e 2e  nges) ported in.
1c90: 0d 0a 20 20 20 2a 20 20 32 30 31 33 30 38 31 30  ..   *  20130810
1ca0: 3a 20 3c 62 3e 4d 69 6c 65 73 74 6f 6e 65 3a 3c  : <b>Milestone:<
1cb0: 2f 62 3e 20 74 68 65 20 6c 69 62 72 61 72 79 20  /b> the library 
1cc0: 5b 2f 69 6e 66 6f 2f 37 30 36 36 36 65 31 63 31  [/info/70666e1c1
1cd0: 31 7c 73 61 76 65 64 20 69 74 73 20 66 69 72 73  1|saved its firs
1ce0: 74 20 74 61 67 5d 20 74 6f 64 61 79 21 20 28 54  t tag] today! (T
1cf0: 68 65 20 74 69 6d 65 73 74 61 6d 70 20 6f 66 20  he timestamp of 
1d00: 74 68 65 20 74 61 67 20 77 61 73 20 69 6e 74 65  the tag was inte
1d10: 6e 74 69 6f 6e 61 6c 6c 79 20 66 61 6c 73 69 66  ntionally falsif
1d20: 69 65 64 20 66 6f 72 20 74 65 73 74 69 6e 67 20  ied for testing 
1d30: 70 75 72 70 6f 73 65 73 2e 29 0d 0a 20 20 20 2a  purposes.)..   *
1d40: 20 20 32 30 31 33 30 38 30 38 3a 20 52 65 73 74    20130808: Rest
1d50: 72 75 63 74 75 72 65 64 20 73 6f 75 72 63 65 20  ructured source 
1d60: 74 72 65 65 20 61 6e 64 20 70 6f 72 74 65 64 20  tree and ported 
1d70: 62 75 69 6c 64 20 63 6f 6e 66 69 67 75 72 61 74  build configurat
1d80: 69 6f 6e 20 70 72 6f 63 65 73 73 20 74 6f 20 5b  ion process to [
1d90: 68 74 74 70 3a 2f 2f 6d 73 74 65 76 65 62 2e 67  http://msteveb.g
1da0: 69 74 68 75 62 2e 69 6f 2f 61 75 74 6f 73 65 74  ithub.io/autoset
1db0: 75 70 2f 7c 61 75 74 6f 73 65 74 75 70 5d 20 28  up/|autosetup] (
1dc0: 62 65 63 61 75 73 65 20 74 68 61 74 27 73 20 77  because that's w
1dd0: 68 61 74 20 46 6f 73 73 69 6c 20 75 73 65 73 29  hat Fossil uses)
1de0: 2e 20 45 78 69 73 74 69 6e 67 20 62 75 69 6c 64  . Existing build
1df0: 20 66 69 6c 65 73 20 28 6e 6f 74 20 74 68 65 20   files (not the 
1e00: 73 6f 75 72 63 65 73 29 20 73 74 69 6c 6c 20 72  sources) still r
1e10: 65 71 75 69 72 65 20 47 4e 55 20 4d 61 6b 65 20  equire GNU Make 
1e20: 6f 6e 20 61 20 55 6e 69 78 20 70 6c 61 74 66 6f  on a Unix platfo
1e30: 72 6d 2c 20 74 68 6f 75 67 68 2e 20 4d 61 6e 79  rm, though. Many
1e40: 20 74 68 61 6e 6b 73 20 74 6f 20 53 74 65 76 65   thanks to Steve
1e50: 20 42 65 6e 6e 65 74 74 20 28 61 75 74 6f 73 65   Bennett (autose
1e60: 74 75 70 27 73 20 61 75 74 68 6f 72 29 20 66 6f  tup's author) fo
1e70: 72 20 68 69 73 20 61 73 73 69 73 74 61 6e 63 65  r his assistance
1e80: 2e 0d 0a 20 20 20 2a 20 20 32 30 31 33 30 38 30  ...   *  2013080
1e90: 34 3a 20 70 6f 72 74 65 64 20 69 6e 20 74 68 65  4: ported in the
1ea0: 20 73 79 6d 62 6f 6c 2d 74 6f 2d 75 75 69 64 20   symbol-to-uuid 
1eb0: 72 65 73 6f 6c 75 74 69 6f 6e 20 62 69 74 73 20  resolution bits 
1ec0: 66 72 6f 6d 20 74 68 65 20 6d 61 69 6e 20 72 65  from the main re
1ed0: 70 6f 2e 20 54 68 65 73 65 20 61 72 65 20 77 68  po. These are wh
1ee0: 61 74 20 61 6c 6c 6f 77 20 61 70 70 73 20 74 6f  at allow apps to
1ef0: 20 75 73 65 20 73 68 6f 72 74 2d 66 6f 72 6d 20   use short-form 
1f00: 55 55 49 44 73 20 61 6e 64 20 73 79 6d 62 6f 6c  UUIDs and symbol
1f10: 69 63 20 6e 61 6d 65 73 20 6c 69 6b 65 20 22 74  ic names like "t
1f20: 72 75 6e 6b 2c 22 20 69 6e 73 74 65 61 64 20 6f  runk," instead o
1f30: 66 20 68 61 76 69 6e 67 20 74 6f 20 75 73 65 20  f having to use 
1f40: 34 30 2d 62 79 74 65 20 55 55 49 44 73 20 65 76  40-byte UUIDs ev
1f50: 65 72 79 77 68 65 72 65 2e 0d 0a 20 20 20 2a 20  erywhere...   * 
1f60: 20 32 30 31 33 30 38 30 33 3a 20 6d 6f 73 74 20   20130803: most 
1f70: 6f 66 20 74 68 65 20 69 6e 66 72 61 73 74 72 75  of the infrastru
1f80: 63 74 75 72 65 20 66 6f 72 20 63 72 65 61 74 69  cture for creati
1f90: 6e 67 20 5b 68 74 74 70 3a 2f 2f 66 6f 73 73 69  ng [http://fossi
1fa0: 6c 2d 73 63 6d 2e 6f 72 67 2f 69 6e 64 65 78 2e  l-scm.org/index.
1fb0: 68 74 6d 6c 2f 64 6f 63 2f 74 72 75 6e 6b 2f 77  html/doc/trunk/w
1fc0: 77 77 2f 66 69 6c 65 66 6f 72 6d 61 74 2e 77 69  ww/fileformat.wi
1fd0: 6b 69 7c 6d 61 6e 69 66 65 73 74 73 20 61 6e 64  ki|manifests and
1fe0: 20 63 6f 6e 74 72 6f 6c 20 61 72 74 69 66 61 63   control artifac
1ff0: 74 73 5d 20 69 73 20 69 6e 20 70 6c 61 63 65 2c  ts] is in place,
2000: 20 62 75 74 20 77 65 20 64 6f 6e 27 74 20 79 65   but we don't ye
2010: 74 20 77 72 69 74 65 20 74 68 65 6d 20 74 6f 20  t write them to 
2020: 74 68 65 20 64 62 2e 0d 0a 20 20 20 2a 20 20 32  the db...   *  2
2030: 30 31 33 30 38 30 31 3a 20 70 6f 72 74 65 64 20  0130801: ported 
2040: 69 6e 20 74 68 65 20 64 65 6c 74 61 20 67 65 6e  in the delta gen
2050: 65 72 61 74 69 6f 6e 2f 61 70 70 6c 79 20 63 6f  eration/apply co
2060: 64 65 20 61 6e 64 20 61 64 64 65 64 20 73 63 72  de and added scr
2070: 69 70 74 20 62 69 6e 64 69 6e 67 73 20 66 6f 72  ipt bindings for
2080: 20 74 68 65 6d 2e 0d 0a 20 20 20 2a 20 20 32 30   them...   *  20
2090: 31 33 30 37 33 30 3a 20 63 68 61 6e 67 65 64 20  130730: changed 
20a0: 69 6e 74 65 72 6e 61 6c 20 68 61 6e 64 6c 69 6e  internal handlin
20b0: 67 20 6f 66 20 44 42 73 20 66 72 6f 6d 20 31 20  g of DBs from 1 
20c0: 63 6f 6e 6e 65 63 74 69 6f 6e 20 70 65 72 20 64  connection per d
20d0: 62 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 6d 61  b to a single ma
20e0: 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f  in connection to
20f0: 20 61 6e 20 69 6e 2d 6d 65 6d 6f 72 79 20 64 62   an in-memory db
2100: 20 61 6e 64 20 61 74 74 61 63 68 69 6e 67 20 74   and attaching t
2110: 68 65 20 72 65 70 6f 2f 63 6f 6e 66 69 67 2f 63  he repo/config/c
2120: 68 65 63 6b 6f 75 74 20 74 6f 20 74 68 61 74 2e  heckout to that.
2130: 20 4e 6f 74 20 79 65 74 20 73 75 72 65 20 69 66   Not yet sure if
2140: 20 74 68 69 73 20 69 73 20 61 20 66 65 61 74 75   this is a featu
2150: 72 65 20 6f 72 20 61 20 62 75 67 2c 20 62 75 74  re or a bug, but
2160: 20 69 74 20 73 69 6d 70 6c 69 66 69 65 73 20 74   it simplifies t
2170: 68 65 20 69 6e 74 65 72 6e 61 6c 20 74 72 61 63  he internal trac
2180: 6b 69 6e 67 20 6f 66 20 64 62 20 68 61 6e 64 6c  king of db handl
2190: 65 73 20 6e 6f 74 61 62 6c 79 2e 0d 0a 20 20 20  es notably...   
21a0: 2a 20 20 32 30 31 33 30 37 32 38 3a 20 69 74 20  *  20130728: it 
21b0: 63 61 6e 20 6e 6f 77 20 73 65 61 72 63 68 20 66  can now search f
21c0: 6f 72 20 61 6e 64 20 6f 70 65 6e 20 61 20 63 68  or and open a ch
21d0: 65 63 6b 6f 75 74 20 62 61 73 65 64 20 6f 6e 20  eckout based on 
21e0: 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65  a directory name
21f0: 2c 20 61 6e 61 6c 6f 67 20 74 6f 20 68 6f 77 20  , analog to how 
2200: 76 31 20 66 69 6e 64 73 20 61 6e 20 6f 70 65 6e  v1 finds an open
2210: 20 63 68 65 63 6b 6f 75 74 2e 0d 0a 20 20 20 2a   checkout...   *
2220: 20 20 32 30 31 33 30 37 32 37 3a 20 73 74 61 72    20130727: star
2230: 74 65 64 20 77 6f 72 6b 20 6f 6e 20 61 20 5b 2f  ted work on a [/
2240: 64 69 72 3f 63 69 3d 74 69 70 26 6e 61 6d 65 3d  dir?ci=tip&name=
2250: 74 68 31 69 73 68 7c 74 68 31 69 73 68 20 73 63  th1ish|th1ish sc
2260: 72 69 70 74 20 65 6e 67 69 6e 65 20 62 69 6e 64  ript engine bind
2270: 69 6e 67 5d 20 66 6f 72 20 76 32 2e 20 49 74 20  ing] for v2. It 
2280: 69 73 20 6f 66 20 63 6f 75 72 73 65 20 61 20 77  is of course a w
2290: 6f 72 6b 2d 69 6e 2d 70 72 6f 67 72 65 73 73 20  ork-in-progress 
22a0: 62 75 74 20 69 74 20 69 73 20 65 78 74 65 6e 64  but it is extend
22b0: 65 64 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 74  ed in parallel t
22c0: 6f 20 74 68 65 20 63 6f 72 65 20 6c 69 62 20 62  o the core lib b
22d0: 65 63 61 75 73 65 20 74 68 61 74 20 73 69 6d 70  ecause that simp
22e0: 6c 69 66 69 65 73 20 74 65 73 74 69 6e 67 20 61  lifies testing a
22f0: 6e 64 20 68 65 6c 70 73 20 77 6f 72 6b 20 74 68  nd helps work th
2300: 65 20 6b 69 6e 6b 73 20 6f 75 74 20 6f 66 20 74  e kinks out of t
2310: 68 65 20 63 6f 72 65 20 41 50 49 2e 0d 0a 20 20  he core API...  
2320: 20 2a 20 20 32 30 31 33 30 37 32 36 3a 20 77 68   *  20130726: wh
2330: 65 6e 20 6f 70 65 6e 69 6e 67 20 61 20 72 65 70  en opening a rep
2340: 6f 20 64 62 2c 20 74 68 65 20 6c 69 62 72 61 72  o db, the librar
2350: 79 20 6e 6f 77 20 76 61 6c 69 64 61 74 65 73 20  y now validates 
2360: 74 68 61 74 20 69 74 20 69 73 20 61 20 72 65 70  that it is a rep
2370: 6f 20 64 62 2c 20 61 6e 64 20 63 61 6e 20 64 69  o db, and can di
2380: 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65  stinguish betwee
2390: 6e 2f 72 65 70 6f 72 74 20 76 61 72 69 6f 75 73  n/report various
23a0: 20 74 79 70 65 73 20 6f 66 20 65 72 72 6f 72 73   types of errors
23b0: 2c 20 65 2e 67 2e 20 72 65 70 6f 20 73 63 68 65  , e.g. repo sche
23c0: 6d 61 20 69 73 20 6f 75 74 20 6f 66 20 64 61 74  ma is out of dat
23d0: 61 20 6f 72 20 74 68 65 20 64 62 20 69 73 20 6e  a or the db is n
23e0: 6f 74 20 61 20 66 6f 73 73 69 6c 20 72 65 70 6f  ot a fossil repo
23f0: 2e 0d 0a 20 20 20 2a 20 20 32 30 31 33 30 37 32  ...   *  2013072
2400: 35 3a 20 72 65 6d 6f 76 65 64 20 74 68 65 20 70  5: removed the p
2410: 65 72 2d 69 6e 73 74 61 6e 63 65 20 61 6c 6c 6f  er-instance allo
2420: 63 61 74 6f 72 20 63 6f 6e 66 69 67 75 72 61 74  cator configurat
2430: 69 6f 6e 20 2d 20 69 74 20 69 73 20 6e 6f 77 20  ion - it is now 
2440: 6c 69 62 72 61 72 79 2d 77 69 64 65 2e 20 54 68  library-wide. Th
2450: 69 73 20 73 69 6d 70 6c 69 66 69 65 73 20 62 75  is simplifies bu
2460: 66 66 65 72 20 75 73 61 67 65 20 61 6e 64 20 6d  ffer usage and m
2470: 61 6b 65 73 20 69 74 20 6c 65 67 61 6c 20 74 6f  akes it legal to
2480: 20 75 73 65 20 74 68 65 6d 20 62 65 66 6f 72 65   use them before
2490: 20 69 6e 73 74 61 6e 74 69 61 74 69 6e 67 20 61   instantiating a
24a0: 20 66 6f 73 73 69 6c 20 63 6f 6e 74 65 78 74 2e   fossil context.
24b0: 0a 5a 20 63 33 37 30 39 37 34 64 66 31 39 31 39  .Z c370974df1919
24c0: 32 62 39 65 36 63 32 39 36 65 61 31 35 30 61 30  2b9e6c296ea150a0
24d0: 31 32 34 0a                                      124.