{"push_id":667990959,"size":188,"distinct_size":3,"ref":"refs/heads/pre-merge-hook","head":"d91ccf02972e9789ea3d733cf3fc2b3a6badfefb","before":"d201dc23450fdcca36857b228e92eadbccaa52fc","commits":[{"sha":"f2f3fc95478c21687646a71f934c524a45e3ec03","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"t3903: stop hard-coding commit sha1s\n\nWhen testing the diff output of \"git stash list\", we look\nfor the stash's subject of \"WIP on master: $sha1\", even\nthough it's not relevant to the diff output. This makes the\ntest brittle to refactoring, as any changes to earlier tests\nmay impact the commit sha1.\n\nSince we don't care about the commit subject here, we can\nsimply ask stash not to print it.\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/mjg/git/commits/f2f3fc95478c21687646a71f934c524a45e3ec03"},{"sha":"88bab59c5bf8de2a1577c3134f4dff1e225409e2","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"t3903: avoid applying onto dirty index\n\nOne of the tests in t3903 wants to make sure that applying a\nstash that touches only \"file\" can still happen even if there\nare working tree changes to \"other-file\". To do so, it adds\n\"other-file\" to the index (since otherwise it is an\nuntracked file, voiding the purpose of the test).\n\nBut as we are about to refactor the dirty-index handling,\nand as this test does not actually care about having a dirty\nindex (only a dirty working tree), let's bump the tracking\nof \"other-file\" into the setup phase, so we can have _just_\na dirty working tree here.\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/mjg/git/commits/88bab59c5bf8de2a1577c3134f4dff1e225409e2"},{"sha":"ed178ef13a26136d86ff4e33bb7b1afb5033f908","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"stash: require a clean index to apply\n\nIf you have staged contents in your index and run \"stash\napply\", we may hit a conflict and put new entries into the\nindex. Recovering to your original state is difficult at\nthat point, because tools like \"git reset --keep\" will blow\naway anything staged.  We can make this safer by refusing to\napply when there are staged changes.\n\nIt's possible we could provide better tooling here, as \"git\nstash apply\" should be writing only conflicts to the index\n(so we know that any stage-0 entries are potentially\nprecious). But it is the odd duck; most \"mergy\" commands\nwill update the index for cleanly merged entries, and it is\nnot worth updating our tooling to support this use case\nwhich is unlikely to be of interest (besides which, we would\nstill need to block a dirty index for \"stash apply --index\",\nsince that case _would_ be ambiguous).\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/mjg/git/commits/ed178ef13a26136d86ff4e33bb7b1afb5033f908"},{"sha":"a0b4507ef72027052668c11b49f71bed89bcb293","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"stop putting argv[0] dirname at front of PATH\n\nWhen the \"git\" wrapper is invoked, we prepend the baked-in\nexec-path to our PATH, so that any sub-processes we exec\nwill all find the git-foo commands that match the wrapper\nversion.\n\nIf you invoke git with an absolute path, like:\n\n  /usr/bin/git foo\n\nwe also prepend \"/usr/bin\" to the PATH. This was added long\nago by by 231af83 (Teach the \"git\" command to handle some\ncommands internally, 2006-02-26), with the intent that\nthings would just work if you did something like:\n\n  cd /opt\n  tar xzf premade-git-package.tar.gz\n  alias git=/opt/git/bin/git\n\nas we would then find all of the related external commands\nin /opt/git/bin. I.e., it made git runtime-relocatable,\nsince at the time of 231af83, we installed all of the git\ncommands into $(bindir). But these days, that is not enough.\nSince f28ac70 (Move all dashed-form commands to libexecdir,\n2007-11-28), we do not put commands into $(bindir), and you\nactually need to convert \"/usr/bin\" into \"/usr/libexec\". And\nnot just for finding binaries; we want to find $(sharedir),\netc, the same way.  The RUNTIME_PREFIX build knob does this\nthe right way, by assuming a sane hierarchy rooted at\n\"$prefix\" when we run \"$prefix/bin/git\", and inferring\n\"$prefix/libexec/git-core\", etc.\n\nSo this feature (prepending the argv[0] dirname to the PATH)\nis broken for providing a runtime prefix, and has been for\nmany years. Does it do anything for other cases?\n\nFor the \"git\" wrapper itself, as well as any commands\nshipped by \"git\", the answer is no. Those are already in\ngit's exec-path, which is consulted first. For third-party\ncommands which you've dropped into the same directory, it\ndoes include them. So if you do\n\n  cd /opt\n  tar xzf git-built-specifically-for-opt-git.tar.gz\n  cp third-party/git-foo /opt/git/bin/git-foo\n  alias git=/opt/git/bin/git\n\nit does mean that we will find the third-party \"git-foo\",\neven if you do not put /opt/git/bin into your $PATH. But\nthe flipside of this is that we will bump the precedence of\n_other_ third-party tools that happen to be in the same\ndirectory as git. For example, consider this setup:\n\n  1. Git is installed by the system in /usr/bin. There are\n     other system utilities in /usr/bin. E.g., a system\n     \"vi\".\n\n  2. The user installs tools they prefer in /usr/local/bin.\n     E.g., vim with a \"vi\" symlink. They set their PATH to\n     /usr/local/bin:/usr/bin to prefer their custom tools.\n\n  3. Running /usr/bin/git puts \"/usr/bin\" at the front of\n     their PATH. When git invokes the editor on behalf of\n     the user, they get the system vi, not their normal vim.\n\nThere are other variants of this, including overriding\nsystem ruby and python (which is quite common using tools\nlike \"rvm\" and \"virtualenv\", which use relocatable\nhierarchies and $PATH settings to get a consistent\nenvironment).\n\nGiven that the main motivation for git placing the argv[0]\ndirname into the PATH has been broken for years, that the\nremaining cases are obscure and unlikely (and easily fixed\nby the user just setting up their $PATH sanely), and that\nthe behavior is hurting real, reasonably common use cases,\nit's not worth continuing to do so.\n\nSigned-off-by: Jeff King <peff@peff.net>\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/a0b4507ef72027052668c11b49f71bed89bcb293"},{"sha":"099d2d86a8e17218aca31bf7c4070a820baf4baa","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"ignore: info/exclude should trump core.excludesfile\n\n$GIT_DIR/info/exclude and core.excludesfile (which falls back to\n$XDG_HOME/git/ignore) are both ways to override the ignore pattern\nlists given by the project in .gitignore files.  The former, which\nis per-repository personal preference, should take precedence over\nthe latter, which is a personal preference default across different\nrepositories that are accessed from that machine.  The existing\ndocumentation also agrees.\n\nHowever, the precedence order was screwed up between these two from\nthe very beginning when 896bdfa2 (add: Support specifying an\nexcludes file with a configuration variable, 2007-02-27) introduced\ncore.excludesfile variable.\n\nNoticed-by: Yohei Endo <yoheie@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/099d2d86a8e17218aca31bf7c4070a820baf4baa"},{"sha":"8eeab92f02f3d9382572f0a604535c2b134c6763","author":{"email":"955341c97b9d93a23c19524fc0105a6405902afe@web.de","name":"Torsten Bögershausen"},"message":"t0027: Add repoMIX and LF_nul\n\n\"new safer autocrlf handling\":\n\n  - Check if eols in a file are converted at commit, when the file has\n    CR (or CRLF) in the repo (technically speaking in the index).\n  - Add a test-file repoMIX with mixed line-endings.\n  - When converting LF->CRLF or CRLF->LF: check the warnings\n\ncheckout_files():\n\n  - Checking out CRLF_nul and checking for eol coversion does not\n    make much sense (CRLF will stay CRLF).\n  - Use the file LF_nul instead: It is handled a binary in \"auto\" modes,\n    and when declared as text the LF may be replaced with CRLF, depending\n    on the configuration.\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\nAcked-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/8eeab92f02f3d9382572f0a604535c2b134c6763"},{"sha":"9a35c14d64c3f76f99dd2853077e27cde2a30db7","author":{"email":"60bcaaf7315c83cfbabab363ab7b974ac6f57ac1@iveqy.com","name":"Fredrik Gustafsson"},"message":"Documentation: clarify how \"git commit\" cleans up the edited log message\n\nThe `-v` shows a unified diff in the editor to edit the commit\nmessage to help the user to describe the change.  The diff is\nstripped and will not become a part of the commit message.\n\nAdd a note about this with the `-v` description and slightly modify\nthe description for the default `--cleanup` mode.\n\nSigned-off-by: Fredrik Gustafsson <iveqy@iveqy.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/9a35c14d64c3f76f99dd2853077e27cde2a30db7"},{"sha":"631f6f1d47cc51a46c8ab48ea1178ea04cff0b8a","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'jc/push-cert' into maint\n\nThe \"git push --signed\" protocol extension did not limit what the\n\"nonce\" that is a server-chosen string can contain or how long it\ncan be, which was unnecessarily lax.  Limit both the length and the\nalphabet to a reasonably small space that can still have enough\nentropy.\n\n* jc/push-cert:\n  push --signed: tighten what the receiving end can ask to sign","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/631f6f1d47cc51a46c8ab48ea1178ea04cff0b8a"},{"sha":"89ba311df399d27a962b273e1acd95a38af2c821","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'ma/bash-completion-leaking-x' into maint\n\nThe completion script (in contrib/) contaminated global namespace\nand clobbered on a shell variable $x.\n\n* ma/bash-completion-leaking-x:\n  completion: fix global bash variable leak on __gitcompappend","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/89ba311df399d27a962b273e1acd95a38af2c821"},{"sha":"ad34ad614da30387c82a54c7087705050b4de441","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'tb/connect-ipv6-parse-fix' into maint\n\nAn earlier update to the parser that disects a URL broke an\naddress, followed by a colon, followed by an empty string (instead\nof the port number), e.g. ssh://example.com:/path/to/repo.\n\n* tb/connect-ipv6-parse-fix:\n  connect.c: ignore extra colon after hostname","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/ad34ad614da30387c82a54c7087705050b4de441"},{"sha":"16018ae5fb368151f3eff13730cf089b63f41962","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Git 2.3.7\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/16018ae5fb368151f3eff13730cf089b63f41962"},{"sha":"fb3e7d5515308c73c54c797356651d6ca41b58a6","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Sync with 2.3.7","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/fb3e7d5515308c73c54c797356651d6ca41b58a6"},{"sha":"36bf6d46972df55ffb1c53c88d1b0e463f522116","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"Update git-multimail to version 1.0.2\n\nThe only changes are to the README files, most notably the list of\nmaintainers and the project URL.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/36bf6d46972df55ffb1c53c88d1b0e463f522116"},{"sha":"22946a942627d67b09a9630a036e48ce2823cd0c","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"rebase: silence \"git checkout\" for noop rebase\n\nWhen the branch to be rebased is already up to date, we\n\"git checkout\" the branch, print an \"up to date\" message,\nand end the rebase early. However, our checkout may print\n\"Switched to branch 'foo'\" or \"Already on 'foo'\", even if\nthe user has asked for \"--quiet\".\n\nWe should avoid printing these messages at all, \"--quiet\" or\nno. Since the rebase is a noop, this checkout can be seen as\noptimizing out these other two checkout operations (that\nhappen in a real rebase):\n\n  1. Moving to the detached HEAD to start the rebase; we\n     always feed \"-q\" to checkout there, and instead rely on\n     our own custom message (which respects --quiet).\n\n  2. Finishing a rebase, where we move to the final branch.\n     Here we actually use update-ref rather than\n     git-checkout, and produce no messages.\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/mjg/git/commits/22946a942627d67b09a9630a036e48ce2823cd0c"},{"sha":"896e700ad92890b59568a52b88e9bd22eec6f9e7","author":{"email":"6b3799be4300e44489a08090123f3842e6419da5@diamand.org","name":"Luke Diamand"},"message":"git-p4: t9814: prevent --chain-lint failure\n\nUse test_lazy_prereq to setup prerequisites for the p4 move\ntest. This both makes the test simpler and clearer, and also\nmeans it no longer fails the new --chain-lint tests.\n\nSuggested-by: Jeff King <peff@peff.net>\nSigned-off-by: Luke Diamand <luke@diamand.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/896e700ad92890b59568a52b88e9bd22eec6f9e7"},{"sha":"e80967b28704930b4ca30f8dedf7ce0145c7eaa4","author":{"email":"6b3799be4300e44489a08090123f3842e6419da5@diamand.org","name":"Luke Diamand"},"message":"git-p4: add failing tests for case-folding p4d\n\nWhen p4d runs on a case-folding OS, git-p4 can end up getting\nvery confused. This adds failing tests to demonstrate the problem.\n\nSigned-off-by: Luke Diamand <luke@diamand.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/e80967b28704930b4ca30f8dedf7ce0145c7eaa4"},{"sha":"5b9496768faba9378a685a2c750c29eb5662332a","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'mg/status-v-v'\n\n* mg/status-v-v:\n  status: document the -v/--verbose option","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/5b9496768faba9378a685a2c750c29eb5662332a"},{"sha":"b7990520bcac8ca1ade41ac61db80c5dcd0d821a","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'nd/versioncmp-prereleases'\n\n* nd/versioncmp-prereleases:\n  git tag: mention versionsort.prereleaseSuffix in manpage","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/b7990520bcac8ca1ade41ac61db80c5dcd0d821a"},{"sha":"3f5872603d00d4a0e5d2ca4c5e8772fa4667dda8","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'mg/show-notes-doc'\n\nDocumentation fix.\n\n* mg/show-notes-doc:\n  rev-list-options.txt: complete sentence about notes matching","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/3f5872603d00d4a0e5d2ca4c5e8772fa4667dda8"},{"sha":"0ab00b9464051509d7ebd0755bdff1df0a4a51de","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'mh/multimail-renewal'\n\n* mh/multimail-renewal:\n  Update git-multimail to version 1.0.2","distinct":false,"url":"https://api.github.com/repos/mjg/git/commits/0ab00b9464051509d7ebd0755bdff1df0a4a51de"}]}