Artifact 210e4ddb28eb077b7262ac8c2cdb5d2391410f1e:
File
wiki_and_ticket_ideas.txt
part of check-in
[251545cd43]
- Added text notes on ideas for dealing with tickets and wiki.
by
drh on
2007-09-02 20:33:16.
Also file
wiki_and_ticket_ideas.txt
part of check-in
[bbcb6326c9]
- Pulled in the navbar and timeline changes.
by
aku on
2007-09-17 00:58:51.
0000: 54 68 6f 75 67 68 74 73 20 4f 6e 20 48 6f 77 20 Thoughts On How
0010: 54 6f 20 49 6d 70 6c 65 6d 65 6e 74 20 57 69 6b To Implement Wik
0020: 69 20 41 6e 64 20 54 69 63 6b 65 74 73 20 49 6e i And Tickets In
0030: 20 46 6f 73 73 69 6c 0a 0a 54 68 65 20 63 72 75 Fossil..The cru
0040: 78 20 6f 66 20 74 68 65 20 70 72 6f 62 6c 65 6d x of the problem
0050: 20 6f 66 20 77 69 6b 69 20 61 6e 64 20 74 69 63 of wiki and tic
0060: 6b 65 74 73 20 69 73 20 6e 6f 74 20 68 6f 77 0a kets is not how.
0070: 74 6f 20 72 65 6e 64 65 72 20 74 68 65 20 69 6e to render the in
0080: 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 54 68 65 72 formation. Ther
0090: 65 20 61 72 65 20 63 6f 75 6e 74 6c 65 73 73 20 e are countless
00a0: 6f 74 68 65 72 0a 77 69 6b 69 20 61 6e 64 20 74 other.wiki and t
00b0: 69 63 6b 65 74 20 73 79 73 74 65 6d 73 20 74 68 icket systems th
00c0: 61 74 20 68 61 76 65 20 65 78 70 6c 6f 72 65 64 at have explored
00d0: 20 74 68 69 73 20 74 65 72 72 69 74 6f 72 79 2e this territory.
00e0: 0a 57 65 20 68 61 76 65 20 61 20 6c 6f 74 20 6f .We have a lot o
00f0: 66 20 65 78 70 65 72 69 65 6e 63 65 20 72 65 6e f experience ren
0100: 64 65 72 69 6e 67 20 77 69 6b 69 20 61 6e 64 20 dering wiki and
0110: 77 72 69 74 69 6e 67 0a 74 69 63 6b 65 74 69 6e writing.ticketin
0120: 67 20 73 79 73 74 65 6d 73 20 61 6e 64 20 77 65 g systems and we
0130: 20 6b 6e 6f 77 20 68 6f 77 20 74 68 61 74 20 70 know how that p
0140: 61 72 74 20 77 6f 72 6b 73 2e 20 20 54 68 65 0a art works. The.
0150: 68 61 72 64 20 70 61 72 74 20 61 62 6f 75 74 20 hard part about
0160: 64 6f 69 6e 67 20 77 69 6b 69 20 61 6e 64 20 74 doing wiki and t
0170: 69 63 6b 65 74 73 20 69 6e 20 46 6f 73 73 69 6c ickets in Fossil
0180: 20 69 73 0a 66 69 67 75 72 69 6e 67 20 68 6f 77 is.figuring how
0190: 20 68 6f 77 20 74 6f 20 73 79 6e 63 68 72 6f 6e how to synchron
01a0: 69 7a 65 20 74 68 65 20 77 69 6b 69 20 61 6e 64 ize the wiki and
01b0: 20 74 69 63 6b 65 74 73 0a 61 63 72 6f 73 73 20 tickets.across
01c0: 64 69 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 different reposi
01d0: 74 6f 72 69 65 73 2e 0a 0a 54 68 65 72 65 20 61 tories...There a
01e0: 72 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 61 re a number of a
01f0: 70 70 72 6f 61 63 68 65 73 3a 0a 0a 28 31 29 20 pproaches:..(1)
0200: 44 6f 6e 27 74 20 73 79 6e 63 68 72 6f 6e 69 7a Don't synchroniz
0210: 65 2e 20 20 57 72 69 74 65 20 61 20 74 72 61 64 e. Write a trad
0220: 69 74 69 6f 6e 61 6c 20 77 69 6b 69 20 61 6e 64 itional wiki and
0230: 20 74 69 63 6b 65 74 0a 20 20 20 20 73 79 73 74 ticket. syst
0240: 65 6d 20 74 68 61 74 20 6c 69 76 65 73 20 6f 6e em that lives on
0250: 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6f 73 69 a single reposi
0260: 74 6f 72 79 2e 20 20 46 6f 73 73 69 6c 20 77 69 tory. Fossil wi
0270: 6c 6c 0a 20 20 20 20 73 79 6e 63 20 74 68 65 20 ll. sync the
0280: 73 6f 75 72 63 65 20 74 72 65 65 20 66 72 6f 6d source tree from
0290: 20 6f 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 20 one repository
02a0: 74 6f 20 61 6e 6f 74 68 65 72 20 62 75 74 0a 20 to another but.
02b0: 20 20 20 74 68 65 20 77 69 6b 69 20 61 6e 64 20 the wiki and
02c0: 74 69 63 6b 65 74 73 20 6c 69 76 65 20 69 6e 20 tickets live in
02d0: 73 65 70 61 72 61 74 65 20 74 61 62 6c 65 73 20 separate tables
02e0: 6f 66 20 74 68 65 0a 20 20 20 20 64 61 74 61 62 of the. datab
02f0: 61 73 65 20 73 74 61 79 20 6f 6e 20 61 20 73 69 ase stay on a si
0300: 6e 67 6c 65 20 72 65 70 6f 73 69 74 6f 72 79 2e ngle repository.
0310: 0a 0a 28 32 29 20 4d 61 6b 65 20 65 61 63 68 20 ..(2) Make each
0320: 77 69 6b 69 20 70 61 67 65 73 20 61 6e 64 20 65 wiki pages and e
0330: 61 63 68 20 74 69 63 6b 65 74 20 61 20 66 69 6c ach ticket a fil
0340: 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 0a e in the source.
0350: 20 20 20 20 74 72 65 65 2e 20 20 45 61 63 68 20 tree. Each
0360: 63 68 61 6e 67 65 20 74 6f 20 61 20 77 69 6b 69 change to a wiki
0370: 20 70 61 67 65 20 6f 72 20 74 69 63 6b 65 74 20 page or ticket
0380: 63 72 65 61 74 65 73 20 61 20 6e 65 77 0a 20 20 creates a new.
0390: 20 20 62 61 73 65 6c 69 6e 65 2e 20 20 41 63 74 baseline. Act
03a0: 75 61 6c 6c 79 2c 20 77 69 6b 69 20 61 6e 64 20 ually, wiki and
03b0: 74 69 63 6b 65 74 20 63 68 61 6e 67 65 73 20 63 ticket changes c
03c0: 6f 75 6c 64 20 63 6c 75 73 74 65 72 0a 20 20 20 ould cluster.
03d0: 20 73 6f 20 74 68 61 74 20 65 61 63 68 20 6e 65 so that each ne
03e0: 77 20 62 61 73 65 6c 69 6e 65 20 63 6f 6e 74 61 w baseline conta
03f0: 69 6e 65 64 20 6d 75 6c 74 69 70 6c 65 20 77 69 ined multiple wi
0400: 6b 69 20 61 6e 64 0a 20 20 20 20 74 69 63 6b 65 ki and. ticke
0410: 74 20 63 68 61 6e 67 65 73 2c 20 62 75 74 20 61 t changes, but a
0420: 6e 79 20 69 73 6f 6c 61 74 65 64 20 77 69 6b 69 ny isolated wiki
0430: 20 6f 72 20 74 69 63 6b 65 74 20 63 68 61 6e 67 or ticket chang
0440: 65 0a 20 20 20 20 73 74 69 6c 6c 20 72 65 71 75 e. still requ
0450: 69 72 65 73 20 61 20 6e 65 77 20 62 61 73 65 6c ires a new basel
0460: 69 6e 65 2e 0a 0a 28 33 29 20 53 74 6f 72 65 20 ine...(3) Store
0470: 65 61 63 68 20 77 69 6b 69 20 70 61 67 65 20 61 each wiki page a
0480: 6e 64 20 74 69 63 6b 65 74 20 61 73 20 61 20 73 nd ticket as a s
0490: 65 70 61 72 61 74 65 20 62 72 61 6e 63 68 20 6f eparate branch o
04a0: 66 0a 20 20 20 20 74 68 65 20 73 6f 75 72 63 65 f. the source
04b0: 20 74 72 65 65 20 74 68 61 74 20 66 6f 72 6b 73 tree that forks
04c0: 20 61 74 20 74 68 65 20 76 65 72 79 20 72 6f 6f at the very roo
04d0: 74 20 6f 66 20 74 68 65 20 74 72 65 65 2e 0a 20 t of the tree..
04e0: 20 20 20 45 76 65 72 79 20 63 68 61 6e 67 65 20 Every change
04f0: 74 6f 20 61 20 77 69 6b 69 20 70 61 67 65 20 6f to a wiki page o
0500: 72 20 74 69 63 6b 65 74 20 73 74 69 6c 6c 20 72 r ticket still r
0510: 65 71 75 69 72 65 73 20 61 0a 20 20 20 20 6e 65 equires a. ne
0520: 77 20 62 61 73 65 6c 69 6e 65 2c 20 62 75 74 20 w baseline, but
0530: 74 68 65 20 62 61 73 65 6c 69 6e 65 20 63 6f 6e the baseline con
0540: 73 69 73 74 73 20 6f 66 20 73 69 6e 67 6c 65 20 sists of single
0550: 66 69 6c 65 0a 20 20 20 20 63 68 61 6e 67 65 20 file. change
0560: 61 6e 64 20 69 73 20 74 68 75 73 20 71 75 69 74 and is thus quit
0570: 65 20 63 6f 6d 70 61 63 74 20 61 6e 64 20 65 61 e compact and ea
0580: 73 79 20 74 6f 20 6d 61 6e 61 67 65 2e 0a 0a 28 sy to manage...(
0590: 34 29 20 4f 74 68 65 72 20 73 79 6e 63 68 72 6f 4) Other synchro
05a0: 6e 69 7a 61 74 69 6f 6e 20 6d 65 74 68 6f 64 73 nization methods
05b0: 2e 20 20 57 65 20 63 6f 75 6c 64 20 74 72 65 61 . We could trea
05c0: 74 20 74 68 65 20 77 69 6b 69 0a 20 20 20 20 61 t the wiki. a
05d0: 6e 64 2f 6f 72 20 74 69 63 6b 65 74 73 20 61 73 nd/or tickets as
05e0: 20 61 20 63 6f 6d 70 6c 65 74 65 6c 79 20 73 65 a completely se
05f0: 70 61 72 61 74 65 20 73 79 73 74 65 6d 20 77 69 parate system wi
0600: 74 68 20 69 74 73 0a 20 20 20 20 6f 6e 20 73 79 th its. on sy
0610: 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 70 72 nchronization pr
0620: 6f 74 6f 63 6f 6c 20 74 68 61 74 20 6a 75 73 74 otocol that just
0630: 20 68 61 70 70 65 6e 73 20 74 6f 20 6c 69 76 65 happens to live
0640: 20 69 6e 0a 20 20 20 20 74 68 65 20 73 61 6d 65 in. the same
0650: 20 65 78 65 63 75 74 61 62 6c 65 20 61 6e 64 20 executable and
0660: 75 73 65 20 74 68 65 20 73 61 6d 65 20 64 61 74 use the same dat
0670: 61 62 61 73 65 20 61 73 20 74 68 65 0a 20 20 20 abase as the.
0680: 20 73 6f 75 72 63 65 20 74 72 65 65 20 73 79 6e source tree syn
0690: 63 20 6d 65 63 68 61 6e 69 73 6d 2e 0a 0a 28 35 c mechanism...(5
06a0: 29 20 48 79 62 72 69 64 20 61 70 70 72 6f 61 63 ) Hybrid approac
06b0: 68 65 73 2e 20 20 4f 6e 65 20 63 61 6e 20 63 6f hes. One can co
06c0: 6d 62 69 6e 65 20 61 6e 79 20 6f 66 20 74 68 65 mbine any of the
06d0: 20 70 72 65 76 69 6f 75 73 0a 20 20 20 20 66 6f previous. fo
06e0: 75 72 20 61 70 70 72 6f 61 63 68 65 73 20 74 6f ur approaches to
06f0: 20 77 69 6b 69 20 61 6e 64 20 74 69 63 6b 65 74 wiki and ticket
0700: 20 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e synchronization
0710: 20 74 6f 0a 20 20 20 20 67 65 6e 65 72 61 74 65 to. generate
0720: 20 61 20 68 79 62 72 69 64 2e 0a 0a 54 68 65 20 a hybrid...The
0730: 61 64 76 61 6e 74 61 67 65 20 6f 66 20 28 31 29 advantage of (1)
0740: 20 69 73 20 74 68 61 74 20 69 74 20 69 73 20 73 is that it is s
0750: 69 6d 70 6c 65 20 61 6e 64 20 64 69 72 65 63 74 imple and direct
0760: 20 61 6e 64 0a 65 61 73 79 20 74 6f 20 69 6d 70 and.easy to imp
0770: 6c 65 6d 65 6e 74 2e 20 20 57 65 20 61 6c 72 65 lement. We alre
0780: 61 64 79 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 ady know how to
0790: 64 6f 20 77 69 6b 69 20 61 6e 64 20 74 69 63 6b do wiki and tick
07a0: 65 74 73 0a 6f 6e 20 61 20 73 69 6e 67 6c 65 20 ets.on a single
07b0: 73 65 72 76 65 72 20 77 69 74 68 20 61 20 64 61 server with a da
07c0: 74 61 62 61 73 65 2e 20 20 43 56 53 54 72 61 63 tabase. CVSTrac
07d0: 20 69 73 20 61 20 67 6f 6f 64 20 65 78 61 6d 70 is a good examp
07e0: 6c 65 0a 6f 66 20 74 68 65 73 65 20 61 6e 64 20 le.of these and
07f0: 74 68 65 72 65 20 61 72 65 20 63 6f 75 6e 74 6c there are countl
0800: 65 73 73 20 6f 74 68 65 72 20 65 78 63 65 6c 6c ess other excell
0810: 65 6e 74 20 65 78 61 6d 70 6c 65 73 2e 0a 4d 65 ent examples..Me
0820: 74 68 6f 64 20 28 31 29 20 61 6c 73 6f 20 6b 65 thod (1) also ke
0830: 65 70 73 20 74 68 65 20 77 69 6b 69 20 61 6e 64 eps the wiki and
0840: 20 74 69 63 6b 65 74 73 20 64 69 73 74 69 6e 63 tickets distinc
0850: 74 20 66 72 6f 6d 20 74 68 65 0a 73 6f 75 72 63 t from the.sourc
0860: 65 20 66 69 6c 65 73 2e 20 20 54 68 65 20 70 72 e files. The pr
0870: 6f 62 6c 65 6d 20 77 69 74 68 20 28 31 29 20 69 oblem with (1) i
0880: 73 20 74 68 61 74 20 79 6f 75 20 63 61 6e 6e 6f s that you canno
0890: 74 20 74 61 6b 65 0a 74 68 65 20 77 69 6b 69 20 t take.the wiki
08a0: 6f 72 20 74 69 63 6b 65 74 73 20 77 69 74 68 20 or tickets with
08b0: 79 6f 75 72 20 66 6f 72 20 64 69 73 63 6f 6e 6e your for disconn
08c0: 65 63 74 65 64 20 6f 70 65 72 61 74 69 6f 6e 2e ected operation.
08d0: 0a 57 65 6c 6c 2c 20 6d 61 79 62 65 20 79 6f 75 .Well, maybe you
08e0: 20 63 6f 75 6c 64 20 70 75 6c 6c 20 64 6f 77 6e could pull down
08f0: 20 61 20 63 6f 6d 70 6c 65 74 65 20 63 6f 70 79 a complete copy
0900: 20 6f 66 20 74 68 65 20 77 69 6b 69 0a 61 6e 64 of the wiki.and
0910: 20 74 69 63 6b 65 74 20 74 61 62 6c 65 73 20 74 ticket tables t
0920: 6f 20 63 61 72 72 79 20 77 69 74 68 20 79 6f 75 o carry with you
0930: 20 6f 6e 20 74 68 65 20 61 69 72 70 6c 61 6e 65 on the airplane
0940: 2c 20 62 75 74 20 65 76 65 6e 0a 74 68 65 6e 20 , but even.then
0950: 79 6f 75 20 77 6f 75 6c 64 20 6e 6f 74 20 62 65 you would not be
0960: 20 61 62 6c 65 20 74 6f 20 6d 61 6b 65 20 63 68 able to make ch
0970: 61 6e 67 65 73 20 61 6e 64 20 74 68 65 6e 20 6c anges and then l
0980: 61 74 65 72 0a 73 79 6e 63 68 72 6f 6e 69 7a 65 ater.synchronize
0990: 20 74 68 6f 73 65 20 63 68 61 6e 67 65 73 20 77 those changes w
09a0: 69 74 68 20 74 68 65 20 6d 61 69 6e 20 72 65 70 ith the main rep
09b0: 6f 73 69 74 6f 72 79 2e 0a 0a 4d 65 74 68 6f 64 ository...Method
09c0: 20 28 32 29 20 6d 61 6b 65 73 20 65 61 63 68 20 (2) makes each
09d0: 77 69 6b 69 20 70 61 67 65 20 61 6e 64 20 65 61 wiki page and ea
09e0: 63 68 20 74 69 63 6b 65 74 20 61 20 73 65 70 61 ch ticket a sepa
09f0: 72 61 74 65 0a 66 69 6c 65 20 69 6e 20 74 68 65 rate.file in the
0a00: 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 54 source tree. T
0a10: 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 74 his means that t
0a20: 68 65 20 65 78 69 73 74 69 6e 67 20 76 65 72 73 he existing vers
0a30: 69 6f 6e 69 6e 67 0a 61 6e 64 20 73 79 6e 63 68 ioning.and synch
0a40: 72 6f 6e 69 7a 61 74 69 6f 6e 20 6c 6f 67 69 63 ronization logic
0a50: 20 69 73 20 75 6e 63 68 61 6e 67 65 64 2e 20 20 is unchanged.
0a60: 41 6e 64 20 74 68 65 20 72 65 70 6f 73 69 74 6f And the reposito
0a70: 72 79 0a 66 69 6c 65 20 66 6f 72 6d 61 74 20 69 ry.file format i
0a80: 73 20 73 69 6d 70 6c 65 20 61 6e 64 20 65 61 73 s simple and eas
0a90: 79 20 74 6f 20 64 65 73 63 72 69 62 65 2e 20 20 y to describe.
0aa0: 28 54 68 65 20 73 69 6d 70 6c 69 63 69 74 79 0a (The simplicity.
0ab0: 6f 66 20 74 68 65 20 66 69 6c 65 20 66 6f 72 6d of the file form
0ac0: 61 74 20 69 73 20 61 6e 20 69 6d 70 6f 72 74 61 at is an importa
0ad0: 6e 74 20 66 65 61 74 75 72 65 20 66 6f 72 20 6d nt feature for m
0ae0: 79 20 69 6e 74 65 6e 64 65 64 0a 75 73 65 20 6f y intended.use o
0af0: 66 20 46 6f 73 73 69 6c 2e 20 20 54 68 65 20 61 f Fossil. The a
0b00: 62 69 6c 69 74 79 20 74 6f 20 72 65 63 6f 6e 73 bility to recons
0b10: 74 72 75 63 74 20 61 20 62 61 73 65 6c 69 6e 65 truct a baseline
0b20: 20 66 72 6f 6d 0a 72 61 77 20 61 72 74 69 66 61 from.raw artifa
0b30: 63 74 73 20 77 69 74 68 20 6e 6f 20 73 70 65 63 cts with no spec
0b40: 69 61 6c 20 73 6f 66 74 77 61 72 65 20 69 73 20 ial software is
0b50: 61 6e 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 6f an important tho
0b60: 75 67 68 0a 6e 6f 74 20 77 65 6c 6c 20 64 65 73 ugh.not well des
0b70: 63 72 69 62 65 64 20 66 65 61 74 75 72 65 20 6f cribed feature o
0b80: 66 20 46 6f 73 73 69 6c 2e 29 20 20 48 61 76 69 f Fossil.) Havi
0b90: 6e 67 20 77 69 6b 69 20 61 6e 64 20 74 69 63 6b ng wiki and tick
0ba0: 65 74 73 0a 72 65 61 64 69 6c 79 20 61 74 20 68 ets.readily at h
0bb0: 61 6e 64 20 61 6c 73 6f 20 67 69 76 65 73 20 74 and also gives t
0bc0: 68 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 70 he interesting p
0bd0: 6f 73 73 69 62 69 6c 69 74 79 20 6f 66 20 65 64 ossibility of ed
0be0: 69 74 69 6e 67 0a 74 69 63 6b 65 74 73 20 61 6e iting.tickets an
0bf0: 64 20 65 73 70 65 63 69 61 6c 6c 79 20 77 69 6b d especially wik
0c00: 69 20 75 73 69 6e 67 20 79 6f 75 72 20 66 61 76 i using your fav
0c10: 6f 72 69 74 65 20 74 65 78 74 20 65 64 69 74 6f orite text edito
0c20: 72 2c 0a 72 61 74 68 65 72 20 74 68 61 6e 20 68 r,.rather than h
0c30: 61 76 69 6e 67 20 74 6f 20 75 73 65 20 61 6e 20 aving to use an
0c40: 6f 66 74 65 6e 20 63 6c 75 6e 6b 79 20 77 65 62 often clunky web
0c50: 20 69 6e 74 65 72 66 61 63 65 2e 0a 54 68 65 20 interface..The
0c60: 77 65 62 20 69 6e 74 65 72 66 61 63 65 20 69 73 web interface is
0c70: 20 73 74 69 6c 6c 20 70 72 6f 76 69 64 65 64 2c still provided,
0c80: 20 6f 66 20 63 6f 75 72 73 65 2c 20 62 75 74 20 of course, but
0c90: 69 66 20 74 68 65 0a 77 69 6b 69 20 73 6f 75 72 if the.wiki sour
0ca0: 63 65 20 74 65 78 74 20 69 73 20 74 68 65 72 65 ce text is there
0cb0: 20 69 6e 20 61 20 66 69 6c 65 20 69 6e 20 66 72 in a file in fr
0cc0: 6f 6e 74 20 6f 66 20 79 6f 75 2c 20 68 6f 77 20 ont of you, how
0cd0: 6d 75 63 68 0a 65 61 73 69 65 72 20 69 74 20 77 much.easier it w
0ce0: 6f 75 6c 64 20 62 65 20 74 6f 20 65 64 69 74 20 ould be to edit
0cf0: 69 74 20 75 73 69 6e 67 20 65 6d 61 63 73 20 6f it using emacs o
0d00: 72 20 76 69 2e 0a 0a 41 6d 6f 6e 67 20 74 68 65 r vi...Among the
0d10: 20 64 69 73 61 64 76 61 6e 74 61 67 65 73 20 6f disadvantages o
0d20: 66 20 28 32 29 20 69 73 20 74 68 61 74 20 69 74 f (2) is that it
0d30: 20 67 72 65 61 74 6c 79 20 69 6e 63 72 65 61 73 greatly increas
0d40: 65 73 0a 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 es.the number of
0d50: 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 73 6f files in the so
0d60: 75 72 63 65 20 74 72 65 65 20 62 65 63 61 75 73 urce tree becaus
0d70: 65 20 6f 66 20 74 68 65 20 61 64 64 65 64 0a 77 e of the added.w
0d80: 69 6b 69 20 61 6e 64 20 74 69 63 6b 65 74 73 2e iki and tickets.
0d90: 20 20 54 68 65 20 53 51 4c 69 74 65 20 70 72 6f The SQLite pro
0da0: 6a 65 63 74 2c 20 66 6f 72 20 65 78 61 6d 70 6c ject, for exampl
0db0: 65 2c 20 63 75 72 72 65 6e 74 6c 79 20 0a 68 61 e, currently .ha
0dc0: 73 20 61 62 6f 75 74 20 35 36 30 20 66 69 6c 65 s about 560 file
0dd0: 73 20 69 6e 20 74 68 65 20 74 72 65 65 2e 20 20 s in the tree.
0de0: 42 75 74 20 74 68 65 72 65 20 61 72 65 20 61 72 But there are ar
0df0: 6f 75 6e 64 20 32 36 30 30 20 0a 74 69 63 6b 65 ound 2600 .ticke
0e00: 74 73 20 61 6e 64 20 31 32 30 20 77 69 6b 69 20 ts and 120 wiki
0e10: 70 61 67 65 73 2e 20 20 49 66 20 77 65 20 72 65 pages. If we re
0e20: 6d 6f 76 65 20 74 69 63 6b 65 74 73 20 74 68 61 move tickets tha
0e30: 74 20 61 72 65 20 0a 63 6c 6f 73 65 64 20 77 65 t are .closed we
0e40: 20 63 61 6e 20 67 65 74 20 64 6f 77 6e 20 74 6f can get down to
0e50: 20 61 72 6f 75 6e 64 20 38 30 30 20 74 69 63 6b around 800 tick
0e60: 65 74 73 2e 20 20 41 6e 64 20 69 66 20 49 20 77 ets. And if I w
0e70: 65 72 65 20 0a 6d 6f 72 65 20 61 67 67 72 65 73 ere .more aggres
0e80: 73 69 76 65 20 61 62 6f 75 74 20 63 6c 6f 73 69 sive about closi
0e90: 6e 67 20 74 69 63 6b 65 74 73 2c 20 74 68 61 74 ng tickets, that
0ea0: 20 6e 75 6d 62 65 72 20 6d 69 67 68 74 20 62 65 number might be
0eb0: 20 0a 6c 6f 77 65 72 2e 20 20 42 75 74 20 74 68 .lower. But th
0ec0: 65 72 65 20 61 72 65 20 73 74 69 6c 6c 20 6d 6f ere are still mo
0ed0: 72 65 20 74 69 63 6b 65 74 73 20 74 68 61 6e 20 re tickets than
0ee0: 74 68 65 72 65 20 61 72 65 20 73 6f 75 72 63 65 there are source
0ef0: 20 0a 66 69 6c 65 73 2e 20 20 54 68 65 20 6e 75 .files. The nu
0f00: 6d 62 65 72 20 6f 66 20 77 69 6b 69 20 70 61 67 mber of wiki pag
0f10: 65 73 20 69 73 20 6e 6f 74 20 74 68 61 74 20 67 es is not that g
0f20: 72 65 61 74 2c 20 62 75 74 20 6f 6e 20 0a 74 68 reat, but on .th
0f30: 65 20 6f 74 68 65 72 20 68 61 6e 64 20 74 68 65 e other hand the
0f40: 20 53 51 4c 69 74 65 20 77 69 6b 69 20 69 73 20 SQLite wiki is
0f50: 6e 6f 74 20 61 63 74 69 76 65 20 6c 69 6b 65 20 not active like
0f60: 74 68 65 20 54 63 6c 2f 54 6b 20 0a 77 69 6b 69 the Tcl/Tk .wiki
0f70: 2e 0a 0a 41 6e 6f 74 68 65 72 20 64 69 73 61 64 ...Another disad
0f80: 76 61 6e 74 61 67 65 20 6f 66 20 28 32 29 20 69 vantage of (2) i
0f90: 73 20 74 68 61 74 20 79 6f 75 20 63 61 6e 6e 6f s that you canno
0fa0: 74 20 61 64 64 20 61 20 74 69 63 6b 65 74 0a 6f t add a ticket.o
0fb0: 72 20 66 69 78 20 61 20 74 69 63 6b 65 74 20 6f r fix a ticket o
0fc0: 6e 20 61 20 62 61 73 65 6c 69 6e 65 20 61 66 74 n a baseline aft
0fd0: 65 72 20 74 68 65 20 62 61 73 65 6c 69 6e 65 20 er the baseline
0fe0: 69 73 20 63 72 65 61 74 65 64 2e 0a 54 6f 20 61 is created..To a
0ff0: 64 64 20 6f 72 20 66 69 78 20 61 20 74 69 63 6b dd or fix a tick
1000: 65 74 2c 20 79 6f 75 20 68 61 76 65 20 74 6f 20 et, you have to
1010: 63 72 65 61 74 65 20 61 20 6e 65 77 20 62 61 73 create a new bas
1020: 65 6c 69 6e 65 2e 0a 54 68 61 74 20 6d 65 61 6e eline..That mean
1030: 73 20 74 68 61 74 20 69 66 20 61 20 62 75 67 20 s that if a bug
1040: 69 73 20 64 69 73 63 6f 76 65 72 65 64 20 69 6e is discovered in
1050: 20 61 20 62 61 73 65 6c 69 6e 65 20 61 66 74 65 a baseline afte
1060: 72 20 69 74 73 0a 72 65 6c 65 61 73 65 2c 20 79 r its.release, y
1070: 6f 75 20 63 61 6e 6e 6f 74 20 61 64 64 20 74 68 ou cannot add th
1080: 65 20 74 69 63 6b 65 74 20 74 6f 20 74 68 65 20 e ticket to the
1090: 62 61 73 65 6c 69 6e 65 20 69 6e 20 77 68 69 63 baseline in whic
10a0: 68 0a 74 68 65 20 62 75 67 20 77 61 73 20 66 6f h.the bug was fo
10b0: 75 6e 64 3b 20 79 6f 75 20 68 61 76 65 20 74 6f und; you have to
10c0: 20 70 75 74 20 74 68 65 20 74 69 63 6b 65 74 20 put the ticket
10d0: 69 6e 20 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 62 in a follow-on.b
10e0: 61 73 65 6c 69 6e 65 2e 20 20 54 68 69 73 20 73 aseline. This s
10f0: 65 65 6d 73 20 77 65 69 72 64 2e 20 20 50 65 72 eems weird. Per
1100: 68 61 70 73 20 73 6f 6d 65 20 61 64 64 69 74 69 haps some additi
1110: 6f 6e 61 6c 20 70 72 6f 63 65 73 73 69 6e 67 0a onal processing.
1120: 69 6e 73 69 64 65 20 6f 66 20 66 6f 73 73 69 6c inside of fossil
1130: 20 63 61 6e 20 69 64 65 6e 74 69 66 79 20 77 68 can identify wh
1140: 65 6e 20 74 69 63 6b 65 74 73 20 61 72 65 20 61 en tickets are a
1150: 64 64 65 64 20 74 6f 20 73 75 62 73 65 71 75 65 dded to subseque
1160: 6e 74 0a 62 61 73 65 6c 69 6e 65 73 20 61 6e 64 nt.baselines and
1170: 20 74 61 67 20 70 72 69 6f 72 20 62 61 73 65 6c tag prior basel
1180: 69 6e 65 73 20 61 63 63 6f 72 64 69 6e 67 6c 79 ines accordingly
1190: 2e 20 20 4f 6e 20 74 68 65 20 6f 74 68 65 72 20 . On the other
11a0: 68 61 6e 64 2c 0a 62 65 63 61 75 73 65 20 74 69 hand,.because ti
11b0: 63 6b 65 74 73 20 61 72 65 20 70 61 72 74 20 6f ckets are part o
11c0: 66 20 74 68 65 20 62 61 73 65 6c 69 6e 65 2c 20 f the baseline,
11d0: 74 69 63 6b 65 74 73 20 66 69 78 65 64 20 69 6e tickets fixed in
11e0: 20 6f 6e 65 0a 62 72 61 6e 63 68 20 72 65 6d 61 one.branch rema
11f0: 69 6e 20 6f 70 65 6e 20 69 6e 20 70 61 72 61 6c in open in paral
1200: 6c 65 6c 20 62 72 61 6e 63 68 65 73 20 75 6e 74 lel branches unt
1210: 69 6c 20 66 69 78 65 64 20 73 65 70 61 72 61 74 il fixed separat
1220: 65 6c 79 0a 74 68 65 72 65 2c 20 61 73 20 74 68 ely.there, as th
1230: 65 79 20 73 68 6f 75 6c 64 20 62 65 2e 0a 0a 41 ey should be...A
1240: 6e 79 20 69 6e 74 65 72 65 73 74 69 6e 67 20 71 ny interesting q
1250: 75 65 73 74 69 6f 6e 20 77 69 74 68 20 6d 65 74 uestion with met
1260: 68 6f 64 20 28 32 29 20 69 73 20 77 68 61 74 20 hod (2) is what
1270: 62 61 73 65 6c 69 6e 65 20 74 6f 0a 75 73 65 20 baseline to.use
1280: 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 77 for displaying w
1290: 69 6b 69 20 61 6e 64 20 74 69 63 6b 65 74 73 20 iki and tickets
12a0: 6f 6e 20 74 68 65 20 77 65 62 20 69 6e 74 65 72 on the web inter
12b0: 66 61 63 65 2e 0a 43 6c 65 61 72 6c 79 20 74 68 face..Clearly th
12c0: 65 20 64 69 73 70 6c 61 79 20 73 68 6f 75 6c 64 e display should
12d0: 20 75 73 65 20 61 20 6c 65 61 66 20 62 61 73 65 use a leaf base
12e0: 6c 69 6e 65 2e 20 20 42 75 74 20 74 68 65 0a 70 line. But the.p
12f0: 72 6f 6a 65 63 74 20 6d 69 67 68 74 20 68 61 76 roject might hav
1300: 65 20 73 65 76 65 72 61 6c 20 70 65 65 72 20 62 e several peer b
1310: 72 61 6e 63 68 65 73 20 65 61 63 68 20 77 69 74 ranches each wit
1320: 68 20 74 68 65 69 72 0a 6f 77 6e 20 6c 65 61 76 h their.own leav
1330: 65 73 2e 20 20 57 68 69 63 68 20 6c 65 61 66 20 es. Which leaf
1340: 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 74 should be used t
1350: 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 77 69 o display the wi
1360: 6b 69 0a 61 6e 64 20 74 69 63 6b 65 74 73 3f 20 ki.and tickets?
1370: 20 49 73 20 74 68 65 72 65 20 61 6e 20 69 6e 74 Is there an int
1380: 65 72 66 61 63 65 20 74 68 61 74 20 61 6c 6c 6f erface that allo
1390: 77 73 20 74 68 65 20 75 73 65 72 20 74 6f 0a 62 ws the user to.b
13a0: 72 6f 77 73 65 20 74 68 72 6f 75 67 68 20 77 69 rowse through wi
13b0: 6b 69 20 61 6e 64 20 74 69 63 6b 65 74 73 20 66 ki and tickets f
13c0: 72 6f 6d 20 70 72 69 6f 72 20 62 61 73 65 6c 69 rom prior baseli
13d0: 6e 65 73 3f 0a 0a 54 68 65 20 74 68 69 72 64 20 nes?..The third
13e0: 6d 65 74 68 6f 64 20 73 6f 6c 76 65 73 20 74 68 method solves th
13f0: 65 20 6d 61 6e 79 2d 66 69 6c 65 73 20 70 72 6f e many-files pro
1400: 62 6c 65 6d 20 6f 66 20 6d 65 74 68 6f 64 20 28 blem of method (
1410: 32 29 2e 0a 49 6e 20 28 33 29 2c 20 65 61 63 68 2)..In (3), each
1420: 20 77 69 6b 69 20 70 61 67 65 20 61 6e 64 20 65 wiki page and e
1430: 76 65 72 20 74 69 63 6b 65 74 20 62 65 63 6f 6d ver ticket becom
1440: 65 73 20 61 20 73 65 70 61 72 61 74 65 0a 62 72 es a separate.br
1450: 61 6e 63 68 20 6f 66 20 74 68 65 20 62 61 73 65 anch of the base
1460: 6c 69 6e 65 20 63 68 61 6e 67 65 20 68 69 65 72 line change hier
1470: 61 72 63 68 79 2e 20 20 53 6f 20 74 68 65 20 6e archy. So the n
1480: 75 6d 62 65 72 20 6f 66 20 0a 66 69 6c 65 73 20 umber of .files
1490: 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 74 72 in the source tr
14a0: 65 65 20 72 65 6d 61 69 6e 73 20 73 6d 61 6c 6c ee remains small
14b0: 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 68 . The problem h
14c0: 65 72 65 20 69 73 0a 74 68 65 20 6e 75 6d 62 65 ere is.the numbe
14d0: 72 20 6f 66 20 62 72 61 6e 63 68 65 73 20 69 6e r of branches in
14e0: 20 74 68 65 20 62 61 73 65 6c 69 6e 65 20 68 69 the baseline hi
14f0: 65 72 61 72 63 68 79 20 65 78 70 6c 6f 64 65 73 erarchy explodes
1500: 2e 0a 54 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 ..The amount of
1510: 6e 65 74 77 6f 72 6b 20 74 72 61 66 66 69 63 20 network traffic
1520: 75 73 65 64 20 62 79 20 74 68 65 20 73 79 6e 63 used by the sync
1530: 68 72 6f 6e 69 7a 61 74 69 6f 6e 0a 70 72 6f 74 hronization.prot
1540: 6f 63 6f 6c 20 28 61 6e 64 20 74 6f 20 73 6f 6d ocol (and to som
1550: 65 20 64 65 67 72 65 65 20 74 68 65 20 61 6d 6f e degree the amo
1560: 75 6e 74 20 6f 66 20 43 50 55 20 74 69 6d 65 29 unt of CPU time)
1570: 20 69 73 0a 70 72 6f 70 6f 72 74 69 6f 6e 61 6c is.proportional
1580: 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 6f to the number o
1590: 66 20 6c 65 61 76 65 73 20 69 6e 20 74 68 65 20 f leaves in the
15a0: 62 61 73 65 6c 69 6e 65 20 68 69 65 72 61 72 63 baseline hierarc
15b0: 68 79 2e 0a 49 66 20 65 76 65 72 79 20 77 69 6b hy..If every wik
15c0: 69 20 70 61 67 65 20 61 6e 64 20 65 76 65 72 79 i page and every
15d0: 20 74 69 63 6b 65 74 20 69 73 20 69 6e 20 69 74 ticket is in it
15e0: 73 20 6f 77 6e 20 74 72 65 65 20 77 69 74 68 0a s own tree with.
15f0: 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 6c 65 61 at least one lea
1600: 66 2c 20 74 68 65 6e 20 73 75 64 64 65 6e 6c 79 f, then suddenly
1610: 20 74 68 65 20 70 72 6f 6a 65 63 74 20 67 6f 65 the project goe
1620: 73 20 66 72 6f 6d 20 68 61 76 65 0a 61 20 36 20 s from have.a 6
1630: 6f 72 20 31 32 20 6c 65 61 76 65 73 20 74 6f 20 or 12 leaves to
1640: 68 61 76 69 6e 67 20 74 68 6f 75 73 61 6e 64 73 having thousands
1650: 2e 20 20 54 68 65 20 73 79 6e 63 68 72 6f 6e 69 . The synchroni
1660: 7a 61 74 69 6f 6e 0a 70 72 6f 74 6f 63 6f 6c 20 zation.protocol
1670: 77 6f 75 6c 64 20 68 61 76 65 20 74 6f 20 62 65 would have to be
1680: 20 65 6e 68 61 6e 63 65 64 20 74 6f 20 64 65 61 enhanced to dea
1690: 6c 20 77 69 74 68 20 74 68 69 73 2e 20 20 49 20 l with this. I
16a0: 68 61 76 65 0a 6f 75 74 6c 69 6e 65 64 20 77 61 have.outlined wa
16b0: 79 73 20 6f 66 20 64 6f 69 6e 67 20 74 68 69 73 ys of doing this
16c0: 2c 20 62 75 74 20 74 68 65 79 20 69 6e 76 6f 6c , but they invol
16d0: 76 65 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 0a ve more complex.
16e0: 66 69 6c 65 20 66 6f 72 6d 61 74 20 61 6e 64 20 file format and
16f0: 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 more complicated
1700: 20 77 69 72 65 20 70 72 6f 74 6f 63 6f 6c 73 2e wire protocols.
1710: 20 20 4d 79 20 61 73 73 65 73 73 6d 65 6e 74 0a My assessment.
1720: 69 73 20 74 68 61 74 20 74 68 69 73 20 61 70 70 is that this app
1730: 72 6f 61 63 68 20 69 73 20 6e 6f 74 20 63 6f 6e roach is not con
1740: 73 69 73 74 65 6e 74 20 77 69 74 68 20 73 69 6d sistent with sim
1750: 70 6c 69 63 69 74 79 2e 0a 0a 49 6e 20 74 68 65 plicity...In the
1760: 20 6c 69 73 74 20 61 62 6f 76 65 2c 20 49 20 6d list above, I m
1770: 65 6e 74 69 6f 6e 20 6d 65 74 68 6f 64 73 20 28 ention methods (
1780: 34 29 20 61 6e 64 20 28 35 29 20 6d 6f 73 74 6c 4) and (5) mostl
1790: 79 20 61 73 20 61 0a 77 61 79 20 6f 66 20 73 68 y as a.way of sh
17a0: 6f 77 69 6e 67 20 74 68 61 74 20 74 68 65 20 6c owing that the l
17b0: 69 73 74 20 6f 66 20 28 31 29 20 74 68 72 6f 75 ist of (1) throu
17c0: 67 68 20 28 33 29 20 64 6f 65 73 20 6e 6f 74 20 gh (3) does not
17d0: 69 6e 74 65 6e 64 0a 74 6f 20 62 65 20 65 78 68 intend.to be exh
17e0: 61 75 73 74 69 76 65 2e 20 20 4f 6e 65 20 63 61 austive. One ca
17f0: 6e 20 63 65 72 74 61 69 6e 6c 79 20 64 65 76 69 n certainly devi
1800: 73 65 20 76 61 72 69 61 74 69 6f 6e 73 20 6f 6e se variations on
1810: 20 0a 6d 65 74 68 6f 64 73 20 28 31 29 20 74 68 .methods (1) th
1820: 72 6f 75 67 68 20 28 33 29 20 74 6f 20 61 63 63 rough (3) to acc
1830: 6f 6d 70 6c 69 73 68 20 74 68 65 20 73 61 6d 65 omplish the same
1840: 20 74 68 69 6e 67 2e 20 20 41 6e 64 20 74 68 65 thing. And the
1850: 72 65 0a 6d 69 67 68 74 20 62 65 20 6f 74 68 65 re.might be othe
1860: 72 20 74 65 63 68 6e 69 71 75 65 73 20 74 68 61 r techniques tha
1870: 74 20 49 20 68 61 76 65 20 6e 6f 74 20 74 68 6f t I have not tho
1880: 75 67 68 74 20 6f 66 20 79 65 74 2e 0a 0a 49 20 ught of yet...I
1890: 68 61 76 65 20 62 65 65 6e 20 76 61 63 69 6c 6c have been vacill
18a0: 61 74 69 6e 67 20 62 65 74 77 65 65 6e 20 6d 65 ating between me
18b0: 74 68 6f 64 73 20 28 31 29 2c 20 28 32 29 2c 20 thods (1), (2),
18c0: 61 6e 64 20 28 33 29 20 66 6f 72 0a 6d 6f 6e 74 and (3) for.mont
18d0: 68 73 2e 20 20 41 73 20 6f 66 20 74 68 69 73 20 hs. As of this
18e0: 77 72 69 74 69 6e 67 2c 20 49 20 61 6d 20 6c 65 writing, I am le
18f0: 61 6e 69 6e 67 20 74 6f 77 61 72 64 20 28 32 29 aning toward (2)
1900: 20 77 69 74 68 20 0a 63 61 72 65 66 75 6c 20 61 with .careful a
1910: 74 74 65 6e 74 69 6f 6e 20 74 6f 20 74 68 65 20 ttention to the
1920: 74 69 63 6b 65 74 20 69 6e 74 65 72 70 72 65 74 ticket interpret
1930: 65 72 20 77 69 74 68 69 6e 20 46 6f 73 73 69 6c er within Fossil
1940: 20 73 6f 0a 74 68 61 74 20 77 68 65 6e 20 61 20 so.that when a
1950: 74 69 63 6b 65 74 20 69 6e 20 61 20 6c 61 74 65 ticket in a late
1960: 72 20 62 61 73 65 6c 69 6e 65 20 69 73 20 77 72 r baseline is wr
1970: 69 74 74 65 6e 20 61 67 61 69 6e 73 74 20 61 6e itten against an
1980: 0a 65 61 72 6c 69 65 72 20 62 61 73 65 6c 69 6e .earlier baselin
1990: 65 2c 20 61 20 6c 69 6e 6b 20 69 73 20 65 73 74 e, a link is est
19a0: 61 62 6c 69 73 68 65 64 20 69 6e 20 74 68 65 20 ablished in the
19b0: 64 61 74 61 62 61 73 65 20 73 6f 20 74 68 61 74 database so that
19c0: 0a 74 68 65 20 6c 61 74 65 72 20 74 69 63 6b 65 .the later ticke
19d0: 74 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 77 t is displayed w
19e0: 69 74 68 20 74 68 65 20 65 61 72 6c 69 65 72 20 ith the earlier
19f0: 62 61 73 65 6c 69 6e 65 2e 20 20 28 54 68 65 0a baseline. (The.
1a00: 64 65 74 61 69 6c 73 20 61 72 65 20 73 74 69 6c details are stil
1a10: 6c 20 73 6b 65 74 63 68 79 2e 29 20 20 53 63 61 l sketchy.) Sca
1a20: 6c 69 6e 67 20 69 73 20 73 74 69 6c 6c 20 61 6e ling is still an
1a30: 20 69 73 73 75 65 2e 20 20 42 75 74 0a 66 6f 72 issue. But.for
1a40: 20 74 68 65 20 6b 69 6e 64 73 20 6f 66 20 70 72 the kinds of pr
1a50: 6f 6a 65 63 74 73 20 74 68 61 74 20 46 6f 73 73 ojects that Foss
1a60: 69 6c 20 69 73 20 69 6e 74 65 6e 64 65 64 2c 20 il is intended,
1a70: 49 20 64 6f 20 6e 6f 74 0a 65 78 70 65 63 74 20 I do not.expect
1a80: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 77 69 the number of wi
1a90: 6b 69 20 70 61 67 65 73 20 6f 72 20 74 69 63 6b ki pages or tick
1aa0: 65 74 73 20 74 6f 20 62 65 63 6f 6d 65 20 65 78 ets to become ex
1ab0: 63 65 73 73 69 76 65 2e 0a 46 6f 73 73 69 6c 20 cessive..Fossil
1ac0: 69 73 20 6e 6f 74 20 69 6e 74 65 6e 64 65 64 20 is not intended
1ad0: 74 6f 20 62 65 20 61 20 72 65 70 6c 61 63 65 6d to be a replacem
1ae0: 65 6e 74 20 66 6f 72 20 74 68 65 20 74 63 6c 65 ent for the tcle
1af0: 72 27 73 20 77 69 6b 69 0a 6f 72 20 66 6f 72 20 r's wiki.or for
1b00: 77 69 6b 69 70 65 64 69 61 2e 20 20 46 6f 73 73 wikipedia. Foss
1b10: 69 6c 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 il is designed t
1b20: 6f 20 62 65 20 61 20 63 6f 6e 76 65 6e 69 65 6e o be a convenien
1b30: 74 20 61 6e 64 0a 73 65 6c 66 2d 63 6f 6e 74 61 t and.self-conta
1b40: 69 6e 65 64 20 43 4d 20 73 79 73 74 65 6d 20 66 ined CM system f
1b50: 6f 72 20 61 6e 20 53 51 4c 69 74 65 2d 73 69 7a or an SQLite-siz
1b60: 65 64 20 70 72 6f 6a 65 63 74 2e 20 20 4a 75 73 ed project. Jus
1b70: 74 0a 61 73 20 53 51 4c 69 74 65 20 69 73 20 6e t.as SQLite is n
1b80: 6f 74 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 72 ot intended to r
1b90: 65 70 6c 61 63 65 20 4f 72 61 63 6c 65 2c 20 73 eplace Oracle, s
1ba0: 6f 20 46 6f 73 73 69 6c 20 69 73 20 6e 6f 74 0a o Fossil is not.
1bb0: 69 6e 74 65 6e 64 65 64 20 74 6f 20 72 65 70 6c intended to repl
1bc0: 61 63 65 20 74 68 65 20 73 65 72 76 65 72 20 66 ace the server f
1bd0: 61 72 6d 20 61 74 20 61 20 57 65 62 20 32 2e 30 arm at a Web 2.0
1be0: 20 73 74 61 72 74 75 70 2e 0a 0a 2d 2d 2d 2d 2d startup...-----
1bf0: 2d 2d 2d 2d 2d 2d 2d 2d 20 32 30 30 37 2d 30 38 -------- 2007-08
1c00: 2d 30 32 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -02 ------------
1c10: 2d 2d 2d 0a 0a 57 69 6b 69 20 61 6e 64 20 74 69 ---..Wiki and ti
1c20: 63 6b 65 74 73 20 6e 65 65 64 20 6e 6f 74 20 62 ckets need not b
1c30: 65 20 68 61 6e 64 6c 65 64 20 69 6e 20 74 68 65 e handled in the
1c40: 20 73 61 6d 65 20 77 61 79 2e 20 20 4d 65 74 68 same way. Meth
1c50: 6f 64 0a 28 31 29 20 69 73 20 64 69 73 61 64 76 od.(1) is disadv
1c60: 61 6e 74 61 67 65 6f 75 73 20 74 6f 20 74 69 63 antageous to tic
1c70: 6b 65 74 73 20 73 69 6e 63 65 20 77 65 20 77 68 kets since we wh
1c80: 61 74 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f at to be able to
1c90: 0a 63 61 72 72 79 20 74 69 63 6b 65 74 73 20 77 .carry tickets w
1ca0: 69 74 68 20 75 73 2c 20 61 6e 64 20 6d 6f 64 69 ith us, and modi
1cb0: 66 79 20 74 68 65 6d 2c 20 77 68 69 6c 65 20 77 fy them, while w
1cc0: 6f 72 6b 69 6e 67 20 6f 66 66 6c 69 6e 65 2e 0a orking offline..
1cd0: 42 75 74 20 74 68 65 20 6e 65 65 64 20 74 6f 20 But the need to
1ce0: 6d 6f 64 69 66 79 20 77 69 6b 69 20 6f 66 66 6c modify wiki offl
1cf0: 69 6e 65 20 69 73 20 6e 6f 74 20 6e 65 61 72 6c ine is not nearl
1d00: 79 20 61 73 20 61 63 75 74 65 2e 0a 48 65 6e 63 y as acute..Henc
1d10: 65 20 63 6f 6e 73 69 64 65 72 61 74 69 6f 6e 20 e consideration
1d20: 73 68 6f 75 6c 64 20 62 65 20 67 69 76 65 6e 20 should be given
1d30: 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f to implementatio
1d40: 6e 73 20 74 68 61 74 0a 75 73 65 20 64 69 66 66 ns that.use diff
1d50: 65 72 65 6e 74 20 6d 65 74 68 6f 64 73 20 66 6f erent methods fo
1d60: 72 20 68 61 6e 64 6c 69 6e 67 20 74 69 63 6b 65 r handling ticke
1d70: 74 73 20 61 6e 64 20 77 69 6b 69 2e 0a 0a 41 6e ts and wiki...An
1d80: 6f 74 68 65 72 20 68 79 62 72 69 64 20 6d 65 74 other hybrid met
1d90: 68 6f 64 20 77 6f 72 74 68 20 63 6f 6e 73 69 64 hod worth consid
1da0: 65 72 61 74 69 6f 6e 20 69 73 20 74 6f 20 70 6c eration is to pl
1db0: 61 63 65 0a 62 61 73 65 6c 69 6e 65 73 20 6f 66 ace.baselines of
1dc0: 20 77 69 6b 69 20 61 6e 64 2f 6f 72 20 74 69 63 wiki and/or tic
1dd0: 6b 65 74 73 20 69 6e 20 74 68 65 20 73 6f 75 72 kets in the sour
1de0: 63 65 20 74 72 65 65 20 62 75 74 0a 61 6c 6c 6f ce tree but.allo
1df0: 77 20 6f 76 65 72 6c 61 79 73 20 6f 72 20 64 65 w overlays or de
1e00: 6c 74 61 73 20 74 6f 20 62 65 20 65 6e 74 65 72 ltas to be enter
1e10: 65 64 20 6f 6e 20 61 20 70 65 72 2d 73 65 72 76 ed on a per-serv
1e20: 65 72 0a 62 61 73 69 73 2e 20 20 54 68 65 20 6f er.basis. The o
1e30: 76 65 72 6c 61 79 73 20 6f 72 20 64 65 6c 74 61 verlays or delta
1e40: 73 20 61 72 65 20 6e 6f 74 20 73 79 6e 63 68 72 s are not synchr
1e50: 6f 6e 69 7a 65 64 20 62 65 74 77 65 65 6e 0a 73 onized between.s
1e60: 65 72 76 65 72 73 2e 20 20 42 75 74 20 6f 6e 65 ervers. But one
1e70: 20 63 61 6e 20 74 61 6b 65 20 61 20 22 73 6e 61 can take a "sna
1e80: 70 73 68 6f 74 22 20 6f 66 20 74 68 65 20 6f 76 pshot" of the ov
1e90: 65 72 6c 61 79 73 2f 64 65 6c 74 61 73 0a 74 6f erlays/deltas.to
1ea0: 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 73 6f create a new so
1eb0: 75 72 63 65 20 74 72 65 65 20 62 61 73 65 6c 69 urce tree baseli
1ec0: 6e 65 20 77 68 69 63 68 20 63 6f 75 6c 64 20 74 ne which could t
1ed0: 68 65 6e 20 62 65 0a 73 79 6e 63 68 72 6f 6e 69 hen be.synchroni
1ee0: 7a 65 64 20 61 6e 64 20 75 73 65 64 20 61 6e 64 zed and used and
1ef0: 2f 6f 72 20 6d 6f 64 69 66 69 65 64 20 6f 66 66 /or modified off
1f00: 6c 69 6e 65 2e 20 20 4c 65 74 20 75 73 20 63 61 line. Let us ca
1f10: 6c 6c 0a 72 65 66 65 72 20 74 6f 20 74 68 69 73 ll.refer to this
1f20: 20 6e 65 77 20 6d 65 74 68 6f 64 73 20 61 73 20 new methods as
1f30: 28 36 29 2e 20 20 48 65 72 65 20 61 72 65 20 74 (6). Here are t
1f40: 68 65 20 64 65 74 61 69 6c 73 3a 0a 0a 20 20 2a he details:.. *
1f50: 20 20 54 69 63 6b 65 74 73 20 6f 72 20 77 69 6b Tickets or wik
1f60: 69 20 6f 72 20 62 6f 74 68 20 61 72 65 20 73 74 i or both are st
1f70: 6f 72 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 ored as part of
1f80: 74 68 65 20 74 72 65 65 0a 20 20 20 20 20 61 73 the tree. as
1f90: 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 6d 65 described in me
1fa0: 74 68 6f 64 20 28 32 29 2e 0a 0a 20 20 2a 20 20 thod (2)... *
1fb0: 57 65 62 2d 62 61 73 65 64 20 63 68 61 6e 67 65 Web-based change
1fc0: 73 20 74 6f 20 77 69 6b 69 20 6f 72 20 74 69 63 s to wiki or tic
1fd0: 6b 65 74 73 20 61 72 65 20 6e 6f 74 20 77 72 69 kets are not wri
1fe0: 74 74 65 6e 20 62 61 63 6b 0a 20 20 20 20 20 69 tten back. i
1ff0: 6e 74 6f 20 74 68 65 20 74 72 65 65 20 62 75 74 nto the tree but
2000: 20 61 72 65 20 69 6e 73 74 65 61 64 20 73 74 6f are instead sto
2010: 72 65 64 20 6c 6f 63 61 6c 6c 79 20 69 6e 20 61 red locally in a
2020: 20 63 61 63 68 65 0a 20 20 20 20 20 6f 66 20 65 cache. of e
2030: 78 63 65 70 74 69 6f 6e 73 20 6f 72 20 6f 76 65 xceptions or ove
2040: 72 6c 61 79 73 2e 0a 0a 20 20 2a 20 20 57 68 65 rlays... * Whe
2050: 6e 20 74 68 65 20 77 65 62 20 69 6e 74 65 72 66 n the web interf
2060: 61 63 65 20 67 6f 65 73 20 74 6f 20 6c 6f 6f 6b ace goes to look
2070: 20 66 6f 72 20 61 20 74 69 63 6b 65 74 20 6f 72 for a ticket or
2080: 20 61 0a 20 20 20 20 20 77 69 6b 69 20 69 74 20 a. wiki it
2090: 63 6f 6e 73 75 6c 74 73 20 69 74 73 20 6c 6f 63 consults its loc
20a0: 61 6c 20 63 61 63 68 65 20 66 69 72 73 74 20 61 al cache first a
20b0: 6e 64 20 74 68 65 6e 20 69 66 20 6e 6f 74 0a 20 nd then if not.
20c0: 20 20 20 20 66 6f 75 6e 64 20 74 68 65 72 65 2c found there,
20d0: 20 61 20 64 65 73 69 67 6e 61 74 65 64 20 62 61 a designated ba
20e0: 73 65 6c 69 6e 65 2e 0a 0a 20 20 2a 20 20 54 68 seline... * Th
20f0: 65 20 63 61 63 68 65 20 6f 66 20 63 68 61 6e 67 e cache of chang
2100: 65 73 20 69 73 20 6e 6f 74 20 73 79 6e 63 68 72 es is not synchr
2110: 6f 6e 69 7a 65 64 20 62 79 20 74 68 65 20 70 75 onized by the pu
2120: 73 68 2c 0a 20 20 20 20 20 70 75 6c 6c 2c 20 6f sh,. pull, o
2130: 72 20 73 79 6e 63 20 63 6f 6d 6d 61 6e 64 73 2e r sync commands.
2140: 20 20 49 74 20 69 73 20 6c 6f 63 61 6c 20 74 6f It is local to
2150: 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 0a the repository.
2160: 20 20 20 20 20 6f 6e 20 77 68 69 63 68 20 69 74 on which it
2170: 20 69 73 20 65 6e 74 65 72 65 64 2e 0a 0a 20 20 is entered...
2180: 2a 20 20 41 20 62 75 74 74 6f 6e 20 6f 6e 20 74 * A button on t
2190: 68 65 20 77 65 62 20 69 6e 74 65 72 66 61 63 65 he web interface
21a0: 20 28 69 6e 76 6f 6b 65 64 20 62 79 20 75 73 65 (invoked by use
21b0: 72 73 20 77 69 74 68 0a 20 20 20 20 20 61 70 70 rs with. app
21c0: 72 6f 70 72 69 61 74 65 20 70 72 69 76 69 6c 65 ropriate privile
21d0: 67 65 73 29 20 74 61 6b 65 73 20 61 6c 6c 20 6c ges) takes all l
21e0: 6f 63 61 6c 6c 79 20 63 61 63 68 65 64 20 63 68 ocally cached ch
21f0: 61 6e 67 65 73 0a 20 20 20 20 20 61 6e 64 20 61 anges. and a
2200: 64 64 73 20 74 68 65 6d 20 74 6f 20 74 68 65 20 dds them to the
2210: 74 72 65 65 20 69 6e 20 61 20 6e 65 77 20 62 61 tree in a new ba
2220: 73 65 6c 69 6e 65 2e 0a 0a 20 20 2a 20 20 4c 6f seline... * Lo
2230: 63 61 6c 6c 79 20 63 61 63 68 65 64 20 63 68 61 cally cached cha
2240: 6e 67 65 73 20 61 72 65 20 61 67 61 69 6e 73 74 nges are against
2250: 20 61 20 73 70 65 63 69 66 69 63 20 62 61 73 65 a specific base
2260: 6c 69 6e 65 2e 0a 20 20 20 20 20 54 68 61 74 20 line.. That
2270: 73 70 65 63 69 66 69 63 20 62 61 73 65 6c 69 6e specific baselin
2280: 65 20 69 73 20 75 73 65 64 20 61 73 20 62 61 63 e is used as bac
2290: 6b 75 70 20 69 66 20 61 20 70 61 67 65 20 6f 72 kup if a page or
22a0: 0a 20 20 20 20 20 74 69 63 6b 65 74 20 72 65 71 . ticket req
22b0: 75 65 73 74 20 69 73 20 6e 6f 74 20 66 6f 75 6e uest is not foun
22c0: 64 20 69 6e 20 74 68 65 20 6c 6f 63 61 6c 20 63 d in the local c
22d0: 61 63 68 65 2e 20 20 49 66 20 74 68 65 0a 20 20 ache. If the.
22e0: 20 20 20 62 61 63 6b 69 6e 67 20 62 61 73 65 6c backing basel
22f0: 69 6e 65 20 69 73 20 63 68 61 6e 67 65 64 2c 20 ine is changed,
2300: 74 68 65 20 6c 6f 63 61 6c 20 63 61 63 68 65 20 the local cache
2310: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 20 20 automatically.
2320: 20 20 20 6d 65 72 67 65 73 20 69 6e 20 74 68 65 merges in the
2330: 20 64 69 66 66 65 72 65 6e 63 65 73 20 69 6e 20 differences in
2340: 77 69 6b 69 20 6f 72 20 74 69 63 6b 65 74 73 20 wiki or tickets
2350: 62 65 74 77 65 65 6e 0a 20 20 20 20 20 74 68 65 between. the
2360: 20 6f 6c 64 20 61 6e 64 20 6e 65 77 20 62 61 73 old and new bas
2370: 65 6c 69 6e 65 73 2e 0a 0a 54 68 69 73 20 61 70 elines...This ap
2380: 70 72 6f 61 63 68 20 73 74 69 6c 6c 20 6c 65 61 proach still lea
2390: 76 65 73 20 74 68 65 20 6d 61 6e 79 2d 66 69 6c ves the many-fil
23a0: 65 73 20 70 72 6f 62 6c 65 6d 2e 20 20 49 6e 20 es problem. In
23b0: 53 51 4c 69 74 65 2c 0a 74 68 65 72 65 20 61 72 SQLite,.there ar
23c0: 65 20 61 62 6f 75 74 20 35 30 30 20 73 6f 75 72 e about 500 sour
23d0: 63 65 20 66 69 6c 65 73 20 61 6e 64 20 61 62 6f ce files and abo
23e0: 75 74 20 33 30 30 30 20 64 69 66 66 65 72 65 6e ut 3000 differen
23f0: 74 20 74 69 63 6b 65 74 0a 61 6e 64 20 77 69 6b t ticket.and wik
2400: 69 20 70 61 67 65 20 74 69 74 6c 65 73 2e 20 20 i page titles.
2410: 42 75 74 20 69 66 20 74 68 65 20 77 69 6b 69 20 But if the wiki
2420: 69 73 6e 27 74 20 74 68 61 74 20 62 69 67 20 61 isn't that big a
2430: 6e 64 20 69 66 20 0a 74 69 63 6b 65 74 73 20 61 nd if .tickets a
2440: 72 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 re removed from
2450: 62 61 73 65 6c 69 6e 65 73 20 61 66 74 65 72 20 baselines after
2460: 74 68 65 79 20 68 61 76 65 20 62 65 65 6e 20 63 they have been c
2470: 6c 6f 73 65 64 0a 66 6f 72 20 33 30 20 64 61 79 losed.for 30 day
2480: 73 20 6f 72 20 6c 6f 6e 67 65 72 20 61 6e 64 20 s or longer and
2490: 69 66 20 74 69 63 6b 65 74 73 20 61 72 65 20 64 if tickets are d
24a0: 65 61 6c 74 20 77 69 74 68 20 61 67 67 72 65 73 ealt with aggres
24b0: 73 69 76 65 6c 79 2c 0a 74 68 65 72 65 20 70 65 sively,.there pe
24c0: 72 68 61 70 73 20 74 68 65 20 6d 61 6e 79 2d 66 rhaps the many-f
24d0: 69 6c 65 73 20 70 72 6f 62 6c 65 6d 20 77 6f 6e iles problem won
24e0: 27 74 20 62 65 20 73 75 63 68 20 61 20 62 69 67 't be such a big
24f0: 20 64 65 61 6c 2e 0a 0a deal...