{"push_id":684943381,"size":49,"distinct_size":0,"ref":"refs/heads/jk/pager-subcommand","head":"869b26b75163c265b3b3156bed38922581b01a53","before":"9543a7580da748bda4c5ebc53a8820107ba360df","commits":[{"sha":"ce41720cad79d858f09ebfc88cf84a4b152645c7","author":{"email":"139449a27381270391752f9e0993fccac55fea0e@gmail.com","name":"Alex Henrie"},"message":"blame, log: format usage strings similarly to those in documentation\n\nEarlier, 9c9b4f2f (standardize usage info string format, 2015-01-13)\ntried to make usage-string in line with the documentation by\n\n    - Placing angle brackets around fill-in-the-blank parameters\n    - Putting dashes in multiword parameter names\n    - Adding spaces to [-f|--foobar] to make [-f | --foobar]\n    - Replacing <foobar>* with [<foobar>...]\n\nbut it missed a few places.\n\nSigned-off-by: Alex Henrie <alexhenrie24@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/ce41720cad79d858f09ebfc88cf84a4b152645c7"},{"sha":"7253a02348c1c44c84f8a13309d6d30b443bf23c","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"http-backend: fix die recursion with custom handler\n\nWhen we die() in http-backend, we call a custom handler that\nwrites an HTTP 500 response to stdout, then reports the\nerror to stderr. Our routines for writing out the HTTP\nresponse may themselves die, leading to us entering die()\nagain.\n\nWhen it was originally written, that was OK; our custom\nhandler keeps a variable to notice this and does not\nrecurse. However, since cd163d4 (usage.c: detect recursion\nin die routines and bail out immediately, 2012-11-14), the\nmain die() implementation detects recursion before we even\nget to our custom handler, and bails without printing\nanything useful.\n\nWe can handle this case by doing two things:\n\n  1. Installing a custom die_is_recursing handler that\n     allows us to enter up to one level of recursion. Only\n     the first call to our custom handler will try to write\n     out the error response. So if we die again, that is OK.\n     If we end up dying more than that, it is a sign that we\n     are in an infinite recursion.\n\n  2. Reporting the error to stderr before trying to write\n     out the HTTP response. In the current code, if we do\n     die() trying to write out the response, we'll exit\n     immediately from this second die(), and never get a\n     chance to output the original error (which is almost\n     certainly the more interesting one; the second die is\n     just going to be along the lines of \"I tried to write\n     to stdout but it was closed\").\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/peff/git/commits/7253a02348c1c44c84f8a13309d6d30b443bf23c"},{"sha":"f6a1e1e288d13472f5f7fe2b907bb8c0bd69a018","author":{"email":"ebff1e80cba88b382be6a6d1b3599a8cb31682cc@gmail.com","name":"Jim Hill"},"message":"sha1_file: pass empty buffer to index empty file\n\n`git add` of an empty file with a filter pops complaints from\n`copy_fd` about a bad file descriptor.\n\nThis traces back to these lines in sha1_file.c:index_core:\n\n\tif (!size) {\n\t\tret = index_mem(sha1, NULL, size, type, path, flags);\n\nThe problem here is that content to be added to the index can be\nsupplied from an fd, or from a memory buffer, or from a pathname. This\ncall is supplying a NULL buffer pointer and a zero size.\n\nDownstream logic takes the complete absence of a buffer to mean the\ndata is to be found elsewhere -- for instance, these, from convert.c:\n\n\tif (params->src) {\n\t\twrite_err = (write_in_full(child_process.in, params->src, params->size) < 0);\n\t} else {\n\t\twrite_err = copy_fd(params->fd, child_process.in);\n\t}\n\n~If there's a buffer, write from that, otherwise the data must be coming\nfrom an open fd.~\n\nPerfectly reasonable logic in a routine that's going to write from\neither a buffer or an fd.\n\nSo change `index_core` to supply an empty buffer when indexing an empty\nfile.\n\nThere's a patch out there that instead changes the logic quoted above to\ntake a `-1` fd to mean \"use the buffer\", but it seems to me that the\ndistinction between a missing buffer and an empty one carries intrinsic\nsemantics, where the logic change is adapting the code to handle\nincorrect arguments.\n\nSigned-off-by: Jim Hill <gjthill@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/f6a1e1e288d13472f5f7fe2b907bb8c0bd69a018"},{"sha":"d89df367f61e8da1ae05ef7054bab4343eb67cdf","author":{"email":"d4d2cc2a6ec7b2aa587d4887cc5ed200f9b685a1@imag.fr","name":"Matthieu Moy"},"message":"Documentation/log: clarify what --raw means\n\nThere are several \"raw formats\", and describing --raw as \"Generate the\nraw format\" in the documentation for git-log seems to imply that it\ngenerates the raw *log* format.\n\nClarify the wording by saying \"raw diff format\" explicitly, and make a\nspecial-case for \"git log\": \"git log --raw\" does not just change the\nformat, it shows something which is not shown by default.\n\nSigned-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/d89df367f61e8da1ae05ef7054bab4343eb67cdf"},{"sha":"838d6a928fc3aef3827d9a45e6aac044fea7451e","author":{"email":"a13b1135e6f2f8530e85bc2896cd5ed89a6ed863@twopensource.com","name":"David Turner"},"message":"clean: only lstat files in pathspec\n\nEven though \"git clean\" takes pathspec to limit the part of the\nworking tree to be cleaned, it checked the paths it encounters\nduring its directory traversal with lstat(2), before checking if\nthe path is within the pathspec.\n\nIgnore paths outside pathspec and proceed without checking with\nlstat(2).  Even if such a path is unreadable due to e.g. EPERM,\n\"git clean\" should not care.\n\nSigned-off-by: David Turner <dturner@twopensource.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/838d6a928fc3aef3827d9a45e6aac044fea7451e"},{"sha":"5c2a581dc9c7ce61c0dfbbdc56fc951aa0b8288f","author":{"email":"9bdbbc3d590c5e3f492c7e4c46eccce25481330a@gmail.com","name":"Michael Coleman"},"message":"Documentation/git-commit: grammofix\n\nSigned-off-by: Michael Coleman <michael.karl.coleman@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/5c2a581dc9c7ce61c0dfbbdc56fc951aa0b8288f"},{"sha":"cc969c8dc1cfd1f60b1dab8ee3117172d9d1bb4f","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"t5551: factor out tag creation\n\nOne of our tests in t5551 creates a large number of tags,\nand jumps through some hoops to do it efficiently. Let's\nfactor that out into a function so we can make other similar\ntests.\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/peff/git/commits/cc969c8dc1cfd1f60b1dab8ee3117172d9d1bb4f"},{"sha":"719518f5cebba0fb4ed6caf6d92d683e858120f0","author":{"email":"9de348c050f7cd1ca590883733c4e531ce610bf4@gmail.com","name":"David Aguilar"},"message":"mergetool--lib: set IFS for difftool and mergetool\n\ngit-sh-setup sets IFS but it is not used by git-difftool--helper.\nSet IFS in git-mergetool--lib so that the mergetool scriptlets,\ndifftool, and mergetool do not need to do so.\n\nSigned-off-by: David Aguilar <davvid@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/719518f5cebba0fb4ed6caf6d92d683e858120f0"},{"sha":"3e4f2373b295e19dbc1a6bd0e743f65b500b7bda","author":{"email":"9de348c050f7cd1ca590883733c4e531ce610bf4@gmail.com","name":"David Aguilar"},"message":"mergetools: add winmerge as a builtin tool\n\nAdd a winmerge scriptlet with the commands described in [1] so\nthat users can use winmerge without needing to perform any\nadditional configuration.\n\n[1] http://thread.gmane.org/gmane.comp.version-control.git/268631\n\nHelped-by: Philip Oakley <philipoakley@iee.org>\nHelped-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nHelped-by: Sebastian Schuberth <sschuberth@gmail.com>\nHelped-by: SZEDER Gábor <szeder@ira.uka.de>\nSigned-off-by: David Aguilar <davvid@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/3e4f2373b295e19dbc1a6bd0e743f65b500b7bda"},{"sha":"275721c2671800a905e873e58be2f1c2f313bf88","author":{"email":"a13b1135e6f2f8530e85bc2896cd5ed89a6ed863@twopensource.com","name":"David Turner"},"message":"tree-walk: learn get_tree_entry_follow_symlinks\n\nAdd a new function, get_tree_entry_follow_symlinks, to tree-walk.[ch].\nThe function is not yet used.  It will be used to implement git\ncat-file --batch --follow-symlinks.\n\nThe function locates an object by path, following symlinks in the\nrepository.  If the symlinks lead outside the repository, the function\nreports this to the caller.\n\nSigned-off-by: David Turner <dturner@twopensource.com>\nSigned-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/275721c2671800a905e873e58be2f1c2f313bf88"},{"sha":"c4ec96774ba247597bc4c571d85069d225665422","author":{"email":"a13b1135e6f2f8530e85bc2896cd5ed89a6ed863@twopensource.com","name":"David Turner"},"message":"sha1_name: get_sha1_with_context learns to follow symlinks\n\nWire up get_sha1_with_context to call get_tree_entry_follow_symlinks\nwhen GET_SHA1_FOLLOW_SYMLINKS is passed in flags. G_S_FOLLOW_SYMLINKS\nis incompatible with G_S_ONLY_TO_DIE because the diagnosis\nthat ONLY_TO_DIE triggers does not at present consider symlinks, and\nit would be a significant amount of additional code to allow it to\ndo so.\n\nSigned-off-by: David Turner <dturner@twopensource.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c4ec96774ba247597bc4c571d85069d225665422"},{"sha":"122d53464b29d3ac20891c5ee2f75ac5ecbb7b20","author":{"email":"a13b1135e6f2f8530e85bc2896cd5ed89a6ed863@twopensource.com","name":"David Turner"},"message":"cat-file: add --follow-symlinks to --batch\n\nThis wires the in-repo-symlink following code through to the cat-file\nbuiltin.  In the event of an out-of-repo link, cat-file will print\nthe link in a new format.\n\nSigned-off-by: David Turner <dturner@twopensource.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/122d53464b29d3ac20891c5ee2f75ac5ecbb7b20"},{"sha":"d6cc2df5c80dc4f52a56679baa5e32539eb028b1","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"stash: complain about unknown flags\n\nThe option parser for git-stash stuffs unknown flags into\nthe $FLAGS variable, where they can be accessed by the\nindividual commands. However, most commands do not even look\nat these extra flags, leading to unexpected results like\nthis:\n\n  $ git stash drop --help\n  Dropped refs/stash@{0} (e6cf6d80faf92bb7828f7b60c47fc61c03bd30a1)\n\nWe should notice the extra flags and bail. Rather than\nannotate each command to reject a non-empty $FLAGS variable,\nwe can notice that \"stash show\" is the only command that\nactually _wants_ arbitrary flags. So we switch the default\nmode to reject unknown flags, and let stash_show() opt into\nthe feature.\n\nReported-by: Vincent Legoll <vincent.legoll@gmail.com>\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/peff/git/commits/d6cc2df5c80dc4f52a56679baa5e32539eb028b1"},{"sha":"5ba28313f29bcc2e8571c4b325646fecfbe238df","author":{"email":"696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","name":"Jeff King"},"message":"stash: recognize \"--help\" for subcommands\n\nIf you run \"git stash --help\", you get the help for stash\n(this magic is done by the git wrapper itself). But if you\nrun \"git stash drop --help\", you get an error. We\ncannot show help specific to \"stash drop\", of course, but we\ncan at least give the user the normal stash manpage.\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/peff/git/commits/5ba28313f29bcc2e8571c4b325646fecfbe238df"},{"sha":"dbe44faadb87f88e092f3dac387f96070268137a","author":{"email":"2da278a99b557fc93ddbed7517a413ad793e2e6a@web.de","name":"René Scharfe"},"message":"use file_exists() to check if a file exists in the worktree\n\nCall file_exists() instead of open-coding it.  That's shorter, simpler\nand the intent becomes clearer.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/dbe44faadb87f88e092f3dac387f96070268137a"},{"sha":"5cd83e18851445cdc20d5842b53373fe15554ae9","author":{"email":"2da278a99b557fc93ddbed7517a413ad793e2e6a@web.de","name":"René Scharfe"},"message":"clean: remove unused variable buf\n\nIt had never been used.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/5cd83e18851445cdc20d5842b53373fe15554ae9"},{"sha":"22570b68e3cb9380403d903680be3b3112a26490","author":{"email":"2da278a99b557fc93ddbed7517a413ad793e2e6a@web.de","name":"René Scharfe"},"message":"dir: remove unused variable sb\n\nIt had never been used.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/22570b68e3cb9380403d903680be3b3112a26490"},{"sha":"92de92172d1c01f3029d592f7e0f15d52149200b","author":{"email":"d4d2cc2a6ec7b2aa587d4887cc5ed200f9b685a1@imag.fr","name":"Matthieu Moy"},"message":"Documentation/log: clarify sha1 non-abbreviation in log --raw\n\nSigned-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/92de92172d1c01f3029d592f7e0f15d52149200b"},{"sha":"11c6659d85d72273a4161c8779123147b52fbcb2","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"command-list: prepare machinery for upcoming \"common groups\" section\n\nThe ultimate goal is for \"git help\" to classify common commands by\ngroup. Toward this end, a subsequent patch will add a new \"common\ngroups\" section to command-list.txt preceding the actual command list.\nAs preparation, teach existing command-list.txt parsing machinery, which\ndoesn't care about grouping, to skip over this upcoming \"common groups\"\nsection.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Sébastien Guimmara <sebastien.guimmara@gmail.com>\nReviewed-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/11c6659d85d72273a4161c8779123147b52fbcb2"},{"sha":"413f50b901f5f5addd7404516cdd3e8ee8a4ac25","author":{"email":"b028b2e9b6f5ed2594fb0bccfcf9bf86df8374b8@gmail.com","name":"Sébastien Guimmara"},"message":"command-list.txt: add the common groups block\n\nThe ultimate goal is for \"git help\" to display common commands in\ngroups rather than alphabetically. As a first step, define the\ngroups in a new block, and then assign a group to each\ncommon command.\n\nAdd a block at the beginning of command-list.txt:\n\n    init         start a working area (see also: git help tutorial)\n    worktree     work on the current change (see also:[...]\n    info         examine the history and state (see also: git [...]\n    history      grow, mark and tweak your history\n    remote       collaborate (see also: git help workflows)\n\nstoring information about common commands group, then map each common\ncommand to a group:\n\n    git-add          mainporcelain        common worktree\n\nHelped-by: Eric Sunshine <sunshine@sunshineco.com>\nHelped-by: Junio C Hamano <gitster@pobox.com>\nHelped-by:  Emma Jane Hogbin Westby <emma.westby@gmail.com>\nSigned-off-by: Sébastien Guimmara <sebastien.guimmara@gmail.com>\nReviewed-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/413f50b901f5f5addd7404516cdd3e8ee8a4ac25"}]}