Hex Artifact Content
Not logged in

Artifact 63fffbe88353a4964a91339c7055ce0757aa056a:

File www/concepts.wiki part of check-in [e8c4f69c50] - Change all mentions of "UUID" in the documentation and help screens into either "artifact ID" or "baseline ID" or "ticket ID" as appropriate. "UUID" has a widely recognized meaning that is different from its meaning in fossil. "UUID" is still used in code comments and in variable names. by drh on 2008-10-24 13:27:53.

0000: 3c 6e 6f 77 69 6b 69 3e 0a 3c 68 31 20 61 6c 69  <nowiki>.<h1 ali
0010: 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 46 6f 73  gn="center">.Fos
0020: 73 69 6c 20 43 6f 6e 63 65 70 74 73 0a 3c 2f 68  sil Concepts.</h
0030: 31 3e 0a 0a 3c 68 32 3e 31 2e 30 20 49 6e 74 72  1>..<h2>1.0 Intr
0040: 6f 64 75 63 74 69 6f 6e 3c 2f 68 32 3e 0a 3c 70  oduction</h2>.<p
0050: 3e 0a 3c 61 20 68 72 65 66 3d 22 69 6e 64 65 78  >.<a href="index
0060: 2e 68 74 6d 6c 22 3e 46 6f 73 73 69 6c 3c 2f 61  .html">Fossil</a
0070: 3e 20 69 73 20 61 0a 3c 61 20 68 72 65 66 3d 22  > is a.<a href="
0080: 68 74 74 70 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65  http://en.wikipe
0090: 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 53 6f 66  dia.org/wiki/Sof
00a0: 74 77 61 72 65 5f 63 6f 6e 66 69 67 75 72 61 74  tware_configurat
00b0: 69 6f 6e 5f 6d 61 6e 61 67 65 6d 65 6e 74 22 3e  ion_management">
00c0: 0a 73 6f 66 74 77 61 72 65 20 63 6f 6e 66 69 67  .software config
00d0: 75 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65  uration manageme
00e0: 6e 74 3c 2f 61 3e 20 73 79 73 74 65 6d 2e 0a 46  nt</a> system..F
00f0: 6f 73 73 69 6c 20 69 73 20 73 6f 66 74 77 61 72  ossil is softwar
0100: 65 20 74 68 61 74 20 69 73 20 64 65 73 69 67 6e  e that is design
0110: 65 64 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 61 6e  ed to control an
0120: 64 20 74 72 61 63 6b 20 74 68 65 0a 64 65 76 65  d track the.deve
0130: 6c 6f 70 6d 65 6e 74 20 6f 66 20 61 20 73 6f 66  lopment of a sof
0140: 74 77 61 72 65 20 70 72 6f 6a 65 63 74 20 61 6e  tware project an
0150: 64 20 74 6f 20 72 65 63 6f 72 64 20 74 68 65 20  d to record the 
0160: 68 69 73 74 6f 72 79 0a 6f 66 20 74 68 65 20 70  history.of the p
0170: 72 6f 6a 65 63 74 2e 0a 54 68 65 72 65 20 61 72  roject..There ar
0180: 65 20 6d 61 6e 79 20 73 75 63 68 20 73 79 73 74  e many such syst
0190: 65 6d 73 20 69 6e 20 75 73 65 20 74 6f 64 61 79  ems in use today
01a0: 2e 20 20 46 6f 73 73 69 6c 20 73 74 72 69 76 65  .  Fossil strive
01b0: 73 20 74 6f 0a 64 69 73 74 69 6e 67 75 69 73 68  s to.distinguish
01c0: 20 69 74 73 65 6c 66 20 66 72 6f 6d 20 74 68 65   itself from the
01d0: 20 6f 74 68 65 72 73 20 62 79 20 62 65 69 6e 67   others by being
01e0: 20 65 78 74 72 65 6d 65 6c 79 20 73 69 6d 70 6c   extremely simpl
01f0: 65 0a 74 6f 20 73 65 74 75 70 20 61 6e 64 20 6f  e.to setup and o
0200: 70 65 72 61 74 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e  perate.</p>..<p>
0210: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 69 73  This document is
0220: 20 69 6e 74 65 6e 64 65 64 20 61 73 20 61 20 71   intended as a q
0230: 75 69 63 6b 20 69 6e 74 72 6f 64 75 63 74 69 6f  uick introductio
0240: 6e 20 74 6f 20 74 68 65 20 63 6f 6e 63 65 70 74  n to the concept
0250: 73 0a 62 65 68 69 6e 64 20 66 6f 73 73 69 6c 2e  s.behind fossil.
0260: 3c 2f 70 3e 0a 0a 3c 68 32 3e 32 2e 30 20 43 6f  </p>..<h2>2.0 Co
0270: 6d 70 6f 73 69 74 69 6f 6e 20 4f 66 20 41 20 50  mposition Of A P
0280: 72 6f 6a 65 63 74 3c 2f 68 32 3e 0a 3c 69 6d 67  roject</h2>.<img
0290: 20 73 72 63 3d 22 63 6f 6e 63 65 70 74 31 2e 67   src="concept1.g
02a0: 69 66 22 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  if" align="right
02b0: 22 20 68 73 70 61 63 65 3d 22 31 30 22 3e 0a 0a  " hspace="10">..
02c0: 3c 70 3e 41 20 73 6f 66 74 77 61 72 65 20 70 72  <p>A software pr
02d0: 6f 6a 65 63 74 20 6e 6f 72 6d 61 6c 6c 79 20 63  oject normally c
02e0: 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 22 73 6f  onsists of a "so
02f0: 75 72 63 65 20 74 72 65 65 22 2e 0a 41 20 73 6f  urce tree"..A so
0300: 75 72 63 65 20 74 72 65 65 20 69 73 20 61 20 68  urce tree is a h
0310: 69 65 72 61 72 63 68 79 20 6f 66 20 66 69 6c 65  ierarchy of file
0320: 73 20 74 68 61 74 20 61 72 65 20 75 73 65 64 20  s that are used 
0330: 74 6f 20 67 65 6e 65 72 61 74 65 0a 74 68 65 20  to generate.the 
0340: 65 6e 64 20 70 72 6f 64 75 63 74 2e 20 20 54 68  end product.  Th
0350: 65 20 73 6f 75 72 63 65 20 74 72 65 65 20 63 68  e source tree ch
0360: 61 6e 67 65 73 20 6f 76 65 72 20 74 69 6d 65 20  anges over time 
0370: 61 73 20 74 68 65 0a 73 6f 66 74 77 61 72 65 20  as the.software 
0380: 67 72 6f 77 73 20 61 6e 64 20 65 78 70 61 6e 64  grows and expand
0390: 73 20 61 6e 64 20 61 73 20 66 65 61 74 75 72 65  s and as feature
03a0: 73 20 61 72 65 20 61 64 64 65 64 20 61 6e 64 20  s are added and 
03b0: 62 75 67 73 0a 61 72 65 20 66 69 78 65 64 2e 20  bugs.are fixed. 
03c0: 20 41 20 73 6e 61 70 73 68 6f 74 20 6f 66 20 74   A snapshot of t
03d0: 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 20 61  he source tree a
03e0: 74 20 61 6e 79 20 70 6f 69 6e 74 20 69 6e 20 74  t any point in t
03f0: 69 6d 65 0a 69 73 20 63 61 6c 6c 65 64 20 61 20  ime.is called a 
0400: 22 76 65 72 73 69 6f 6e 22 20 6f 72 20 22 72 65  "version" or "re
0410: 76 69 73 69 6f 6e 22 20 6f 72 20 61 20 22 62 61  vision" or a "ba
0420: 73 65 6c 69 6e 65 22 20 6f 66 20 74 68 65 20 70  seline" of the p
0430: 72 6f 64 75 63 74 2e 0a 49 6e 20 66 6f 73 73 69  roduct..In fossi
0440: 6c 2c 20 77 65 20 75 73 65 20 74 68 65 20 6e 61  l, we use the na
0450: 6d 65 20 22 62 61 73 65 6c 69 6e 65 22 2e 3c 2f  me "baseline".</
0460: 70 3e 0a 0a 3c 70 3e 41 20 22 72 65 70 6f 73 69  p>..<p>A "reposi
0470: 74 6f 72 79 22 20 69 73 20 61 20 64 61 74 61 62  tory" is a datab
0480: 61 73 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e  ase that contain
0490: 73 20 63 6f 70 69 65 73 20 6f 66 20 61 6c 6c 20  s copies of all 
04a0: 68 69 73 74 6f 72 69 63 61 6c 0a 76 65 72 73 69  historical.versi
04b0: 6f 6e 73 20 6f 72 20 62 61 73 65 6c 69 6e 65 73  ons or baselines
04c0: 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 2e 20   for a project. 
04d0: 20 42 61 73 65 6c 69 6e 65 73 20 61 72 65 20 6e   Baselines are n
04e0: 6f 72 6d 61 6c 6c 79 20 73 74 6f 72 65 64 20 69  ormally stored i
04f0: 6e 20 74 68 65 0a 72 65 70 6f 73 69 74 6f 72 79  n the.repository
0500: 20 69 6e 20 61 20 68 69 67 68 6c 79 20 73 70 61   in a highly spa
0510: 63 65 2d 65 66 66 69 63 69 65 6e 74 20 63 6f 6d  ce-efficient com
0520: 70 72 65 73 73 65 64 20 66 6f 72 6d 61 74 20 28  pressed format (
0530: 64 65 6c 74 61 20 65 6e 63 6f 64 69 6e 67 29 2e  delta encoding).
0540: 0a 42 75 74 20 74 68 61 74 20 69 73 20 61 6e 20  .But that is an 
0550: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64  implementation d
0560: 65 74 61 69 6c 20 74 68 61 74 20 79 6f 75 20 74  etail that you t
0570: 68 65 20 75 73 65 72 20 6e 65 65 64 20 6e 6f 74  he user need not
0580: 20 77 6f 72 72 79 20 6f 76 65 72 2e 0a 54 68 69   worry over..Thi
0590: 6e 6b 20 6f 66 20 74 68 65 20 72 65 70 6f 73 69  nk of the reposi
05a0: 74 6f 72 79 20 61 73 20 61 20 73 61 66 65 20 70  tory as a safe p
05b0: 6c 61 63 65 20 77 68 65 72 65 20 61 6c 6c 20 79  lace where all y
05c0: 6f 75 72 20 6f 6c 64 20 62 61 73 65 6c 69 6e 65  our old baseline
05d0: 73 20 61 72 65 0a 73 65 63 75 72 65 6c 79 20 73  s are.securely s
05e0: 74 6f 72 65 64 20 61 77 61 79 20 61 6e 64 20 61  tored away and a
05f0: 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 72 65 74  vailable for ret
0600: 72 69 65 76 61 6c 20 77 68 65 6e 65 76 65 72 20  rieval whenever 
0610: 79 6f 75 20 6e 65 65 64 0a 74 68 65 6d 2e 3c 2f  you need.them.</
0620: 70 3e 0a 0a 3c 70 3e 41 20 72 65 70 6f 73 69 74  p>..<p>A reposit
0630: 6f 72 79 20 69 6e 20 66 6f 73 73 69 6c 20 69 73  ory in fossil is
0640: 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 6f   a single file o
0650: 6e 20 79 6f 75 72 20 64 69 73 6b 2e 20 20 54 68  n your disk.  Th
0660: 69 73 20 66 69 6c 65 0a 6d 69 67 68 74 20 62 65  is file.might be
0670: 20 72 61 74 68 65 72 20 6c 61 72 67 65 20 28 64   rather large (d
0680: 6f 7a 65 6e 73 20 6f 72 20 68 75 6e 64 72 65 64  ozens or hundred
0690: 73 20 6f 66 20 6d 65 67 61 62 79 74 65 73 20 66  s of megabytes f
06a0: 6f 72 20 61 20 6c 61 72 67 65 0a 6f 72 20 6c 6f  or a large.or lo
06b0: 6e 67 20 72 75 6e 6e 69 6e 67 20 70 72 6f 6a 65  ng running proje
06c0: 63 74 29 20 62 75 74 20 69 74 20 69 73 20 6e 65  ct) but it is ne
06d0: 76 65 72 74 68 65 6c 65 73 73 20 6a 75 73 74 20  vertheless just 
06e0: 61 20 66 69 6c 65 2e 20 20 59 6f 75 0a 63 61 6e  a file.  You.can
06f0: 20 6d 6f 76 65 20 69 74 20 61 72 6f 75 6e 64 2c   move it around,
0700: 20 72 65 6e 61 6d 65 20 69 74 2c 20 77 72 69 74   rename it, writ
0710: 65 20 69 74 20 6f 75 74 20 74 6f 20 61 20 6d 65  e it out to a me
0720: 6d 6f 72 79 20 73 74 69 63 6b 2c 20 6f 72 0a 64  mory stick, or.d
0730: 6f 20 61 6e 79 74 68 69 6e 67 20 65 6c 73 65 20  o anything else 
0740: 79 6f 75 20 6e 6f 72 6d 61 6c 6c 79 20 64 6f 20  you normally do 
0750: 77 69 74 68 20 66 69 6c 65 73 2e 3c 2f 70 3e 0a  with files.</p>.
0760: 0a 3c 70 3e 45 61 63 68 20 73 6f 75 72 63 65 20  .<p>Each source 
0770: 74 72 65 65 20 74 68 61 74 20 69 73 20 63 6f 6e  tree that is con
0780: 74 72 6f 6c 6c 65 64 20 62 79 20 66 6f 73 73 69  trolled by fossi
0790: 6c 20 69 73 20 61 73 73 6f 63 69 61 74 65 64 20  l is associated 
07a0: 77 69 74 68 0a 61 20 73 69 6e 67 6c 65 20 72 65  with.a single re
07b0: 70 6f 73 69 74 6f 72 79 20 6f 6e 20 74 68 65 20  pository on the 
07c0: 6c 6f 63 61 6c 20 64 69 73 6b 20 64 72 69 76 65  local disk drive
07d0: 2e 20 20 59 6f 75 20 63 61 6e 20 74 69 65 20 74  .  You can tie t
07e0: 77 6f 20 6f 72 20 6d 6f 72 65 0a 73 6f 75 72 63  wo or more.sourc
07f0: 65 20 74 72 65 65 73 20 74 6f 20 61 20 73 69 6e  e trees to a sin
0800: 67 6c 65 20 72 65 70 6f 73 69 74 6f 72 79 20 69  gle repository i
0810: 66 20 79 6f 75 20 77 61 6e 74 20 28 74 68 6f 75  f you want (thou
0820: 67 68 20 6f 6e 65 0a 74 72 65 65 20 70 65 72 20  gh one.tree per 
0830: 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20 74 68  repository is th
0840: 65 20 6d 6f 73 74 20 63 6f 6d 6d 6f 6e 20 63 6f  e most common co
0850: 6e 66 69 67 75 72 61 74 69 6f 6e 2e 29 20 20 53  nfiguration.)  S
0860: 6f 20 61 0a 73 69 6e 67 6c 65 20 72 65 70 6f 73  o a.single repos
0870: 69 74 6f 72 79 20 63 61 6e 20 62 65 20 61 73 73  itory can be ass
0880: 6f 63 69 61 74 65 64 20 77 69 74 68 20 6d 61 6e  ociated with man
0890: 79 20 73 6f 75 72 63 65 20 74 72 65 65 73 2c 20  y source trees, 
08a0: 62 75 74 0a 65 61 63 68 20 73 6f 75 72 63 65 20  but.each source 
08b0: 74 72 65 65 20 69 73 20 61 73 73 6f 63 69 61 74  tree is associat
08c0: 65 64 20 77 69 74 68 20 6f 6e 6c 79 20 6f 6e 65  ed with only one
08d0: 20 72 65 70 6f 73 69 74 6f 72 79 2e 3c 2f 70 3e   repository.</p>
08e0: 0a 0a 3c 70 3e 46 6f 73 73 69 6c 20 73 6f 75 72  ..<p>Fossil sour
08f0: 63 65 20 74 72 65 65 73 20 6d 61 79 20 6e 6f 74  ce trees may not
0900: 20 6f 76 65 72 6c 61 70 2e 20 20 41 20 66 6f 73   overlap.  A fos
0910: 73 69 6c 20 73 6f 75 72 63 65 20 74 72 65 65 20  sil source tree 
0920: 69 73 20 69 64 65 6e 74 69 66 69 65 64 0a 62 79  is identified.by
0930: 20 61 20 66 69 6c 65 20 6e 61 6d 65 64 20 22 5f   a file named "_
0940: 46 4f 53 53 49 4c 5f 22 20 69 6e 20 74 68 65 20  FOSSIL_" in the 
0950: 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 20 6f  root directory o
0960: 66 20 74 68 65 20 73 6f 75 72 63 65 20 74 72 65  f the source tre
0970: 65 2e 20 20 45 76 65 72 79 0a 66 69 6c 65 20 74  e.  Every.file t
0980: 68 61 74 20 69 73 20 61 20 73 69 62 6c 69 6e 67  hat is a sibling
0990: 20 6f 66 20 5f 46 4f 53 53 49 4c 5f 20 61 6e 64   of _FOSSIL_ and
09a0: 20 65 76 65 72 79 20 66 69 6c 65 20 69 6e 20 65   every file in e
09b0: 76 65 72 79 20 73 75 62 66 6f 6c 64 65 72 20 69  very subfolder i
09c0: 73 0a 63 6f 6e 73 69 64 65 72 65 64 20 70 6f 74  s.considered pot
09d0: 65 6e 74 69 61 6c 6c 79 20 61 20 70 61 72 74 20  entially a part 
09e0: 6f 66 20 74 68 65 20 73 6f 75 72 63 65 20 74 72  of the source tr
09f0: 65 65 2e 20 20 54 68 65 20 5f 46 4f 53 53 49 4c  ee.  The _FOSSIL
0a00: 5f 20 66 69 6c 65 0a 63 6f 6e 74 61 69 6e 73 20  _ file.contains 
0a10: 28 61 6d 6f 6e 67 20 6f 74 68 65 72 20 74 68 69  (among other thi
0a20: 6e 67 73 29 20 74 68 65 20 70 61 74 68 6e 61 6d  ngs) the pathnam
0a30: 65 20 6f 66 20 74 68 65 20 72 65 70 6f 73 69 74  e of the reposit
0a40: 6f 72 79 20 77 69 74 68 20 77 68 69 63 68 0a 74  ory with which.t
0a50: 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 20 69  he source tree i
0a60: 73 20 61 73 73 6f 63 69 61 74 65 64 2e 20 20 4f  s associated.  O
0a70: 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64  n the other hand
0a80: 2c 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79  , the repository
0a90: 20 68 61 73 0a 6e 6f 20 72 65 63 6f 72 64 20 6f   has.no record o
0aa0: 66 20 69 74 73 20 73 6f 75 72 63 65 20 74 72 65  f its source tre
0ab0: 65 73 2e 20 20 53 6f 20 79 6f 75 20 61 72 65 20  es.  So you are 
0ac0: 66 72 65 65 20 74 6f 20 64 65 6c 65 74 65 20 61  free to delete a
0ad0: 20 73 6f 75 72 63 65 20 74 72 65 65 0a 6f 72 20   source tree.or 
0ae0: 6d 6f 76 65 20 69 74 20 61 72 6f 75 6e 64 20 77  move it around w
0af0: 69 74 68 6f 75 74 20 63 6f 6e 73 65 71 75 65 6e  ithout consequen
0b00: 63 65 2e 20 20 42 75 74 20 69 66 20 79 6f 75 20  ce.  But if you 
0b10: 6d 6f 76 65 20 6f 72 20 72 65 6e 61 6d 65 20 6f  move or rename o
0b20: 72 0a 64 65 6c 65 74 65 20 61 20 72 65 70 6f 73  r.delete a repos
0b30: 69 74 6f 72 79 2c 20 74 68 65 6e 20 61 6e 79 20  itory, then any 
0b40: 73 6f 75 72 63 65 20 74 72 65 65 73 20 61 73 73  source trees ass
0b50: 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 61  ociated with tha
0b60: 74 20 72 65 70 6f 73 69 74 6f 72 79 0a 77 69 6c  t repository.wil
0b70: 6c 20 6e 6f 20 6c 6f 6e 67 65 72 20 62 65 20 61  l no longer be a
0b80: 62 6c 65 20 74 6f 20 6c 6f 63 61 74 65 20 74 68  ble to locate th
0b90: 65 69 72 20 72 65 70 6f 73 69 74 6f 72 79 20 61  eir repository a
0ba0: 6e 64 20 77 69 6c 6c 20 73 74 6f 70 20 77 6f 72  nd will stop wor
0bb0: 6b 69 6e 67 2e 3c 2f 70 3e 0a 0a 3c 70 3e 57 68  king.</p>..<p>Wh
0bc0: 65 6e 20 6d 75 6c 74 69 70 6c 65 20 64 65 76 65  en multiple deve
0bd0: 6c 6f 70 65 72 73 20 61 72 65 20 77 6f 72 6b 69  lopers are worki
0be0: 6e 67 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 70  ng on the same p
0bf0: 72 6f 6a 65 63 74 2c 20 65 61 63 68 0a 64 65 76  roject, each.dev
0c00: 65 6c 6f 70 65 72 20 74 79 70 69 63 61 6c 6c 79  eloper typically
0c10: 20 68 61 73 20 68 69 73 20 6f 72 20 68 65 72 20   has his or her 
0c20: 6f 77 6e 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69  own local reposi
0c30: 74 6f 72 79 20 61 6e 64 20 61 6e 20 61 73 73 6f  tory and an asso
0c40: 63 69 61 74 65 64 0a 73 6f 75 72 63 65 20 74 72  ciated.source tr
0c50: 65 65 20 69 6e 20 77 68 69 63 68 20 74 6f 20 77  ee in which to w
0c60: 6f 72 6b 2e 20 20 44 65 76 65 6c 6f 70 65 72 73  ork.  Developers
0c70: 20 73 68 61 72 65 20 74 68 65 69 72 20 77 6f 72   share their wor
0c80: 6b 20 62 79 0a 22 73 79 6e 63 69 6e 67 22 20 74  k by."syncing" t
0c90: 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68  he content of th
0ca0: 65 69 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69  eir local reposi
0cb0: 74 6f 72 69 65 73 20 65 69 74 68 65 72 20 64 69  tories either di
0cc0: 72 65 63 74 6c 79 0a 6f 72 20 74 68 72 6f 75 67  rectly.or throug
0cd0: 68 20 61 20 63 65 6e 74 72 61 6c 20 73 65 72 76  h a central serv
0ce0: 65 72 2e 20 20 43 68 61 6e 67 65 73 20 63 61 6e  er.  Changes can
0cf0: 20 22 70 75 73 68 22 20 66 72 6f 6d 20 74 68 65   "push" from the
0d00: 20 6c 6f 63 61 6c 0a 72 65 70 6f 73 69 74 6f 72   local.repositor
0d10: 79 20 69 6e 74 6f 20 61 20 72 65 6d 6f 74 65 20  y into a remote 
0d20: 72 65 70 6f 73 69 74 6f 72 79 2e 20 20 4f 72 20  repository.  Or 
0d30: 63 68 61 6e 67 65 73 20 63 61 6e 20 22 70 75 6c  changes can "pul
0d40: 6c 22 20 66 72 6f 6d 20 61 0a 72 65 6d 6f 74 65  l" from a.remote
0d50: 20 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 74 6f   repository into
0d60: 20 61 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74   a local reposit
0d70: 6f 72 79 2e 20 20 4f 72 20 6f 6e 65 20 63 61 6e  ory.  Or one can
0d80: 20 64 6f 20 61 20 22 73 79 6e 63 22 0a 77 68 69   do a "sync".whi
0d90: 63 68 20 69 73 20 61 20 73 68 6f 72 74 63 75 74  ch is a shortcut
0da0: 20 66 6f 72 20 64 6f 69 6e 67 20 62 6f 74 68 20   for doing both 
0db0: 61 20 70 75 73 68 20 61 6e 64 20 61 20 70 75 6c  a push and a pul
0dc0: 6c 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69  l at the same ti
0dd0: 6d 65 2e 0a 46 6f 73 73 69 6c 20 61 6c 73 6f 20  me..Fossil also 
0de0: 68 61 73 20 74 68 65 20 63 6f 6e 63 65 70 74 20  has the concept 
0df0: 6f 66 20 22 63 6c 6f 6e 69 6e 67 22 2e 20 20 41  of "cloning".  A
0e00: 20 22 63 6c 6f 6e 65 22 20 69 73 20 6c 69 6b 65   "clone" is like
0e10: 20 61 20 22 70 75 6c 6c 22 2c 0a 65 78 63 65 70   a "pull",.excep
0e20: 74 20 74 68 61 74 20 69 6e 73 74 65 61 64 20 6f  t that instead o
0e30: 66 20 62 65 67 69 6e 6e 69 6e 67 20 77 69 74 68  f beginning with
0e40: 20 61 6e 20 65 78 69 73 74 69 6e 67 20 6c 6f 63   an existing loc
0e50: 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2c 0a 61  al repository,.a
0e60: 20 63 6c 6f 6e 65 20 62 65 67 69 6e 73 20 77 69   clone begins wi
0e70: 74 68 20 6e 6f 74 68 69 6e 67 20 61 6e 64 20 63  th nothing and c
0e80: 72 65 61 74 65 73 20 61 20 6e 65 77 20 6c 6f 63  reates a new loc
0e90: 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68  al repository th
0ea0: 61 74 0a 69 73 20 61 20 64 75 70 6c 69 63 61 74  at.is a duplicat
0eb0: 65 20 6f 66 20 61 20 72 65 6d 6f 74 65 20 72 65  e of a remote re
0ec0: 70 6f 73 69 74 6f 72 79 2e 3c 2f 70 3e 0a 0a 3c  pository.</p>..<
0ed0: 70 3e 43 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20  p>Communication 
0ee0: 62 65 74 77 65 65 6e 20 72 65 70 6f 73 69 74 6f  between reposito
0ef0: 72 69 65 73 20 69 73 20 76 69 61 20 48 54 54 50  ries is via HTTP
0f00: 2e 20 20 52 65 6d 6f 74 65 0a 72 65 70 6f 73 69  .  Remote.reposi
0f10: 74 6f 72 69 65 73 20 61 72 65 20 69 64 65 6e 74  tories are ident
0f20: 69 66 69 65 64 20 62 79 20 55 52 4c 2e 20 20 59  ified by URL.  Y
0f30: 6f 75 20 63 61 6e 20 61 6c 73 6f 20 70 6f 69 6e  ou can also poin
0f40: 74 20 61 20 77 65 62 62 72 6f 77 73 65 72 0a 61  t a webbrowser.a
0f50: 74 20 61 20 72 65 70 6f 73 69 74 6f 72 79 20 61  t a repository a
0f60: 6e 64 20 67 65 74 20 68 75 6d 61 6e 2d 72 65 61  nd get human-rea
0f70: 64 61 62 6c 65 20 73 74 61 74 75 73 2c 20 68 69  dable status, hi
0f80: 73 74 6f 72 79 2c 20 61 6e 64 20 74 72 61 63 6b  story, and track
0f90: 69 6e 67 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  ing.information 
0fa0: 61 62 6f 75 74 20 74 68 65 20 70 72 6f 6a 65 63  about the projec
0fb0: 74 2e 3c 2f 70 3e 0a 0a 3c 68 33 3e 32 2e 31 20  t.</p>..<h3>2.1 
0fc0: 49 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 4f  Identification O
0fd0: 66 20 41 72 74 69 66 61 63 74 73 3c 2f 68 33 3e  f Artifacts</h3>
0fe0: 0a 0a 3c 70 3e 41 20 70 61 72 74 69 63 75 6c 61  ..<p>A particula
0ff0: 72 20 76 65 72 73 69 6f 6e 20 6f 66 20 61 20 70  r version of a p
1000: 61 72 74 69 63 75 6c 61 72 20 66 69 6c 65 20 69  articular file i
1010: 73 20 63 61 6c 6c 65 64 20 61 6e 20 22 61 72 74  s called an "art
1020: 69 66 61 63 74 22 2e 0a 45 61 63 68 20 61 72 74  ifact"..Each art
1030: 69 66 61 63 74 20 68 61 73 20 61 20 75 6e 69 76  ifact has a univ
1040: 65 72 73 61 6c 6c 79 20 75 6e 69 71 75 65 20 6e  ersally unique n
1050: 61 6d 65 20 77 68 69 63 68 20 69 73 20 74 68 65  ame which is the
1060: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
1070: 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72  /en.wikipedia.or
1080: 67 2f 77 69 6b 69 2f 53 48 41 22 3e 53 48 41 31  g/wiki/SHA">SHA1
1090: 3c 2f 61 3e 20 68 61 73 68 20 6f 66 20 74 68 65  </a> hash of the
10a0: 20 63 6f 6e 74 65 6e 74 0a 6f 66 20 74 68 61 74   content.of that
10b0: 20 66 69 6c 65 20 65 78 70 72 65 73 73 65 64 20   file expressed 
10c0: 61 73 20 34 30 20 63 68 61 72 61 63 74 65 72 73  as 40 characters
10d0: 20 6f 66 20 6c 6f 77 65 72 2d 63 61 73 65 20 68   of lower-case h
10e0: 65 78 61 64 65 63 69 6d 61 6c 2e 20 20 53 75 63  exadecimal.  Suc
10f0: 68 0a 61 20 68 61 73 68 20 69 73 20 72 65 66 65  h.a hash is refe
1100: 72 72 65 64 20 74 6f 20 61 73 20 74 68 65 20 41  rred to as the A
1110: 72 74 69 66 61 63 74 20 49 64 65 6e 74 69 66 69  rtifact Identifi
1120: 65 72 20 6f 72 20 41 72 74 69 66 61 63 74 20 49  er or Artifact I
1130: 44 0a 66 6f 72 20 74 68 65 20 61 72 74 69 66 61  D.for the artifa
1140: 63 74 2e 20 20 54 68 65 20 53 48 41 31 20 61 6c  ct.  The SHA1 al
1150: 67 6f 72 69 74 68 6d 20 69 73 20 63 72 65 61 74  gorithm is creat
1160: 65 64 20 77 69 74 68 20 74 68 65 20 70 75 72 70  ed with the purp
1170: 6f 73 65 20 6f 66 0a 70 72 6f 76 69 64 69 6e 67  ose of.providing
1180: 20 61 20 68 69 67 68 6c 79 20 66 6f 72 67 65 72   a highly forger
1190: 79 2d 72 65 73 69 73 74 65 6e 74 20 69 64 65 6e  y-resistent iden
11a0: 74 69 66 69 65 72 20 66 6f 72 20 61 20 66 69 6c  tifier for a fil
11b0: 65 2e 20 20 47 69 76 65 6e 20 61 6e 79 0a 66 69  e.  Given any.fi
11c0: 6c 65 20 69 74 20 69 73 20 73 69 6d 70 6c 65 20  le it is simple 
11d0: 74 6f 20 66 69 6e 64 20 74 68 65 20 61 72 74 69  to find the arti
11e0: 66 61 63 74 20 49 44 20 66 6f 72 20 74 68 61 74  fact ID for that
11f0: 20 66 69 6c 65 2e 20 20 42 75 74 20 67 69 76 65   file.  But give
1200: 6e 20 61 0a 61 72 74 69 66 61 63 74 20 49 44 20  n a.artifact ID 
1210: 69 74 20 69 73 20 63 6f 6d 70 75 74 61 74 69 6f  it is computatio
1220: 6e 61 6c 6c 79 20 69 6e 74 72 61 63 74 61 62 6c  nally intractabl
1230: 65 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 20  e to generate a 
1240: 66 69 6c 65 20 74 68 61 74 20 77 69 6c 6c 0a 68  file that will.h
1250: 61 76 65 20 74 68 61 74 20 41 72 74 69 66 61 63  ave that Artifac
1260: 74 20 49 44 2e 3c 2f 70 3e 0a 0a 0a 3c 70 3e 41  t ID.</p>...<p>A
1270: 72 74 69 66 61 63 74 20 49 44 73 20 6c 6f 6f 6b  rtifact IDs look
1280: 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20   something like 
1290: 74 68 69 73 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63  this:</p>..<bloc
12a0: 6b 71 75 6f 74 65 3e 3c 62 3e 0a 36 30 38 39 66  kquote><b>.6089f
12b0: 30 62 35 36 33 61 39 64 62 30 61 36 64 39 30 36  0b563a9db0a6d906
12c0: 38 32 66 65 34 37 66 64 37 31 36 31 66 66 38 36  82fe47fd7161ff86
12d0: 37 63 38 3c 62 72 3e 0a 35 39 37 31 32 36 31 34  7c8<br>.59712614
12e0: 61 31 62 33 63 63 66 64 38 34 30 37 38 61 33 37  a1b3ccfd84078a37
12f0: 66 61 35 62 36 30 36 65 32 38 34 33 34 33 32 36  fa5b606e28434326
1300: 3c 62 72 3e 0a 31 39 64 62 66 37 33 30 37 38 62  <br>.19dbf73078b
1310: 65 39 37 37 39 65 64 64 36 61 30 31 35 36 31 39  e9779edd6a015619
1320: 35 65 36 31 30 66 38 31 63 39 34 66 39 3c 62 72  5e610f81c94f9<br
1330: 3e 0a 62 34 31 30 34 39 35 39 61 36 37 31 37 35  >.b4104959a67175
1340: 66 30 32 64 36 62 34 31 35 34 38 30 62 65 32 32  f02d6b415480be22
1350: 61 32 33 39 66 31 66 30 37 37 3c 62 72 3e 0a 39  a239f1f077<br>.9
1360: 39 37 63 39 64 36 61 65 30 33 61 64 31 31 34 62  97c9d6ae03ad114b
1370: 32 62 35 37 66 30 34 65 39 65 65 65 66 31 37 64  2b57f04e9eeef17d
1380: 63 62 38 32 37 38 38 0a 3c 2f 62 3e 3c 2f 62 6c  cb82788.</b></bl
1390: 6f 63 6b 71 75 6f 74 65 3e 0a 0a 3c 70 3e 57 68  ockquote>..<p>Wh
13a0: 65 6e 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20  en referring to 
13b0: 61 6e 20 61 72 74 69 66 61 63 74 20 75 73 69 6e  an artifact usin
13c0: 67 20 66 6f 73 73 69 6c 2c 20 79 6f 75 20 63 61  g fossil, you ca
13d0: 6e 20 75 73 65 20 61 20 75 6e 69 71 75 65 0a 70  n use a unique.p
13e0: 72 65 66 69 78 20 6f 66 20 74 68 65 20 61 72 74  refix of the art
13f0: 69 66 61 63 74 20 49 44 20 74 68 61 74 20 69 73  ifact ID that is
1400: 20 66 6f 75 72 20 63 68 61 72 61 63 74 65 72 73   four characters
1410: 20 6f 72 20 6c 6f 6e 67 65 72 2e 20 20 54 68 69   or longer.  Thi
1420: 73 20 73 61 76 65 73 0a 61 20 6c 6f 74 20 6f 66  s saves.a lot of
1430: 20 74 79 70 69 6e 67 2e 20 20 57 68 65 6e 20 64   typing.  When d
1440: 69 73 70 6c 61 79 69 6e 67 20 61 72 74 69 66 61  isplaying artifa
1450: 63 74 20 49 44 73 2c 20 66 6f 73 73 69 6c 20 77  ct IDs, fossil w
1460: 69 6c 6c 20 75 73 75 61 6c 6c 79 20 6f 6e 6c 79  ill usually only
1470: 0a 73 68 6f 77 20 74 68 65 20 66 69 72 73 74 20  .show the first 
1480: 31 30 20 64 69 67 69 74 73 20 73 69 6e 63 65 20  10 digits since 
1490: 74 68 61 74 20 69 73 20 6e 6f 72 6d 61 6c 6c 79  that is normally
14a0: 20 65 6e 6f 75 67 68 20 74 6f 20 75 6e 69 71 75   enough to uniqu
14b0: 65 6c 79 0a 69 64 65 6e 74 69 66 79 20 61 20 66  ely.identify a f
14c0: 69 6c 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 43 68 61  ile.</p>..<p>Cha
14d0: 6e 67 69 6e 67 20 28 6f 72 20 61 64 64 69 6e 67  nging (or adding
14e0: 20 6f 72 20 72 65 6d 6f 76 69 6e 67 29 20 61 20   or removing) a 
14f0: 73 69 6e 67 6c 65 20 62 79 74 65 20 69 6e 20 61  single byte in a
1500: 20 66 69 6c 65 20 72 65 73 75 6c 74 73 0a 69 6e   file results.in
1510: 20 61 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 69   a completely di
1520: 66 66 65 72 65 6e 74 20 61 72 74 69 66 61 63 74  fferent artifact
1530: 20 49 44 2e 20 20 41 6e 64 20 73 69 6e 63 65 20   ID.  And since 
1540: 74 68 65 20 61 72 74 69 66 61 63 74 20 49 44 20  the artifact ID 
1550: 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 0a 74  is the name of.t
1560: 68 65 20 61 72 74 69 66 61 63 74 2c 20 6d 61 6b  he artifact, mak
1570: 69 6e 67 20 61 6e 79 20 63 68 61 6e 67 65 20 74  ing any change t
1580: 6f 20 61 20 66 69 6c 65 20 72 65 73 75 6c 74 73  o a file results
1590: 20 69 6e 20 61 20 6e 65 77 20 61 72 74 69 66 61   in a new artifa
15a0: 63 74 2e 0a 49 6e 20 74 68 69 73 20 77 61 79 2c  ct..In this way,
15b0: 20 61 72 74 69 66 61 63 74 73 20 61 72 65 20 69   artifacts are i
15c0: 6d 6d 75 74 61 62 6c 65 2e 3c 2f 70 3e 0a 0a 3c  mmutable.</p>..<
15d0: 70 3e 41 20 72 65 70 6f 73 69 74 6f 72 79 20 69  p>A repository i
15e0: 73 20 72 65 61 6c 6c 79 20 6a 75 73 74 20 61 6e  s really just an
15f0: 20 75 6e 6f 72 64 65 72 65 64 20 63 6f 6c 6c 65   unordered colle
1600: 63 74 69 6f 6e 20 6f 66 0a 61 72 74 69 66 61 63  ction of.artifac
1610: 74 73 2e 20 20 4e 65 77 20 61 72 74 69 66 61 63  ts.  New artifac
1620: 74 73 20 63 61 6e 20 62 65 20 61 64 64 65 64 20  ts can be added 
1630: 74 6f 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72  to the repositor
1640: 79 2c 20 62 75 74 0a 65 78 69 73 74 69 6e 67 20  y, but.existing 
1650: 61 72 74 69 66 61 63 74 73 20 63 61 6e 20 6e 65  artifacts can ne
1660: 76 65 72 20 62 65 20 72 65 6d 6f 76 65 64 2e 20  ver be removed. 
1670: 20 46 6f 73 73 69 6c 20 69 73 20 64 65 73 69 67   Fossil is desig
1680: 6e 65 64 20 69 6e 0a 73 75 63 68 20 61 20 77 61  ned in.such a wa
1690: 79 20 74 68 61 74 20 69 74 20 63 61 6e 20 62 65  y that it can be
16a0: 20 68 61 6e 64 65 64 20 61 20 73 65 74 20 6f 66   handed a set of
16b0: 20 61 72 74 69 66 61 63 74 73 20 69 6e 20 61 6e   artifacts in an
16c0: 79 0a 6f 72 64 65 72 20 61 6e 64 20 69 74 20 63  y.order and it c
16d0: 61 6e 20 66 69 67 75 72 65 20 6f 75 74 20 74 68  an figure out th
16e0: 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 62  e relationship b
16f0: 65 74 77 65 65 6e 20 74 68 6f 73 65 0a 61 72 74  etween those.art
1700: 69 66 61 63 74 73 20 61 6e 64 20 72 65 63 6f 6e  ifacts and recon
1710: 73 74 72 75 63 74 20 74 68 65 20 63 6f 6d 70 6c  struct the compl
1720: 65 74 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20  ete development 
1730: 68 69 73 74 6f 72 79 20 6f 66 0a 61 20 73 6f 66  history of.a sof
1740: 74 77 61 72 65 20 70 72 6f 6a 65 63 74 2e 3c 2f  tware project.</
1750: 70 3e 0a 0a 3c 68 33 3e 32 2e 32 20 4d 61 6e 69  p>..<h3>2.2 Mani
1760: 66 65 73 74 73 3c 2f 68 33 3e 0a 0a 3c 70 3e 41  fests</h3>..<p>A
1770: 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 61 20  t the root of a 
1780: 73 6f 75 72 63 65 20 74 72 65 65 20 69 73 20 61  source tree is a
1790: 20 73 70 65 63 69 61 6c 20 66 69 6c 65 20 63 61   special file ca
17a0: 6c 6c 65 64 20 74 68 65 0a 22 6d 61 6e 69 66 65  lled the."manife
17b0: 73 74 22 2e 20 20 54 68 65 20 6d 61 6e 69 66 65  st".  The manife
17c0: 73 74 20 69 73 20 61 20 6c 69 73 74 69 6e 67 20  st is a listing 
17d0: 6f 66 20 61 6c 6c 20 6f 74 68 65 72 20 66 69 6c  of all other fil
17e0: 65 73 20 69 6e 0a 74 68 61 74 20 73 6f 75 72 63  es in.that sourc
17f0: 65 20 74 72 65 65 2e 20 20 54 68 65 20 6d 61 6e  e tree.  The man
1800: 69 66 65 73 74 20 63 6f 6e 74 61 69 6e 73 20 74  ifest contains t
1810: 68 65 20 28 63 6f 6d 70 6c 65 74 65 29 20 61 72  he (complete) ar
1820: 74 69 66 61 63 74 20 49 44 20 0a 6f 66 20 74 68  tifact ID .of th
1830: 65 20 66 69 6c 65 20 61 6e 64 20 74 68 65 20 6e  e file and the n
1840: 61 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20  ame of the file 
1850: 61 73 20 69 74 20 61 70 70 65 61 72 73 20 6f 6e  as it appears on
1860: 20 64 69 73 6b 2c 0a 61 6e 64 20 74 68 75 73 20   disk,.and thus 
1870: 73 65 72 76 65 73 20 61 73 20 61 20 6d 61 70 70  serves as a mapp
1880: 69 6e 67 20 66 72 6f 6d 20 61 72 74 69 66 61 63  ing from artifac
1890: 74 20 49 44 20 74 6f 20 64 69 73 6b 20 6e 61 6d  t ID to disk nam
18a0: 65 2e 20 20 54 68 65 20 61 72 74 69 66 61 63 74  e.  The artifact
18b0: 20 49 44 0a 6f 66 20 74 68 65 20 6d 61 6e 69 66   ID.of the manif
18c0: 65 73 74 20 69 73 20 74 68 65 20 69 64 65 6e 74  est is the ident
18d0: 69 66 69 65 72 20 66 6f 72 20 74 68 65 20 65 6e  ifier for the en
18e0: 74 69 72 65 20 62 61 73 65 6c 69 6e 65 2e 20 20  tire baseline.  
18f0: 57 68 65 6e 0a 79 6f 75 20 6c 6f 6f 6b 20 61 74  When.you look at
1900: 20 61 20 22 74 69 6d 65 6c 69 6e 65 22 20 6f 66   a "timeline" of
1910: 20 63 68 61 6e 67 65 73 20 69 6e 20 66 6f 73 73   changes in foss
1920: 69 6c 2c 20 74 68 65 20 49 44 20 61 73 73 6f 63  il, the ID assoc
1930: 69 61 74 65 64 0a 77 69 74 68 20 65 61 63 68 20  iated.with each 
1940: 63 68 65 63 6b 2d 69 6e 20 6f 72 20 63 6f 6d 6d  check-in or comm
1950: 69 74 20 69 73 20 72 65 61 6c 6c 79 20 6a 75 73  it is really jus
1960: 74 20 74 68 65 20 61 72 74 69 66 61 63 74 20 49  t the artifact I
1970: 44 20 6f 66 20 74 68 65 0a 6d 61 6e 69 66 65 73  D of the.manifes
1980: 74 20 66 6f 72 20 74 68 61 74 20 62 61 73 65 6c  t for that basel
1990: 69 6e 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 46 6f 73  ine.</p>..<p>Fos
19a0: 73 69 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  sil automaticall
19b0: 79 20 67 65 6e 65 72 61 74 65 73 20 61 20 6d 61  y generates a ma
19c0: 6e 69 66 65 73 74 20 77 68 65 6e 65 76 65 72 20  nifest whenever 
19d0: 79 6f 75 20 22 63 6f 6d 6d 69 74 22 20 0a 61 20  you "commit" .a 
19e0: 6e 65 77 20 62 61 73 65 6c 69 6e 65 2e 20 20 53  new baseline.  S
19f0: 6f 20 74 68 69 73 20 69 73 20 6e 6f 74 20 73 6f  o this is not so
1a00: 6d 65 74 68 69 6e 67 20 74 68 61 74 20 79 6f 75  mething that you
1a10: 2c 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 2c  , the developer,
1a20: 0a 6e 65 65 64 20 74 6f 20 77 6f 72 72 79 20 77  .need to worry w
1a30: 69 74 68 2e 20 20 54 68 65 20 66 6f 72 6d 61 74  ith.  The format
1a40: 20 6f 66 20 61 20 6d 61 6e 69 66 65 73 74 20 69   of a manifest i
1a50: 73 20 69 6e 74 65 6e 74 69 6f 6e 61 6c 6c 79 0a  s intentionally.
1a60: 64 65 73 69 67 6e 65 64 20 74 6f 20 62 65 20 73  designed to be s
1a70: 69 6d 70 6c 65 20 74 6f 20 70 61 72 73 65 2c 20  imple to parse, 
1a80: 73 6f 20 74 68 61 74 20 69 66 0a 79 6f 75 20 77  so that if.you w
1a90: 61 6e 74 20 74 6f 20 72 65 61 64 20 61 6e 64 20  ant to read and 
1aa0: 69 6e 74 65 72 70 72 65 74 20 61 20 6d 61 6e 69  interpret a mani
1ab0: 66 65 73 74 2c 20 65 69 74 68 65 72 20 62 79 20  fest, either by 
1ac0: 68 61 6e 64 20 6f 72 0a 77 69 74 68 20 61 20 73  hand or.with a s
1ad0: 63 72 69 70 74 2c 20 74 68 61 74 20 69 73 20 65  cript, that is e
1ae0: 61 73 79 20 74 6f 20 64 6f 2e 20 20 42 75 74 20  asy to do.  But 
1af0: 79 6f 75 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c  you will probabl
1b00: 79 20 6e 65 76 65 72 0a 6e 65 65 64 20 74 6f 20  y never.need to 
1b10: 64 6f 20 73 6f 2e 3c 2f 70 3e 0a 0a 3c 70 3e 49  do so.</p>..<p>I
1b20: 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 69 64  n addition to id
1b30: 65 6e 74 69 66 79 69 6e 67 20 61 6c 6c 20 66 69  entifying all fi
1b40: 6c 65 73 20 69 6e 20 74 68 65 20 62 61 73 65 6c  les in the basel
1b50: 69 6e 65 2c 20 61 0a 6d 61 6e 69 66 65 73 74 20  ine, a.manifest 
1b60: 61 6c 73 6f 20 63 6f 6e 74 61 69 6e 73 20 61 20  also contains a 
1b70: 63 68 65 63 6b 2d 69 6e 20 63 6f 6d 6d 65 6e 74  check-in comment
1b80: 2c 20 74 68 65 20 64 61 74 65 20 61 6e 64 20 74  , the date and t
1b90: 69 6d 65 0a 77 68 65 6e 20 74 68 65 20 62 61 73  ime.when the bas
1ba0: 65 6c 69 6e 65 20 77 61 73 20 65 73 74 61 62 6c  eline was establ
1bb0: 69 73 68 65 64 2c 20 77 68 6f 20 63 72 65 61 74  ished, who creat
1bc0: 65 64 20 74 68 65 20 62 61 73 65 6c 69 6e 65 2c  ed the baseline,
1bd0: 0a 61 6e 64 20 6c 69 6e 6b 73 20 74 6f 20 6f 74  .and links to ot
1be0: 68 65 72 20 62 61 73 65 6c 69 6e 65 73 20 66 72  her baselines fr
1bf0: 6f 6d 20 77 68 69 63 68 20 74 68 65 20 63 75 72  om which the cur
1c00: 72 65 6e 74 20 62 61 73 65 6c 69 6e 65 0a 69 73  rent baseline.is
1c10: 20 64 65 72 69 76 65 64 2e 20 20 54 68 65 72 65   derived.  There
1c20: 20 69 73 20 61 6c 73 6f 20 61 20 63 6f 75 70 6c   is also a coupl
1c30: 65 20 6f 66 20 63 68 65 63 6b 73 75 6d 73 20 75  e of checksums u
1c40: 73 65 64 20 74 6f 20 76 65 72 69 66 79 0a 74 68  sed to verify.th
1c50: 65 20 69 6e 74 65 67 72 69 74 79 20 6f 66 20 74  e integrity of t
1c60: 68 65 20 62 61 73 65 6c 69 6e 65 2e 20 20 41 6e  he baseline.  An
1c70: 64 20 74 68 65 20 77 68 6f 6c 65 20 6d 61 6e 69  d the whole mani
1c80: 66 65 73 74 20 6d 69 67 68 74 0a 62 65 20 50 47  fest might.be PG
1c90: 50 20 63 6c 65 61 72 73 69 67 6e 65 64 2e 3c 2f  P clearsigned.</
1ca0: 70 3e 0a 0a 3c 68 33 3e 32 2e 33 20 4b 65 79 20  p>..<h3>2.3 Key 
1cb0: 63 6f 6e 63 65 70 74 73 3c 2f 68 33 3e 0a 0a 3c  concepts</h3>..<
1cc0: 75 6c 3e 0a 3c 6c 69 3e 41 20 3c 62 3e 62 61 73  ul>.<li>A <b>bas
1cd0: 65 6c 69 6e 65 3c 2f 62 3e 20 69 73 20 61 20 73  eline</b> is a s
1ce0: 65 74 20 6f 66 20 66 69 6c 65 73 20 61 72 72 61  et of files arra
1cf0: 6e 67 65 64 0a 20 20 20 20 69 6e 20 61 20 68 69  nged.    in a hi
1d00: 65 72 61 72 63 68 79 2e 3c 2f 6c 69 3e 0a 3c 6c  erarchy.</li>.<l
1d10: 69 3e 41 20 3c 62 3e 72 65 70 6f 73 69 74 6f 72  i>A <b>repositor
1d20: 79 3c 2f 62 3e 20 6b 65 65 70 73 20 61 20 72 65  y</b> keeps a re
1d30: 63 6f 72 64 20 6f 66 20 68 69 73 74 6f 72 69 63  cord of historic
1d40: 61 6c 20 62 61 73 65 6c 69 6e 65 73 2e 3c 2f 6c  al baselines.</l
1d50: 69 3e 0a 3c 6c 69 3e 52 65 70 6f 73 69 74 6f 72  i>.<li>Repositor
1d60: 69 65 73 20 73 68 61 72 65 20 74 68 65 69 72 20  ies share their 
1d70: 63 68 61 6e 67 65 73 20 75 73 69 6e 67 20 3c 62  changes using <b
1d80: 3e 70 75 73 68 3c 2f 62 3e 2c 20 3c 62 3e 70 75  >push</b>, <b>pu
1d90: 6c 6c 3c 2f 62 3e 2c 0a 20 20 20 20 3c 62 3e 73  ll</b>,.    <b>s
1da0: 79 6e 63 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e  ync</b>, and <b>
1db0: 63 6c 6f 6e 65 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a  clone</b>.</li>.
1dc0: 3c 6c 69 3e 41 20 70 61 72 74 69 63 75 6c 61 72  <li>A particular
1dd0: 20 76 65 72 73 69 6f 6e 20 6f 66 20 61 20 70 61   version of a pa
1de0: 72 74 69 63 75 6c 61 72 20 66 69 6c 65 20 69 73  rticular file is
1df0: 20 61 6e 20 3c 62 3e 61 72 74 69 66 61 63 74 3c   an <b>artifact<
1e00: 2f 62 3e 0a 20 20 20 20 74 68 61 74 20 69 73 20  /b>.    that is 
1e10: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 61 6e  identified by an
1e20: 20 3c 62 3e 61 72 74 69 66 61 63 74 20 49 44 3c   <b>artifact ID<
1e30: 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 72  /b>.</li>.<li>Ar
1e40: 74 69 66 61 63 74 73 20 74 72 61 63 6b 65 64 20  tifacts tracked 
1e50: 62 79 20 66 6f 73 73 69 6c 20 61 72 65 20 69 6e  by fossil are in
1e60: 68 65 72 65 6e 74 6c 79 20 69 6d 6d 75 74 61 62  herently immutab
1e70: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 6f 73  le.</li>.<li>Fos
1e80: 73 69 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  sil automaticall
1e90: 79 20 67 65 6e 65 72 61 74 65 73 20 61 20 3c 62  y generates a <b
1ea0: 3e 6d 61 6e 69 66 65 73 74 3c 2f 62 3e 20 66 69  >manifest</b> fi
1eb0: 6c 65 20 74 68 61 74 20 69 64 65 6e 74 69 66 69  le that identifi
1ec0: 65 73 0a 20 20 20 20 65 76 65 72 79 20 61 72 74  es.    every art
1ed0: 69 66 61 63 74 20 69 6e 20 61 20 62 61 73 65 6c  ifact in a basel
1ee0: 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ine.</li>.<li>Th
1ef0: 65 20 61 72 74 69 66 61 63 74 20 49 44 20 6f 66  e artifact ID of
1f00: 20 74 68 65 20 6d 61 6e 69 66 65 73 74 20 69 73   the manifest is
1f10: 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 20   the identifier 
1f20: 6f 66 20 74 68 65 20 62 61 73 65 6c 69 6e 65 2e  of the baseline.
1f30: 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 68 32  </li>.</ul>..<h2
1f40: 3e 33 2e 30 20 46 6f 73 73 69 6c 20 2d 20 54 68  >3.0 Fossil - Th
1f50: 65 20 50 72 6f 67 72 61 6d 3c 2f 68 32 3e 0a 0a  e Program</h2>..
1f60: 3c 70 3e 46 6f 73 73 69 6c 20 69 73 20 73 6f 66  <p>Fossil is sof
1f70: 74 77 61 72 65 2e 20 20 54 68 65 20 69 6d 70 6c  tware.  The impl
1f80: 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 66 6f  ementation of fo
1f90: 73 73 69 6c 20 69 73 20 69 6e 20 74 68 65 20 66  ssil is in the f
1fa0: 6f 72 6d 0a 6f 66 20 61 20 73 69 6e 67 6c 65 20  orm.of a single 
1fb0: 65 78 65 63 75 74 61 62 6c 65 20 6e 61 6d 65 64  executable named
1fc0: 20 22 66 6f 73 73 69 6c 22 2e 20 20 54 6f 20 69   "fossil".  To i
1fd0: 6e 73 74 61 6c 6c 20 66 6f 73 73 69 6c 20 6f 6e  nstall fossil on
1fe0: 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 0a 61 6c   your system,.al
1ff0: 6c 20 79 6f 75 20 68 61 76 65 20 74 6f 20 64 6f  l you have to do
2000: 20 69 73 20 6f 62 74 61 69 6e 20 61 20 63 6f 70   is obtain a cop
2010: 79 20 6f 66 20 74 68 69 73 20 6f 6e 65 20 65 78  y of this one ex
2020: 65 63 75 74 61 62 6c 65 20 66 69 6c 65 20 28 65  ecutable file (e
2030: 69 74 68 65 72 0a 62 79 20 64 6f 77 6e 6c 6f 61  ither.by downloa
2040: 64 69 6e 67 20 61 20 70 72 65 63 6f 6d 70 69 6c  ding a precompil
2050: 65 64 20 76 65 72 73 69 6f 6e 20 6f 72 20 63 6f  ed version or co
2060: 6d 70 69 6c 69 6e 67 20 69 74 20 79 6f 75 72 73  mpiling it yours
2070: 65 6c 66 29 20 61 6e 64 20 74 68 65 6e 0a 70 75  elf) and then.pu
2080: 74 74 69 6e 67 20 74 68 61 74 20 66 69 6c 65 20  tting that file 
2090: 73 6f 6d 65 77 68 65 72 65 20 6f 6e 20 79 6f 75  somewhere on you
20a0: 72 20 50 41 54 48 2e 3c 2f 70 3e 0a 0a 3c 70 3e  r PATH.</p>..<p>
20b0: 46 6f 73 73 69 6c 20 69 73 20 63 6f 6d 70 6c 65  Fossil is comple
20c0: 74 65 6c 79 20 73 65 6c 66 2d 63 6f 6e 74 61 69  tely self-contai
20d0: 6e 65 64 2e 20 20 49 74 20 69 73 20 6e 6f 74 20  ned.  It is not 
20e0: 6e 65 63 65 73 73 61 72 79 20 74 6f 0a 69 6e 73  necessary to.ins
20f0: 74 61 6c 6c 20 61 6e 79 20 6f 74 68 65 72 20 73  tall any other s
2100: 6f 66 74 77 61 72 65 20 69 6e 20 6f 72 64 65 72  oftware in order
2110: 20 74 6f 20 75 73 65 20 66 6f 73 73 69 6c 2e 20   to use fossil. 
2120: 20 59 6f 75 20 64 6f 20 3c 75 3e 6e 6f 74 3c 2f   You do <u>not</
2130: 75 3e 20 6e 65 65 64 0a 43 56 53 2c 20 67 7a 69  u> need.CVS, gzi
2140: 70 2c 20 64 69 66 66 2c 20 72 73 79 6e 63 2c 20  p, diff, rsync, 
2150: 50 79 74 68 6f 6e 2c 20 50 65 72 6c 2c 20 54 63  Python, Perl, Tc
2160: 6c 2c 20 4a 61 76 61 2c 20 61 70 61 63 68 65 2c  l, Java, apache,
2170: 20 50 6f 73 74 67 72 65 53 51 4c 2c 20 4d 79 53   PostgreSQL, MyS
2180: 51 4c 2c 0a 53 51 4c 69 74 65 2c 20 70 61 74 63  QL,.SQLite, patc
2190: 68 2c 20 6f 72 20 61 6e 79 20 73 69 6d 69 6c 61  h, or any simila
21a0: 72 20 73 6f 66 74 77 61 72 65 20 6f 6e 20 79 6f  r software on yo
21b0: 75 72 20 73 79 73 74 65 6d 20 69 6e 20 6f 72 64  ur system in ord
21c0: 65 72 20 74 6f 20 75 73 65 0a 66 6f 73 73 69 6c  er to use.fossil
21d0: 20 65 66 66 65 63 74 69 76 65 6c 79 2e 20 20 59   effectively.  Y
21e0: 6f 75 20 77 69 6c 6c 20 77 61 6e 74 20 74 6f 20  ou will want to 
21f0: 68 61 76 65 20 73 6f 6d 65 20 6b 69 6e 64 20 6f  have some kind o
2200: 66 20 74 65 78 74 20 65 64 69 74 6f 72 0a 66 6f  f text editor.fo
2210: 72 20 65 6e 74 65 72 69 6e 67 20 63 68 65 63 6b  r entering check
2220: 2d 69 6e 20 63 6f 6d 6d 65 6e 74 73 2e 20 20 46  -in comments.  F
2230: 6f 73 73 69 6c 20 77 69 6c 6c 20 75 73 65 20 77  ossil will use w
2240: 68 61 74 65 76 65 72 20 74 65 78 74 20 65 64 69  hatever text edi
2250: 74 6f 72 0a 69 73 20 69 64 65 6e 74 69 66 69 65  tor.is identifie
2260: 64 20 62 79 20 79 6f 75 72 20 56 49 53 55 41 4c  d by your VISUAL
2270: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72   environment var
2280: 69 61 62 6c 65 2e 20 20 46 6f 73 73 69 6c 20 77  iable.  Fossil w
2290: 69 6c 6c 20 61 6c 73 6f 0a 75 73 65 20 47 50 47  ill also.use GPG
22a0: 20 74 6f 20 63 6c 65 61 72 73 69 67 6e 20 79 6f   to clearsign yo
22b0: 75 72 20 6d 61 6e 69 66 65 73 74 73 20 69 66 20  ur manifests if 
22c0: 79 6f 75 20 68 61 70 70 65 6e 20 74 6f 20 68 61  you happen to ha
22d0: 76 65 20 69 74 20 69 6e 73 74 61 6c 6c 65 64 2c  ve it installed,
22e0: 0a 62 75 74 20 66 6f 73 73 69 6c 20 77 69 6c 6c  .but fossil will
22f0: 20 73 6b 69 70 20 74 68 61 74 20 73 74 65 70 20   skip that step 
2300: 69 66 20 47 50 47 20 6d 69 73 73 69 6e 67 20 66  if GPG missing f
2310: 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2e  rom your system.
2320: 0a 59 6f 75 20 63 61 6e 20 6f 70 74 69 6f 6e 61  .You can optiona
2330: 6c 6c 79 20 73 65 74 20 75 70 20 66 6f 73 73 69  lly set up fossi
2340: 6c 20 74 6f 20 75 73 65 20 65 78 74 65 72 6e 61  l to use externa
2350: 6c 20 22 64 69 66 66 22 20 70 72 6f 67 72 61 6d  l "diff" program
2360: 73 2c 20 0a 74 68 6f 75 67 68 20 66 6f 73 73 69  s, .though fossi
2370: 6c 20 68 61 73 20 61 6e 20 65 78 63 65 6c 6c 65  l has an excelle
2380: 6e 74 20 62 75 69 6c 74 2d 69 6e 20 22 64 69 66  nt built-in "dif
2390: 66 22 20 61 6c 67 6f 72 69 74 68 6d 20 74 68 61  f" algorithm tha
23a0: 74 20 77 6f 72 6b 73 0a 66 69 6e 65 20 66 6f 72  t works.fine for
23b0: 20 6d 6f 73 74 20 70 65 6f 70 6c 65 2e 3c 2f 70   most people.</p
23c0: 3e 0a 0a 3c 70 3e 54 6f 20 75 6e 69 6e 73 74 61  >..<p>To uninsta
23d0: 6c 6c 20 66 6f 73 73 69 6c 2c 20 73 69 6d 70 6c  ll fossil, simpl
23e0: 79 20 64 65 6c 65 74 65 20 74 68 65 20 65 78 65  y delete the exe
23f0: 63 75 74 61 62 6c 65 2e 3c 2f 70 3e 0a 0a 3c 70  cutable.</p>..<p
2400: 3e 54 6f 20 75 70 67 72 61 64 65 20 61 6e 20 6f  >To upgrade an o
2410: 6c 64 65 72 20 76 65 72 73 69 6f 6e 20 6f 66 20  lder version of 
2420: 66 6f 73 73 69 6c 20 74 6f 20 61 20 6e 65 77 65  fossil to a newe
2430: 72 20 76 65 72 73 69 6f 6e 2c 20 6a 75 73 74 0a  r version, just.
2440: 72 65 70 6c 61 63 65 20 74 68 65 20 6f 6c 64 20  replace the old 
2450: 65 78 65 63 75 74 61 62 6c 65 20 77 69 74 68 20  executable with 
2460: 74 68 65 20 6e 65 77 20 6f 6e 65 2e 20 20 59 6f  the new one.  Yo
2470: 75 20 6d 69 67 68 74 20 6e 65 65 64 20 74 6f 20  u might need to 
2480: 0a 72 75 6e 20 61 20 6f 6e 65 2d 74 69 6d 65 20  .run a one-time 
2490: 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 73 74 72  command to restr
24a0: 75 63 74 75 72 65 20 79 6f 75 72 20 72 65 70 6f  ucture your repo
24b0: 73 69 74 6f 72 69 65 73 20 61 66 74 65 72 0a 61  sitories after.a
24c0: 6e 20 75 70 67 72 61 64 65 2e 20 20 43 68 65 63  n upgrade.  Chec
24d0: 6b 20 74 68 65 20 69 6e 73 74 72 75 63 74 69 6f  k the instructio
24e0: 6e 73 20 74 68 61 74 20 63 6f 6d 65 20 77 69 74  ns that come wit
24f0: 68 20 74 68 65 20 75 70 67 72 61 64 65 0a 66 6f  h the upgrade.fo
2500: 72 20 64 65 74 61 69 6c 73 2e 3c 2f 70 3e 0a 0a  r details.</p>..
2510: 3c 70 3e 54 6f 20 75 73 65 20 66 6f 73 73 69 6c  <p>To use fossil
2520: 2c 20 73 69 6d 70 6c 79 20 74 79 70 65 20 74 68  , simply type th
2530: 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 65 78  e name of the ex
2540: 65 63 75 74 61 62 6c 65 20 69 6e 20 79 6f 75 72  ecutable in your
2550: 0a 73 68 65 6c 6c 2c 20 66 6f 6c 6c 6f 77 65 64  .shell, followed
2560: 20 62 79 20 6f 6e 65 20 6f 66 20 74 68 65 20 76   by one of the v
2570: 61 72 69 6f 75 73 20 62 75 69 6c 74 2d 69 6e 20  arious built-in 
2580: 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 0a 61 72 67  commands and.arg
2590: 75 6d 65 6e 74 73 20 61 70 70 72 6f 70 72 69 61  uments appropria
25a0: 74 65 20 66 6f 72 20 74 68 61 74 20 63 6f 6d 6d  te for that comm
25b0: 61 6e 64 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c  and.  For exampl
25c0: 65 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75  e:</p>..<blockqu
25d0: 6f 74 65 3e 3c 62 3e 0a 66 6f 73 73 69 6c 20 68  ote><b>.fossil h
25e0: 65 6c 70 0a 3c 2f 62 3e 3c 2f 62 6c 6f 63 6b 71  elp.</b></blockq
25f0: 75 6f 74 65 3e 0a 0a 3c 70 3e 49 6e 20 74 68 65  uote>..<p>In the
2600: 20 6e 65 78 74 20 73 65 63 74 69 6f 6e 2c 20 77   next section, w
2610: 68 65 6e 20 77 65 20 73 61 79 20 74 68 69 6e 67  hen we say thing
2620: 73 20 6c 69 6b 65 20 22 75 73 65 20 74 68 65 20  s like "use the 
2630: 3c 62 3e 68 65 6c 70 3c 2f 62 3e 0a 63 6f 6d 6d  <b>help</b>.comm
2640: 61 6e 64 22 20 77 65 20 6d 65 61 6e 20 74 6f 20  and" we mean to 
2650: 75 73 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20  use the command 
2660: 6e 61 6d 65 20 22 68 65 6c 70 22 20 61 73 20 74  name "help" as t
2670: 68 65 20 66 69 72 73 74 0a 74 6f 6b 65 6e 20 61  he first.token a
2680: 66 74 65 72 20 74 68 65 20 6e 61 6d 65 20 6f 66  fter the name of
2690: 20 74 68 65 20 66 6f 73 73 69 6c 20 65 78 65 63   the fossil exec
26a0: 75 74 61 62 6c 65 2c 20 61 73 20 73 68 6f 77 6e  utable, as shown
26b0: 20 61 62 6f 76 65 2e 3c 2f 70 3e 0a 0a 3c 68 32   above.</p>..<h2
26c0: 3e 34 2e 30 20 57 6f 72 6b 66 6c 6f 77 3c 2f 68  >4.0 Workflow</h
26d0: 32 3e 0a 0a 3c 69 6d 67 20 73 72 63 3d 22 63 6f  2>..<img src="co
26e0: 6e 63 65 70 74 32 2e 67 69 66 22 20 61 6c 69 67  ncept2.gif" alig
26f0: 6e 3d 22 72 69 67 68 74 22 20 68 73 70 61 63 65  n="right" hspace
2700: 3d 22 31 30 22 3e 0a 0a 3c 70 3e 46 6f 73 73 69  ="10">..<p>Fossi
2710: 6c 20 68 61 73 20 74 77 6f 20 6d 6f 64 65 73 20  l has two modes 
2720: 6f 66 20 6f 70 65 72 61 74 69 6f 6e 3a 20 22 61  of operation: "a
2730: 75 74 6f 73 79 6e 63 22 20 61 6e 64 20 22 6e 6f  utosync" and "no
2740: 6e 2d 61 75 74 6f 73 79 6e 63 22 2e 0a 41 75 74  n-autosync"..Aut
2750: 6f 73 79 6e 63 20 6d 6f 64 65 20 77 6f 72 6b 73  osync mode works
2760: 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20   something like 
2770: 43 56 53 20 6f 72 20 53 56 4e 20 69 6e 20 74 68  CVS or SVN in th
2780: 61 74 20 69 74 20 61 75 74 6f 6d 61 74 69 63 61  at it automatica
2790: 6c 6c 79 0a 6b 65 65 70 73 20 79 6f 75 72 20 77  lly.keeps your w
27a0: 6f 72 6b 20 69 6e 20 73 79 6e 63 20 77 69 74 68  ork in sync with
27b0: 20 74 68 65 20 63 65 6e 74 72 61 6c 20 73 65 72   the central ser
27c0: 76 65 72 2e 20 20 4e 6f 6e 2d 61 75 74 6f 73 79  ver.  Non-autosy
27d0: 6e 63 20 69 73 0a 6d 6f 72 65 20 6c 69 6b 65 20  nc is.more like 
27e0: 47 49 54 2c 20 6f 72 20 42 69 74 6b 65 65 70 65  GIT, or Bitkeepe
27f0: 72 20 69 6e 20 74 68 61 74 20 79 6f 75 72 20 6c  r in that your l
2800: 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 20  ocal repository 
2810: 64 65 76 65 6c 6f 70 73 0a 69 6e 64 65 70 65 6e  develops.indepen
2820: 64 65 6e 74 6c 79 20 6f 66 20 79 6f 75 72 20 63  dently of your c
2830: 6f 77 6f 72 6b 65 72 73 20 61 6e 64 20 79 6f 75  oworkers and you
2840: 20 73 68 61 72 65 20 79 6f 75 72 20 63 68 61 6e   share your chan
2850: 67 65 73 20 6d 61 6e 75 61 6c 6c 79 2e 0a 54 68  ges manually..Th
2860: 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 74 68  e interesting th
2870: 69 6e 67 20 61 62 6f 75 74 20 66 6f 73 73 69 6c  ing about fossil
2880: 20 69 73 20 74 68 61 74 20 69 74 20 73 75 70 70   is that it supp
2890: 6f 72 74 73 20 62 6f 74 68 20 61 75 74 6f 73 79  orts both autosy
28a0: 6e 63 0a 61 6e 64 20 6e 6f 6e 2d 61 75 74 6f 73  nc.and non-autos
28b0: 79 6e 63 20 77 6f 72 6b 20 66 6c 6f 77 73 2e 3c  ync work flows.<
28c0: 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 64 65 66 61  /p>..<p>The defa
28d0: 75 6c 74 20 73 65 74 74 69 6e 67 20 66 6f 72 20  ult setting for 
28e0: 66 6f 73 73 69 6c 20 69 73 20 74 6f 20 62 65 20  fossil is to be 
28f0: 69 6e 20 61 75 74 6f 73 79 6e 63 20 6d 6f 64 65  in autosync mode
2900: 2e 20 20 59 6f 75 0a 63 61 6e 20 63 68 61 6e 67  .  You.can chang
2910: 65 20 74 68 65 20 61 75 74 6f 73 79 6e 63 20 73  e the autosync s
2920: 65 74 74 69 6e 67 20 6f 72 20 63 68 65 63 6b 20  etting or check 
2930: 74 68 65 20 63 75 72 72 65 6e 74 20 61 75 74 6f  the current auto
2940: 73 79 6e 63 0a 73 65 74 74 69 6e 67 20 75 73 69  sync.setting usi
2950: 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 6c 69 6b 65  ng commands like
2960: 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f  :</p>..<blockquo
2970: 74 65 3e 0a 3c 62 3e 66 6f 73 73 69 6c 20 73 65  te>.<b>fossil se
2980: 74 74 69 6e 67 20 61 75 74 6f 73 79 6e 63 20 6f  tting autosync o
2990: 6e 3c 62 72 3e 0a 66 6f 73 73 69 6c 20 73 65 74  n<br>.fossil set
29a0: 74 69 6e 67 20 61 75 74 6f 73 79 6e 63 20 6f 66  ting autosync of
29b0: 66 3c 62 72 3e 0a 3c 62 3e 66 6f 73 73 69 6c 20  f<br>.<b>fossil 
29c0: 73 65 74 74 69 6e 67 73 3c 2f 62 3e 0a 3c 2f 62  settings</b>.</b
29d0: 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a 3c 70 3e 42  lockquote>..<p>B
29e0: 79 20 64 65 66 61 75 6c 74 2c 20 66 6f 73 73 69  y default, fossi
29f0: 6c 20 72 75 6e 73 20 77 69 74 68 20 61 75 74 6f  l runs with auto
2a00: 73 79 6e 63 20 6d 6f 64 65 20 74 75 72 6e 65 64  sync mode turned
2a10: 20 6f 6e 2e 20 20 54 68 65 0a 61 75 74 68 6f 72   on.  The.author
2a20: 73 20 66 69 6e 64 20 74 68 61 74 20 70 72 6f 6a  s find that proj
2a30: 65 63 74 73 20 72 75 6e 20 6d 6f 72 65 20 73 6d  ects run more sm
2a40: 6f 6f 74 68 6c 79 20 77 68 65 6e 20 61 75 74 6f  oothly when auto
2a50: 73 79 6e 63 20 69 73 20 6f 6e 6c 79 0a 64 69 73  sync is only.dis
2a60: 61 62 6c 65 64 20 77 68 65 6e 20 6f 66 66 2d 6e  abled when off-n
2a70: 65 74 77 6f 72 6b 2e 3c 2f 70 3e 0a 0a 3c 68 33  etwork.</p>..<h3
2a80: 3e 34 2e 31 20 41 75 74 6f 73 79 6e 63 20 57 6f  >4.1 Autosync Wo
2a90: 72 6b 66 6c 6f 77 3c 2f 68 33 3e 0a 0a 3c 6f 6c  rkflow</h3>..<ol
2aa0: 3e 0a 3c 6c 69 3e 3c 70 3e 0a 45 73 74 61 62 6c  >.<li><p>.Establ
2ab0: 69 73 68 20 61 20 6c 6f 63 61 6c 20 72 65 70 6f  ish a local repo
2ac0: 73 69 74 6f 72 79 20 75 73 69 6e 67 20 65 69 74  sitory using eit
2ad0: 68 65 72 20 74 68 65 20 3c 62 3e 6e 65 77 3c 2f  her the <b>new</
2ae0: 62 3e 20 63 6f 6d 6d 61 6e 64 0a 74 6f 20 73 74  b> command.to st
2af0: 61 72 74 20 61 20 6e 65 77 20 70 72 6f 6a 65 63  art a new projec
2b00: 74 2c 20 6f 72 20 74 68 65 20 3c 62 3e 63 6c 6f  t, or the <b>clo
2b10: 6e 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74  ne</b> command t
2b20: 6f 20 6d 61 6b 65 20 61 20 63 6c 6f 6e 65 0a 6f  o make a clone.o
2b30: 66 20 61 20 72 65 70 6f 73 69 74 6f 72 79 20 66  f a repository f
2b40: 6f 72 20 61 6e 20 65 78 69 73 74 69 6e 67 20 70  or an existing p
2b50: 72 6f 6a 65 63 74 2e 20 0a 3c 2f 70 3e 3c 2f 6c  roject. .</p></l
2b60: 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 45 73 74 61  i>..<li><p>.Esta
2b70: 62 6c 69 73 68 20 6f 6e 65 20 6f 72 20 6d 6f 72  blish one or mor
2b80: 65 20 73 6f 75 72 63 65 20 74 72 65 65 73 20 62  e source trees b
2b90: 79 20 63 68 61 6e 67 69 6e 67 20 79 6f 75 72 20  y changing your 
2ba0: 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72  working director
2bb0: 79 0a 74 6f 20 77 68 65 72 65 20 79 6f 75 20 77  y.to where you w
2bc0: 61 6e 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20  ant the root of 
2bd0: 74 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 20  the source tree 
2be0: 74 6f 20 62 65 2c 20 74 68 65 6e 20 69 73 73 75  to be, then issu
2bf0: 69 6e 67 0a 74 68 65 20 3c 62 3e 6f 70 65 6e 3c  ing.the <b>open<
2c00: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68  /b> command with
2c10: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65   the name of the
2c20: 20 72 65 70 6f 73 69 74 6f 72 79 20 66 69 6c 65   repository file
2c30: 20 61 73 20 69 74 73 0a 61 72 67 75 6d 65 6e 74   as its.argument
2c40: 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69  ..</p></li>..<li
2c50: 3e 3c 70 3e 0a 54 68 65 20 3c 62 3e 6f 70 65 6e  ><p>.The <b>open
2c60: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  </b> command in 
2c70: 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 74 65  the previous ste
2c80: 70 20 70 6f 70 75 6c 61 74 65 73 20 79 6f 75 72  p populates your
2c90: 20 6c 6f 63 61 6c 20 73 6f 75 72 63 65 0a 74 72   local source.tr
2ca0: 65 65 20 77 69 74 68 20 61 20 63 6f 70 79 20 6f  ee with a copy o
2cb0: 66 20 74 68 65 20 6c 61 74 65 73 74 20 62 61 73  f the latest bas
2cc0: 65 6c 69 6e 65 2e 20 20 55 73 75 61 6c 6c 79 20  eline.  Usually 
2cd0: 74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75  this is what you
2ce0: 20 77 61 6e 74 2e 0a 49 6e 20 74 68 65 20 72 61   want..In the ra
2cf0: 72 65 20 63 61 73 65 73 20 77 68 65 72 65 20 69  re cases where i
2d00: 74 20 69 73 20 6e 6f 74 2c 20 75 73 65 20 74 68  t is not, use th
2d10: 65 20 3c 62 3e 75 70 64 61 74 65 3c 2f 62 3e 20  e <b>update</b> 
2d20: 63 6f 6d 6d 61 6e 64 20 74 6f 0a 73 77 69 74 63  command to.switc
2d30: 68 20 74 6f 20 61 20 6e 65 77 20 62 61 73 65 6c  h to a new basel
2d40: 69 6e 65 2e 20 20 55 73 65 20 74 68 65 20 3c 62  ine.  Use the <b
2d50: 3e 74 69 6d 65 6c 69 6e 65 3c 2f 62 3e 20 6f 72  >timeline</b> or
2d60: 20 3c 62 3e 6c 65 61 76 65 73 3c 2f 62 3e 20 63   <b>leaves</b> c
2d70: 6f 6d 6d 61 6e 64 73 0a 74 6f 20 69 64 65 6e 74  ommands.to ident
2d80: 69 66 79 20 61 6c 74 65 72 6e 61 74 69 76 65 20  ify alternative 
2d90: 62 61 73 65 6c 69 6e 65 73 20 74 6f 20 73 77 69  baselines to swi
2da0: 74 63 68 20 74 6f 2e 0a 3c 2f 70 3e 3c 2f 6c 69  tch to..</p></li
2db0: 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 45 64 69 74 20  >..<li><p>.Edit 
2dc0: 74 68 65 20 63 6f 64 65 2e 20 20 41 64 64 20 6e  the code.  Add n
2dd0: 65 77 20 66 69 6c 65 73 20 74 6f 20 74 68 65 20  ew files to the 
2de0: 73 6f 75 72 63 65 20 74 72 65 65 20 75 73 69 6e  source tree usin
2df0: 67 20 74 68 65 20 3c 62 3e 61 64 64 3c 2f 62 3e  g the <b>add</b>
2e00: 0a 63 6f 6d 6d 61 6e 64 2e 20 20 4f 6d 69 74 20  .command.  Omit 
2e10: 66 69 6c 65 73 20 66 72 6f 6d 20 66 75 74 75 72  files from futur
2e20: 65 20 62 61 73 65 6c 69 6e 65 73 20 75 73 69 6e  e baselines usin
2e30: 67 20 74 68 65 20 3c 62 3e 72 6d 3c 2f 62 3e 20  g the <b>rm</b> 
2e40: 63 6f 6d 6d 61 6e 64 2e 0a 28 45 76 65 6e 20 77  command..(Even w
2e50: 68 65 6e 20 79 6f 75 20 72 65 6d 6f 76 65 20 66  hen you remove f
2e60: 69 6c 65 73 20 66 72 6f 6d 20 66 75 74 75 72 65  iles from future
2e70: 20 62 61 73 65 6c 69 6e 65 73 2c 20 74 68 6f 73   baselines, thos
2e80: 65 20 66 69 6c 65 73 20 63 6f 6e 74 69 6e 75 65  e files continue
2e90: 0a 74 6f 20 65 78 69 73 74 20 69 6e 20 68 69 73  .to exist in his
2ea0: 74 6f 72 69 63 61 6c 20 62 61 73 65 6c 69 6e 65  torical baseline
2eb0: 73 2e 29 20 20 54 65 73 74 20 79 6f 75 72 20 63  s.)  Test your c
2ec0: 68 61 6e 67 65 73 2e 0a 3c 2f 70 3e 3c 2f 6c 69  hanges..</p></li
2ed0: 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 43 72 65 61 74  >..<li><p>.Creat
2ee0: 65 20 61 20 6e 65 77 20 62 61 73 65 6c 69 6e 65  e a new baseline
2ef0: 20 75 73 69 6e 67 20 74 68 65 20 3c 62 3e 63 6f   using the <b>co
2f00: 6d 6d 69 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64  mmit</b> command
2f10: 2e 20 20 59 6f 75 20 77 69 6c 6c 20 62 65 20 70  .  You will be p
2f20: 72 6f 6d 70 74 65 64 0a 66 6f 72 20 61 20 63 68  rompted.for a ch
2f30: 65 63 6b 2d 69 6e 20 63 6f 6d 6d 65 6e 74 20 61  eck-in comment a
2f40: 6e 64 20 61 6c 73 6f 20 66 6f 72 20 79 6f 75 72  nd also for your
2f50: 20 47 50 47 20 6b 65 79 20 69 66 20 79 6f 75 20   GPG key if you 
2f60: 68 61 76 65 20 47 50 47 20 69 6e 73 74 61 6c 6c  have GPG install
2f70: 65 64 2e 0a 54 68 65 20 63 6f 6d 6d 69 74 20 63  ed..The commit c
2f80: 6f 70 69 65 73 20 74 68 65 20 65 64 69 74 73 20  opies the edits 
2f90: 79 6f 75 20 68 61 76 65 20 6d 61 64 65 20 69 6e  you have made in
2fa0: 20 79 6f 75 72 20 6c 6f 63 61 6c 20 73 6f 75 72   your local sour
2fb0: 63 65 0a 74 72 65 65 20 69 6e 74 6f 20 79 6f 75  ce.tree into you
2fc0: 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f  r local reposito
2fd0: 72 79 2e 20 20 41 66 74 65 72 20 79 6f 75 72 20  ry.  After your 
2fe0: 63 6f 6d 6d 69 74 20 63 6f 6d 70 6c 65 74 65 73  commit completes
2ff0: 2c 20 66 6f 73 73 69 6c 20 77 69 6c 6c 0a 61 75  , fossil will.au
3000: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 3c 62 3e 70  tomatically <b>p
3010: 75 73 68 3c 2f 62 3e 20 79 6f 75 72 20 63 68 61  ush</b> your cha
3020: 6e 67 65 73 20 62 61 63 6b 20 74 6f 20 74 68 65  nges back to the
3030: 20 73 65 72 76 65 72 0a 79 6f 75 20 63 6c 6f 6e   server.you clon
3040: 65 64 20 66 72 6f 6d 20 6f 72 20 77 68 61 74 65  ed from or whate
3050: 76 65 72 20 73 65 72 76 65 72 20 79 6f 75 20 6d  ver server you m
3060: 6f 73 74 20 72 65 63 65 6e 74 6c 79 20 73 79 6e  ost recently syn
3070: 63 65 64 20 77 69 74 68 2e 0a 3c 2f 70 3e 3c 2f  ced with..</p></
3080: 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 57 68 65  li>..<li><p>.Whe
3090: 6e 20 79 6f 75 72 20 63 6f 77 6f 72 6b 65 72 73  n your coworkers
30a0: 20 6d 61 6b 65 20 74 68 65 69 72 20 6f 77 6e 20   make their own 
30b0: 63 68 61 6e 67 65 73 2c 20 79 6f 75 20 63 61 6e  changes, you can
30c0: 20 6d 65 72 67 65 20 74 68 6f 73 65 20 63 68 61   merge those cha
30d0: 6e 67 65 73 0a 69 6e 74 6f 20 79 6f 75 72 20 6c  nges.into your l
30e0: 6f 63 61 6c 20 6c 6f 63 61 6c 20 73 6f 75 72 63  ocal local sourc
30f0: 65 20 74 72 65 65 20 75 73 69 6e 67 20 74 68 65  e tree using the
3100: 20 3c 62 3e 75 70 64 61 74 65 3c 2f 62 3e 20 63   <b>update</b> c
3110: 6f 6d 6d 61 6e 64 2e 20 20 0a 49 6e 20 61 75 74  ommand.  .In aut
3120: 6f 73 79 6e 63 20 6d 6f 64 65 2c 20 3c 62 3e 75  osync mode, <b>u
3130: 70 64 61 74 65 3c 2f 62 3e 20 77 69 6c 6c 20 66  pdate</b> will f
3140: 69 72 73 74 20 67 6f 20 62 61 63 6b 20 74 6f 20  irst go back to 
3150: 74 68 65 20 73 65 72 76 65 72 20 79 6f 75 0a 63  the server you.c
3160: 6c 6f 6e 65 64 20 66 72 6f 6d 20 6f 72 20 77 69  loned from or wi
3170: 74 68 20 77 68 69 63 68 20 79 6f 75 20 6d 6f 73  th which you mos
3180: 74 20 72 65 63 65 6e 74 6c 79 20 73 79 6e 63 65  t recently synce
3190: 64 2c 20 61 6e 64 20 70 75 6c 6c 20 64 6f 77 6e  d, and pull down
31a0: 20 61 6c 6c 0a 72 65 63 65 6e 74 20 63 68 61 6e   all.recent chan
31b0: 67 65 73 20 69 6e 74 6f 20 79 6f 75 72 20 6c 6f  ges into your lo
31c0: 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2e 20  cal repository. 
31d0: 20 54 68 65 6e 20 69 74 20 77 69 6c 6c 20 6d 65   Then it will me
31e0: 72 67 65 20 72 65 63 65 6e 74 0a 63 68 61 6e 67  rge recent.chang
31f0: 65 73 20 69 6e 74 6f 20 79 6f 75 72 20 6c 6f 63  es into your loc
3200: 61 6c 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20  al source tree. 
3210: 20 49 66 20 79 6f 75 20 64 6f 20 61 6e 20 3c 62   If you do an <b
3220: 3e 75 70 64 61 74 65 3c 2f 62 3e 20 61 6e 64 0a  >update</b> and.
3230: 66 69 6e 64 20 74 68 61 74 20 69 74 20 6d 65 73  find that it mes
3240: 73 65 73 20 73 6f 6d 65 74 68 69 6e 67 20 75 70  ses something up
3250: 20 69 6e 20 79 6f 75 72 20 73 6f 75 72 63 65 20   in your source 
3260: 74 72 65 65 20 28 70 65 72 68 61 70 73 20 61 20  tree (perhaps a 
3270: 63 6f 2d 77 6f 72 6b 65 72 0a 63 68 65 63 6b 65  co-worker.checke
3280: 64 20 69 6e 20 69 6e 63 6f 6d 70 61 74 69 62 6c  d in incompatibl
3290: 65 20 63 68 61 6e 67 65 73 29 20 79 6f 75 20 63  e changes) you c
32a0: 61 6e 20 75 73 65 20 74 68 65 20 3c 62 3e 75 6e  an use the <b>un
32b0: 64 6f 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 0a  do</b> command .
32c0: 74 6f 20 62 61 63 6b 20 6f 75 74 20 74 68 65 20  to back out the 
32d0: 63 68 61 6e 67 65 73 2e 0a 3c 2f 70 3e 3c 2f 6c  changes..</p></l
32e0: 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 52 65 70 65  i>..<li><p>.Repe
32f0: 61 74 20 61 6c 6c 20 6f 66 20 74 68 65 20 61 62  at all of the ab
3300: 6f 76 65 20 75 6e 74 69 6c 20 79 6f 75 20 68 61  ove until you ha
3310: 76 65 20 67 65 6e 65 72 61 74 65 64 20 67 72 65  ve generated gre
3320: 61 74 20 73 6f 66 74 77 61 72 65 2e 0a 3c 2f 70  at software..</p
3330: 3e 3c 2f 6c 69 3e 0a 3c 2f 6f 6c 3e 0a 0a 3c 68  ></li>.</ol>..<h
3340: 33 3e 34 2e 32 20 4e 6f 6e 2d 41 75 74 6f 73 79  3>4.2 Non-Autosy
3350: 6e 63 20 57 6f 72 6b 66 6c 6f 77 3c 2f 68 33 3e  nc Workflow</h3>
3360: 0a 0a 3c 70 3e 57 68 65 6e 20 61 75 74 6f 73 79  ..<p>When autosy
3370: 6e 63 20 69 73 20 64 69 73 61 62 6c 65 64 2c 20  nc is disabled, 
3380: 74 68 65 20 3c 62 3e 63 6f 6d 6d 69 74 3c 2f 62  the <b>commit</b
3390: 3e 20 63 6f 6d 6d 61 6e 64 20 69 73 20 64 65 63  > command is dec
33a0: 6f 75 70 6c 65 64 20 66 72 6f 6d 0a 3c 62 3e 70  oupled from.<b>p
33b0: 75 73 68 3c 2f 62 3e 20 61 6e 64 20 74 68 65 20  ush</b> and the 
33c0: 3c 62 3e 75 70 64 61 74 65 3c 2f 62 3e 20 63 6f  <b>update</b> co
33d0: 6d 6d 61 6e 64 20 69 73 20 64 65 63 6f 75 70 6c  mmand is decoupl
33e0: 65 64 20 66 72 6f 6d 20 3c 62 3e 70 75 6c 6c 3c  ed from <b>pull<
33f0: 2f 62 3e 2e 0a 54 68 61 74 20 6d 65 61 6e 73 20  /b>..That means 
3400: 79 6f 75 20 68 61 76 65 20 74 6f 20 64 6f 20 61  you have to do a
3410: 20 66 65 77 20 65 78 74 72 61 20 73 74 65 70 73   few extra steps
3420: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 61 63 63   in order to acc
3430: 6f 6d 70 6c 69 73 68 20 74 68 65 0a 3c 62 3e 70  omplish the.<b>p
3440: 75 73 68 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 70  ush</b> and <b>p
3450: 75 6c 6c 3c 2f 62 3e 20 74 61 73 6b 73 20 6d 61  ull</b> tasks ma
3460: 6e 75 61 6c 6c 79 2e 3c 2f 70 3e 0a 0a 3c 6f 6c  nually.</p>..<ol
3470: 3e 0a 3c 6c 69 3e 3c 70 3e 0a 45 73 74 61 62 6c  >.<li><p>.Establ
3480: 69 73 68 20 61 20 6c 6f 63 61 6c 20 72 65 70 6f  ish a local repo
3490: 73 69 74 6f 72 79 20 75 73 69 6e 67 20 65 69 74  sitory using eit
34a0: 68 65 72 20 74 68 65 20 3c 62 3e 6e 65 77 3c 2f  her the <b>new</
34b0: 62 3e 20 63 6f 6d 6d 61 6e 64 0a 74 6f 20 73 74  b> command.to st
34c0: 61 72 74 20 61 20 6e 65 77 20 70 72 6f 6a 65 63  art a new projec
34d0: 74 2c 20 6f 72 20 74 68 65 20 3c 62 3e 63 6c 6f  t, or the <b>clo
34e0: 6e 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74  ne</b> command t
34f0: 6f 20 6d 61 6b 65 20 61 20 63 6c 6f 6e 65 0a 6f  o make a clone.o
3500: 66 20 61 20 72 65 70 6f 73 69 74 6f 72 79 20 66  f a repository f
3510: 6f 72 20 61 6e 20 65 78 69 73 74 69 6e 67 20 70  or an existing p
3520: 72 6f 6a 65 63 74 2e 20 20 20 54 68 65 20 64 65  roject.   The de
3530: 66 61 75 6c 74 20 73 65 74 74 69 6e 67 20 66 6f  fault setting fo
3540: 72 0a 61 20 6e 65 77 20 72 65 70 6f 73 69 74 6f  r.a new reposito
3550: 72 79 20 69 73 20 77 69 74 68 20 61 75 74 6f 73  ry is with autos
3560: 79 6e 63 20 6f 6e 2c 20 73 6f 20 79 6f 75 20 77  ync on, so you w
3570: 69 6c 6c 20 6e 65 65 64 20 74 6f 20 74 75 72 6e  ill need to turn
3580: 20 69 74 20 6f 66 66 0a 75 73 69 6e 67 20 74 68   it off.using th
3590: 65 20 3c 62 3e 73 65 74 74 69 6e 67 20 61 75 74  e <b>setting aut
35a0: 6f 73 79 6e 63 20 6f 66 66 3c 2f 62 3e 20 63 6f  osync off</b> co
35b0: 6d 6d 61 6e 64 20 77 69 74 68 20 61 20 3c 62 3e  mmand with a <b>
35c0: 2d 52 3c 2f 62 3e 20 6f 70 74 69 6f 6e 0a 74 6f  -R</b> option.to
35d0: 20 73 70 65 63 69 66 79 20 74 68 65 20 72 65 70   specify the rep
35e0: 6f 73 69 74 6f 72 79 2e 0a 3c 2f 70 3e 3c 2f 6c  ository..</p></l
35f0: 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 45 73 74 61  i>..<li><p>.Esta
3600: 62 6c 69 73 68 20 6f 6e 65 20 6f 72 20 6d 6f 72  blish one or mor
3610: 65 20 73 6f 75 72 63 65 20 74 72 65 65 73 20 62  e source trees b
3620: 79 20 63 68 61 6e 67 69 6e 67 20 79 6f 75 72 20  y changing your 
3630: 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72  working director
3640: 79 0a 74 6f 20 77 68 65 72 65 20 79 6f 75 20 77  y.to where you w
3650: 61 6e 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20  ant the root of 
3660: 74 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 20  the source tree 
3670: 74 6f 20 62 65 2c 20 74 68 65 6e 20 69 73 73 75  to be, then issu
3680: 69 6e 67 0a 74 68 65 20 3c 62 3e 6f 70 65 6e 3c  ing.the <b>open<
3690: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68  /b> command with
36a0: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65   the name of the
36b0: 20 72 65 70 6f 73 69 74 6f 72 79 20 66 69 6c 65   repository file
36c0: 20 61 73 20 69 74 73 0a 61 72 67 75 6d 65 6e 74   as its.argument
36d0: 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69  ..</p></li>..<li
36e0: 3e 3c 70 3e 0a 54 68 65 20 3c 62 3e 6f 70 65 6e  ><p>.The <b>open
36f0: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  </b> command in 
3700: 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 74 65  the previous ste
3710: 70 20 70 6f 70 75 6c 61 74 65 73 20 79 6f 75 72  p populates your
3720: 20 6c 6f 63 61 6c 20 73 6f 75 72 63 65 0a 74 72   local source.tr
3730: 65 65 20 77 69 74 68 20 61 20 63 6f 70 79 20 6f  ee with a copy o
3740: 66 20 74 68 65 20 6c 61 74 65 73 74 20 62 61 73  f the latest bas
3750: 65 6c 69 6e 65 2e 20 20 55 73 75 61 6c 6c 79 20  eline.  Usually 
3760: 74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75  this is what you
3770: 20 77 61 6e 74 2e 0a 49 6e 20 74 68 65 20 72 61   want..In the ra
3780: 72 65 20 63 61 73 65 73 20 77 68 65 72 65 20 69  re cases where i
3790: 74 20 69 73 20 6e 6f 74 2c 20 75 73 65 20 74 68  t is not, use th
37a0: 65 20 3c 62 3e 75 70 64 61 74 65 3c 2f 62 3e 20  e <b>update</b> 
37b0: 63 6f 6d 6d 61 6e 64 20 74 6f 0a 73 77 69 74 63  command to.switc
37c0: 68 20 74 6f 20 61 20 6e 65 77 20 62 61 73 65 6c  h to a new basel
37d0: 69 6e 65 2e 20 20 55 73 65 20 74 68 65 20 3c 62  ine.  Use the <b
37e0: 3e 74 69 6d 65 6c 69 6e 65 3c 2f 62 3e 20 6f 72  >timeline</b> or
37f0: 20 3c 62 3e 6c 65 61 76 65 73 3c 2f 62 3e 20 63   <b>leaves</b> c
3800: 6f 6d 6d 61 6e 64 73 0a 74 6f 20 69 64 65 6e 74  ommands.to ident
3810: 69 66 79 20 61 6c 74 65 72 6e 61 74 69 76 65 20  ify alternative 
3820: 62 61 73 65 6c 69 6e 65 73 20 74 6f 20 73 77 69  baselines to swi
3830: 74 63 68 20 74 6f 2e 0a 3c 2f 70 3e 3c 2f 6c 69  tch to..</p></li
3840: 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 45 64 69 74 20  >..<li><p>.Edit 
3850: 74 68 65 20 63 6f 64 65 2e 20 20 41 64 64 20 6e  the code.  Add n
3860: 65 77 20 66 69 6c 65 73 20 74 6f 20 74 68 65 20  ew files to the 
3870: 73 6f 75 72 63 65 20 74 72 65 65 20 75 73 69 6e  source tree usin
3880: 67 20 74 68 65 20 3c 62 3e 61 64 64 3c 2f 62 3e  g the <b>add</b>
3890: 0a 63 6f 6d 6d 61 6e 64 2e 20 20 4f 6d 69 74 20  .command.  Omit 
38a0: 66 69 6c 65 73 20 66 72 6f 6d 20 66 75 74 75 72  files from futur
38b0: 65 20 62 61 73 65 6c 69 6e 65 73 20 75 73 69 6e  e baselines usin
38c0: 67 20 74 68 65 20 3c 62 3e 72 6d 3c 2f 62 3e 20  g the <b>rm</b> 
38d0: 63 6f 6d 6d 61 6e 64 2e 0a 28 45 76 65 6e 20 77  command..(Even w
38e0: 68 65 6e 20 79 6f 75 20 72 65 6d 6f 76 65 20 66  hen you remove f
38f0: 69 6c 65 73 20 66 72 6f 6d 20 66 75 74 75 72 65  iles from future
3900: 20 62 61 73 65 6c 69 6e 65 73 2c 20 74 68 6f 73   baselines, thos
3910: 65 20 66 69 6c 65 73 20 63 6f 6e 74 69 6e 75 65  e files continue
3920: 0a 74 6f 20 65 78 69 73 74 20 69 6e 20 68 69 73  .to exist in his
3930: 74 6f 72 69 63 61 6c 20 62 61 73 65 6c 69 6e 65  torical baseline
3940: 73 2e 29 20 20 54 65 73 74 20 79 6f 75 72 20 63  s.)  Test your c
3950: 68 61 6e 67 65 73 2e 0a 3c 2f 70 3e 3c 2f 6c 69  hanges..</p></li
3960: 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 43 72 65 61 74  >..<li><p>.Creat
3970: 65 20 61 20 6e 65 77 20 62 61 73 65 6c 69 6e 65  e a new baseline
3980: 20 75 73 69 6e 67 20 74 68 65 20 3c 62 3e 63 6f   using the <b>co
3990: 6d 6d 69 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64  mmit</b> command
39a0: 2e 20 20 59 6f 75 20 77 69 6c 6c 20 62 65 20 70  .  You will be p
39b0: 72 6f 6d 70 74 65 64 0a 66 6f 72 20 61 20 63 68  rompted.for a ch
39c0: 65 63 6b 2d 69 6e 20 63 6f 6d 6d 65 6e 74 20 61  eck-in comment a
39d0: 6e 64 20 61 6c 73 6f 20 66 6f 72 20 79 6f 75 72  nd also for your
39e0: 20 47 50 47 20 6b 65 79 20 69 66 20 79 6f 75 20   GPG key if you 
39f0: 68 61 76 65 20 47 50 47 20 69 6e 73 74 61 6c 6c  have GPG install
3a00: 65 64 2e 0a 54 68 65 20 63 6f 6d 6d 69 74 20 63  ed..The commit c
3a10: 6f 70 69 65 73 20 74 68 65 20 65 64 69 74 73 20  opies the edits 
3a20: 79 6f 75 20 68 61 76 65 20 6d 61 64 65 20 69 6e  you have made in
3a30: 20 79 6f 75 72 20 6c 6f 63 61 6c 20 73 6f 75 72   your local sour
3a40: 63 65 0a 74 72 65 65 20 69 6e 74 6f 20 79 6f 75  ce.tree into you
3a50: 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f  r local reposito
3a60: 72 79 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c  ry..</p></li>..<
3a70: 6c 69 3e 3c 70 3e 55 73 65 20 74 68 65 20 3c 62  li><p>Use the <b
3a80: 3e 70 75 73 68 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  >push</b> comman
3a90: 64 20 74 6f 20 70 75 73 68 20 79 6f 75 72 20 63  d to push your c
3aa0: 68 61 6e 67 65 73 20 6f 75 74 20 74 6f 20 61 20  hanges out to a 
3ab0: 73 65 72 76 65 72 0a 77 68 65 72 65 20 79 6f 75  server.where you
3ac0: 72 20 63 6f 2d 77 6f 72 6b 65 72 73 20 63 61 6e  r co-workers can
3ad0: 20 61 63 63 65 73 73 20 74 68 65 6d 2e 0a 3c 2f   access them..</
3ae0: 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e  p></li>..<li><p>
3af0: 0a 57 68 65 6e 20 63 6f 2d 77 6f 72 6b 65 72 73  .When co-workers
3b00: 20 6d 61 6b 65 20 74 68 65 69 72 20 6f 77 6e 20   make their own 
3b10: 63 68 61 6e 67 65 73 2c 20 75 73 65 20 74 68 65  changes, use the
3b20: 20 3c 62 3e 70 75 6c 6c 3c 2f 62 3e 20 63 6f 6d   <b>pull</b> com
3b30: 6d 61 6e 64 0a 74 6f 20 70 75 6c 6c 20 74 68 6f  mand.to pull tho
3b40: 73 65 20 63 68 61 6e 67 65 73 20 69 6e 74 6f 20  se changes into 
3b50: 79 6f 75 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73  your local repos
3b60: 69 74 6f 72 79 2e 20 20 4e 6f 74 65 20 74 68 61  itory.  Note tha
3b70: 74 20 3c 62 3e 70 75 6c 6c 3c 2f 62 3e 0a 64 6f  t <b>pull</b>.do
3b80: 65 73 20 6e 6f 74 20 6d 6f 76 65 20 74 68 65 20  es not move the 
3b90: 63 68 61 6e 67 65 73 20 69 6e 74 6f 20 79 6f 75  changes into you
3ba0: 72 20 6c 6f 63 61 6c 20 73 6f 75 72 63 65 20 74  r local source t
3bb0: 72 65 65 2c 20 6f 6e 6c 79 20 69 6e 74 6f 20 79  ree, only into y
3bc0: 6f 75 72 0a 6c 6f 63 61 6c 20 72 65 70 6f 73 69  our.local reposi
3bd0: 74 6f 72 79 2e 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a  tory..</p></li>.
3be0: 0a 3c 6c 69 3e 3c 70 3e 0a 4f 6e 63 65 20 63 68  .<li><p>.Once ch
3bf0: 61 6e 67 65 73 20 61 72 65 20 69 6e 20 79 6f 75  anges are in you
3c00: 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f  r local reposito
3c10: 72 79 2c 20 75 73 65 0a 75 73 65 20 74 68 65 20  ry, use.use the 
3c20: 3c 62 3e 75 70 64 61 74 65 3c 2f 62 3e 20 63 6f  <b>update</b> co
3c30: 6d 6d 61 6e 64 20 74 6f 20 6d 65 72 67 65 20 74  mmand to merge t
3c40: 68 65 6d 20 74 6f 20 79 6f 75 72 20 6c 6f 63 61  hem to your loca
3c50: 6c 20 73 6f 75 72 63 65 20 74 72 65 65 2e 0a 49  l source tree..I
3c60: 66 20 79 6f 75 20 6d 65 72 67 65 20 69 6e 20 73  f you merge in s
3c70: 6f 6d 65 20 63 68 61 6e 67 65 73 20 61 6e 64 20  ome changes and 
3c80: 66 69 6e 64 20 74 68 61 74 20 74 68 65 20 63 68  find that the ch
3c90: 61 6e 67 65 73 20 64 6f 20 6e 6f 74 20 77 6f 72  anges do not wor
3ca0: 6b 20 6f 75 74 0a 6f 72 20 61 72 65 20 6e 6f 74  k out.or are not
3cb0: 20 74 6f 20 79 6f 75 72 20 6c 69 6b 69 6e 67 2c   to your liking,
3cc0: 20 79 6f 75 20 63 61 6e 20 62 61 63 6b 20 6f 75   you can back ou
3cd0: 74 20 74 68 65 20 63 68 61 6e 67 65 73 20 75 73  t the changes us
3ce0: 69 6e 67 20 74 68 65 0a 3c 62 3e 75 6e 64 6f 3c  ing the.<b>undo<
3cf0: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2e 0a 3c 2f 70  /b> command..</p
3d00: 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a  ></li>..<li><p>.
3d10: 52 65 70 65 61 74 20 61 6c 6c 20 6f 66 20 74 68  Repeat all of th
3d20: 65 20 61 62 6f 76 65 20 75 6e 74 69 6c 20 79 6f  e above until yo
3d30: 75 20 68 61 76 65 20 67 65 6e 65 72 61 74 65 64  u have generated
3d40: 20 67 72 65 61 74 20 73 6f 66 74 77 61 72 65 2e   great software.
3d50: 0a 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c 2f 6f 6c 3e  .</p></li>.</ol>
3d60: 0a 0a 3c 68 32 3e 35 2e 30 20 53 65 74 74 69 6e  ..<h2>5.0 Settin
3d70: 67 20 55 70 20 41 20 46 6f 73 73 69 6c 20 53 65  g Up A Fossil Se
3d80: 72 76 65 72 3c 2f 68 32 3e 0a 0a 3c 70 3e 57 69  rver</h2>..<p>Wi
3d90: 74 68 20 6f 74 68 65 72 20 63 6f 6e 66 69 67 75  th other configu
3da0: 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e  ration managemen
3db0: 74 20 73 6f 66 74 77 61 72 65 2c 20 73 65 74 74  t software, sett
3dc0: 69 6e 67 20 75 70 20 61 20 73 65 72 76 65 72 20  ing up a server 
3dd0: 69 73 0a 61 20 6c 6f 74 20 6f 66 20 77 6f 72 6b  is.a lot of work
3de0: 20 61 6e 64 20 6e 6f 72 6d 61 6c 6c 79 20 74 61   and normally ta
3df0: 6b 65 73 20 74 69 6d 65 2c 20 70 61 74 69 65 6e  kes time, patien
3e00: 63 65 2c 20 61 6e 64 20 61 20 6c 6f 74 20 6f 66  ce, and a lot of
3e10: 20 73 79 73 74 65 6d 0a 6b 6e 6f 77 6c 65 64 67   system.knowledg
3e20: 65 2e 20 20 46 6f 73 73 69 6c 20 69 73 20 64 65  e.  Fossil is de
3e30: 73 69 67 6e 65 64 20 74 6f 20 61 76 6f 69 64 20  signed to avoid 
3e40: 74 68 69 73 20 66 72 75 73 74 72 61 74 69 6f 6e  this frustration
3e50: 2e 20 20 53 65 74 74 69 6e 67 20 75 70 0a 61 20  .  Setting up.a 
3e60: 73 65 72 76 65 72 20 77 69 74 68 20 66 6f 73 73  server with foss
3e70: 69 6c 20 69 73 20 72 69 64 69 63 75 6c 6f 75 73  il is ridiculous
3e80: 6c 79 20 65 61 73 79 2e 20 20 59 6f 75 20 68 61  ly easy.  You ha
3e90: 76 65 20 74 68 72 65 65 20 6f 70 74 69 6f 6e 73  ve three options
3ea0: 3a 3c 2f 70 3e 0a 0a 3c 6f 6c 3e 0a 3c 6c 69 3e  :</p>..<ol>.<li>
3eb0: 3c 70 3e 3c 62 3e 53 65 74 74 69 6e 67 20 75 70  <p><b>Setting up
3ec0: 20 61 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 20 73   a stand-alone s
3ed0: 65 72 76 65 72 3c 2f 62 3e 3c 2f 70 3e 0a 0a 3c  erver</b></p>..<
3ee0: 70 3e 46 72 6f 6d 20 77 69 74 68 69 6e 20 79 6f  p>From within yo
3ef0: 75 72 20 73 6f 75 72 63 65 20 74 72 65 65 20 6a  ur source tree j
3f00: 75 73 74 20 75 73 65 20 74 68 65 20 3c 62 3e 73  ust use the <b>s
3f10: 65 72 76 65 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  erver</b> comman
3f20: 64 20 61 6e 64 0a 66 6f 73 73 69 6c 20 77 69 6c  d and.fossil wil
3f30: 6c 20 73 74 61 72 74 20 6c 69 73 74 65 6e 69 6e  l start listenin
3f40: 67 20 66 6f 72 20 69 6e 63 6f 6d 69 6e 67 20 72  g for incoming r
3f50: 65 71 75 65 73 74 73 20 6f 6e 20 54 43 50 20 70  equests on TCP p
3f60: 6f 72 74 20 38 30 38 30 2e 0a 59 6f 75 20 63 61  ort 8080..You ca
3f70: 6e 20 70 6f 69 6e 74 20 79 6f 75 72 20 77 65 62  n point your web
3f80: 62 72 6f 77 73 65 72 20 61 74 20 3c 61 20 68 72  browser at <a hr
3f90: 65 66 3d 22 68 74 74 70 3a 2f 2f 6c 6f 63 61 6c  ef="http://local
3fa0: 68 6f 73 74 3a 38 30 38 30 2f 22 3e 0a 68 74 74  host:8080/">.htt
3fb0: 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74 3a 38 30  p://localhost:80
3fc0: 38 30 2f 3c 2f 61 3e 20 61 6e 64 20 62 65 67 69  80/</a> and begi
3fd0: 6e 20 65 78 70 6c 6f 72 69 6e 67 2e 20 20 4f 72  n exploring.  Or
3fe0: 20 79 6f 75 72 20 63 6f 77 6f 72 6b 65 72 73 0a   your coworkers.
3ff0: 63 61 6e 20 64 6f 20 70 75 73 68 65 73 20 6f 72  can do pushes or
4000: 20 70 75 6c 6c 73 20 61 67 61 69 6e 73 74 20 79   pulls against y
4010: 6f 75 72 20 73 65 72 76 65 72 2e 20 20 55 73 65  our server.  Use
4020: 20 74 68 65 20 3c 62 3e 2d 2d 70 6f 72 74 3c 2f   the <b>--port</
4030: 62 3e 0a 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65  b>.option to the
4040: 20 73 65 72 76 65 72 20 63 6f 6d 6d 61 6e 64 20   server command 
4050: 74 6f 20 73 70 65 63 69 66 79 20 61 20 64 69 66  to specify a dif
4060: 66 65 72 65 6e 74 20 54 43 50 20 70 6f 72 74 2e  ferent TCP port.
4070: 20 20 49 66 0a 79 6f 75 20 64 6f 20 6e 6f 74 20    If.you do not 
4080: 68 61 76 65 20 61 20 6c 6f 63 61 6c 20 73 6f 75  have a local sou
4090: 72 63 65 20 74 72 65 65 2c 20 75 73 65 20 74 68  rce tree, use th
40a0: 65 20 3c 62 3e 2d 52 3c 2f 62 3e 20 63 6f 6d 6d  e <b>-R</b> comm
40b0: 61 6e 64 2d 6c 69 6e 65 0a 6f 70 74 69 6f 6e 20  and-line.option 
40c0: 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 72  to specify the r
40d0: 65 70 6f 73 69 74 6f 72 79 20 66 69 6c 65 2e 3c  epository file.<
40e0: 2f 70 3e 0a 0a 3c 70 3e 41 20 73 74 61 6e 64 2d  /p>..<p>A stand-
40f0: 61 6c 6f 6e 65 20 73 65 72 76 65 72 20 69 73 20  alone server is 
4100: 61 20 67 72 65 61 74 20 77 61 79 20 74 6f 20 73  a great way to s
4110: 65 74 20 6f 66 20 74 72 61 6e 73 69 65 6e 74 20  et of transient 
4120: 63 6f 6e 6e 65 63 74 69 6f 6e 73 0a 62 65 74 77  connections.betw
4130: 65 65 6e 20 63 6f 77 6f 72 6b 65 72 73 20 66 6f  een coworkers fo
4140: 72 20 64 6f 69 6e 67 20 71 75 69 63 6b 20 70 75  r doing quick pu
4150: 73 68 65 73 20 6f 72 20 70 75 6c 6c 73 2e 20 20  shes or pulls.  
4160: 42 75 74 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f  But you can also
4170: 0a 73 65 74 20 75 70 20 61 20 70 65 72 6d 61 6e  .set up a perman
4180: 65 6e 74 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 20  ent stand-alone 
4190: 73 65 72 76 65 72 20 69 66 20 79 6f 75 20 70 72  server if you pr
41a0: 65 66 65 72 2e 20 20 4a 75 73 74 20 6d 61 6b 65  efer.  Just make
41b0: 0a 61 72 72 61 6e 67 65 6d 65 6e 74 73 20 66 6f  .arrangements fo
41c0: 72 20 66 6f 73 73 69 6c 20 74 6f 20 62 65 20 6c  r fossil to be l
41d0: 61 75 6e 63 68 65 64 20 77 69 74 68 20 61 70 70  aunched with app
41e0: 72 6f 70 72 69 61 74 65 20 61 72 67 75 6d 65 6e  ropriate argumen
41f0: 74 73 0a 61 66 74 65 72 20 65 76 65 72 79 20 72  ts.after every r
4200: 65 62 6f 6f 74 2e 3c 2f 70 3e 0a 3c 2f 6c 69 3e  eboot.</p>.</li>
4210: 0a 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 53 65 74 74  ..<li><p><b>Sett
4220: 69 6e 67 20 75 70 20 61 20 43 47 49 20 73 65 72  ing up a CGI ser
4230: 76 65 72 3c 2f 62 3e 3c 2f 70 3e 0a 0a 3c 70 3e  ver</b></p>..<p>
4240: 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 77 65  If you have a we
4250: 62 73 65 72 76 65 72 20 72 75 6e 6e 69 6e 67 20  bserver running 
4260: 6f 6e 20 79 6f 75 72 20 6d 61 63 68 69 6e 65 20  on your machine 
4270: 61 6c 72 65 61 64 79 2c 20 79 6f 75 20 63 61 6e  already, you can
4280: 0a 73 65 74 20 75 70 20 66 6f 73 73 69 6c 20 74  .set up fossil t
4290: 6f 20 62 65 20 72 75 6e 20 66 72 6f 6d 20 43 47  o be run from CG
42a0: 49 2e 20 20 53 69 6d 70 6c 79 20 63 72 65 61 74  I.  Simply creat
42b0: 65 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20  e an executable 
42c0: 73 63 72 69 70 74 0a 74 68 61 74 20 6c 6f 6f 6b  script.that look
42d0: 73 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65  s something like
42e0: 20 74 68 69 73 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f   this:</p>..<blo
42f0: 63 6b 71 75 6f 74 65 3e 3c 70 72 65 3e 0a 23 21  ckquote><pre>.#!
4300: 2f 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e 2f 66  /usr/local/bin/f
4310: 6f 73 73 69 6c 0a 72 65 70 6f 73 69 74 6f 72 79  ossil.repository
4320: 3a 20 2f 68 6f 6d 65 2f 6d 65 2f 62 69 67 70 72  : /home/me/bigpr
4330: 6f 6a 65 63 74 2e 66 6f 73 73 69 6c 0a 3c 2f 70  oject.fossil.</p
4340: 72 65 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e  re></blockquote>
4350: 0a 0a 3c 70 3e 45 64 69 74 20 74 68 69 73 20 73  ..<p>Edit this s
4360: 63 72 69 70 74 20 74 6f 20 75 73 65 20 77 68 61  cript to use wha
4370: 74 65 76 65 72 20 70 61 74 68 6e 61 6d 65 73 20  tever pathnames 
4380: 61 72 65 20 61 70 70 72 6f 70 72 69 61 74 65 20  are appropriate 
4390: 66 6f 72 0a 79 6f 75 72 20 70 72 6f 6a 65 63 74  for.your project
43a0: 2e 20 20 54 68 65 6e 20 70 6f 69 6e 74 20 79 6f  .  Then point yo
43b0: 75 72 20 77 65 62 62 72 6f 77 73 65 72 20 61 74  ur webbrowser at
43c0: 20 74 68 65 20 73 63 72 69 70 74 20 61 6e 64 20   the script and 
43d0: 6f 66 66 20 79 6f 75 0a 67 6f 2e 3c 2f 70 3e 3c  off you.go.</p><
43e0: 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e  /li>..<li><p><b>
43f0: 53 65 74 74 69 6e 67 20 75 70 20 61 6e 20 69 6e  Setting up an in
4400: 65 74 64 20 73 65 72 76 65 72 3c 2f 62 3e 3c 2f  etd server</b></
4410: 70 3e 0a 0a 3c 70 3e 49 66 20 79 6f 75 20 68 61  p>..<p>If you ha
4420: 76 65 20 69 6e 65 74 64 20 6f 72 20 78 69 6e 65  ve inetd or xine
4430: 74 64 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 79 6f  td running on yo
4440: 75 72 20 73 79 73 74 65 6d 2c 20 79 6f 75 20 63  ur system, you c
4450: 61 6e 20 73 65 74 0a 74 68 6f 73 65 20 73 65 72  an set.those ser
4460: 76 69 63 65 73 20 75 70 20 74 6f 20 6c 61 75 6e  vices up to laun
4470: 63 68 20 66 6f 73 73 69 6c 20 74 6f 20 64 65 61  ch fossil to dea
4480: 6c 20 77 69 74 68 20 69 6e 62 6f 75 6e 64 20 54  l with inbound T
4490: 43 50 2f 49 50 20 63 6f 6e 6e 65 63 74 69 6f 6e  CP/IP connection
44a0: 73 0a 6f 6e 20 77 68 61 74 65 76 65 72 20 70 6f  s.on whatever po
44b0: 72 74 20 79 6f 75 20 77 61 6e 74 2e 20 20 53 65  rt you want.  Se
44c0: 74 20 75 70 20 69 6e 65 74 64 20 6f 72 20 78 69  t up inetd or xi
44d0: 6e 65 74 64 20 74 6f 20 6c 61 75 6e 63 68 20 66  netd to launch f
44e0: 6f 73 73 69 6c 0a 6c 69 6b 65 20 74 68 69 73 3a  ossil.like this:
44f0: 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74  </p>..<blockquot
4500: 65 3e 3c 70 72 65 3e 0a 2f 75 73 72 2f 6c 6f 63  e><pre>./usr/loc
4510: 61 6c 2f 62 69 6e 2f 66 6f 73 73 69 6c 20 68 74  al/bin/fossil ht
4520: 74 70 20 2f 68 6f 6d 65 2f 6d 65 2f 62 69 67 70  tp /home/me/bigp
4530: 72 6f 6a 65 63 74 2e 66 6f 73 73 69 6c 0a 3c 2f  roject.fossil.</
4540: 70 72 65 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65  pre></blockquote
4550: 3e 0a 0a 3c 70 3e 41 73 20 62 65 66 6f 72 65 2c  >..<p>As before,
4560: 20 63 68 61 6e 67 65 20 74 68 65 20 66 69 6c 65   change the file
4570: 6e 61 6d 65 73 20 74 6f 20 77 68 61 74 65 76 65  names to whateve
4580: 72 20 69 73 20 61 70 70 72 6f 70 72 69 61 74 65  r is appropriate
4590: 20 66 6f 72 0a 79 6f 75 72 20 73 79 73 74 65 6d   for.your system
45a0: 2e 20 20 59 6f 75 20 63 61 6e 20 68 61 76 65 20  .  You can have 
45b0: 66 6f 73 73 69 6c 20 72 75 6e 20 61 73 20 61 6e  fossil run as an
45c0: 79 20 75 73 65 72 20 74 68 61 74 20 68 61 73 20  y user that has 
45d0: 77 72 69 74 65 0a 70 65 72 6d 69 73 73 69 6f 6e  write.permission
45e0: 20 6f 6e 20 74 68 65 20 72 65 70 6f 73 69 74 6f   on the reposito
45f0: 72 79 20 61 6e 64 20 6f 6e 20 74 68 65 20 64 69  ry and on the di
4600: 72 65 63 74 6f 72 79 20 74 68 61 74 20 63 6f 6e  rectory that con
4610: 74 61 69 6e 73 20 74 68 65 0a 72 65 70 6f 73 69  tains the.reposi
4620: 74 6f 72 79 2e 20 20 42 75 74 20 69 74 20 69 73  tory.  But it is
4630: 20 73 61 66 65 72 20 74 6f 20 72 75 6e 20 66 6f   safer to run fo
4640: 73 73 69 6c 20 61 73 20 72 6f 6f 74 2e 20 20 57  ssil as root.  W
4650: 68 65 6e 20 66 6f 73 73 69 6c 0a 73 65 65 73 20  hen fossil.sees 
4660: 74 68 61 74 20 69 74 20 69 73 20 72 75 6e 6e 69  that it is runni
4670: 6e 67 20 61 73 20 72 6f 6f 74 2c 20 69 74 20 61  ng as root, it a
4680: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 70 75 74  utomatically put
4690: 73 20 69 74 73 65 6c 66 20 69 6e 74 6f 0a 61 20  s itself into.a 
46a0: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
46b0: 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67  en.wikipedia.org
46c0: 2f 77 69 6b 69 2f 43 68 72 6f 6f 74 22 3e 63 68  /wiki/Chroot">ch
46d0: 72 6f 6f 74 20 6a 61 69 6c 3c 2f 61 3e 20 61 6e  root jail</a> an
46e0: 64 0a 64 72 6f 70 73 20 61 6c 6c 20 70 72 69 76  d.drops all priv
46f0: 69 6c 65 67 65 73 20 70 72 69 6f 72 20 74 6f 20  ileges prior to 
4700: 72 65 61 64 69 6e 67 20 61 6e 79 20 69 6e 66 6f  reading any info
4710: 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65  rmation from the
4720: 20 63 6c 69 65 6e 74 2e 0a 53 69 6e 63 65 20 66   client..Since f
4730: 6f 73 73 69 6c 20 69 73 20 61 20 73 74 61 6e 64  ossil is a stand
4740: 2d 61 6c 6f 6e 65 20 70 72 6f 67 72 61 6d 2c 20  -alone program, 
4750: 79 6f 75 20 64 6f 20 6e 6f 74 20 6e 65 65 64 20  you do not need 
4760: 74 6f 20 70 75 74 20 61 6e 79 74 68 69 6e 67 0a  to put anything.
4770: 69 6e 20 74 68 65 20 63 68 72 6f 6f 74 20 6a 61  in the chroot ja
4780: 69 6c 20 77 69 74 68 20 66 6f 73 73 69 6c 20 69  il with fossil i
4790: 6e 20 6f 72 64 65 72 20 66 6f 72 20 69 74 20 74  n order for it t
47a0: 6f 20 64 6f 20 69 74 73 20 6a 6f 62 2e 3c 2f 70  o do its job.</p
47b0: 3e 0a 3c 2f 6c 69 3e 0a 3c 2f 6f 6c 3e 0a 0a 3c  >.</li>.</ol>..<
47c0: 68 32 3e 36 2e 30 20 52 65 76 69 65 77 20 4f 66  h2>6.0 Review Of
47d0: 20 4b 65 79 20 43 6f 6e 63 65 70 74 73 3c 2f 68   Key Concepts</h
47e0: 32 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 54 68 65  2>..<ul>.<li>The
47f0: 20 3c 62 3e 66 6f 73 73 69 6c 3c 2f 62 3e 20 70   <b>fossil</b> p
4800: 72 6f 67 72 61 6d 20 69 73 20 61 20 73 65 6c 66  rogram is a self
4810: 2d 63 6f 6e 74 61 69 6e 65 64 20 73 74 61 6e 64  -contained stand
4820: 2d 61 6c 6f 6e 65 20 65 78 65 63 75 74 61 62 6c  -alone executabl
4830: 65 2e 0a 20 20 20 20 4a 75 73 74 20 70 75 74 20  e..    Just put 
4840: 69 74 20 73 6f 6d 65 77 68 65 72 65 20 6f 6e 20  it somewhere on 
4850: 79 6f 75 72 20 50 41 54 48 20 74 6f 20 69 6e 73  your PATH to ins
4860: 74 61 6c 6c 20 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c  tall it.</li>.<l
4870: 69 3e 55 73 65 20 74 68 65 20 3c 62 3e 63 6c 6f  i>Use the <b>clo
4880: 6e 65 3c 2f 62 3e 20 6f 72 20 3c 62 3e 6e 65 77  ne</b> or <b>new
4890: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 73 20 74 6f  </b> commands to
48a0: 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 72 65   create a new re
48b0: 70 6f 73 69 74 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c  pository.</li>.<
48c0: 6c 69 3e 55 73 65 20 74 68 65 20 3c 62 3e 6f 70  li>Use the <b>op
48d0: 65 6e 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74  en</b> command t
48e0: 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 73  o create a new s
48f0: 6f 75 72 63 65 20 74 72 65 65 2e 3c 2f 6c 69 3e  ource tree.</li>
4900: 0a 3c 6c 69 3e 55 73 65 20 74 68 65 20 3c 62 3e  .<li>Use the <b>
4910: 61 64 64 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 72  add</b> and <b>r
4920: 6d 3c 2f 62 3e 20 6f 72 20 3c 62 3e 64 65 6c 65  m</b> or <b>dele
4930: 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 73 20  te</b> commands 
4940: 74 6f 20 61 64 64 20 61 6e 64 0a 20 20 20 20 72  to add and.    r
4950: 65 6d 6f 76 65 20 66 69 6c 65 73 20 66 72 6f 6d  emove files from
4960: 20 74 68 65 20 6c 6f 63 61 6c 20 73 6f 75 72 63   the local sourc
4970: 65 20 74 72 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e tree.</li>.<li
4980: 3e 55 73 65 20 74 68 65 20 3c 62 3e 63 6f 6d 6d  >Use the <b>comm
4990: 69 74 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 74  it</b> command t
49a0: 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 62  o create a new b
49b0: 61 73 65 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c  aseline.</li>.<l
49c0: 69 3e 55 73 65 20 74 68 65 20 3c 62 3e 75 70 64  i>Use the <b>upd
49d0: 61 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20  ate</b> command 
49e0: 74 6f 20 6d 65 72 67 65 20 69 6e 20 63 68 61 6e  to merge in chan
49f0: 67 65 73 20 66 72 6f 6d 20 6f 74 68 65 72 73 2e  ges from others.
4a00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 62  </li>.<li>The <b
4a10: 3e 70 75 73 68 3c 2f 62 3e 20 61 6e 64 20 3c 62  >push</b> and <b
4a20: 3e 70 75 6c 6c 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  >pull</b> comman
4a30: 64 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74  ds can be used t
4a40: 6f 20 73 68 61 72 65 20 63 68 61 6e 67 65 73 0a  o share changes.
4a50: 20 20 20 20 6d 61 6e 75 61 6c 6c 79 2c 20 62 75      manually, bu
4a60: 74 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 68  t these things h
4a70: 61 70 70 65 6e 20 61 75 74 6f 6d 61 74 69 63 61  appen automatica
4a80: 6c 6c 79 20 69 6e 20 74 68 65 20 64 65 66 61 75  lly in the defau
4a90: 6c 74 0a 20 20 20 20 61 75 74 6f 73 79 6e 63 20  lt.    autosync 
4aa0: 6d 6f 64 65 2e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e  mode.</li>.</ul>
4ab0: 0a                                               .