Hex Artifact Content
Not logged in

Artifact 809029b84e70e40a32d85b4ad40b984ddda0b3ee:

File todo.txt part of check-in [9c28ba4956] - More additions to the todo.txt list. by drh on 2007-07-31 00:06:08.

0000: 54 68 69 6e 67 73 20 74 6f 20 77 6f 72 6b 20 6f  Things to work o
0010: 6e 3a 0a 0a 20 2a 20 20 4f 6e 20 65 76 65 72 79  n:.. *  On every
0020: 20 70 75 73 68 2c 20 70 75 6c 6c 2c 20 6f 72 20   push, pull, or 
0030: 63 6c 6f 6e 65 20 63 6f 6d 6d 61 6e 64 2c 20 72  clone command, r
0040: 65 6d 65 6d 62 65 72 20 74 68 65 20 55 52 4c 20  emember the URL 
0050: 6f 66 20 74 68 65 0a 20 20 20 20 73 65 72 76 65  of the.    serve
0060: 72 20 75 73 69 6e 67 20 64 62 5f 70 75 74 28 29  r using db_put()
0070: 2e 20 20 4f 6e 20 73 75 62 73 65 71 75 65 6e 74  .  On subsequent
0080: 20 70 75 73 68 65 73 20 61 6e 64 20 70 75 6c 6c   pushes and pull
0090: 73 2c 20 61 6c 6c 6f 77 0a 20 20 20 20 74 68 65  s, allow.    the
00a0: 20 55 52 4c 20 74 6f 20 62 65 20 6f 6d 69 74 74   URL to be omitt
00b0: 65 64 20 61 6e 64 20 73 75 62 73 74 69 74 75 74  ed and substitut
00c0: 65 20 74 68 65 20 55 52 4c 20 74 68 61 74 20 77  e the URL that w
00d0: 61 73 20 75 73 65 64 20 74 68 65 0a 20 20 20 20  as used the.    
00e0: 70 72 65 76 69 6f 75 73 20 74 69 6d 65 2e 20 20  previous time.  
00f0: 44 69 73 70 6c 61 79 20 74 68 65 20 73 61 76 65  Display the save
0100: 64 20 55 52 4c 20 61 73 20 70 61 72 74 20 6f 66  d URL as part of
0110: 20 74 68 65 20 22 69 6e 66 6f 22 0a 20 20 20 20   the "info".    
0120: 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 63  command in the c
0130: 6c 69 2e 0a 0a 20 2a 20 20 42 75 67 3a 20 54 68  li... *  Bug: Th
0140: 65 20 74 69 6d 65 6c 69 6e 65 20 69 73 20 76 69  e timeline is vi
0150: 73 69 62 6c 65 20 69 6e 20 73 71 6c 69 74 65 72  sible in sqliter
0160: 74 20 65 76 65 6e 20 74 68 6f 75 67 68 20 61 6e  t even though an
0170: 6f 6e 79 6d 6f 75 73 0a 20 20 20 20 61 63 63 65  onymous.    acce
0180: 73 73 20 69 73 20 74 75 72 6e 65 64 20 6f 66 66  ss is turned off
0190: 2e 20 20 54 68 65 20 74 69 6d 65 6c 69 6e 65 20  .  The timeline 
01a0: 6d 65 6e 75 20 69 74 65 6d 20 73 68 6f 75 6c 64  menu item should
01b0: 20 62 65 20 6f 6d 69 74 74 65 64 0a 20 20 20 20   be omitted.    
01c0: 61 6e 64 20 74 68 65 20 74 69 6d 65 6c 69 6e 65  and the timeline
01d0: 20 70 61 67 65 20 73 68 6f 75 6c 64 20 62 65 20   page should be 
01e0: 64 69 73 61 6c 6c 6f 77 65 64 20 69 66 20 74 68  disallowed if th
01f0: 65 20 75 73 65 72 20 64 6f 65 73 20 6e 6f 74 0a  e user does not.
0200: 20 20 20 20 68 61 76 65 20 74 68 65 20 72 69 67      have the rig
0210: 68 74 20 61 63 63 65 73 73 20 70 65 72 6d 69 73  ht access permis
0220: 73 69 6f 6e 73 2e 20 20 46 65 65 6c 20 66 72 65  sions.  Feel fre
0230: 65 20 74 6f 20 61 64 64 20 6e 65 77 20 61 63 63  e to add new acc
0240: 65 73 73 0a 20 20 20 20 70 65 72 6d 69 73 73 69  ess.    permissi
0250: 6f 6e 73 20 28 76 69 65 77 20 74 69 6d 65 6c 69  ons (view timeli
0260: 6e 65 20 70 65 72 6d 69 73 73 69 6f 6e 3f 29 20  ne permission?) 
0270: 69 66 20 74 68 69 73 20 73 65 65 6d 73 20 6c 69  if this seems li
0280: 6b 65 20 73 6f 6d 65 74 68 69 6e 67 0a 20 20 20  ke something.   
0290: 20 61 70 70 72 6f 70 72 69 61 74 65 20 74 6f 20   appropriate to 
02a0: 64 6f 2e 0a 0a 20 2a 20 20 49 66 20 74 68 65 20  do... *  If the 
02b0: 73 65 72 76 65 72 20 64 6f 65 73 20 6e 6f 74 20  server does not 
02c0: 68 61 76 65 20 77 72 69 74 65 20 70 65 72 6d 69  have write permi
02d0: 73 73 69 6f 6e 20 6f 6e 20 74 68 65 20 64 61 74  ssion on the dat
02e0: 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65 2c 20  abase.    file, 
02f0: 6f 72 20 6f 6e 20 74 68 65 20 64 69 72 65 63 74  or on the direct
0300: 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74  ory containing t
0310: 68 65 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  he database file
0320: 20 28 61 6e 64 20 0a 20 20 20 20 69 74 20 69 73   (and .    it is
0330: 20 74 68 75 73 20 75 6e 61 62 6c 65 20 74 6f 20   thus unable to 
0340: 75 70 64 61 74 65 20 64 61 74 61 62 61 73 65 20  update database 
0350: 62 65 63 61 75 73 65 20 69 74 20 63 61 6e 6e 6f  because it canno
0360: 74 20 63 72 65 61 74 65 0a 20 20 20 20 61 20 72  t create.    a r
0370: 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 29  ollback journal)
0380: 20 74 68 65 6e 20 69 74 20 63 75 72 72 65 6e 74   then it current
0390: 6c 79 20 66 61 69 6c 73 20 73 69 6c 65 6e 74 6c  ly fails silentl
03a0: 79 20 6f 6e 20 61 20 70 75 73 68 2e 0a 20 20 20  y on a push..   
03b0: 20 49 74 20 6e 65 65 64 73 20 74 6f 20 72 65 74   It needs to ret
03c0: 75 72 6e 20 61 20 68 65 6c 70 66 75 6c 20 65 72  urn a helpful er
03d0: 72 6f 72 2e 0a 0a 20 2a 20 20 57 68 65 6e 20 63  ror... *  When c
03e0: 6f 6e 73 74 72 75 63 74 69 6e 67 20 61 20 6e 65  onstructing a ne
03f0: 77 20 6d 61 6e 69 66 65 73 74 20 28 73 65 65 20  w manifest (see 
0400: 74 68 65 20 63 6f 6d 6d 69 74 5f 63 6d 64 20 66  the commit_cmd f
0410: 75 6e 63 74 69 6f 6e 0a 20 20 20 20 69 6e 20 63  unction.    in c
0420: 68 65 63 6b 69 6e 2e 63 2c 20 6e 65 61 72 20 6c  heckin.c, near l
0430: 69 6e 65 20 33 30 33 29 20 6d 61 6b 65 20 61 6e  ine 303) make an
0440: 20 61 74 74 65 6d 70 74 20 74 6f 20 50 47 50 20   attempt to PGP 
0450: 63 6c 65 61 72 73 69 67 6e 0a 20 20 20 20 74 68  clearsign.    th
0460: 65 20 6d 61 6e 69 66 65 73 74 20 62 65 66 6f 72  e manifest befor
0470: 65 20 63 68 65 63 6b 69 6e 67 20 69 74 20 69 6e  e checking it in
0480: 2e 20 20 54 68 65 72 65 20 77 69 6c 6c 20 6e 65  .  There will ne
0490: 65 64 20 74 6f 20 62 65 0a 20 20 20 20 63 6f 6e  ed to be.    con
04a0: 66 69 67 75 72 61 74 69 6f 6e 20 70 61 72 61 6d  figuration param
04b0: 65 74 65 72 73 20 66 6f 72 20 74 68 65 20 50 47  eters for the PG
04c0: 50 20 28 6f 72 20 6d 6f 72 65 20 6c 69 6b 65 6c  P (or more likel
04d0: 79 20 47 50 47 29 0a 20 20 20 20 63 6f 6d 6d 61  y GPG).    comma
04e0: 6e 64 20 74 6f 20 64 6f 20 74 68 65 20 61 63 74  nd to do the act
04f0: 75 61 6c 20 73 69 67 6e 69 6e 67 2e 20 20 57 72  ual signing.  Wr
0500: 69 74 65 20 74 68 65 20 6d 61 6e 69 66 65 73 74  ite the manifest
0510: 20 74 6f 0a 20 20 20 20 61 20 74 65 6d 70 20 66   to.    a temp f
0520: 69 6c 65 2c 20 63 6c 65 61 72 73 69 67 6e 2c 20  ile, clearsign, 
0530: 72 65 61 64 20 69 74 20 62 61 63 6b 20 69 6e 2c  read it back in,
0540: 20 76 65 72 69 66 79 20 74 68 61 74 20 69 74 20   verify that it 
0550: 69 73 0a 20 20 20 20 73 74 69 6c 6c 20 70 61 72  is.    still par
0560: 73 61 62 6c 65 20 62 79 20 6d 61 6e 69 66 65 73  sable by manifes
0570: 74 5f 70 61 72 73 65 28 29 2c 20 74 68 65 6e 20  t_parse(), then 
0580: 63 6f 6e 74 69 6e 75 65 20 77 69 74 68 20 74 68  continue with th
0590: 65 0a 20 20 20 20 63 68 65 63 6b 2d 69 6e 2e 0a  e.    check-in..
05a0: 0a 20 2a 20 20 54 68 65 20 22 6c 65 61 76 65 73  . *  The "leaves
05b0: 20 3f 55 55 49 44 3f 22 20 63 6f 6d 6d 61 6e 64   ?UUID?" command
05c0: 20 64 69 73 70 6c 61 79 73 20 61 6c 6c 20 6c 65   displays all le
05d0: 61 66 20 76 65 72 73 69 6f 6e 73 20 66 6f 72 20  af versions for 
05e0: 74 68 65 0a 20 20 20 20 76 65 72 73 69 6f 6e 20  the.    version 
05f0: 55 55 49 44 20 6f 72 20 66 6f 72 20 74 68 65 20  UUID or for the 
0600: 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 20  current version 
0610: 69 66 20 55 55 49 44 20 69 73 20 6f 6d 69 74 74  if UUID is omitt
0620: 65 64 2e 20 20 49 66 0a 20 20 20 20 55 55 49 44  ed.  If.    UUID
0630: 20 69 73 20 69 74 73 65 6c 66 20 61 20 6c 65 61   is itself a lea
0640: 66 2c 20 69 74 20 77 6f 75 6c 64 20 62 65 20 6d  f, it would be m
0650: 6f 72 65 20 68 65 6c 70 66 75 6c 20 74 6f 20 64  ore helpful to d
0660: 69 73 70 6c 61 79 20 61 0a 20 20 20 20 6d 65 73  isplay a.    mes
0670: 73 61 67 65 20 74 6f 20 74 68 61 74 20 65 66 66  sage to that eff
0680: 65 63 74 3a 20 20 22 3c 75 75 69 64 3e 20 69 73  ect:  "<uuid> is
0690: 20 69 74 73 65 6c 66 20 61 20 6c 65 61 66 22 0a   itself a leaf".
06a0: 0a 20 2a 20 20 57 65 20 6e 65 65 64 20 61 20 63  . *  We need a c
06b0: 6f 6d 6d 61 6e 64 20 74 6f 20 73 68 6f 77 20 6f  ommand to show o
06c0: 74 68 65 72 20 62 72 61 6e 63 68 65 73 20 2d 20  ther branches - 
06d0: 6c 65 61 76 65 73 20 6f 66 20 74 68 65 20 72 6f  leaves of the ro
06e0: 6f 74 0a 20 20 20 20 77 68 69 63 68 20 61 72 65  ot.    which are
06f0: 20 6e 6f 74 20 6c 65 61 76 65 73 20 6f 66 20 74   not leaves of t
0700: 68 65 20 69 6e 64 69 63 61 74 65 64 20 6e 6f 64  he indicated nod
0710: 65 2e 0a 0a 20 2a 20 20 54 68 65 20 69 70 61 64  e... *  The ipad
0720: 64 72 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20  dr field of the 
0730: 72 63 76 66 72 6f 6d 20 74 61 62 6c 65 20 69 73  rcvfrom table is
0740: 20 6e 6f 74 20 62 65 69 6e 67 20 73 65 74 2e 20   not being set. 
0750: 20 54 68 69 73 0a 20 20 20 20 66 69 65 6c 64 20   This.    field 
0760: 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 49 50  should be the IP
0770: 20 61 64 64 72 65 73 73 20 66 72 6f 6d 20 77 68   address from wh
0780: 69 63 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  ich information 
0790: 69 73 20 72 65 63 65 69 76 65 64 0a 20 20 20 20  is received.    
07a0: 66 6f 72 20 74 68 65 20 6c 6f 63 61 6c 20 72 65  for the local re
07b0: 70 6f 73 69 74 6f 72 79 2e 20 20 53 6f 20 77 68  pository.  So wh
07c0: 65 6e 20 73 6f 6d 65 62 6f 64 79 20 64 6f 65 73  en somebody does
07d0: 20 61 20 70 75 73 68 20 6f 66 20 6e 65 77 0a 20   a push of new. 
07e0: 20 20 20 66 69 6c 65 73 20 77 65 20 72 65 63 6f     files we reco
07f0: 72 64 20 74 68 65 20 69 70 61 64 64 72 2e 20 20  rd the ipaddr.  
0800: 4f 72 20 77 68 65 6e 20 77 65 20 64 6f 20 61 20  Or when we do a 
0810: 70 75 6c 6c 2c 20 77 65 20 72 65 63 6f 72 64 0a  pull, we record.
0820: 20 20 20 20 74 68 65 20 69 70 61 64 64 72 2e 0a      the ipaddr..
0830: 0a 20 2a 20 20 41 64 64 69 74 69 6f 6e 61 6c 20  . *  Additional 
0840: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 64 69 73 70  information disp
0850: 6c 61 79 65 64 20 66 6f 72 20 74 68 65 20 22 76  layed for the "v
0860: 69 6e 66 6f 22 20 70 61 67 65 3a 0a 0a 20 20 20  info" page:..   
0870: 20 20 2b 20 20 54 68 65 20 63 6f 6d 6d 65 6e 74    +  The comment
0880: 20 61 6e 64 20 75 73 65 72 20 66 6f 72 20 74 68   and user for th
0890: 69 73 20 76 65 72 73 69 6f 6e 20 28 61 76 61 69  is version (avai
08a0: 6c 61 62 6c 65 20 69 6e 0a 20 20 20 20 20 20 20  lable in.       
08b0: 20 74 68 65 20 65 76 65 6e 74 20 74 61 62 6c 65   the event table
08c0: 29 2e 0a 20 20 20 20 20 2b 20 20 41 6c 6c 20 64  )..     +  All d
08d0: 65 63 65 6e 64 65 6e 74 73 20 6f 66 20 74 68 69  ecendents of thi
08e0: 73 20 76 65 72 73 69 6f 6e 20 28 74 6f 67 65 74  s version (toget
08f0: 68 65 72 20 77 69 74 68 20 64 61 74 65 2c 0a 20  her with date,. 
0900: 20 20 20 20 20 20 20 75 73 65 72 2c 20 63 6f 6d         user, com
0910: 6d 65 6e 74 2c 20 61 6e 64 20 68 79 70 65 72 6c  ment, and hyperl
0920: 69 6e 6b 20 74 6f 20 74 68 65 20 76 69 6e 66 6f  ink to the vinfo
0930: 20 70 61 67 65 29 20 66 6f 72 0a 20 20 20 20 20   page) for.     
0940: 20 20 20 4e 20 67 65 6e 65 72 61 74 69 6f 6e 73     N generations
0950: 2e 20 20 4e 20 74 6f 20 62 65 20 64 65 74 65 72  .  N to be deter
0960: 6d 69 6e 65 64 2e 20 20 50 65 72 68 61 70 73 20  mined.  Perhaps 
0970: 63 6f 6e 66 69 67 75 72 61 62 6c 65 0a 20 20 20  configurable.   
0980: 20 20 20 20 20 75 73 69 6e 67 20 64 62 5f 67 65       using db_ge
0990: 74 5f 69 6e 74 28 29 2f 64 62 5f 73 65 74 5f 69  t_int()/db_set_i
09a0: 6e 74 28 29 2e 20 20 4e 6f 74 65 3a 20 64 65 63  nt().  Note: dec
09b0: 65 6e 64 65 6e 74 73 20 63 61 6e 0a 20 20 20 20  endents can.    
09c0: 20 20 20 20 62 65 20 66 6f 75 6e 64 20 75 73 69      be found usi
09d0: 6e 67 20 74 68 65 20 70 6c 69 6e 6b 20 74 61 62  ng the plink tab
09e0: 6c 65 2e 0a 20 20 20 20 20 2b 20 20 41 6c 6c 20  le..     +  All 
09f0: 6c 65 61 76 65 73 20 6f 66 20 74 68 69 73 20 76  leaves of this v
0a00: 65 72 73 69 6f 6e 20 74 68 61 74 20 61 72 65 20  ersion that are 
0a10: 6e 6f 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20  not included in 
0a20: 74 68 65 0a 20 20 20 20 20 20 20 20 64 65 63 65  the.        dece
0a30: 6e 64 65 6e 74 20 6c 69 73 74 2e 20 20 57 69 74  ndent list.  Wit
0a40: 68 20 64 61 74 65 2c 20 75 73 65 72 2c 20 63 6f  h date, user, co
0a50: 6d 6d 65 6e 74 2c 20 61 6e 64 20 68 79 70 65 72  mment, and hyper
0a60: 6c 69 6e 6b 2e 0a 20 20 20 20 20 20 20 20 4c 65  link..        Le
0a70: 61 76 65 73 20 69 6e 20 74 68 65 20 64 65 63 65  aves in the dece
0a80: 6e 64 65 6e 74 20 74 61 62 6c 65 20 73 68 6f 75  ndent table shou
0a90: 6c 64 20 62 65 20 6d 61 72 6b 65 64 20 61 73 20  ld be marked as 
0aa0: 73 75 63 68 2e 0a 20 20 20 20 20 20 20 20 53 65  such..        Se
0ab0: 65 20 74 68 65 20 63 6f 6d 70 75 74 65 5f 6c 65  e the compute_le
0ac0: 61 76 65 73 28 29 20 66 75 6e 63 74 69 6f 6e 20  aves() function 
0ad0: 74 6f 20 73 65 65 20 68 6f 77 20 74 6f 20 66 69  to see how to fi
0ae0: 6e 64 20 61 6c 6c 0a 20 20 20 20 20 20 20 20 6c  nd all.        l
0af0: 65 61 76 65 73 2e 0a 20 20 20 20 20 2b 20 20 41  eaves..     +  A
0b00: 6c 6c 20 61 6e 63 65 73 74 6f 72 73 20 6f 66 20  ll ancestors of 
0b10: 74 68 65 20 63 75 72 72 65 6e 74 20 76 65 72 73  the current vers
0b20: 69 6f 6e 20 77 69 74 68 20 64 61 74 65 2c 20 75  ion with date, u
0b30: 73 65 72 2c 0a 20 20 20 20 20 20 20 20 63 6f 6d  ser,.        com
0b40: 6d 65 6e 74 2c 20 68 79 70 65 72 6c 69 6e 6b 2e  ment, hyperlink.
0b50: 20 20 4d 20 67 65 6e 65 72 61 74 69 6f 6e 73 20    M generations 
0b60: 62 61 63 6b 2c 20 77 68 65 72 65 20 4d 20 69 73  back, where M is
0b70: 0a 20 20 20 20 20 20 20 20 74 6f 20 62 65 20 64  .        to be d
0b80: 65 74 65 72 6d 69 6e 65 64 2e 0a 20 20 20 20 20  etermined..     
0b90: 2b 20 20 4c 69 73 74 20 6f 66 20 66 69 6c 65 73  +  List of files
0ba0: 20 61 64 64 65 64 20 6f 72 20 6d 6f 64 69 66 69   added or modifi
0bb0: 65 64 20 62 79 20 74 68 69 73 20 76 65 72 73 69  ed by this versi
0bc0: 6f 6e 2e 0a 20 20 20 20 20 20 20 20 49 6e 66 6f  on..        Info
0bd0: 72 6d 61 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c  rmation availabl
0be0: 65 20 69 6e 20 74 68 65 20 6d 6c 69 6e 6b 20 74  e in the mlink t
0bf0: 61 62 6c 65 2e 20 20 48 79 70 65 72 6c 69 6e 6b  able.  Hyperlink
0c00: 73 20 74 6f 0a 20 20 20 20 20 20 20 20 74 68 65  s to.        the
0c10: 20 66 69 6e 66 6f 20 70 61 67 65 20 66 6f 72 20   finfo page for 
0c20: 65 61 63 68 20 66 69 6c 65 2e 0a 20 20 20 20 20  each file..     
0c30: 2b 20 20 48 79 70 65 72 6c 69 6e 6b 73 20 74 6f  +  Hyperlinks to
0c40: 20 64 69 66 66 20 61 6c 6c 20 66 69 6c 65 73 20   diff all files 
0c50: 69 6e 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20  in this version 
0c60: 61 67 61 69 6e 73 74 20 61 6e 79 0a 20 20 20 20  against any.    
0c70: 20 20 20 20 6f 66 20 74 68 65 20 6e 61 6d 65 64      of the named
0c80: 20 64 65 63 65 6e 64 65 6e 74 73 20 6f 72 20 61   decendents or a
0c90: 6e 63 65 73 74 6f 72 73 2e 20 20 54 68 65 20 75  ncestors.  The u
0ca0: 6e 69 66 69 65 64 5f 64 69 66 66 28 29 0a 20 20  nified_diff().  
0cb0: 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 77        function w
0cc0: 69 6c 6c 20 63 6f 6d 70 75 74 65 20 61 20 75 6e  ill compute a un
0cd0: 69 66 69 65 64 20 64 69 66 66 20 67 69 76 65 6e  ified diff given
0ce0: 20 74 6f 20 66 69 6c 65 20 62 6c 6f 62 73 2e 0a   to file blobs..
0cf0: 0a 20 2a 20 20 41 20 6e 65 77 20 77 65 62 70 61  . *  A new webpa
0d00: 67 65 3a 20 22 66 69 6e 66 6f 22 20 20 49 6e 66  ge: "finfo"  Inf
0d10: 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61  ormation about a
0d20: 20 70 61 72 74 69 63 75 6c 61 72 20 66 69 6c 65   particular file
0d30: 0a 20 20 20 20 67 69 76 65 6e 20 69 74 73 20 6e  .    given its n
0d40: 61 6d 65 2e 0a 0a 20 20 20 20 20 2b 20 20 41 6c  ame...     +  Al
0d50: 6c 20 68 69 73 74 6f 72 69 63 61 6c 20 63 68 61  l historical cha
0d60: 6e 67 65 73 20 74 6f 20 74 68 69 73 20 66 69 6c  nges to this fil
0d70: 65 20 77 69 74 68 20 76 65 72 73 69 6f 6e 20 6e  e with version n
0d80: 75 6d 62 65 72 2c 0a 20 20 20 20 20 20 20 20 75  umber,.        u
0d90: 73 65 72 2c 20 61 6e 64 20 63 6f 6d 6d 65 6e 74  ser, and comment
0da0: 2c 20 61 6e 64 20 68 79 70 65 72 6c 69 6e 6b 20  , and hyperlink 
0db0: 74 6f 20 74 68 65 20 76 69 6e 66 6f 20 70 61 67  to the vinfo pag
0dc0: 65 20 66 6f 72 0a 20 20 20 20 20 20 20 20 74 68  e for.        th
0dd0: 65 20 76 65 72 73 69 6f 6e 2e 20 20 49 6e 66 6f  e version.  Info
0de0: 72 6d 61 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c  rmation availabl
0df0: 65 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 66 6f  e from the minfo
0e00: 20 74 61 62 6c 65 2e 0a 20 20 20 20 20 2b 20 20   table..     +  
0e10: 48 79 70 65 72 6c 69 6e 6b 73 20 66 6f 72 20 64  Hyperlinks for d
0e20: 69 66 66 69 6e 67 20 63 6f 6e 73 65 63 75 74 69  iffing consecuti
0e30: 76 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74  ve versions of t
0e40: 68 65 20 66 69 6c 65 2e 0a 0a 20 2a 20 20 47 69  he file... *  Gi
0e50: 76 65 6e 20 61 6e 79 20 76 65 72 73 69 6f 6e 20  ven any version 
0e60: 75 75 69 64 2c 20 63 6f 6e 73 74 72 75 63 74 20  uuid, construct 
0e70: 61 20 5a 49 50 20 61 72 63 68 69 76 65 20 74 68  a ZIP archive th
0e80: 61 74 20 63 6f 6e 74 61 69 6e 73 0a 20 20 20 20  at contains.    
0e90: 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 63 6f 6e  the complete con
0ea0: 74 65 6e 74 20 66 6f 72 20 74 68 61 74 20 76 65  tent for that ve
0eb0: 72 73 69 6f 6e 2e 20 20 46 65 61 74 75 72 65 20  rsion.  Feature 
0ec0: 73 68 6f 75 6c 64 20 62 65 0a 20 20 20 20 63 61  should be.    ca
0ed0: 6c 6c 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20  llable from the 
0ee0: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 72 20  command-line or 
0ef0: 66 72 6f 6d 20 74 68 65 20 77 77 77 20 69 6e 74  from the www int
0f00: 65 72 66 61 63 65 2e 0a 20 20 20 20 50 65 72 68  erface..    Perh
0f10: 61 70 73 20 61 20 68 79 70 65 72 6c 69 6e 6b 20  aps a hyperlink 
0f20: 6f 6e 20 74 68 65 20 76 69 6e 66 6f 20 70 61 67  on the vinfo pag
0f30: 65 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 74 68  e to download th
0f40: 65 20 5a 49 50 20 61 72 63 68 69 76 65 0a 20 20  e ZIP archive.  
0f50: 20 20 66 6f 72 20 61 6e 79 20 76 65 72 73 69 6f    for any versio
0f60: 6e 2e 0a 0a 20 2a 20 20 54 69 6d 65 6c 69 6e 65  n... *  Timeline
0f70: 20 65 6e 68 61 6e 63 65 64 20 73 6f 20 74 68 61   enhanced so tha
0f80: 74 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66  t you can specif
0f90: 79 20 61 20 72 61 6e 67 65 20 6f 66 20 64 61 74  y a range of dat
0fa0: 65 73 2e 0a 0a 20 2a 20 20 54 68 65 20 2f 78 66  es... *  The /xf
0fb0: 65 72 20 68 61 6e 64 6c 65 72 20 28 66 6f 72 20  er handler (for 
0fc0: 70 75 73 68 2c 20 70 75 6c 6c 2c 20 61 6e 64 20  push, pull, and 
0fd0: 63 6c 6f 6e 65 29 20 64 6f 65 73 20 6e 6f 74 20  clone) does not 
0fe0: 64 6f 0a 20 20 20 20 64 65 6c 74 61 20 63 6f 6d  do.    delta com
0ff0: 70 72 65 73 73 69 6f 6e 2e 20 20 54 68 69 73 20  pression.  This 
1000: 72 65 73 75 6c 74 73 20 69 6e 20 65 78 63 65 73  results in exces
1010: 73 20 62 61 6e 64 77 69 64 74 68 20 75 73 61 67  s bandwidth usag
1020: 65 2e 0a 20 20 20 20 54 68 65 72 65 20 61 72 65  e..    There are
1030: 20 73 6f 6d 65 20 63 6f 64 65 20 69 6e 20 78 66   some code in xf
1040: 65 72 2e 63 20 74 68 61 74 20 61 72 65 20 73 6b  er.c that are sk
1050: 65 74 63 68 65 73 20 6f 66 20 69 64 65 61 73 20  etches of ideas 
1060: 6f 6e 0a 20 20 20 20 68 6f 77 20 74 6f 20 64 6f  on.    how to do
1070: 20 64 65 6c 74 61 20 63 6f 6d 70 72 65 73 73 69   delta compressi
1080: 6f 6e 2c 20 62 75 74 20 6e 6f 74 68 69 6e 67 20  on, but nothing 
1090: 68 61 73 20 62 65 65 6e 20 69 6d 70 6c 65 6d 65  has been impleme
10a0: 6e 74 65 64 2e 0a 0a 20 2a 20 20 45 6e 68 61 6e  nted... *  Enhan
10b0: 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 64  cements to the d
10c0: 69 66 66 20 61 6e 64 20 74 6b 64 69 66 66 20 63  iff and tkdiff c
10d0: 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 63  ommands in the c
10e0: 6c 69 2e 0a 20 20 20 20 41 6c 6c 6f 77 20 74 68  li..    Allow th
10f0: 65 20 65 6e 74 69 72 65 20 74 72 65 65 20 6f 72  e entire tree or
1100: 20 61 20 73 75 62 74 72 65 65 20 74 6f 20 62 65   a subtree to be
1110: 20 64 69 66 66 65 64 2c 20 6e 6f 74 20 6a 75 73   diffed, not jus
1120: 74 20 61 20 0a 20 20 20 20 73 69 6e 67 6c 65 20  t a .    single 
1130: 66 69 6c 65 2e 20 20 41 6c 6c 6f 77 20 64 69 66  file.  Allow dif
1140: 66 73 20 61 67 61 69 6e 73 74 20 61 6e 79 20 74  fs against any t
1150: 77 6f 20 61 72 62 69 74 72 61 72 79 20 76 65 72  wo arbitrary ver
1160: 73 69 6f 6e 73 2c 0a 20 20 20 20 6e 6f 74 20 6a  sions,.    not j
1170: 75 73 74 20 64 69 66 66 73 20 61 67 61 69 6e 73  ust diffs agains
1180: 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 68  t the current ch
1190: 65 63 6b 2d 6f 75 74 2e 20 20 41 6c 6c 6f 77 20  eck-out.  Allow 
11a0: 0a 20 20 20 20 63 6f 6e 66 69 67 75 72 61 74 69  .    configurati
11b0: 6f 6e 20 6f 70 74 69 6f 6e 73 20 74 6f 20 72 65  on options to re
11c0: 70 6c 61 63 65 20 74 6b 64 69 66 66 20 77 69 74  place tkdiff wit
11d0: 68 20 73 6f 6d 65 20 6f 74 68 65 72 0a 20 20 20  h some other.   
11e0: 20 76 69 73 75 61 6c 20 64 69 66 66 65 72 20 6f   visual differ o
11f0: 66 20 74 68 65 20 75 73 65 72 73 20 63 68 6f 69  f the users choi
1200: 63 65 2e 0a 0a 20 2a 20 20 54 69 63 6b 65 74 69  ce... *  Ticketi
1210: 6e 67 20 69 6e 74 65 72 66 61 63 65 20 28 65 78  ng interface (ex
1220: 70 61 6e 64 20 74 68 69 73 20 62 75 6c 6c 65 74  pand this bullet
1230: 29 0a 0a 20 20 20 20 20 2b 20 20 43 72 65 61 74  )..     +  Creat
1240: 65 20 6e 65 77 20 74 69 63 6b 65 74 73 20 61 73  e new tickets as
1250: 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 66 69   files in the fi
1260: 6c 65 20 68 69 65 72 61 72 63 68 79 0a 20 20 20  le hierarchy.   
1270: 20 20 2b 20 20 41 70 70 65 6e 64 20 72 65 6d 61    +  Append rema
1280: 72 6b 73 20 74 6f 20 61 20 74 69 63 6b 65 74 0a  rks to a ticket.
1290: 20 20 20 20 20 2b 20 20 41 64 64 20 61 74 74 61       +  Add atta
12a0: 63 68 6d 65 6e 74 73 20 74 6f 20 61 20 74 69 63  chments to a tic
12b0: 6b 65 74 0a 20 20 20 20 20 2b 20 20 43 68 61 6e  ket.     +  Chan
12c0: 67 65 20 61 74 74 72 69 62 75 74 65 73 20 6f 66  ge attributes of
12d0: 20 61 20 74 69 63 6b 65 74 0a 20 20 20 20 20 2b   a ticket.     +
12e0: 20 20 44 65 6c 65 74 65 20 74 69 63 6b 65 74 73    Delete tickets
12f0: 20 74 68 61 74 20 61 72 65 20 6e 6f 20 6c 6f 6e   that are no lon
1300: 67 65 72 20 63 75 72 72 65 6e 74 2e 20 20 28 54  ger current.  (T
1310: 68 65 20 6f 6c 64 0a 20 20 20 20 20 20 20 20 63  he old.        c
1320: 6f 6e 74 65 6e 74 20 69 73 20 73 74 69 6c 6c 20  ontent is still 
1330: 61 63 63 65 73 73 69 62 6c 65 2c 20 74 68 65 20  accessible, the 
1340: 74 69 63 6b 65 74 20 69 73 20 6a 75 73 74 20 6e  ticket is just n
1350: 6f 74 20 69 6e 0a 20 20 20 20 20 20 20 20 74 68  ot in.        th
1360: 65 20 63 75 72 72 65 6e 74 20 63 68 65 63 6b 2d  e current check-
1370: 6f 75 74 2e 29 0a 20 20 20 20 20 2b 20 20 53 65  out.).     +  Se
1380: 72 76 65 72 20 73 65 74 75 70 20 74 6f 20 64 65  rver setup to de
1390: 66 69 6e 65 20 74 68 65 20 61 6c 6c 6f 77 65 64  fine the allowed
13a0: 20 61 74 74 72 69 62 75 74 65 73 20 61 6e 64 0a   attributes and.
13b0: 20 20 20 20 20 20 20 20 61 74 74 72 69 62 75 74          attribut
13c0: 65 20 76 61 6c 75 65 73 20 66 6f 72 20 74 69 63  e values for tic
13d0: 6b 65 74 73 0a 20 20 20 20 20 2b 20 20 50 65 72  kets.     +  Per
13e0: 6d 61 6e 65 6e 74 6c 79 20 72 65 6d 6f 76 65 20  manently remove 
13f0: 6d 61 6c 69 63 69 6f 75 73 20 65 64 69 74 73 20  malicious edits 
1400: 61 6e 64 2f 6f 72 20 61 74 74 61 63 68 6d 65 6e  and/or attachmen
1410: 74 73 0a 20 20 20 20 20 20 20 20 73 75 63 68 20  ts.        such 
1420: 61 73 20 77 69 6b 69 2d 73 70 61 6d 20 6f 72 20  as wiki-spam or 
1430: 77 61 72 65 7a 2e 20 20 28 43 6f 6e 74 65 6e 74  warez.  (Content
1440: 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 63   is no longer ac
1450: 63 65 73 73 69 62 6c 65 2e 29 0a 20 20 20 20 20  cessible.).     
1460: 2b 20 20 56 69 65 77 20 61 20 68 69 73 74 6f 72  +  View a histor
1470: 79 20 6f 66 20 61 6c 6c 20 63 68 61 6e 67 65 73  y of all changes
1480: 20 74 6f 20 61 20 74 69 63 6b 65 74 0a 20 20 20   to a ticket.   
1490: 20 20 2b 20 20 47 65 6e 65 72 61 74 65 20 72 65    +  Generate re
14a0: 70 6f 72 74 73 20 6f 76 65 72 20 61 6c 6c 20 74  ports over all t
14b0: 69 63 6b 65 74 73 0a 20 20 20 20 20 2b 20 20 47  ickets.     +  G
14c0: 65 6e 65 72 61 74 65 20 72 65 70 6f 72 74 73 20  enerate reports 
14d0: 6f 76 65 72 20 61 6c 6c 20 74 69 63 6b 65 74 73  over all tickets
14e0: 20 61 73 20 74 68 65 79 20 65 78 69 73 74 65 64   as they existed
14f0: 20 66 6f 72 0a 20 20 20 20 20 20 20 20 61 20 63   for.        a c
1500: 68 6f 73 65 6e 20 70 6f 69 6e 74 20 69 6e 20 74  hosen point in t
1510: 69 6d 65 20 61 6e 64 20 73 70 61 63 65 2e 0a 20  ime and space.. 
1520: 20 20 20 20 2b 20 20 44 6f 20 66 75 6c 6c 20 74      +  Do full t
1530: 65 78 74 20 73 65 61 72 63 68 20 61 67 61 69 6e  ext search again
1540: 73 74 20 74 68 65 20 74 65 78 74 20 69 6e 20 61  st the text in a
1550: 6e 79 20 73 69 6e 67 6c 65 20 74 69 63 6b 65 74  ny single ticket
1560: 20 6f 72 0a 20 20 20 20 20 20 20 20 61 63 72 6f   or.        acro
1570: 73 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 76  ss the current v
1580: 65 72 73 69 6f 6e 73 20 6f 66 20 61 6c 6c 20 74  ersions of all t
1590: 69 63 6b 65 74 73 2c 20 6f 72 20 61 63 72 6f 73  ickets, or acros
15a0: 73 20 61 6c 6c 20 63 75 72 72 65 6e 74 0a 20 20  s all current.  
15b0: 20 20 20 20 20 20 61 6e 64 20 68 69 73 74 6f 72        and histor
15c0: 69 63 61 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66  ical versions of
15d0: 20 61 6c 6c 20 74 69 63 6b 65 74 73 2e 0a 0a 20   all tickets... 
15e0: 2a 20 20 57 69 6b 69 20 69 6e 74 65 72 66 61 63  *  Wiki interfac
15f0: 65 20 28 65 78 70 61 6e 64 20 74 68 69 73 20 62  e (expand this b
1600: 75 6c 6c 65 74 29 0a 0a 20 20 20 20 20 2b 20 20  ullet)..     +  
1610: 43 72 65 61 74 65 20 6e 65 77 20 77 69 6b 69 20  Create new wiki 
1620: 70 61 67 65 73 0a 20 20 20 20 20 2b 20 20 44 65  pages.     +  De
1630: 73 69 67 6e 61 74 65 20 61 20 73 69 6e 67 6c 65  signate a single
1640: 20 77 69 6b 69 20 70 61 67 65 20 61 73 20 74 68   wiki page as th
1650: 65 20 68 6f 6d 65 20 70 61 67 65 20 66 6f 72 20  e home page for 
1660: 74 68 65 20 77 77 77 20 69 6e 74 65 72 66 61 63  the www interfac
1670: 65 0a 20 20 20 20 20 2b 20 20 44 65 73 69 67 6e  e.     +  Design
1680: 61 74 65 20 77 69 6b 69 20 70 61 67 65 73 20 61  ate wiki pages a
1690: 73 20 72 65 61 64 2d 6f 6e 6c 79 2c 20 61 70 70  s read-only, app
16a0: 65 6e 64 2d 6f 6e 6c 79 2c 20 6f 72 20 72 65 61  end-only, or rea
16b0: 64 2f 77 72 69 74 65 2e 0a 20 20 20 20 20 2b 20  d/write..     + 
16c0: 20 41 70 70 65 6e 64 20 63 6f 6d 6d 65 6e 74 73   Append comments
16d0: 20 74 6f 20 61 20 77 69 6b 69 20 70 61 67 65 0a   to a wiki page.
16e0: 20 20 20 20 20 2b 20 20 41 64 64 20 61 74 74 61       +  Add atta
16f0: 63 68 6d 65 6e 74 73 20 28 73 75 63 68 20 61 73  chments (such as
1700: 20 47 49 46 20 69 6d 61 67 65 73 29 20 74 6f 20   GIF images) to 
1710: 61 20 77 69 6b 69 20 70 61 67 65 0a 20 20 20 20  a wiki page.    
1720: 20 2b 20 20 43 68 61 6e 67 65 20 74 68 65 20 63   +  Change the c
1730: 6f 6e 74 65 6e 74 20 6f 66 20 61 20 77 69 6b 69  ontent of a wiki
1740: 20 70 61 67 65 0a 20 20 20 20 20 2b 20 20 44 65   page.     +  De
1750: 6c 65 74 65 20 6f 62 73 6f 6c 65 74 65 20 77 69  lete obsolete wi
1760: 6b 69 20 70 61 67 65 73 2e 20 20 28 4f 6c 64 20  ki pages.  (Old 
1770: 63 6f 6e 74 65 6e 74 20 69 73 20 73 74 69 6c 6c  content is still
1780: 20 61 63 63 65 73 73 69 62 6c 65 2c 0a 20 20 20   accessible,.   
1790: 20 20 20 20 20 74 68 65 20 70 61 67 65 20 69 73       the page is
17a0: 20 6a 75 73 74 20 6e 6f 74 20 6f 6e 20 74 68 65   just not on the
17b0: 20 63 75 72 72 65 6e 74 20 6c 69 73 74 20 6f 66   current list of
17c0: 20 70 61 67 65 73 2e 29 0a 20 20 20 20 20 2b 20   pages.).     + 
17d0: 20 50 65 72 6d 61 6e 65 6e 74 6c 79 20 72 65 6d   Permanently rem
17e0: 6f 76 65 20 6d 61 6c 69 63 69 6f 75 73 20 65 64  ove malicious ed
17f0: 69 74 73 20 61 6e 64 2f 6f 72 20 61 74 74 61 63  its and/or attac
1800: 68 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 73  hments.        s
1810: 75 63 68 20 61 73 20 77 69 6b 69 2d 73 70 61 6d  uch as wiki-spam
1820: 20 6f 72 20 77 61 72 65 7a 2e 20 20 28 4f 6c 64   or warez.  (Old
1830: 20 63 6f 6e 74 65 6e 74 20 69 73 20 6e 6f 20 6c   content is no l
1840: 6f 6e 67 65 72 20 61 63 63 65 73 73 69 62 6c 65  onger accessible
1850: 2e 29 0a 20 20 20 20 20 2b 20 20 41 64 64 20 6e  .).     +  Add n
1860: 6f 66 6f 6c 6c 6f 77 20 6f 6e 20 65 78 74 65 72  ofollow on exter
1870: 6e 61 6c 20 6c 69 6e 6b 73 20 61 64 64 65 64 20  nal links added 
1880: 62 79 20 75 6e 70 72 69 76 69 6c 65 67 65 64 0a  by unprivileged.
1890: 20 20 20 20 20 20 20 20 75 73 65 72 73 20 77 68          users wh
18a0: 65 6e 20 74 68 65 20 6c 69 6e 6b 20 69 73 20 6c  en the link is l
18b0: 65 73 73 20 74 68 61 6e 20 4e 20 68 6f 75 72 73  ess than N hours
18c0: 20 6f 6c 64 2e 0a 20 20 20 20 20 2b 20 20 53 68   old..     +  Sh
18d0: 6f 77 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20  ow the complete 
18e0: 68 69 73 74 6f 72 79 20 6f 66 20 61 20 73 69 6e  history of a sin
18f0: 67 6c 65 20 77 69 6b 69 20 70 61 67 65 0a 20 20  gle wiki page.  
1900: 20 20 20 2b 20 20 50 72 6f 76 69 64 65 20 74 68     +  Provide th
1910: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 64 69 66  e ability to dif
1920: 66 20 74 77 6f 20 76 65 72 73 69 6f 6e 73 20 6f  f two versions o
1930: 66 20 61 20 77 69 6b 69 20 70 61 67 65 0a 20 20  f a wiki page.  
1940: 20 20 20 2b 20 20 53 68 6f 77 20 61 20 6c 69 73     +  Show a lis
1950: 74 69 6e 67 20 6f 66 20 61 6c 6c 20 77 69 6b 69  ting of all wiki
1960: 20 70 61 67 65 73 2c 20 62 6f 74 68 20 63 75 72   pages, both cur
1970: 72 65 6e 74 20 61 6e 64 20 64 65 6c 65 74 65 64  rent and deleted
1980: 0a 20 20 20 20 20 2b 20 20 44 6f 20 61 20 66 75  .     +  Do a fu
1990: 6c 6c 2d 74 65 78 74 20 73 65 61 72 63 68 20 61  ll-text search a
19a0: 67 61 69 6e 73 74 20 63 75 72 72 65 6e 74 20 76  gainst current v
19b0: 65 72 73 69 6f 6e 73 20 6f 66 20 61 6c 6c 20 77  ersions of all w
19c0: 69 6b 69 20 70 61 67 65 73 0a 20 20 20 20 20 2b  iki pages.     +
19d0: 20 20 44 6f 20 61 20 66 75 6c 6c 2d 74 65 78 74    Do a full-text
19e0: 20 73 65 61 72 63 68 20 61 67 61 69 6e 73 74 20   search against 
19f0: 61 6c 6c 20 68 69 73 74 6f 72 69 63 61 6c 20 76  all historical v
1a00: 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 73 69 6e  ersions of a sin
1a10: 67 6c 65 0a 20 20 20 20 20 20 20 20 77 69 6b 69  gle.        wiki
1a20: 20 70 61 67 65 0a 20 20 20 20 20 2b 20 20 44 6f   page.     +  Do
1a30: 20 61 20 66 75 6c 6c 2d 74 65 78 74 20 73 65 61   a full-text sea
1a40: 72 63 68 20 61 67 61 69 6e 73 74 20 61 6c 6c 20  rch against all 
1a50: 68 69 73 74 6f 72 69 63 61 6c 20 76 65 72 73 69  historical versi
1a60: 6f 6e 73 20 6f 66 20 61 6c 6c 0a 20 20 20 20 20  ons of all.     
1a70: 20 20 20 77 69 6b 69 20 70 61 67 65 73 0a 0a 20     wiki pages.. 
1a80: 2a 20 20 46 75 6c 6c 2d 74 65 78 74 20 73 65 61  *  Full-text sea
1a90: 72 63 68 20 61 67 61 69 6e 73 74 20 63 68 65 63  rch against chec
1aa0: 6b 2d 69 6e 20 63 6f 6d 6d 65 6e 74 73 20 61 6e  k-in comments an
1ab0: 64 20 64 69 66 66 73 20 6f 66 20 65 61 63 68 0a  d diffs of each.
1ac0: 20 20 20 20 63 68 65 63 6b 2d 69 6e 2e 0a 0a 20      check-in... 
1ad0: 2a 20 20 41 62 69 6c 69 74 79 20 74 6f 20 63 68  *  Ability to ch
1ae0: 65 63 6b 2d 69 6e 20 73 6f 6d 65 20 73 75 62 73  eck-in some subs
1af0: 65 74 20 6f 66 20 63 68 61 6e 67 65 73 20 74 6f  et of changes to
1b00: 20 74 68 65 20 74 72 65 65 20 69 6e 73 74 65 61   the tree instea
1b10: 64 0a 20 20 20 20 6f 66 20 68 61 76 69 6e 67 20  d.    of having 
1b20: 74 6f 20 63 68 65 63 6b 20 69 6e 20 61 6c 6c 20  to check in all 
1b30: 63 68 61 6e 67 65 73 2e 0a 0a 20 2a 20 20 41 64  changes... *  Ad
1b40: 64 20 61 20 22 72 65 76 65 72 74 22 20 63 6f 6d  d a "revert" com
1b50: 6d 61 6e 64 20 74 68 61 74 20 77 69 6c 6c 20 75  mand that will u
1b60: 6e 64 6f 20 61 6c 6c 20 63 68 61 6e 67 65 73 20  ndo all changes 
1b70: 74 6f 20 61 20 66 69 6c 65 0a 20 20 20 20 6f 72  to a file.    or
1b80: 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 75   files in the cu
1b90: 72 72 65 6e 74 20 63 68 65 63 6b 2d 6f 75 74 20  rrent check-out 
1ba0: 2d 20 72 65 73 74 6f 72 69 6e 67 20 74 68 65 20  - restoring the 
1bb0: 66 69 6c 65 73 20 62 61 63 6b 0a 20 20 20 20 74  files back.    t
1bc0: 6f 20 74 68 65 69 72 20 6f 72 69 67 69 6e 61 6c  o their original
1bd0: 20 63 68 65 63 6b 2d 6f 75 74 20 73 74 61 74 65   check-out state
1be0: 2e 0a 0a 20 2a 20 20 41 64 64 20 61 6e 20 22 61  ... *  Add an "a
1bf0: 6e 6e 6f 74 61 74 65 22 20 63 6f 6d 6d 61 6e 64  nnotate" command
1c00: 20 69 6e 20 62 6f 74 68 20 74 68 65 20 63 6c 69   in both the cli
1c10: 20 61 6e 64 20 74 68 65 20 77 77 77 20 69 6e 74   and the www int
1c20: 65 72 66 61 63 65 0a 20 20 20 20 74 68 61 74 20  erface.    that 
1c30: 77 69 6c 6c 20 73 68 6f 77 20 6c 69 6e 65 2d 62  will show line-b
1c40: 79 2d 6c 69 6e 65 20 74 68 65 20 6d 6f 73 74 20  y-line the most 
1c50: 72 65 63 65 6e 74 20 63 68 61 6e 67 65 73 20 74  recent changes t
1c60: 6f 20 65 76 65 72 79 20 6c 69 6e 65 0a 20 20 20  o every line.   
1c70: 20 69 6e 20 74 68 65 20 66 69 6c 65 2e 0a 0a 20   in the file... 
1c80: 2a 20 20 42 72 6f 77 73 65 20 74 68 65 20 66 69  *  Browse the fi
1c90: 6c 65 20 68 69 65 72 61 72 63 68 79 2c 20 73 69  le hierarchy, si
1ca0: 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 22 42 72  milar to the "Br
1cb0: 6f 77 73 65 22 20 66 65 61 74 75 72 65 20 69 6e  owse" feature in
1cc0: 0a 20 20 20 20 43 56 53 54 72 61 63 2e 0a 0a 20  .    CVSTrac... 
1cd0: 2a 20 20 41 64 64 20 74 68 65 20 61 62 69 6c 69  *  Add the abili
1ce0: 74 79 20 74 6f 20 6f 76 65 72 72 69 64 65 20 63  ty to override c
1cf0: 68 65 63 6b 2d 69 6e 20 63 6f 6d 6d 65 6e 74 73  heck-in comments
1d00: 2e 20 20 49 74 20 69 73 20 6e 6f 74 20 70 6f 73  .  It is not pos
1d10: 73 69 62 6c 65 0a 20 20 20 20 74 6f 20 63 68 61  sible.    to cha
1d20: 6e 67 65 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20  nge the comment 
1d30: 69 6e 20 74 68 65 20 63 68 65 63 6b 2d 69 6e 20  in the check-in 
1d40: 69 74 73 65 6c 66 20 64 75 65 20 74 6f 20 74 68  itself due to th
1d50: 65 20 63 72 79 70 74 6f 67 72 61 70 68 69 63 0a  e cryptographic.
1d60: 20 20 20 20 68 61 73 68 2e 20 20 42 75 74 20 79      hash.  But y
1d70: 6f 75 20 63 61 6e 20 61 64 64 20 61 20 6e 65 77  ou can add a new
1d80: 20 72 65 63 6f 72 64 20 74 6f 20 74 68 65 20 72   record to the r
1d90: 65 70 6f 73 69 74 6f 72 79 20 74 68 61 74 20 6f  epository that o
1da0: 76 65 72 6c 6f 61 64 73 0a 20 20 20 20 61 20 63  verloads.    a c
1db0: 68 65 63 6b 2d 69 6e 20 63 6f 6d 6d 65 6e 74 20  heck-in comment 
1dc0: 77 69 74 68 20 61 20 6e 65 77 20 63 6f 6d 6d 65  with a new comme
1dd0: 6e 74 2e 20 20 43 6f 6d 6d 65 6e 74 20 63 68 61  nt.  Comment cha
1de0: 6e 67 65 73 20 73 68 6f 75 6c 64 20 62 65 0a 20  nges should be. 
1df0: 20 20 20 47 50 47 20 63 6c 65 61 72 73 69 67 6e     GPG clearsign
1e00: 65 64 20 61 74 20 74 68 65 20 76 65 72 79 20 6c  ed at the very l
1e10: 65 61 73 74 2e 20 20 43 6f 6d 6d 65 6e 74 20 63  east.  Comment c
1e20: 68 61 6e 67 65 73 20 6f 6e 6c 79 20 61 70 70 6c  hanges only appl
1e30: 79 20 69 66 0a 20 20 20 20 74 68 65 20 75 73 65  y if.    the use
1e40: 72 20 77 68 6f 20 6d 61 64 65 20 74 68 65 20 63  r who made the c
1e50: 68 61 6e 67 65 20 68 61 73 20 74 68 65 20 72 69  hange has the ri
1e60: 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e  ght permissions.
1e70: 0a 0a 20 2a 20 20 4e 65 77 20 63 6c 69 20 63 6f  .. *  New cli co
1e80: 6d 6d 61 6e 64 73 3a 20 22 64 65 63 6f 6e 73 74  mmands: "deconst
1e90: 72 75 63 74 22 20 61 6e 64 20 22 72 65 63 6f 6e  ruct" and "recon
1ea0: 73 74 72 75 63 74 22 2e 20 20 54 68 65 20 64 65  struct".  The de
1eb0: 63 6f 6e 73 74 72 75 63 74 0a 20 20 20 20 63 6f  construct.    co
1ec0: 6d 6d 61 6e 64 20 70 6f 70 75 6c 61 74 65 73 20  mmand populates 
1ed0: 61 6e 20 69 6e 64 69 63 61 74 65 64 20 64 69 72  an indicated dir
1ee0: 65 63 74 6f 72 79 20 77 69 74 68 20 63 6f 70 69  ectory with copi
1ef0: 65 73 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 0a  es of all files.
1f00: 20 20 20 20 63 6f 6e 74 61 69 6e 65 64 20 77 69      contained wi
1f10: 74 68 69 6e 20 74 68 65 20 72 65 70 6f 73 69 74  thin the reposit
1f20: 6f 72 79 2e 20 20 46 69 6c 65 73 20 61 72 65 20  ory.  Files are 
1f30: 6e 61 6d 65 64 20 61 61 61 2f 62 62 62 62 62 62  named aaa/bbbbbb
1f40: 62 20 77 68 65 72 65 0a 20 20 20 20 61 61 61 20  b where.    aaa 
1f50: 69 73 20 74 68 65 20 66 69 72 73 74 20 33 20 63  is the first 3 c
1f60: 68 61 72 61 63 74 65 72 73 20 6f 66 20 74 68 65  haracters of the
1f70: 20 75 75 69 64 20 61 6e 64 20 62 62 62 62 62 62   uuid and bbbbbb
1f80: 20 69 73 20 74 68 65 0a 20 20 20 20 72 65 6d 61   is the.    rema
1f90: 69 6e 69 6e 67 20 33 37 20 63 68 61 72 61 63 74  ining 37 charact
1fa0: 65 72 73 2e 20 20 72 65 63 6f 6e 73 74 72 75 63  ers.  reconstruc
1fb0: 74 20 62 75 69 6c 64 73 20 61 20 6e 65 77 20 72  t builds a new r
1fc0: 65 70 6f 73 69 74 6f 72 79 0a 20 20 20 20 63 6f  epository.    co
1fd0: 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 66 69 6c  ntaining all fil
1fe0: 65 73 20 69 6e 20 61 6e 20 69 6e 64 69 63 61 74  es in an indicat
1ff0: 65 64 20 64 69 72 65 63 74 6f 72 79 2e 20 20 57  ed directory.  W
2000: 68 65 6e 20 72 65 63 6f 6e 73 74 72 75 63 74 69  hen reconstructi
2010: 6e 67 2c 0a 20 20 20 20 73 6f 6d 65 20 69 6e 66  ng,.    some inf
2020: 6f 72 6d 61 74 69 6f 6e 20 69 73 20 6c 6f 73 74  ormation is lost
2030: 3a 20 70 72 6f 6a 65 63 74 2d 63 6f 64 65 2c 20  : project-code, 
2040: 73 65 72 76 65 72 2d 63 6f 64 65 2c 20 75 73 65  server-code, use
2050: 72 73 2e 20 20 0a 20 20 20 20 4a 75 73 74 20 6d  rs.  .    Just m
2060: 61 6b 65 20 75 70 20 61 20 6e 65 77 20 70 72 6f  ake up a new pro
2070: 6a 65 63 74 2d 63 6f 64 65 2e 20 20 0a 0a 20 2a  ject-code.  .. *
2080: 20 20 47 65 74 20 61 20 62 75 69 6c 64 20 77 6f    Get a build wo
2090: 72 6b 69 6e 67 20 66 6f 72 20 77 69 6e 33 32 2e  rking for win32.
20a0: 20 20 50 65 72 68 61 70 73 20 75 73 65 20 63 79    Perhaps use cy
20b0: 67 77 69 6e 2e 20 20 4f 72 20 6f 6d 69 74 0a 20  gwin.  Or omit. 
20c0: 20 20 20 74 68 65 20 73 65 72 76 65 72 20 63 6f     the server co
20d0: 6d 70 6f 6e 65 6e 74 20 66 72 6f 6d 20 77 69 6e  mponent from win
20e0: 33 32 20 28 74 6f 20 65 6c 69 6d 69 6e 61 74 65  32 (to eliminate
20f0: 20 74 68 65 20 6e 65 65 64 20 66 6f 72 20 66 6f   the need for fo
2100: 72 6b 28 29 29 2e 0a 0a 20 2a 20 20 4d 61 6b 65  rk())... *  Make
2110: 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 74   the interface t
2120: 6f 20 66 6f 73 73 69 6c 20 6c 6f 6f 6b 20 70 72  o fossil look pr
2130: 65 74 74 79 20 61 6e 64 20 62 65 20 63 75 73 74  etty and be cust
2140: 6f 6d 69 7a 61 62 6c 65 20 73 6f 0a 20 20 20 20  omizable so.    
2150: 74 68 61 74 20 6f 74 68 65 72 20 70 65 6f 70 6c  that other peopl
2160: 65 20 77 69 6c 6c 20 62 65 20 61 74 74 72 61 63  e will be attrac
2170: 74 65 64 20 74 6f 20 69 74 2c 20 77 69 6c 6c 20  ted to it, will 
2180: 74 61 6b 65 20 6f 76 65 72 20 6d 61 69 6e 74 65  take over mainte
2190: 6e 61 6e 63 65 0a 20 20 20 20 6f 66 20 69 74 2c  nance.    of it,
21a0: 20 61 6e 64 20 77 65 20 63 61 6e 20 65 76 65 6e   and we can even
21b0: 74 75 61 6c 6c 79 20 6d 6f 76 65 20 6f 6e 20 74  tually move on t
21c0: 6f 20 6f 74 68 65 72 20 74 68 69 6e 67 73 2e 0a  o other things..