Hex Artifact Content
Not logged in

Artifact 1b75142362e4519142552abf11bc355b34041e27:

File www/concepts.wiki part of check-in [5523218023a] - Add <title> markup to several of the embedded documentation pages. by drh on 2009-08-24 17:54:24.

0000: 3c 74 69 74 6c 65 3e 46 6f 73 73 69 6c 20 43 6f  <title>Fossil Co
0010: 6e 63 65 70 74 73 3c 2f 74 69 74 6c 65 3e 0a 3c  ncepts</title>.<
0020: 6e 6f 77 69 6b 69 3e 0a 3c 68 31 20 61 6c 69 67  nowiki>.<h1 alig
0030: 6e 3d 22 63 65 6e 74 65 72 22 3e 46 6f 73 73 69  n="center">Fossi
0040: 6c 20 43 6f 6e 63 65 70 74 73 3c 2f 68 31 3e 0a  l Concepts</h1>.
0050: 0a 3c 68 32 3e 31 2e 30 20 49 6e 74 72 6f 64 75  .<h2>1.0 Introdu
0060: 63 74 69 6f 6e 3c 2f 68 32 3e 0a 3c 70 3e 0a 3c  ction</h2>.<p>.<
0070: 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 68 74  a href="index.ht
0080: 6d 6c 22 3e 46 6f 73 73 69 6c 3c 2f 61 3e 20 69  ml">Fossil</a> i
0090: 73 20 61 0a 3c 61 20 68 72 65 66 3d 22 68 74 74  s a.<a href="htt
00a0: 70 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61  p://en.wikipedia
00b0: 2e 6f 72 67 2f 77 69 6b 69 2f 53 6f 66 74 77 61  .org/wiki/Softwa
00c0: 72 65 5f 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  re_configuration
00d0: 5f 6d 61 6e 61 67 65 6d 65 6e 74 22 3e 0a 73 6f  _management">.so
00e0: 66 74 77 61 72 65 20 63 6f 6e 66 69 67 75 72 61  ftware configura
00f0: 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e 74 3c  tion management<
0100: 2f 61 3e 20 73 79 73 74 65 6d 2e 0a 46 6f 73 73  /a> system..Foss
0110: 69 6c 20 69 73 20 73 6f 66 74 77 61 72 65 20 74  il is software t
0120: 68 61 74 20 69 73 20 64 65 73 69 67 6e 65 64 20  hat is designed 
0130: 74 6f 20 63 6f 6e 74 72 6f 6c 20 61 6e 64 20 74  to control and t
0140: 72 61 63 6b 20 74 68 65 0a 64 65 76 65 6c 6f 70  rack the.develop
0150: 6d 65 6e 74 20 6f 66 20 61 20 73 6f 66 74 77 61  ment of a softwa
0160: 72 65 20 70 72 6f 6a 65 63 74 20 61 6e 64 20 74  re project and t
0170: 6f 20 72 65 63 6f 72 64 20 74 68 65 20 68 69 73  o record the his
0180: 74 6f 72 79 0a 6f 66 20 74 68 65 20 70 72 6f 6a  tory.of the proj
0190: 65 63 74 2e 0a 54 68 65 72 65 20 61 72 65 20 6d  ect..There are m
01a0: 61 6e 79 20 73 75 63 68 20 73 79 73 74 65 6d 73  any such systems
01b0: 20 69 6e 20 75 73 65 20 74 6f 64 61 79 2e 20 20   in use today.  
01c0: 46 6f 73 73 69 6c 20 73 74 72 69 76 65 73 20 74  Fossil strives t
01d0: 6f 0a 64 69 73 74 69 6e 67 75 69 73 68 20 69 74  o.distinguish it
01e0: 73 65 6c 66 20 66 72 6f 6d 20 74 68 65 20 6f 74  self from the ot
01f0: 68 65 72 73 20 62 79 20 62 65 69 6e 67 20 65 78  hers by being ex
0200: 74 72 65 6d 65 6c 79 20 73 69 6d 70 6c 65 0a 74  tremely simple.t
0210: 6f 20 73 65 74 75 70 20 61 6e 64 20 6f 70 65 72  o setup and oper
0220: 61 74 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 69  ate.</p>..<p>Thi
0230: 73 20 64 6f 63 75 6d 65 6e 74 20 69 73 20 69 6e  s document is in
0240: 74 65 6e 64 65 64 20 61 73 20 61 20 71 75 69 63  tended as a quic
0250: 6b 20 69 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74  k introduction t
0260: 6f 20 74 68 65 20 63 6f 6e 63 65 70 74 73 0a 62  o the concepts.b
0270: 65 68 69 6e 64 20 66 6f 73 73 69 6c 2e 3c 2f 70  ehind fossil.</p
0280: 3e 0a 0a 3c 68 32 3e 32 2e 30 20 43 6f 6d 70 6f  >..<h2>2.0 Compo
0290: 73 69 74 69 6f 6e 20 4f 66 20 41 20 50 72 6f 6a  sition Of A Proj
02a0: 65 63 74 3c 2f 68 32 3e 0a 3c 69 6d 67 20 73 72  ect</h2>.<img sr
02b0: 63 3d 22 63 6f 6e 63 65 70 74 31 2e 67 69 66 22  c="concept1.gif"
02c0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 20 68   align="right" h
02d0: 73 70 61 63 65 3d 22 31 30 22 3e 0a 0a 3c 70 3e  space="10">..<p>
02e0: 41 20 73 6f 66 74 77 61 72 65 20 70 72 6f 6a 65  A software proje
02f0: 63 74 20 6e 6f 72 6d 61 6c 6c 79 20 63 6f 6e 73  ct normally cons
0300: 69 73 74 73 20 6f 66 20 61 20 22 73 6f 75 72 63  ists of a "sourc
0310: 65 20 74 72 65 65 22 2e 0a 41 20 73 6f 75 72 63  e tree"..A sourc
0320: 65 20 74 72 65 65 20 69 73 20 61 20 68 69 65 72  e tree is a hier
0330: 61 72 63 68 79 20 6f 66 20 66 69 6c 65 73 20 74  archy of files t
0340: 68 61 74 20 61 72 65 20 75 73 65 64 20 74 6f 20  hat are used to 
0350: 67 65 6e 65 72 61 74 65 0a 74 68 65 20 65 6e 64  generate.the end
0360: 20 70 72 6f 64 75 63 74 2e 20 20 54 68 65 20 73   product.  The s
0370: 6f 75 72 63 65 20 74 72 65 65 20 63 68 61 6e 67  ource tree chang
0380: 65 73 20 6f 76 65 72 20 74 69 6d 65 20 61 73 20  es over time as 
0390: 74 68 65 0a 73 6f 66 74 77 61 72 65 20 67 72 6f  the.software gro
03a0: 77 73 20 61 6e 64 20 65 78 70 61 6e 64 73 20 61  ws and expands a
03b0: 6e 64 20 61 73 20 66 65 61 74 75 72 65 73 20 61  nd as features a
03c0: 72 65 20 61 64 64 65 64 20 61 6e 64 20 62 75 67  re added and bug
03d0: 73 0a 61 72 65 20 66 69 78 65 64 2e 20 20 41 20  s.are fixed.  A 
03e0: 73 6e 61 70 73 68 6f 74 20 6f 66 20 74 68 65 20  snapshot of the 
03f0: 73 6f 75 72 63 65 20 74 72 65 65 20 61 74 20 61  source tree at a
0400: 6e 79 20 70 6f 69 6e 74 20 69 6e 20 74 69 6d 65  ny point in time
0410: 0a 69 73 20 63 61 6c 6c 65 64 20 61 20 22 76 65  .is called a "ve
0420: 72 73 69 6f 6e 22 20 6f 72 20 22 72 65 76 69 73  rsion" or "revis
0430: 69 6f 6e 22 20 6f 72 20 61 20 22 62 61 73 65 6c  ion" or a "basel
0440: 69 6e 65 22 20 6f 66 20 74 68 65 20 70 72 6f 64  ine" of the prod
0450: 75 63 74 2e 0a 49 6e 20 66 6f 73 73 69 6c 2c 20  uct..In fossil, 
0460: 77 65 20 75 73 65 20 74 68 65 20 6e 61 6d 65 20  we use the name 
0470: 22 63 68 65 63 6b 2d 69 6e 22 2e 3c 2f 70 3e 0a  "check-in".</p>.
0480: 0a 3c 70 3e 41 20 22 72 65 70 6f 73 69 74 6f 72  .<p>A "repositor
0490: 79 22 20 69 73 20 61 20 64 61 74 61 62 61 73 65  y" is a database
04a0: 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 63   that contains c
04b0: 6f 70 69 65 73 20 6f 66 20 61 6c 6c 20 68 69 73  opies of all his
04c0: 74 6f 72 69 63 61 6c 0a 63 68 65 63 6b 2d 69 6e  torical.check-in
04d0: 73 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 2e  s for a project.
04e0: 20 20 43 68 65 63 6b 2d 69 6e 73 20 61 72 65 20    Check-ins are 
04f0: 6e 6f 72 6d 61 6c 6c 79 20 73 74 6f 72 65 64 20  normally stored 
0500: 69 6e 20 74 68 65 0a 72 65 70 6f 73 69 74 6f 72  in the.repositor
0510: 79 20 69 6e 20 61 20 68 69 67 68 6c 79 20 73 70  y in a highly sp
0520: 61 63 65 2d 65 66 66 69 63 69 65 6e 74 20 63 6f  ace-efficient co
0530: 6d 70 72 65 73 73 65 64 20 66 6f 72 6d 61 74 20  mpressed format 
0540: 28 64 65 6c 74 61 20 65 6e 63 6f 64 69 6e 67 29  (delta encoding)
0550: 2e 0a 42 75 74 20 74 68 61 74 20 69 73 20 61 6e  ..But that is an
0560: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20   implementation 
0570: 64 65 74 61 69 6c 20 74 68 61 74 20 79 6f 75 20  detail that you 
0580: 74 68 65 20 75 73 65 72 20 6e 65 65 64 20 6e 6f  the user need no
0590: 74 20 77 6f 72 72 79 20 6f 76 65 72 2e 0a 54 68  t worry over..Th
05a0: 69 6e 6b 20 6f 66 20 74 68 65 20 72 65 70 6f 73  ink of the repos
05b0: 69 74 6f 72 79 20 61 73 20 61 20 73 61 66 65 20  itory as a safe 
05c0: 70 6c 61 63 65 20 77 68 65 72 65 20 61 6c 6c 20  place where all 
05d0: 79 6f 75 72 20 6f 6c 64 20 63 68 65 63 6b 2d 69  your old check-i
05e0: 6e 73 20 61 72 65 0a 73 65 63 75 72 65 6c 79 20  ns are.securely 
05f0: 73 74 6f 72 65 64 20 61 77 61 79 20 61 6e 64 20  stored away and 
0600: 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 72 65  available for re
0610: 74 72 69 65 76 61 6c 20 77 68 65 6e 65 76 65 72  trieval whenever
0620: 20 79 6f 75 20 6e 65 65 64 0a 74 68 65 6d 2e 3c   you need.them.<
0630: 2f 70 3e 0a 0a 3c 70 3e 41 20 72 65 70 6f 73 69  /p>..<p>A reposi
0640: 74 6f 72 79 20 69 6e 20 66 6f 73 73 69 6c 20 69  tory in fossil i
0650: 73 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20  s a single file 
0660: 6f 6e 20 79 6f 75 72 20 64 69 73 6b 2e 20 20 54  on your disk.  T
0670: 68 69 73 20 66 69 6c 65 0a 6d 69 67 68 74 20 62  his file.might b
0680: 65 20 72 61 74 68 65 72 20 6c 61 72 67 65 20 28  e rather large (
0690: 64 6f 7a 65 6e 73 20 6f 72 20 68 75 6e 64 72 65  dozens or hundre
06a0: 64 73 20 6f 66 20 6d 65 67 61 62 79 74 65 73 20  ds of megabytes 
06b0: 66 6f 72 20 61 20 6c 61 72 67 65 0a 6f 72 20 6c  for a large.or l
06c0: 6f 6e 67 20 72 75 6e 6e 69 6e 67 20 70 72 6f 6a  ong running proj
06d0: 65 63 74 29 20 62 75 74 20 69 74 20 69 73 20 6e  ect) but it is n
06e0: 65 76 65 72 74 68 65 6c 65 73 73 20 6a 75 73 74  evertheless just
06f0: 20 61 20 66 69 6c 65 2e 20 20 59 6f 75 0a 63 61   a file.  You.ca
0700: 6e 20 6d 6f 76 65 20 69 74 20 61 72 6f 75 6e 64  n move it around
0710: 2c 20 72 65 6e 61 6d 65 20 69 74 2c 20 77 72 69  , rename it, wri
0720: 74 65 20 69 74 20 6f 75 74 20 74 6f 20 61 20 6d  te it out to a m
0730: 65 6d 6f 72 79 20 73 74 69 63 6b 2c 20 6f 72 0a  emory stick, or.
0740: 64 6f 20 61 6e 79 74 68 69 6e 67 20 65 6c 73 65  do anything else
0750: 20 79 6f 75 20 6e 6f 72 6d 61 6c 6c 79 20 64 6f   you normally do
0760: 20 77 69 74 68 20 66 69 6c 65 73 2e 3c 2f 70 3e   with files.</p>
0770: 0a 0a 3c 70 3e 45 61 63 68 20 73 6f 75 72 63 65  ..<p>Each source
0780: 20 74 72 65 65 20 74 68 61 74 20 69 73 20 63 6f   tree that is co
0790: 6e 74 72 6f 6c 6c 65 64 20 62 79 20 66 6f 73 73  ntrolled by foss
07a0: 69 6c 20 69 73 20 61 73 73 6f 63 69 61 74 65 64  il is associated
07b0: 20 77 69 74 68 0a 61 20 73 69 6e 67 6c 65 20 72   with.a single r
07c0: 65 70 6f 73 69 74 6f 72 79 20 6f 6e 20 74 68 65  epository on the
07d0: 20 6c 6f 63 61 6c 20 64 69 73 6b 20 64 72 69 76   local disk driv
07e0: 65 2e 20 20 59 6f 75 20 63 61 6e 20 74 69 65 20  e.  You can tie 
07f0: 74 77 6f 20 6f 72 20 6d 6f 72 65 0a 73 6f 75 72  two or more.sour
0800: 63 65 20 74 72 65 65 73 20 74 6f 20 61 20 73 69  ce trees to a si
0810: 6e 67 6c 65 20 72 65 70 6f 73 69 74 6f 72 79 20  ngle repository 
0820: 69 66 20 79 6f 75 20 77 61 6e 74 20 28 74 68 6f  if you want (tho
0830: 75 67 68 20 6f 6e 65 0a 74 72 65 65 20 70 65 72  ugh one.tree per
0840: 20 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20 74   repository is t
0850: 68 65 20 6d 6f 73 74 20 63 6f 6d 6d 6f 6e 20 63  he most common c
0860: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 29 20 20  onfiguration.)  
0870: 53 6f 20 61 0a 73 69 6e 67 6c 65 20 72 65 70 6f  So a.single repo
0880: 73 69 74 6f 72 79 20 63 61 6e 20 62 65 20 61 73  sitory can be as
0890: 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 6d 61  sociated with ma
08a0: 6e 79 20 73 6f 75 72 63 65 20 74 72 65 65 73 2c  ny source trees,
08b0: 20 62 75 74 0a 65 61 63 68 20 73 6f 75 72 63 65   but.each source
08c0: 20 74 72 65 65 20 69 73 20 61 73 73 6f 63 69 61   tree is associa
08d0: 74 65 64 20 77 69 74 68 20 6f 6e 6c 79 20 6f 6e  ted with only on
08e0: 65 20 72 65 70 6f 73 69 74 6f 72 79 2e 3c 2f 70  e repository.</p
08f0: 3e 0a 0a 3c 70 3e 46 6f 73 73 69 6c 20 73 6f 75  >..<p>Fossil sou
0900: 72 63 65 20 74 72 65 65 73 20 6d 61 79 20 6e 6f  rce trees may no
0910: 74 20 6f 76 65 72 6c 61 70 2e 20 20 41 20 66 6f  t overlap.  A fo
0920: 73 73 69 6c 20 73 6f 75 72 63 65 20 74 72 65 65  ssil source tree
0930: 20 69 73 20 69 64 65 6e 74 69 66 69 65 64 0a 62   is identified.b
0940: 79 20 61 20 66 69 6c 65 20 6e 61 6d 65 64 20 22  y a file named "
0950: 5f 46 4f 53 53 49 4c 5f 22 20 69 6e 20 74 68 65  _FOSSIL_" in the
0960: 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 20   root directory 
0970: 6f 66 20 74 68 65 20 73 6f 75 72 63 65 20 74 72  of the source tr
0980: 65 65 2e 20 20 45 76 65 72 79 0a 66 69 6c 65 20  ee.  Every.file 
0990: 74 68 61 74 20 69 73 20 61 20 73 69 62 6c 69 6e  that is a siblin
09a0: 67 20 6f 66 20 5f 46 4f 53 53 49 4c 5f 20 61 6e  g of _FOSSIL_ an
09b0: 64 20 65 76 65 72 79 20 66 69 6c 65 20 69 6e 20  d every file in 
09c0: 65 76 65 72 79 20 73 75 62 66 6f 6c 64 65 72 20  every subfolder 
09d0: 69 73 0a 63 6f 6e 73 69 64 65 72 65 64 20 70 6f  is.considered po
09e0: 74 65 6e 74 69 61 6c 6c 79 20 61 20 70 61 72 74  tentially a part
09f0: 20 6f 66 20 74 68 65 20 73 6f 75 72 63 65 20 74   of the source t
0a00: 72 65 65 2e 20 20 54 68 65 20 5f 46 4f 53 53 49  ree.  The _FOSSI
0a10: 4c 5f 20 66 69 6c 65 0a 63 6f 6e 74 61 69 6e 73  L_ file.contains
0a20: 20 28 61 6d 6f 6e 67 20 6f 74 68 65 72 20 74 68   (among other th
0a30: 69 6e 67 73 29 20 74 68 65 20 70 61 74 68 6e 61  ings) the pathna
0a40: 6d 65 20 6f 66 20 74 68 65 20 72 65 70 6f 73 69  me of the reposi
0a50: 74 6f 72 79 20 77 69 74 68 20 77 68 69 63 68 0a  tory with which.
0a60: 74 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 20  the source tree 
0a70: 69 73 20 61 73 73 6f 63 69 61 74 65 64 2e 20 20  is associated.  
0a80: 4f 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e  On the other han
0a90: 64 2c 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72  d, the repositor
0aa0: 79 20 68 61 73 0a 6e 6f 20 72 65 63 6f 72 64 20  y has.no record 
0ab0: 6f 66 20 69 74 73 20 73 6f 75 72 63 65 20 74 72  of its source tr
0ac0: 65 65 73 2e 20 20 53 6f 20 79 6f 75 20 61 72 65  ees.  So you are
0ad0: 20 66 72 65 65 20 74 6f 20 64 65 6c 65 74 65 20   free to delete 
0ae0: 61 20 73 6f 75 72 63 65 20 74 72 65 65 0a 6f 72  a source tree.or
0af0: 20 6d 6f 76 65 20 69 74 20 61 72 6f 75 6e 64 20   move it around 
0b00: 77 69 74 68 6f 75 74 20 63 6f 6e 73 65 71 75 65  without conseque
0b10: 6e 63 65 2e 20 20 42 75 74 20 69 66 20 79 6f 75  nce.  But if you
0b20: 20 6d 6f 76 65 20 6f 72 20 72 65 6e 61 6d 65 20   move or rename 
0b30: 6f 72 0a 64 65 6c 65 74 65 20 61 20 72 65 70 6f  or.delete a repo
0b40: 73 69 74 6f 72 79 2c 20 74 68 65 6e 20 61 6e 79  sitory, then any
0b50: 20 73 6f 75 72 63 65 20 74 72 65 65 73 20 61 73   source trees as
0b60: 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68  sociated with th
0b70: 61 74 20 72 65 70 6f 73 69 74 6f 72 79 0a 77 69  at repository.wi
0b80: 6c 6c 20 6e 6f 20 6c 6f 6e 67 65 72 20 62 65 20  ll no longer be 
0b90: 61 62 6c 65 20 74 6f 20 6c 6f 63 61 74 65 20 74  able to locate t
0ba0: 68 65 69 72 20 72 65 70 6f 73 69 74 6f 72 79 20  heir repository 
0bb0: 61 6e 64 20 77 69 6c 6c 20 73 74 6f 70 20 77 6f  and will stop wo
0bc0: 72 6b 69 6e 67 2e 3c 2f 70 3e 0a 0a 3c 70 3e 57  rking.</p>..<p>W
0bd0: 68 65 6e 20 6d 75 6c 74 69 70 6c 65 20 64 65 76  hen multiple dev
0be0: 65 6c 6f 70 65 72 73 20 61 72 65 20 77 6f 72 6b  elopers are work
0bf0: 69 6e 67 20 6f 6e 20 74 68 65 20 73 61 6d 65 20  ing on the same 
0c00: 70 72 6f 6a 65 63 74 2c 20 65 61 63 68 0a 64 65  project, each.de
0c10: 76 65 6c 6f 70 65 72 20 74 79 70 69 63 61 6c 6c  veloper typicall
0c20: 79 20 68 61 73 20 68 69 73 20 6f 72 20 68 65 72  y has his or her
0c30: 20 6f 77 6e 20 6c 6f 63 61 6c 20 72 65 70 6f 73   own local repos
0c40: 69 74 6f 72 79 20 61 6e 64 20 61 6e 20 61 73 73  itory and an ass
0c50: 6f 63 69 61 74 65 64 0a 73 6f 75 72 63 65 20 74  ociated.source t
0c60: 72 65 65 20 69 6e 20 77 68 69 63 68 20 74 6f 20  ree in which to 
0c70: 77 6f 72 6b 2e 20 20 44 65 76 65 6c 6f 70 65 72  work.  Developer
0c80: 73 20 73 68 61 72 65 20 74 68 65 69 72 20 77 6f  s share their wo
0c90: 72 6b 20 62 79 0a 22 73 79 6e 63 69 6e 67 22 20  rk by."syncing" 
0ca0: 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74  the content of t
0cb0: 68 65 69 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73  heir local repos
0cc0: 69 74 6f 72 69 65 73 20 65 69 74 68 65 72 20 64  itories either d
0cd0: 69 72 65 63 74 6c 79 0a 6f 72 20 74 68 72 6f 75  irectly.or throu
0ce0: 67 68 20 61 20 63 65 6e 74 72 61 6c 20 73 65 72  gh a central ser
0cf0: 76 65 72 2e 20 20 43 68 61 6e 67 65 73 20 63 61  ver.  Changes ca
0d00: 6e 20 22 70 75 73 68 22 20 66 72 6f 6d 20 74 68  n "push" from th
0d10: 65 20 6c 6f 63 61 6c 0a 72 65 70 6f 73 69 74 6f  e local.reposito
0d20: 72 79 20 69 6e 74 6f 20 61 20 72 65 6d 6f 74 65  ry into a remote
0d30: 20 72 65 70 6f 73 69 74 6f 72 79 2e 20 20 4f 72   repository.  Or
0d40: 20 63 68 61 6e 67 65 73 20 63 61 6e 20 22 70 75   changes can "pu
0d50: 6c 6c 22 20 66 72 6f 6d 20 61 0a 72 65 6d 6f 74  ll" from a.remot
0d60: 65 20 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 74  e repository int
0d70: 6f 20 61 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69  o a local reposi
0d80: 74 6f 72 79 2e 20 20 4f 72 20 6f 6e 65 20 63 61  tory.  Or one ca
0d90: 6e 20 64 6f 20 61 20 22 73 79 6e 63 22 0a 77 68  n do a "sync".wh
0da0: 69 63 68 20 69 73 20 61 20 73 68 6f 72 74 63 75  ich is a shortcu
0db0: 74 20 66 6f 72 20 64 6f 69 6e 67 20 62 6f 74 68  t for doing both
0dc0: 20 61 20 70 75 73 68 20 61 6e 64 20 61 20 70 75   a push and a pu
0dd0: 6c 6c 20 61 74 20 74 68 65 20 73 61 6d 65 20 74  ll at the same t
0de0: 69 6d 65 2e 0a 46 6f 73 73 69 6c 20 61 6c 73 6f  ime..Fossil also
0df0: 20 68 61 73 20 74 68 65 20 63 6f 6e 63 65 70 74   has the concept
0e00: 20 6f 66 20 22 63 6c 6f 6e 69 6e 67 22 2e 20 20   of "cloning".  
0e10: 41 20 22 63 6c 6f 6e 65 22 20 69 73 20 6c 69 6b  A "clone" is lik
0e20: 65 20 61 20 22 70 75 6c 6c 22 2c 0a 65 78 63 65  e a "pull",.exce
0e30: 70 74 20 74 68 61 74 20 69 6e 73 74 65 61 64 20  pt that instead 
0e40: 6f 66 20 62 65 67 69 6e 6e 69 6e 67 20 77 69 74  of beginning wit
0e50: 68 20 61 6e 20 65 78 69 73 74 69 6e 67 20 6c 6f  h an existing lo
0e60: 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2c 0a  cal repository,.
0e70: 61 20 63 6c 6f 6e 65 20 62 65 67 69 6e 73 20 77  a clone begins w
0e80: 69 74 68 20 6e 6f 74 68 69 6e 67 20 61 6e 64 20  ith nothing and 
0e90: 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 6c 6f  creates a new lo
0ea0: 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 20 74  cal repository t
0eb0: 68 61 74 0a 69 73 20 61 20 64 75 70 6c 69 63 61  hat.is a duplica
0ec0: 74 65 20 6f 66 20 61 20 72 65 6d 6f 74 65 20 72  te of a remote r
0ed0: 65 70 6f 73 69 74 6f 72 79 2e 3c 2f 70 3e 0a 0a  epository.</p>..
0ee0: 3c 70 3e 43 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e  <p>Communication
0ef0: 20 62 65 74 77 65 65 6e 20 72 65 70 6f 73 69 74   between reposit
0f00: 6f 72 69 65 73 20 69 73 20 76 69 61 20 48 54 54  ories is via HTT
0f10: 50 2e 20 20 52 65 6d 6f 74 65 0a 72 65 70 6f 73  P.  Remote.repos
0f20: 69 74 6f 72 69 65 73 20 61 72 65 20 69 64 65 6e  itories are iden
0f30: 74 69 66 69 65 64 20 62 79 20 55 52 4c 2e 20 20  tified by URL.  
0f40: 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 70 6f 69  You can also poi
0f50: 6e 74 20 61 20 77 65 62 20 62 72 6f 77 73 65 72  nt a web browser
0f60: 0a 61 74 20 61 20 72 65 70 6f 73 69 74 6f 72 79  .at a repository
0f70: 20 61 6e 64 20 67 65 74 20 68 75 6d 61 6e 2d 72   and get human-r
0f80: 65 61 64 61 62 6c 65 20 73 74 61 74 75 73 2c 20  eadable status, 
0f90: 68 69 73 74 6f 72 79 2c 20 61 6e 64 20 74 72 61  history, and tra
0fa0: 63 6b 69 6e 67 0a 69 6e 66 6f 72 6d 61 74 69 6f  cking.informatio
0fb0: 6e 20 61 62 6f 75 74 20 74 68 65 20 70 72 6f 6a  n about the proj
0fc0: 65 63 74 2e 3c 2f 70 3e 0a 0a 3c 68 33 3e 32 2e  ect.</p>..<h3>2.
0fd0: 31 20 49 64 65 6e 74 69 66 69 63 61 74 69 6f 6e  1 Identification
0fe0: 20 4f 66 20 41 72 74 69 66 61 63 74 73 3c 2f 68   Of Artifacts</h
0ff0: 33 3e 0a 0a 3c 70 3e 41 20 70 61 72 74 69 63 75  3>..<p>A particu
1000: 6c 61 72 20 76 65 72 73 69 6f 6e 20 6f 66 20 61  lar version of a
1010: 20 70 61 72 74 69 63 75 6c 61 72 20 66 69 6c 65   particular file
1020: 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 20 22 61   is called an "a
1030: 72 74 69 66 61 63 74 22 2e 0a 45 61 63 68 20 61  rtifact"..Each a
1040: 72 74 69 66 61 63 74 20 68 61 73 20 61 20 75 6e  rtifact has a un
1050: 69 76 65 72 73 61 6c 6c 79 20 75 6e 69 71 75 65  iversally unique
1060: 20 6e 61 6d 65 20 77 68 69 63 68 20 69 73 20 74   name which is t
1070: 68 65 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70  he.<a href="http
1080: 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e  ://en.wikipedia.
1090: 6f 72 67 2f 77 69 6b 69 2f 53 48 41 22 3e 53 48  org/wiki/SHA">SH
10a0: 41 31 3c 2f 61 3e 20 68 61 73 68 20 6f 66 20 74  A1</a> hash of t
10b0: 68 65 20 63 6f 6e 74 65 6e 74 0a 6f 66 20 74 68  he content.of th
10c0: 61 74 20 66 69 6c 65 20 65 78 70 72 65 73 73 65  at file expresse
10d0: 64 20 61 73 20 34 30 20 63 68 61 72 61 63 74 65  d as 40 characte
10e0: 72 73 20 6f 66 20 6c 6f 77 65 72 2d 63 61 73 65  rs of lower-case
10f0: 20 68 65 78 61 64 65 63 69 6d 61 6c 2e 20 20 53   hexadecimal.  S
1100: 75 63 68 0a 61 20 68 61 73 68 20 69 73 20 72 65  uch.a hash is re
1110: 66 65 72 72 65 64 20 74 6f 20 61 73 20 74 68 65  ferred to as the
1120: 20 41 72 74 69 66 61 63 74 20 49 64 65 6e 74 69   Artifact Identi
1130: 66 69 65 72 20 6f 72 20 41 72 74 69 66 61 63 74  fier or Artifact
1140: 20 49 44 0a 66 6f 72 20 74 68 65 20 61 72 74 69   ID.for the arti
1150: 66 61 63 74 2e 20 20 54 68 65 20 53 48 41 31 20  fact.  The SHA1 
1160: 61 6c 67 6f 72 69 74 68 6d 20 69 73 20 63 72 65  algorithm is cre
1170: 61 74 65 64 20 77 69 74 68 20 74 68 65 20 70 75  ated with the pu
1180: 72 70 6f 73 65 20 6f 66 0a 70 72 6f 76 69 64 69  rpose of.providi
1190: 6e 67 20 61 20 68 69 67 68 6c 79 20 66 6f 72 67  ng a highly forg
11a0: 65 72 79 2d 72 65 73 69 73 74 61 6e 74 20 69 64  ery-resistant id
11b0: 65 6e 74 69 66 69 65 72 20 66 6f 72 20 61 20 66  entifier for a f
11c0: 69 6c 65 2e 20 20 47 69 76 65 6e 20 61 6e 79 0a  ile.  Given any.
11d0: 66 69 6c 65 20 69 74 20 69 73 20 73 69 6d 70 6c  file it is simpl
11e0: 65 20 74 6f 20 66 69 6e 64 20 74 68 65 20 61 72  e to find the ar
11f0: 74 69 66 61 63 74 20 49 44 20 66 6f 72 20 74 68  tifact ID for th
1200: 61 74 20 66 69 6c 65 2e 20 20 42 75 74 20 67 69  at file.  But gi
1210: 76 65 6e 20 61 0a 61 72 74 69 66 61 63 74 20 49  ven a.artifact I
1220: 44 20 69 74 20 69 73 20 63 6f 6d 70 75 74 61 74  D it is computat
1230: 69 6f 6e 61 6c 6c 79 20 69 6e 74 72 61 63 74 61  ionally intracta
1240: 62 6c 65 20 74 6f 20 67 65 6e 65 72 61 74 65 20  ble to generate 
1250: 61 20 66 69 6c 65 20 74 68 61 74 20 77 69 6c 6c  a file that will
1260: 0a 68 61 76 65 20 74 68 61 74 20 41 72 74 69 66  .have that Artif
1270: 61 63 74 20 49 44 2e 3c 2f 70 3e 0a 0a 0a 3c 70  act ID.</p>...<p
1280: 3e 41 72 74 69 66 61 63 74 20 49 44 73 20 6c 6f  >Artifact IDs lo
1290: 6f 6b 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b  ok something lik
12a0: 65 20 74 68 69 73 3a 3c 2f 70 3e 0a 0a 3c 62 6c  e this:</p>..<bl
12b0: 6f 63 6b 71 75 6f 74 65 3e 3c 62 3e 0a 36 30 38  ockquote><b>.608
12c0: 39 66 30 62 35 36 33 61 39 64 62 30 61 36 64 39  9f0b563a9db0a6d9
12d0: 30 36 38 32 66 65 34 37 66 64 37 31 36 31 66 66  0682fe47fd7161ff
12e0: 38 36 37 63 38 3c 62 72 3e 0a 35 39 37 31 32 36  867c8<br>.597126
12f0: 31 34 61 31 62 33 63 63 66 64 38 34 30 37 38 61  14a1b3ccfd84078a
1300: 33 37 66 61 35 62 36 30 36 65 32 38 34 33 34 33  37fa5b606e284343
1310: 32 36 3c 62 72 3e 0a 31 39 64 62 66 37 33 30 37  26<br>.19dbf7307
1320: 38 62 65 39 37 37 39 65 64 64 36 61 30 31 35 36  8be9779edd6a0156
1330: 31 39 35 65 36 31 30 66 38 31 63 39 34 66 39 3c  195e610f81c94f9<
1340: 62 72 3e 0a 62 34 31 30 34 39 35 39 61 36 37 31  br>.b4104959a671
1350: 37 35 66 30 32 64 36 62 34 31 35 34 38 30 62 65  75f02d6b415480be
1360: 32 32 61 32 33 39 66 31 66 30 37 37 3c 62 72 3e  22a239f1f077<br>
1370: 0a 39 39 37 63 39 64 36 61 65 30 33 61 64 31 31  .997c9d6ae03ad11
1380: 34 62 32 62 35 37 66 30 34 65 39 65 65 65 66 31  4b2b57f04e9eeef1
1390: 37 64 63 62 38 32 37 38 38 0a 3c 2f 62 3e 3c 2f  7dcb82788.</b></
13a0: 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a 3c 70 3e  blockquote>..<p>
13b0: 57 68 65 6e 20 72 65 66 65 72 72 69 6e 67 20 74  When referring t
13c0: 6f 20 61 6e 20 61 72 74 69 66 61 63 74 20 75 73  o an artifact us
13d0: 69 6e 67 20 66 6f 73 73 69 6c 2c 20 79 6f 75 20  ing fossil, you 
13e0: 63 61 6e 20 75 73 65 20 61 20 75 6e 69 71 75 65  can use a unique
13f0: 0a 70 72 65 66 69 78 20 6f 66 20 74 68 65 20 61  .prefix of the a
1400: 72 74 69 66 61 63 74 20 49 44 20 74 68 61 74 20  rtifact ID that 
1410: 69 73 20 66 6f 75 72 20 63 68 61 72 61 63 74 65  is four characte
1420: 72 73 20 6f 72 20 6c 6f 6e 67 65 72 2e 20 20 54  rs or longer.  T
1430: 68 69 73 20 73 61 76 65 73 0a 61 20 6c 6f 74 20  his saves.a lot 
1440: 6f 66 20 74 79 70 69 6e 67 2e 20 20 57 68 65 6e  of typing.  When
1450: 20 64 69 73 70 6c 61 79 69 6e 67 20 61 72 74 69   displaying arti
1460: 66 61 63 74 20 49 44 73 2c 20 66 6f 73 73 69 6c  fact IDs, fossil
1470: 20 77 69 6c 6c 20 75 73 75 61 6c 6c 79 20 6f 6e   will usually on
1480: 6c 79 0a 73 68 6f 77 20 74 68 65 20 66 69 72 73  ly.show the firs
1490: 74 20 31 30 20 64 69 67 69 74 73 20 73 69 6e 63  t 10 digits sinc
14a0: 65 20 74 68 61 74 20 69 73 20 6e 6f 72 6d 61 6c  e that is normal
14b0: 6c 79 20 65 6e 6f 75 67 68 20 74 6f 20 75 6e 69  ly enough to uni
14c0: 71 75 65 6c 79 0a 69 64 65 6e 74 69 66 79 20 61  quely.identify a
14d0: 20 66 69 6c 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 43   file.</p>..<p>C
14e0: 68 61 6e 67 69 6e 67 20 28 6f 72 20 61 64 64 69  hanging (or addi
14f0: 6e 67 20 6f 72 20 72 65 6d 6f 76 69 6e 67 29 20  ng or removing) 
1500: 61 20 73 69 6e 67 6c 65 20 62 79 74 65 20 69 6e  a single byte in
1510: 20 61 20 66 69 6c 65 20 72 65 73 75 6c 74 73 0a   a file results.
1520: 69 6e 20 61 20 63 6f 6d 70 6c 65 74 65 6c 79 20  in a completely 
1530: 64 69 66 66 65 72 65 6e 74 20 61 72 74 69 66 61  different artifa
1540: 63 74 20 49 44 2e 20 20 41 6e 64 20 73 69 6e 63  ct ID.  And sinc
1550: 65 20 74 68 65 20 61 72 74 69 66 61 63 74 20 49  e the artifact I
1560: 44 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66  D is the name of
1570: 0a 74 68 65 20 61 72 74 69 66 61 63 74 2c 20 6d  .the artifact, m
1580: 61 6b 69 6e 67 20 61 6e 79 20 63 68 61 6e 67 65  aking any change
1590: 20 74 6f 20 61 20 66 69 6c 65 20 72 65 73 75 6c   to a file resul
15a0: 74 73 20 69 6e 20 61 20 6e 65 77 20 61 72 74 69  ts in a new arti
15b0: 66 61 63 74 2e 0a 49 6e 20 74 68 69 73 20 77 61  fact..In this wa
15c0: 79 2c 20 61 72 74 69 66 61 63 74 73 20 61 72 65  y, artifacts are
15d0: 20 69 6d 6d 75 74 61 62 6c 65 2e 3c 2f 70 3e 0a   immutable.</p>.
15e0: 0a 3c 70 3e 41 20 72 65 70 6f 73 69 74 6f 72 79  .<p>A repository
15f0: 20 69 73 20 72 65 61 6c 6c 79 20 6a 75 73 74 20   is really just 
1600: 61 6e 20 75 6e 6f 72 64 65 72 65 64 20 63 6f 6c  an unordered col
1610: 6c 65 63 74 69 6f 6e 20 6f 66 0a 61 72 74 69 66  lection of.artif
1620: 61 63 74 73 2e 20 20 4e 65 77 20 61 72 74 69 66  acts.  New artif
1630: 61 63 74 73 20 63 61 6e 20 62 65 20 61 64 64 65  acts can be adde
1640: 64 20 74 6f 20 74 68 65 20 72 65 70 6f 73 69 74  d to the reposit
1650: 6f 72 79 2c 20 62 75 74 0a 65 78 69 73 74 69 6e  ory, but.existin
1660: 67 20 61 72 74 69 66 61 63 74 73 20 63 61 6e 20  g artifacts can 
1670: 6e 65 76 65 72 20 62 65 20 72 65 6d 6f 76 65 64  never be removed
1680: 2e 20 20 46 6f 73 73 69 6c 20 69 73 20 64 65 73  .  Fossil is des
1690: 69 67 6e 65 64 20 69 6e 0a 73 75 63 68 20 61 20  igned in.such a 
16a0: 77 61 79 20 74 68 61 74 20 69 74 20 63 61 6e 20  way that it can 
16b0: 62 65 20 68 61 6e 64 65 64 20 61 20 73 65 74 20  be handed a set 
16c0: 6f 66 20 61 72 74 69 66 61 63 74 73 20 69 6e 20  of artifacts in 
16d0: 61 6e 79 0a 6f 72 64 65 72 20 61 6e 64 20 69 74  any.order and it
16e0: 20 63 61 6e 20 66 69 67 75 72 65 20 6f 75 74 20   can figure out 
16f0: 74 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70  the relationship
1700: 20 62 65 74 77 65 65 6e 20 74 68 6f 73 65 0a 61   between those.a
1710: 72 74 69 66 61 63 74 73 20 61 6e 64 20 72 65 63  rtifacts and rec
1720: 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 6f 6d  onstruct the com
1730: 70 6c 65 74 65 20 64 65 76 65 6c 6f 70 6d 65 6e  plete developmen
1740: 74 20 68 69 73 74 6f 72 79 20 6f 66 0a 61 20 73  t history of.a s
1750: 6f 66 74 77 61 72 65 20 70 72 6f 6a 65 63 74 2e  oftware project.
1760: 3c 2f 70 3e 0a 0a 3c 68 33 3e 32 2e 32 20 4d 61  </p>..<h3>2.2 Ma
1770: 6e 69 66 65 73 74 73 3c 2f 68 33 3e 0a 0a 3c 70  nifests</h3>..<p
1780: 3e 41 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20  >At the root of 
1790: 61 20 73 6f 75 72 63 65 20 74 72 65 65 20 69 73  a source tree is
17a0: 20 61 20 73 70 65 63 69 61 6c 20 66 69 6c 65 20   a special file 
17b0: 63 61 6c 6c 65 64 20 74 68 65 0a 22 6d 61 6e 69  called the."mani
17c0: 66 65 73 74 22 2e 20 20 54 68 65 20 6d 61 6e 69  fest".  The mani
17d0: 66 65 73 74 20 69 73 20 61 20 6c 69 73 74 69 6e  fest is a listin
17e0: 67 20 6f 66 20 61 6c 6c 20 6f 74 68 65 72 20 66  g of all other f
17f0: 69 6c 65 73 20 69 6e 0a 74 68 61 74 20 73 6f 75  iles in.that sou
1800: 72 63 65 20 74 72 65 65 2e 20 20 54 68 65 20 6d  rce tree.  The m
1810: 61 6e 69 66 65 73 74 20 63 6f 6e 74 61 69 6e 73  anifest contains
1820: 20 74 68 65 20 28 63 6f 6d 70 6c 65 74 65 29 20   the (complete) 
1830: 61 72 74 69 66 61 63 74 20 49 44 20 0a 6f 66 20  artifact ID .of 
1840: 74 68 65 20 66 69 6c 65 20 61 6e 64 20 74 68 65  the file and the
1850: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 6c   name of the fil
1860: 65 20 61 73 20 69 74 20 61 70 70 65 61 72 73 20  e as it appears 
1870: 6f 6e 20 64 69 73 6b 2c 0a 61 6e 64 20 74 68 75  on disk,.and thu
1880: 73 20 73 65 72 76 65 73 20 61 73 20 61 20 6d 61  s serves as a ma
1890: 70 70 69 6e 67 20 66 72 6f 6d 20 61 72 74 69 66  pping from artif
18a0: 61 63 74 20 49 44 20 74 6f 20 64 69 73 6b 20 6e  act ID to disk n
18b0: 61 6d 65 2e 20 20 54 68 65 20 61 72 74 69 66 61  ame.  The artifa
18c0: 63 74 20 49 44 0a 6f 66 20 74 68 65 20 6d 61 6e  ct ID.of the man
18d0: 69 66 65 73 74 20 69 73 20 74 68 65 20 69 64 65  ifest is the ide
18e0: 6e 74 69 66 69 65 72 20 66 6f 72 20 74 68 65 20  ntifier for the 
18f0: 65 6e 74 69 72 65 20 63 68 65 63 6b 2d 69 6e 2e  entire check-in.
1900: 20 20 57 68 65 6e 0a 79 6f 75 20 6c 6f 6f 6b 20    When.you look 
1910: 61 74 20 61 20 22 74 69 6d 65 6c 69 6e 65 22 20  at a "timeline" 
1920: 6f 66 20 63 68 61 6e 67 65 73 20 69 6e 20 66 6f  of changes in fo
1930: 73 73 69 6c 2c 20 74 68 65 20 49 44 20 61 73 73  ssil, the ID ass
1940: 6f 63 69 61 74 65 64 0a 77 69 74 68 20 65 61 63  ociated.with eac
1950: 68 20 63 68 65 63 6b 2d 69 6e 20 6f 72 20 63 6f  h check-in or co
1960: 6d 6d 69 74 20 69 73 20 72 65 61 6c 6c 79 20 6a  mmit is really j
1970: 75 73 74 20 74 68 65 20 61 72 74 69 66 61 63 74  ust the artifact
1980: 20 49 44 20 6f 66 20 74 68 65 0a 6d 61 6e 69 66   ID of the.manif
1990: 65 73 74 20 66 6f 72 20 74 68 61 74 20 63 68 65  est for that che
19a0: 63 6b 2d 69 6e 2e 3c 2f 70 3e 0a 0a 3c 70 3e 46  ck-in.</p>..<p>F
19b0: 6f 73 73 69 6c 20 61 75 74 6f 6d 61 74 69 63 61  ossil automatica
19c0: 6c 6c 79 20 67 65 6e 65 72 61 74 65 73 20 61 20  lly generates a 
19d0: 6d 61 6e 69 66 65 73 74 20 77 68 65 6e 65 76 65  manifest wheneve
19e0: 72 20 79 6f 75 20 22 63 6f 6d 6d 69 74 22 20 0a  r you "commit" .
19f0: 61 20 6e 65 77 20 63 68 65 63 6b 2d 69 6e 2e 20  a new check-in. 
1a00: 20 53 6f 20 74 68 69 73 20 69 73 20 6e 6f 74 20   So this is not 
1a10: 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 79  something that y
1a20: 6f 75 2c 20 74 68 65 20 64 65 76 65 6c 6f 70 65  ou, the develope
1a30: 72 2c 0a 6e 65 65 64 20 74 6f 20 77 6f 72 72 79  r,.need to worry
1a40: 20 77 69 74 68 2e 20 20 54 68 65 20 66 6f 72 6d   with.  The form
1a50: 61 74 20 6f 66 20 61 20 6d 61 6e 69 66 65 73 74  at of a manifest
1a60: 20 69 73 20 69 6e 74 65 6e 74 69 6f 6e 61 6c 6c   is intentionall
1a70: 79 0a 64 65 73 69 67 6e 65 64 20 74 6f 20 62 65  y.designed to be
1a80: 20 73 69 6d 70 6c 65 20 74 6f 20 70 61 72 73 65   simple to parse
1a90: 2c 20 73 6f 20 74 68 61 74 20 69 66 0a 79 6f 75  , so that if.you
1aa0: 20 77 61 6e 74 20 74 6f 20 72 65 61 64 20 61 6e   want to read an
1ab0: 64 20 69 6e 74 65 72 70 72 65 74 20 61 20 6d 61  d interpret a ma
1ac0: 6e 69 66 65 73 74 2c 20 65 69 74 68 65 72 20 62  nifest, either b
1ad0: 79 20 68 61 6e 64 20 6f 72 0a 77 69 74 68 20 61  y hand or.with a
1ae0: 20 73 63 72 69 70 74 2c 20 74 68 61 74 20 69 73   script, that is
1af0: 20 65 61 73 79 20 74 6f 20 64 6f 2e 20 20 42 75   easy to do.  Bu
1b00: 74 20 79 6f 75 20 77 69 6c 6c 20 70 72 6f 62 61  t you will proba
1b10: 62 6c 79 20 6e 65 76 65 72 0a 6e 65 65 64 20 74  bly never.need t
1b20: 6f 20 64 6f 20 73 6f 2e 3c 2f 70 3e 0a 0a 3c 70  o do so.</p>..<p
1b30: 3e 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20  >In addition to 
1b40: 69 64 65 6e 74 69 66 79 69 6e 67 20 61 6c 6c 20  identifying all 
1b50: 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 68 65  files in the che
1b60: 63 6b 2d 69 6e 2c 20 61 0a 6d 61 6e 69 66 65 73  ck-in, a.manifes
1b70: 74 20 61 6c 73 6f 20 63 6f 6e 74 61 69 6e 73 20  t also contains 
1b80: 61 20 63 68 65 63 6b 2d 69 6e 20 63 6f 6d 6d 65  a check-in comme
1b90: 6e 74 2c 20 74 68 65 20 64 61 74 65 20 61 6e 64  nt, the date and
1ba0: 20 74 69 6d 65 0a 77 68 65 6e 20 74 68 65 20 63   time.when the c
1bb0: 68 65 63 6b 2d 69 6e 20 77 61 73 20 65 73 74 61  heck-in was esta
1bc0: 62 6c 69 73 68 65 64 2c 20 77 68 6f 20 63 72 65  blished, who cre
1bd0: 61 74 65 64 20 74 68 65 20 63 68 65 63 6b 2d 69  ated the check-i
1be0: 6e 2c 0a 61 6e 64 20 6c 69 6e 6b 73 20 74 6f 20  n,.and links to 
1bf0: 6f 74 68 65 72 20 63 68 65 63 6b 2d 69 6e 73 20  other check-ins 
1c00: 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 63  from which the c
1c10: 75 72 72 65 6e 74 20 63 68 65 63 6b 2d 69 6e 0a  urrent check-in.
1c20: 69 73 20 64 65 72 69 76 65 64 2e 20 20 54 68 65  is derived.  The
1c30: 72 65 20 69 73 20 61 6c 73 6f 20 61 20 63 6f 75  re is also a cou
1c40: 70 6c 65 20 6f 66 20 63 68 65 63 6b 73 75 6d 73  ple of checksums
1c50: 20 75 73 65 64 20 74 6f 20 76 65 72 69 66 79 0a   used to verify.
1c60: 74 68 65 20 69 6e 74 65 67 72 69 74 79 20 6f 66  the integrity of
1c70: 20 74 68 65 20 63 68 65 63 6b 2d 69 6e 2e 20 20   the check-in.  
1c80: 41 6e 64 20 74 68 65 20 77 68 6f 6c 65 20 6d 61  And the whole ma
1c90: 6e 69 66 65 73 74 20 6d 69 67 68 74 0a 62 65 20  nifest might.be 
1ca0: 50 47 50 20 63 6c 65 61 72 73 69 67 6e 65 64 2e  PGP clearsigned.
1cb0: 3c 2f 70 3e 0a 0a 3c 68 33 3e 3c 61 20 6e 61 6d  </p>..<h3><a nam
1cc0: 65 3d 22 6b 65 79 63 6f 6e 63 22 3e 32 2e 33 3c  e="keyconc">2.3<
1cd0: 2f 61 3e 20 4b 65 79 20 63 6f 6e 63 65 70 74 73  /a> Key concepts
1ce0: 3c 2f 68 33 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e  </h3>..<ul>.<li>
1cf0: 41 20 3c 62 3e 63 68 65 63 6b 2d 69 6e 3c 2f 62  A <b>check-in</b
1d00: 3e 20 69 73 20 61 20 73 65 74 20 6f 66 20 66 69  > is a set of fi
1d10: 6c 65 73 20 61 72 72 61 6e 67 65 64 0a 20 20 20  les arranged.   
1d20: 20 69 6e 20 61 20 68 69 65 72 61 72 63 68 79 2e   in a hierarchy.
1d30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20 3c 62 3e 72  </li>.<li>A <b>r
1d40: 65 70 6f 73 69 74 6f 72 79 3c 2f 62 3e 20 6b 65  epository</b> ke
1d50: 65 70 73 20 61 20 72 65 63 6f 72 64 20 6f 66 20  eps a record of 
1d60: 68 69 73 74 6f 72 69 63 61 6c 20 63 68 65 63 6b  historical check
1d70: 2d 69 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52  -ins.</li>.<li>R
1d80: 65 70 6f 73 69 74 6f 72 69 65 73 20 73 68 61 72  epositories shar
1d90: 65 20 74 68 65 69 72 20 63 68 61 6e 67 65 73 20  e their changes 
1da0: 75 73 69 6e 67 20 3c 62 3e 70 75 73 68 3c 2f 62  using <b>push</b
1db0: 3e 2c 20 3c 62 3e 70 75 6c 6c 3c 2f 62 3e 2c 0a  >, <b>pull</b>,.
1dc0: 20 20 20 20 3c 62 3e 73 79 6e 63 3c 2f 62 3e 2c      <b>sync</b>,
1dd0: 20 61 6e 64 20 3c 62 3e 63 6c 6f 6e 65 3c 2f 62   and <b>clone</b
1de0: 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20 70 61  >.</li>.<li>A pa
1df0: 72 74 69 63 75 6c 61 72 20 3c 75 3e 76 65 72 73  rticular <u>vers
1e00: 69 6f 6e 3c 2f 75 3e 20 6f 66 20 61 20 70 61 72  ion</u> of a par
1e10: 74 69 63 75 6c 61 72 20 66 69 6c 65 20 69 73 20  ticular file is 
1e20: 61 6e 20 3c 62 3e 61 72 74 69 66 61 63 74 3c 2f  an <b>artifact</
1e30: 62 3e 0a 20 20 20 20 74 68 61 74 20 69 73 20 69  b>.    that is i
1e40: 64 65 6e 74 69 66 69 65 64 20 62 79 20 61 6e 20  dentified by an 
1e50: 3c 62 3e 61 72 74 69 66 61 63 74 20 49 44 3c 2f  <b>artifact ID</
1e60: 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 72 74  b>.</li>.<li>Art
1e70: 69 66 61 63 74 73 20 74 72 61 63 6b 65 64 20 62  ifacts tracked b
1e80: 79 20 66 6f 73 73 69 6c 20 61 72 65 20 69 6e 68  y fossil are inh
1e90: 65 72 65 6e 74 6c 79 20 69 6d 6d 75 74 61 62 6c  erently immutabl
1ea0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 6f 73 73  e.</li>.<li>Foss
1eb0: 69 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  il automatically
1ec0: 20 67 65 6e 65 72 61 74 65 73 20 61 20 3c 62 3e   generates a <b>
1ed0: 6d 61 6e 69 66 65 73 74 3c 2f 62 3e 20 66 69 6c  manifest</b> fil
1ee0: 65 20 74 68 61 74 20 69 64 65 6e 74 69 66 69 65  e that identifie
1ef0: 73 0a 20 20 20 20 65 76 65 72 79 20 61 72 74 69  s.    every arti
1f00: 66 61 63 74 20 69 6e 20 61 20 63 68 65 63 6b 2d  fact in a check-
1f10: 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  in.</li>.<li>The
1f20: 20 61 72 74 69 66 61 63 74 20 49 44 20 6f 66 20   artifact ID of 
1f30: 74 68 65 20 6d 61 6e 69 66 65 73 74 20 69 73 20  the manifest is 
1f40: 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 20 6f  the identifier o
1f50: 66 20 74 68 65 20 63 68 65 63 6b 2d 69 6e 2e 3c  f the check-in.<
1f60: 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 68 32 3e  /li>.</ul>..<h2>
1f70: 33 2e 30 20 46 6f 73 73 69 6c 20 2d 20 54 68 65  3.0 Fossil - The
1f80: 20 50 72 6f 67 72 61 6d 3c 2f 68 32 3e 0a 0a 3c   Program</h2>..<
1f90: 70 3e 46 6f 73 73 69 6c 20 69 73 20 73 6f 66 74  p>Fossil is soft
1fa0: 77 61 72 65 2e 20 20 54 68 65 20 69 6d 70 6c 65  ware.  The imple
1fb0: 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 66 6f 73  mentation of fos
1fc0: 73 69 6c 20 69 73 20 69 6e 20 74 68 65 20 66 6f  sil is in the fo
1fd0: 72 6d 0a 6f 66 20 61 20 73 69 6e 67 6c 65 20 65  rm.of a single e
1fe0: 78 65 63 75 74 61 62 6c 65 20 6e 61 6d 65 64 20  xecutable named 
1ff0: 22 66 6f 73 73 69 6c 22 2e 20 20 54 6f 20 69 6e  "fossil".  To in
2000: 73 74 61 6c 6c 20 66 6f 73 73 69 6c 20 6f 6e 20  stall fossil on 
2010: 79 6f 75 72 20 73 79 73 74 65 6d 2c 0a 61 6c 6c  your system,.all
2020: 20 79 6f 75 20 68 61 76 65 20 74 6f 20 64 6f 20   you have to do 
2030: 69 73 20 6f 62 74 61 69 6e 20 61 20 63 6f 70 79  is obtain a copy
2040: 20 6f 66 20 74 68 69 73 20 6f 6e 65 20 65 78 65   of this one exe
2050: 63 75 74 61 62 6c 65 20 66 69 6c 65 20 28 65 69  cutable file (ei
2060: 74 68 65 72 0a 62 79 20 64 6f 77 6e 6c 6f 61 64  ther.by download
2070: 69 6e 67 20 61 20 70 72 65 2d 63 6f 6d 70 69 6c  ing a pre-compil
2080: 65 64 20 76 65 72 73 69 6f 6e 20 6f 72 20 63 6f  ed version or co
2090: 6d 70 69 6c 69 6e 67 20 69 74 20 79 6f 75 72 73  mpiling it yours
20a0: 65 6c 66 29 20 61 6e 64 20 74 68 65 6e 0a 70 75  elf) and then.pu
20b0: 74 74 69 6e 67 20 74 68 61 74 20 66 69 6c 65 20  tting that file 
20c0: 73 6f 6d 65 77 68 65 72 65 20 6f 6e 20 79 6f 75  somewhere on you
20d0: 72 20 50 41 54 48 2e 3c 2f 70 3e 0a 0a 3c 70 3e  r PATH.</p>..<p>
20e0: 46 6f 73 73 69 6c 20 69 73 20 63 6f 6d 70 6c 65  Fossil is comple
20f0: 74 65 6c 79 20 73 65 6c 66 2d 63 6f 6e 74 61 69  tely self-contai
2100: 6e 65 64 2e 20 20 49 74 20 69 73 20 6e 6f 74 20  ned.  It is not 
2110: 6e 65 63 65 73 73 61 72 79 20 74 6f 0a 69 6e 73  necessary to.ins
2120: 74 61 6c 6c 20 61 6e 79 20 6f 74 68 65 72 20 73  tall any other s
2130: 6f 66 74 77 61 72 65 20 69 6e 20 6f 72 64 65 72  oftware in order
2140: 20 74 6f 20 75 73 65 20 66 6f 73 73 69 6c 2e 20   to use fossil. 
2150: 20 59 6f 75 20 64 6f 20 3c 75 3e 6e 6f 74 3c 2f   You do <u>not</
2160: 75 3e 20 6e 65 65 64 0a 43 56 53 2c 20 67 7a 69  u> need.CVS, gzi
2170: 70 2c 20 64 69 66 66 2c 20 72 73 79 6e 63 2c 20  p, diff, rsync, 
2180: 50 79 74 68 6f 6e 2c 20 50 65 72 6c 2c 20 54 63  Python, Perl, Tc
2190: 6c 2c 20 4a 61 76 61 2c 20 61 70 61 63 68 65 2c  l, Java, apache,
21a0: 20 50 6f 73 74 67 72 65 53 51 4c 2c 20 4d 79 53   PostgreSQL, MyS
21b0: 51 4c 2c 0a 53 51 4c 69 74 65 2c 20 70 61 74 63  QL,.SQLite, patc
21c0: 68 2c 20 6f 72 20 61 6e 79 20 73 69 6d 69 6c 61  h, or any simila
21d0: 72 20 73 6f 66 74 77 61 72 65 20 6f 6e 20 79 6f  r software on yo
21e0: 75 72 20 73 79 73 74 65 6d 20 69 6e 20 6f 72 64  ur system in ord
21f0: 65 72 20 74 6f 20 75 73 65 0a 66 6f 73 73 69 6c  er to use.fossil
2200: 20 65 66 66 65 63 74 69 76 65 6c 79 2e 20 20 59   effectively.  Y
2210: 6f 75 20 77 69 6c 6c 20 77 61 6e 74 20 74 6f 20  ou will want to 
2220: 68 61 76 65 20 73 6f 6d 65 20 6b 69 6e 64 20 6f  have some kind o
2230: 66 20 74 65 78 74 20 65 64 69 74 6f 72 0a 66 6f  f text editor.fo
2240: 72 20 65 6e 74 65 72 69 6e 67 20 63 68 65 63 6b  r entering check
2250: 2d 69 6e 20 63 6f 6d 6d 65 6e 74 73 2e 20 20 46  -in comments.  F
2260: 6f 73 73 69 6c 20 77 69 6c 6c 20 75 73 65 20 77  ossil will use w
2270: 68 61 74 65 76 65 72 20 74 65 78 74 20 65 64 69  hatever text edi
2280: 74 6f 72 0a 69 73 20 69 64 65 6e 74 69 66 69 65  tor.is identifie
2290: 64 20 62 79 20 79 6f 75 72 20 56 49 53 55 41 4c  d by your VISUAL
22a0: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72   environment var
22b0: 69 61 62 6c 65 2e 20 20 46 6f 73 73 69 6c 20 77  iable.  Fossil w
22c0: 69 6c 6c 20 61 6c 73 6f 0a 75 73 65 20 47 50 47  ill also.use GPG
22d0: 20 74 6f 20 63 6c 65 61 72 73 69 67 6e 20 79 6f   to clearsign yo
22e0: 75 72 20 6d 61 6e 69 66 65 73 74 73 20 69 66 20  ur manifests if 
22f0: 79 6f 75 20 68 61 70 70 65 6e 20 74 6f 20 68 61  you happen to ha
2300: 76 65 20 69 74 20 69 6e 73 74 61 6c 6c 65 64 2c  ve it installed,
2310: 0a 62 75 74 20 66 6f 73 73 69 6c 20 77 69 6c 6c  .but fossil will
2320: 20 73 6b 69 70 20 74 68 61 74 20 73 74 65 70 20   skip that step 
2330: 69 66 20 47 50 47 20 6d 69 73 73 69 6e 67 20 66  if GPG missing f
2340: 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2e  rom your system.
2350: 0a 59 6f 75 20 63 61 6e 20 6f 70 74 69 6f 6e 61  .You can optiona
2360: 6c 6c 79 20 73 65 74 20 75 70 20 66 6f 73 73 69  lly set up fossi
2370: 6c 20 74 6f 20 75 73 65 20 65 78 74 65 72 6e 61  l to use externa
2380: 6c 20 22 64 69 66 66 22 20 70 72 6f 67 72 61 6d  l "diff" program
2390: 73 2c 20 0a 74 68 6f 75 67 68 20 66 6f 73 73 69  s, .though fossi
23a0: 6c 20 68 61 73 20 61 6e 20 65 78 63 65 6c 6c 65  l has an excelle
23b0: 6e 74 20 62 75 69 6c 74 2d 69 6e 20 22 64 69 66  nt built-in "dif
23c0: 66 22 20 61 6c 67 6f 72 69 74 68 6d 20 74 68 61  f" algorithm tha
23d0: 74 20 77 6f 72 6b 73 0a 66 69 6e 65 20 66 6f 72  t works.fine for
23e0: 20 6d 6f 73 74 20 70 65 6f 70 6c 65 2e 3c 2f 70   most people.</p
23f0: 3e 0a 0a 3c 70 3e 54 6f 20 75 6e 69 6e 73 74 61  >..<p>To uninsta
2400: 6c 6c 20 66 6f 73 73 69 6c 2c 20 73 69 6d 70 6c  ll fossil, simpl
2410: 79 20 64 65 6c 65 74 65 20 74 68 65 20 65 78 65  y delete the exe
2420: 63 75 74 61 62 6c 65 2e 3c 2f 70 3e 0a 0a 3c 70  cutable.</p>..<p
2430: 3e 54 6f 20 75 70 67 72 61 64 65 20 61 6e 20 6f  >To upgrade an o
2440: 6c 64 65 72 20 76 65 72 73 69 6f 6e 20 6f 66 20  lder version of 
2450: 66 6f 73 73 69 6c 20 74 6f 20 61 20 6e 65 77 65  fossil to a newe
2460: 72 20 76 65 72 73 69 6f 6e 2c 20 6a 75 73 74 0a  r version, just.
2470: 72 65 70 6c 61 63 65 20 74 68 65 20 6f 6c 64 20  replace the old 
2480: 65 78 65 63 75 74 61 62 6c 65 20 77 69 74 68 20  executable with 
2490: 74 68 65 20 6e 65 77 20 6f 6e 65 2e 20 20 59 6f  the new one.  Yo
24a0: 75 20 6d 69 67 68 74 20 6e 65 65 64 20 74 6f 20  u might need to 
24b0: 0a 72 75 6e 20 61 20 6f 6e 65 2d 74 69 6d 65 20  .run a one-time 
24c0: 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 73 74 72  command to restr
24d0: 75 63 74 75 72 65 20 79 6f 75 72 20 72 65 70 6f  ucture your repo
24e0: 73 69 74 6f 72 69 65 73 20 61 66 74 65 72 0a 61  sitories after.a
24f0: 6e 20 75 70 67 72 61 64 65 2e 20 20 43 68 65 63  n upgrade.  Chec
2500: 6b 20 74 68 65 20 69 6e 73 74 72 75 63 74 69 6f  k the instructio
2510: 6e 73 20 74 68 61 74 20 63 6f 6d 65 20 77 69 74  ns that come wit
2520: 68 20 74 68 65 20 75 70 67 72 61 64 65 0a 66 6f  h the upgrade.fo
2530: 72 20 64 65 74 61 69 6c 73 2e 3c 2f 70 3e 0a 0a  r details.</p>..
2540: 3c 70 3e 54 6f 20 75 73 65 20 66 6f 73 73 69 6c  <p>To use fossil
2550: 2c 20 73 69 6d 70 6c 79 20 74 79 70 65 20 74 68  , simply type th
2560: 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 65 78  e name of the ex
2570: 65 63 75 74 61 62 6c 65 20 69 6e 20 79 6f 75 72  ecutable in your
2580: 0a 73 68 65 6c 6c 2c 20 66 6f 6c 6c 6f 77 65 64  .shell, followed
2590: 20 62 79 20 6f 6e 65 20 6f 66 20 74 68 65 20 76   by one of the v
25a0: 61 72 69 6f 75 73 20 62 75 69 6c 74 2d 69 6e 20  arious built-in 
25b0: 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 0a 61 72 67  commands and.arg
25c0: 75 6d 65 6e 74 73 20 61 70 70 72 6f 70 72 69 61  uments appropria
25d0: 74 65 20 66 6f 72 20 74 68 61 74 20 63 6f 6d 6d  te for that comm
25e0: 61 6e 64 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c  and.  For exampl
25f0: 65 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75  e:</p>..<blockqu
2600: 6f 74 65 3e 3c 62 3e 0a 66 6f 73 73 69 6c 20 68  ote><b>.fossil h
2610: 65 6c 70 0a 3c 2f 62 3e 3c 2f 62 6c 6f 63 6b 71  elp.</b></blockq
2620: 75 6f 74 65 3e 0a 0a 3c 70 3e 49 6e 20 74 68 65  uote>..<p>In the
2630: 20 6e 65 78 74 20 73 65 63 74 69 6f 6e 2c 20 77   next section, w
2640: 68 65 6e 20 77 65 20 73 61 79 20 74 68 69 6e 67  hen we say thing
2650: 73 20 6c 69 6b 65 20 22 75 73 65 20 74 68 65 20  s like "use the 
2660: 3c 62 3e 68 65 6c 70 3c 2f 62 3e 0a 63 6f 6d 6d  <b>help</b>.comm
2670: 61 6e 64 22 20 77 65 20 6d 65 61 6e 20 74 6f 20  and" we mean to 
2680: 75 73 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20  use the command 
2690: 6e 61 6d 65 20 22 68 65 6c 70 22 20 61 73 20 74  name "help" as t
26a0: 68 65 20 66 69 72 73 74 0a 74 6f 6b 65 6e 20 61  he first.token a
26b0: 66 74 65 72 20 74 68 65 20 6e 61 6d 65 20 6f 66  fter the name of
26c0: 20 74 68 65 20 66 6f 73 73 69 6c 20 65 78 65 63   the fossil exec
26d0: 75 74 61 62 6c 65 2c 20 61 73 20 73 68 6f 77 6e  utable, as shown
26e0: 20 61 62 6f 76 65 2e 3c 2f 70 3e 0a 0a 3c 68 32   above.</p>..<h2
26f0: 3e 34 2e 30 20 57 6f 72 6b 66 6c 6f 77 3c 2f 68  >4.0 Workflow</h
2700: 32 3e 0a 0a 3c 69 6d 67 20 73 72 63 3d 22 63 6f  2>..<img src="co
2710: 6e 63 65 70 74 32 2e 67 69 66 22 20 61 6c 69 67  ncept2.gif" alig
2720: 6e 3d 22 72 69 67 68 74 22 20 68 73 70 61 63 65  n="right" hspace
2730: 3d 22 31 30 22 3e 0a 0a 3c 70 3e 46 6f 73 73 69  ="10">..<p>Fossi
2740: 6c 20 68 61 73 20 74 77 6f 20 6d 6f 64 65 73 20  l has two modes 
2750: 6f 66 20 6f 70 65 72 61 74 69 6f 6e 3a 20 22 61  of operation: "a
2760: 75 74 6f 73 79 6e 63 22 20 61 6e 64 20 22 6e 6f  utosync" and "no
2770: 6e 2d 61 75 74 6f 73 79 6e 63 22 2e 0a 41 75 74  n-autosync"..Aut
2780: 6f 73 79 6e 63 20 6d 6f 64 65 20 77 6f 72 6b 73  osync mode works
2790: 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20   something like 
27a0: 43 56 53 20 6f 72 20 53 56 4e 20 69 6e 20 74 68  CVS or SVN in th
27b0: 61 74 20 69 74 20 61 75 74 6f 6d 61 74 69 63 61  at it automatica
27c0: 6c 6c 79 0a 6b 65 65 70 73 20 79 6f 75 72 20 77  lly.keeps your w
27d0: 6f 72 6b 20 69 6e 20 73 79 6e 63 20 77 69 74 68  ork in sync with
27e0: 20 74 68 65 20 63 65 6e 74 72 61 6c 20 73 65 72   the central ser
27f0: 76 65 72 2e 20 20 4e 6f 6e 2d 61 75 74 6f 73 79  ver.  Non-autosy
2800: 6e 63 20 69 73 0a 6d 6f 72 65 20 6c 69 6b 65 20  nc is.more like 
2810: 47 49 54 20 6f 72 20 42 69 74 6b 65 65 70 65 72  GIT or Bitkeeper
2820: 20 69 6e 20 74 68 61 74 20 79 6f 75 72 20 6c 6f   in that your lo
2830: 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 20 64  cal repository d
2840: 65 76 65 6c 6f 70 73 0a 69 6e 64 65 70 65 6e 64  evelops.independ
2850: 65 6e 74 6c 79 20 6f 66 20 79 6f 75 72 20 63 6f  ently of your co
2860: 77 6f 72 6b 65 72 73 20 61 6e 64 20 79 6f 75 20  workers and you 
2870: 73 68 61 72 65 20 79 6f 75 72 20 63 68 61 6e 67  share your chang
2880: 65 73 20 6d 61 6e 75 61 6c 6c 79 2e 0a 41 6e 20  es manually..An 
2890: 69 6e 74 65 72 65 73 74 69 6e 67 20 66 65 61 74  interesting feat
28a0: 75 72 65 20 6f 66 20 66 6f 73 73 69 6c 20 69 73  ure of fossil is
28b0: 20 74 68 61 74 20 69 74 20 73 75 70 70 6f 72 74   that it support
28c0: 73 20 62 6f 74 68 20 61 75 74 6f 73 79 6e 63 0a  s both autosync.
28d0: 61 6e 64 20 6e 6f 6e 2d 61 75 74 6f 73 79 6e 63  and non-autosync
28e0: 20 77 6f 72 6b 20 66 6c 6f 77 73 2e 3c 2f 70 3e   work flows.</p>
28f0: 0a 0a 3c 70 3e 54 68 65 20 64 65 66 61 75 6c 74  ..<p>The default
2900: 20 73 65 74 74 69 6e 67 20 66 6f 72 20 66 6f 73   setting for fos
2910: 73 69 6c 20 69 73 20 74 6f 20 62 65 20 69 6e 20  sil is to be in 
2920: 61 75 74 6f 73 79 6e 63 20 6d 6f 64 65 2e 20 20  autosync mode.  
2930: 59 6f 75 0a 63 61 6e 20 63 68 61 6e 67 65 20 74  You.can change t
2940: 68 65 20 61 75 74 6f 73 79 6e 63 20 73 65 74 74  he autosync sett
2950: 69 6e 67 20 6f 72 20 63 68 65 63 6b 20 74 68 65  ing or check the
2960: 20 63 75 72 72 65 6e 74 20 61 75 74 6f 73 79 6e   current autosyn
2970: 63 0a 73 65 74 74 69 6e 67 20 75 73 69 6e 67 20  c.setting using 
2980: 63 6f 6d 6d 61 6e 64 73 20 6c 69 6b 65 3a 3c 2f  commands like:</
2990: 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e  p>..<blockquote>
29a0: 0a 3c 62 3e 66 6f 73 73 69 6c 20 73 65 74 74 69  .<b>fossil setti
29b0: 6e 67 20 61 75 74 6f 73 79 6e 63 20 6f 6e 3c 62  ng autosync on<b
29c0: 72 3e 0a 66 6f 73 73 69 6c 20 73 65 74 74 69 6e  r>.fossil settin
29d0: 67 20 61 75 74 6f 73 79 6e 63 20 6f 66 66 3c 62  g autosync off<b
29e0: 72 3e 0a 3c 62 3e 66 6f 73 73 69 6c 20 73 65 74  r>.<b>fossil set
29f0: 74 69 6e 67 73 3c 2f 62 3e 0a 3c 2f 62 6c 6f 63  tings</b>.</bloc
2a00: 6b 71 75 6f 74 65 3e 0a 0a 3c 70 3e 42 79 20 64  kquote>..<p>By d
2a10: 65 66 61 75 6c 74 2c 20 66 6f 73 73 69 6c 20 72  efault, fossil r
2a20: 75 6e 73 20 77 69 74 68 20 61 75 74 6f 73 79 6e  uns with autosyn
2a30: 63 20 6d 6f 64 65 20 74 75 72 6e 65 64 20 6f 6e  c mode turned on
2a40: 2e 20 20 54 68 65 0a 61 75 74 68 6f 72 73 20 66  .  The.authors f
2a50: 69 6e 64 20 74 68 61 74 20 70 72 6f 6a 65 63 74  ind that project
2a60: 73 20 72 75 6e 20 6d 6f 72 65 20 73 6d 6f 6f 74  s run more smoot
2a70: 68 6c 79 20 77 68 65 6e 20 61 75 74 6f 73 79 6e  hly when autosyn
2a80: 63 20 69 73 20 6f 6e 6c 79 0a 64 69 73 61 62 6c  c is only.disabl
2a90: 65 64 20 77 68 65 6e 20 6f 66 66 2d 6e 65 74 77  ed when off-netw
2aa0: 6f 72 6b 2e 3c 2f 70 3e 0a 0a 3c 68 33 3e 34 2e  ork.</p>..<h3>4.
2ab0: 31 20 41 75 74 6f 73 79 6e 63 20 57 6f 72 6b 66  1 Autosync Workf
2ac0: 6c 6f 77 3c 2f 68 33 3e 0a 0a 3c 6f 6c 3e 0a 3c  low</h3>..<ol>.<
2ad0: 6c 69 3e 3c 70 3e 0a 45 73 74 61 62 6c 69 73 68  li><p>.Establish
2ae0: 20 61 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74   a local reposit
2af0: 6f 72 79 20 75 73 69 6e 67 20 65 69 74 68 65 72  ory using either
2b00: 20 74 68 65 20 3c 62 3e 6e 65 77 3c 2f 62 3e 20   the <b>new</b> 
2b10: 63 6f 6d 6d 61 6e 64 0a 74 6f 20 73 74 61 72 74  command.to start
2b20: 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 2c 20   a new project, 
2b30: 6f 72 20 74 68 65 20 3c 62 3e 63 6c 6f 6e 65 3c  or the <b>clone<
2b40: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 6d  /b> command to m
2b50: 61 6b 65 20 61 20 63 6c 6f 6e 65 0a 6f 66 20 61  ake a clone.of a
2b60: 20 72 65 70 6f 73 69 74 6f 72 79 20 66 6f 72 20   repository for 
2b70: 61 6e 20 65 78 69 73 74 69 6e 67 20 70 72 6f 6a  an existing proj
2b80: 65 63 74 2e 20 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a  ect. .</p></li>.
2b90: 0a 3c 6c 69 3e 3c 70 3e 0a 45 73 74 61 62 6c 69  .<li><p>.Establi
2ba0: 73 68 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 73  sh one or more s
2bb0: 6f 75 72 63 65 20 74 72 65 65 73 20 62 79 20 63  ource trees by c
2bc0: 68 61 6e 67 69 6e 67 20 79 6f 75 72 20 77 6f 72  hanging your wor
2bd0: 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 0a 74  king directory.t
2be0: 6f 20 77 68 65 72 65 20 79 6f 75 20 77 61 6e 74  o where you want
2bf0: 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65   the root of the
2c00: 20 73 6f 75 72 63 65 20 74 72 65 65 20 74 6f 20   source tree to 
2c10: 62 65 2c 20 74 68 65 6e 20 69 73 73 75 69 6e 67  be, then issuing
2c20: 0a 74 68 65 20 3c 62 3e 6f 70 65 6e 3c 2f 62 3e  .the <b>open</b>
2c30: 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 20 74 68   command with th
2c40: 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 65  e name of the re
2c50: 70 6f 73 69 74 6f 72 79 20 66 69 6c 65 20 61 73  pository file as
2c60: 20 69 74 73 0a 61 72 67 75 6d 65 6e 74 2e 0a 3c   its.argument..<
2c70: 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70  /p></li>..<li><p
2c80: 3e 0a 54 68 65 20 3c 62 3e 6f 70 65 6e 3c 2f 62  >.The <b>open</b
2c90: 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  > command in the
2ca0: 20 70 72 65 76 69 6f 75 73 20 73 74 65 70 20 70   previous step p
2cb0: 6f 70 75 6c 61 74 65 73 20 79 6f 75 72 20 6c 6f  opulates your lo
2cc0: 63 61 6c 20 73 6f 75 72 63 65 0a 74 72 65 65 20  cal source.tree 
2cd0: 77 69 74 68 20 61 20 63 6f 70 79 20 6f 66 20 74  with a copy of t
2ce0: 68 65 20 6c 61 74 65 73 74 20 63 68 65 63 6b 2d  he latest check-
2cf0: 69 6e 2e 20 20 55 73 75 61 6c 6c 79 20 74 68 69  in.  Usually thi
2d00: 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61  s is what you wa
2d10: 6e 74 2e 0a 49 6e 20 74 68 65 20 72 61 72 65 20  nt..In the rare 
2d20: 63 61 73 65 73 20 77 68 65 72 65 20 69 74 20 69  cases where it i
2d30: 73 20 6e 6f 74 2c 20 75 73 65 20 74 68 65 20 3c  s not, use the <
2d40: 62 3e 75 70 64 61 74 65 3c 2f 62 3e 20 63 6f 6d  b>update</b> com
2d50: 6d 61 6e 64 20 74 6f 0a 73 77 69 74 63 68 20 74  mand to.switch t
2d60: 6f 20 61 20 6e 65 77 20 63 68 65 63 6b 2d 69 6e  o a new check-in
2d70: 2e 20 20 55 73 65 20 74 68 65 20 3c 62 3e 74 69  .  Use the <b>ti
2d80: 6d 65 6c 69 6e 65 3c 2f 62 3e 20 6f 72 20 3c 62  meline</b> or <b
2d90: 3e 6c 65 61 76 65 73 3c 2f 62 3e 20 63 6f 6d 6d  >leaves</b> comm
2da0: 61 6e 64 73 0a 74 6f 20 69 64 65 6e 74 69 66 79  ands.to identify
2db0: 20 61 6c 74 65 72 6e 61 74 69 76 65 20 63 68 65   alternative che
2dc0: 63 6b 2d 69 6e 73 20 74 6f 20 73 77 69 74 63 68  ck-ins to switch
2dd0: 20 74 6f 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a   to..</p></li>..
2de0: 3c 6c 69 3e 3c 70 3e 0a 45 64 69 74 20 74 68 65  <li><p>.Edit the
2df0: 20 63 6f 64 65 2e 20 20 41 64 64 20 6e 65 77 20   code.  Add new 
2e00: 66 69 6c 65 73 20 74 6f 20 74 68 65 20 73 6f 75  files to the sou
2e10: 72 63 65 20 74 72 65 65 20 75 73 69 6e 67 20 74  rce tree using t
2e20: 68 65 20 3c 62 3e 61 64 64 3c 2f 62 3e 0a 63 6f  he <b>add</b>.co
2e30: 6d 6d 61 6e 64 2e 20 20 4f 6d 69 74 20 66 69 6c  mmand.  Omit fil
2e40: 65 73 20 66 72 6f 6d 20 66 75 74 75 72 65 20 63  es from future c
2e50: 68 65 63 6b 2d 69 6e 73 20 75 73 69 6e 67 20 74  heck-ins using t
2e60: 68 65 20 3c 62 3e 72 6d 3c 2f 62 3e 20 63 6f 6d  he <b>rm</b> com
2e70: 6d 61 6e 64 2e 0a 28 45 76 65 6e 20 77 68 65 6e  mand..(Even when
2e80: 20 79 6f 75 20 72 65 6d 6f 76 65 20 66 69 6c 65   you remove file
2e90: 73 20 66 72 6f 6d 20 66 75 74 75 72 65 20 63 68  s from future ch
2ea0: 65 63 6b 2d 69 6e 73 2c 20 74 68 6f 73 65 20 66  eck-ins, those f
2eb0: 69 6c 65 73 20 63 6f 6e 74 69 6e 75 65 0a 74 6f  iles continue.to
2ec0: 20 65 78 69 73 74 20 69 6e 20 68 69 73 74 6f 72   exist in histor
2ed0: 69 63 61 6c 20 63 68 65 63 6b 2d 69 6e 73 2e 29  ical check-ins.)
2ee0: 20 20 54 65 73 74 20 79 6f 75 72 20 63 68 61 6e    Test your chan
2ef0: 67 65 73 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a  ges..</p></li>..
2f00: 3c 6c 69 3e 3c 70 3e 0a 43 72 65 61 74 65 20 61  <li><p>.Create a
2f10: 20 6e 65 77 20 63 68 65 63 6b 2d 69 6e 20 75 73   new check-in us
2f20: 69 6e 67 20 74 68 65 20 3c 62 3e 63 6f 6d 6d 69  ing the <b>commi
2f30: 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2e 20 20  t</b> command.  
2f40: 59 6f 75 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d  You will be prom
2f50: 70 74 65 64 0a 66 6f 72 20 61 20 63 68 65 63 6b  pted.for a check
2f60: 2d 69 6e 20 63 6f 6d 6d 65 6e 74 20 61 6e 64 20  -in comment and 
2f70: 61 6c 73 6f 20 66 6f 72 20 79 6f 75 72 20 47 50  also for your GP
2f80: 47 20 6b 65 79 20 69 66 20 79 6f 75 20 68 61 76  G key if you hav
2f90: 65 20 47 50 47 20 69 6e 73 74 61 6c 6c 65 64 2e  e GPG installed.
2fa0: 0a 54 68 65 20 63 6f 6d 6d 69 74 20 63 6f 70 69  .The commit copi
2fb0: 65 73 20 74 68 65 20 65 64 69 74 73 20 79 6f 75  es the edits you
2fc0: 20 68 61 76 65 20 6d 61 64 65 20 69 6e 20 79 6f   have made in yo
2fd0: 75 72 20 6c 6f 63 61 6c 20 73 6f 75 72 63 65 0a  ur local source.
2fe0: 74 72 65 65 20 69 6e 74 6f 20 79 6f 75 72 20 6c  tree into your l
2ff0: 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2e  ocal repository.
3000: 20 20 41 66 74 65 72 20 79 6f 75 72 20 63 6f 6d    After your com
3010: 6d 69 74 20 63 6f 6d 70 6c 65 74 65 73 2c 20 66  mit completes, f
3020: 6f 73 73 69 6c 20 77 69 6c 6c 0a 61 75 74 6f 6d  ossil will.autom
3030: 61 74 69 63 61 6c 6c 79 20 3c 62 3e 70 75 73 68  atically <b>push
3040: 3c 2f 62 3e 20 79 6f 75 72 20 63 68 61 6e 67 65  </b> your change
3050: 73 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 65  s back to the se
3060: 72 76 65 72 0a 79 6f 75 20 63 6c 6f 6e 65 64 20  rver.you cloned 
3070: 66 72 6f 6d 20 6f 72 20 77 68 61 74 65 76 65 72  from or whatever
3080: 20 73 65 72 76 65 72 20 79 6f 75 20 6d 6f 73 74   server you most
3090: 20 72 65 63 65 6e 74 6c 79 20 73 79 6e 63 65 64   recently synced
30a0: 20 77 69 74 68 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e   with..</p></li>
30b0: 0a 0a 3c 6c 69 3e 3c 70 3e 0a 57 68 65 6e 20 79  ..<li><p>.When y
30c0: 6f 75 72 20 63 6f 77 6f 72 6b 65 72 73 20 6d 61  our coworkers ma
30d0: 6b 65 20 74 68 65 69 72 20 6f 77 6e 20 63 68 61  ke their own cha
30e0: 6e 67 65 73 2c 20 79 6f 75 20 63 61 6e 20 6d 65  nges, you can me
30f0: 72 67 65 20 74 68 6f 73 65 20 63 68 61 6e 67 65  rge those change
3100: 73 0a 69 6e 74 6f 20 79 6f 75 72 20 6c 6f 63 61  s.into your loca
3110: 6c 20 6c 6f 63 61 6c 20 73 6f 75 72 63 65 20 74  l local source t
3120: 72 65 65 20 75 73 69 6e 67 20 74 68 65 20 3c 62  ree using the <b
3130: 3e 75 70 64 61 74 65 3c 2f 62 3e 20 63 6f 6d 6d  >update</b> comm
3140: 61 6e 64 2e 20 20 0a 49 6e 20 61 75 74 6f 73 79  and.  .In autosy
3150: 6e 63 20 6d 6f 64 65 2c 20 3c 62 3e 75 70 64 61  nc mode, <b>upda
3160: 74 65 3c 2f 62 3e 20 77 69 6c 6c 20 66 69 72 73  te</b> will firs
3170: 74 20 67 6f 20 62 61 63 6b 20 74 6f 20 74 68 65  t go back to the
3180: 20 73 65 72 76 65 72 20 79 6f 75 0a 63 6c 6f 6e   server you.clon
3190: 65 64 20 66 72 6f 6d 20 6f 72 20 77 69 74 68 20  ed from or with 
31a0: 77 68 69 63 68 20 79 6f 75 20 6d 6f 73 74 20 72  which you most r
31b0: 65 63 65 6e 74 6c 79 20 73 79 6e 63 65 64 2c 20  ecently synced, 
31c0: 61 6e 64 20 70 75 6c 6c 20 64 6f 77 6e 20 61 6c  and pull down al
31d0: 6c 0a 72 65 63 65 6e 74 20 63 68 61 6e 67 65 73  l.recent changes
31e0: 20 69 6e 74 6f 20 79 6f 75 72 20 6c 6f 63 61 6c   into your local
31f0: 20 72 65 70 6f 73 69 74 6f 72 79 2e 20 20 54 68   repository.  Th
3200: 65 6e 20 69 74 20 77 69 6c 6c 20 6d 65 72 67 65  en it will merge
3210: 20 72 65 63 65 6e 74 0a 63 68 61 6e 67 65 73 20   recent.changes 
3220: 69 6e 74 6f 20 79 6f 75 72 20 6c 6f 63 61 6c 20  into your local 
3230: 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 49 66  source tree.  If
3240: 20 79 6f 75 20 64 6f 20 61 6e 20 3c 62 3e 75 70   you do an <b>up
3250: 64 61 74 65 3c 2f 62 3e 20 61 6e 64 0a 66 69 6e  date</b> and.fin
3260: 64 20 74 68 61 74 20 69 74 20 6d 65 73 73 65 73  d that it messes
3270: 20 73 6f 6d 65 74 68 69 6e 67 20 75 70 20 69 6e   something up in
3280: 20 79 6f 75 72 20 73 6f 75 72 63 65 20 74 72 65   your source tre
3290: 65 20 28 70 65 72 68 61 70 73 20 61 20 63 6f 2d  e (perhaps a co-
32a0: 77 6f 72 6b 65 72 0a 63 68 65 63 6b 65 64 20 69  worker.checked i
32b0: 6e 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 63  n incompatible c
32c0: 68 61 6e 67 65 73 29 20 79 6f 75 20 63 61 6e 20  hanges) you can 
32d0: 75 73 65 20 74 68 65 20 3c 62 3e 75 6e 64 6f 3c  use the <b>undo<
32e0: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 0a 74 6f 20  /b> command .to 
32f0: 62 61 63 6b 20 6f 75 74 20 74 68 65 20 63 68 61  back out the cha
3300: 6e 67 65 73 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a  nges..</p></li>.
3310: 0a 3c 6c 69 3e 3c 70 3e 0a 52 65 70 65 61 74 20  .<li><p>.Repeat 
3320: 61 6c 6c 20 6f 66 20 74 68 65 20 61 62 6f 76 65  all of the above
3330: 20 75 6e 74 69 6c 20 79 6f 75 20 68 61 76 65 20   until you have 
3340: 67 65 6e 65 72 61 74 65 64 20 67 72 65 61 74 20  generated great 
3350: 73 6f 66 74 77 61 72 65 2e 0a 3c 2f 70 3e 3c 2f  software..</p></
3360: 6c 69 3e 0a 3c 2f 6f 6c 3e 0a 0a 3c 68 33 3e 34  li>.</ol>..<h3>4
3370: 2e 32 20 4e 6f 6e 2d 41 75 74 6f 73 79 6e 63 20  .2 Non-Autosync 
3380: 57 6f 72 6b 66 6c 6f 77 3c 2f 68 33 3e 0a 0a 3c  Workflow</h3>..<
3390: 70 3e 57 68 65 6e 20 61 75 74 6f 73 79 6e 63 20  p>When autosync 
33a0: 69 73 20 64 69 73 61 62 6c 65 64 2c 20 74 68 65  is disabled, the
33b0: 20 3c 62 3e 63 6f 6d 6d 69 74 3c 2f 62 3e 20 63   <b>commit</b> c
33c0: 6f 6d 6d 61 6e 64 20 69 73 20 64 65 63 6f 75 70  ommand is decoup
33d0: 6c 65 64 20 66 72 6f 6d 0a 3c 62 3e 70 75 73 68  led from.<b>push
33e0: 3c 2f 62 3e 20 61 6e 64 20 74 68 65 20 3c 62 3e  </b> and the <b>
33f0: 75 70 64 61 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61  update</b> comma
3400: 6e 64 20 69 73 20 64 65 63 6f 75 70 6c 65 64 20  nd is decoupled 
3410: 66 72 6f 6d 20 3c 62 3e 70 75 6c 6c 3c 2f 62 3e  from <b>pull</b>
3420: 2e 0a 54 68 61 74 20 6d 65 61 6e 73 20 79 6f 75  ..That means you
3430: 20 68 61 76 65 20 74 6f 20 64 6f 20 61 20 66 65   have to do a fe
3440: 77 20 65 78 74 72 61 20 73 74 65 70 73 20 69 6e  w extra steps in
3450: 20 6f 72 64 65 72 20 74 6f 20 61 63 63 6f 6d 70   order to accomp
3460: 6c 69 73 68 20 74 68 65 0a 3c 62 3e 70 75 73 68  lish the.<b>push
3470: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 70 75 6c 6c  </b> and <b>pull
3480: 3c 2f 62 3e 20 74 61 73 6b 73 20 6d 61 6e 75 61  </b> tasks manua
3490: 6c 6c 79 2e 3c 2f 70 3e 0a 0a 3c 6f 6c 3e 0a 3c  lly.</p>..<ol>.<
34a0: 6c 69 3e 3c 70 3e 0a 45 73 74 61 62 6c 69 73 68  li><p>.Establish
34b0: 20 61 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74   a local reposit
34c0: 6f 72 79 20 75 73 69 6e 67 20 65 69 74 68 65 72  ory using either
34d0: 20 74 68 65 20 3c 62 3e 6e 65 77 3c 2f 62 3e 20   the <b>new</b> 
34e0: 63 6f 6d 6d 61 6e 64 0a 74 6f 20 73 74 61 72 74  command.to start
34f0: 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 2c 20   a new project, 
3500: 6f 72 20 74 68 65 20 3c 62 3e 63 6c 6f 6e 65 3c  or the <b>clone<
3510: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 6d  /b> command to m
3520: 61 6b 65 20 61 20 63 6c 6f 6e 65 0a 6f 66 20 61  ake a clone.of a
3530: 20 72 65 70 6f 73 69 74 6f 72 79 20 66 6f 72 20   repository for 
3540: 61 6e 20 65 78 69 73 74 69 6e 67 20 70 72 6f 6a  an existing proj
3550: 65 63 74 2e 20 20 20 54 68 65 20 64 65 66 61 75  ect.   The defau
3560: 6c 74 20 73 65 74 74 69 6e 67 20 66 6f 72 0a 61  lt setting for.a
3570: 20 6e 65 77 20 72 65 70 6f 73 69 74 6f 72 79 20   new repository 
3580: 69 73 20 77 69 74 68 20 61 75 74 6f 73 79 6e 63  is with autosync
3590: 20 6f 6e 2c 20 73 6f 20 79 6f 75 20 77 69 6c 6c   on, so you will
35a0: 20 6e 65 65 64 20 74 6f 20 74 75 72 6e 20 69 74   need to turn it
35b0: 20 6f 66 66 0a 75 73 69 6e 67 20 74 68 65 20 3c   off.using the <
35c0: 62 3e 73 65 74 74 69 6e 67 20 61 75 74 6f 73 79  b>setting autosy
35d0: 6e 63 20 6f 66 66 3c 2f 62 3e 20 63 6f 6d 6d 61  nc off</b> comma
35e0: 6e 64 20 77 69 74 68 20 61 20 3c 62 3e 2d 52 3c  nd with a <b>-R<
35f0: 2f 62 3e 20 6f 70 74 69 6f 6e 0a 74 6f 20 73 70  /b> option.to sp
3600: 65 63 69 66 79 20 74 68 65 20 72 65 70 6f 73 69  ecify the reposi
3610: 74 6f 72 79 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a  tory..</p></li>.
3620: 0a 3c 6c 69 3e 3c 70 3e 0a 45 73 74 61 62 6c 69  .<li><p>.Establi
3630: 73 68 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 73  sh one or more s
3640: 6f 75 72 63 65 20 74 72 65 65 73 20 62 79 20 63  ource trees by c
3650: 68 61 6e 67 69 6e 67 20 79 6f 75 72 20 77 6f 72  hanging your wor
3660: 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 0a 74  king directory.t
3670: 6f 20 77 68 65 72 65 20 79 6f 75 20 77 61 6e 74  o where you want
3680: 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65   the root of the
3690: 20 73 6f 75 72 63 65 20 74 72 65 65 20 74 6f 20   source tree to 
36a0: 62 65 2c 20 74 68 65 6e 20 69 73 73 75 69 6e 67  be, then issuing
36b0: 0a 74 68 65 20 3c 62 3e 6f 70 65 6e 3c 2f 62 3e  .the <b>open</b>
36c0: 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 20 74 68   command with th
36d0: 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 65  e name of the re
36e0: 70 6f 73 69 74 6f 72 79 20 66 69 6c 65 20 61 73  pository file as
36f0: 20 69 74 73 0a 61 72 67 75 6d 65 6e 74 2e 0a 3c   its.argument..<
3700: 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70  /p></li>..<li><p
3710: 3e 0a 54 68 65 20 3c 62 3e 6f 70 65 6e 3c 2f 62  >.The <b>open</b
3720: 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  > command in the
3730: 20 70 72 65 76 69 6f 75 73 20 73 74 65 70 20 70   previous step p
3740: 6f 70 75 6c 61 74 65 73 20 79 6f 75 72 20 6c 6f  opulates your lo
3750: 63 61 6c 20 73 6f 75 72 63 65 0a 74 72 65 65 20  cal source.tree 
3760: 77 69 74 68 20 61 20 63 6f 70 79 20 6f 66 20 74  with a copy of t
3770: 68 65 20 6c 61 74 65 73 74 20 63 68 65 63 6b 2d  he latest check-
3780: 69 6e 2e 20 20 55 73 75 61 6c 6c 79 20 74 68 69  in.  Usually thi
3790: 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61  s is what you wa
37a0: 6e 74 2e 0a 49 6e 20 74 68 65 20 72 61 72 65 20  nt..In the rare 
37b0: 63 61 73 65 73 20 77 68 65 72 65 20 69 74 20 69  cases where it i
37c0: 73 20 6e 6f 74 2c 20 75 73 65 20 74 68 65 20 3c  s not, use the <
37d0: 62 3e 75 70 64 61 74 65 3c 2f 62 3e 20 63 6f 6d  b>update</b> com
37e0: 6d 61 6e 64 20 74 6f 0a 73 77 69 74 63 68 20 74  mand to.switch t
37f0: 6f 20 61 20 6e 65 77 20 63 68 65 63 6b 2d 69 6e  o a new check-in
3800: 2e 20 20 55 73 65 20 74 68 65 20 3c 62 3e 74 69  .  Use the <b>ti
3810: 6d 65 6c 69 6e 65 3c 2f 62 3e 20 6f 72 20 3c 62  meline</b> or <b
3820: 3e 6c 65 61 76 65 73 3c 2f 62 3e 20 63 6f 6d 6d  >leaves</b> comm
3830: 61 6e 64 73 0a 74 6f 20 69 64 65 6e 74 69 66 79  ands.to identify
3840: 20 61 6c 74 65 72 6e 61 74 69 76 65 20 63 68 65   alternative che
3850: 63 6b 2d 69 6e 73 20 74 6f 20 73 77 69 74 63 68  ck-ins to switch
3860: 20 74 6f 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a   to..</p></li>..
3870: 3c 6c 69 3e 3c 70 3e 0a 45 64 69 74 20 74 68 65  <li><p>.Edit the
3880: 20 63 6f 64 65 2e 20 20 41 64 64 20 6e 65 77 20   code.  Add new 
3890: 66 69 6c 65 73 20 74 6f 20 74 68 65 20 73 6f 75  files to the sou
38a0: 72 63 65 20 74 72 65 65 20 75 73 69 6e 67 20 74  rce tree using t
38b0: 68 65 20 3c 62 3e 61 64 64 3c 2f 62 3e 0a 63 6f  he <b>add</b>.co
38c0: 6d 6d 61 6e 64 2e 20 20 4f 6d 69 74 20 66 69 6c  mmand.  Omit fil
38d0: 65 73 20 66 72 6f 6d 20 66 75 74 75 72 65 20 63  es from future c
38e0: 68 65 63 6b 2d 69 6e 73 20 75 73 69 6e 67 20 74  heck-ins using t
38f0: 68 65 20 3c 62 3e 72 6d 3c 2f 62 3e 20 63 6f 6d  he <b>rm</b> com
3900: 6d 61 6e 64 2e 0a 28 45 76 65 6e 20 77 68 65 6e  mand..(Even when
3910: 20 79 6f 75 20 72 65 6d 6f 76 65 20 66 69 6c 65   you remove file
3920: 73 20 66 72 6f 6d 20 66 75 74 75 72 65 20 63 68  s from future ch
3930: 65 63 6b 2d 69 6e 73 2c 20 74 68 6f 73 65 20 66  eck-ins, those f
3940: 69 6c 65 73 20 63 6f 6e 74 69 6e 75 65 0a 74 6f  iles continue.to
3950: 20 65 78 69 73 74 20 69 6e 20 68 69 73 74 6f 72   exist in histor
3960: 69 63 61 6c 20 63 68 65 63 6b 2d 69 6e 73 2e 29  ical check-ins.)
3970: 20 20 54 65 73 74 20 79 6f 75 72 20 63 68 61 6e    Test your chan
3980: 67 65 73 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a  ges..</p></li>..
3990: 3c 6c 69 3e 3c 70 3e 0a 43 72 65 61 74 65 20 61  <li><p>.Create a
39a0: 20 6e 65 77 20 63 68 65 63 6b 2d 69 6e 20 75 73   new check-in us
39b0: 69 6e 67 20 74 68 65 20 3c 62 3e 63 6f 6d 6d 69  ing the <b>commi
39c0: 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2e 20 20  t</b> command.  
39d0: 59 6f 75 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d  You will be prom
39e0: 70 74 65 64 0a 66 6f 72 20 61 20 63 68 65 63 6b  pted.for a check
39f0: 2d 69 6e 20 63 6f 6d 6d 65 6e 74 20 61 6e 64 20  -in comment and 
3a00: 61 6c 73 6f 20 66 6f 72 20 79 6f 75 72 20 47 50  also for your GP
3a10: 47 20 6b 65 79 20 69 66 20 79 6f 75 20 68 61 76  G key if you hav
3a20: 65 20 47 50 47 20 69 6e 73 74 61 6c 6c 65 64 2e  e GPG installed.
3a30: 0a 54 68 65 20 63 6f 6d 6d 69 74 20 63 6f 70 69  .The commit copi
3a40: 65 73 20 74 68 65 20 65 64 69 74 73 20 79 6f 75  es the edits you
3a50: 20 68 61 76 65 20 6d 61 64 65 20 69 6e 20 79 6f   have made in yo
3a60: 75 72 20 6c 6f 63 61 6c 20 73 6f 75 72 63 65 0a  ur local source.
3a70: 74 72 65 65 20 69 6e 74 6f 20 79 6f 75 72 20 6c  tree into your l
3a80: 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2e  ocal repository.
3a90: 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e  .</p></li>..<li>
3aa0: 3c 70 3e 55 73 65 20 74 68 65 20 3c 62 3e 70 75  <p>Use the <b>pu
3ab0: 73 68 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74  sh</b> command t
3ac0: 6f 20 70 75 73 68 20 79 6f 75 72 20 63 68 61 6e  o push your chan
3ad0: 67 65 73 20 6f 75 74 20 74 6f 20 61 20 73 65 72  ges out to a ser
3ae0: 76 65 72 0a 77 68 65 72 65 20 79 6f 75 72 20 63  ver.where your c
3af0: 6f 2d 77 6f 72 6b 65 72 73 20 63 61 6e 20 61 63  o-workers can ac
3b00: 63 65 73 73 20 74 68 65 6d 2e 0a 3c 2f 70 3e 3c  cess them..</p><
3b10: 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 57 68  /li>..<li><p>.Wh
3b20: 65 6e 20 63 6f 2d 77 6f 72 6b 65 72 73 20 6d 61  en co-workers ma
3b30: 6b 65 20 74 68 65 69 72 20 6f 77 6e 20 63 68 61  ke their own cha
3b40: 6e 67 65 73 2c 20 75 73 65 20 74 68 65 20 3c 62  nges, use the <b
3b50: 3e 70 75 6c 6c 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  >pull</b> comman
3b60: 64 0a 74 6f 20 70 75 6c 6c 20 74 68 6f 73 65 20  d.to pull those 
3b70: 63 68 61 6e 67 65 73 20 69 6e 74 6f 20 79 6f 75  changes into you
3b80: 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f  r local reposito
3b90: 72 79 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 3c  ry.  Note that <
3ba0: 62 3e 70 75 6c 6c 3c 2f 62 3e 0a 64 6f 65 73 20  b>pull</b>.does 
3bb0: 6e 6f 74 20 6d 6f 76 65 20 74 68 65 20 63 68 61  not move the cha
3bc0: 6e 67 65 73 20 69 6e 74 6f 20 79 6f 75 72 20 6c  nges into your l
3bd0: 6f 63 61 6c 20 73 6f 75 72 63 65 20 74 72 65 65  ocal source tree
3be0: 2c 20 6f 6e 6c 79 20 69 6e 74 6f 20 79 6f 75 72  , only into your
3bf0: 0a 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f 72  .local repositor
3c00: 79 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c  y..</p></li>..<l
3c10: 69 3e 3c 70 3e 0a 4f 6e 63 65 20 63 68 61 6e 67  i><p>.Once chang
3c20: 65 73 20 61 72 65 20 69 6e 20 79 6f 75 72 20 6c  es are in your l
3c30: 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2c  ocal repository,
3c40: 20 75 73 65 0a 75 73 65 20 74 68 65 20 3c 62 3e   use.use the <b>
3c50: 75 70 64 61 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61  update</b> comma
3c60: 6e 64 20 74 6f 20 6d 65 72 67 65 20 74 68 65 6d  nd to merge them
3c70: 20 74 6f 20 79 6f 75 72 20 6c 6f 63 61 6c 20 73   to your local s
3c80: 6f 75 72 63 65 20 74 72 65 65 2e 0a 49 66 20 79  ource tree..If y
3c90: 6f 75 20 6d 65 72 67 65 20 69 6e 20 73 6f 6d 65  ou merge in some
3ca0: 20 63 68 61 6e 67 65 73 20 61 6e 64 20 66 69 6e   changes and fin
3cb0: 64 20 74 68 61 74 20 74 68 65 20 63 68 61 6e 67  d that the chang
3cc0: 65 73 20 64 6f 20 6e 6f 74 20 77 6f 72 6b 20 6f  es do not work o
3cd0: 75 74 0a 6f 72 20 61 72 65 20 6e 6f 74 20 74 6f  ut.or are not to
3ce0: 20 79 6f 75 72 20 6c 69 6b 69 6e 67 2c 20 79 6f   your liking, yo
3cf0: 75 20 63 61 6e 20 62 61 63 6b 20 6f 75 74 20 74  u can back out t
3d00: 68 65 20 63 68 61 6e 67 65 73 20 75 73 69 6e 67  he changes using
3d10: 20 74 68 65 0a 3c 62 3e 75 6e 64 6f 3c 2f 62 3e   the.<b>undo</b>
3d20: 20 63 6f 6d 6d 61 6e 64 2e 0a 3c 2f 70 3e 3c 2f   command..</p></
3d30: 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 52 65 70  li>..<li><p>.Rep
3d40: 65 61 74 20 61 6c 6c 20 6f 66 20 74 68 65 20 61  eat all of the a
3d50: 62 6f 76 65 20 75 6e 74 69 6c 20 79 6f 75 20 68  bove until you h
3d60: 61 76 65 20 67 65 6e 65 72 61 74 65 64 20 67 72  ave generated gr
3d70: 65 61 74 20 73 6f 66 74 77 61 72 65 2e 0a 3c 2f  eat software..</
3d80: 70 3e 3c 2f 6c 69 3e 0a 3c 2f 6f 6c 3e 0a 0a 3c  p></li>.</ol>..<
3d90: 68 32 3e 35 2e 30 20 53 65 74 74 69 6e 67 20 55  h2>5.0 Setting U
3da0: 70 20 41 20 46 6f 73 73 69 6c 20 53 65 72 76 65  p A Fossil Serve
3db0: 72 3c 2f 68 32 3e 0a 0a 3c 70 3e 57 69 74 68 20  r</h2>..<p>With 
3dc0: 6f 74 68 65 72 20 63 6f 6e 66 69 67 75 72 61 74  other configurat
3dd0: 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e 74 20 73  ion management s
3de0: 6f 66 74 77 61 72 65 2c 20 73 65 74 74 69 6e 67  oftware, setting
3df0: 20 75 70 20 61 20 73 65 72 76 65 72 20 69 73 0a   up a server is.
3e00: 61 20 6c 6f 74 20 6f 66 20 77 6f 72 6b 20 61 6e  a lot of work an
3e10: 64 20 6e 6f 72 6d 61 6c 6c 79 20 74 61 6b 65 73  d normally takes
3e20: 20 74 69 6d 65 2c 20 70 61 74 69 65 6e 63 65 2c   time, patience,
3e30: 20 61 6e 64 20 61 20 6c 6f 74 20 6f 66 20 73 79   and a lot of sy
3e40: 73 74 65 6d 0a 6b 6e 6f 77 6c 65 64 67 65 2e 20  stem.knowledge. 
3e50: 20 46 6f 73 73 69 6c 20 69 73 20 64 65 73 69 67   Fossil is desig
3e60: 6e 65 64 20 74 6f 20 61 76 6f 69 64 20 74 68 69  ned to avoid thi
3e70: 73 20 66 72 75 73 74 72 61 74 69 6f 6e 2e 20 20  s frustration.  
3e80: 53 65 74 74 69 6e 67 20 75 70 0a 61 20 73 65 72  Setting up.a ser
3e90: 76 65 72 20 77 69 74 68 20 66 6f 73 73 69 6c 20  ver with fossil 
3ea0: 69 73 20 72 69 64 69 63 75 6c 6f 75 73 6c 79 20  is ridiculously 
3eb0: 65 61 73 79 2e 20 20 59 6f 75 20 68 61 76 65 20  easy.  You have 
3ec0: 74 68 72 65 65 20 6f 70 74 69 6f 6e 73 3a 3c 2f  three options:</
3ed0: 70 3e 0a 0a 3c 6f 6c 3e 0a 3c 6c 69 3e 3c 70 3e  p>..<ol>.<li><p>
3ee0: 3c 62 3e 3c 61 20 6e 61 6d 65 3d 22 73 61 73 65  <b><a name="sase
3ef0: 72 76 22 3e 53 3c 2f 61 3e 65 74 74 69 6e 67 20  rv">S</a>etting 
3f00: 75 70 20 61 20 73 74 61 6e 64 2d 61 6c 6f 6e 65  up a stand-alone
3f10: 20 73 65 72 76 65 72 3c 2f 62 3e 3c 2f 70 3e 0a   server</b></p>.
3f20: 0a 3c 70 3e 46 72 6f 6d 20 77 69 74 68 69 6e 20  .<p>From within 
3f30: 79 6f 75 72 20 73 6f 75 72 63 65 20 74 72 65 65  your source tree
3f40: 20 6a 75 73 74 20 75 73 65 20 74 68 65 20 3c 62   just use the <b
3f50: 3e 73 65 72 76 65 72 3c 2f 62 3e 20 63 6f 6d 6d  >server</b> comm
3f60: 61 6e 64 20 61 6e 64 0a 66 6f 73 73 69 6c 20 77  and and.fossil w
3f70: 69 6c 6c 20 73 74 61 72 74 20 6c 69 73 74 65 6e  ill start listen
3f80: 69 6e 67 20 66 6f 72 20 69 6e 63 6f 6d 69 6e 67  ing for incoming
3f90: 20 72 65 71 75 65 73 74 73 20 6f 6e 20 54 43 50   requests on TCP
3fa0: 20 70 6f 72 74 20 38 30 38 30 2e 0a 59 6f 75 20   port 8080..You 
3fb0: 63 61 6e 20 70 6f 69 6e 74 20 79 6f 75 72 20 77  can point your w
3fc0: 65 62 20 62 72 6f 77 73 65 72 20 61 74 20 3c 61  eb browser at <a
3fd0: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 6c 6f   href="http://lo
3fe0: 63 61 6c 68 6f 73 74 3a 38 30 38 30 2f 22 3e 0a  calhost:8080/">.
3ff0: 68 74 74 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74  http://localhost
4000: 3a 38 30 38 30 2f 3c 2f 61 3e 20 61 6e 64 20 62  :8080/</a> and b
4010: 65 67 69 6e 20 65 78 70 6c 6f 72 69 6e 67 2e 20  egin exploring. 
4020: 20 4f 72 20 79 6f 75 72 20 63 6f 77 6f 72 6b 65   Or your coworke
4030: 72 73 0a 63 61 6e 20 64 6f 20 70 75 73 68 65 73  rs.can do pushes
4040: 20 6f 72 20 70 75 6c 6c 73 20 61 67 61 69 6e 73   or pulls agains
4050: 74 20 79 6f 75 72 20 73 65 72 76 65 72 2e 20 20  t your server.  
4060: 55 73 65 20 74 68 65 20 3c 62 3e 2d 2d 70 6f 72  Use the <b>--por
4070: 74 3c 2f 62 3e 0a 6f 70 74 69 6f 6e 20 74 6f 20  t</b>.option to 
4080: 74 68 65 20 73 65 72 76 65 72 20 63 6f 6d 6d 61  the server comma
4090: 6e 64 20 74 6f 20 73 70 65 63 69 66 79 20 61 20  nd to specify a 
40a0: 64 69 66 66 65 72 65 6e 74 20 54 43 50 20 70 6f  different TCP po
40b0: 72 74 2e 20 20 49 66 0a 79 6f 75 20 64 6f 20 6e  rt.  If.you do n
40c0: 6f 74 20 68 61 76 65 20 61 20 6c 6f 63 61 6c 20  ot have a local 
40d0: 73 6f 75 72 63 65 20 74 72 65 65 2c 20 75 73 65  source tree, use
40e0: 20 74 68 65 20 3c 62 3e 2d 52 3c 2f 62 3e 20 63   the <b>-R</b> c
40f0: 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 0a 6f 70 74 69  ommand-line.opti
4100: 6f 6e 20 74 6f 20 73 70 65 63 69 66 79 20 74 68  on to specify th
4110: 65 20 72 65 70 6f 73 69 74 6f 72 79 20 66 69 6c  e repository fil
4120: 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 41 20 73 74 61  e.</p>..<p>A sta
4130: 6e 64 2d 61 6c 6f 6e 65 20 73 65 72 76 65 72 20  nd-alone server 
4140: 69 73 20 61 20 67 72 65 61 74 20 77 61 79 20 74  is a great way t
4150: 6f 20 73 65 74 20 6f 66 20 74 72 61 6e 73 69 65  o set of transie
4160: 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 0a 62  nt connections.b
4170: 65 74 77 65 65 6e 20 63 6f 77 6f 72 6b 65 72 73  etween coworkers
4180: 20 66 6f 72 20 64 6f 69 6e 67 20 71 75 69 63 6b   for doing quick
4190: 20 70 75 73 68 65 73 20 6f 72 20 70 75 6c 6c 73   pushes or pulls
41a0: 2e 20 20 42 75 74 20 79 6f 75 20 63 61 6e 20 61  .  But you can a
41b0: 6c 73 6f 0a 73 65 74 20 75 70 20 61 20 70 65 72  lso.set up a per
41c0: 6d 61 6e 65 6e 74 20 73 74 61 6e 64 2d 61 6c 6f  manent stand-alo
41d0: 6e 65 20 73 65 72 76 65 72 20 69 66 20 79 6f 75  ne server if you
41e0: 20 70 72 65 66 65 72 2e 20 20 4a 75 73 74 20 6d   prefer.  Just m
41f0: 61 6b 65 0a 61 72 72 61 6e 67 65 6d 65 6e 74 73  ake.arrangements
4200: 20 66 6f 72 20 66 6f 73 73 69 6c 20 74 6f 20 62   for fossil to b
4210: 65 20 6c 61 75 6e 63 68 65 64 20 77 69 74 68 20  e launched with 
4220: 61 70 70 72 6f 70 72 69 61 74 65 20 61 72 67 75  appropriate argu
4230: 6d 65 6e 74 73 0a 61 66 74 65 72 20 65 76 65 72  ments.after ever
4240: 79 20 72 65 62 6f 6f 74 2e 3c 2f 70 3e 0a 0a 3c  y reboot.</p>..<
4250: 70 3e 49 66 20 79 6f 75 20 6a 75 73 74 20 77 61  p>If you just wa
4260: 6e 74 20 61 20 73 65 72 76 65 72 20 74 6f 20 62  nt a server to b
4270: 72 6f 77 73 65 20 74 68 65 20 62 75 69 6c 74 2d  rowse the built-
4280: 69 6e 20 66 6f 73 73 69 6c 20 77 65 62 73 69 74  in fossil websit
4290: 65 0a 6c 6f 63 61 6c 6c 79 2c 20 75 73 65 20 74  e.locally, use t
42a0: 68 65 20 3c 62 3e 75 69 3c 2f 62 3e 20 63 6f 6d  he <b>ui</b> com
42b0: 6d 61 6e 64 20 69 6e 20 70 6c 61 63 65 20 6f 66  mand in place of
42c0: 20 3c 62 3e 73 65 72 76 65 72 3c 2f 62 3e 2e 20   <b>server</b>. 
42d0: 20 54 68 65 0a 3c 62 3e 75 69 3c 2f 62 3e 20 63   The.<b>ui</b> c
42e0: 6f 6d 6d 61 6e 64 20 73 74 61 72 74 73 20 75 70  ommand starts up
42f0: 20 61 20 6c 6f 63 61 6c 20 73 65 72 76 65 72 20   a local server 
4300: 74 6f 6f 2c 20 62 75 74 20 69 74 20 61 6c 73 6f  too, but it also
4310: 20 74 61 6b 65 73 0a 74 68 65 20 61 64 64 69 74   takes.the addit
4320: 69 6f 6e 61 6c 20 73 74 65 70 20 6f 66 20 61 75  ional step of au
4330: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 61 75 6e  tomatically laun
4340: 63 68 69 6e 67 20 79 6f 75 72 20 77 65 62 62 72  ching your webbr
4350: 6f 77 73 65 72 20 61 6e 64 0a 70 6f 69 6e 74 69  owser and.pointi
4360: 6e 67 20 61 74 20 74 68 65 20 6e 65 77 20 73 65  ng at the new se
4370: 72 76 65 72 2e 3c 2f 70 3e 0a 3c 2f 6c 69 3e 0a  rver.</p>.</li>.
4380: 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 53 65 74 74 69  .<li><p><b>Setti
4390: 6e 67 20 75 70 20 61 20 43 47 49 20 73 65 72 76  ng up a CGI serv
43a0: 65 72 3c 2f 62 3e 3c 2f 70 3e 0a 0a 3c 70 3e 49  er</b></p>..<p>I
43b0: 66 20 79 6f 75 20 68 61 76 65 20 61 20 77 65 62  f you have a web
43c0: 73 65 72 76 65 72 20 72 75 6e 6e 69 6e 67 20 6f  server running o
43d0: 6e 20 79 6f 75 72 20 6d 61 63 68 69 6e 65 20 61  n your machine a
43e0: 6c 72 65 61 64 79 2c 20 79 6f 75 20 63 61 6e 0a  lready, you can.
43f0: 73 65 74 20 75 70 20 66 6f 73 73 69 6c 20 74 6f  set up fossil to
4400: 20 62 65 20 72 75 6e 20 66 72 6f 6d 20 43 47 49   be run from CGI
4410: 2e 20 20 53 69 6d 70 6c 79 20 63 72 65 61 74 65  .  Simply create
4420: 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 73   an executable s
4430: 63 72 69 70 74 0a 74 68 61 74 20 6c 6f 6f 6b 73  cript.that looks
4440: 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20   something like 
4450: 74 68 69 73 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63  this:</p>..<bloc
4460: 6b 71 75 6f 74 65 3e 3c 70 72 65 3e 0a 23 21 2f  kquote><pre>.#!/
4470: 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e 2f 66 6f  usr/local/bin/fo
4480: 73 73 69 6c 0a 72 65 70 6f 73 69 74 6f 72 79 3a  ssil.repository:
4490: 20 2f 68 6f 6d 65 2f 6d 65 2f 62 69 67 70 72 6f   /home/me/bigpro
44a0: 6a 65 63 74 2e 66 6f 73 73 69 6c 0a 3c 2f 70 72  ject.fossil.</pr
44b0: 65 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a  e></blockquote>.
44c0: 0a 3c 70 3e 45 64 69 74 20 74 68 69 73 20 73 63  .<p>Edit this sc
44d0: 72 69 70 74 20 74 6f 20 75 73 65 20 77 68 61 74  ript to use what
44e0: 65 76 65 72 20 70 61 74 68 6e 61 6d 65 73 20 61  ever pathnames a
44f0: 72 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 66  re appropriate f
4500: 6f 72 0a 79 6f 75 72 20 70 72 6f 6a 65 63 74 2e  or.your project.
4510: 20 20 54 68 65 6e 20 70 6f 69 6e 74 20 79 6f 75    Then point you
4520: 72 20 77 65 62 20 62 72 6f 77 73 65 72 20 61 74  r web browser at
4530: 20 74 68 65 20 73 63 72 69 70 74 20 61 6e 64 20   the script and 
4540: 6f 66 66 20 79 6f 75 0a 67 6f 2e 3c 2f 70 3e 3c  off you.go.</p><
4550: 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e  /li>..<li><p><b>
4560: 53 65 74 74 69 6e 67 20 75 70 20 61 6e 20 69 6e  Setting up an in
4570: 65 74 64 20 73 65 72 76 65 72 3c 2f 62 3e 3c 2f  etd server</b></
4580: 70 3e 0a 0a 3c 70 3e 49 66 20 79 6f 75 20 68 61  p>..<p>If you ha
4590: 76 65 20 69 6e 65 74 64 20 6f 72 20 78 69 6e 65  ve inetd or xine
45a0: 74 64 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 79 6f  td running on yo
45b0: 75 72 20 73 79 73 74 65 6d 2c 20 79 6f 75 20 63  ur system, you c
45c0: 61 6e 20 73 65 74 0a 74 68 6f 73 65 20 73 65 72  an set.those ser
45d0: 76 69 63 65 73 20 75 70 20 74 6f 20 6c 61 75 6e  vices up to laun
45e0: 63 68 20 66 6f 73 73 69 6c 20 74 6f 20 64 65 61  ch fossil to dea
45f0: 6c 20 77 69 74 68 20 69 6e 62 6f 75 6e 64 20 54  l with inbound T
4600: 43 50 2f 49 50 20 63 6f 6e 6e 65 63 74 69 6f 6e  CP/IP connection
4610: 73 0a 6f 6e 20 77 68 61 74 65 76 65 72 20 70 6f  s.on whatever po
4620: 72 74 20 79 6f 75 20 77 61 6e 74 2e 20 20 53 65  rt you want.  Se
4630: 74 20 75 70 20 69 6e 65 74 64 20 6f 72 20 78 69  t up inetd or xi
4640: 6e 65 74 64 20 74 6f 20 6c 61 75 6e 63 68 20 66  netd to launch f
4650: 6f 73 73 69 6c 0a 6c 69 6b 65 20 74 68 69 73 3a  ossil.like this:
4660: 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74  </p>..<blockquot
4670: 65 3e 3c 70 72 65 3e 0a 2f 75 73 72 2f 6c 6f 63  e><pre>./usr/loc
4680: 61 6c 2f 62 69 6e 2f 66 6f 73 73 69 6c 20 68 74  al/bin/fossil ht
4690: 74 70 20 2f 68 6f 6d 65 2f 6d 65 2f 62 69 67 70  tp /home/me/bigp
46a0: 72 6f 6a 65 63 74 2e 66 6f 73 73 69 6c 0a 3c 2f  roject.fossil.</
46b0: 70 72 65 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65  pre></blockquote
46c0: 3e 0a 0a 3c 70 3e 41 73 20 62 65 66 6f 72 65 2c  >..<p>As before,
46d0: 20 63 68 61 6e 67 65 20 74 68 65 20 66 69 6c 65   change the file
46e0: 6e 61 6d 65 73 20 74 6f 20 77 68 61 74 65 76 65  names to whateve
46f0: 72 20 69 73 20 61 70 70 72 6f 70 72 69 61 74 65  r is appropriate
4700: 20 66 6f 72 0a 79 6f 75 72 20 73 79 73 74 65 6d   for.your system
4710: 2e 20 20 59 6f 75 20 63 61 6e 20 68 61 76 65 20  .  You can have 
4720: 66 6f 73 73 69 6c 20 72 75 6e 20 61 73 20 61 6e  fossil run as an
4730: 79 20 75 73 65 72 20 74 68 61 74 20 68 61 73 20  y user that has 
4740: 77 72 69 74 65 0a 70 65 72 6d 69 73 73 69 6f 6e  write.permission
4750: 20 6f 6e 20 74 68 65 20 72 65 70 6f 73 69 74 6f   on the reposito
4760: 72 79 20 61 6e 64 20 6f 6e 20 74 68 65 20 64 69  ry and on the di
4770: 72 65 63 74 6f 72 79 20 74 68 61 74 20 63 6f 6e  rectory that con
4780: 74 61 69 6e 73 20 74 68 65 0a 72 65 70 6f 73 69  tains the.reposi
4790: 74 6f 72 79 2e 20 20 42 75 74 20 69 74 20 69 73  tory.  But it is
47a0: 20 73 61 66 65 72 20 74 6f 20 72 75 6e 20 66 6f   safer to run fo
47b0: 73 73 69 6c 20 61 73 20 72 6f 6f 74 2e 20 20 57  ssil as root.  W
47c0: 68 65 6e 20 66 6f 73 73 69 6c 0a 73 65 65 73 20  hen fossil.sees 
47d0: 74 68 61 74 20 69 74 20 69 73 20 72 75 6e 6e 69  that it is runni
47e0: 6e 67 20 61 73 20 72 6f 6f 74 2c 20 69 74 20 61  ng as root, it a
47f0: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 70 75 74  utomatically put
4800: 73 20 69 74 73 65 6c 66 20 69 6e 74 6f 0a 61 20  s itself into.a 
4810: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
4820: 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67  en.wikipedia.org
4830: 2f 77 69 6b 69 2f 43 68 72 6f 6f 74 22 3e 63 68  /wiki/Chroot">ch
4840: 72 6f 6f 74 20 6a 61 69 6c 3c 2f 61 3e 20 61 6e  root jail</a> an
4850: 64 0a 64 72 6f 70 73 20 61 6c 6c 20 70 72 69 76  d.drops all priv
4860: 69 6c 65 67 65 73 20 70 72 69 6f 72 20 74 6f 20  ileges prior to 
4870: 72 65 61 64 69 6e 67 20 61 6e 79 20 69 6e 66 6f  reading any info
4880: 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65  rmation from the
4890: 20 63 6c 69 65 6e 74 2e 0a 53 69 6e 63 65 20 66   client..Since f
48a0: 6f 73 73 69 6c 20 69 73 20 61 20 73 74 61 6e 64  ossil is a stand
48b0: 2d 61 6c 6f 6e 65 20 70 72 6f 67 72 61 6d 2c 20  -alone program, 
48c0: 79 6f 75 20 64 6f 20 6e 6f 74 20 6e 65 65 64 20  you do not need 
48d0: 74 6f 20 70 75 74 20 61 6e 79 74 68 69 6e 67 0a  to put anything.
48e0: 69 6e 20 74 68 65 20 63 68 72 6f 6f 74 20 6a 61  in the chroot ja
48f0: 69 6c 20 77 69 74 68 20 66 6f 73 73 69 6c 20 69  il with fossil i
4900: 6e 20 6f 72 64 65 72 20 66 6f 72 20 69 74 20 74  n order for it t
4910: 6f 20 64 6f 20 69 74 73 20 6a 6f 62 2e 3c 2f 70  o do its job.</p
4920: 3e 0a 3c 2f 6c 69 3e 0a 3c 2f 6f 6c 3e 0a 0a 3c  >.</li>.</ol>..<
4930: 68 32 3e 36 2e 30 20 52 65 76 69 65 77 20 4f 66  h2>6.0 Review Of
4940: 20 4b 65 79 20 43 6f 6e 63 65 70 74 73 3c 2f 68   Key Concepts</h
4950: 32 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 54 68 65  2>..<ul>.<li>The
4960: 20 3c 62 3e 66 6f 73 73 69 6c 3c 2f 62 3e 20 70   <b>fossil</b> p
4970: 72 6f 67 72 61 6d 20 69 73 20 61 20 73 65 6c 66  rogram is a self
4980: 2d 63 6f 6e 74 61 69 6e 65 64 20 73 74 61 6e 64  -contained stand
4990: 2d 61 6c 6f 6e 65 20 65 78 65 63 75 74 61 62 6c  -alone executabl
49a0: 65 2e 0a 20 20 20 20 4a 75 73 74 20 70 75 74 20  e..    Just put 
49b0: 69 74 20 73 6f 6d 65 77 68 65 72 65 20 6f 6e 20  it somewhere on 
49c0: 79 6f 75 72 20 50 41 54 48 20 74 6f 20 69 6e 73  your PATH to ins
49d0: 74 61 6c 6c 20 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c  tall it.</li>.<l
49e0: 69 3e 55 73 65 20 74 68 65 20 3c 62 3e 63 6c 6f  i>Use the <b>clo
49f0: 6e 65 3c 2f 62 3e 20 6f 72 20 3c 62 3e 6e 65 77  ne</b> or <b>new
4a00: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 73 20 74 6f  </b> commands to
4a10: 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 72 65   create a new re
4a20: 70 6f 73 69 74 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c  pository.</li>.<
4a30: 6c 69 3e 55 73 65 20 74 68 65 20 3c 62 3e 6f 70  li>Use the <b>op
4a40: 65 6e 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74  en</b> command t
4a50: 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 73  o create a new s
4a60: 6f 75 72 63 65 20 74 72 65 65 2e 3c 2f 6c 69 3e  ource tree.</li>
4a70: 0a 3c 6c 69 3e 55 73 65 20 74 68 65 20 3c 62 3e  .<li>Use the <b>
4a80: 61 64 64 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 72  add</b> and <b>r
4a90: 6d 3c 2f 62 3e 20 6f 72 20 3c 62 3e 64 65 6c 65  m</b> or <b>dele
4aa0: 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 73 20  te</b> commands 
4ab0: 74 6f 20 61 64 64 20 61 6e 64 0a 20 20 20 20 72  to add and.    r
4ac0: 65 6d 6f 76 65 20 66 69 6c 65 73 20 66 72 6f 6d  emove files from
4ad0: 20 74 68 65 20 6c 6f 63 61 6c 20 73 6f 75 72 63   the local sourc
4ae0: 65 20 74 72 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e tree.</li>.<li
4af0: 3e 55 73 65 20 74 68 65 20 3c 62 3e 63 6f 6d 6d  >Use the <b>comm
4b00: 69 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74  it</b> command t
4b10: 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 63  o create a new c
4b20: 68 65 63 6b 2d 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  heck-in.</li>.<l
4b30: 69 3e 55 73 65 20 74 68 65 20 3c 62 3e 75 70 64  i>Use the <b>upd
4b40: 61 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20  ate</b> command 
4b50: 74 6f 20 6d 65 72 67 65 20 69 6e 20 63 68 61 6e  to merge in chan
4b60: 67 65 73 20 66 72 6f 6d 20 6f 74 68 65 72 73 2e  ges from others.
4b70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 62  </li>.<li>The <b
4b80: 3e 70 75 73 68 3c 2f 62 3e 20 61 6e 64 20 3c 62  >push</b> and <b
4b90: 3e 70 75 6c 6c 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  >pull</b> comman
4ba0: 64 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74  ds can be used t
4bb0: 6f 20 73 68 61 72 65 20 63 68 61 6e 67 65 73 0a  o share changes.
4bc0: 20 20 20 20 6d 61 6e 75 61 6c 6c 79 2c 20 62 75      manually, bu
4bd0: 74 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 68  t these things h
4be0: 61 70 70 65 6e 20 61 75 74 6f 6d 61 74 69 63 61  appen automatica
4bf0: 6c 6c 79 20 69 6e 20 74 68 65 20 64 65 66 61 75  lly in the defau
4c00: 6c 74 0a 20 20 20 20 61 75 74 6f 73 79 6e 63 20  lt.    autosync 
4c10: 6d 6f 64 65 2e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e  mode.</li>.</ul>
4c20: 0a                                               .