{"push_id":1191679055,"size":108,"distinct_size":0,"ref":"refs/heads/jk/pager-in-use-careful","head":"5f4176c26b274ce984cf31344b26a57b76536c91","before":"949d464ab5a7908e9479fcdd7c0f134d2130aa66","commits":[{"sha":"b462c024022e3a41821f24bca9e43f16973693db","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"completion: support git-worktree\n\nThis adds bare-bone completion support for git-worktree. More advanced\ncompletion (e.g. ref completion in git-worktree-add) can be added later.\n\n--force completion in \"worktree add\" is left out because that option\nshould be handled with care.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@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/b462c024022e3a41821f24bca9e43f16973693db"},{"sha":"360af2dadaae70f29de2f21d4eb8ac38aefcc263","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"worktree.c: rewrite mark_current_worktree() to avoid strbuf\n\nstrbuf is a bit overkill for this function. What we need is to call\nabsolute_path() twice and make sure the second call does not destroy the\nresult of the first. One buffer allocation is enough.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@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/360af2dadaae70f29de2f21d4eb8ac38aefcc263"},{"sha":"7b722d906bd5b32f3c7a63fb77835b38c1e04e4a","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"git-worktree.txt: keep subcommand listing in alphabetical order\n\nThis is probably not the best order. But it makes it no-brainer to know\nwhere to insert new commands. At some point we might want to reorder at\nleast the synopsis part again, grouping commonly use subcommands together.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@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/7b722d906bd5b32f3c7a63fb77835b38c1e04e4a"},{"sha":"afb9e30b2cadfa010975b29e0ff7459d4b7ae953","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"worktree.c: use is_dot_or_dotdot()\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@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/afb9e30b2cadfa010975b29e0ff7459d4b7ae953"},{"sha":"ef23c347cf363118e236ae72fe6372443fae1ecf","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"worktree: avoid 0{40}, too many zeroes, hard to read\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@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/ef23c347cf363118e236ae72fe6372443fae1ecf"},{"sha":"0409e0b6dc169b07c05d02e8b62389b1cc975a45","author":{"name":"Nguyễn Thái Ngọc Duy","email":"d0e3b15a74ff6c70e81434a55b9c843230dc3715@gmail.com"},"message":"worktree: simplify prefixing paths\n\nThis also makes slash conversion always happen on Windows (a side effect\nof prefix_filename). Which is a good thing.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@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/0409e0b6dc169b07c05d02e8b62389b1cc975a45"},{"sha":"c72ee44bf4bc7549ee8710037ae8adfae6d8efc2","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"git_config_with_options: drop \"found\" counting\n\nPrior to 1f2baa7 (config: treat non-existent config files as\nempty, 2010-10-21), we returned an error if any config files\nwere missing. That commit made this a non-error, but\nreturned the number of sources found, in case any caller\nwanted to distinguish this case.\n\nIn the past 5+ years, no caller has; the only two places\nwhich bother to check the return value care only about the\nerror case.  Let's drop this code, which complicates the\nfunction. Similarly, let's drop the \"found anything\" return\nfrom git_config_from_parameters, which was present only to\nsupport this (and similarly has never had other callers care\nfor the past 5+ years).\n\nNote that we do need to update a comment in one of the\ncallers, even though the code immediately below it doesn't\ncare about this case.\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/c72ee44bf4bc7549ee8710037ae8adfae6d8efc2"},{"sha":"a77d6db69b2cbd16e98763f33ceaa76ff5ca2c54","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"git_config_parse_parameter: refactor cleanup code\n\nWe have several exits from the function, each of which has\nto do some cleanup. Let's consolidate these in an \"out\"\nlabel we can jump to. This doesn't save us much now, but it\nwill help as we add more things that need cleanup.\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/a77d6db69b2cbd16e98763f33ceaa76ff5ca2c54"},{"sha":"3258258f51f45efeff5ce0e9f825f347a1404efa","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"config: set up config_source for command-line config\n\nWhen we parse a config file, we set up the global \"cf\"\nvariable as a pointer to a \"struct config_source\" describing\nthe file we are parsing. This is used for error messages, as\nwell as for lookup functions like current_config_name().\n\nThe \"cf\" variable is NULL in two cases:\n\n  1. When we are parsing command-line config, in which case\n     there is no source file.\n\n  2. When we are not parsing any config at all.\n\nCallers like current_config_name() must assume we are in\ncase 1 if they see a NULL \"cf\". However, this means that if\nthey are accidentally used outside of a config parsing\ncallback, they will quietly return a bogus answer.\n\nThis might seem like an unlikely accident (why would you ask\nfor the current config file if you are not parsing config?),\nbut it's actually an easy mistake to make due to the\nconfigset caching. git_config() serves the answers from a\nconfigset cache, and any calls to current_config_name() will\nclaim that we are parsing command-line config, no matter\nwhat the original source.\n\nSo let's distinguish these cases by having the command-line\nconfig parser set up a config_source with a NULL name (which\ncallers already handle properly). We can use this to catch\nprogramming errors in some cases, and to give better\nmessages to the user in others.\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/3258258f51f45efeff5ce0e9f825f347a1404efa"},{"sha":"74c682d3c63bff8860af5caf9bd38a5413568709","author":{"name":"Elia Pinto","email":"29d524c820902554678446a0ba810abeb2be77a2@gmail.com"},"message":"http.c: implement the GIT_TRACE_CURL environment variable\n\nImplement the GIT_TRACE_CURL environment variable to allow a\ngreater degree of detail of GIT_CURL_VERBOSE, in particular\nthe complete transport header and all the data payload exchanged.\nIt might be useful if a particular situation could require a more\nthorough debugging analysis. Document the new GIT_TRACE_CURL\nenvironment variable.\n\nHelped-by: Torsten Bögershausen <tboegi@web.de>\nHelped-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\nHelped-by: Junio C Hamano <gitster@pobox.com>\nHelped-by: Eric Sunshine <sunshine@sunshineco.com>\nHelped-by: Jeff King <peff@peff.net>\nSigned-off-by: Elia Pinto <gitter.spiros@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/74c682d3c63bff8860af5caf9bd38a5413568709"},{"sha":"73e57aaf4ded85bb5387365f1ebefaabf80cf073","author":{"name":"Elia Pinto","email":"29d524c820902554678446a0ba810abeb2be77a2@gmail.com"},"message":"imap-send.c: introduce the GIT_TRACE_CURL enviroment variable\n\nPermit the use of the GIT_TRACE_CURL environment variable calling\nthe setup_curl_trace http.c helper routine.\n\nHelped-by: Torsten Bögershausen <tboegi@web.de>\nHelped-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\nHelped-by: Junio C Hamano <gitster@pobox.com>\nHelped-by: Eric Sunshine <sunshine@sunshineco.com>\nHelped-by: Jeff King <peff@peff.net>\nSigned-off-by: Elia Pinto <gitter.spiros@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/73e57aaf4ded85bb5387365f1ebefaabf80cf073"},{"sha":"0d44a2dacc84fb7dcb5d684800e976f3b3c76d00","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"config: return configset value for current_config_ functions\n\nWhen 473166b (config: add 'origin_type' to config_source\nstruct, 2016-02-19) added accessor functions for the origin\ntype and name, it taught them only to look at the \"cf\"\nstruct that is filled in while we are parsing the config.\nThis is sufficient to make it work with git-config, which\nuses git_config_with_options() under the hood. That function\nfreshly parses the config files and triggers the callback\nwhen it parses each key.\n\nMost git programs, however, use git_config(). This interface\nwill populate a cache during the actual parse, and then\nserve values from the cache. Calling current_config_filename()\nin a callback here will find a NULL cf and produce an error.\nThere are no such callers right now, but let's prepare for\nadding some by making this work.\n\nWe already record source information in a struct attached to\neach value. We just need to make it globally available and\nthen consult it from the accessor functions.\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/0d44a2dacc84fb7dcb5d684800e976f3b3c76d00"},{"sha":"9acc5911119ec0209877fbaa0a1e68aa714c191e","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"config: add a notion of \"scope\"\n\nA config callback passed to git_config() doesn't know very\nmuch about the context in which it sees a variable. It can\nask whether the variable comes from a file, and get the file\nname. But without analyzing the filename (which is hard to\ndo accurately), it cannot tell whether it is in system-level\nconfig, user-level config, or repo-specific config.\n\nGenerally this doesn't matter; the point of not passing this\nto the callback is that it should treat the config the same\nno matter where it comes from. But some programs, like\nupload-pack, are a special case: we should be able to run\nthem in an untrusted repository, which means we cannot use\nany \"dangerous\" config from the repository config file (but\nit is OK to use it from system or user config).\n\nThis patch teaches the config code to record the \"scope\" of\neach variable, and make it available inside config\ncallbacks, similar to how we give access to the filename.\nThe scope is the starting source for a particular parsing\noperation, and remains the same even if we include other\nfiles (so a .git/config which includes another file will\nremain CONFIG_SCOPE_REPO, as it would be similarly\nuntrusted).\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/9acc5911119ec0209877fbaa0a1e68aa714c191e"},{"sha":"58461bdf15a66f428f5ca6042cafbcc64c82c64d","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"t1308: do not get fooled by symbolic links to the source tree\n\nWhen your $PWD does not match $(/bin/pwd), e.g. you have your copy\nof the git source tree in one place, point it with a symbolic link,\nand then \"cd\" to that symbolic link before running 'make test', one\nof the tests in t1308 expects that the per-user configuration was\nreported to have been read from the true path (i.e. relative to the\ntarget of such a symbolic link), but the test-config program reports\na path relative to $PWD (i.e. the symbolic link).\n\nInstead, expect a path relative to $HOME (aka $TRASH_DIRECTORY), as\nper-user configuration is read from $HOME/.gitconfig and the test\nframework sets these shell variables up in such a way to avoid this\nproblem.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/58461bdf15a66f428f5ca6042cafbcc64c82c64d"},{"sha":"20b20a22f8f7c1420e259c97ef790cb93091f475","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"upload-pack: provide a hook for running pack-objects\n\nWhen upload-pack serves a client request, it turns to\npack-objects to do the heavy lifting of creating a\npackfile. There's no easy way to intercept the call to\npack-objects, but there are a few good reasons to want to do\nso:\n\n  1. If you're debugging a client or server issue with\n     fetching, you may want to store a copy of the generated\n     packfile.\n\n  2. If you're gathering data from real-world fetches for\n     performance analysis or debugging, storing a copy of\n     the arguments and stdin lets you replay the pack\n     generation at your leisure.\n\n  3. You may want to insert a caching layer around\n     pack-objects; it is the most CPU- and memory-intensive\n     part of serving a fetch, and its output is a pure\n     function[1] of its input, making it an ideal place to\n     consolidate identical requests.\n\nThis patch adds a simple \"hook\" interface to intercept calls\nto pack-objects. The new test demonstrates how it can be\nused for debugging (using it for caching is a\nstraightforward extension; the tricky part is writing the\nactual caching layer).\n\nThis hook is unlike the normal hook scripts found in the\n\"hooks/\" directory of a repository. Because we promise that\nupload-pack is safe to run in an untrusted repository, we\ncannot execute arbitrary code or commands found in the\nrepository (neither in hooks/, nor in the config). So\ninstead, this hook is triggered from a config variable that\nis explicitly ignored in the per-repo config.\n\nThe config variable holds the actual shell command to run as\nthe hook.  Another approach would be to simply treat it as a\nboolean: \"should I respect the upload-pack hooks in this\nrepo?\", and then run the script from \"hooks/\" as we usually\ndo. However, that isn't as flexible; there's no way to run a\nhook approved by the site administrator (e.g., in\n\"/etc/gitconfig\") on a repository whose contents are not\ntrusted. The approach taken by this patch is more\nfine-grained, if a little less conventional for git hooks\n(it does behave similar to other configured commands like\ndiff.external, etc).\n\n[1] Pack-objects isn't _actually_ a pure function. Its\n    output depends on the exact packing of the object\n    database, and if multi-threading is used for delta\n    compression, can even differ racily. But for the\n    purposes of caching, that's OK; of the many possible\n    outputs for a given input, it is sufficient only that we\n    output one of them.\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/20b20a22f8f7c1420e259c97ef790cb93091f475"},{"sha":"9f23e040615857e3909db51a5420f338c9831b5a","author":{"name":"Eric Wong","email":"47aede7528d154728613163cc3055c3c2c82ea2f@80x24.org"},"message":"pretty: support \"mboxrd\" output format\n\nThis output format prevents format-patch output from breaking\nreaders if somebody copy+pasted an mbox into a commit message.\n\nUnlike the traditional \"mboxo\" format, \"mboxrd\" is designed to\nbe fully-reversible.  \"mboxrd\" also gracefully degrades to\nshowing extra \">\" in existing \"mboxo\" readers.\n\nThis degradation is preferable to breaking message splitting\ncompletely, a problem I've seen in \"mboxcl\" due to having\nmultiple, non-existent, or inaccurate Content-Length headers.\n\n\"mboxcl2\" is a non-starter since it's inherits the problems\nof \"mboxcl\" while being completely incompatible with existing\ntooling based around mailsplit.\n\nref: http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html\n\nSigned-off-by: Eric Wong <e@80x24.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/9f23e040615857e3909db51a5420f338c9831b5a"},{"sha":"c88098d7f19c6322fbd911bb89e2efd246bf75c4","author":{"name":"Eric Wong","email":"47aede7528d154728613163cc3055c3c2c82ea2f@80x24.org"},"message":"mailsplit: support unescaping mboxrd messages\n\nThis will allow us to parse the output of --pretty=mboxrd\nand the output of other mboxrd generators.\n\nSigned-off-by: Eric Wong <e@80x24.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c88098d7f19c6322fbd911bb89e2efd246bf75c4"},{"sha":"d9925d1a714a440f4063f64e1bd776194d2dd918","author":{"name":"Eric Wong","email":"47aede7528d154728613163cc3055c3c2c82ea2f@80x24.org"},"message":"am: support --patch-format=mboxrd\n\nCombined with \"git format-patch --pretty=mboxrd\", this should\nallow us to round-trip commit messages with embedded mbox\n\"From \" lines without corruption.\n\nSigned-off-by: Eric Wong <e@80x24.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/d9925d1a714a440f4063f64e1bd776194d2dd918"},{"sha":"f0bca72dc77f62d61fc355bd6fe6e32b194950b8","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"send-pack: use buffered I/O to talk to pack-objects\n\nWe start a pack-objects process and then write all of the\npositive and negative sha1s to it over a pipe. We do so by\nformatting each item into a fixed-size buffer and then\nwriting each individually. This has two drawbacks:\n\n  1. There's some manual computation of the buffer size,\n     which is not immediately obvious is correct (though it\n     is).\n\n  2. We write() once per sha1, which means a lot more system\n     calls than are necessary.\n\nWe can solve both by wrapping the pipe descriptor in a stdio\nhandle; this is the same technique used by upload-pack when\nserving fetches.\n\nNote that we can also simplify and improve the error\nhandling here. The original detected a single write error\nand broke out of the loop (presumably to avoid writing the\nerror message over and over), but never actually acted on\nseeing an error; we just fed truncated input and took\nwhatever pack-objects returned.\n\nIn practice, this probably didn't matter, as the likely\nerrors would be caused by pack-objects dying (and we'd\nprobably just die with SIGPIPE anyway). But we can easily\nmake this simpler and more robust; the stdio handle keeps an\nerror flag, which we can check at the end.\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/f0bca72dc77f62d61fc355bd6fe6e32b194950b8"},{"sha":"e51b0dfc978649b9f0e3a594030810cc472a8b08","author":{"name":"Pranit Bauva","email":"40a45a699d3945bf6e080cdb09dfa314e9c99236@gmail.com"},"message":"builtin/commit.c: memoize git-path for COMMIT_EDITMSG\n\nThis is a follow up commit for f932729c (memoize common git-path\n\"constant\" files, 10-Aug-2015).\n\nThe many function calls to git_path() are replaced by\ngit_path_commit_editmsg() and which thus eliminates the need to repeatedly\ncompute the location of \"COMMIT_EDITMSG\".\n\nMentored-by: Lars Schneider <larsxschneider@gmail.com>\nMentored-by: Christian Couder <chriscool@tuxfamily.org>\nSigned-off-by: Pranit Bauva <pranit.bauva@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/e51b0dfc978649b9f0e3a594030810cc472a8b08"}]}
{"actor":{"display_login":"peff"}}