git-o-matic, a tool to monitor git repositories and automatically pull & push changes:

This is great to keep your notes folder or temporary workspaces synced (if I may say so myself).

@fribbledom I feel like git for notes is way overcomplicated.

@gudenau @fribbledom learning git as a prerequisite for keeping notes would definitely be overkill, but if you've already got that skillset, mental model, and the accompanying habits, it makes a bunch of common note-keeping/taking habits easier.

In particular it makes it easy to decouple taking notes from structuring them, which is a *huge* win for lowering the bar about what should be noted.

@gnomon @fribbledom So much more FS space than just using the timestamps.

@gudenau @fribbledom less, unless you're using a filesystem that transparently compresses comparable to how git does so; but honestly that's not really a meaningful factor for most use cases when we're talking about notes typed by a human. The data volume is just trivial.

A (modern) disk block is 4KB, that's two full typed pages; most flash rewrite blocks are in the 32KB-64KB range, ~1.5 hours of typing at 120wpm.


@gudenau @fribbledom there's a point to be made about the overhead of letting the git repo use a dozen or so files rather than just the one notes file, but (a) it's still pretty trivial, inodes are cheap, and (b) if you're interested in minimizing your inode consumption while keeping the benefits of version control *and* git interoperability, Fossil exists and is a lovely tool. (Plus it comes with a good Markdown renderer and a browser UI packed in!)

@fribbledom does it work by pooling or by checking filesystem changes?

@fribbledom It would be cool to have something that listen to the filesystem, so it only does pull/push on save
But idk how hard it to make that in go


It's kinda already done, but I hate how shit inotify is 😂

@fribbledom interesting, interesting! Thanks for sharing.

Now I am tempted to knock up a competitor based around inotify... 🤔


Kinda already beat you to it, but I'm not exactly fond of that solution. May or may not push this in a bit.

@fribbledom Oh neat! I was just pondering something along these lines to work with making cause I keep forgetting to sync them!


I'd recommend checking out gopass for that:

It's like pass on steroids (and compatible even!)

@fribbledom Can has kqueue support for OpenBSD and FreeBSD? ^_^
@fribbledom sorry that's go, so that comment didn't make any sense. I'll test it and report back!

@fribbledom cool! Was reading through the code. I guess `panic` is the go way to throw errors? I just keep thinking about The Hitchhiker's Guide to the Galaxy. "DON'T PANIC" 😅


Actually, no. There's an error type that you usually pass around and handle accordingly.

panic is the last resort, and I tend to use it during early development of a project, because it also ensures I get a valid backtrace from a bug report.

@fribbledom oooo! definitely saving this for later, looks awesome!

Neat! Looks similar to , but I'll have to check yours out next time I'll need something like this 😉

Does it respect .gitignore and .git/info/exclude, or does it just add every file that appears?

@fribbledom How does it handle subfolders, that are git repositories themselfs?


I'll have to set up a test for that, but it should handle it just like git itself:

you can have repositories within other repositories, with the content being part of one or both repositories.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!