{"push_id":777799349,"size":51,"distinct_size":4,"ref":"refs/heads/jk/packed-refs-binary-search-wip","head":"31a888c3a508bc3983fe975676c75acc4d723339","before":"5f683704eb2eb6add2011b402d1336e3ecae0fc5","commits":[{"sha":"578625fa918922713a2ecce2b06611e4566778f5","author":{"email":"46692b1f0516358b02a6405518c0a52aa8fb3e94@ira.uka.de","name":"SZEDER Gábor"},"message":"config: add '--name-only' option to list only variable names\n\n'git config' can only show values or name-value pairs, so if a shell\nscript needs the names of set config variables it has to run 'git config\n--list' or '--get-regexp' and parse the output to separate config\nvariable names from their values.  However, such a parsing can't cope\nwith multi-line values.  Though 'git config' can produce null-terminated\noutput for newline-safe parsing, that's of no use in such a case, becase\nshells can't cope with null characters.\n\nEven our own bash completion script suffers from these issues.\n\nHelp the completion script, and shell scripts in general, by introducing\nthe '--name-only' option to modify the output of '--list' and\n'--get-regexp' to list only the names of config variables, so they don't\nhave to perform error-prone post processing to separate variable names\nfrom their values anymore.\n\nSigned-off-by: SZEDER Gábor <szeder@ira.uka.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/578625fa918922713a2ecce2b06611e4566778f5"},{"sha":"905f2036d0975a828f764947384e732c2908d6eb","author":{"email":"46692b1f0516358b02a6405518c0a52aa8fb3e94@ira.uka.de","name":"SZEDER Gábor"},"message":"completion: list variable names reliably with 'git config --name-only'\n\nRecenty I created a multi-line branch description with '.' and '='\ncharacters on one of the lines, and noticed that fragments of that line\nshow up when completing set variable names for 'git config', e.g.:\n\n  $ git config --get branch.b.description\n  Branch description to fool the completion script with a\n  second line containing dot . and equals = characters.\n  $ git config --unset <TAB>\n  ...\n  second line containing dot . and equals\n  ...\n\nThe completion script runs 'git config --list' and processes its output\nto strip the values and keep only the variable names.  It does so by\nlooking for lines containing '.' and '=' and outputting everything\nbefore the '=', which was fooled by my multi-line branch description.\n\nA similar issue exists with aliases and pretty format aliases with\nmulti-line values, but in that case 'git config --get-regexp' is run and\nlines in its output are simply stripped after the first space, so\nsubsequent lines don't even have to contain '.' and '=' to fool the\ncompletion script.\n\nUse the new '--name-only' option added in the previous commit to list\nconfig variable names reliably in both cases, without error-prone post\nprocessing.\n\nSigned-off-by: SZEDER Gábor <szeder@ira.uka.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/905f2036d0975a828f764947384e732c2908d6eb"},{"sha":"e48ad1b9b1d862dd0aad3a21c7e6ca5ec68c024c","author":{"email":"74ec1f46a68d238888726a00aa611ba6343172e2@gmail.com","name":"Jacob Keller"},"message":"notes: document cat_sort_uniq rewriteMode\n\nTeach documentation about the cat_sort_uniq rewriteMode that got added\nat the same time as the equivalent merge strategy.\n\nSigned-off-by: Jacob Keller <jacob.keller@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/e48ad1b9b1d862dd0aad3a21c7e6ca5ec68c024c"},{"sha":"4d03dd18f0860d4052fab5ce7779e4bba302e5fc","author":{"email":"74ec1f46a68d238888726a00aa611ba6343172e2@gmail.com","name":"Jacob Keller"},"message":"notes: extract enum notes_merge_strategy to notes-utils.h\n\nA future patch will extract parsing of the --strategy string into a\nhelper function in notes.c and will require the enumeration definition.\n\nSigned-off-by: Jacob Keller <jacob.keller@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/4d03dd18f0860d4052fab5ce7779e4bba302e5fc"},{"sha":"93efcad31777142840eaefc19b71d1a4b6a2fe24","author":{"email":"74ec1f46a68d238888726a00aa611ba6343172e2@gmail.com","name":"Jacob Keller"},"message":"notes: extract parse_notes_merge_strategy to notes-utils\n\nSigned-off-by: Jacob Keller <jacob.keller@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/93efcad31777142840eaefc19b71d1a4b6a2fe24"},{"sha":"11dd2b2e9a3303bd1e32fd2ee95ec5dff38d9d47","author":{"email":"74ec1f46a68d238888726a00aa611ba6343172e2@gmail.com","name":"Jacob Keller"},"message":"notes: add tests for --commit/--abort/--strategy exclusivity\n\nAdd new tests to ensure that --commit, --abort, and --strategy are\nmutually exclusive.\n\nSigned-off-by: Jacob Keller <jacob.keller@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/11dd2b2e9a3303bd1e32fd2ee95ec5dff38d9d47"},{"sha":"d2d68d9975da4a15dfca0e6e59001948e5bf57f9","author":{"email":"74ec1f46a68d238888726a00aa611ba6343172e2@gmail.com","name":"Jacob Keller"},"message":"notes: add notes.mergeStrategy option to select default strategy\n\nTeach git-notes about \"notes.mergeStrategy\" to select a general strategy\nfor all notes merges. This enables a user to always get expected merge\nstrategy such as \"cat_sort_uniq\" without having to pass the \"-s\" option\nmanually.\n\nSigned-off-by: Jacob Keller <jacob.keller@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/d2d68d9975da4a15dfca0e6e59001948e5bf57f9"},{"sha":"4f655e22b76fed49b0c32bcdcd899934215b9a6d","author":{"email":"74ec1f46a68d238888726a00aa611ba6343172e2@gmail.com","name":"Jacob Keller"},"message":"notes: teach git-notes about notes.<name>.mergeStrategy option\n\nTeach notes about a new \"notes.<name>.mergeStrategy\" option for\nconfiguring the notes merge strategy when merging into\nrefs/notes/<name>. This option allows for the selection of merge\nstrategy for particular notes refs, rather than all notes ref merges, as\nuser may not want cat_sort_uniq for all refs, but only some. Note that\nthe <name> is the local reference we are merging into, not the remote\nref we merged from. The assumption is that users will mostly want to\nconfigure separate local ref merge strategies rather than strategies\ndepending on which remote ref they merge from.\n\nnotes.<name>.mergeStrategy overrides the general behavior as it is more\nspecific.\n\nSigned-off-by: Jacob Keller <jacob.keller@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/4f655e22b76fed49b0c32bcdcd899934215b9a6d"},{"sha":"959b5455d07c7724eea9d323ca8ce6bb6ddde40e","author":{"email":"86e258386154ed4b73b2a53bbe17a37214573109@hvoigt.net","name":"Heiko Voigt"},"message":"submodule: implement a config API for lookup of .gitmodules values\n\nIn a superproject some commands need to interact with submodules. They\nneed to query values from the .gitmodules file either from the worktree\nof from certain revisions. At the moment this is quite hard since a\ncaller would need to read the .gitmodules file from the history and then\nparse the values. We want to provide an API for this so we have one\nplace to get values from .gitmodules from any revision (including the\nworktree).\n\nThe API is realized as a cache which allows us to lazily read\n.gitmodules configurations by commit into a runtime cache which can then\nbe used to easily lookup values from it. Currently only the values for\npath or name are stored but it can be extended for any value needed.\n\nIt is expected that .gitmodules files do not change often between\ncommits. Thats why we lookup the .gitmodules sha1 from a commit and then\neither lookup an already parsed configuration or parse and cache an\nunknown one for each sha1. The cache is lazily build on demand for each\nrequested commit.\n\nThis cache can be used for all purposes which need knowledge about\nsubmodule configurations. Example use cases are:\n\n * Recursive submodule checkout needs to lookup a submodule name from\n   its path when a submodule first appears. This needs be done before\n   this configuration exists in the worktree.\n\n * The implementation of submodule support for 'git archive' needs to\n   lookup the submodule name to generate the archive when given a\n   revision that is not checked out.\n\n * 'git fetch' when given the --recurse-submodules=on-demand option (or\n   configuration) needs to lookup submodule names by path from the\n   database rather than reading from the worktree. For new submodule it\n   needs to lookup the name from its path to allow cloning new\n   submodules into the .git folder so they can be checked out without\n   any network interaction when the user does a checkout of that\n   revision.\n\nSigned-off-by: Heiko Voigt <hvoigt@hvoigt.net>\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/959b5455d07c7724eea9d323ca8ce6bb6ddde40e"},{"sha":"0d9f282c943a0799999176a2d8291ecbad060389","author":{"email":"86e258386154ed4b73b2a53bbe17a37214573109@hvoigt.net","name":"Heiko Voigt"},"message":"submodule: extract functions for config set and lookup\n\nThis is one step towards using the new configuration API. We just\nextract these functions to make replacing the actual code easier.\n\nSigned-off-by: Heiko Voigt <hvoigt@hvoigt.net>\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/0d9f282c943a0799999176a2d8291ecbad060389"},{"sha":"851e18c3859ad0f9f7e91fdb4d6cce5a8272420b","author":{"email":"86e258386154ed4b73b2a53bbe17a37214573109@hvoigt.net","name":"Heiko Voigt"},"message":"submodule: use new config API for worktree configurations\n\nWe remove the extracted functions and directly parse into and read out\nof the cache. This allows us to have one unified way of accessing\nsubmodule configuration values specific to single submodules. Regardless\nwhether we need to access a configuration from history or from the\nworktree.\n\nSigned-off-by: Heiko Voigt <hvoigt@hvoigt.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/851e18c3859ad0f9f7e91fdb4d6cce5a8272420b"},{"sha":"027771fcb153e0003bcb2d68e1838594a48b0161","author":{"email":"86e258386154ed4b73b2a53bbe17a37214573109@hvoigt.net","name":"Heiko Voigt"},"message":"submodule: allow erroneous values for the fetchRecurseSubmodules option\n\nWe should not die when reading the submodule config cache since the\nuser might not be able to get out of that situation when the\nconfiguration is part of the history.\n\nWe should handle this condition later when the value is about to be\nused.\n\nSigned-off-by: Heiko Voigt <hvoigt@hvoigt.net>\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/027771fcb153e0003bcb2d68e1838594a48b0161"},{"sha":"f9e0952d1ff1c1f5c8fbbe9d914bb30012341a04","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"Documentation/git-push.txt: document when --signed may fail\n\nLike --atomic, --signed will fail if the server does not advertise the\nnecessary capability. In addition, it requires gpg on the client side.\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/f9e0952d1ff1c1f5c8fbbe9d914bb30012341a04"},{"sha":"a3fb31a89234ec49ff8640a531f1445d6ad38b4a","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"Documentation/git-send-pack.txt: wrap long synopsis line\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/a3fb31a89234ec49ff8640a531f1445d6ad38b4a"},{"sha":"66697fe4bac58053187a4c013de33fd587929487","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"Documentation/git-send-pack.txt: document --signed\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/66697fe4bac58053187a4c013de33fd587929487"},{"sha":"b9299a2bb15a2fe851d0a463d8c0567743960c61","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"gitremote-helpers.txt: document pushcert option\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/b9299a2bb15a2fe851d0a463d8c0567743960c61"},{"sha":"87c0d08b3d92c55c233c8a95294a2232a97d97eb","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"transport: remove git_transport_options.push_cert\n\nThis field was set in transport_set_option, but never read in the push\ncode. The push code basically ignores the smart_options field\nentirely, and derives its options from the flags arguments to the\npush* callbacks. Note that in git_transport_push there are already\nseveral args set from flags that have no corresponding field in\ngit_transport_options; after this change, push_cert is just like\nthose.\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/87c0d08b3d92c55c233c8a95294a2232a97d97eb"},{"sha":"9a549d4397a624a819e881137c519d0ca61fe7e8","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool\n\nThis helper function does not complain about the config variable\nbut just silently reports failure to the caller.  It is useful for\ncallers that need to parse any string that could be boolean or other\nstring (e.g. tristate yes/no/auto).\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/9a549d4397a624a819e881137c519d0ca61fe7e8"},{"sha":"068c77a5189584de2a8d9c2ad29e2370159444ae","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"builtin/send-pack.c: use parse_options API\n\nThe old option parsing code in this plumbing command predates this\nAPI, so option parsing was done more manually. Using the new API\nbrings send-pack more in line with push, and accepts new variants\nlike --no-* for negating options.\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/068c77a5189584de2a8d9c2ad29e2370159444ae"},{"sha":"30261094b1f7fdcba3b7a1f396e43891cd998149","author":{"email":"ac39666f39dfa5b37bad5e19ae3f186528808854@google.com","name":"Dave Borowitz"},"message":"push: support signing pushes iff the server supports it\n\nAdd a new flag --sign=true (or --sign=false), which means the same\nthing as the original --signed (or --no-signed).  Give it a third\nvalue --sign=if-asked to tell push and send-pack to send a push\ncertificate if and only if the server advertised a push cert nonce.\n\nIf not, warn the user that their push may not be as secure as they\nthought.\n\nSigned-off-by: Dave Borowitz <dborowitz@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/30261094b1f7fdcba3b7a1f396e43891cd998149"}]}