[Techie] Scheduling/requesting git commits for shared Node.js wikis

Does anyone have working techniques to automate git commits/pushes for Node.js wikis?

I have several wikis that I want to open up to additional editors. On my own, I simply run Node versions locally, and when I want to publish, I manually commit and push, leaving it to GitHub pages (or sometimes GitLab pages at work) to publish from there.

But I’m a techie who lives in git. Most other editors won’t be. There won’t be a large number of editors, and I’m not particularly concerned about contention. But I want their changes and mine to get saved back to git on some cadence. I would prefer if there is some scheduled check (every 30 minutes?) to see if there are unsaved changes, and then, if there have been no changes for some shorter period (5 minutes?) to commit everything to git, and push to GitHub/GitLab/Bitbucket/Codeberg/whatever.

Does anyone have examples of a similar workflow?


I would also love to see any examples people have of creating git tags/versions from a client-side event initiation. Have you done something like that?

I dont have an example of that… yet, but it’s definitely in line with what I’ve been planning to write, though my use-case is “just me” and a general preference to save history here into git. (sometimes going so far as to create reconstructed git histories from files found in normal backups!). I had similar thinking of “run from cron regularly, and commit if there have been edits, but a sufficient delay since the last edit to indicate a “session” of editing is likely done”

The part of my git workflow I HAVE been very happy with, is my git-automsg.sh script, which generates a git log with the summary counting the changes, and body of the log listing each file and it’s new/deleted/modified/renamed state - it makes a nice automated git log message, and my TW/node helper script effectively just runs git add * && git commit -a -m "$(git-automsg.sh)

git-automsg from: GitHub - nemothorx/neon-git: nemo's various git helper scripts

In terms of triggering git from client-side - I recall David Bovill talking about that during the Hitchhiker’s Guide to Wiki zoom meeting back in March (Invitation to a Hitchhikers TiddlyWiki All-nighter), so I know it’s doable, but I dont know if it’s public or usable

So you don’t know TidGi Desktop could do that? That is why its name is tid “Gi”, short for Git.

It auto git commit every 30 min (configuable in the tidgi preference), that save many data for users, when they mess-up with the wiki.

It is an Electron based tiddlywiki app that wraps the nodejs wiki. You could import HTML wiki into it with some mouse click.

Thanks. I’ll take a look.

I saw a lot of that discussion, but far from everything. I don’t remember that specifically. It’s something I’ve long know was possible, but I’ve never tried it myself or seen any actual examples.

No, I didn’t know that. I’m glad to know this and to know where the name comes from. But a desktop tool, even it if could be configured to run against an online wiki, is not the right tool for this scenario, I’m quite certain. I would not want to ask my users to install anything.

I started with git auto commit script ( GitHub - DiamondYuan/wiki , seems this guy not using tiddlywiki anymore) from 2019

And I make a JS version later, integrated into TidGi in 2020 . I get feedback from my blog post comments that thos git sync script are not easy to understand, so I made TidGi exe version to easify it.

Why it isn’t a nodejs wiki plugin? Because git-sync-js requires a git binary file, can’t share with-in JSON plugin file. But you could try with GitHub - simonthum/git-sync: Safe and simple one-script git synchronization and wrap it as a nodejs wiki plugin.

That’s interesting, as is your git-sync project.

I had always assumed that TW server-client is too chatty to do individual commits on every save, but in my day job, I’ve just been porting an (Enterprise) GitLab API tool into an (Enterprise) GitHub one. Its saves are atomic single-file commits. While they are less frequent during a working session than my typical TW usage, I’m wondering whether this could work for TW. I’m going to have to think about it more.

Thank you very much for something interesting to consider!