leastfixedpoint

Adding distributed version control to TiddlyWiki

This page is a mirrored copy of an article originally posted on the LShift blog; see the archive index here.

After my talk on Javascript DVCS at the Osmosoft Open Source Show’n'tell, I went to visit Osmosoft, the developers of TiddlyWiki, to talk about giving TiddlyWiki some DVCS-like abilities. Martin Budden and I sat down and built a couple of prototypes: one where each tiddler is versioned every time it is edited, and one where versions are snapshots of the entire wiki, and are created each time the whole wiki is saved to disk.

Regular DVCS SynchroTiddly
Repository The html file contains everything
File within repository Tiddler within wiki
Commit a revision Save the wiki to disk
Save a text file Edit a tiddler
Push/pull synchronisation Import from other file

If you have Firefox (it doesn’t work with other browsers yet!) you can experiment with an alpha-quality DVCS-enabled TiddlyWiki here. Take a look at the “Versions” tab, in the control panel at the right-hand-side of the page. You’ll have to download it to your local hard disk if you want to save any changes.

It’s still a prototype, a work-in-progress: the user interface for version management is clunky, it’s not cross-browser, there are issues with shadow tiddlers, and I’d like to experiment with a slightly different factoring of the repository format, but it’s good enough to get a feel for the kinds of things you might try with a DVCS-enabled TiddlyWiki.

Despite its prototypical status, it can synchronize content between different instances of itself. For example, you can have a copy of a SynchroTiddly on your laptop, email it to someone else or share it via HTTP, and import and merge their changes when they make their modified copy visible via an HTTP server or email it back to you.

I’ve been documenting it in the wiki itself — if anyone tries it out, please feel free to contribute more documentation; you could even make your altered wiki instance available via public HTTP so I can import and merge your changes back in.

Comments

On 3 July, 2008 at 5:49 pm, tonyg wrote:

((I accidentally deleted a bunch of comments I didn’t mean to delete today, so I’m having to repost them manually:))

FND wrote:

Great job, Tony!
I like the differentiation of tiddler revisions and document changesets.

If you have the time, you should share this with the TiddlyWiki community.
Also, it’d be great to have a quick overview of which plugins are required to use this functionality in existing TiddlyWiki documents.

I’ll give this a more extensive try in the next few days or weeks.

On 11 April, 2010 at 10:01 pm, BobJ wrote:

Hi,

I love this, and I’m trying to work out if it’s been updated since?

It would be perfect if I could find a way to integrate it in my current wikis. I’ve been looking at migrating away from TW based on just this issue, would certainly prefer not to have to.

Looking at the date thought, I’m guessing I’m out of luck.

BobJ

On 16 April, 2010 at 10:00 am, tonyg wrote:

I haven’t updated the tiddly side of it, no; though I have been working on refinements to the underlying DVCS code. Very gradually. Check out the source code repository if you’re interested! If you have any questions, or you’d like to discuss this stuff further, feel free to get in touch with me: tonygarnockjones@gmail.com