{"thread":{"id":"3453","subject":"Some more pack-objects tweaks","startedAt":"2006-02-24T10:38:21Z","lastAt":"2006-02-24T10:38:21Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"16662","messageId":"7vvev5ca8y.fsf@assigned-by-dhcp.cox.net","threadId":"3453","inReplyTo":null,"subject":"Some more pack-objects tweaks","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-02-24T10:38:21Z","receivedAt":"2006-02-24T10:38:21Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I've been working more pack-objects improvements.  There will be\ntwo tweaks in the \"next\" branch I'll be pushing out tonight.\n\n * rev-list reports full pathnames not just basenames for\n   contained trees and blobs.  pack-objects hashes the incoming\n   names (and names obtained from \"negative\" trees when\n   --objects-edge aka \"thin pack\" is used) taking into account\n   the dirname and basename part.\n\n   Earlier, I had a patch that hashes the whole pathname, and\n   found it perform worse than the original \"hash just the\n   basename\" approach, so I never published it.  The idea in\n   this round is to give \"Makefile\" and \"t/Makefile\" a different\n   but close hash values.  Type-size sort groups \"Makefile\"s\n   from different revs together, and another group of bunch of\n   \"t/Makefile\"s are found close by.\n\n * when creating \"thin\" pack, disable the code to avoid too\n   long a delta chain to be made due to reused delta (see\n   15b4d57 and ab7cd7b commit log for details).\n\n   This is because limiting delta chain is more costly than let\n   it grow by using preexisting delta, and \"thin\" pack is usable\n   by first exploding it, so at that point delta depth does not\n   matter.\n\nIn Linux 2.6 repository, I've created a thin pack between\nv2.6.14..v2.6.15-rc1 (36k objects).  Here are the results:\n\n    [without either patch]\n    15463034 bytes\n    Total 36248, written 36248 (delta 29046), reused 28306 (delta 22512)\n    real    1m38.157s       user    1m32.520s       sys     0m5.440s\n\n    [with full names]\n    11138621 bytes\n    Total 36248, written 36248 (delta 30368), reused 27918 (delta 22512)\n    real    1m36.254s       user    1m28.650s       sys     0m5.470s\n\n    [with full names, and allowing deeper delta]\n    9971223 bytes\n    Total 36248, written 36248 (delta 30868), reused 27429 (delta 22512)\n    real    1m36.923s       user    1m29.770s       sys     0m5.470s\n\nAll of these tests were done with the last patch in Nico's delta\nenhancement series reverted, because the dataset used in this\ntest triggers a corner case performance disaster in it (I've\nsent a message separately).\n"}]}