{"push_id":2331800965,"size":142,"distinct_size":0,"ref":"refs/heads/jch","head":"d37e9f0a09742887c85943353c82090e94e84e5d","before":"0b0eec955c255fe2ad304c368868b80f3614c95f","commits":[{"sha":"4ccf461f56158b46e86731b0040e412e60b95a6e","author":{"name":"Ben Peart","email":"245d18737bd52fa108c37eccdaa9225bc987d090@microsoft.com"},"message":"fsmonitor: update documentation to remove reference to invalid config settings\n\nRemove the reference to setting core.fsmonitor to `true` (or `false`) as those\nare not valid settings.\n\nSigned-off-by: Ben Peart <benpeart@microsoft.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/4ccf461f56158b46e86731b0040e412e60b95a6e"},{"sha":"aef6cf1e5093f3739e39cfdcfb73f3b862cf842c","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"test-hashmap: use ALLOC_ARRAY rather than bare malloc\n\nThese two array allocations have several minor flaws:\n\n  - they use bare malloc, rather than our error-checking\n    xmalloc\n\n  - they do a bare multiplication to determine the total\n    size (which in theory can overflow, though in this case\n    the sizes are all constants)\n\n  - they use sizeof(type), but the type in the second one\n    doesn't match the actual array (though it's \"int\" versus\n    \"unsigned int\", which are guaranteed by C99 to have the\n    same size)\n\nNone of these are likely to be problems in practice, and\nthis is just a test helper. But since people often look at\ntest helpers as reference code, we should do our best to\nmodel the recommended techniques.\n\nSwitching to ALLOC_ARRAY fixes all three.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/aef6cf1e5093f3739e39cfdcfb73f3b862cf842c"},{"sha":"b6c4380d6e3170e21e6670248b7f332c57cb077c","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"test-hashmap: check allocation computation for overflow\n\nWhen we allocate the test_entry flex-struct, we have to add\nup all of the elements that go into the flex array. If these\nwere to overflow a size_t, this would allocate a too-small\nbuffer, which we would then overflow in our memcpy steps.\n\nSince this is just a test-helper, it probably doesn't matter\nin practice, but we should model the correct technique by\nusing the st_add() macros.\n\nUnfortunately, we cannot use the FLEX_ALLOC() macros here,\nbecause we are stuffing two different buffers into a single\nflex array.\n\nWhile we're here, let's also swap out \"malloc\" for our\nerror-checking \"xmalloc\", and use the preferred\n\"sizeof(*var)\" instead of \"sizeof(type)\".\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/b6c4380d6e3170e21e6670248b7f332c57cb077c"},{"sha":"cbadf0ee37def5cea81fb7702941af8234dd094d","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"test-hashmap: use xsnprintf rather than snprintf\n\nIn general, using a bare snprintf can truncate the resulting\nbuffer, leading to confusing results. In this case we know\nthat our buffer is sized large enough to accommodate our\nloop, so there's no bug. However, we should use xsnprintf()\nto document (and check) that assumption, and to model good\npractice to people reading the code.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/cbadf0ee37def5cea81fb7702941af8234dd094d"},{"sha":"7e8089c986790fd8ef9d89bf71c9a91901d7f884","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"test-hashmap: use strbuf_getline rather than fgets\n\nUsing fgets() with a fixed-size buffer can lead to lines\nbeing accidentally split across two calls if they are larger\nthan the buffer size.\n\nAs this is just a test helper, this is unlikely to be a\nproblem in practice. But since people may look at test\nhelpers as reference code, it's a good idea for them to\nmodel the preferred behavior.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/7e8089c986790fd8ef9d89bf71c9a91901d7f884"},{"sha":"7daa825d677dcbd40724cb146f3949b7d574e8b3","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"test-hashmap: simplify alloc_test_entry\n\nThis function takes two ptr/len pairs, which implies that\nthey can be arbitrary buffers. But internally, it assumes\nthat each \"ptr\" is NUL-terminated at \"len\" (because we\nmemcpy an extra byte to pick up the NUL terminator).\n\nIn practice this works because each caller only ever passes\nstrlen(ptr) as the length. But let's drop the \"len\"\nparameters to make our expectations clear.\n\nNote that we can get rid of the \"l1\" and \"l2\" variables from\ncmd_main() as a further cleanup, since they are now mostly\nused to check whether the p1 and p2 arguments are present\n(technically the length parameters conflated NULL with the\nempty string, which we no longer do, but I think that is\nactually an improvement).\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/7daa825d677dcbd40724cb146f3949b7d574e8b3"},{"sha":"a6119f82b118c7adea9ede0b3813810b06e37668","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"test-hashmap: use \"unsigned int\" for hash storage\n\nThe hashmap API always use an unsigned value for storing\nand comparing hashes. Whereas this test code uses \"int\".\nThis works out in practice since one can typically\nround-trip between \"int\" and \"unsigned int\". But since this\nis essentially reference code for the hashmap API, we should\nmodel using the correct types.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/a6119f82b118c7adea9ede0b3813810b06e37668"},{"sha":"ddbbf8eb25065720eefeb31e22f668931fca815b","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"sq_dequote: fix extra consumption of source string\n\nThis fixes a (probably harmless) parsing problem in\nsq_dequote_step(), in which we parse some bogus input\nincorrectly rather than complaining that it's bogus.\n\nOur shell-dequoting function is very strict: it can unquote\neverything generated by sq_quote(), but not arbitrary\nstrings. In particular, it only allows characters outside of\nthe single-quoted string if they are immediately backslashed\nand then the single-quoted string is resumed. So:\n\n  'foo'\\''bar'\n\nis OK. But these are not:\n\n  'foo'\\'bar\n  'foo'\\'\n  'foo'\\'\\''bar'\n\neven though they are all valid shell. The parser has a funny\ncorner case here. When we see a backslashed character, we\nkeep incrementing the \"src\" pointer as we parse it. For a\nsingle sq_dequote() call, that's OK; our next step is to\nbail with an error, and we don't care where \"src\" points.\n\nBut if we're parsing multiple strings with sq_dequote_to_argv(),\nthen our next step is to see if the string is followed by\nwhitespace. Because we erroneously incremented the \"src\"\npointer, we don't barf on the bogus backslash that we\nskipped. Instead, we may find whitespace that immediately\nfollows it, and continue as if all is well (skipping the\nbackslashed character completely!).\n\nIn practice, this shouldn't be a big deal. The input is\nbogus, and our sq_quote() would never generate this bogus\ninput. In all but one callers, we are parsing input created\nby an earlier call to sq_quote(). That final case is \"git\nshell\", which parses shell-quoting generated by the client.\nAnd in that case we use the singular sq_quote(), which has\nalways behaved correctly.\n\nOne might also wonder if you could provoke a read past the\nend of the string. But the answer is no; we still parse\ncharacter by character, and would never advance past a NUL.\n\nThis patch implements the minimal fix, along with\ndocumenting the restriction (which confused at least me\nwhile reading the code). We should possibly consider\nbeing more liberal in accepting valid shell-quoted words. I\nsuspect the code may actually be simpler, and it would be\nmore friendly to anybody generating or editing input by\nhand. But I wanted to fix just the immediate bug in this\npatch.\n\nWe don't have a direct way to unit-test the sq_dequote()\nfunctions, but we can do this by feeding input to\nGIT_CONFIG_PARAMETERS (which is not normally a user-facing\ninterface, but serves here as it expects to see sq_quote()\ninput from \"git -c\"). I've included both a bogus example,\nand a related \"good\" one to confirm that we still parse it\ncorrectly.\n\nNoticed-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/ddbbf8eb25065720eefeb31e22f668931fca815b"},{"sha":"65ed8ff376c4fdd8dd560b3ddbf7d6cd771f860e","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"am: support --quit\n\nAmong the \"in progress\" commands, only git-am and git-merge do not\nsupport --quit. Support --quit in git-am too.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/65ed8ff376c4fdd8dd560b3ddbf7d6cd771f860e"},{"sha":"c9a800a66d040421879cfb88ea1083779de9d1d7","author":{"name":"Robert P. J. Day","email":"ca872131e4ae8e078417e0456065b6cba620aa7d@crashcourse.ca"},"message":"t/: correct obvious typo \"detahced\"\n\nSigned-off-by: Robert P. J. Day <rpjday@crashcourse.ca>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/c9a800a66d040421879cfb88ea1083779de9d1d7"},{"sha":"5aea9fe6cccf7a29551f86e1c2ec85ab0ba12e8e","author":{"name":"Robert P. J. Day","email":"ca872131e4ae8e078417e0456065b6cba620aa7d@crashcourse.ca"},"message":"Correct mispellings of \".gitmodule\" to \".gitmodules\"\n\nThere are a small number of misspellings, \".gitmodule\", scattered\nthroughout the code base, correct them ... no apparent functional\nchanges.\n\nSigned-off-by: Robert P. J. Day <rpjday@crashcourse.ca>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/5aea9fe6cccf7a29551f86e1c2ec85ab0ba12e8e"},{"sha":"5dc919a4be95a8afe05f0907b69bd738c3a95529","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'ab/sha1dc-build' into jch\n\nPush the submodule version of collision-detecting SHA-1 hash\nimplementation a bit harder on builders.\n\n* ab/sha1dc-build:\n  sha1dc_git.h: re-arrange an ifdef chain for a subsequent change\n  Makefile: under \"make dist\", include the sha1collisiondetection submodule\n  Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/5dc919a4be95a8afe05f0907b69bd738c3a95529"},{"sha":"89085d055725ad696375962adf5f19b26b314e05","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'jc/worktree-add-short-help' into jch\n\nError message fix.\n\n* jc/worktree-add-short-help:\n  worktree: say that \"add\" takes an arbitrary commit in short-help","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/89085d055725ad696375962adf5f19b26b314e05"},{"sha":"2862ff15bc4aa46b26a7f8b4e9098f4a673c868c","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'en/merge-recursive-fixes' into jch\n\n* en/merge-recursive-fixes:\n  merge-recursive: add explanation for src_entry and dst_entry\n  merge-recursive: fix logic ordering issue\n  Tighten and correct a few testcases for merging and cherry-picking","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/2862ff15bc4aa46b26a7f8b4e9098f4a673c868c"},{"sha":"54751399cdff1c3e13b167ca692b80e682840027","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'jt/fsck-code-cleanup' into jch\n\nPlug recently introduced leaks in fsck.\n\n* jt/fsck-code-cleanup:\n  fsck: fix leak when traversing trees","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/54751399cdff1c3e13b167ca692b80e682840027"},{"sha":"25260bebd7289a2c75ba5ecb42886147656ae78c","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'kg/packed-ref-cache-fix' into jch\n\nAvoid mmapping small files while using packed refs (especially ones\nwith zero size, which would cause later munmap() to fail).\n\n* kg/packed-ref-cache-fix:\n  packed_ref_cache: don't use mmap() for small files\n  load_contents(): don't try to mmap an empty file\n  packed_ref_iterator_begin(): make optimization more general\n  find_reference_location(): make function safe for empty snapshots\n  create_snapshot(): use `xmemdupz()` rather than a strbuf\n  struct snapshot: store `start` rather than `header_len`","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/25260bebd7289a2c75ba5ecb42886147656ae78c"},{"sha":"a7c7a382319abdb77cc908d4760d0766fa274b48","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'sb/pull-rebase-submodule' into jch\n\n\"git pull --rebase\" did not pass verbosity setting down when\nrecursing into a submodule.\n\n* sb/pull-rebase-submodule:\n  builtin/pull: respect verbosity settings in submodules","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/a7c7a382319abdb77cc908d4760d0766fa274b48"},{"sha":"dbdc39acb914223461a6efe69a5071488eb74a58","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'po/object-id' into jch\n\nConversion from uchar[20] to struct object_id continues.\n\n* po/object-id:\n  sha1_file: rename hash_sha1_file_literally\n  sha1_file: convert write_loose_object to object_id\n  sha1_file: convert force_object_loose to object_id\n  sha1_file: convert write_sha1_file to object_id\n  notes: convert write_notes_tree to object_id\n  notes: convert combine_notes_* to object_id\n  commit: convert commit_tree* to object_id\n  match-trees: convert splice_tree to object_id\n  cache: clear whole hash buffer with oidclr\n  sha1_file: convert hash_sha1_file to object_id\n  dir: convert struct sha1_stat to use object_id\n  sha1_file: convert pretend_sha1_file to object_id","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/dbdc39acb914223461a6efe69a5071488eb74a58"},{"sha":"2a7111b6c973e133ecfb6912fa7e40fed347bad0","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'ab/wildmatch-tests' into jch\n\nMore tests for wildmatch functions.\n\n* ab/wildmatch-tests:\n  wildmatch test: mark test as EXPENSIVE_ON_WINDOWS\n  test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite\n  wildmatch test: create & test files on disk in addition to in-memory\n  wildmatch test: perform all tests under all wildmatch() modes\n  wildmatch test: use test_must_fail, not ! for test-wildmatch\n  wildmatch test: remove dead fnmatch() test code\n  wildmatch test: use a paranoia pattern from nul_match()\n  wildmatch test: don't try to vertically align our output\n  wildmatch test: use more standard shell style\n  wildmatch test: indent with tabs, not spaces","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/2a7111b6c973e133ecfb6912fa7e40fed347bad0"},{"sha":"6f7cd0ff8ffa1aa509746154d9b2573dfd29c01b","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'cc/perf-aggregate' into jch\n\n\"make perf\" enhancement.\n\n* cc/perf-aggregate:\n  perf/aggregate: sort JSON fields in output\n  perf/aggregate: add --reponame option\n  perf/aggregate: add --subsection option","distinct":false,"url":"https://api.github.com/repos/gitster/git/commits/6f7cd0ff8ffa1aa509746154d9b2573dfd29c01b"}]}
{"actor":{"display_login":"gitster"}}