Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
Posted Jun 21, 2020 13:46 UTC (Sun) by pabs (subscriber, #43278)In reply to: Updating the Git protocol for SHA-256 by mathstuf
Parent article: Updating the Git protocol for SHA-256
Posted Jun 22, 2020 2:07 UTC (Mon)
by cyphar (subscriber, #110703)
[Link]
Posted Jun 27, 2020 5:14 UTC (Sat)
by ras (subscriber, #33059)
[Link] (6 responses)
But you say it has friends?
Posted Jun 27, 2020 5:46 UTC (Sat)
by pabs (subscriber, #43278)
[Link] (5 responses)
https://borgbackup.github.io/borgbackup/
There is also bup, much more closely related to git:
Posted Jun 27, 2020 7:19 UTC (Sat)
by johill (subscriber, #25196)
[Link] (4 responses)
Borg's encryption design seems to have one issue - as far as I can tell, the "content-based chunker" has a very small key (they claim 32 bits, but say it goes linearly though the algorithm, so not all of those bits eventually matter), which would seem to allow fingerprinting attacks ("you have this chain of chunk sizes, so you must have this file"). Borg also has been debating S3 storage for years without any movement.
Ultimately I landed with bup (that I had used previously), and have been working on adding to bup both (asymmetric) encryption support and AWS/S3 storage; in the latter case you can effectively make your repo append-only (to the machine that's making the backup), i.e. AWS permissions ensure that it cannot actually delete the data. It could delete some metadata tables etc. but that's mostly recoverable (though I haven't written the recovery tools yet), apart from the ref names (which are only stored in dynamoDB for consistency reasons, S3 has almost no consistency guarantees.)
It's probably not ready for mainline yet (and we're busy finishing the python 3 port in mainline), but I've actually used it recently to begin storing some of my backups (currently ~850GiB) in S3 Deep Archive.
Configuration references:
Some design documentation is in the code:
If you use it, there are two other things in my tree that you'd probably want:
1) with a lot of data, the content-based splitting on 13 bits results in far too much metadata (and storage isn't that expensive anymore), so you'd want to increase that. Currently in master that's not configurable, but I changed that: https://github.com/jmberg/bup/blob/master/Documentation/b...
2) if you have lots of large directories (e.g. maildir) then minor changes to those currently consumes a significant amount of storage space since the entire folder is saved again (the list of files). I have "treesplit" in my code that allows splitting up those trees (again, content-based) to avoid that issue, which for my largest maildir of ~400k files brings down the amount of new data saved from close to 10 MB (after compression) to <<50kB when a new email is written there. Looks like I didn't document that yet, but I should add it here: https://github.com/jmberg/bup/blob/master/Documentation/b.... The commit describes it a bit now: https://github.com/jmberg/bup/commit/44006daca4786abe31e3...
And yes, I'm working with upstream on this.
Posted Jun 27, 2020 7:31 UTC (Sat)
by pabs (subscriber, #43278)
[Link] (1 responses)
Posted Jun 27, 2020 7:42 UTC (Sat)
by johill (subscriber, #25196)
[Link]
However, it's not nearly as bad in git? You're not storing hundreds of thousands of files in a folder in git, presumably? :-) Not sure how much interest there would be in git on that.
Posted Jun 27, 2020 7:48 UTC (Sat)
by johill (subscriber, #25196)
[Link]
Posted Jul 8, 2020 19:22 UTC (Wed)
by nix (subscriber, #2304)
[Link]
By this point, as a mere observer, I would say you *are* one of upstream. You're one of the two people doing most of the bup commits and have been for over a year now. :)
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
https://github.com/jmberg/bup/blob/master/Documentation/b...
https://github.com/jmberg/bup/blob/master/Documentation/b...
https://github.com/jmberg/bup/blob/master/lib/bup/repo/en...
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256
Updating the Git protocol for SHA-256