{"push_id":2850503489,"size":24,"distinct_size":0,"ref":"refs/heads/jk/reopen-lock-flags","head":"85506b16e7a72975662446d46a08c9694f9e9ea3","before":"ce0b2654f74914825654bf7f6ca1948eb95f1fb7","commits":[{"sha":"5dfcfe1eb28edd1afe8e2e738878b71a7c69d301","author":{"name":"Phillip Wood","email":"2ab49fd2594d8067d004e5d20374688a2b5dc79c@dunelm.org.uk"},"message":"sequencer: handle errors from read_author_ident()\n\nCheck for a NULL return value from read_author_ident() that indicates\nan error. Previously the NULL author was passed to commit_tree() which\nwould then fallback to using the default author when creating the new\ncommit. This changed the date and potentially the author of the commit\nwhich corrupted the author data compared to its expected value.\n\nHelped-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/5dfcfe1eb28edd1afe8e2e738878b71a7c69d301"},{"sha":"4aa5ff9409aece369bf443bcb967db3832b0222c","author":{"name":"Phillip Wood","email":"2ab49fd2594d8067d004e5d20374688a2b5dc79c@dunelm.org.uk"},"message":"sequencer: fix quoting in write_author_script\n\nSingle quotes should be escaped as \\' not \\\\'. The bad quoting breaks\nthe interactive version of 'rebase --root' (which is used when there\nis no '--onto' even if the user does not specify --interactive) for\nauthors that contain \"'\" as sq_dequote() called by read_author_ident()\nerrors out on the bad quoting.\n\nFor other interactive rebases this only affects external scripts that\nread the author script and users whose git is upgraded from the shell\nversion of rebase -i while rebase was stopped when the author contains\n\"'\". This is because the parsing in read_env_script() expected the\nbroken quoting.\n\nThis patch includes code to handle the broken quoting when\ngit has been upgraded while rebase was stopped. It does this by\ndetecting the missing \"'\" at the end of the GIT_AUTHOR_DATE line to see\nif it should dequote \\\\' as \"'\". Note this is only implemented for\nnormal picks, not for creating a new root commit (rebase will stop with\nan error complaining out bad quoting in that case).\n\nThe fallback code has been manually tested by reverting both the quoting\nfixes in write_author_script() and the previous fix for the missing \"'\"\nat the end of the GIT_AUTHOR_DATE line and running\nt3404-rebase-interactive.sh.\n\nIdeally rebase and am would share the same code for reading and\nwriting the author script, but this commit just fixes the immediate\nbug.\n\nHelped-by: Eric Sunshine <sunshine@sunshineco.com>\nHelped-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/4aa5ff9409aece369bf443bcb967db3832b0222c"},{"sha":"2a59a6ef2066c786b69253e148cccdc92cfdb434","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: fix and add lint for non-portable head -c N\n\nThe \"head -c BYTES\" option is non-portable (not in POSIX[1]). Change\nsuch invocations to use the test_copy_bytes wrapper added in\n48860819e8 (\"t9300: factor out portable \"head -c\" replacement\",\n2016-06-30).\n\nThis fixes a test added in 9d2e330b17 (\"ewah_read_mmap: bounds-check\nmmap reads\", 2018-06-14), which has been breaking\nt5310-pack-bitmaps.sh on OpenBSD since 2.18.0. The OpenBSD ports\nalready have a similar workaround after their upgrade to 2.18.0[2].\n\nI have not tested this on IRIX, but according to 4de0bbd898 (\"t9300:\nuse perl \"head -c\" clone in place of \"dd bs=1 count=16000\" kluge\",\n2010-12-13) this invocation would have broken things there too.\n\nAlso, change a valgrind-specific codepath in test-lib.sh to use this\nwrapper. Given where valgrind runs I don't think this would ever\nbecome a portability issue in practice, but it's easier to just use\nthe wrapper than introduce some exception for the \"make test-lint\"\ncheck being added here.\n\n1. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/head.html\n2. https://github.com/openbsd/ports/commit/08d5d82eaefe5cf2f125ecc0c6a57df9cf91350c#diff-f7d3c4fabeed1691620d608f1534f5e5\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/2a59a6ef2066c786b69253e148cccdc92cfdb434"},{"sha":"b2fa7a2372f42af404a942a4691a5341af8868e9","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: fix and add lint for non-portable seq\n\nThe seq command is not in POSIX, and doesn't exist on\ne.g. OpenBSD. We've had the test_seq wrapper since d17cf5f3a3 (\"tests:\nIntroduce test_seq\", 2012-08-04), but use of it keeps coming back,\ne.g. in the recently added \"fetch negotiator\" tests being added here.\n\nSo let's also add a check to \"make test-lint\". The regex is aiming to\ncapture the likes of $(seq ..) and \"seq\" as a stand-alone command,\nwithout capturing some existing cases where we e.g. have files called\n\"seq\", as \\bseq\\b would do.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/b2fa7a2372f42af404a942a4691a5341af8868e9"},{"sha":"2d9ded8accda2f32868516ddbe17b5ea323477a3","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: fix comment syntax in chainlint.sed for AIX sed\n\nChange a comment in chainlint.sed to appease AIX sed, which would\npreviously print this error:\n\n    sed:    # stash for later printing is not a recognized function\n\n1. https://public-inbox.org/git/CAPig+cTTbU5HFMKgNyrxTp3+kcK46-Fn=4ZH6zDt1oQChAc3KA@mail.gmail.com/\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nAcked-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/2d9ded8accda2f32868516ddbe17b5ea323477a3"},{"sha":"a3c4c8841caaf8bda924d0852670be4ea7461a7d","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: use shorter labels in chainlint.sed for AIX sed\n\nImprove the portability of chainlint by using shorter labels. On\nAIX sed will complain about:\n\n    sed: 0602-417 The label :hereslurp is greater than eight\n    characters\n\nThis, in combination with the previous fix to this file makes\nGIT_TEST_CHAIN_LINT=1 (which is the default) working again on AIX\nwithout issues, and the \"gmake check-chainlint\" test also passes.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nAcked-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/a3c4c8841caaf8bda924d0852670be4ea7461a7d"},{"sha":"8c97e3873156415015ab41523675416c91914eae","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: fix version-specific portability issue in Perl JSON\n\nThe test guarded by PERLJSON added in 75459410ed (\"json_writer: new\nroutines to create JSON data\", 2018-07-13) assumed that a JSON boolean\nvalue like \"true\" or \"false\" would be represented as \"1\" or \"0\" in\nPerl.\n\nThis behavior can't be relied upon, e.g. with JSON.pm 2.50 and\nJSON::PP.  A JSON::PP::Boolean object will be represented as \"true\"\nor \"false\". To work around this let's check if we have any refs left\nafter we check for hashes and arrays, assume those are JSON objects,\nand coerce them to a known boolean value.\n\nThe behavior of this test still looks odd to me. Why implement our own\nad-hoc encoder just for some one-off test, as opposed to say Perl's\nown Data::Dumper with Sortkeys et al? But with this change it works,\nso let's leave it be.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/8c97e3873156415015ab41523675416c91914eae"},{"sha":"4a3ed638027343cbfc47821973c2c3784a5c53ed","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: fix and add lint for non-portable grep --file\n\nThe --file option to grep isn't in POSIX[1], but -f is[1]. Let's check\nfor that in the future, and fix the portability regression in\nf237c8b6fe (\"commit-graph: implement git-commit-graph write\",\n2018-04-02) that broke e.g. AIX.\n\n1. http://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/4a3ed638027343cbfc47821973c2c3784a5c53ed"},{"sha":"de231e577b6d685bd4457450af7129ddd8892269","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: fix non-portable \"${var:-\"str\"}\" construct\n\nOn both AIX 7200-00-01-1543 and FreeBSD 11.2-RELEASE-p2 the\n\"${var:-\"str\"}\" syntax means something different than what it does\nunder the bash or dash shells.\n\nBoth will consider the start of the new unescaped quotes to be a new\nargument to test_expect_success, resulting in the following error:\n\n    error: bug in the test script: 'git diff-tree initial # magic\n    is (not' does not look like a prereq\n\nFix this by removing the redundant quotes. There's no need for them,\nand the resulting code works under all the aforementioned shells. This\nfixes a regression in c2f1d3989 (\"t4013: test new output from diff\n--abbrev --raw\", 2017-12-03) first released with Git v2.16.0.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/de231e577b6d685bd4457450af7129ddd8892269"},{"sha":"f6af6f9970cfd385b1e7aae12d86a6fcff814e33","author":{"name":"Ævar Arnfjörð Bjarmason","email":"0135fcc047f75af264c800977a73e353c6ba842d@gmail.com"},"message":"tests: fix non-portable iconv invocation\n\nThe iconv that comes with a FreeBSD 11.2-RELEASE-p2 box I have access\nto doesn't support the SHIFT-JIS encoding. Guard a test added in\ne92d62253 (\"convert: add round trip check based on\n'core.checkRoundtripEncoding'\", 2018-04-15) first released with Git\nv2.18.0 with a prerequisite that checks for its availability.\n\nThe iconv command is in POSIX, and we have numerous tests\nunconditionally relying on its ability to convert ASCII, UTF-8 and\nUTF-16, but unconditionally relying on the presence of more obscure\nencodings isn't portable.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/f6af6f9970cfd385b1e7aae12d86a6fcff814e33"},{"sha":"3042b6bb59787613e36e459bf60994a26bb5a5df","author":{"name":"Eric Sunshine","email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com"},"message":"chainlint: match \"quoted\" here-doc tags\n\nA here-doc tag can be quoted ('EOF'/\"EOF\") or escaped (\\EOF) to suppress\ninterpolation within the body. chainlint recognizes single-quoted and\nescaped tags, but does not know about double-quoted tags. For\ncompleteness, teach it to recognize double-quoted tags, as well.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/3042b6bb59787613e36e459bf60994a26bb5a5df"},{"sha":"e7588c96526293055727b27c4c51df86cfe06daf","author":{"name":"Elijah Newren","email":"955405675e5ddb1a110d200661c528aa223ef60f@gmail.com"},"message":"t3401: add another directory rename testcase for rebase and am\n\nSimilar to commit 16346883ab (\"t3401: add directory rename testcases for\nrebase and am\", 2018-06-27), add another testcase for directory rename\ndetection.  This new testcase differs in that it showcases a situation\nwhere no directory rename was performed, but which some backends\nincorrectly detect.\n\nAs with the other testcase, run this in conjunction with each of the\ntypes of rebases:\n  git-rebase--interactive\n  git-rebase--am\n  git-rebase--merge\nand also use the same testcase for\n  git am --3way\n\nReported-by: Nikolay Kasyanov <corrmage@gmail.com>\nSigned-off-by: Elijah Newren <newren@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/e7588c96526293055727b27c4c51df86cfe06daf"},{"sha":"5fdddd9b757a50c9a583936e7e6e44ec96d2d651","author":{"name":"Elijah Newren","email":"955405675e5ddb1a110d200661c528aa223ef60f@gmail.com"},"message":"merge-recursive: add ability to turn off directory rename detection\n\nSigned-off-by: Elijah Newren <newren@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/5fdddd9b757a50c9a583936e7e6e44ec96d2d651"},{"sha":"6aba117d5cf7128e7bc942888263552fe927e13f","author":{"name":"Elijah Newren","email":"955405675e5ddb1a110d200661c528aa223ef60f@gmail.com"},"message":"am: avoid directory rename detection when calling recursive merge machinery\n\nLet's say you have the following three trees, where Base is from one commit\nbehind either master or branch:\n\n   Base  : bar_v1, foo/{file1, file2, file3}\n   branch: bar_v2, foo/{file1, file2},       goo/file3\n   master: bar_v3, foo/{file1, file2, file3}\n\nUsing git-am (or am-based rebase) to apply the changes from branch onto\nmaster results in the following tree:\n\n   Result: bar_merged, goo/{file1, file2, file3}\n\nThis is not what users want; they did not rename foo/ -> goo/, they only\nrenamed one file within that directory.  The reason this happens is am\nconstructs fake trees (via build_fake_ancestor()) of the following form:\n\n   Base_bfa  : bar_v1, foo/file3\n   branch_bfa: bar_v2, goo/file3\n\nCombining these two trees with master's tree:\n\n   master: bar_v3, foo/{file1, file2, file3},\n\nYou can see that merge_recursive_generic() would see branch_bfa as renaming\nfoo/ -> goo/, and master as just adding both foo/file1 and foo/file2.  As\nsuch, it ends up with goo/{file1, file2, file3}\n\nThe core problem is that am does not have access to the original trees; it\ncan only construct trees using the blobs involved in the patch.  As such,\nit is not safe to perform directory rename detection within am -3.\n\nSigned-off-by: Elijah Newren <newren@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/6aba117d5cf7128e7bc942888263552fe927e13f"},{"sha":"091f4cf3586957c3fd99d4c4c59c569d009137ad","author":{"name":"Derrick Stolee","email":"ee0b68d4428a726bf8f65d5915bcba7139f7e5c7@microsoft.com"},"message":"commit: don't use generation numbers if not needed\n\nIn 3afc679b \"commit: use generations in paint_down_to_common()\",\nthe queue in paint_down_to_common() was changed to use a priority\norder based on generation number before commit date. This served\ntwo purposes:\n\n 1. When generation numbers are present, the walk guarantees\n    correct topological relationships, regardless of clock skew in\n    commit dates.\n\n 2. It enables short-circuiting the walk when the min_generation\n    parameter is added in d7c1ec3e \"commit: add short-circuit to\n    paint_down_to_common()\". This short-circuit helps commands\n    like 'git branch --contains' from needing to walk to a merge\n    base when we know the result is false.\n\nThe commit message for 3afc679b includes the following sentence:\n\n    This change does not affect the number of commits that are\n    walked during the execution of paint_down_to_common(), only\n    the order that those commits are inspected.\n\nThis statement is incorrect. Because it changes the order in which\nthe commits are inspected, it changes the order they are added to\nthe queue, and hence can change the number of loops before the\nqueue_has_nonstale() method returns true.\n\nThis change makes a concrete difference depending on the topology\nof the commit graph. For instance, computing the merge-base between\nconsecutive versions of the Linux kernel has no effect for versions\nafter v4.9, but 'git merge-base v4.8 v4.9' presents a performance\nregression:\n\n    v2.18.0: 0.122s\nv2.19.0-rc1: 0.547s\n       HEAD: 0.127s\n\nTo determine that this was simply an ordering issue, I inserted\na counter within the while loop of paint_down_to_common() and\nfound that the loop runs 167,468 times in v2.18.0 and 635,579\ntimes in v2.19.0-rc1.\n\nThe topology of this case can be described in a simplified way\nhere:\n\n  v4.9\n   |  \\\n   |   \\\n  v4.8  \\\n   | \\   \\\n   |  \\   |\n  ...  A  B\n   |  /  /\n   | /  /\n   |/__/\n   C\n\nHere, the \"...\" means \"a very long line of commits\". By generation\nnumber, A and B have generation one more than C. However, A and B\nhave commit date higher than most of the commits reachable from\nv4.8. When the walk reaches v4.8, we realize that it has PARENT1\nand PARENT2 flags, so everything it can reach is marked as STALE,\nincluding A. B has only the PARENT1 flag, so is not STALE.\n\nWhen paint_down_to_common() is run using\ncompare_commits_by_commit_date, A and B are removed from the queue\nearly and C is inserted into the queue. At this point, C and the\nrest of the queue entries are marked as STALE. The loop then\nterminates.\n\nWhen paint_down_to_common() is run using\ncompare_commits_by_gen_then_commit_date, B is removed from the\nqueue only after the many commits reachable from v4.8 are explored.\nThis causes the loop to run longer. The reason for this regression\nis simple: the queue order is intended to not explore a commit\nuntil everything that _could_ reach that commit is explored. From\nthe information gathered by the original ordering, we have no\nguarantee that there is not a commit D reachable from v4.8 that\ncan also reach B. We gained absolute correctness in exchange for\na performance regression.\n\nThe performance regression is probably the worse option, since\nthese incorrect results in paint_down_to_common() are rare. The\ntopology required for the performance regression are less rare,\nbut still require multiple merge commits where the parents differ\ngreatly in generation number. In our example above, the commit A\nis as important as the commit B to demonstrate the problem, since\notherwise the commit C will sit in the queue as non-stale just as\nlong in both orders.\n\nThe solution provided uses the min_generation parameter to decide\nif we should use generation numbers in our ordering. When\nmin_generation is equal to zero, it means that the caller has no\nknown cutoff for the walk, so we should rely on our commit-date\nheuristic as before; this is the case with merge_bases_many().\nWhen min_generation is non-zero, then the caller knows a valuable\ncutoff for the short-circuit mechanism; this is the case with\nremove_redundant() and in_merge_bases_many().\n\nSigned-off-by: Derrick Stolee <dstolee@microsoft.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/091f4cf3586957c3fd99d4c4c59c569d009137ad"},{"sha":"6c6ce21baa9b50d394bb8ed9878944504ffd57d8","author":{"name":"Eric Sunshine","email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com"},"message":"config.mak.uname: resolve FreeBSD iconv-related compilation warning\n\nOLD_ICONV has long been needed by FreeBSD so config.mak.uname defines\nit unconditionally. However, recent versions do not need it, and its\npresence results in compilation warnings. Resolve this issue by defining\nOLD_ICONV only for older FreeBSD versions.\n\nSpecifically, revision r281550[1], which is part of FreeBSD 11, removed\nthe need for OLD_ICONV, and r282275[2] back-ported that change to 10.2.\nVersions prior to 10.2 do need it.\n\n[1] https://github.com/freebsd/freebsd/commit/b0813ee288f64f677a2cebf7815754b027a8215b\n[2] https://github.com/freebsd/freebsd/commit/b709ec868adb5170d09bc5a66b18d0e0d5987ab6\n\n[es: commit message; tweak version check to distinguish 10.x versions]\n\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/6c6ce21baa9b50d394bb8ed9878944504ffd57d8"},{"sha":"064e0b2d4ca76b0c438545a4d2170e589327e31f","author":{"name":"Junio C Hamano","email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com"},"message":"Merge branch 'pw/rebase-i-author-script-fix'\n\nRecent \"git rebase -i\" update started to write bogusly formatted\nauthor-script, with a matching broken reading code.  These are\nfixed.\n\n* pw/rebase-i-author-script-fix:\n  sequencer: fix quoting in write_author_script\n  sequencer: handle errors from read_author_ident()","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/064e0b2d4ca76b0c438545a4d2170e589327e31f"},{"sha":"ca676b9bd354e846ac207e7879760719826517ce","author":{"name":"Junio C Hamano","email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com"},"message":"Merge branch 'en/directory-renames-nothanks'\n\nRecent addition of \"directory rename\" heuristics to the\nmerge-recursive backend makes the command susceptible to false\npositives and false negatives.  In the context of \"git am -3\",\nwhich does not know about surrounding unmodified paths and thus\ncannot inform the merge machinery about the full trees involved,\nthis risk is particularly severe.  As such, the heuristic is\ndisabled for \"git am -3\" to keep the machinery \"more stupid but\npredictable\".\n\n* en/directory-renames-nothanks:\n  am: avoid directory rename detection when calling recursive merge machinery\n  merge-recursive: add ability to turn off directory rename detection\n  t3401: add another directory rename testcase for rebase and am","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/ca676b9bd354e846ac207e7879760719826517ce"},{"sha":"0a866db570e520ce7b08d1eceefdeaa9d63b6704","author":{"name":"Junio C Hamano","email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com"},"message":"Merge branch 'ds/commit-graph-lockfile-fix'\n\n\"git merge-base\" in 2.19-rc1 has performance regression when the\n(experimental) commit-graph feature is in use, which has been\nmitigated.\n\n* ds/commit-graph-lockfile-fix:\n  commit: don't use generation numbers if not needed","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/0a866db570e520ce7b08d1eceefdeaa9d63b6704"},{"sha":"b571c25e33cc8d7ac1cae66e34ce60fa7a0a3b0a","author":{"name":"Junio C Hamano","email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com"},"message":"Merge branch 'es/freebsd-iconv-portability'\n\nBuild fix.\n\n* es/freebsd-iconv-portability:\n  config.mak.uname: resolve FreeBSD iconv-related compilation warning","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/b571c25e33cc8d7ac1cae66e34ce60fa7a0a3b0a"}]}
{"actor":{"display_login":"peff"}}