A basic configuration to collaboratively work on tiddlywiki with Git

Hi everyone,
I just created a GitHub repo to show how I work on a TiddlyWiki notebook with some friends : https://github.com/dionisos2/tiddlygit

I used git submodule to get the plugin I am using, I don’t know if it is a valid way to do it, but it meet my need.

I used a git merge driver to reduce the number of conflicts (in particular, I just ignore some fields like “modified”), and to directly modify tiddlers when there is an actual conflict so the conflict can be resolved inside the notebook itself (the script doing it is tiddly-merge.py).

I also added a button (the one with a GitHub icon), to run the script doing the commit/merge/push (synchronize.sh) inside the notebook.
I don’t know why, but I had to modify the $:/plugins/OokTech/Bob/NodeScriptHandlers.js tiddler to make it works.
(You can see the added/modified tiddlers in the tiddler folder in root)

I assume it would be better to create a plugin to package it, but given I assume I did a lot of stuffs incorrectly, it is probably not worth it. Anyway I still share it because maybe it will be useful to someone trying to do the same thing.

I very much look forward to digging into this. I am likely to get back to work on a large documentation wiki at work, one that already runs on Node, is saved in Git, and is deployed to GitLab Pages. And I really want to get occasional collaborators to participate more regularly. This sounds like a great way to do that!

One question: I saw something about using Bob. I don’t use Bob at all; is it critical to this workflow?

Hi @Scott_Sauyet !

Yes Bob is necessary for this workflow because it checks if files are modified in the tiddlers directory to reload them, without it you would have to restart the tiddlywiki server each time you synchronize your work.
But otherwise it works mostly like the NodeJs version of TiddlyWiki even if it changes the file structure a little (I don’t use the multiwiki functionality and I don’t even know how to use it).

Take into account that if you use it, the tiddly-merge.py script should be able to run without error because otherwise I think the conflicts will just be overwritten, so I advice to do some test where you create a conflict to see if everything is ok.

If you find any problem using it, or if anything is unclear, feel free to ask :slight_smile:
And same thing if you have any advice on how to do something better.