On Thu, Feb 23, 2017 at 05:43:02PM -0500, Jeff King wrote: > On Thu, Feb 23, 2017 at 02:38:29PM -0800, Linus Torvalds wrote: > > > > Thanks, I hadn't seen that yet. That doesn't look like it should be hard > > > to integrate into Git. > > > > Here's a *very* ugly patch that is absolutely disgusting and should not be > > used. But it does kind of work (I tested it with a faked-up extra patch > > that made git accept the broken pdf as a loose object). > > > > What do I mean by "kind of work"? It uses that ugly and slow checking > > SHA1 routine from the collision detection project for the SHA1 object > > verification, and it means that "git fsck" ends up being about twice as > > slow as it used to be. > > Heh. I was just putting the finishing touches on a similar patch. Mine > is much less gross, in that it actually just adds a new USE_SHA1DC knob > (instead of, say, BLK_SHA1). Here's my patches. They _might_ be worth including if only because they shouldn't bother anybody unless they enable USE_SHA1DC. So it makes it a bit more accessible for people to experiment with (or be paranoid with if they like). The first one is 98K. Mail headers may bump it over vger's 100K barrier. It's actually the _least_ interesting patch of the 3, because it just imports the code wholesale from the other project. But if it doesn't make it, you can fetch the whole series from: https://github.com/peff/git jk/sha1dc (By the way, I don't see your version on the list, Linus, which probably means it was eaten by the 100K filter). [1/3]: add collision-detecting sha1 implementation [2/3]: sha1dc: adjust header includes for git [3/3]: Makefile: add USE_SHA1DC knob Makefile | 10 + sha1dc/sha1.c | 1165 ++++++++++++++++++++++++++++++++++++++++++++++++++++ sha1dc/sha1.h | 108 +++++ sha1dc/ubc_check.c | 361 ++++++++++++++++ sha1dc/ubc_check.h | 33 ++ 5 files changed, 1677 insertions(+) create mode 100644 sha1dc/sha1.c create mode 100644 sha1dc/sha1.h create mode 100644 sha1dc/ubc_check.c create mode 100644 sha1dc/ubc_check.h -Peff