Experiment: Drive -> Git
Goal
My goal with this experiment was to determine the best place to store a collection of agent memories and my own curated notes, so that I could use them together on a daily basis to improve my daily workflows across my devices.
Phase 1 - Google Drive
After some deliberation, I decided to try Google Drive first. With it, the vault showed up on every machine I use without my doing anything special. My phone could reach it. With a bit of work I could even get at it from Claude and Gemini on the web, which was important to me because I wanted the memory available wherever I happened to be thinking. Best of all it fit into my current workflows and software stack. Drive was already running, and I’m a Google ecosystem user so it was “free”.
Phase 1 - Challenges
The first challenge was a lack of history. I knew this going in, but I wasn’t sure if it would be needed. Where it became a challenge was in conflicts. Without history, there was no good way to reconcile them. Overwrites were also a common challenge, and the idea of having more than a single collaborator for a project or folder seemed impractical given I was already seeing these issues with just me working in there.
The second challenge was using Drive to back up files that I was also using with Git. Small object files that change all the time are easily corrupted when Drive tries to sync them. I also had to use git init --separate-git-dir to keep git’s tracking separate from the synced folder.
There were other little things too. I am an Obsidian user, so there were hoops to jump through so that its index wouldn’t get clobbered by Drive sync either, and to keep Drive from overwriting capture dates. Drive also wasn’t as easy to use on all my surfaces as I’d have liked. Android doesn’t actually keep the files on disk, and Obsidian needs them there, so I had to use a separate sync tool to get access to my files on my phone.
None of this is Drive being bad at its job. It just turned out that I actually did need something more robust than a simple folder of files that syncs.
Phase 2 - Needs
Undo - I needed a few additional capabilities for my memory storage. First was an undo option, or history. Git can provide this. I originally resisted this idea because it seemed like overkill, but it was becoming obvious that without it things would be harder. That said, Git has its own challenges, but when I added them up there were fewer of those than when I was using drive.
Transport - Having a single transport was also a key need. Drive provided that, and if I was to switch to something else, I didn’t want to have different transports for different scenarios. So all syncing needed to come through one place.
Phase 2 - Github or something else?
A private GitHub repo was one obvious possibility. It has history and off-device backup, and it’s infrastructure I already know. But while it’s private, I wasn’t comfortable trusting personal notes to GitHub’s checkered history of private repo breaches. There is also the issue of size. My vault grows quickly as the memory system improves. It wouldn’t be long before I hit GitHub’s repo size quota.
Phase 2 - Drive -> Git
So: Git yes, GitHub no. The next logical place was to self-host with backup. I wasn’t ready to go full on self-hosted git, so a compromise. Use git locally, back up my device, and ideally some form of offline backup. The final form, git on my dev machine, backup of my whole machine to my NAS, and finally offline sync to… Drive. Yes, Drive. While we’re not using it as the transport any more, it can still serve a purpose as simple offline storage, so it stays there for now. This checks all the boxes, and we have our solution. It’s an interim solution for now until I’m ready for a larger jump to full self-hosted git.
“Final” Form
We’ve got a working setup. Let’s call it “Interim”. At some point I’ll need to go all in on self-hosted git, but we’re not there yet and this will work just fine for now. Two forms of backup and file history, check. Most importantly, this will work for where Agent M is going.
Liked this? Get new experiments by email — or grab the RSS.
← Back to the feed