libfossil  Hex Artifact Content

Artifact 582cf57813cf8864a636f686d84b29839764cd65:

Wiki page [f-tools] by stephan 2014-05-30 18:32:29.
0000: 44 20 32 30 31 34 2d 30 35 2d 33 30 54 31 38 3a  D 2014-05-30T18:
0010: 33 32 3a 32 39 2e 30 35 31 0a 4c 20 66 2d 74 6f  32:29.051.L f-to
0020: 6f 6c 73 0a 50 20 38 63 35 34 35 65 32 35 62 36  ols.P 8c545e25b6
0030: 32 34 36 32 38 61 38 63 33 35 61 32 61 37 36 35  24628a8c35a2a765
0040: 38 63 61 32 35 35 62 66 61 35 38 64 35 30 0a 55  8ca255bfa58d50.U
0050: 20 73 74 65 70 68 61 6e 0a 57 20 31 32 34 39 38   stephan.W 12498
0060: 0a 3c 68 31 3e 54 68 65 20 66 2d 74 6f 6f 6c 73  .<h1>The f-tools
0070: 3c 2f 68 31 3e 0d 0a 0d 0a 54 68 65 20 73 6f 75  </h1>....The sou
0080: 72 63 65 20 74 72 65 65 20 63 6f 6e 74 61 69 6e  rce tree contain
0090: 73 20 61 20 66 65 77 20 74 65 73 74 2f 64 65 6d  s a few test/dem
00a0: 6f 20 61 70 70 73 20 77 68 69 63 68 20 61 72 65  o apps which are
00b0: 20 6e 61 6d 65 64 20 3c 74 74 3e 66 2d 73 6f 6d   named <tt>f-som
00c0: 65 74 68 69 6e 67 3c 2f 74 74 3e 20 28 74 68 65  ething</tt> (the
00d0: 20 22 66 22 20 69 73 20 66 6f 72 20 22 66 6f 73   "f" is for "fos
00e0: 73 69 6c 22 2c 20 6f 66 20 63 6f 75 72 73 65 29  sil", of course)
00f0: 2e 20 43 6f 6c 6c 65 63 74 69 76 65 6c 79 2c 20  . Collectively, 
0100: 74 68 65 73 65 20 61 70 70 73 20 64 65 6d 6f 6e  these apps demon
0110: 73 74 72 61 74 65 20 74 68 65 20 66 75 6e 63 74  strate the funct
0120: 69 6f 6e 61 6c 69 74 79 20 77 68 69 63 68 20 69  ionality which i
0130: 73 20 63 75 72 72 65 6e 74 6c 79 20 70 6f 72 74  s currently port
0140: 65 64 20 69 6e 20 66 72 6f 6d 20 66 6f 73 73 69  ed in from fossi
0150: 6c 28 31 29 20 28 6f 72 20 69 73 20 6e 65 77 29  l(1) (or is new)
0160: 20 61 6e 64 20 77 6f 72 6b 69 6e 67 2e 20 49 66   and working. If
0170: 20 61 20 66 6f 73 73 69 6c 28 31 29 20 66 65 61   a fossil(1) fea
0180: 74 75 72 65 20 69 73 20 6e 6f 74 20 72 65 70 72  ture is not repr
0190: 65 73 65 6e 74 65 64 20 68 65 72 65 2c 20 69 74  esented here, it
01a0: 27 73 20 70 72 6f 62 61 62 6c 79 20 6e 6f 74 20  's probably not 
01b0: 79 65 74 20 70 6f 72 74 65 64 2e 0d 0a 0d 0a 49  yet ported.....I
01c0: 6e 20 61 6c 70 68 61 62 65 74 69 63 61 6c 20 6f  n alphabetical o
01d0: 72 64 65 72 3a 0d 0a 0d 0a 20 20 20 2a 20 20 3c  rder:....   *  <
01e0: 74 74 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d  tt>[/finfo?name=
01f0: 66 2d 61 70 70 73 2f 66 2d 61 63 61 74 2e 63 7c  f-apps/f-acat.c|
0200: 66 2d 61 63 61 74 5d 3c 2f 74 74 3e 20 28 22 61  f-acat]</tt> ("a
0210: 72 74 69 66 61 63 74 20 63 61 74 22 29 20 63 61  rtifact cat") ca
0220: 6e 20 6f 75 74 70 75 74 20 61 72 62 69 74 72 61  n output arbitra
0230: 72 79 20 61 72 74 69 66 61 63 74 73 20 66 72 6f  ry artifacts fro
0240: 6d 20 61 20 72 65 70 6f 73 69 74 6f 72 79 2e 0d  m a repository..
0250: 0a 20 20 20 2a 20 20 3c 74 74 3e 5b 2f 66 69 6e  .   *  <tt>[/fin
0260: 66 6f 3f 6e 61 6d 65 3d 66 2d 61 70 70 73 2f 66  fo?name=f-apps/f
0270: 2d 61 64 64 2e 63 7c 66 2d 61 64 64 5d 3c 2f 74  -add.c|f-add]</t
0280: 74 3e 20 71 75 65 75 65 73 20 66 69 6c 65 20 66  t> queues file f
0290: 6f 72 20 61 64 64 69 74 69 6f 6e 20 69 6e 20 74  or addition in t
02a0: 68 65 20 6e 65 78 74 20 63 6f 6d 6d 69 74 2e 0d  he next commit..
02b0: 0a 20 20 20 2a 20 20 3c 74 74 3e 5b 2f 66 69 6e  .   *  <tt>[/fin
02c0: 66 6f 3f 6e 61 6d 65 3d 66 2d 61 70 70 73 2f 66  fo?name=f-apps/f
02d0: 2d 61 64 69 66 66 2e 63 7c 66 2d 61 64 69 66 66  -adiff.c|f-adiff
02e0: 5d 3c 2f 74 74 3e 20 28 22 61 72 74 69 66 61 63  ]</tt> ("artifac
02f0: 74 20 64 69 66 66 22 29 20 63 61 6e 20 6f 75 74  t diff") can out
0300: 70 75 74 20 64 69 66 66 73 20 6f 66 20 61 6e 79  put diffs of any
0310: 20 74 77 6f 20 61 72 62 69 74 72 61 72 79 20 62   two arbitrary b
0320: 6c 6f 62 73 20 66 72 6f 6d 20 61 20 72 65 70 6f  lobs from a repo
0330: 73 69 74 6f 72 79 2e 20 49 74 20 64 6f 65 73 20  sitory. It does 
0340: 6e 6f 74 20 64 6f 20 63 68 65 63 6b 69 6e 2d 6c  not do checkin-l
0350: 65 76 65 6c 20 64 69 66 66 73 2e 20 53 75 70 70  evel diffs. Supp
0360: 6f 72 74 73 20 76 61 72 69 6f 75 73 20 64 69 66  orts various dif
0370: 66 20 67 65 6e 65 72 61 74 69 6f 6e 20 6f 70 74  f generation opt
0380: 69 6f 6e 73 2e 0d 0a 20 20 20 2a 20 20 3c 74 74  ions...   *  <tt
0390: 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66 2d  >[/finfo?name=f-
03a0: 61 70 70 73 2f 66 2d 63 68 65 63 6b 69 6e 2e 63  apps/f-checkin.c
03b0: 7c 66 2d 63 68 65 63 6b 69 6e 5d 3c 2f 74 74 3e  |f-checkin]</tt>
03c0: 20 63 68 65 63 6b 73 20 69 6e 20 66 69 6c 65 20   checks in file 
03d0: 63 68 61 6e 67 65 73 20 74 6f 20 61 20 72 65 70  changes to a rep
03e0: 6f 73 69 74 6f 72 79 2e 20 49 74 20 62 61 73 69  ository. It basi
03f0: 63 61 6c 6c 79 20 77 6f 72 6b 73 20 62 75 74 20  cally works but 
0400: 74 68 65 20 6c 61 63 6b 20 6f 66 20 6e 65 74 77  the lack of netw
0410: 6f 72 6b 20 73 75 70 70 6f 72 74 73 20 6d 65 61  ork supports mea
0420: 6e 73 20 66 6f 73 73 69 6c 28 31 29 20 69 73 20  ns fossil(1) is 
0430: 73 74 69 6c 6c 20 6e 65 65 64 65 64 20 66 6f 72  still needed for
0440: 20 73 79 6e 63 68 69 6e 67 2e 20 54 68 65 72 65   synching. There
0450: 20 69 73 20 6f 6e 65 20 6b 6e 6f 77 6e 20 6c 69   is one known li
0460: 6e 67 65 72 69 6e 67 20 28 63 6f 73 6d 65 74 69  ngering (cosmeti
0470: 63 29 20 62 75 67 20 69 6e 20 74 68 65 20 63 61  c) bug in the ca
0480: 6c 63 75 6c 61 74 69 6f 6e 20 6f 66 20 6c 65 61  lculation of lea
0490: 76 65 73 20 61 66 74 65 72 20 74 68 65 20 63 6f  ves after the co
04a0: 6d 6d 69 74 2c 20 62 75 74 20 69 74 27 73 20 61  mmit, but it's a
04b0: 20 28 73 74 69 6c 6c 20 68 69 64 64 65 6e 29 20   (still hidden) 
04c0: 70 72 6f 67 72 61 6d 20 6c 6f 67 69 63 20 62 75  program logic bu
04d0: 67 2c 20 61 73 20 6f 70 70 6f 73 65 64 20 74 6f  g, as opposed to
04e0: 20 61 20 6d 65 74 61 64 61 74 61 2d 6c 65 76 65   a metadata-leve
04f0: 6c 20 62 75 67 2c 20 6d 65 61 6e 69 6e 67 20 74  l bug, meaning t
0500: 68 61 74 20 69 74 20 64 6f 65 73 6e 27 74 20 72  hat it doesn't r
0510: 65 61 6c 6c 79 20 62 72 65 61 6b 20 61 6e 79 74  eally break anyt
0520: 68 69 6e 67 2e 0d 0a 20 20 20 2a 20 20 3c 74 74  hing...   *  <tt
0530: 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66 2d  >[/finfo?name=f-
0540: 61 70 70 73 2f 66 2d 63 6f 6e 66 69 67 2e 63 7c  apps/f-config.c|
0550: 66 2d 63 6f 6e 66 69 67 5d 3c 2f 74 74 3e 20 6c  f-config]</tt> l
0560: 69 73 74 73 20 61 6e 64 20 6d 6f 64 69 66 69 65  ists and modifie
0570: 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f  s the contents o
0580: 66 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f  f the various co
0590: 6e 66 69 67 75 72 61 74 69 6f 6e 20 74 61 62 6c  nfiguration tabl
05a0: 65 73 20 28 67 6c 6f 62 61 6c 2c 20 72 65 70 6f  es (global, repo
05b0: 2c 20 61 6e 64 20 6c 6f 63 61 6c 20 63 68 65 63  , and local chec
05c0: 6b 6f 75 74 29 2e 0d 0a 20 20 20 2a 20 20 3c 74  kout)...   *  <t
05d0: 74 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66  t>[/finfo?name=f
05e0: 2d 61 70 70 73 2f 66 2d 6c 73 2e 63 7c 66 2d 6c  -apps/f-ls.c|f-l
05f0: 73 5d 3c 2f 74 74 3e 20 6c 69 73 74 73 20 66 69  s]</tt> lists fi
0600: 6c 65 73 20 66 72 6f 6d 20 61 20 72 65 70 6f 73  les from a repos
0610: 69 74 6f 72 79 2e 0d 0a 20 20 20 2a 20 20 3c 74  itory...   *  <t
0620: 74 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66  t>[/finfo?name=f
0630: 2d 61 70 70 73 2f 66 2d 6d 66 70 61 72 73 65 2e  -apps/f-mfparse.
0640: 63 7c 66 2d 6d 66 70 61 72 73 65 5d 3c 2f 74 74  c|f-mfparse]</tt
0650: 3e 20 72 65 61 64 73 20 69 6e 20 46 6f 73 73 69  > reads in Fossi
0660: 6c 20 63 6f 6e 74 72 6f 6c 20 61 72 74 69 66 61  l control artifa
0670: 63 74 73 2c 20 63 6f 6e 76 65 72 74 73 20 74 68  cts, converts th
0680: 65 6d 20 74 6f 20 69 74 73 20 69 6e 74 65 72 6e  em to its intern
0690: 61 6c 20 68 69 67 68 2d 6c 65 76 65 6c 20 66 6f  al high-level fo
06a0: 72 6d 2c 20 61 6e 64 20 73 61 76 65 73 20 74 68  rm, and saves th
06b0: 65 6d 20 62 61 63 6b 20 6f 75 74 20 74 6f 20 61  em back out to a
06c0: 20 66 69 6c 65 2e 20 54 68 69 73 20 69 73 20 75   file. This is u
06d0: 73 65 64 20 66 6f 72 20 74 65 73 74 69 6e 67 20  sed for testing 
06e0: 62 6f 74 68 20 74 68 65 20 6d 61 6e 69 66 65 73  both the manifes
06f0: 74 20 70 61 72 73 69 6e 67 20 61 6e 64 20 67 65  t parsing and ge
0700: 6e 65 72 61 74 69 6f 6e 20 63 6f 64 65 2c 20 74  neration code, t
0710: 6f 20 74 65 73 74 20 72 6f 75 6e 64 2d 74 72 69  o test round-tri
0720: 70 20 66 69 64 65 6c 69 74 79 20 61 6e 64 20 63  p fidelity and c
0730: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74  ompatibility wit
0740: 68 20 66 6f 73 73 69 6c 28 31 29 20 6d 61 6e 69  h fossil(1) mani
0750: 66 65 73 74 73 2e 0d 0a 20 20 20 2a 20 20 3c 74  fests...   *  <t
0760: 74 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66  t>[/finfo?name=f
0770: 2d 61 70 70 73 2f 66 2d 6e 65 77 2e 63 7c 66 2d  -apps/f-new.c|f-
0780: 6e 65 77 5d 3c 2f 74 74 3e 20 63 72 65 61 74 65  new]</tt> create
0790: 73 20 6e 65 77 2f 65 6d 70 74 79 20 72 65 70 6f  s new/empty repo
07a0: 73 69 74 6f 72 79 20 64 61 74 61 62 61 73 65 73  sitory databases
07b0: 2e 0d 0a 20 20 20 2a 20 20 3c 74 74 3e 5b 2f 66  ...   *  <tt>[/f
07c0: 69 6e 66 6f 3f 6e 61 6d 65 3d 66 2d 61 70 70 73  info?name=f-apps
07d0: 2f 66 2d 71 75 65 72 79 2e 63 7c 66 2d 71 75 65  /f-query.c|f-que
07e0: 72 79 5d 3c 2f 74 74 3e 20 72 75 6e 73 20 53 51  ry]</tt> runs SQ
07f0: 4c 20 63 6f 6d 6d 61 6e 64 73 20 61 67 61 69 6e  L commands again
0800: 73 74 20 61 20 72 65 70 6f 2f 63 68 65 63 6b 6f  st a repo/checko
0810: 75 74 20 64 62 2e 20 53 51 4c 20 72 75 6e 20 74  ut db. SQL run t
0820: 68 69 73 20 77 61 79 20 68 61 73 20 61 63 63 65  his way has acce
0830: 73 73 20 74 6f 20 74 68 65 20 5b 44 62 46 75 6e  ss to the [DbFun
0840: 63 74 69 6f 6e 73 7c 66 6f 73 73 69 6c 2d 73 70  ctions|fossil-sp
0850: 65 63 69 66 69 63 20 53 51 4c 20 66 75 6e 63 74  ecific SQL funct
0860: 69 6f 6e 73 5d 2e 20 42 65 20 63 61 72 65 66 75  ions]. Be carefu
0870: 6c 21 0d 0a 20 20 20 2a 20 20 3c 74 74 3e 5b 2f  l!..   *  <tt>[/
0880: 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66 2d 61 70 70  finfo?name=f-app
0890: 73 2f 66 2d 72 65 73 6f 6c 76 65 2e 63 7c 66 2d  s/f-resolve.c|f-
08a0: 72 65 73 6f 6c 76 65 5d 3c 2f 74 74 3e 20 72 65  resolve]</tt> re
08b0: 73 6f 6c 76 65 73 20 73 79 6d 62 6f 6c 69 63 20  solves symbolic 
08c0: 63 68 65 63 6b 69 6e 20 6e 61 6d 65 73 20 28 6c  checkin names (l
08d0: 69 6b 65 20 22 74 72 75 6e 6b 22 2c 20 22 63 75  ike "trunk", "cu
08e0: 72 72 65 6e 74 22 2c 20 61 6e 64 20 22 70 72 65  rrent", and "pre
08f0: 76 22 29 20 61 6e 64 20 70 61 72 74 69 61 6c 20  v") and partial 
0900: 55 55 49 44 73 20 74 6f 20 74 68 65 69 72 20 66  UUIDs to their f
0910: 75 6c 6c 20 55 55 49 44 73 20 61 6e 64 20 52 49  ull UUIDs and RI
0920: 44 73 2e 0d 0a 20 20 20 2a 20 20 3c 74 74 3e 5b  Ds...   *  <tt>[
0930: 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66 2d 61 70  /finfo?name=f-ap
0940: 70 73 2f 66 2d 72 6d 2e 63 7c 66 2d 72 6d 5d 3c  ps/f-rm.c|f-rm]<
0950: 2f 74 74 3e 20 71 75 65 75 65 73 20 66 69 6c 65  /tt> queues file
0960: 73 20 66 6f 72 20 72 65 6d 6f 76 61 6c 20 61 74  s for removal at
0970: 20 74 68 65 20 6e 65 78 74 20 63 6f 6d 6d 69 74   the next commit
0980: 20 6f 72 20 63 61 6e 63 65 6c 73 20 75 6e 63 6f   or cancels unco
0990: 6d 6d 69 74 74 65 64 20 22 61 64 64 22 20 63 6f  mmitted "add" co
09a0: 6d 6d 61 6e 64 73 2e 0d 0a 20 20 20 2a 20 20 3c  mmands...   *  <
09b0: 74 74 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d  tt>[/finfo?name=
09c0: 66 2d 61 70 70 73 2f 66 2d 73 61 6e 69 74 79 2e  f-apps/f-sanity.
09d0: 63 7c 66 2d 73 61 6e 69 74 79 5d 3c 2f 74 74 3e  c|f-sanity]</tt>
09e0: 20 72 75 6e 73 20 61 20 6e 75 6d 62 65 72 20 6f   runs a number o
09f0: 66 20 73 61 6e 69 74 79 20 63 68 65 63 6b 73 20  f sanity checks 
0a00: 6f 6e 20 74 68 65 20 6c 69 62 72 61 72 79 2e 20  on the library. 
0a10: 4c 69 62 72 61 72 79 20 64 65 76 65 6c 6f 70 65  Library develope
0a20: 72 73 20 73 68 6f 75 6c 64 20 72 75 6e 2f 61 6d  rs should run/am
0a30: 65 6e 64 20 74 68 69 73 20 6f 63 63 61 73 69 6f  end this occasio
0a40: 6e 61 6c 6c 79 2e 0d 0a 20 20 20 2a 20 20 3c 74  nally...   *  <t
0a50: 74 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66  t>[/finfo?name=f
0a60: 2d 61 70 70 73 2f 66 2d 73 74 61 74 75 73 2e 63  -apps/f-status.c
0a70: 7c 66 2d 73 74 61 74 75 73 5d 3c 2f 74 74 3e 20  |f-status]</tt> 
0a80: 62 65 68 61 76 65 73 20 6d 6f 73 74 6c 79 20 6c  behaves mostly l
0a90: 69 6b 65 20 66 6f 73 73 69 6c 27 73 20 3c 74 74  ike fossil's <tt
0aa0: 3e 73 74 61 74 75 73 3c 2f 74 74 3e 20 63 6f 6d  >status</tt> com
0ab0: 6d 61 6e 64 2e 0d 0a 20 20 20 2a 20 20 3c 74 74  mand...   *  <tt
0ac0: 3e 5b 2f 66 69 6e 66 6f 3f 6e 61 6d 65 3d 66 2d  >[/finfo?name=f-
0ad0: 61 70 70 73 2f 66 2d 74 61 67 2e 63 7c 66 2d 74  apps/f-tag.c|f-t
0ae0: 61 67 5d 3c 2f 74 74 3e 20 61 64 64 73 20 74 61  ag]</tt> adds ta
0af0: 67 73 20 74 6f 20 61 72 74 69 66 61 63 74 73 2e  gs to artifacts.
0b00: 0d 0a 20 20 20 2a 20 20 3c 74 74 3e 5b 2f 66 69  ..   *  <tt>[/fi
0b10: 6e 66 6f 3f 6e 61 6d 65 3d 66 2d 61 70 70 73 2f  nfo?name=f-apps/
0b20: 66 2d 74 69 6d 65 6c 69 6e 65 2e 63 7c 66 2d 74  f-timeline.c|f-t
0b30: 69 6d 65 6c 69 6e 65 5d 3c 2f 74 74 3e 20 70 72  imeline]</tt> pr
0b40: 6f 76 69 64 65 73 20 61 20 74 69 6d 65 6c 69 6e  ovides a timelin
0b50: 65 20 6f 66 20 72 65 63 65 6e 74 20 72 65 70 6f  e of recent repo
0b60: 73 69 74 6f 72 79 20 61 63 74 69 76 69 74 79 2e  sitory activity.
0b70: 20 0d 0a 20 20 20 2a 20 20 3c 74 74 3e 5b 2f 66   ..   *  <tt>[/f
0b80: 69 6e 66 6f 3f 6e 61 6d 65 3d 66 2d 61 70 70 73  info?name=f-apps
0b90: 2f 66 2d 76 64 69 66 66 2e 63 7c 66 2d 76 64 69  /f-vdiff.c|f-vdi
0ba0: 66 66 5d 3c 2f 74 74 3e 20 28 22 76 65 72 73 69  ff]</tt> ("versi
0bb0: 6f 6e 20 64 69 66 66 22 29 20 67 65 6e 65 72 61  on diff") genera
0bc0: 74 65 73 20 64 69 66 66 73 20 6f 66 20 61 72 62  tes diffs of arb
0bd0: 69 74 72 61 72 79 20 72 65 70 6f 73 69 74 6f 72  itrary repositor
0be0: 79 20 76 65 72 73 69 6f 6e 73 2e 0d 0a 20 20 20  y versions...   
0bf0: 2a 20 20 3c 74 74 3e 5b 2f 66 69 6e 66 6f 3f 6e  *  <tt>[/finfo?n
0c00: 61 6d 65 3d 66 2d 61 70 70 73 2f 66 2d 77 69 6b  ame=f-apps/f-wik
0c10: 69 2e 63 7c 66 2d 77 69 6b 69 5d 3c 2f 74 74 3e  i.c|f-wiki]</tt>
0c20: 20 69 73 20 61 20 67 65 6e 65 72 69 63 20 77 69   is a generic wi
0c30: 6b 69 20 6d 61 6e 69 70 75 6c 61 74 69 6f 6e 20  ki manipulation 
0c40: 74 6f 6f 6c 2c 20 63 61 70 61 62 6c 65 20 6f 66  tool, capable of
0c50: 20 6c 69 73 74 69 6e 67 2c 20 65 78 70 6f 72 74   listing, export
0c60: 69 6e 67 2c 20 61 6e 64 20 69 6d 70 6f 72 74 69  ing, and importi
0c70: 6e 67 20 77 69 6b 69 20 70 61 67 65 73 2e 0d 0a  ng wiki pages...
0c80: 20 20 20 2a 20 20 3c 74 74 3e 5b 2f 66 69 6e 66     *  <tt>[/finf
0c90: 6f 3f 6e 61 6d 65 3d 66 2d 61 70 70 73 2f 66 2d  o?name=f-apps/f-
0ca0: 7a 69 70 2e 63 7c 66 2d 7a 69 70 5d 3c 2f 74 74  zip.c|f-zip]</tt
0cb0: 3e 20 63 72 65 61 74 65 73 20 5a 49 50 20 66 69  > creates ZIP fi
0cc0: 6c 65 73 20 66 72 6f 6d 20 61 20 67 69 76 65 6e  les from a given
0cd0: 20 76 65 72 73 69 6f 6e 20 6f 66 20 72 65 70 6f   version of repo
0ce0: 73 69 74 6f 72 79 20 63 6f 6e 74 65 6e 74 2e 0d  sitory content..
0cf0: 0a 0d 0a 0d 0a 41 6c 6c 20 6f 66 20 74 68 65 73  .....All of thes
0d00: 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 61  e applications a
0d10: 63 63 65 70 74 20 3c 74 74 3e 2d 3f 3c 2f 74 74  ccept <tt>-?</tt
0d20: 3e 2c 20 3c 74 74 3e 2d 2d 68 65 6c 70 3c 2f 74  >, <tt>--help</t
0d30: 74 3e 2c 20 6f 72 20 61 20 66 69 72 73 74 20 6e  t>, or a first n
0d40: 6f 6e 2d 66 6c 61 67 20 61 72 67 75 6d 65 6e 74  on-flag argument
0d50: 20 6f 66 20 3c 74 74 3e 68 65 6c 70 3c 2f 74 74   of <tt>help</tt
0d60: 3e 20 74 6f 20 73 68 6f 77 20 74 68 65 69 72 20  > to show their 
0d70: 68 65 6c 70 20 74 65 78 74 2e 0d 0a 0d 0a 54 68  help text.....Th
0d80: 65 73 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73  ese applications
0d90: 20 70 72 6f 76 69 64 65 20 64 65 6d 6f 6e 73 74   provide demonst
0da0: 72 61 74 69 6f 6e 73 20 6f 66 20 75 73 69 6e 67  rations of using
0db0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 61 6e 64   the library and
0dc0: 20 67 69 76 65 20 64 65 76 73 20 61 20 70 6c 61   give devs a pla
0dd0: 63 65 20 74 6f 20 74 65 73 74 20 6e 65 77 20 66  ce to test new f
0de0: 65 61 74 75 72 65 73 2e 20 3c 74 74 3e 5b 46 6f  eatures. <tt>[Fo
0df0: 73 73 69 6c 41 70 70 7c 66 63 6c 69 5d 3c 2f 74  ssilApp|fcli]</t
0e00: 74 3e 20 70 72 6f 76 69 64 65 73 20 61 20 6d 69  t> provides a mi
0e10: 6e 69 2d 66 72 61 6d 65 77 6f 72 6b 20 77 68 69  ni-framework whi
0e20: 63 68 20 74 61 6b 65 73 20 63 61 72 65 20 6f 66  ch takes care of
0e30: 20 62 6f 6f 74 73 74 72 61 70 70 69 6e 67 20 66   bootstrapping f
0e40: 6f 73 73 69 6c 20 66 6f 72 20 74 68 65 73 65 20  ossil for these 
0e50: 61 70 70 6c 69 63 61 74 69 6f 6e 73 2c 20 6d 61  applications, ma
0e60: 6b 69 6e 67 20 69 74 20 70 72 65 74 74 79 20 73  king it pretty s
0e70: 69 6d 70 6c 65 20 74 6f 20 63 72 65 61 74 65 20  imple to create 
0e80: 6e 65 77 20 6f 6e 65 73 2e 20 66 63 6c 69 20 68  new ones. fcli h
0e90: 61 6e 64 6c 65 73 20 74 68 65 20 43 4c 49 20 70  andles the CLI p
0ea0: 61 72 73 69 6e 67 2c 20 67 6c 6f 62 61 6c 20 66  arsing, global f
0eb0: 6c 61 67 73 2c 20 6f 70 65 6e 69 6e 67 20 6f 66  lags, opening of
0ec0: 20 61 20 72 65 70 6f 2f 63 68 65 63 6b 6f 75 74   a repo/checkout
0ed0: 2c 20 61 6e 64 20 6f 74 68 65 72 20 22 67 65 74  , and other "get
0ee0: 74 69 6e 67 20 73 74 61 72 74 65 64 22 20 62 69  ting started" bi
0ef0: 74 73 2e 20 49 66 20 79 6f 75 27 76 65 20 65 76  ts. If you've ev
0f00: 65 72 20 68 61 63 6b 65 64 20 6f 6e 20 66 6f 73  er hacked on fos
0f10: 73 69 6c 28 31 29 2c 20 61 64 64 69 6e 67 20 61  sil(1), adding a
0f20: 20 6e 65 77 20 66 2d 2a 20 61 70 70 20 69 73 20   new f-* app is 
0f30: 76 65 72 79 20 73 69 6d 69 6c 61 72 20 74 6f 20  very similar to 
0f40: 61 64 64 69 6e 67 20 61 20 6e 65 77 20 63 6f 6d  adding a new com
0f50: 6d 61 6e 64 20 74 6f 20 66 6f 73 73 69 6c 2c 20  mand to fossil, 
0f60: 77 69 74 68 20 6f 6e 6c 79 20 61 20 66 65 77 20  with only a few 
0f70: 6d 6f 72 65 20 6c 69 6e 65 73 20 6f 66 20 62 6f  more lines of bo
0f80: 6f 74 73 74 72 61 70 20 63 6f 64 65 20 28 62 65  otstrap code (be
0f90: 63 61 75 73 65 20 65 61 63 68 20 22 63 6f 6d 6d  cause each "comm
0fa0: 61 6e 64 22 20 69 73 20 69 6e 20 69 74 73 20 6f  and" is in its o
0fb0: 77 6e 20 61 70 70 29 2e 0d 0a 0d 0a 3c 68 32 3e  wn app).....<h2>
0fc0: 44 65 6d 6f 73 3c 2f 68 32 3e 0d 0a 0d 0a 3c 6e  Demos</h2>....<n
0fd0: 6f 77 69 6b 69 3e 3c 70 72 65 3e 0d 0a 23 20 66  owiki><pre>..# f
0fe0: 2d 77 69 6b 69 20 6c 73 0d 0a 54 69 6d 65 73 74  -wiki ls..Timest
0ff0: 61 6d 70 20 20 20 20 20 20 20 20 20 20 20 55 55  amp           UU
1000: 49 44 20 20 20 20 20 4e 61 6d 65 0d 0a 32 30 31  ID     Name..201
1010: 33 2d 30 38 2d 32 32 40 32 32 3a 32 36 3a 35 39  3-08-22@22:26:59
1020: 20 38 36 61 66 64 61 61 35 20 41 6d 61 6c 67 61   86afdaa5 Amalga
1030: 6d 61 74 69 6f 6e 42 75 69 6c 64 0d 0a 32 30 31  mationBuild..201
1040: 33 2d 30 38 2d 32 33 40 31 38 3a 33 37 3a 32 36  3-08-23@18:37:26
1050: 20 65 34 35 31 39 32 36 66 20 62 75 69 6c 64 69   e451926f buildi
1060: 6e 67 0d 0a 32 30 31 33 2d 30 38 2d 32 32 40 31  ng..2013-08-22@1
1070: 34 3a 35 34 3a 34 37 20 30 34 32 62 33 30 64 66  4:54:47 042b30df
1080: 20 64 6f 77 6e 6c 6f 61 64 0d 0a 32 30 31 33 2d   download..2013-
1090: 30 38 2d 32 34 40 31 31 3a 32 39 3a 33 34 20 30  08-24@11:29:34 0
10a0: 66 30 38 33 33 37 30 20 66 2d 74 6f 6f 6c 73 0d  f083370 f-tools.
10b0: 0a 2e 2e 2e 0d 0a 0d 0a 23 20 66 2d 74 61 67 20  ........# f-tag 
10c0: 2d 61 20 74 69 70 20 2d 74 20 64 65 6d 6f 2d 74  -a tip -t demo-t
10d0: 61 67 20 2d 76 20 22 64 65 6d 6f 20 66 6f 72 20  ag -v "demo for 
10e0: 70 72 6f 73 70 65 72 69 74 79 20 70 75 72 70 6f  prosperity purpo
10f0: 73 65 73 22 20 2d 2d 74 72 61 63 65 2d 73 71 6c  ses" --trace-sql
1100: 20 0d 0a 53 51 4c 20 54 52 41 43 45 20 23 31 3a   ..SQL TRACE #1:
1110: 20 53 45 4c 45 43 54 20 27 2f 68 6f 6d 65 2f 73   SELECT '/home/s
1120: 74 65 70 68 61 6e 2f 63 76 73 2f 66 6f 73 73 69  tephan/cvs/fossi
1130: 6c 2f 66 32 27 20 7c 7c 20 27 2f 27 20 7c 7c 20  l/f2' || '/' || 
1140: 76 61 6c 75 65 20 46 52 4f 4d 20 76 76 61 72 20  value FROM vvar 
1150: 57 48 45 52 45 20 6e 61 6d 65 3d 27 72 65 70 6f  WHERE name='repo
1160: 73 69 74 6f 72 79 27 3b 0d 0a 53 51 4c 20 54 52  sitory';..SQL TR
1170: 41 43 45 20 23 32 3a 20 41 54 54 41 43 48 20 44  ACE #2: ATTACH D
1180: 41 54 41 42 41 53 45 20 27 2f 68 6f 6d 65 2f 73  ATABASE '/home/s
1190: 74 65 70 68 61 6e 2f 63 76 73 2f 66 6f 73 73 69  tephan/cvs/fossi
11a0: 6c 2f 66 32 2e 66 73 6c 27 20 41 53 20 72 65 70  l/f2.fsl' AS rep
11b0: 6f 3b 0d 0a 53 51 4c 20 54 52 41 43 45 20 23 33  o;..SQL TRACE #3
11c0: 3a 20 53 45 4c 45 43 54 20 6a 75 6c 69 61 6e 64  : SELECT juliand
11d0: 61 79 28 27 6e 6f 77 27 29 3b 0d 0a 53 51 4c 20  ay('now');..SQL 
11e0: 54 52 41 43 45 20 23 34 3a 20 53 45 4c 45 43 54  TRACE #4: SELECT
11f0: 20 6f 62 6a 69 64 20 46 52 4f 4d 20 65 76 65 6e   objid FROM even
1200: 74 20 57 48 45 52 45 20 74 79 70 65 3d 27 63 69  t WHERE type='ci
1210: 27 20 4f 52 44 45 52 20 42 59 20 65 76 65 6e 74  ' ORDER BY event
1220: 2e 6d 74 69 6d 65 20 44 45 53 43 20 4c 49 4d 49  .mtime DESC LIMI
1230: 54 20 31 3b 0d 0a 53 51 4c 20 54 52 41 43 45 20  T 1;..SQL TRACE 
1240: 23 35 3a 20 53 45 4c 45 43 54 20 75 75 69 64 20  #5: SELECT uuid 
1250: 46 52 4f 4d 20 62 6c 6f 62 20 57 48 45 52 45 20  FROM blob WHERE 
1260: 72 69 64 3d 31 32 32 36 3b 0d 0a 53 51 4c 20 54  rid=1226;..SQL T
1270: 52 41 43 45 20 23 36 3a 20 53 45 4c 45 43 54 20  RACE #6: SELECT 
1280: 73 74 72 66 74 69 6d 65 28 27 25 59 2d 25 6d 2d  strftime('%Y-%m-
1290: 25 64 54 25 48 3a 25 4d 3a 25 66 27 2c 32 34 35  %dT%H:%M:%f',245
12a0: 36 35 31 37 2e 31 31 37 35 35 39 29 3b 0d 0a 53  6517.117559);..S
12b0: 51 4c 20 54 52 41 43 45 20 23 37 3a 20 42 45 47  QL TRACE #7: BEG
12c0: 49 4e 20 54 52 41 4e 53 41 43 54 49 4f 4e 3b 0d  IN TRANSACTION;.
12d0: 0a 2e 2e 2e 0d 0a 53 51 4c 20 54 52 41 43 45 20  ......SQL TRACE 
12e0: 23 32 31 3a 20 43 4f 4d 4d 49 54 3b 0d 0a 53 51  #21: COMMIT;..SQ
12f0: 4c 20 54 52 41 43 45 20 23 32 32 3a 20 44 45 54  L TRACE #22: DET
1300: 41 43 48 20 44 41 54 41 42 41 53 45 20 72 65 70  ACH DATABASE rep
1310: 6f 3b 0d 0a 0d 0a 0d 0a 23 20 66 2d 74 69 6d 65  o;......# f-time
1320: 6c 69 6e 65 20 2d 6e 20 31 0d 0a 67 20 20 5b 64  line -n 1..g  [d
1330: 61 61 30 36 33 35 38 32 63 32 63 5d 20 40 20 32  aa063582c2c] @ 2
1340: 30 31 33 2d 30 38 2d 31 32 20 31 36 3a 34 39 3a  013-08-12 16:49:
1350: 31 37 20 62 79 20 5b 73 74 65 70 68 61 6e 5d 0d  17 by [stephan].
1360: 0a 09 45 64 69 74 20 5b 32 61 38 34 61 64 33 39  ..Edit [2a84ad39
1370: 5d 3a 20 41 64 64 20 22 64 65 6d 6f 2d 74 61 67  ]: Add "demo-tag
1380: 22 20 77 69 74 68 20 76 61 6c 75 65 20 22 64 65  " with value "de
1390: 6d 6f 20 66 6f 72 20 70 72 6f 73 70 65 72 69 74  mo for prosperit
13a0: 79 20 70 75 72 70 6f 73 65 73 22 2e 0d 0a 0d 0a  y purposes".....
13b0: 0d 0a 23 20 66 2d 74 69 6d 65 6c 69 6e 65 20 2d  ..# f-timeline -
13c0: 6e 20 31 20 2d 2d 74 72 61 63 65 2d 73 71 6c 0d  n 1 --trace-sql.
13d0: 0a 53 51 4c 20 54 52 41 43 45 20 23 31 3a 20 53  .SQL TRACE #1: S
13e0: 45 4c 45 43 54 20 27 2f 68 6f 6d 65 2f 73 74 65  ELECT '/home/ste
13f0: 70 68 61 6e 2f 63 76 73 2f 66 6f 73 73 69 6c 2f  phan/cvs/fossil/
1400: 66 32 27 20 7c 7c 20 27 2f 27 20 7c 7c 20 76 61  f2' || '/' || va
1410: 6c 75 65 20 46 52 4f 4d 20 76 76 61 72 20 57 48  lue FROM vvar WH
1420: 45 52 45 20 6e 61 6d 65 3d 27 72 65 70 6f 73 69  ERE name='reposi
1430: 74 6f 72 79 27 3b 0d 0a 53 51 4c 20 54 52 41 43  tory';..SQL TRAC
1440: 45 20 23 32 3a 20 41 54 54 41 43 48 20 44 41 54  E #2: ATTACH DAT
1450: 41 42 41 53 45 20 27 2f 68 6f 6d 65 2f 73 74 65  ABASE '/home/ste
1460: 70 68 61 6e 2f 63 76 73 2f 66 6f 73 73 69 6c 2f  phan/cvs/fossil/
1470: 66 32 2e 66 73 6c 27 20 41 53 20 72 65 70 6f 3b  f2.fsl' AS repo;
1480: 0d 0a 53 51 4c 20 54 52 41 43 45 20 23 33 3a 20  ..SQL TRACE #3: 
1490: 53 45 4c 45 43 54 20 73 75 62 73 74 72 28 75 75  SELECT substr(uu
14a0: 69 64 2c 31 2c 31 32 29 20 41 53 20 75 75 69 64  id,1,12) AS uuid
14b0: 2c 20 26 6c 74 3b 2e 2e 2e 42 49 47 20 53 4e 49  , &lt;...BIG SNI
14c0: 50 2e 2e 2e 26 67 74 3b 20 4f 52 44 45 52 20 42  P...&gt; ORDER B
14d0: 59 20 65 76 65 6e 74 2e 6d 74 69 6d 65 20 44 45  Y event.mtime DE
14e0: 53 43 20 4c 49 4d 49 54 20 31 3b 0d 0a 67 20 20  SC LIMIT 1;..g  
14f0: 5b 64 61 61 30 36 33 35 38 32 63 32 63 5d 20 40  [daa063582c2c] @
1500: 20 32 30 31 33 2d 30 38 2d 31 32 20 31 36 3a 34   2013-08-12 16:4
1510: 39 3a 31 37 20 62 79 20 5b 73 74 65 70 68 61 6e  9:17 by [stephan
1520: 5d 0d 0a 09 45 64 69 74 20 5b 32 61 38 34 61 64  ]...Edit [2a84ad
1530: 33 39 5d 3a 20 41 64 64 20 22 64 65 6d 6f 2d 74  39]: Add "demo-t
1540: 61 67 22 20 77 69 74 68 20 76 61 6c 75 65 20 22  ag" with value "
1550: 64 65 6d 6f 20 66 6f 72 20 70 72 6f 73 70 65 72  demo for prosper
1560: 69 74 79 20 70 75 72 70 6f 73 65 73 22 2e 0d 0a  ity purposes"...
1570: 53 51 4c 20 54 52 41 43 45 20 23 34 3a 20 44 45  SQL TRACE #4: DE
1580: 54 41 43 48 20 44 41 54 41 42 41 53 45 20 72 65  TACH DATABASE re
1590: 70 6f 3b 0d 0a 0d 0a 0d 0a 23 20 66 2d 72 65 73  po;......# f-res
15a0: 6f 6c 76 65 20 63 75 72 72 65 6e 74 20 70 72 65  olve current pre
15b0: 76 20 0d 0a 62 31 37 30 66 62 32 34 66 65 35 64  v ..b170fb24fe5d
15c0: 39 34 61 35 62 37 66 61 37 61 30 30 61 39 39 31  94a5b7fa7a00a991
15d0: 31 30 38 33 62 66 36 39 62 32 37 62 20 20 20 20  1083bf69b27b    
15e0: 31 34 36 36 20 63 75 72 72 65 6e 74 0d 0a 31 65  1466 current..1e
15f0: 63 39 30 34 66 61 36 61 35 34 62 34 35 62 30 61  c904fa6a54b45b0a
1600: 33 35 63 64 31 34 62 61 62 34 31 61 66 31 33 38  35cd14bab41af138
1610: 35 38 34 65 34 35 20 20 20 20 31 34 36 31 20 70  584e45    1461 p
1620: 72 65 76 0d 0a 3c 2f 70 72 65 3e 3c 2f 6e 6f 77  rev..</pre></now
1630: 69 6b 69 3e 0d 0a 0d 0a 0d 0a 3c 68 32 3e 66 2d  iki>......<h2>f-
1640: 6e 65 77 3c 2f 68 32 3e 0d 0a 0d 0a 3c 74 74 3e  new</h2>....<tt>
1650: 66 2d 6e 65 77 3c 2f 74 74 3e 20 63 61 6e 20 62  f-new</tt> can b
1660: 65 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65  e used to create
1670: 20 61 20 6e 65 77 2c 20 65 6d 70 74 79 20 72 65   a new, empty re
1680: 70 6f 73 69 74 6f 72 79 2c 20 61 6e 61 6c 6f 67  pository, analog
1690: 20 74 6f 20 66 6f 73 73 69 6c 27 73 20 22 6e 65   to fossil's "ne
16a0: 77 22 20 63 6f 6d 6d 61 6e 64 2e 20 49 74 20 68  w" command. It h
16b0: 61 73 20 6f 6e 65 20 66 65 61 74 75 72 65 20 66  as one feature f
16c0: 6f 73 73 69 6c 28 31 29 20 64 6f 65 73 20 6e 6f  ossil(1) does no
16d0: 74 3a 20 69 74 20 61 6c 6c 6f 77 73 20 74 68 65  t: it allows the
16e0: 20 63 6c 69 65 6e 74 20 74 6f 20 73 70 65 63 69   client to speci
16f0: 66 79 20 74 68 65 20 63 6f 6d 6d 69 74 20 6d 65  fy the commit me
1700: 73 73 61 67 65 20 66 6f 72 20 74 68 65 20 22 69  ssage for the "i
1710: 6e 69 74 69 61 6c 20 65 6d 70 74 79 20 63 68 65  nitial empty che
1720: 63 6b 69 6e 2e 22 20 28 53 69 64 65 62 61 72 3a  ckin." (Sidebar:
1730: 20 74 68 65 20 6c 69 62 72 61 72 79 20 68 61 73   the library has
1740: 20 61 20 6d 65 63 68 61 6e 69 73 6d 20 74 6f 20   a mechanism to 
1750: 64 69 73 61 62 6c 65 20 63 72 65 61 74 69 6f 6e  disable creation
1760: 20 6f 66 20 74 68 65 20 69 6e 69 74 69 61 6c 20   of the initial 
1770: 65 6d 70 74 79 20 63 68 65 63 6b 69 6e 2c 20 62  empty checkin, b
1780: 75 74 20 66 6f 73 73 69 6c 2f 6c 69 62 66 6f 73  ut fossil/libfos
1790: 73 69 6c 20 61 72 65 20 6c 61 72 67 65 6c 79 20  sil are largely 
17a0: 75 6e 74 65 73 74 65 64 20 77 69 74 68 20 73 75  untested with su
17b0: 63 68 20 72 65 70 6f 73 2e 29 0d 0a 0d 0a 45 78  ch repos.)....Ex
17c0: 61 6d 70 6c 65 20 75 73 61 67 65 3a 0d 0a 0d 0a  ample usage:....
17d0: 3c 6e 6f 77 69 6b 69 3e 3c 70 72 65 3e 0d 0a 23  <nowiki><pre>..#
17e0: 20 66 2d 6e 65 77 20 2d 6d 20 27 68 69 20 74 68   f-new -m 'hi th
17f0: 65 72 65 27 20 2d 2d 63 6f 6e 66 69 67 20 2e 2e  ere' --config ..
1800: 2f 66 6f 73 73 69 6c 2e 66 73 6c 20 6d 79 2e 66  /fossil.fsl my.f
1810: 73 6c 20 2d 2d 75 73 65 72 20 66 72 65 64 0d 0a  sl --user fred..
1820: 43 6f 70 79 69 6e 67 20 63 6f 6e 66 69 67 75 72  Copying configur
1830: 61 74 69 6f 6e 20 66 72 6f 6d 3a 20 2e 2e 2f 66  ation from: ../f
1840: 6f 73 73 69 6c 2e 66 73 6c 0d 0a 43 72 65 61 74  ossil.fsl..Creat
1850: 65 64 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 6d  ed repository: m
1860: 79 2e 66 73 6c 0d 0a 73 65 72 76 65 72 2d 63 6f  y.fsl..server-co
1870: 64 65 20 20 20 20 3d 20 61 33 64 36 61 63 36 34  de    = a3d6ac64
1880: 34 38 30 31 37 33 38 32 66 61 31 32 37 37 62 62  48017382fa1277bb
1890: 65 65 37 65 37 34 62 39 36 63 65 33 38 35 63 62  ee7e74b96ce385cb
18a0: 0d 0a 70 72 6f 6a 65 63 74 2d 63 6f 64 65 20 20  ..project-code  
18b0: 20 3d 20 65 30 65 33 38 63 34 61 30 66 62 30 31   = e0e38c4a0fb01
18c0: 61 32 65 61 32 37 37 65 64 38 61 66 34 65 35 37  a2ea277ed8af4e57
18d0: 34 32 64 36 38 64 62 64 63 36 30 0d 0a 61 64 6d  42d68dbdc60..adm
18e0: 69 6e 2d 75 73 65 72 20 20 20 20 20 3d 20 66 72  in-user     = fr
18f0: 65 64 20 28 70 61 73 73 77 6f 72 64 3d 30 38 34  ed (password=084
1900: 66 64 64 29 0d 0a 0d 0a 23 20 66 2d 74 69 6d 65  fdd)....# f-time
1910: 6c 69 6e 65 20 2d 52 20 6d 79 2e 66 73 6c 20 0d  line -R my.fsl .
1920: 0a 63 69 20 5b 33 61 36 36 31 64 61 38 36 61 65  .ci [3a661da86ae
1930: 35 5d 20 40 20 32 30 31 33 2d 30 38 2d 32 38 20  5] @ 2013-08-28 
1940: 32 33 3a 33 30 3a 33 39 20 62 79 20 5b 66 72 65  23:30:39 by [fre
1950: 64 5d 20 69 6e 20 62 72 61 6e 63 68 20 5b 74 72  d] in branch [tr
1960: 75 6e 6b 5d 0d 0a 09 68 69 20 74 68 65 72 65 0d  unk]...hi there.
1970: 0a 0d 0a 23 20 66 2d 61 63 61 74 20 74 72 75 6e  ...# f-acat trun
1980: 6b 20 2d 52 20 6d 79 2e 66 73 6c 20 0d 0a 43 20  k -R my.fsl ..C 
1990: 68 69 5c 73 74 68 65 72 65 0d 0a 44 20 32 30 31  hi\sthere..D 201
19a0: 33 2d 30 38 2d 32 38 54 32 31 3a 33 30 3a 33 39  3-08-28T21:30:39
19b0: 2e 30 30 30 0d 0a 52 20 64 34 31 64 38 63 64 39  .000..R d41d8cd9
19c0: 38 66 30 30 62 32 30 34 65 39 38 30 30 39 39 38  8f00b204e9800998
19d0: 65 63 66 38 34 32 37 65 0d 0a 54 20 2a 62 72 61  ecf8427e..T *bra
19e0: 6e 63 68 20 2a 20 74 72 75 6e 6b 0d 0a 54 20 2a  nch * trunk..T *
19f0: 73 79 6d 2d 74 72 75 6e 6b 20 2a 0d 0a 55 20 66  sym-trunk *..U f
1a00: 72 65 64 0d 0a 5a 20 35 32 65 66 32 32 32 65 63  red..Z 52ef222ec
1a10: 35 30 35 63 32 37 36 31 35 64 38 30 61 38 35 35  505c27615d80a855
1a20: 32 36 39 30 32 37 32 0d 0a 0d 0a 3c 2f 6e 6f 77  2690272....</now
1a30: 69 6b 69 3e 3c 2f 70 72 65 3e 0d 0a 0d 0a 3c 68  iki></pre>....<h
1a40: 32 3e 66 2d 74 61 67 3c 2f 68 32 3e 0d 0a 0d 0a  2>f-tag</h2>....
1a50: 66 2d 74 61 67 20 63 61 6e 20 62 65 20 75 73 65  f-tag can be use
1a60: 64 20 74 6f 20 61 64 64 20 61 6e 64 20 63 61 6e  d to add and can
1a70: 63 65 6c 20 74 61 67 73 20 6f 6e 20 61 72 62 69  cel tags on arbi
1a80: 74 72 61 72 79 20 72 65 70 6f 73 69 74 6f 72 79  trary repository
1a90: 20 61 72 74 69 66 61 63 74 73 2e 20 54 61 67 73   artifacts. Tags
1aa0: 20 69 6e 20 66 6f 73 73 69 6c 20 61 72 65 20 61   in fossil are a
1ab0: 63 74 75 61 6c 6c 79 20 6b 65 79 2f 76 61 6c 75  ctually key/valu
1ac0: 65 20 70 61 69 72 73 2c 20 62 75 74 20 74 68 65  e pairs, but the
1ad0: 20 76 61 6c 75 65 20 69 73 20 6f 70 74 69 6f 6e   value is option
1ae0: 61 6c 2e 20 54 68 65 20 61 62 69 6c 69 74 79 20  al. The ability 
1af0: 74 6f 20 74 61 67 20 61 72 62 69 74 72 61 72 79  to tag arbitrary
1b00: 20 61 72 74 69 66 61 63 74 73 2c 20 69 6e 63 6c   artifacts, incl
1b10: 75 64 69 6e 67 20 6f 74 68 65 72 20 74 61 67 73  uding other tags
1b20: 2c 20 61 6c 6c 6f 77 73 20 28 69 6e 20 70 72 69  , allows (in pri
1b30: 6e 63 69 70 61 6c 29 20 66 6f 72 20 61 70 70 6c  ncipal) for appl
1b40: 79 69 6e 67 20 61 72 62 69 74 72 61 72 79 20 6b  ying arbitrary k
1b50: 65 79 2f 76 61 6c 75 65 2d 70 61 69 72 20 6d 65  ey/value-pair me
1b60: 74 61 64 61 74 61 20 74 6f 20 61 72 62 69 74 72  tadata to arbitr
1b70: 61 72 79 20 61 72 74 69 66 61 63 74 73 2e 20 54  ary artifacts. T
1b80: 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20  his can be used 
1b90: 66 6f 72 20 61 20 67 72 65 61 74 20 6d 61 6e 79  for a great many
1ba0: 20 74 68 69 6e 67 73 20 61 62 6f 76 65 20 61 6e   things above an
1bb0: 64 20 62 65 79 6f 6e 64 20 77 68 61 74 20 66 6f  d beyond what fo
1bc0: 73 73 69 6c 20 63 75 72 72 65 6e 74 6c 79 20 75  ssil currently u
1bd0: 73 65 73 20 74 61 67 73 20 66 6f 72 2e 20 46 6f  ses tags for. Fo
1be0: 72 20 65 78 61 6d 70 6c 65 2c 20 74 61 67 73 20  r example, tags 
1bf0: 63 6f 75 6c 64 20 62 65 20 75 73 65 64 20 74 6f  could be used to
1c00: 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 73 69 6d   implement a sim
1c10: 70 6c 65 20 66 6f 72 6d 20 6f 66 20 63 6f 6d 6d  ple form of comm
1c20: 65 6e 74 20 74 68 72 65 61 64 20 73 79 73 74 65  ent thread syste
1c30: 6d 2c 20 62 79 20 69 6d 70 6c 65 6d 65 6e 74 69  m, by implementi
1c40: 6e 67 20 63 6f 6d 6d 65 6e 74 73 20 61 73 20 74  ng comments as t
1c50: 61 67 73 2c 20 61 6e 64 20 72 65 70 6c 69 65 73  ags, and replies
1c60: 20 61 73 20 74 61 67 73 20 74 6f 20 74 68 6f 73   as tags to thos
1c70: 65 20 63 6f 6d 6d 65 6e 74 20 74 61 67 73 2c 20  e comment tags, 
1c80: 61 64 20 6e 61 75 73 65 75 6d 2e 0d 0a 0d 0a 41  ad nauseum.....A
1c90: 6e 79 77 61 79 2e 2e 2e 20 74 68 69 73 20 74 6f  nyway... this to
1ca0: 6f 6c 20 69 73 20 61 20 76 65 72 79 20 62 61 73  ol is a very bas
1cb0: 69 63 20 74 65 73 74 2f 64 65 6d 6f 6e 73 74 72  ic test/demonstr
1cc0: 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 6c 69  ation of this li
1cd0: 62 72 61 72 79 20 77 68 69 63 68 20 61 6c 6c 6f  brary which allo
1ce0: 77 73 20 6f 6e 65 20 74 6f 20 61 70 70 6c 79 20  ws one to apply 
1cf0: 74 61 67 73 20 74 6f 20 61 72 74 69 66 61 63 74  tags to artifact
1d00: 73 2e 20 49 74 20 61 6c 6c 6f 77 73 20 73 6f 6d  s. It allows som
1d10: 65 20 74 68 69 6e 67 73 20 74 68 65 20 63 75 72  e things the cur
1d20: 72 65 6e 74 20 66 6f 73 73 69 6c 20 55 49 2f 43  rent fossil UI/C
1d30: 4c 49 20 63 61 6e 6e 6f 74 20 6d 61 6b 65 20 6d  LI cannot make m
1d40: 75 63 68 20 73 65 6e 73 65 20 6f 66 20 6f 72 20  uch sense of or 
1d50: 64 6f 20 61 6e 79 74 68 69 6e 67 20 75 73 65 66  do anything usef
1d60: 75 6c 20 77 69 74 68 20 28 65 2e 67 2e 20 74 61  ul with (e.g. ta
1d70: 67 73 20 6f 6e 20 74 61 67 73 20 6f 72 20 22 63  gs on tags or "c
1d80: 61 6e 63 65 6c 22 20 74 61 67 73 20 77 69 74 68  ancel" tags with
1d90: 20 76 61 6c 75 65 73 29 2c 20 62 75 74 20 6e 6f   values), but no
1da0: 74 68 69 6e 67 20 69 74 20 64 6f 65 73 20 69 73  thing it does is
1db0: 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69   incompatible wi
1dc0: 74 68 20 68 6f 77 20 66 6f 73 73 69 6c 20 77 6f  th how fossil wo
1dd0: 72 6b 73 20 69 6e 74 65 72 6e 61 6c 6c 79 2e 0d  rks internally..
1de0: 0a 0d 0a 0d 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65  .....<blockquote
1df0: 3e 0d 0a 3c 73 74 72 6f 6e 67 3e 3c 65 6d 3e 46  >..<strong><em>F
1e00: 4f 52 45 57 41 52 4e 49 4e 47 53 3c 2f 65 6d 3e  OREWARNINGS</em>
1e10: 3c 2f 73 74 72 6f 6e 67 3e 3a 20 63 68 61 6e 67  </strong>: chang
1e20: 69 6e 67 20 62 72 61 6e 63 68 20 74 61 67 73 20  ing branch tags 
1e30: 6f 72 20 6f 74 68 65 72 20 22 66 6f 73 73 69 6c  or other "fossil
1e40: 2d 73 70 65 63 69 61 6c 22 20 74 61 67 73 20 28  -special" tags (
1e50: 65 2e 67 2e 20 57 69 6b 69 20 70 61 67 65 73 20  e.g. Wiki pages 
1e60: 6f 72 20 74 69 63 6b 65 74 73 29 20 77 69 74 68  or tickets) with
1e70: 20 74 68 69 73 20 74 6f 6f 6c 20 69 73 20 61 73   this tool is as
1e80: 20 79 65 74 20 75 6e 74 65 73 74 65 64 2c 20 69   yet untested, i
1e90: 73 20 6e 6f 74 20 79 65 74 20 65 78 70 65 63 74  s not yet expect
1ea0: 65 64 20 74 6f 20 77 6f 72 6b 20 28 69 74 27 73  ed to work (it's
1eb0: 20 61 6e 20 6f 6e 67 6f 69 6e 67 20 70 72 6f 63   an ongoing proc
1ec0: 65 73 73 29 2c 20 3c 65 6d 3e 61 6e 64 20 6d 69  ess), <em>and mi
1ed0: 67 68 74 20 62 72 65 61 6b 20 74 68 69 6e 67 73  ght break things
1ee0: 3c 2f 65 6d 3e 20 28 72 65 6c 61 74 69 6f 6e 73  </em> (relations
1ef0: 68 69 70 73 20 62 65 74 77 65 65 6e 20 64 61 74  hips between dat
1f00: 61 20 72 65 63 6f 72 64 73 29 2e 20 54 72 79 20  a records). Try 
1f10: 73 75 63 68 20 74 68 69 6e 67 73 20 61 74 20 79  such things at y
1f20: 6f 75 72 20 6f 77 6e 20 72 69 73 6b 2e 20 42 65  our own risk. Be
1f30: 74 74 65 72 20 79 65 74 2c 20 64 6f 6e 27 74 20  tter yet, don't 
1f40: 74 72 79 20 74 68 65 6d 20 61 74 20 61 6c 6c 20  try them at all 
1f50: 75 6e 74 69 6c 20 74 68 69 73 20 77 61 72 6e 69  until this warni
1f60: 6e 67 20 6d 65 73 73 61 67 65 20 69 73 20 67 6f  ng message is go
1f70: 6e 65 2e 0d 0a 3c 2f 62 6c 6f 63 6b 71 75 6f 74  ne...</blockquot
1f80: 65 3e 0d 0a 0d 0a 27 50 72 69 76 61 74 65 27 20  e>....'Private' 
1f90: 63 6f 6e 74 65 6e 74 20 77 68 69 63 68 20 67 65  content which ge
1fa0: 74 73 20 74 61 67 67 65 64 20 77 69 6c 6c 20 72  ts tagged will r
1fb0: 65 73 75 6c 74 20 69 6e 20 74 68 65 20 74 61 67  esult in the tag
1fc0: 20 62 65 69 6e 67 20 70 72 69 76 61 74 65 20 61   being private a
1fd0: 73 20 77 65 6c 6c 20 28 74 6f 20 61 76 6f 69 64  s well (to avoid
1fe0: 20 74 68 61 74 20 69 74 20 73 79 6e 63 68 72 6f   that it synchro
1ff0: 6e 69 7a 65 64 20 77 69 74 68 6f 75 74 20 69 74  nized without it
2000: 73 20 74 61 67 67 65 64 20 63 6f 6e 74 65 6e 74  s tagged content
2010: 29 2e 0d 0a 0d 0a 45 78 61 6d 70 6c 65 73 20 6f  ).....Examples o
2020: 66 20 73 65 74 74 69 6e 67 20 61 6e 64 20 63 61  f setting and ca
2030: 6e 63 65 6c 6c 69 6e 67 20 66 6c 61 67 73 3a 0d  ncelling flags:.
2040: 0a 0d 0a 3c 6e 6f 77 69 6b 69 3e 3c 70 72 65 3e  ...<nowiki><pre>
2050: 0d 0a 23 20 43 68 61 6e 67 65 20 74 68 65 20 63  ..# Change the c
2060: 6f 6c 6f 72 20 6f 66 20 61 20 73 69 6e 67 6c 65  olor of a single
2070: 20 63 6f 6d 6d 69 74 3a 0d 0a 23 20 66 2d 74 61   commit:..# f-ta
2080: 67 20 2d 61 20 63 75 72 72 65 6e 74 20 2d 74 20  g -a current -t 
2090: 62 67 63 6f 6c 6f 72 20 2d 76 20 27 23 66 66 66  bgcolor -v '#fff
20a0: 66 33 33 27 0d 0a 0d 0a 23 20 50 72 6f 70 61 67  f33'....# Propag
20b0: 61 74 65 20 74 68 65 20 62 67 20 63 6f 6c 6f 72  ate the bg color
20c0: 20 73 74 61 72 74 69 6e 67 20 61 74 20 61 20 63   starting at a c
20d0: 6f 6d 6d 69 74 3a 0d 0a 23 20 66 2d 74 61 67 20  ommit:..# f-tag 
20e0: 2d 61 20 63 75 72 72 65 6e 74 20 2d 74 20 27 2a  -a current -t '*
20f0: 62 67 63 6f 6c 6f 72 27 20 2d 76 20 27 23 66 66  bgcolor' -v '#ff
2100: 66 66 33 33 27 0d 0a 0d 0a 23 20 43 61 6e 63 65  ff33'....# Cance
2110: 6c 20 74 68 61 74 20 63 6f 6c 6f 72 3a 0d 0a 23  l that color:..#
2120: 20 66 2d 74 61 67 20 2d 61 20 63 75 72 72 65 6e   f-tag -a curren
2130: 74 20 2d 74 20 2d 62 67 63 6f 6c 6f 72 20 2d 76  t -t -bgcolor -v
2140: 20 27 74 68 61 74 20 77 61 73 20 75 67 6c 69 65   'that was uglie
2150: 72 20 74 68 61 6e 20 69 20 74 68 6f 75 67 68 74  r than i thought
2160: 20 69 74 20 77 6f 75 6c 64 20 62 65 27 0d 0a 0d   it would be'...
2170: 0a 23 20 43 68 61 6e 67 65 20 74 68 65 20 63 68  .# Change the ch
2180: 65 63 6b 69 6e 20 63 6f 6d 6d 65 6e 74 20 6f 6e  eckin comment on
2190: 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 68 65   the current che
21a0: 63 6b 6f 75 74 3a 0d 0a 23 20 66 2d 74 61 67 20  ckout:..# f-tag 
21b0: 2d 61 20 63 75 72 72 65 6e 74 20 2d 74 20 63 6f  -a current -t co
21c0: 6d 6d 65 6e 74 20 2d 76 20 27 2e 2e 2e 6e 65 77  mment -v '...new
21d0: 20 63 6f 6d 6d 65 6e 74 2e 2e 2e 27 0d 0a 3c 2f   comment...'..</
21e0: 70 72 65 3e 3c 2f 6e 6f 77 69 6b 69 3e 0d 0a 0d  pre></nowiki>...
21f0: 0a 56 61 6c 75 65 73 20 61 72 65 20 61 6c 77 61  .Values are alwa
2200: 79 73 20 6f 70 74 69 6f 6e 61 6c 20 62 75 74 20  ys optional but 
2210: 46 6f 73 73 69 6c 20 69 6e 74 65 72 6e 61 6c 6c  Fossil internall
2220: 79 20 74 72 65 61 74 73 20 73 6f 6d 65 20 74 61  y treats some ta
2230: 67 20 6e 61 6d 65 73 20 73 70 65 63 69 61 6c 6c  g names speciall
2240: 79 20 61 6e 64 20 6d 61 79 20 72 65 71 75 69 72  y and may requir
2250: 65 20 28 6f 72 20 65 78 70 65 63 74 29 20 61 20  e (or expect) a 
2260: 76 61 6c 75 65 2e 20 54 68 65 20 3c 74 74 3e 62  value. The <tt>b
2270: 67 63 6f 6c 6f 72 3c 2f 74 74 3e 20 74 61 67 20  gcolor</tt> tag 
2280: 69 73 20 6f 6e 65 20 65 78 61 6d 70 6c 65 2e 20  is one example. 
2290: 57 68 65 6e 20 63 61 6e 63 65 6c 6c 69 6e 67 20  When cancelling 
22a0: 61 20 74 61 67 2c 20 74 68 65 20 76 61 6c 75 65  a tag, the value
22b0: 20 69 73 20 61 6c 77 61 79 73 20 6f 70 74 69 6f   is always optio
22c0: 6e 61 6c 2c 20 72 65 67 61 72 64 6c 65 73 73 20  nal, regardless 
22d0: 6f 66 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f  of whether or no
22e0: 74 20 69 74 20 69 73 20 61 20 73 70 65 63 69 61  t it is a specia
22f0: 6c 20 74 61 67 2e 0d 0a 0d 0a 57 68 65 6e 20 61  l tag.....When a
2300: 64 64 69 6e 67 20 61 20 74 61 67 2c 20 74 68 65  dding a tag, the
2310: 20 74 61 67 20 6e 61 6d 65 20 6d 61 79 20 6f 70   tag name may op
2320: 74 69 6f 6e 61 6c 6c 79 20 62 65 20 70 72 65 66  tionally be pref
2330: 69 78 65 64 20 77 69 74 68 20 61 20 3c 74 74 3e  ixed with a <tt>
2340: 2b 3c 2f 74 74 3e 20 73 69 67 6e 2c 20 66 6f 72  +</tt> sign, for
2350: 20 73 79 6d 6d 65 74 72 79 20 77 69 74 68 20 74   symmetry with t
2360: 68 65 20 63 61 6e 63 65 6c 20 28 3c 74 74 3e 2d  he cancel (<tt>-
2370: 3c 2f 74 74 3e 29 20 61 6e 64 20 70 72 6f 70 61  </tt>) and propa
2380: 67 61 74 65 20 28 3c 74 74 3e 2a 3c 2f 74 74 3e  gate (<tt>*</tt>
2390: 29 20 6d 61 72 6b 65 72 73 2e 20 43 61 6e 63 65  ) markers. Cance
23a0: 6c 20 74 61 67 73 20 6d 69 67 68 74 20 3c 65 6d  l tags might <em
23b0: 3e 6c 6f 6f 6b 3c 2f 65 6d 3e 20 6c 69 6b 65 20  >look</em> like 
23c0: 6f 70 74 69 6f 6e 73 2f 66 6c 61 67 73 20 62 65  options/flags be
23d0: 63 61 75 73 65 20 74 68 65 79 20 73 74 61 72 74  cause they start
23e0: 20 77 69 74 68 20 61 20 6d 69 6e 75 73 2c 20 62   with a minus, b
23f0: 75 74 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20  ut they are not 
2400: 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61  interpreted as a
2410: 20 66 6c 61 67 20 64 75 65 20 74 6f 20 61 20 68   flag due to a h
2420: 61 70 70 79 20 61 63 63 69 64 65 6e 74 20 6f 66  appy accident of
2430: 20 64 65 73 69 67 6e 2e 20 57 68 65 6e 20 75 73   design. When us
2440: 69 6e 67 20 70 72 6f 70 61 67 61 74 69 6e 67 20  ing propagating 
2450: 74 61 67 73 2c 20 69 74 20 69 73 20 77 69 73 65  tags, it is wise
2460: 20 74 6f 20 65 6e 63 6c 6f 73 65 20 74 68 65 20   to enclose the 
2470: 74 61 67 20 69 6e 20 71 75 6f 74 65 73 20 74 6f  tag in quotes to
2480: 20 70 72 65 76 65 6e 74 20 61 6e 79 20 75 6e 77   prevent any unw
2490: 61 6e 74 65 64 20 73 69 64 65 2d 65 66 66 65 63  anted side-effec
24a0: 74 73 20 6f 66 20 73 68 65 6c 6c 20 67 6c 6f 62  ts of shell glob
24b0: 62 69 6e 67 2e 20 4f 70 74 69 6f 6e 61 6c 6c 79  bing. Optionally
24c0: 2c 20 75 73 65 20 3c 74 74 3e 2d 74 3d 2a 74 61  , use <tt>-t=*ta
24d0: 67 6e 61 6d 65 3c 2f 74 74 3e 2c 20 77 68 69 63  gname</tt>, whic
24e0: 68 20 77 6f 75 6c 64 20 6f 6e 6c 79 20 6d 61 74  h would only mat
24f0: 63 68 20 61 20 67 6c 6f 62 20 69 6e 20 74 68 65  ch a glob in the
2500: 20 6d 6f 73 74 20 75 6e 75 73 75 61 6c 20 6f 66   most unusual of
2510: 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 2e 20   circumstances. 
2520: 4c 69 6b 65 77 69 73 65 2c 20 3c 74 74 3e 2d 74  Likewise, <tt>-t
2530: 3d 2d 74 61 67 2d 74 6f 2d 63 61 6e 63 65 6c 3c  =-tag-to-cancel<
2540: 2f 74 74 3e 20 63 61 6e 20 62 65 20 75 73 65 64  /tt> can be used
2550: 20 69 66 20 68 61 76 69 6e 67 20 74 68 65 20 74   if having the t
2560: 61 67 20 76 61 6c 75 65 20 6c 6f 6f 6b 20 6c 69  ag value look li
2570: 6b 65 20 61 20 66 6c 61 67 20 73 65 65 6d 73 20  ke a flag seems 
2580: 64 69 73 74 75 72 62 69 6e 67 20 74 6f 20 79 6f  disturbing to yo
2590: 75 2e 0d 0a 0d 0a 4e 6f 74 65 20 74 68 61 74 20  u.....Note that 
25a0: 74 68 65 20 2b 2f 2d 2f 2a 20 70 72 65 66 69 78  the +/-/* prefix
25b0: 65 73 20 77 65 72 65 20 6e 6f 74 20 63 68 6f 73  es were not chos
25c0: 65 6e 20 61 72 62 69 74 72 61 72 69 6c 79 3a 20  en arbitrarily: 
25d0: 74 68 65 79 20 72 65 66 6c 65 63 74 20 68 6f 77  they reflect how
25e0: 20 46 6f 73 73 69 6c 20 69 6e 74 65 72 6e 61 6c   Fossil internal
25f0: 6c 79 20 73 74 6f 72 65 73 20 61 6e 64 20 72 65  ly stores and re
2600: 63 6f 67 6e 69 7a 65 73 20 74 68 65 20 74 79 70  cognizes the typ
2610: 65 20 6f 66 20 61 20 74 61 67 3a 20 3c 74 74 3e  e of a tag: <tt>
2620: 2b 3c 2f 74 74 3e 20 72 65 70 72 65 73 65 6e 74  +</tt> represent
2630: 73 20 61 6e 20 22 61 64 64 20 74 61 67 22 2c 20  s an "add tag", 
2640: 3c 74 74 3e 2d 3c 2f 74 74 3e 20 61 20 22 63 61  <tt>-</tt> a "ca
2650: 6e 63 65 6c 20 74 61 67 22 20 28 61 2e 6b 2e 61  ncel tag" (a.k.a
2660: 2e 20 22 61 6e 74 69 2d 74 61 67 22 29 2c 20 61  . "anti-tag"), a
2670: 6e 64 20 3c 74 74 3e 2a 3c 2f 74 74 3e 20 61 20  nd <tt>*</tt> a 
2680: 70 72 6f 70 61 67 61 74 69 6e 67 20 74 61 67 2e  propagating tag.
2690: 0d 0a 0d 0a 0d 0a 3c 68 32 3e 66 2d 61 63 61 74  ......<h2>f-acat
26a0: 3c 2f 68 32 3e 0d 0a 0d 0a 54 68 65 20 22 61 72  </h2>....The "ar
26b0: 74 69 66 61 63 74 20 63 61 74 22 20 74 6f 6f 6c  tifact cat" tool
26c0: 20 6f 75 74 70 75 74 73 20 63 6f 6e 74 65 6e 74   outputs content
26d0: 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 6e   from the conten
26e0: 74 2e 20 49 66 20 67 69 76 65 6e 20 61 20 63 68  t. If given a ch
26f0: 65 63 6b 69 6e 20 6e 61 6d 65 20 6f 72 20 74 68  eckin name or th
2700: 65 20 49 44 20 6f 66 20 73 6f 6d 65 20 6f 74 68  e ID of some oth
2710: 65 72 20 66 6f 73 73 69 6c 2d 69 6e 74 65 72 6e  er fossil-intern
2720: 61 6c 20 73 74 72 75 63 74 75 72 65 2c 20 69 74  al structure, it
2730: 20 6f 75 74 70 75 74 73 20 74 68 61 74 20 73 74   outputs that st
2740: 72 75 63 74 75 72 65 20 28 61 73 20 6f 70 70 6f  ructure (as oppo
2750: 73 65 64 20 74 6f 20 64 6f 69 6e 67 20 63 6f 6d  sed to doing com
2760: 70 6c 65 78 20 72 65 6e 64 65 72 69 6e 67 20 6f  plex rendering o
2770: 66 20 74 68 65 20 73 74 72 75 63 74 75 72 65 2d  f the structure-
2780: 73 70 65 63 69 66 69 63 20 74 79 70 65 29 2e 20  specific type). 
2790: 42 79 20 64 65 66 61 75 6c 74 20 69 74 20 61 70  By default it ap
27a0: 70 6c 69 65 73 20 61 6e 79 20 6e 65 63 65 73 73  plies any necess
27b0: 61 72 79 20 64 65 6c 74 61 73 20 74 6f 20 70 72  ary deltas to pr
27c0: 6f 64 75 63 65 20 74 68 65 20 64 65 73 69 72 65  oduce the desire
27d0: 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 61 20 62  d version of a b
27e0: 6c 6f 62 2c 20 62 75 74 20 69 74 20 63 61 6e 20  lob, but it can 
27f0: 61 6c 73 6f 20 62 65 20 74 6f 6c 64 20 28 75 73  also be told (us
2800: 69 6e 67 20 74 68 65 20 3c 74 74 3e 2d 2d 72 61  ing the <tt>--ra
2810: 77 3c 2f 74 74 3e 20 66 6c 61 67 29 20 74 68 61  w</tt> flag) tha
2820: 74 20 69 74 20 73 68 6f 75 6c 64 20 64 6f 20 6e  t it should do n
2830: 6f 20 75 6e 64 65 6c 74 69 66 69 63 61 74 69 6f  o undeltificatio
2840: 6e 2e 20 49 74 20 61 6c 77 61 79 73 20 75 6e 63  n. It always unc
2850: 6f 6d 70 72 65 73 73 65 73 20 74 68 65 20 64 61  ompresses the da
2860: 74 61 20 28 61 73 73 75 6d 69 6e 67 20 69 74 20  ta (assuming it 
2870: 77 61 73 20 63 6f 6d 70 72 65 73 73 65 64 2c 20  was compressed, 
2880: 77 68 69 63 68 20 69 74 20 6e 6f 72 6d 61 6c 6c  which it normall
2890: 79 2c 20 62 75 74 20 6e 6f 74 20 61 6c 77 61 79  y, but not alway
28a0: 73 2c 20 69 73 29 2e 0d 0a 0d 0a 3c 6e 6f 77 69  s, is).....<nowi
28b0: 6b 69 3e 3c 70 72 65 3e 0d 0a 23 20 54 68 65 20  ki><pre>..# The 
28c0: 63 75 72 72 65 6e 74 20 63 68 65 63 6b 6f 75 74  current checkout
28d0: 20 76 65 72 73 69 6f 6e 27 73 20 6d 61 6e 69 66   version's manif
28e0: 65 73 74 3a 0d 0a 23 20 66 2d 61 63 61 74 20 63  est:..# f-acat c
28f0: 75 72 72 65 6e 74 0d 0a 42 20 32 30 30 64 31 63  urrent..B 200d1c
2900: 64 38 39 38 66 34 65 30 35 35 39 31 65 37 38 66  d898f4e05591e78f
2910: 38 32 62 32 63 30 66 32 62 63 34 63 38 64 62 39  82b2c0f2bc4c8db9
2920: 39 38 0d 0a 43 20 41 64 64 65 64 5c 73 2d 2d 72  98..C Added\s--r
2930: 61 77 2c 5c 73 2d 2d 6f 75 74 70 75 74 2c 5c 73  aw,\s--output,\s
2940: 61 6e 64 5c 73 2d 2d 61 72 74 69 66 61 63 74 5c  and\s--artifact\
2950: 73 66 6c 61 67 73 5c 73 74 6f 5c 73 66 2d 61 63  sflags\sto\sf-ac
2960: 61 74 2e 0d 0a 44 20 32 30 31 33 2d 30 39 2d 30  at...D 2013-09-0
2970: 38 54 31 32 3a 32 35 3a 33 31 2e 36 36 30 0d 0a  8T12:25:31.660..
2980: 46 20 4d 61 6b 65 66 69 6c 65 2e 69 6e 20 34 31  F Makefile.in 41
2990: 63 30 30 62 35 38 37 36 65 30 39 65 36 62 65 66  c00b5876e09e6bef
29a0: 35 65 61 66 34 61 36 38 65 38 38 35 39 32 36 65  5eaf4a68e885926e
29b0: 65 63 61 31 35 39 0d 0a 2e 2e 2e 0d 0a 0d 0a 23  eca159.........#
29c0: 20 54 68 65 20 70 72 65 76 69 6f 75 73 20 76 65   The previous ve
29d0: 72 73 69 6f 6e 27 73 20 6d 61 6e 69 66 65 73 74  rsion's manifest
29e0: 2c 20 69 6e 20 69 74 73 20 72 61 77 20 66 6f 72  , in its raw for
29f0: 6d 20 28 69 6e 20 74 68 69 73 20 63 61 73 65 0d  m (in this case.
2a00: 0a 23 20 61 20 66 6f 73 73 69 6c 2d 66 6f 72 6d  .# a fossil-form
2a10: 61 74 20 64 65 6c 74 61 29 3a 0d 0a 23 20 66 2d  at delta):..# f-
2a20: 61 63 61 74 20 70 72 65 76 20 2d 2d 72 61 77 20  acat prev --raw 
2a30: 0d 0a 49 49 0d 0a 69 40 30 2c 33 50 3a 4d 6f 76  ..II..i@0,3P:Mov
2a40: 65 64 5c 73 66 73 6c 5f 6d 65 6d 6f 72 79 5f 61  ed\sfsl_memory_a
2a50: 6c 6c 6f 63 61 74 6f 72 3c 53 4e 49 50 3e 2e 0d  llocator<SNIP>..
2a60: 0a 44 20 32 30 31 33 2d 30 39 2d 30 38 54 31 32  .D 2013-09-08T12
2a70: 3a 30 31 3a 31 31 2e 36 31 34 32 67 40 32 34 2c  :01:11.6142g@24,
2a80: 39 64 40 35 5a 2c 31 75 3a 30 34 39 32 33 63 34  9d@5Z,1u:04923c4
2a90: 34 33 35 65 65 30 38 32 32 30 35 39 37 39 61 32  435ee082205979a2
2aa0: 62 63 30 61 39 62 35 31 38 65 31 66 66 33 64 38  bc0a9b518e1ff3d8
2ab0: 30 0d 0a 52 20 61 35 66 37 33 30 32 37 63 31 39  0..R a5f73027c19
2ac0: 63 31 62 33 33 33 36 34 38 34 35 64 34 38 30 38  c1b33364845d4808
2ad0: 62 63 61 36 64 0d 0a 55 20 73 74 65 70 68 61 6e  bca6d..U stephan
2ae0: 0d 0a 5a 20 36 37 32 31 65 66 32 35 35 38 36 39  ..Z 6721ef255869
2af0: 35 36 66 31 33 65 66 35 39 61 34 64 63 62 37 37  56f13ef59a4dcb77
2b00: 65 33 33 39 0d 0a 3c 2f 6e 6f 77 69 6b 69 3e 3c  e339..</nowiki><
2b10: 2f 70 72 65 3e 0d 0a 0d 0a 3c 68 32 3e 66 2d 71  /pre>....<h2>f-q
2b20: 75 65 72 79 3c 2f 68 32 3e 0d 0a 0d 0a 3c 74 74  uery</h2>....<tt
2b30: 3e 66 2d 71 75 65 72 79 3c 2f 74 74 3e 20 63 61  >f-query</tt> ca
2b40: 6e 20 62 65 20 75 73 65 64 20 74 6f 20 72 75 6e  n be used to run
2b50: 20 73 69 6d 70 6c 65 20 53 51 4c 20 63 6f 6d 6d   simple SQL comm
2b60: 61 6e 64 73 20 61 67 61 69 6e 73 74 20 61 20 72  ands against a r
2b70: 65 70 6f 2f 64 62 2c 20 6b 69 6e 64 20 6f 66 20  epo/db, kind of 
2b80: 6c 69 6b 65 20 61 20 63 61 73 74 72 61 74 65 64  like a castrated
2b90: 20 66 6f 72 6d 20 6f 66 20 66 6f 73 73 69 6c 28   form of fossil(
2ba0: 31 29 27 73 20 73 71 6c 69 74 65 20 63 6f 6d 6d  1)'s sqlite comm
2bb0: 61 6e 64 2e 20 54 68 65 20 6f 6e 65 20 61 64 76  and. The one adv
2bc0: 61 6e 74 61 67 65 20 74 6f 20 75 73 69 6e 67 20  antage to using 
2bd0: 74 68 69 73 20 76 73 2e 20 75 73 69 6e 67 20 74  this vs. using t
2be0: 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 20  he sqlite shell 
2bf0: 28 6f 72 20 66 6f 73 73 69 6c 28 31 29 29 20 69  (or fossil(1)) i
2c00: 73 20 74 68 61 74 20 74 68 69 73 20 6f 6e 65 20  s that this one 
2c10: 70 72 6f 76 69 64 65 73 20 61 20 66 65 77 20 66  provides a few f
2c20: 6f 73 73 69 6c 2d 73 70 65 63 69 66 69 63 20 53  ossil-specific S
2c30: 51 4c 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69  QL functions whi
2c40: 63 68 20 74 68 6f 73 65 20 64 6f 20 6e 6f 74 2e  ch those do not.
2c50: 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 3c 74   For example, <t
2c60: 74 3e 46 53 4c 5f 44 49 52 50 41 52 54 28 29 3c  t>FSL_DIRPART()<
2c70: 2f 74 74 3e 20 63 61 6e 20 62 65 20 75 73 65 64  /tt> can be used
2c80: 20 74 6f 20 66 69 67 75 72 65 20 6f 75 74 20 74   to figure out t
2c90: 68 65 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63  he list of direc
2ca0: 74 6f 72 69 65 73 20 69 6e 20 61 20 72 65 70 6f  tories in a repo
2cb0: 73 69 74 6f 72 79 3a 0d 0a 0d 0a 45 78 61 6d 70  sitory:....Examp
2cc0: 6c 65 20 75 73 61 67 65 3a 0d 0a 0d 0a 3c 6e 6f  le usage:....<no
2cd0: 77 69 6b 69 3e 3c 70 72 65 3e 0d 0a 23 20 66 2d  wiki><pre>..# f-
2ce0: 71 75 65 72 79 20 2d 68 20 2d 65 20 22 73 65 6c  query -h -e "sel
2cf0: 65 63 74 20 64 69 73 74 69 6e 63 74 28 66 73 6c  ect distinct(fsl
2d00: 5f 64 69 72 70 61 72 74 28 6e 61 6d 65 2c 31 29  _dirpart(name,1)
2d10: 29 20 64 6e 61 6d 65 0d 0a 20 20 20 20 66 72 6f  ) dname..    fro
2d20: 6d 20 66 69 6c 65 6e 61 6d 65 20 77 68 65 72 65  m filename where
2d30: 20 64 6e 61 6d 65 20 49 53 20 4e 4f 54 20 4e 55   dname IS NOT NU
2d40: 4c 4c 20 6f 72 64 65 72 20 62 79 20 64 6e 61 6d  LL order by dnam
2d50: 65 22 0d 0a 2e 66 6f 73 73 69 6c 2d 73 65 74 74  e"...fossil-sett
2d60: 69 6e 67 73 2f 0d 0a 2e 73 65 74 74 69 6e 67 73  ings/...settings
2d70: 2f 0d 0a 61 75 74 6f 73 65 74 75 70 2f 0d 0a 61  /..autosetup/..a
2d80: 75 74 6f 73 65 74 75 70 2f 6c 69 62 2f 0d 0a 64  utosetup/lib/..d
2d90: 6f 63 2f 0d 0a 2e 2e 2e 0d 0a 0d 0a 23 23 23 20  oc/.........### 
2da0: 53 69 6d 75 6c 61 74 65 20 66 2d 61 63 61 74 3a  Simulate f-acat:
2db0: 0d 0a 23 20 66 2d 71 75 65 72 79 20 2d 68 20 2d  ..# f-query -h -
2dc0: 65 20 22 73 65 6c 65 63 74 20 66 73 6c 5f 63 6f  e "select fsl_co
2dd0: 6e 74 65 6e 74 28 27 72 69 64 3a 31 27 29 22 0d  ntent('rid:1')".
2de0: 0a 43 20 69 6e 69 74 69 61 6c 5c 73 65 6d 70 74  .C initial\sempt
2df0: 79 5c 73 63 68 65 63 6b 2d 69 6e 0d 0a 44 20 32  y\scheck-in..D 2
2e00: 30 31 33 2d 30 37 2d 32 33 54 31 33 3a 35 36 3a  013-07-23T13:56:
2e10: 33 36 2e 30 33 37 0d 0a 50 0d 0a 52 20 64 34 31  36.037..P..R d41
2e20: 64 38 63 64 39 38 66 30 30 62 32 30 34 65 39 38  d8cd98f00b204e98
2e30: 30 30 39 39 38 65 63 66 38 34 32 37 65 0d 0a 54  00998ecf8427e..T
2e40: 20 2a 62 72 61 6e 63 68 20 2a 20 74 72 75 6e 6b   *branch * trunk
2e50: 0d 0a 2e 2e 2e 0d 0a 3c 2f 6e 6f 77 69 6b 69 3e  .......</nowiki>
2e60: 3c 2f 70 72 65 3e 0d 0a 0d 0a 41 6e 20 3c 74 74  </pre>....An <tt
2e70: 3e 2d 65 3c 2f 74 74 3e 20 76 61 6c 75 65 20 6d  >-e</tt> value m
2e80: 61 79 20 65 69 74 68 65 72 20 53 51 4c 20 63 6f  ay either SQL co
2e90: 64 65 20 6f 72 20 74 68 65 20 6e 61 6d 65 20 6f  de or the name o
2ea0: 66 20 61 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e  f a file contain
2eb0: 69 6e 67 20 53 51 4c 2e 20 55 6e 6c 69 6b 65 20  ing SQL. Unlike 
2ec0: 6d 6f 73 74 20 61 72 67 75 6d 65 6e 74 73 2c 20  most arguments, 
2ed0: 3c 74 74 3e 2d 65 3c 2f 74 74 3e 20 6d 61 79 20  <tt>-e</tt> may 
2ee0: 62 65 20 73 70 65 63 69 66 69 65 64 20 6d 75 6c  be specified mul
2ef0: 74 69 70 6c 65 20 74 69 6d 65 73 2e 0d 0a 0d 0a  tiple times.....
2f00: 0d 0a 0d 0a 3c 68 32 3e 66 2d 77 69 6b 69 3c 2f  ....<h2>f-wiki</
2f10: 68 32 3e 0d 0a 0d 0a 3c 74 74 3e 66 2d 77 69 6b  h2>....<tt>f-wik
2f20: 69 3c 2f 74 74 3e 20 63 61 6e 20 6c 69 73 74 20  i</tt> can list 
2f30: 77 69 6b 69 20 70 61 67 65 73 20 61 6e 64 20 65  wiki pages and e
2f40: 78 70 6f 72 74 2f 69 6d 70 6f 72 74 20 77 69 6b  xport/import wik
2f50: 69 20 70 61 67 65 20 63 6f 6e 74 65 6e 74 2e 0d  i page content..
2f60: 0a 0d 0a 45 78 61 6d 70 6c 65 20 75 73 61 67 65  ...Example usage
2f70: 3a 0d 0a 0d 0a 3c 6e 6f 77 69 6b 69 3e 3c 70 72  :....<nowiki><pr
2f80: 65 3e 0d 0a 23 20 66 2d 77 69 6b 69 20 6c 73 0d  e>..# f-wiki ls.
2f90: 0a 54 69 6d 65 20 28 6c 6f 63 61 6c 20 74 69 6d  .Time (local tim
2fa0: 65 29 20 20 20 20 55 55 49 44 20 20 20 20 20 20  e)    UUID      
2fb0: 20 20 20 20 53 69 7a 65 20 20 20 4e 61 6d 65 0d      Size   Name.
2fc0: 0a 32 30 31 33 2d 30 38 2d 32 33 20 30 30 3a 32  .2013-08-23 00:2
2fd0: 36 3a 35 39 20 20 38 36 61 66 64 61 61 35 31 38  6:59  86afdaa518
2fe0: 38 35 20 20 32 34 37 30 20 20 20 41 6d 61 6c 67  85  2470   Amalg
2ff0: 61 6d 61 74 69 6f 6e 42 75 69 6c 64 0d 0a 32 30  amationBuild..20
3000: 31 33 2d 30 38 2d 32 33 20 32 30 3a 33 37 3a 32  13-08-23 20:37:2
3010: 36 20 20 65 34 35 31 39 32 36 66 34 63 30 33 20  6  e451926f4c03 
3020: 20 31 36 32 36 20 20 20 62 75 69 6c 64 69 6e 67   1626   building
3030: 0d 0a 32 30 31 33 2d 30 39 2d 32 34 20 31 39 3a  ..2013-09-24 19:
3040: 31 38 3a 32 31 20 20 61 32 31 65 35 64 61 65 65  18:21  a21e5daee
3050: 39 36 31 20 20 31 38 32 37 20 20 20 44 62 46 75  961  1827   DbFu
3060: 6e 63 74 69 6f 6e 73 0d 0a 2e 2e 2e 0d 0a 0d 0a  nctions.........
3070: 23 20 66 2d 77 69 6b 69 20 6c 73 20 2d 2d 6e 61  # f-wiki ls --na
3080: 6d 65 73 0d 0a 41 6d 61 6c 67 61 6d 61 74 69 6f  mes..Amalgamatio
3090: 6e 42 75 69 6c 64 0d 0a 62 75 69 6c 64 69 6e 67  nBuild..building
30a0: 0d 0a 44 62 46 75 6e 63 74 69 6f 6e 73 0d 0a 2e  ..DbFunctions...
30b0: 2e 2e 0d 0a 0d 0a 23 20 66 2d 77 69 6b 69 20 65  ......# f-wiki e
30c0: 78 70 6f 72 74 20 41 6d 61 6c 67 61 6d 61 74 69  xport Amalgamati
30d0: 6f 6e 42 75 69 6c 64 20 7c 20 68 65 61 64 0d 0a  onBuild | head..
30e0: 26 6c 74 3b 68 31 3e 54 68 65 20 41 6d 61 6c 67  &lt;h1>The Amalg
30f0: 61 6d 61 74 69 6f 6e 20 42 75 69 6c 64 26 6c 74  amation Build&lt
3100: 3b 2f 68 31 3e 0d 0a 0d 0a 53 65 65 20 61 6c 73  ;/h1>....See als
3110: 6f 3a 20 5b 62 75 69 6c 64 69 6e 67 5d 0d 0a 2e  o: [building]...
3120: 2e 2e 0d 0a 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 70  ....</nowiki></p
3130: 72 65 3e 0a 5a 20 63 61 65 38 39 39 64 36 39 62  re>.Z cae899d69b
3140: 61 64 62 33 34 31 34 33 66 64 36 66 64 36 31 30  adb34143fd6fd610
3150: 61 61 32 31 39 35 0a                             aa2195.