]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2016/02 #06)
authorJunio C Hamano <gitster@pobox.com>
Mon, 22 Feb 2016 22:16:55 +0000 (14:16 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Feb 2016 22:16:55 +0000 (14:16 -0800)
whats-cooking.txt

index 73cfa3675c50e9a471c3fd7e62d8f154688f3987..c8078b8197ac612c94a549598555bd83771e44c2 100644 (file)
@@ -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 "<file> <rev>" 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.[<url>.]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.[<url>.]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 <branchname>" 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 "<file> <rev>" 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).