diff --git a/whats-cooking.txt b/whats-cooking.txt index 73cfa3675c..c8078b8197 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Feb 2016, #05; Wed, 17) -X-master-at: 0233b800c838ddda41db318ee396320b3c21a560 -X-next-at: 45cd78e6c697b37c226f619775990486cf53e84f +Subject: What's cooking in git.git (Feb 2016, #06; Mon, 22) +X-master-at: 70bd996071bf724a7b151c81a165e8837179d6d7 +X-next-at: 5fe9e24d37736b932d9f6fc17afbc616cde818a3 -What's cooking in git.git (Feb 2016, #05; Wed, 17) +What's cooking in git.git (Feb 2016, #06; Mon, 22) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,6 +12,11 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. +I originally penciled in -rc0 for today, but let's give a handful of +topics that are cooking in 'next' a few more time and merge them to +'master' before doing so. On the 'maint' front, there is 2.7.2 out, +that merges the fixes accumulated on 'master' so far. + You can find the changes described here in the integration branches of the repositories listed at @@ -20,332 +25,89 @@ repositories listed at -------------------------------------------------- [Graduated to "master"] -* ah/stripspace-optstring (2016-01-29) 1 commit - (merged to 'next' on 2016-02-12 at cd021aa) - + stripspace: call U+0020 a "space" instead of a "blank" +* ew/connect-verbose (2016-02-15) 1 commit + (merged to 'next' on 2016-02-18 at 5555b13) + + t5570: add tests for "git {clone,fetch,pull} -v" + + A missing test for a recent feature has been added. -* da/user-useconfigonly (2016-02-08) 2 commits - (merged to 'next' on 2016-02-09 at 8b303ce) - + ident: add user.useConfigOnly boolean for when ident shouldn't be guessed - + fmt_ident: refactor strictness checks +* jk/config-include (2016-02-13) 1 commit + (merged to 'next' on 2016-02-18 at 8491d55) + + git-config: better document default behavior for `--include` - The "user.useConfigOnly" configuration variable can be used to - force the user to always set user.email & user.name configuration - variables, serving as a reminder for those who work on multiple - projects and do not want to put these in their $HOME/.gitconfig. + A belated documentation update clarifies the interaction between + "--file", "--include" and "[include] path = $over_there". -* dw/mergetool-vim-window-shuffle (2016-02-12) 1 commit - (merged to 'next' on 2016-02-12 at 2a2e8bd) - + mergetool: reorder vim/gvim buffers in three-way diffs +* js/git-remote-add-url-insteadof-test (2016-02-17) 1 commit + (merged to 'next' on 2016-02-18 at ef1d82e) + + t5505: 'remote add x y' should work when url.y.insteadOf = x - The vimdiff backend for "git mergetool" has been tweaked to arrange - and number buffers in the order that would match the expectation of - majority of people who read left to right, then top down and assign - buffers 1 2 3 4 "mentally" to local base remote merge windows based - on that order. - - -* jk/drop-rsync-transport (2016-02-01) 1 commit - (merged to 'next' on 2016-02-03 at 08be402) - + transport: drop support for git-over-rsync - - It turns out "git clone" over rsync transport has been broken when - the source repository has packed references for a long time, and - nobody noticed nor complained about it. - - -* jk/rerere-xsnprintf (2016-02-08) 1 commit - (merged to 'next' on 2016-02-09 at ff9ade3) - + rerere: replace strcpy with xsnprintf - (this branch is used by jc/rerere-multi.) - - Some calls to strcpy(3) triggers a false warning from static - analysers that are less intelligent than humans, and reducing the - number of these false hits helps us notice real issues. A few - calls to strcpy(3) in "git rerere" that are already safe has been - rewritten to avoid false wanings. - - -* jk/test-path-utils-xsnprintf (2016-02-08) 1 commit - (merged to 'next' on 2016-02-09 at 931f70b) - + test-path-utils: use xsnprintf in favor of strcpy - - Some calls to strcpy(3) triggers a false warning from static - analysers that are less intelligent than humans, and reducing the - number of these false hits helps us notice real issues. A few - calls to strcpy(3) in test-path-utils that are already safe has - been rewritten to avoid false wanings. - - -* js/mingw-tests (2016-02-08) 21 commits - (merged to 'next' on 2016-02-08 at 417e555) - + gitignore: ignore generated test-fake-ssh executable - (merged to 'next' on 2016-02-03 at ace7624) - + mingw: do not bother to test funny file names - + mingw: skip a test in t9130 that cannot pass on Windows - + mingw: handle the missing POSIXPERM prereq in t9124 - + mingw: avoid illegal filename in t9118 - + mingw: mark t9100's test cases with appropriate prereqs - + t0008: avoid absolute path - + mingw: work around pwd issues in the tests - + mingw: fix t9700's assumption about directory separators - + mingw: skip test in t1508 that fails due to path conversion - + tests: turn off git-daemon tests if FIFOs are not available - + mingw: disable mkfifo-based tests - + mingw: accomodate t0060-path-utils for MSYS2 - + mingw: fix t5601-clone.sh - + mingw: let lstat() fail with errno == ENOTDIR when appropriate - + mingw: try to delete target directory before renaming - + mingw: prepare the TMPDIR environment variable for shell scripts - + mingw: factor out Windows specific environment setup - + Git.pm: stop assuming that absolute paths start with a slash - + mingw: do not trust MSYS2's MinGW gettext.sh - + mingw: let's use gettext with MSYS2 - (this branch is used by mg/mingw-test-fix.) - - Test scripts have been updated to remove assumptions that are not - portable between Git for POSIX and Git for Windows, or to skip ones - with expectations that are not satisfiable on Git for Windows. - - -* mg/mingw-test-fix (2016-02-08) 1 commit - (merged to 'next' on 2016-02-12 at df77956) - + t9100: fix breakage when SHELL_PATH is not /bin/sh - (this branch uses js/mingw-tests.) - - An earlier adjustment of test mistakenly used write_script - to prepare a file whose exact content matters for the test; - reverting that part fixes the breakage for those who use - SHELL_PATH that is different from /bin/sh. - - -* mm/clean-doc-fix (2016-02-09) 1 commit - (merged to 'next' on 2016-02-09 at ced8555) - + Documentation/git-clean.txt: don't mention deletion of .git/modules/* - - The documentation for "git clean" has been corrected; it mentioned - that .git/modules/* are removed by giving two "-f", which has never - been the case. - - -* nd/clear-gitenv-upon-use-of-alias (2016-02-02) 4 commits - (merged to 'next' on 2016-02-09 at 2c441b4) - + restore_env(): free the saved environment variable once we are done - + git: simplify environment save/restore logic - + git: protect against unbalanced calls to {save,restore}_env() - + git: remove an early return from save_env_before_alias() - - The automatic typo correction applied to an alias was broken - with a recent change already in 'master'. + A missing test for a rather old change has been added. -------------------------------------------------- [New Topics] -* cn/deprecate-ssh-git-url (2016-02-15) 1 commit - - Disown ssh+git and git+ssh - - Needs toning down by replacing the condescendence with an - explanation and enlightenment. - ($gmane/286222) +* sb/submodule-init (2016-02-19) 2 commits + - submodule: port init from shell to C + - submodule: port resolve_relative_url from shell to C + (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.) -* jk/config-include (2016-02-13) 1 commit - - git-config: better document default behavior for `--include` +* ak/extract-argv0-last-dir-sep (2016-02-19) 1 commit + - exec_cmd.c: use find_last_dir_sep() for code simplification + + Code simplification. Will merge to 'next'. -* nd/git-common-dir-fix (2016-02-12) 1 commit - - rev-parse: take prefix into account in --git-common-dir +* az/p4-bare-no-rebase (2016-02-19) 1 commit + - git-p4.py: Don't try to rebase on submit from bare repository + + "git p4 submit" attempts to do a rebase, which would fail if done + in a bare repository. Not doing this rebase would paper over the + failure, which is what this patch does, but it is unclear what the + side effect of not rebasing is. + + Needs a better explanation. + + +* ak/git-strip-extension-from-dashed-command (2016-02-21) 1 commit + - git.c: simplify stripping extension of a file in handle_builtin() + + Code simplification. Will merge to 'next'. -* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit - - remote-curl: include curl_errorstr on SSL setup failures +* jk/grep-binary-workaround-in-test (2016-02-21) 2 commits + - t9200: avoid grep on non-ASCII data + - t8005: avoid grep on non-ASCII data - Help those who debug http(s) part of the system. + Will see a reroll. + + +* mg/work-tree-tests (2016-02-20) 1 commit + - tests: rename work-tree tests to *work-tree* + + Traditionally, the tests that try commands that work on the + contents in the working tree were named with "worktree" in their + filenames, but with the recent addition of "git worktree" + subcommand, whose tests are also named similarly, it has become + harder to tell them apart. The traditional tests have been renamed + to use "work-tree" instead in an attempt to differentiate them. + + +* jk/more-comments-on-textconv (2016-02-22) 1 commit + - diff: clarify textconv interface + + The memory ownership rule of fill_textconv() API, which was a bit + tricky, has been documented a bit better. Will merge to 'next'. - -* bc/http-empty-auth (2016-02-15) 1 commit - - http: add option to try authentication without username - - Some authentication methods do not need username or password, but - libcurl needs some hint that it needs to perform authentication. - Supplying an empty username and password string is a valid way to - do so, but you can set the http.[.]emptyAuth configuration - variable to achieve the same, if you find it cleaner. - - Will merge to 'next'. - - -* ce/https-public-key-pinning (2016-02-15) 1 commit - - http: implement public key pinning - - You can now set http.[.]pinnedpubkey to specify the pinned - public key when building with recent enough versions of libcURL. - - Will merge to 'next'. - - -* ew/connect-verbose (2016-02-15) 1 commit - - t5570: add tests for "git {clone,fetch,pull} -v" - - Will merge to 'next'. - - -* fa/merge-recursive-no-rename (2016-02-17) 2 commits - - merge-recursive: more consistent interface - - merge-recursive: option to disable renames - - "git merge-recursive" learned "--no-renames" option to disable its - rename detection logic. - - Will merge to 'next'. - - -* jc/am-i-v-fix (2016-02-17) 3 commits - - am -i: fix "v"iew - - pager: factor out a helper to prepare a child process to run the pager - - pager: lose a separate argv[] - - The "v(iew)" subcommand of the interactive "git am -i" command was - broken in 2.6.0 timeframe when the command was rewritten in C. - - Will merge to 'next'. - - -* jk/merge-tree-merge-blobs (2016-02-16) 1 commit - - merge_blobs: use strbuf instead of manually-sized mmfile_t - - "git merge-tree" (a throw-away demonstration) did not work very - well when merging "both sides added a new file at the same path" - case. - - Undecided; we might be better off deleting it altogether. - - -* jk/tighten-alloc (2016-02-15) 18 commits - - ewah: convert to REALLOC_ARRAY, etc - - convert ewah/bitmap code to use xmalloc - - diff_populate_gitlink: use a strbuf - - transport_anonymize_url: use xstrfmt - - git-compat-util: drop mempcpy compat code - - sequencer: simplify memory allocation of get_message - - test-path-utils: fix normalize_path_copy output buffer size - - fetch-pack: simplify add_sought_entry - - fast-import: simplify allocation in start_packfile - - write_untracked_extension: use FLEX_ALLOC helper - - use st_add and st_mult for allocation size computation - - convert trivial cases to FLEX_ARRAY macros - - use xmallocz to avoid size arithmetic - - convert trivial cases to ALLOC_ARRAY - - add helpers for allocating flex-array structs - - harden REALLOC_ARRAY and xcalloc against size_t overflow - - tree-diff: catch integer overflow in combine_diff_path allocation - - add helpers for detecting size_t overflow - - Update various codepaths to avoid manually-counted malloc(). - - Will merge to 'next'. - - -* js/git-remote-add-url-insteadof-test (2016-02-17) 1 commit - - t5505: 'remote add x y' should work when url.y.insteadOf = x - - Will merge to 'next'. - - -* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits - - get_sha1: don't die() on bogus search strings - - check_filename: tighten dwim-wildcard ambiguity - - checkout: reorder check_filename conditional - - "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a - rev, i.e. the object named by the the pathname with wildcard - characters in a tree object. - - I lost track of this topic; did we decide that this is a good thing - to do, or unnecessary noise to only cater to a crazy use case? - - -* nd/exclusion-regression-fix (2016-02-15) 4 commits - - dir.c: don't exclude whole dir prematurely - - dir.c: support marking some patterns already matched - - dir.c: support tracing exclude - - dir.c: fix match_pathname() - - Another try to add support to the ignore mechanism that lets you - say "this is excluded" and then later say "oh, no, this part (that - is a subset of the previous part) is not exlucded". - - Will merge to 'next'. - - -* nd/worktree-add-B (2016-02-15) 2 commits - - worktree add -B: do the checkout test before update branch - - worktree: fix "add -B" - - "git worktree add -B " did not work. - - Will merge to 'next'. - - -* ps/config-error (2016-02-17) 16 commits - - SQUASH - - config: rename git_config_set_or_die to git_config_set - - config: rename git_config_set to git_config_set_gently - - compat: die when unable to set core.precomposeunicode - - sequencer: die on config error when saving replay opts - - init-db: die on config errors when initializing empty repo - - clone: die on config error in cmd_clone - - remote: die on config error when manipulating remotes - - remote: die on config error when setting/adding branches - - remote: die on config error when setting URL - - submodule--helper: die on config error when cloning module - - submodule: die on config error when linking modules - - branch: die on config error when editing branch description - - branch: die on config error when unsetting upstream - - branch: report errors in tracking branch setup - - config: introduce set_or_die wrappers - - Many codepaths forget to check return value from git_config_set(); - the function is made to die() to make sure we do not proceed when - setting a configuration variable failed. - - Need to squash the tip two commits into one before moving forward. - - -* ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit - - wt-status.c: set commitable bit if there is a meaningful merge. - - "git commit --dry-run" reported "No, no, you cannot commit." in one - case where "git commit" would have allowed you to commit, and this - improves it a little bit ("git commit --dry-run --short" still does - not give you the correct answer, for example). - - -* tg/git-remote (2016-02-16) 4 commits - - remote: use remote_is_configured() for add and rename - - remote: actually check if remote exits - - remote: simplify remote_is_configured() - - remote: use parse_config_key - - The internal API to interact with "remote.*" configuration - variables has been streamlined. - - Will merge to 'next'. - - -* ls/config-origin (2016-02-17) 3 commits - - config: add '--show-origin' option to print the origin of a config value - - config: add 'type' to config_source struct that identifies config type - - t: do not hide Git's exit code in tests using 'nul_to_q' - -------------------------------------------------- [Stalled] @@ -431,57 +193,238 @@ repositories listed at -------------------------------------------------- [Cooking] -* ep/format-printf (2016-02-11) 22 commits - - wt-status.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - utf8.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - transport-helper.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - trace.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - strbuf.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - remote.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - pkt-line.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - merge-recursive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - imap-send.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - http-backend.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - fsck.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - daemon.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - config.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - color.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - cache.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - builtin/upload-archive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - builtin/update-index.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - builtin/receive-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - builtin/index-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - argv-array.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - advice.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' - - git-compat-util.h: add the FORMAT_PRINTF macro +* cn/deprecate-ssh-git-url (2016-02-15) 1 commit + - Disown ssh+git and git+ssh - Undecided. + Needs toning down by replacing the condescendence with an + explanation and enlightenment. + ($gmane/286222) -* ew/force-ipv4 (2016-02-12) 1 commit - - connect & http: support -4 and -6 switches for remote operations +* nd/git-common-dir-fix (2016-02-12) 1 commit + (merged to 'next' on 2016-02-18 at 957afc5) + + rev-parse: take prefix into account in --git-common-dir - "git fetch" and friends that make network connections can now be - told to only use ipv4 (or ipv6). + "git rev-parse --git-common-dir" used in the worktree feature + misbehaved when run from a subdirectory. + + Will merge to 'master'. + + +* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit + (merged to 'next' on 2016-02-18 at 1339fe4) + + remote-curl: include curl_errorstr on SSL setup failures + + Help those who debug http(s) part of the system. + + Will merge to 'master'. + + +* bc/http-empty-auth (2016-02-15) 1 commit + (merged to 'next' on 2016-02-18 at 6d2fc88) + + http: add option to try authentication without username + + Some authentication methods do not need username or password, but + libcurl needs some hint that it needs to perform authentication. + Supplying an empty username and password string is a valid way to + do so, but you can set the http.[.]emptyAuth configuration + variable to achieve the same, if you find it cleaner. + + Will merge to 'master'. + + +* ce/https-public-key-pinning (2016-02-15) 1 commit + (merged to 'next' on 2016-02-18 at f382cf0) + + http: implement public key pinning + + You can now set http.[.]pinnedpubkey to specify the pinned + public key when building with recent enough versions of libcURL. + + Will merge to 'master'. + + +* fa/merge-recursive-no-rename (2016-02-22) 4 commits + - merge-recursive: find-renames resets threshold + - merge-strategies.txt: fix typo + (merged to 'next' on 2016-02-18 at dd6125b) + + merge-recursive: more consistent interface + + merge-recursive: option to disable renames + + "git merge-recursive" learned "--no-renames" option to disable its + rename detection logic. + + +* jc/am-i-v-fix (2016-02-17) 3 commits + (merged to 'next' on 2016-02-18 at 331e518) + + am -i: fix "v"iew + + pager: factor out a helper to prepare a child process to run the pager + + pager: lose a separate argv[] + + The "v(iew)" subcommand of the interactive "git am -i" command was + broken in 2.6.0 timeframe when the command was rewritten in C. + + Will merge to 'master'. + + +* jk/merge-tree-merge-blobs (2016-02-16) 1 commit + - merge_blobs: use strbuf instead of manually-sized mmfile_t + + "git merge-tree" (a throw-away demonstration) did not work very + well when merging "both sides added a new file at the same path" + case. + + Undecided; we might be better off deleting it altogether. + + +* jk/tighten-alloc (2016-02-19) 21 commits + - ewah: convert to REALLOC_ARRAY, etc + - convert ewah/bitmap code to use xmalloc + - diff_populate_gitlink: use a strbuf + - transport_anonymize_url: use xstrfmt + - git-compat-util: drop mempcpy compat code + - sequencer: simplify memory allocation of get_message + - test-path-utils: fix normalize_path_copy output buffer size + - fetch-pack: simplify add_sought_entry + - fast-import: simplify allocation in start_packfile + - write_untracked_extension: use FLEX_ALLOC helper + - prepare_{git,shell}_cmd: use argv_array + - use st_add and st_mult for allocation size computation + - convert trivial cases to FLEX_ARRAY macros + - use xmallocz to avoid size arithmetic + - convert trivial cases to ALLOC_ARRAY + - convert manual allocations to argv_array + - add helpers for allocating flex-array structs + - harden REALLOC_ARRAY and xcalloc against size_t overflow + - tree-diff: catch integer overflow in combine_diff_path allocation + - add helpers for detecting size_t overflow + - reflog_expire_cfg: NUL-terminate pattern field + + Update various codepaths to avoid manually-counted malloc(). + + +* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits + (merged to 'next' on 2016-02-18 at fc7caf4) + + get_sha1: don't die() on bogus search strings + + check_filename: tighten dwim-wildcard ambiguity + + checkout: reorder check_filename conditional + + "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a + rev, i.e. the object named by the the pathname with wildcard + characters in a tree object. + + Will merge to 'master'. + + +* nd/exclusion-regression-fix (2016-02-15) 4 commits + (merged to 'next' on 2016-02-18 at 85412ab) + + dir.c: don't exclude whole dir prematurely + + dir.c: support marking some patterns already matched + + dir.c: support tracing exclude + + dir.c: fix match_pathname() + + Another try to add support to the ignore mechanism that lets you + say "this is excluded" and then later say "oh, no, this part (that + is a subset of the previous part) is not excluded". + + Will merge to 'master'. + + +* nd/worktree-add-B (2016-02-15) 2 commits + (merged to 'next' on 2016-02-18 at bf77016) + + worktree add -B: do the checkout test before update branch + + worktree: fix "add -B" + + "git worktree add -B " did not work. + + Will merge to 'master'. + + +* ps/config-error (2016-02-22) 15 commits + - config: rename git_config_set_or_die to git_config_set + - config: rename git_config_set to git_config_set_gently + - compat: die when unable to set core.precomposeunicode + - sequencer: die on config error when saving replay opts + - init-db: die on config errors when initializing empty repo + - clone: die on config error in cmd_clone + - remote: die on config error when manipulating remotes + - remote: die on config error when setting/adding branches + - remote: die on config error when setting URL + - submodule--helper: die on config error when cloning module + - submodule: die on config error when linking modules + - branch: die on config error when editing branch description + - branch: die on config error when unsetting upstream + - branch: report errors in tracking branch setup + - config: introduce set_or_die wrappers + + Many codepaths forget to check return value from git_config_set(); + the function is made to die() to make sure we do not proceed when + setting a configuration variable failed. Will merge to 'next'. +* ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit + - wt-status.c: set commitable bit if there is a meaningful merge. + + "git commit --dry-run" reported "No, no, you cannot commit." in one + case where "git commit" would have allowed you to commit, and this + improves it a little bit ("git commit --dry-run --short" still does + not give you the correct answer, for example). + + +* tg/git-remote (2016-02-16) 4 commits + (merged to 'next' on 2016-02-18 at 091d43e) + + remote: use remote_is_configured() for add and rename + + remote: actually check if remote exits + + remote: simplify remote_is_configured() + + remote: use parse_config_key + + The internal API to interact with "remote.*" configuration + variables has been streamlined. + + Will merge to 'master'. + + +* ls/config-origin (2016-02-22) 4 commits + - config: add '--show-origin' option to print the origin of a config value + - config: add 'origin_type' to config_source struct + - rename git_config_from_buf to git_config_from_mem + - t: do not hide Git's exit code in tests using 'nul_to_q' + + The configuration system has been taught to phrase where it found a + bad configuration variable in a better way in its error messages. + "git config" learnt a new "--show-origin" option to indicate where + the values come from. + + Will merge to 'next'. + + +* ew/force-ipv4 (2016-02-12) 1 commit + (merged to 'next' on 2016-02-18 at d0211b0) + + connect & http: support -4 and -6 switches for remote operations + + "git fetch" and friends that make network connections can now be + told to only use ipv4 (or ipv6). + + Will merge to 'master'. + + * jk/lose-name-path (2016-02-12) 5 commits - - list-objects: pass full pathname to callbacks - - list-objects: drop name_path entirely - - list-objects: convert name_path to a strbuf - - show_object_with_name: simplify by using path_name() - - http-push: stop using name_path + (merged to 'next' on 2016-02-18 at 85831a6) + + list-objects: pass full pathname to callbacks + + list-objects: drop name_path entirely + + list-objects: convert name_path to a strbuf + + show_object_with_name: simplify by using path_name() + + http-push: stop using name_path The "name_path" API was an attempt to reduce the need to construct the full path out of a series of path components while walking a tree hierarchy, but over time made less efficient because the path needs to be flattened, e.g. to be compared with another path that - is already flat. Remove the API and rewrite its users to simplify - overall code complexity. + is already flat. The API has been removed and its users have been + rewritten to simplify the overall code complexity. - Will merge to 'next'. + Will merge to 'master'. * nd/icase (2016-02-15) 12 commits @@ -500,10 +443,12 @@ repositories listed at "git grep -i" has been taught to fold case in non-ascii locales. + Comments? ($gmane/286137) -* tb/conversion (2016-02-10) 6 commits +* tb/conversion (2016-02-21) 7 commits + - convert.c: correct attr_action() (merged to 'next' on 2016-02-12 at 6faf27b) + convert.c: simplify text_stat + convert.c: refactor crlf_action @@ -512,11 +457,8 @@ repositories listed at + convert.c: remove unused parameter 'path' + t0027: add tests for get_stream_filter() - Will be rerolled. - ($gmane/286219) - -* sb/submodule-parallel-update (2016-02-13) 7 commits +* sb/submodule-parallel-update (2016-02-19) 7 commits - clone: allow an explicit argument for parallel submodule clones - submodule update: expose parallelism to the user - git submodule update: have a dedicated helper for cloning @@ -530,58 +472,62 @@ repositories listed at advantage of the recently added framework to run download tasks in parallel. - Comments? - -* dt/refs-backend-lmdb (2016-02-13) 22 commits +* dt/refs-backend-lmdb (2016-02-19) 28 commits + - tests: add ref-storage argument - refs: tests for lmdb backend - refs: add LMDB refs storage backend - refs: add register_ref_storage_backends() - svn: learn ref-storage argument - clone: allow ref storage backend to be set for clone - - refs: check submodules ref storage config + - refs: check submodules' ref storage config - init: allow alternate ref strorage to be set for new repos - refs: always handle non-normal refs in files backend - refs: resolve symbolic refs first + - refs: on symref reflog expire, lock symref not referrent + - refs: don't dereference on rename - refs: allow log-only updates - refs: move duplicate check to common code - refs: make lock generic + - refs: forbid cross-backend ref renames - refs: add method to rename refs - refs: add methods to init refs db - refs: add method for delete_refs - refs: add method for initial ref transaction commit - refs: add methods for reflog - refs: add do_for_each_per_worktree_ref - - refs: add methods for the ref iterators + - refs: add method for do_for_each_ref - refs: add methods for misc ref operations - refs: add a backend method structure with transaction functions + - refs: move for_each_*ref* functions into common code + - refs: move head_ref{,_submodule} to the common code - Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb (this branch uses sb/submodule-parallel-update; is tangled with sb/submodule-init.) Building on top of a few refs-backend preparatory series, LMDB based refs backend has been plugged into the system. - Will be rerolled. - ($gmane/285604) + ($gmane/286572) * kn/ref-filter-atom-parsing (2016-02-17) 11 commits - - ref-filter: introduce objectname_atom_parser() - - ref-filter: introduce contents_atom_parser() - - ref-filter: introduce remote_ref_atom_parser() - - ref-filter: align: introduce long-form syntax - - ref-filter: introduce align_atom_parser() - - ref-filter: introduce parse_align_position() - - ref-filter: introduce color_atom_parser() - - ref-filter: introduce parsing functions for each valid atom - - ref-filter: introduce struct used_atom - - ref-filter: bump 'used_atom' and related code to the top - - ref-filter: use string_list_split over strbuf_split + (merged to 'next' on 2016-02-18 at 9606218) + + ref-filter: introduce objectname_atom_parser() + + ref-filter: introduce contents_atom_parser() + + ref-filter: introduce remote_ref_atom_parser() + + ref-filter: align: introduce long-form syntax + + ref-filter: introduce align_atom_parser() + + ref-filter: introduce parse_align_position() + + ref-filter: introduce color_atom_parser() + + ref-filter: introduce parsing functions for each valid atom + + ref-filter: introduce struct used_atom + + ref-filter: bump 'used_atom' and related code to the top + + ref-filter: use string_list_split over strbuf_split - Refactoring of ref-filter's format-parsing code, in preparation - for "branch --format" and friends. + The ref-filter's format-parsing code has been refactored, in + preparation for "branch --format" and friends. - Will merge to 'next'. + Will merge to 'master'. * ad/cygwin-wants-rename (2015-08-07) 1 commit @@ -624,3 +570,38 @@ repositories listed at bc/http-empty-auth satisfies the original need that triggered this topic better. + + +* ep/format-printf (2016-02-11) 22 commits + . wt-status.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . utf8.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . transport-helper.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . trace.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . strbuf.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . remote.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . pkt-line.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . merge-recursive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . imap-send.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . http-backend.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . fsck.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . daemon.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . config.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . color.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . cache.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . builtin/upload-archive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . builtin/update-index.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . builtin/receive-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . builtin/index-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . argv-array.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . advice.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf' + . git-compat-util.h: add the FORMAT_PRINTF macro + + Replace __attribute__((format(printf, a, b))) with + FORMAT_PRINTF(a,b) everywhere in the code. + + It would be a different story if another compiler had the same + feature implemented using a different syntax, in which case we + could use conditionally #define what FORMAT_PRINTF(a,b) expands to, + but because we do not have such a compiler supported, this change + is a net negative, churning the code without buying us anything + (yet).