{"shas":[["594ffe80e7827b20335c5c6dde2cf57c9919db68","024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","decoration: do not mis-decorate refs with same prefix\n\nWe definitely do not want to decorate refs/headsandtails the same as\nrefs/heads/*, for example.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Nguyễn Thái Ngọc Duy"],["09d46644b780ede1a6b757db3e1a1ae9c1128a13","024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","Add for_each_commit_graft() to iterate all grafts\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Nguyễn Thái Ngọc Duy"],["294e15fc19b5ba370b703d003920d000a4f5547a","024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","Move write_shallow_commits to fetch-pack.c\n\nThis function produces network traffic and should be in fetch-pack. It\nhas been in commit.c because it needs to iterate (private) graft\nlist. It can now do so using for_each_commit_graft().\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Nguyễn Thái Ngọc Duy"],["76f5df305beddb864b3d1d12800d0de442d05596","024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","log: decorate grafted commits with \"grafted\"\n\nIn shallow repositories, this may help detect whether a branch ends,\nor it is deeper than current depth.\n\nIt also show graft points that extend a branch.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Nguyễn Thái Ngọc Duy"],["111ee18c31f9bac9436426399355facc79238566","d4b884dd544d7f7cd1aa04df35b4ba0349e4e79b@gmail.com","Makefile: Use computed header dependencies if the compiler supports it\n\nPreviously you had to manually define COMPUTE_HEADER_DEPENDENCIES to\nenable this feature. It seemed a bit sad that such a useful feature\nhad to be enabled manually.\n\nTo avoid the small overhead we don't do the auto-detection if\nCOMPUTE_HEADER_DEPENDENCIES is already set.\n\nSigned-off-by: Fredrik Kuivinen <frekui@gmail.com>\nAcked-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Fredrik Kuivinen"],["212ad944209a928dbf79faa124de77be5c84532e","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","t7006: modernize calls to unset\n\nThese tests break &&-chaining to deal with broken \"unset\"\nimplementations. Instead, they should just use sane_unset.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["d960c47a881c613a71b1b7c8aab3a06fd91ca70a","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","test-lib: add helper functions for config\n\nThere are a few common tasks when working with configuration\nvariables in tests; this patch aims to make them a little\neasier to write and less error-prone.\n\nWhen setting a variable, you should typically make sure to\nclean it up after the test is finished, so as not to pollute\nother tests. Like:\n\n   test_when_finished 'git config --unset foo.bar' &&\n   git config foo.bar baz\n\nThis patch lets you just write:\n\n  test_config foo.bar baz\n\nWhen clearing a variable that does not exist, git-config\nwill report a specific non-zero error code. Meaning that\ntests which call \"git config --unset\" often either rely on\nthe prior tests having actually set it, or must use\ntest_might_fail. With this patch, the previous:\n\n  test_might_fail git config --unset foo.bar\n\nbecomes:\n\n  test_unconfig foo.bar\n\nNot only is this easier to type, but it is more robust; it\nwill correctly detect errors from git-config besides \"key\nwas not set\".\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["8d68a6d59378760c6bd5c7e0af75fe71c6ed78e7","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","t7006: use test_config helpers\n\nIn some cases, this is just making the test script a little\nshorter and easier to read. However, there are several\nplaces where we didn't take proper precautions against\npolluting downstream tests with our config; this fixes them,\ntoo.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["2e6c012e10fd866eb3259de3a929e0296daabbaf","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","setup_pager: set GIT_PAGER_IN_USE\n\nWe have always set a global \"spawned_pager\" variable when we\nstart the pager. This lets us make the auto-color decision\nlater in the program as as \"we are outputting to a terminal,\nor to a pager which can handle colors\".\n\nCommit 6e9af86 added support for the GIT_PAGER_IN_USE\nenvironment variable. An external program calling git (e.g.,\ngit-svn) could set this variable to indicate that it had\nalready started the pager, and that the decision about\nauto-coloring should take that into account.\n\nHowever, 6e9af86 failed to do the reverse, which is to tell\nexternal programs when git itself has started the pager.\nThus a git command implemented as an external script that\nhas the pager turned on (e.g., \"git -p stash show\") would\nnot realize it was going to a pager, and would suppress\ncolors.\n\nThis patch remedies that; we always set GIT_PAGER_IN_USE\nwhen we start the pager, and the value is respected by both\nthis program and any spawned children.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["f1c9626105d5e4962a5ccaa4620114d03f32ad02","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","diff: refactor COLOR_DIFF from a flag into an int\n\nThis lets us store more than just a bit flag for whether we\nwant color; we can also store whether we want automatic\ncolors. This can be useful for making the automatic-color\ndecision closer to the point of use.\n\nThis mostly just involves replacing DIFF_OPT_* calls with\nmanipulations of the flag. The biggest exception is that\ncalls to DIFF_OPT_TST must check for \"o->use_color > 0\",\nwhich lets an \"unknown\" value (i.e., the default) stay at\n\"no color\". In the previous code, a value of \"-1\" was not\npropagated at all.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["e269eb7946d0a4ba6a4e175133b5479446ac04a5","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","git_config_colorbool: refactor stdout_is_tty handling\n\nUsually this function figures out for itself whether stdout\nis a tty. However, it has an extra parameter just to allow\ngit-config to override the auto-detection for its\n--get-colorbool option.\n\nInstead of an extra parameter, let's just use a global\nvariable. This makes calling easier in the common case, and\nwill make refactoring the colorbool code much simpler.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["057d4836894bb372f54cd6488b266e3ec5f9d155","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","color: delay auto-color decision until point of use\n\nWhen we read a color value either from a config file or from\nthe command line, we use git_config_colorbool to convert it\nfrom the tristate always/never/auto into a single yes/no\nboolean value.\n\nThis has some timing implications with respect to starting\na pager.\n\nIf we start (or decide not to start) the pager before\nchecking the colorbool, everything is fine. Either isatty(1)\nwill give us the right information, or we will properly\ncheck for pager_in_use().\n\nHowever, if we decide to start a pager after we have checked\nthe colorbool, things are not so simple. If stdout is a tty,\nthen we will have already decided to use color. However, the\nuser may also have configured color.pager not to use color\nwith the pager. In this case, we need to actually turn off\ncolor. Unfortunately, the pager code has no idea which color\nvariables were turned on (and there are many of them\nthroughout the code, and they may even have been manipulated\nafter the colorbool selection by something like \"--color\" on\nthe command line).\n\nThis bug can be seen any time a pager is started after\nconfig and command line options are checked. This has\naffected \"git diff\" since 89d07f7 (diff: don't run pager if\nuser asked for a diff style exit code, 2007-08-12). It has\nalso affect the log family since 1fda91b (Fix 'git log'\nearly pager startup error case, 2010-08-24).\n\nThis patch splits the notion of parsing a colorbool and\nactually checking the configuration. The \"use_color\"\nvariables now have an additional possible value,\nGIT_COLOR_AUTO. Users of the variable should use the new\n\"want_color()\" wrapper, which will lazily determine and\ncache the auto-color decision.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["dbe0703ff24b454648161a1ba61b5255cd497454","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","config: refactor get_colorbool function\n\nFor \"git config --get-colorbool color.foo\", we use a custom\ncallback that looks not only for the key that the user gave\nus, but also for \"diff.color\" (for backwards compatibility)\nand \"color.ui\" (as a fallback).\n\nFor the former, we use a custom variable to store the\ndiff.color value. For the latter, though, we store it in the\nmain \"git_use_color_default\" variable, turning on color.ui\nfor any other parts of git that respect this value.\n\nIn practice, this doesn't cause any bugs, because git-config\nruns without caring about git_use_color_default, and then\nexits. But it crosses module boundaries in an unusual and\nconfusing way, and it makes refactoring color handling\nharder than it needs to be.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["a2e4993a3dbae6fb6e4431def1ffce2f633344c1","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","diff: don't load color config in plumbing\n\nThe diff config callback is split into two functions: one\nwhich loads \"ui\" config, and one which loads \"basic\" config.\nThe former chains to the latter, as the diff UI config is a\nsuperset of the plumbing config.\n\nThe color.diff variable is only loaded in the UI config.\nHowever, the basic config actually chains to\ngit_color_default_config, which loads color.ui. This doesn't\nactually cause any bugs, because the plumbing diff code does\nnot actually look at the value of color.ui.\n\nHowever, it is somewhat nonsensical, and it makes it\ndifficult to refactor the color code. It probably came about\nbecause there is no git_color_config to load only color\nconfig, but rather just git_color_default_config, which\nloads color config and chains to git_default_config.\n\nThis patch splits out the color-specific portion of\ngit_color_default_config so that the diff UI config can call\nit directly. This is perhaps better explained by the\nchaining of callbacks. Before we had:\n\n  git_diff_ui_config\n    -> git_diff_basic_config\n      -> git_color_default_config\n        -> git_default_config\n\nNow we have:\n\n  git_diff_ui_config\n    -> git_color_config\n    -> git_diff_basic_config\n      -> git_default_config\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["e76646e23cfb18e84101737d227b598186d49960","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","want_color: automatically fallback to color.ui\n\nAll of the \"do we want color\" flags default to -1 to\nindicate that we don't have any color configured. This value\nis handled in one of two ways:\n\n  1. In porcelain, we check early on whether the value is\n     still -1 after reading the config, and set it to the\n     value of color.ui (which defaults to 0).\n\n  2. In plumbing, it stays untouched as -1, and want_color\n     defaults it to off.\n\nThis works fine, but means that every porcelain has to check\nand reassign its color flag. Now that want_color gives us a\nplace to put this check in a single spot, we can do that,\nsimplifying the calling code.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["6428b4f312f52c81126e1addd9ea3d2429bf107e","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","support pager.* for external commands\n\nWithout this patch, any commands that are not builtin would\nnot respect pager.* config. For example:\n\n  git config pager.stash false\n  git stash list\n\nwould still use a pager. With this patch, pager.stash now\nhas an effect. If it is not specified, we will still fall\nback to pager.log when we invoke \"log\" from \"stash list\".\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["394eb2472898947a8c09179e9b33cb7e92d3509c","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","support pager.* for aliases\n\nUntil this patch, doing something like:\n\n  git config alias.foo log\n  git config pager.foo /some/specific/pager\n\nwould not respect pager.foo at all. With this patch, we\nwill use pager.foo for the \"foo\" alias.  We will also\nfallback to pager.log if \"foo\" is a non-shell alias that\nuses the \"log\" command (but any pager.foo overrides\npager.log).\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["d8b8fa57daf633c53304959180e4d9bbf6380cdc","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jk/http-auth-keyring' into jch\n\n* jk/http-auth-keyring:\n  credentials: add \"getpass\" helper\n  credentials: add \"store\" helper\n  credentials: add \"cache\" helper\n  docs: end-user documentation for the credential subsystem\n  http: use hostname in credential description\n  allow the user to configure credential helpers\n  look for credentials in config before prompting\n  http: use credential API to get passwords\n  introduce credentials API\n  http: retry authentication failures for all http requests\n  remote-curl: don't retry auth failures with dumb protocol\n  improve httpd auth tests\n  url: decode buffers that are not NUL-terminated\n\nConflicts:\n\tDocumentation/Makefile","Junio C Hamano"],["e0f21dd5f5edf1976769954dedc1d5cd2c25b0ef","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jk/add-i-hunk-filter' into jch\n\n* jk/add-i-hunk-filter:\n  add--interactive: add option to autosplit hunks\n  add--interactive: allow negatation of hunk filters\n  add--interactive: allow hunk filtering on command line\n  add--interactive: factor out regex error handling\n  add--interactive: refactor patch mode argument processing","Junio C Hamano"],["833111815b93e18b669e9a88cca3f0556c89f47a","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jn/maint-test-return' into jch\n\n* jn/maint-test-return:\n  t3900: do not reference numbered arguments from the test script\n  test: cope better with use of return for errors\n  test: simplify return value of test_run_","Junio C Hamano"]],"ref":"refs/heads/pu","size":69,"head":"a7a2d413a4acaae2b5dda03de536452ae530ee81","push_id":40138512}