@sir Yeah, this is the reason why we don't do snapshots on git storage. Instead, we just keep a lot of mirrors and back up reflogs. You may want to take a look at grokmirror, which is the tool I wrote for git mirroring -- and it has a fairly clever grok-fsck utility that will take care of your git repacks in a somewhat cleverer fashion than randomly peppered git gc. :)

@monsieuricon I'm looking into repospanner as well, might just end up building a bespoke solution though tbh

@sir yeah, repospanner is interesting, but serves a different need (multi-node atomic writes). I wrote grokmirror to replicate over high-latency connections and to manage backend repos. I know you're not overly fond of Python, but perhaps you can borrow some ideas from grok-fsck -- and if you happen to serve a manifest file at some point, that would be even awesomer. :)

It is awesome to see how serious people reason about their infrastructure. Thanks so much!

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!