OP didn’t want to delete anything, but to compress them all, exploiting the fact they’re similar to gain efficiency.
OP didn’t want to delete anything, but to compress them all, exploiting the fact they’re similar to gain efficiency.
Indeed! Interesting! I made an experiment now with a non-compressible file (strings < /dev/urandom | head -n something) and it shows you’re right. 2nd commit, where I added a tiny line to that file, increased repo size by almost the size of the whole file.
Thanks for this bit.
Highly unlikely to succeed. The tiny differences are spread out all over the image.
You could store one “average” image, and deltas on it. Like Git stores your previous version + a bunch of branches on top.
Cool idea. If this doesn’t exist, and it probably doesn’t, it sounds like a worthy project to get one’s MSc or perhaps even PhD.
If you have a place to host Forgejo/Gitea, you have a place to store a Git server. Set it up like this:
$ git clone --bare myrepo myrepo.bare
$ scp -r myrepo.bare srv:
$ cd myrepo
$ git remote add origin srv:myrepo.bare
# or
$ git remote set-url origin srv:myrepo.bare
Now git push
etc work similar to GitHub, but you’re using your server (named srv
in SSH config, as shown in my previous post) as the remote storage.
Selfhosted Gitea is a way to get a wiki, bug tracker or whatnot - collaborate, for example, but it’s not necessary to have a Git server for your personal use.
I started running my own Gitea instance because I wanted a private place to host my Obsidian notes.
I don’t have the time to read the article now, but permit a question: what do you use Gitea for?
I’m holding my dotfiles on a SSH server, clone/push over SSH, and it’s enough to do Git. I don’t need a ticket system, or wiki or anything (I use plaintext notes).
$ cat ~/.ssh/config
Host srv
Hostname srv.mywhatever.com
$ git clone srv:/path/to/repo
$ cd repo
$ git push
How often does your IP actually change? Mine changes so rarely (during extended power outages, say) that I am able to just update my IP manually when it does.
I even used to run my own authoritative DNS server at home (the one offered by my registrar isn’t configurable enough, think SRV and TXT records) - for that, I have a web UI at my registrar to set the IP addresses of the DNS server.
I tried to run some software on my router. It kind of works, if it fits. Storage was the limiting factor. There’s an option to expand the FS to include a USB stick, but somehow it made something overheat, and the router froze every now and then.
I’m running my email server on a POCO F1 ex-Android phone (running PostmarketOS now).
I wish I could get NixOS running on it, then I’d move other things also there.
I made a honest effort, but in the end went back to Git for my personal projects. The advantages Fossil has over Git (wiki, bug tracker) are trivial to emulate with versioned plaintext files, and everything about Git’s version control system just clicks with my head. Having years of experience breaking and unbreaking things helps too.
Tho one thing Fossil taught me is to merge by default, not rebase. Rebase when there’s good justification for it, and the rest of the time, have an alias for
git log --oneline --graph --first-parent
(or whatever that was). --first-parent collapses a horrible branchy-mergy history into a linear overview thereof, with details available when needed.