{"push_id":1149832106,"size":30,"distinct_size":19,"ref":"refs/heads/jk/metapacks-wip","head":"db856e9200e36ab599115900d7af206a9fd04e0e","before":"ddadfcea22d240e526af7c46d10d193ab223ade8","commits":[{"sha":"b0f4b4084626ab0f87611acd89030e8bdf0b850e","author":{"name":"Stefan Beller","email":"75e5af3a5fc6e432c184f339c5c73c118a246be6@google.com"},"message":"submodule--helper: offer a consistent API\n\nIn 48308681 (2016-02-29, git submodule update: have a dedicated helper\nfor cloning), the helper communicated errors back only via exit code,\nand dance with printing '#unmatched' in case of error was left to\ngit-submodule.sh as it uses the output of the helper and pipes it into\nshell commands. This change makes the helper consistent by never\nprinting '#unmatched' in the helper but always handling these piping\nissues in the actual shell script.\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/b0f4b4084626ab0f87611acd89030e8bdf0b850e"},{"sha":"44431df02459ec6c4d8c705dd15f376015407043","author":{"name":"Stefan Beller","email":"75e5af3a5fc6e432c184f339c5c73c118a246be6@google.com"},"message":"submodule: remove bashism from shell script\n\nJunio pointed out `relative_path` was using bashisms via the\nlocal variables. As the longer term goal is to rewrite most of the\nsubmodule code in C, do it now.\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/44431df02459ec6c4d8c705dd15f376015407043"},{"sha":"f6136f3c39a4e7b9b98c11e69d38e15f5705204b","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'sb/submodule-helper-list-signal-unmatch-via-exit-status'\n\nThe way how \"submodule--helper list\" signals unmatch error to its\ncallers has been updated.\n\n* sb/submodule-helper-list-signal-unmatch-via-exit-status:\n  submodule--helper: offer a consistent API","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/f6136f3c39a4e7b9b98c11e69d38e15f5705204b"},{"sha":"283badc38e99f1dcdbb7bc5f6b5b3ace886b3bfd","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'sb/submodule-helper-relative-path'\n\nA bash-ism \"local\" has been removed from \"git submodule\" scripted\nPorcelain.\n\n* sb/submodule-helper-relative-path:\n  submodule: remove bashism from shell script","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/283badc38e99f1dcdbb7bc5f6b5b3ace886b3bfd"},{"sha":"05781d37fa43b5dada77d1bcfd4cdc42742e7421","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'ar/diff-args-osx-precompose' into maint\n\nMany commands normalize command line arguments from NFD to NFC\nvariant of UTF-8 on OSX, but commands in the \"diff\" family did\nnot, causing \"git diff $path\" to complain that no such path is\nknown to Git.  They have been taught to do the normalization.\n\n* ar/diff-args-osx-precompose:\n  diff: run arguments through precompose_argv","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/05781d37fa43b5dada77d1bcfd4cdc42742e7421"},{"sha":"7dcbf891d975eba5b1e3095cb3b389834689ac09","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'tb/core-eol-fix' into maint\n\nA couple of bugs around core.autocrlf have been fixed.\n\n* tb/core-eol-fix:\n  convert.c: ident + core.autocrlf didn't work\n  t0027: test cases for combined attributes\n  convert: allow core.autocrlf=input and core.eol=crlf\n  t0027: make commit_chk_wrnNNO() reliable","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/7dcbf891d975eba5b1e3095cb3b389834689ac09"},{"sha":"389c3289cfa5bc0a232ad52df70fae1f6863d1a4","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'da/difftool' into maint\n\n\"git difftool\" learned to handle unmerged paths correctly in\ndir-diff mode.\n\n* da/difftool:\n  difftool: handle unmerged files in dir-diff mode\n  difftool: initialize variables for readability","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/389c3289cfa5bc0a232ad52df70fae1f6863d1a4"},{"sha":"1676827c859d838dc104a21f993af40d01586c0f","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'kb/msys2-tty' into maint\n\nThe \"are we talking with TTY, doing an interactive session?\"\ndetection has been updated to work better for \"Git for Windows\".\n\n* kb/msys2-tty:\n  mingw: make isatty() recognize MSYS2's pseudo terminals (/dev/pty*)","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/1676827c859d838dc104a21f993af40d01586c0f"},{"sha":"0b65a8dbdb38962e700ee16776a3042beb489060","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Git 2.8.4\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/0b65a8dbdb38962e700ee16776a3042beb489060"},{"sha":"c42b5d8e69ba45b00d1681745a72c1d3af1e897f","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Sync with 2.8.4\n\n* maint:\n  Git 2.8.4","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c42b5d8e69ba45b00d1681745a72c1d3af1e897f"},{"sha":"49fa3dc76179e04b0833542fa52d0f287a4955ac","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Git 2.9-rc2\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/49fa3dc76179e04b0833542fa52d0f287a4955ac"},{"sha":"bf4e624097d0819e9b3eafaecde53ebd70508d93","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"introduce pack metadata cache files\n\nThe on-disk packfile format is nicely compact, but it does\nnot always provide the fastest format for looking up\ninformation. This patch introduces the concept of\n\"metapacks\", optional metadata files which can live\nalongside packs and represent their data in different ways.\nThis can allow space-time tradeoffs in accessing certain\nobject data.\n\nSuch space-time tradeoffs have traditionally gone into the\n.idx file (e.g., the fact that we can quickly find an\nobject's offset in the packfile is due to the index). In\ntheory, cached data could also go into the .idx file.\nHowever, keeping it in a separate file makes backwards\ncompatibility much simpler. Older versions of git can simply\nignore the extra files and use the existing methods for\naccessing object data. This also makes metapacks optional,\nso you can easily tune the space-time tradeoff on a per-repo\nbasis.\n\nTODO: document on-disk format in Documentation/technical\nTODO: document api","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/bf4e624097d0819e9b3eafaecde53ebd70508d93"},{"sha":"7e91df3a03a8b342de2782f956859c066a8e3b6b","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"introduce a commit metapack\n\nWhen we are doing a commit traversal that does not need to\nlook at the commit messages themselves (e.g., rev-list,\nmerge-base, etc), we spend a lot of time accessing,\ndecompressing, and parsing the commit objects just to find\nthe parent and timestamp information. We can make a\nspace-time tradeoff by caching that information on disk in a\ncompact, uncompressed format.\n\nTODO: document on-disk format in Documentation/technical\nTODO: document API","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/7e91df3a03a8b342de2782f956859c066a8e3b6b"},{"sha":"ac7e22cda9f2f0b858dab967ad1a428bb6e800e1","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"add git-metapack command\n\nThis is a plumbing command for generating metapack files.\nRight now it understands only the \"commits\" metapack (and\nthere is not yet a reader). Eventually we may want to build\nthis metapack automatically when we generate a new pack.\nLet's be conservative for now, though, and let the idea\nprove itself in practice before turning it on for everyone.\n\nThe commits metapack generated by this command is 84 bytes\nper commit; for linux-2.6.git, this is about 31M.\n\nTODO: documentation","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/ac7e22cda9f2f0b858dab967ad1a428bb6e800e1"},{"sha":"1eed688276fd6d37330ab31d410e283a3b3bf2d1","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"commit: look up commit info in metapack\n\nNow that we have the plumbing in place to generate and read\ncommit metapacks, we can hook them up to parse_commit to\nfill in the traversal information much more quickly.\n\nWe only do so if save_commit_buffer is turned off;\notherwise, the callers will expect to be able to read\ncommit->buffer after parse_commit returns (and since our\ncache obviously does not have that information, we must\nleave it NULL). As callers learn to handle a NULL\ncommit->buffer, we can eventually relax this (while it might\nseem like a useless no-op to use the cache if we are going\nto load the commit anyway, many callers may first filter\nbased on the traversal, and end up loading the commit\nmessage for only a subset of the commits).\n\nWith this patch (and having run \"git metapack --all\n--commits\"), my best-of-five warm-cache \"git rev-list\n--count --all\" traversal of linux-2.6.git drops from 4.219s\nto 0.659s.\n\nSimilarly, cold-cache drops from 13.696s to 4.763s due to\nthe compactness of the cache data (but you are penalized, of\ncourse, if you then want to actually look at the commit\nmessages, since you have not warmed them into the cache).","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/1eed688276fd6d37330ab31d410e283a3b3bf2d1"},{"sha":"5db8e3982ba4764852390d229c91db15ad33897b","author":{"name":"Duy Nguyen","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"introduce a commit metapack","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/5db8e3982ba4764852390d229c91db15ad33897b"},{"sha":"a1c83571602f6f82941d55f6295551f2efb44bdc","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"parse_object: use commit_metapack to parse commits\n\nWe can speculate that an unknown object may be a commit, and\nif we find it in the metapack, assume it is. This can speed\nup codepaths which follow parse_object rather than\nparse_commit (e.g., when looking up a ref rather than\nfollowing a parent link).","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/a1c83571602f6f82941d55f6295551f2efb44bdc"},{"sha":"188af7c65f0a9864da6b2202e67564f17723c601","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"branch: turn off save_commit_buffer\n\nMost of the commits we read will be for traversal like\n--contains, and we never care about the log contents. The\nexception is when we print for \"-vv\", but even then, we are\nbetter to re-read the object for the few that we actually\nprint.","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/188af7c65f0a9864da6b2202e67564f17723c601"},{"sha":"5e854f702ebe1f824c8aaff1a64061040fee06a3","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"tag: turn off commit buffers\n\nThis lets us use metapacks","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/5e854f702ebe1f824c8aaff1a64061040fee06a3"},{"sha":"123f0f0a020e7c5d20f8e29f5eb9297f81a41733","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"metapacks: drop abbreviated sha1s\n\nThe abbreviated sha is kind of complicated. This drops it in\nfavor of a straight reference of the .idx sha1. These have\nthe same O() complexity, but the cache performance of the\nbinary search is probably much worse here.","distinct":true,"url":"https://api.github.com/repos/peff/git/commits/123f0f0a020e7c5d20f8e29f5eb9297f81a41733"}]}
{"actor":{"display_login":"peff"}}