Skye,

If I'm wrong I hope someone will correct me.

What you describe is more like a database with discreet record
locking. A TWs behaves similarly to a database in some ways but
tiddler-locking is not its normal behavior.

Because the TW is a single file, the entire TW is written during a
save operation. The only way to save parts of a TW would be to break
it into multiple files and only save the core and whatever tiddlers
have been modified (dirty).

Take a look at Jack Parke's ArchivePlugin (http://
jackparke.googlepages.com/jtw.html#ArchivePlugin). I use it to
externalize large tiddlers and tidders common across multiple TWs
(like your post about converting HTML pages to tiddlers and my
suggestion to externalize common CSS to leverage content reuse and
insure consistency among the TWs sharing the tiddlers). Image a TW
with two (2) content tiddlers: the entire text of "War and Peace" in
one and the text "Hello world" in the other. Editing either then
saving the TW take about the same amount of time to save. Because "War
and Peace" is very large, the TW would be very large: saving and
loading would be time consuming. Now image using ArchivePlugin to
externalize those two (2) tiddlers. Loading the TW (three files: the
core plus two tiddlers) will take almost exactly the same amount of
time as it would for the TW with the tiddlers internal (everything
loads at start-up). But saving would be very quick when editing the
"Hello world" tiddler or adding new, reasonably-sized tiddlers,
because the save process won't include the "War and Peace" tiddler if
it hasn't changed.

One caveat, though. Multiple TWs can "own" the same tiddler via
ArchivePlugin. But without some extra system-level file management,
e.g. version control software or some other file-locking mechanism,
when two (2) TWs are opened which contain a common tiddler and that
common tiddler is modified and saved by one TW, the other TW will not
be aware of the changes. Without file locking, the second TW will be
able to overwrite the modifications made by the first TW. Proceed with
extreme caution. What might mitigate the potential collisions would be
a messaging system within the TWs, kind of like RSS, that would
broadcast "changes have taken place here", listen for "have any
changes taken place anywhere" messages, and offer to refresh revised
tiddlers. But now we're wading into the deep end of the server-side TW
pool, where much interesting developing is currently underway.

Hope this doesn't muddy the water.

Craig

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tiddlywiki?hl=en.

Reply via email to