From: Junio C Hamano Date: Mon, 22 Feb 2016 22:16:55 +0000 (-0800) Subject: What's cooking (2016/02 #06) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b3eedf30c30a73e65bdaacd451aae7cb6e2562d;p=thirdparty%2Fgit.git What's cooking (2016/02 #06) --- 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,129 +25,174 @@ 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" - - -* 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 +* 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. + + +* 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` + + A belated documentation update clarifies the interaction between + "--file", "--include" and "[include] path = $over_there". + - 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. - - -* 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 - - 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'. +* 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 + + A missing test for a rather old change has been added. -------------------------------------------------- [New Topics] +* 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.) + + +* 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'. + + +* 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'. + + +* 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 + + 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'. + +-------------------------------------------------- +[Stalled] + +* ec/annotate-deleted (2015-11-20) 1 commit + - annotate: skip checking working tree if a revision is provided + + Usability fix for annotate-specific " " syntax with deleted + files. + + Waiting for review. + + +* dg/subtree-rebase-test (2016-01-19) 1 commit + - contrib/subtree: Add a test for subtree rebase that loses commits + + Reviewed up to v5. + Will be rerolled. + ($gmane/284426) + + +* js/am-3-merge-recursive-direct (2015-10-12) 2 commits + - am: make a direct call to merge_recursive + - merge_recursive_options: introduce the "gently" flag + + The merge_recursive_generic() function has been made a bit safer to + call from inside a process. "git am -3" was taught to make a direct + call to the function when falling back to three-way merge. + + Being able to make a direct call would be good in general, but as a + performance thing, the change needs to be backed up by numbers. + + Needs review. + + I haven't gone through the "gently" change with fine toothed comb; + I can see that the change avoids calling die(), but I haven't made + sure that the program states (e.g. what's in the in-core index) are + adjusted sensibly when it returns to the caller instead of dying, + or the codepaths that used to die() are free of resource leaks. + The original code certainly did not care the program states at the + point of dying exactly because it knew it is going to exit, but now + they have to care, and they need to be audited. + + +* dk/gc-more-wo-pack (2016-01-13) 4 commits + - gc: clean garbage .bitmap files from pack dir + - t5304: ensure non-garbage files are not deleted + - t5304: test .bitmap garbage files + - prepare_packed_git(): find more garbage + + Follow-on to dk/gc-idx-wo-pack topic, to clean up stale + .bitmap and .keep files. + + Waiting for a reroll. + ($gmane/284368). + + +* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits + - t/lib-git-svn: check same httpd module dirs as lib-httpd + - t/lib-httpd: load mod_unixd + + This is the first two commits in a three-patch series $gmane/266962 + + Becoming tired of waiting for a reroll. + with updated log message ($gmane/268061). + Will discard. + + +* jc/diff-b-m (2015-02-23) 5 commits + . WIPWIP + . WIP: diff-b-m + - diffcore-rename: allow easier debugging + - diffcore-rename.c: add locate_rename_src() + - diffcore-break: allow debugging + + "git diff -B -M" produced incorrect patch when the postimage of a + completely rewritten file is similar to the preimage of a removed + file; such a resulting file must not be expressed as a rename from + other place. + + The fix in this patch is broken, unfortunately. + Will discard. + +-------------------------------------------------- +[Cooking] + * cn/deprecate-ssh-git-url (2016-02-15) 1 commit - Disown ssh+git and git+ssh @@ -151,28 +201,28 @@ repositories listed at ($gmane/286222) -* jk/config-include (2016-02-13) 1 commit - - git-config: better document default behavior for `--include` - - Will merge to 'next'. - - * nd/git-common-dir-fix (2016-02-12) 1 commit - - rev-parse: take prefix into account in --git-common-dir + (merged to 'next' on 2016-02-18 at 957afc5) + + rev-parse: take prefix into account in --git-common-dir - Will merge to 'next'. + "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 - - remote-curl: include curl_errorstr on SSL setup failures + (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 'next'. + Will merge to 'master'. * bc/http-empty-auth (2016-02-15) 1 commit - - http: add option to try authentication without username + (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. @@ -180,43 +230,40 @@ repositories listed at do so, but you can set the http.[.]emptyAuth configuration variable to achieve the same, if you find it cleaner. - Will merge to 'next'. + Will merge to 'master'. * ce/https-public-key-pinning (2016-02-15) 1 commit - - http: implement public key pinning + (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 'next'. - - -* ew/connect-verbose (2016-02-15) 1 commit - - t5570: add tests for "git {clone,fetch,pull} -v" - - Will merge to 'next'. + Will merge to 'master'. -* fa/merge-recursive-no-rename (2016-02-17) 2 commits - - merge-recursive: more consistent interface - - merge-recursive: option to disable renames +* 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. - 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[] + (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 'next'. + Will merge to 'master'. * jk/merge-tree-merge-blobs (2016-02-16) 1 commit @@ -229,7 +276,7 @@ repositories listed at Undecided; we might be better off deleting it altogether. -* jk/tighten-alloc (2016-02-15) 18 commits +* 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 @@ -240,63 +287,59 @@ repositories listed at - 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(). - 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 + (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. - 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? + Will merge to 'master'. * 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() + (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 exlucded". + is a subset of the previous part) is not excluded". - Will merge to 'next'. + Will merge to 'master'. * nd/worktree-add-B (2016-02-15) 2 commits - - worktree add -B: do the checkout test before update branch - - worktree: fix "add -B" + (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 'next'. + Will merge to 'master'. -* ps/config-error (2016-02-17) 16 commits - - SQUASH +* 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 @@ -317,7 +360,7 @@ repositories listed at 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. + Will merge to 'next'. * ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit @@ -330,158 +373,58 @@ repositories listed at * 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 + (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 'next'. + Will merge to 'master'. -* ls/config-origin (2016-02-17) 3 commits +* ls/config-origin (2016-02-22) 4 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 + - 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' --------------------------------------------------- -[Stalled] - -* ec/annotate-deleted (2015-11-20) 1 commit - - annotate: skip checking working tree if a revision is provided - - Usability fix for annotate-specific " " syntax with deleted - files. - - Waiting for review. - - -* dg/subtree-rebase-test (2016-01-19) 1 commit - - contrib/subtree: Add a test for subtree rebase that loses commits - - Reviewed up to v5. - Will be rerolled. - ($gmane/284426) - - -* js/am-3-merge-recursive-direct (2015-10-12) 2 commits - - am: make a direct call to merge_recursive - - merge_recursive_options: introduce the "gently" flag - - The merge_recursive_generic() function has been made a bit safer to - call from inside a process. "git am -3" was taught to make a direct - call to the function when falling back to three-way merge. - - Being able to make a direct call would be good in general, but as a - performance thing, the change needs to be backed up by numbers. - - Needs review. - - I haven't gone through the "gently" change with fine toothed comb; - I can see that the change avoids calling die(), but I haven't made - sure that the program states (e.g. what's in the in-core index) are - adjusted sensibly when it returns to the caller instead of dying, - or the codepaths that used to die() are free of resource leaks. - The original code certainly did not care the program states at the - point of dying exactly because it knew it is going to exit, but now - they have to care, and they need to be audited. - - -* dk/gc-more-wo-pack (2016-01-13) 4 commits - - gc: clean garbage .bitmap files from pack dir - - t5304: ensure non-garbage files are not deleted - - t5304: test .bitmap garbage files - - prepare_packed_git(): find more garbage - - Follow-on to dk/gc-idx-wo-pack topic, to clean up stale - .bitmap and .keep files. - - Waiting for a reroll. - ($gmane/284368). - - -* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits - - t/lib-git-svn: check same httpd module dirs as lib-httpd - - t/lib-httpd: load mod_unixd - - This is the first two commits in a three-patch series $gmane/266962 - - Becoming tired of waiting for a reroll. - with updated log message ($gmane/268061). - Will discard. - - -* jc/diff-b-m (2015-02-23) 5 commits - . WIPWIP - . WIP: diff-b-m - - diffcore-rename: allow easier debugging - - diffcore-rename.c: add locate_rename_src() - - diffcore-break: allow debugging - - "git diff -B -M" produced incorrect patch when the postimage of a - completely rewritten file is similar to the preimage of a removed - file; such a resulting file must not be expressed as a rename from - other place. - - The fix in this patch is broken, unfortunately. - Will discard. - --------------------------------------------------- -[Cooking] + 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. -* 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 - - Undecided. + Will merge to 'next'. * ew/force-ipv4 (2016-02-12) 1 commit - - connect & http: support -4 and -6 switches for remote operations + (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 'next'. + 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 - - Refactoring of ref-filter's format-parsing code, in preparation - for "branch --format" and friends. + (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 - Will merge to 'next'. + The ref-filter's format-parsing code has been refactored, in + preparation for "branch --format" and friends. + + 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).