Version control for Zettels

Notes get changed over time, with additions, subtractions, modifications. I think it is important to see this. Git seems like an ideal version control tool for plain-text ZK. It would be nice if software like Obsidian.md or The Archive could show you differences (toggle a viewer button, like preview).

Thoughts? Is anyone doing this?

I’d love to integrate with GitHub to facilitate easy collaboration, but I haven’t done anything in that direction yet.

Integrating a diff view within the app sounds nice. OTOH, the diff views at Github are so good that it might be enough (or even better) to just link to these? This would also help to keep the app focussed and lean.

1 Like

I tried to track changes to my notes a couple of times. But I didn’t find it to be useful, apart from having a backup during app testing :slight_smile:

The thing is, that there’s so much to change all the time (revising, adding new staff, reorganizing what’s there…) that peeking at the history wasn’t giving me any insights. I had a manual revision tracking, too, where I duplicated notes instead of editing them, but that produced so much noise that I abandoned it.

In programming, working on a planned change and making it meaningful is not trivial, but possible. You set out to do X, and then you work on it until finished, and could make a “merge commit” from that in git to track one coherent change. – Imagine doing the same in your notes. That works if you only ever work on one topic. Once you e.g. need a month to process a paper, but also include new findings for totally different stuff on the side, keeping things clean would mean you’d need to rewrite and manually clean up and group the history. That’s extra work that could’ve gone into making the actual notes better, or capturing something else.

In short: Opportunity cost of maintaining a revision history is a thing. If all you do is take daily snapshots automatically, that could be a thing, but I doubt it’ll be interesting, because navigating years and years of changes and minor additions without a meaningful change message as your future self could be doomed to fail.

2 Likes

I agree that putting one’s note archive under version control is not really useful for the revision history itself. The repository would mostly consist of auto-generated snapshots (likely titled with a redundant date-stamp or something similar).

That said, I’d like to integrate my note archive with version control (or even better with a platform such as GitHub/GitLab/etc) to allow for these things:

  • backup
  • sync
  • collaboration
  • automation (e.g. via hooks / triggering of actions)
  • publishing

Hey all. @ctietze - thanks for joining the discussion.

I have been using the Git plugin for Obsidian. It automatically commits at intervals. I like knowing I have this, and I can go back in time and see the ways notes change.

No as for seeing real insights… that would probably require a layer on top of just the commits. Like some kind of timeline view that lets you browse through the commits in a note. Maybe get some stats on which notes change the most.

But I like the security of knowing I can roll back to previous versions if something goes wrong with the new too (accidentally delete some key portions).

1 Like