{"push_id":1459072458,"size":31,"distinct_size":31,"ref":"refs/heads/pu","head":"7c798440170b68c056999e4f382a2ac65da18d35","before":"e5d8d30000fed5c94153dca5ffd44de1f79ae18a","commits":[{"sha":"f962ddf6edb199b2611d575a75f60d20d5c137c3","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"http: always warn if libcurl version is too old\n\nAlways warn if libcurl version is too old because:\n\n1. Even without a protocol whitelist, newer versions of curl have all\n   non-standard protocols disabled by default.\n2. A future patch will introduce default \"known-good\" and \"known-bad\"\n   protocols which are allowed/disallowed by 'is_transport_allowed'\n   which older version of libcurl can't respect.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/f962ddf6edb199b2611d575a75f60d20d5c137c3"},{"sha":"f1762d772e9b415a3163abf5f217fc3b71a3b40e","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"transport: add protocol policy config option\n\nPreviously the `GIT_ALLOW_PROTOCOL` environment variable was used to\nspecify a whitelist of protocols to be used in clone/fetch/push\ncommands.  This patch introduces new configuration options for more\nfine-grained control for allowing/disallowing protocols.  This also has\nthe added benefit of allowing easier construction of a protocol\nwhitelist on systems where setting an environment variable is\nnon-trivial.\n\nNow users can specify a policy to be used for each type of protocol via\nthe 'protocol.<name>.allow' config option.  A default policy for all\nunconfigured protocols can be set with the 'protocol.allow' config\noption.  If no user configured default is made git will allow known-safe\nprotocols (http, https, git, ssh, file), disallow known-dangerous\nprotocols (ext), and have a default policy of `user` for all other\nprotocols.\n\nThe supported policies are `always`, `never`, and `user`.  The `user`\npolicy can be used to configure a protocol to be usable when explicitly\nused by a user, while disallowing it for commands which run\nclone/fetch/push commands without direct user intervention (e.g.\nrecursive initialization of submodules).  Commands which can potentially\nclone/fetch/push from untrusted repositories without user intervention\ncan export `GIT_PROTOCOL_FROM_USER` with a value of '0' to prevent\nprotocols configured to the `user` policy from being used.\n\nFix remote-ext tests to use the new config to allow the ext\nprotocol to be tested.\n\nBased on a patch by Jeff King <peff@peff.net>\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/f1762d772e9b415a3163abf5f217fc3b71a3b40e"},{"sha":"aeae4db1747d891dc3aee6a74508c585c321cc49","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"http: create function to get curl allowed protocols\n\nMove the creation of an allowed protocols whitelist to a helper\nfunction. This will be useful when we need to compute the set of\nallowed protocols differently for normal and redirect cases.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/aeae4db1747d891dc3aee6a74508c585c321cc49"},{"sha":"a768a02265f3b8f43e37f66a0a3affba92c830c7","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"transport: add from_user parameter to is_transport_allowed\n\nAdd a from_user parameter to is_transport_allowed() to allow http to be\nable to distinguish between protocol restrictions for redirects versus\ninitial requests.  CURLOPT_REDIR_PROTOCOLS can now be set differently\nfrom CURLOPT_PROTOCOLS to disallow use of protocols with the \"user\"\npolicy in redirects.\n\nThis change allows callers to query if a transport protocol is allowed,\ngiven that the caller knows that the protocol is coming from the user\n(1) or not from the user (0) such as redirects in libcurl.  If unknown a\n-1 should be provided which falls back to reading\n`GIT_PROTOCOL_FROM_USER` to determine if the protocol came from the\nuser.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/a768a02265f3b8f43e37f66a0a3affba92c830c7"},{"sha":"abcbdc03895ff3f00280e54af11fee92d6877044","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"http: respect protocol.*.allow=user for http-alternates\n\nThe http-walker may fetch the http-alternates (or\nalternates) file from a remote in order to find more\nobjects. This should count as a \"not from the user\" use of\nthe protocol. But because we implement the redirection\nourselves and feed the new URL to curl, it will use the\nCURLOPT_PROTOCOLS rules, not the more restrictive\nCURLOPT_REDIR_PROTOCOLS.\n\nThe ideal solution would be for each curl request we make to\nknow whether or not is directly from the user or part of an\nalternates redirect, and then set CURLOPT_PROTOCOLS as\nappropriate. However, that would require plumbing that\ninformation through all of the various layers of the http\ncode.\n\nInstead, let's check the protocol at the source: when we are\nparsing the remote http-alternates file. The only downside\nis that if there's any mismatch between what protocol we\nthink it is versus what curl thinks it is, it could violate\nthe policy.\n\nTo address this, we'll make the parsing err on the picky\nside, and only allow protocols that it can parse\ndefinitively. So for example, you can't elude the \"http\"\npolicy by asking for \"HTTP://\", even though curl might\nhandle it; we would reject it as unknown. The only unsafe\ncase would be if you have a URL that starts with \"http://\"\nbut curl interprets as another protocol. That seems like an\nunlikely failure mode (and we are still protected by our\nbase CURLOPT_PROTOCOL setting, so the worst you could do is\ntrigger one of https, ftp, or ftps).\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/abcbdc03895ff3f00280e54af11fee92d6877044"},{"sha":"54471fdcc3acf26946258a0f1a4583b1964e47f2","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"README: replace gmane link with public-inbox\n\nThe general status and future of gmane is unclear at this\npoint, but certainly it does not seem to be carrying\ngmane.comp.version-control.git at all anymore. Let's point\nto public-inbox.org, which seems to be the favored archive\non the list these days (and which uses message-ids in its\nURLs, making the links somewhat future-proof).\n\nReported-by: Chiel ten Brinke <ctenbrinke@gmail.com>\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/54471fdcc3acf26946258a0f1a4583b1964e47f2"},{"sha":"90a9321d25a0f9566daf9c8e3b1171d05ea9c27c","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'jk/readme-gmane-is-no-more' into jch\n\n* jk/readme-gmane-is-no-more:\n  README: replace gmane link with public-inbox","distinct":true,"url":"https://api.github.com/repos/git/git/commits/90a9321d25a0f9566daf9c8e3b1171d05ea9c27c"},{"sha":"16bd7669cd2586278b1a3440b579bec4a1c2aa16","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'bw/transport-protocol-policy' into jch\n\nFiner-grained control of what protocols are allowed for transports\nduring clone/fetch/push have been enabled via a new configuration\nmechanism.\n\n* bw/transport-protocol-policy:\n  http: respect protocol.*.allow=user for http-alternates\n  transport: add from_user parameter to is_transport_allowed\n  http: create function to get curl allowed protocols\n  transport: add protocol policy config option\n  http: always warn if libcurl version is too old\n  lib-proto-disable: variable name fix","distinct":true,"url":"https://api.github.com/repos/git/git/commits/16bd7669cd2586278b1a3440b579bec4a1c2aa16"},{"sha":"aa811c6d21f441decd6e70f8cb6ca80c2c2839bf","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'sb/submodule-embed-gitdir' into jch\n\nA new submodule helper \"git submodule embedgitdirs\" to make it\neasier to move embedded .git/ directory for submodules in a\nsuperproject to .git/modules/ (and point the latter with the former\nthat is turned into a \"gitdir:\" file) has been added.\n\n* sb/submodule-embed-gitdir:\n  submodule: add absorb-git-dir function\n  move connect_work_tree_and_git_dir to dir.h\n  worktree: check if a submodule uses worktrees\n  test-lib-functions.sh: teach test_commit -C <dir>\n  submodule helper: support super prefix\n  submodule: use absolute path for computing relative path connecting","distinct":true,"url":"https://api.github.com/repos/git/git/commits/aa811c6d21f441decd6e70f8cb6ca80c2c2839bf"},{"sha":"403218d627033101cd20ac280010782097c987d8","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'jk/quote-env-path-list-component' into jch\n\nA recent update to receive-pack to make it easier to drop garbage\nobjects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot\nhave a pathname with a colon in it (no surprise!), and this in turn\nmade it impossible to push into a repository at such a path.  This\nhas been fixed by introducing a quoting mechanism used when\nappending such a path to the colon-separated list.\n\n* jk/quote-env-path-list-component:\n  t5547-push-quarantine: run the path separator test on Windows, too\n  tmp-objdir: quote paths we add to alternates\n  alternates: accept double-quoted paths","distinct":true,"url":"https://api.github.com/repos/git/git/commits/403218d627033101cd20ac280010782097c987d8"},{"sha":"4fe9092d621f82a015e303b79ce7c02fe8f82609","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'bw/realpath-wo-chdir' into jch\n\nThe implementation of \"real_path()\" was to go there with chdir(2)\nand call getcwd(3), but this obviously wouldn't be usable in a\nthreaded environment.  Rewrite it to manually resolve relative\npaths including symbolic links in path components.\n\n* bw/realpath-wo-chdir:\n  real_path: have callers use real_pathdup and strbuf_realpath\n  real_path: create real_pathdup\n  real_path: convert real_path_internal to strbuf_realpath\n  real_path: resolve symlinks by hand","distinct":true,"url":"https://api.github.com/repos/git/git/commits/4fe9092d621f82a015e303b79ce7c02fe8f82609"},{"sha":"240736eb9fc33a97cd2685b5554ff6f29040315d","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'js/difftool-builtin' into jch\n\nRewrite a scripted porcelain \"git difftool\" in C.\n\nWhat's the doneness of this topic?\n\n* js/difftool-builtin:\n  difftool: implement the functionality in the builtin\n  difftool: add a skeleton for the upcoming builtin","distinct":true,"url":"https://api.github.com/repos/git/git/commits/240736eb9fc33a97cd2685b5554ff6f29040315d"},{"sha":"015623032332baf9a7bf140065d3e386adb97264","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'jk/make-tags-find-sources-tweak' into jch\n\nUpdate the procedure to generate \"tags\" for developer support.\n\n* jk/make-tags-find-sources-tweak:\n  Makefile: exclude contrib from FIND_SOURCE_FILES\n  Makefile: match shell scripts in FIND_SOURCE_FILES\n  Makefile: exclude test cruft from FIND_SOURCE_FILES\n  Makefile: reformat FIND_SOURCE_FILES","distinct":true,"url":"https://api.github.com/repos/git/git/commits/015623032332baf9a7bf140065d3e386adb97264"},{"sha":"16eee5ce0ad40f3f4f87ae74e5b3404e9874a957","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'jk/parseopt-usage-msg-opt' into jch\n\nThe function usage_msg_opt() has been updated to say \"fatal:\"\nbefore the custom message programs give, when they want to die\nwith a message about wrong command line options followed by the\nstandard usage string.\n\n* jk/parseopt-usage-msg-opt:\n  parse-options: print \"fatal:\" before usage_msg_opt()","distinct":true,"url":"https://api.github.com/repos/git/git/commits/16eee5ce0ad40f3f4f87ae74e5b3404e9874a957"},{"sha":"c7d227df5bf7fe9d5df98a55cd637bfaf38685ea","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"merge: mark usage error strings for translation\n\nThe nearby error messages are already marked for\ntranslation, but these new ones aren't.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/c7d227df5bf7fe9d5df98a55cd637bfaf38685ea"},{"sha":"99c1f3ff20d9517b7d9981b1faa121e318e688b6","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'cp/merge-continue' into jch\n\n\"git merge --continue\" has been added as a synonym to \"git commit\"\nto conclude a merge that has stopped due to conflicts.\n\n* cp/merge-continue:\n  merge: mark usage error strings for translation\n  merge: ensure '--abort' option takes no arguments\n  completion: add --continue option for merge\n  merge: add '--continue' option as a synonym for 'git commit'","distinct":true,"url":"https://api.github.com/repos/git/git/commits/99c1f3ff20d9517b7d9981b1faa121e318e688b6"},{"sha":"ec96ec9ca110c5c1e0bd981fa4639aa63e02cdfb","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'bw/pathspec-cleanup' into jch\n\nCode clean-up in the pathspec API.\n\n* bw/pathspec-cleanup:\n  pathspec: rename prefix_pathspec to init_pathspec_item\n  pathspec: small readability changes\n  pathspec: create strip submodule slash helpers\n  pathspec: create parse_element_magic helper\n  pathspec: create parse_long_magic function\n  pathspec: create parse_short_magic function\n  pathspec: factor global magic into its own function\n  pathspec: simpler logic to prefix original pathspec elements\n  pathspec: always show mnemonic and name in unsupported_magic\n  pathspec: remove unused variable from unsupported_magic\n  pathspec: copy and free owned memory\n  pathspec: remove the deprecated get_pathspec function\n  ls-tree: convert show_recursive to use the pathspec struct interface\n  dir: convert fill_directory to use the pathspec struct interface\n  dir: remove struct path_simplify\n  mv: remove use of deprecated 'get_pathspec()'","distinct":true,"url":"https://api.github.com/repos/git/git/commits/ec96ec9ca110c5c1e0bd981fa4639aa63e02cdfb"},{"sha":"44478f7b6ef4860e80eb0567dcbc8108db74fc03","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'ld/p4-compare-dir-vs-symlink' into jch\n\n\"git p4\" misbehaved when swapping a directory and a symbolic link.\n\n* ld/p4-compare-dir-vs-symlink:\n  git-p4: avoid crash adding symlinked directory","distinct":true,"url":"https://api.github.com/repos/git/git/commits/44478f7b6ef4860e80eb0567dcbc8108db74fc03"},{"sha":"f1baf7092d9429bfe8c3a9ec2521e92e9029fbfa","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'js/prepare-sequencer-more' into jch\n\n* js/prepare-sequencer-more: (34 commits)\n  sequencer (rebase -i): write out the final message\n  sequencer (rebase -i): write the progress into files\n  sequencer (rebase -i): show the progress\n  sequencer (rebase -i): suggest --edit-todo upon unknown command\n  sequencer (rebase -i): show only failed cherry-picks' output\n  sequencer (rebase -i): show only failed `git commit`'s output\n  run_command_opt(): optionally hide stderr when the command succeeds\n  sequencer (rebase -i): differentiate between comments and 'noop'\n  sequencer (rebase -i): implement the 'drop' command\n  sequencer (rebase -i): allow rescheduling commands\n  sequencer (rebase -i): respect strategy/strategy_opts settings\n  sequencer (rebase -i): respect the rebase.autostash setting\n  sequencer (rebase -i): run the post-rewrite hook, if needed\n  sequencer (rebase -i): record interrupted commits in rewritten, too\n  sequencer (rebase -i): copy commit notes at end\n  sequencer (rebase -i): set the reflog message consistently\n  sequencer (rebase -i): refactor setting the reflog message\n  sequencer (rebase -i): allow fast-forwarding for edit/reword\n  sequencer (rebase -i): implement the 'reword' command\n  sequencer (rebase -i): leave a patch upon error\n  ...","distinct":true,"url":"https://api.github.com/repos/git/git/commits/f1baf7092d9429bfe8c3a9ec2521e92e9029fbfa"},{"sha":"fbfda15fb8daf7388a19b8bed2f319a8c1b6c5f1","author":{"name":"Linus Torvalds","email":"ead7104581934751970e9decb2db5deb20a9e407@linux-foundation.org"},"message":"shortlog: group by committer information\n\nIn some situations you may want to group the commits not by author,\nbut by committer instead.\n\nFor example, when I just wanted to look up what I'm still missing from\nlinux-next in the current merge window, I don't care so much about who\nwrote a patch, as what git tree it came from, which generally boils\ndown to \"who committed it\".\n\nSo make git shortlog take a \"-c\" or \"--committer\" option to switch\ngrouping to that.\n\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/fbfda15fb8daf7388a19b8bed2f319a8c1b6c5f1"}]}
{"actor":{"display_login":"gitster"}}