{"push_id":2349412464,"size":19,"distinct_size":0,"ref":"refs/heads/jk/helpful-config","head":"77a6daba20edf624bd21b03157d3f3387f06c09e","before":"6d3271faa3013878fc7a2420f85e6b93da8b0901","commits":[{"sha":"43662b23abbd8b86ce6a9c87c80900eab84d97d9","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"format-patch: keep cover-letter diffstat wrapped in 72 columns\n\nWe already wrap shortlog around 72 columns in cover letters. Do the same\nfor diffstat (also in cover letters).\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/peff/git/commits/43662b23abbd8b86ce6a9c87c80900eab84d97d9"},{"sha":"071dd0ba43b51a2124f3f9884283cd68a9506323","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"format-patch: reduce patch diffstat width to 72\n\nPatches generated by format-patch are meant to be exchanged as emails,\nmost of the time. And since it's generally agreed that text in mails\nshould be wrapped around 70 columns or so, make sure these diffstat\nfollow the convention (especially when used with --cover-letter since we\nalready defaults to wrapping 72 columns). The default can still be\noverriden with command line options.\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/peff/git/commits/071dd0ba43b51a2124f3f9884283cd68a9506323"},{"sha":"0c591cacba00a36af797fa3b6c4a4f12d342be86","author":{"name":"Lucas Werkmeister","email":"3b8e10480754ba93523db5dc4626a5f001e54bb7@lucaswerkmeister.de"},"message":"daemon: add --log-destination=(stderr|syslog|none)\n\nThis new option can be used to override the implicit --syslog of\n--inetd, or to disable all logging. (While --detach also implies\n--syslog, --log-destination=stderr with --detach is useless since\n--detach disassociates the process from the original stderr.) --syslog\nis retained as an alias for --log-destination=syslog.\n\n--log-destination always overrides implicit --syslog regardless of\noption order. This is different than the “last one wins” logic that\napplies to some implicit options elsewhere in Git, but should hopefully\nbe less confusing. (I also don’t know if *all* implicit options in Git\nfollow “last one wins”.)\n\nThe combination of --inetd with --log-destination=stderr is useful, for\ninstance, when running `git daemon` as an instanced systemd service\n(with associated socket unit). In this case, log messages sent via\nsyslog are received by the journal daemon, but run the risk of being\nprocessed at a time when the `git daemon` process has already exited\n(especially if the process was very short-lived, e.g. due to client\nerror), so that the journal daemon can no longer read its cgroup and\nattach the message to the correct systemd unit (see systemd/systemd#2913\n[1]). Logging to stderr instead can solve this problem, because systemd\ncan connect stderr directly to the journal daemon, which then already\nknows which unit is associated with this stream.\n\n[1]: https://github.com/systemd/systemd/issues/2913\n\nHelped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nHelped-by: Junio C Hamano <gitster@pobox.com>\nHelped-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Lucas Werkmeister <mail@lucaswerkmeister.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/0c591cacba00a36af797fa3b6c4a4f12d342be86"},{"sha":"a6c612b528a22fe9d4cad8807e36d18f2f0fea2c","author":{"name":"Genki Sky","email":"076cd1c87fce5b5cd21593afdded430a33fc4dd2@genki.is"},"message":"rebase: add --allow-empty-message option\n\nThis option allows commits with empty commit messages to be rebased,\nmatching the same option in git-commit and git-cherry-pick. While empty\nlog messages are frowned upon, sometimes one finds them in older\nrepositories (e.g. translated from another VCS [0]), or have other\nreasons for desiring them. The option is available in git-commit and\ngit-cherry-pick, so it is natural to make other git tools play nicely\nwith them. Adding this as an option allows the default to be \"give the\nuser a chance to fix\", while not interrupting the user's workflow\notherwise [1].\n\n  [0]: https://stackoverflow.com/q/8542304\n  [1]: https://public-inbox.org/git/7vd33afqjh.fsf@alter.siamese.dyndns.org/\n\nTo implement this, add a new --allow-empty-message flag. Then propagate\nit to all calls of 'git commit', 'git cherry-pick', and 'git rebase--helper'\nwithin the rebase scripts.\n\nSigned-off-by: Genki Sky <sky@genki.is>\nReviewed-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/a6c612b528a22fe9d4cad8807e36d18f2f0fea2c"},{"sha":"8cdef01c4282e6006b785a0222589ccd2b65a187","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t5541: add 'test_i18ngrep's missing filename parameter\n\nThe test 'push --no-progress silences progress but not status' runs\n'test_i18ngrep' without specifying a filename parameter.  This has\nremained unnoticed since its introduction in e304aeba2 (t5541: test\nmore combinations of --progress, 2012-05-01), because that\n'test_i18ngrep' is supposed to check that the given pattern is not\npresent in its input, and of course it won't find that pattern if its\ninput is empty (as it comes from /dev/null).  This also means that\nthis test could miss a potential breakage of 'git push --no-progress'.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/8cdef01c4282e6006b785a0222589ccd2b65a187"},{"sha":"a4ca4553e08ab5626f744171c1d2d7fbfed11e8b","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t5812: add 'test_i18ngrep's missing filename parameter\n\nThe second 'test_i18ngrep' invocation in the test 'curl redirects\nrespect whitelist' is missing its filename parameter.  This has\nremained unnoticed since its introduction in f4113cac0 (http: limit\nredirection to protocol-whitelist, 2015-09-22), because it would only\ncause the test to fail if Git was built with a sufficiently old\nlibcurl version.  The test's two ||-chained 'test_i18ngrep'\ninvocations are supposed to check that either one of the two patterns\nis present in 'git clone's error message.  As it happens, the first\ninvocation covers the error message from any reasonably up-to-date\nlibcurl, thus the second invocation, the one without the filename\nparameter, isn't executed at all.  Apparently no one has run the test\nsuite's httpd tests with such an old libcurl in the last 2+ years, or\nat least they haven't bothered to notify us about the failed test.\n\nFix this by consolidating the two patterns into a single extended\nregexp, eliminating the need for an ||-chained second 'test_i18ngrep'\ninvocation.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/a4ca4553e08ab5626f744171c1d2d7fbfed11e8b"},{"sha":"cc04adc2d0514f0f666b7e123ba2022b1a20dcde","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t6022: don't run 'git merge' upstream of a pipe\n\nThe primary purpose of 't6022-merge-rename.sh' is to test 'git merge',\nbut one of the tests runs it upstream of a pipe, hiding its exit code.\nConsequently, the test could continue even if 'git merge' exited with\nerror.\n\nUse an intermediate file between 'git merge' and 'test_i18ngrep' to\ncatch a potential failure of the former.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/cc04adc2d0514f0f666b7e123ba2022b1a20dcde"},{"sha":"3b85ec34b8448d0311ef20e225c76df11c006008","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t4001: don't run 'git status' upstream of a pipe\n\nThe primary purpose of three tests in 't4001-diff-rename.sh' is to\ncheck rename detection in 'git status', but all three do so by running\n'git status' upstream of a pipe, hiding its exit code.  Consequently,\nthe test could continue even if 'git status' exited with error.\n\nUse an intermediate file between 'git status' and 'test_i18ngrep' to\ncatch a potential failure of the former.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/3b85ec34b8448d0311ef20e225c76df11c006008"},{"sha":"927c1a643a9320368a95046f855371b0ce473263","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t5510: consolidate 'grep' and 'test_i18ngrep' patterns\n\nOne of the tests in 't5510-fetch.sh' checks the output of 'git fetch'\nusing 'test_i18ngrep', and while doing so it prefilters the output\nwith 'grep' before piping the result into 'test_i18ngrep'.\n\nThis prefiltering is unnecessary, with the appropriate pattern\n'test_i18ngrep' can do it all by itself.  Furthermore, piping data\ninto 'test_i18ngrep' will interfere with the linting that will be\nadded in a later patch.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/927c1a643a9320368a95046f855371b0ce473263"},{"sha":"93b4b0313c8d9d3600fc27b7023dab0d9d9be739","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t5536: let 'test_i18ngrep' read the file without redirection\n\nRedirecting 'test_i18ngrep's standard input from a file will interfere\nwith the linting that will be added in a later patch.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/93b4b0313c8d9d3600fc27b7023dab0d9d9be739"},{"sha":"0f59128f7bb6ce20889156efd101d1e059377eaa","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'\n\nBoth 'test_i18ncmp' and 'test_i18ngrep' helper functions are supposed\nto be called from our test scripts, so they should be in\n'test-lib-functions.sh'.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/0f59128f7bb6ce20889156efd101d1e059377eaa"},{"sha":"fd29d7b9d767296e0f8fbd3f7def735424fdbb30","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t: validate 'test_i18ngrep's parameters\n\nSome of the previous patches in this series fixed bogus\n'test_i18ngrep' invocations:\n\n  - Two invocations where the tested git command's standard output is\n    directly piped into 'test_i18ngrep'.  While convenient, this is an\n    antipattern, because the pipe hides the git command's exit code,\n    and the test could continue even if the command exited with error.\n\n  - Two invocations that had neither a filename parameter nor anything\n    piped into their standard input, yet both managed to remain\n    unnoticed for years.  A third similarly bogus invocation is\n    currently lurking in 'pu' for a couple of weeks now.\n\nPrevent similar mistakes in the future by validating 'test_i18ngrep's\nparameters requiring that\n\n  - The last parameter names an existing file to be read, effectively\n    forbidding piping into 'test_i18ngrep'.\n\n    Note that this change will also forbid cases where 'test_i18ngrep'\n    would legitimately read its standard input, e.g. when its standard\n    input is redirected from a file, or when a git command's standard\n    output is first written to an intermediate file, which is then\n    preprocessed by a non-git command before the results are piped\n    into 'test_i18ngrep'.  See two of the previous patches for the\n    only such cases we had in our test suite.  However, reliably\n    preventing the piping antipattern is arguably more important than\n    supporting these cases, which can be easily worked around by\n    opening the file directly or using an intermediate file anyway.\n\n  - There are at least two parameters, not including the optional '!'\n    to negate the pattern.  This ought to catch corner cases when\n    'test_i18ngrep' looks for the name of an existing file on its\n    standard input; the above check would miss this case becase the\n    filename as pattern would be the last parameter.\n\n    Note that this is not quite perfect, as it doesn't account for any\n    'grep --options' given as parameters.  However, doing so would be\n    far too complicated, considering that patterns can start with\n    dashes as well, and in the majority of the cases we don't use any\n    such options anyway.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fd29d7b9d767296e0f8fbd3f7def735424fdbb30"},{"sha":"63b1a175ee284f37c009e0afd7ee88a7c04ca515","author":{"name":"SZEDER Gábor","email":"2d7398648c7656faf78ca9ed84ec90025e532b11@gmail.com"},"message":"t: make 'test_i18ngrep' more informative on failure\n\nWhen 'test_i18ngrep' can't find the expected pattern, it exits\ncompletely silently; when its negated form does find the pattern that\nshouldn't be there, it prints the matching line(s) but otherwise exits\nwithout any error message.  This leaves the developer puzzled about\nwhat could have gone wrong.\n\nMake 'test_i18ngrep' more informative on failure by printing an error\nmessage including the invoked 'grep' command and the contents of the\nfile it had to scan through.\n\nNote that this \"dump the scanned file\" part is not quite perfect, as\nit dumps only the file specified as the function's last positional\nparameter, thus assuming that there is only a single file parameter.\nI think that's a reasonable assumption to make, one that holds true in\nthe current code base.  And even if someone were to scan multiple\nfiles at once in the future, the worst thing that could happen is that\nthe verbose error message won't include the contents of all those\nfiles, only the last one.  Alas, we can't really do any better than\nthis, because checking whether the other positional parameters match a\nfilename can result in false positives: 't3400-rebase.sh' and\n't3404-rebase-interactive.sh' contain one test each, where the\n'test_i18ngrep's pattern verbatimly matches a file in the trash\ndirectory.\n\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\nReviewed-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/63b1a175ee284f37c009e0afd7ee88a7c04ca515"},{"sha":"e469e9c5c6919a2325db8bbef2d7f7d3640df524","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'nd/format-patch-stat-width'\n\n\"git format-patch\" learned to give 72-cols to diffstat, which is\nconsistent with other line length limits the subcommand uses for\nits output meant for e-mails.\n\n* nd/format-patch-stat-width:\n  format-patch: reduce patch diffstat width to 72\n  format-patch: keep cover-letter diffstat wrapped in 72 columns","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/e469e9c5c6919a2325db8bbef2d7f7d3640df524"},{"sha":"c2bd43d66dab958d72bee58d319df55600158f2e","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'lw/daemon-log-destination'\n\nThe log from \"git daemon\" can be redirected with a new option; one\nrelevant use case is to send the log to standard error (instead of\nsyslog) when running it from inetd.\n\n* lw/daemon-log-destination:\n  daemon: add --log-destination=(stderr|syslog|none)","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c2bd43d66dab958d72bee58d319df55600158f2e"},{"sha":"2f6128daab0764c3915dcc9e01c27381b63f5e40","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'gs/rebase-allow-empty-message'\n\n\"git rebase\" learned to take \"--allow-empty-message\" option.\n\n* gs/rebase-allow-empty-message:\n  rebase: add --allow-empty-message option","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/2f6128daab0764c3915dcc9e01c27381b63f5e40"},{"sha":"66023bbd78fe93c4704b3df754f9f7dc619ebaad","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'sg/test-i18ngrep'\n\nTest fixes.\n\n* sg/test-i18ngrep:\n  t: make 'test_i18ngrep' more informative on failure\n  t: validate 'test_i18ngrep's parameters\n  t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'\n  t5536: let 'test_i18ngrep' read the file without redirection\n  t5510: consolidate 'grep' and 'test_i18ngrep' patterns\n  t4001: don't run 'git status' upstream of a pipe\n  t6022: don't run 'git merge' upstream of a pipe\n  t5812: add 'test_i18ngrep's missing filename parameter\n  t5541: add 'test_i18ngrep's missing filename parameter","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/66023bbd78fe93c4704b3df754f9f7dc619ebaad"},{"sha":"e3a80781f5932f5fea12a49eb06f3ade4ed8945c","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Fourth batch for 2.17","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/e3a80781f5932f5fea12a49eb06f3ade4ed8945c"},{"sha":"77a6daba20edf624bd21b03157d3f3387f06c09e","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"help: don't look at git_default_config()\n\nThere's nothing in the default config callback that should\nimpact how we show the help. And there's a good reason to\navoid it if we can: running \"git help foo\" (or \"git foo\n--help\", which triggers that) is a likely thing for somebody\nwho is trying to figure out how to un-break configuration.\nIf parsing the config causes us to die, that creates a\nchicken and egg problem.","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/77a6daba20edf624bd21b03157d3f3387f06c09e"}]}
{"actor":{"display_login":"peff"}}