Sweet. It’s kinda wild to me that this hasn’t been done. Would be so much nicer if gitlab/forgejo/gitea/… supported object storage for everything. Currently you always still need a filesystem for git repos.
It has been done. It is no longer done because it is not efficient.
Yes, it was not "object storage", but Git can be served from a dumb http server as static files. Now someone figured out that object storage can also serve static files via http. Wow!
Next: replace whole-file hashes with a Merkle Patricia tree hash and enable BitTorrent-like distribution protocols on top, not to mention the deduplication advantages!
"Finally delta objects should be stored as their own object in the packfile instead of slapped onto the end of the object it’s a delta of so that you don’t have to read the object and its deltas to read the object in the first place."
Author thinks that delta encoding is there for no reason. Good luck, kid.
Which fonts are you seeing not looking good? It seems perfectly readable sans-serif and monospace wise, but could be system preferences on what fonts to use?
It seems like the kind of thing I would naturally post if I came across it, so a bunch of submissions over 3 days makes me think a bunch of people saw it and when they saw it said huh, I will submit to HN.
I think that makes more sense than some spam campaign for this.
`git update-server-info` is your friend; it generates the auxiliary files needed to allow clients to make range requests against packs.
For example: https://andrewaylett.github.io/rgitweb/ is a repository viewer that runs against a static git repo. It doesn't care what you're storing the pack in, just that the data is there to make the right range requests.
This is exactly what GitSocial does: https://gitsocial.org/. Plus it can generate static sites for repositories, letting you serve it all from a bucket.
Nice. I saw some git-on-durable-objects projects but I'd so much prefer a straight object storage option.
Sweet. It’s kinda wild to me that this hasn’t been done. Would be so much nicer if gitlab/forgejo/gitea/… supported object storage for everything. Currently you always still need a filesystem for git repos.
It has been done. It is no longer done because it is not efficient.
Yes, it was not "object storage", but Git can be served from a dumb http server as static files. Now someone figured out that object storage can also serve static files via http. Wow!
On Linux, Fuse is your friend. See eg https://github.com/matthiasgoergens/git-snap-fs
https://github.com/awslabs/git-remote-s3
This works seamlessly so you can run `git remote add origin s3://my-git-bucket/my-repo`
After Git At Any Scale there's been a lot of these! (https://cursor.com/blog/git-at-any-scale https://news.ycombinator.com/item?id=49348141)
https://github.com/Nickforall/walgit-elixir https://github.com/tobi/walgit (https://news.ycombinator.com/item?id=49420598) https://github.com/tuist/micelio/
Next: replace whole-file hashes with a Merkle Patricia tree hash and enable BitTorrent-like distribution protocols on top, not to mention the deduplication advantages!
History repeats itself: https://github.com/cjb/GitTorrent
BLAKE3 has a whole mechanism for this, and as an added bonus it'd be substantially faster.
"Finally delta objects should be stored as their own object in the packfile instead of slapped onto the end of the object it’s a delta of so that you don’t have to read the object and its deltas to read the object in the first place."
Author thinks that delta encoding is there for no reason. Good luck, kid.
4th submission in 3 days. Is this a marketing spam campaign?
it's a shit website with awful fonts, certainly
Which fonts are you seeing not looking good? It seems perfectly readable sans-serif and monospace wise, but could be system preferences on what fonts to use?
It seems like the kind of thing I would naturally post if I came across it, so a bunch of submissions over 3 days makes me think a bunch of people saw it and when they saw it said huh, I will submit to HN.
I think that makes more sense than some spam campaign for this.
I’m wondering how this is possible. Usually when you submit something that has been already posted recently, HN will upvote the existing post instead.
`git update-server-info` is your friend; it generates the auxiliary files needed to allow clients to make range requests against packs.
For example: https://andrewaylett.github.io/rgitweb/ is a repository viewer that runs against a static git repo. It doesn't care what you're storing the pack in, just that the data is there to make the right range requests.
I recently found https://github.com/enroute-sh/enroute which also does git on object storage
I found the idea of a git-proxy interesting where you start with proxying an existing forge and then later adopt the object storage backend
You can also run git on postgres - https://github.com/usecontextlayer/pggit
Oh this is exactly what I need, fantastic! Thanks for sharing.
This is exactly what GitSocial does: https://gitsocial.org/. Plus it can generate static sites for repositories, letting you serve it all from a bucket.
Or just use https://github.com/Barre/ZeroFS
Works pretty awesomely with git workloads, even Linux sized trees.