]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2017/04 #02)
authorJunio C Hamano <gitster@pobox.com>
Mon, 17 Apr 2017 07:27:30 +0000 (00:27 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 17 Apr 2017 07:27:30 +0000 (00:27 -0700)
whats-cooking.txt

index 769bbfe2c8902df9c010f58ade39f2850abaaaef..ce8f35e9ea8616abe7b218995eae30d142cc77a7 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Apr 2017, #01; Tue, 11)
-X-master-at: cf11a67975b057a144618badf16dc4e3d25b9407
-X-next-at: 0e3151a226817c3c07c4878b88a23b0a10c959ef
+Subject: What's cooking in git.git (Apr 2017, #02; Sun, 16)
+X-master-at: 584f8975d2d9530a34bd0b936ae774f82fe30fed
+X-next-at: 2cccc8116438182c988c7f26d9559a1c22e78f1c
 
-What's cooking in git.git (Apr 2017, #01; Tue, 11)
+What's cooking in git.git (Apr 2017, #02; Sun, 16)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -12,12 +12,6 @@ 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.
 
-The maintainer has been offline for a week or so and is still
-expected to be working at a slower pace than usual for the rest of
-the week.  No new topics has been queued, but the ones already in
-the tree have advanced, some graduated to 'master' and others
-joining 'next'.
-
 You can find the changes described here in the integration branches
 of the repositories listed at
 
@@ -26,370 +20,375 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* ab/case-insensitive-upstream-and-push-marker (2017-03-27) 1 commit
-  (merged to 'next' on 2017-03-28 at 166654719e)
- + rev-parse: match @{upstream}, @{u} and @{push} case-insensitively
+* ab/regen-perl-mak-with-different-perl (2017-03-29) 1 commit
+  (merged to 'next' on 2017-04-11 at 706b224f1e)
+ + perl: regenerate perl.mak if perl -V changes
 
- On many keyboards, typing "@{" involves holding down SHIFT key and
- one can easily end up with "@{Up..." when typing "@{upstream}".  As
- the upstream/push keywords do not appear anywhere else in the syntax,
- we can safely accept them case insensitively without introducing
- ambiguity or confusion  to solve this.
+ Update the build dependency so that an update to /usr/bin/perl
+ etc. result in recomputation of perl.mak file.
 
 
-* ab/doc-submitting (2017-03-26) 2 commits
-  (merged to 'next' on 2017-03-28 at 49e23678df)
- + doc/SubmittingPatches: show how to get a CLI commit summary
- + doc/SubmittingPatches: clarify the casing convention for "area: change..."
+* jc/bs-t-is-not-a-tab-for-sed (2017-03-31) 1 commit
+  (merged to 'next' on 2017-04-11 at 5573b2c49b)
+ + contrib/git-resurrect.sh: do not write \t for HT in sed scripts
 
Doc update.
Code cleanup.
 
 
-* ab/ref-filter-no-contains (2017-03-24) 16 commits
-  (merged to 'next' on 2017-03-28 at bdce986928)
- + tag: add tests for --with and --without
- + ref-filter: reflow recently changed branch/tag/for-each-ref docs
- + ref-filter: add --no-contains option to tag/branch/for-each-ref
- + tag: change --point-at to default to HEAD
- + tag: implicitly supply --list given another list-like option
- + tag: change misleading --list <pattern> documentation
- + parse-options: add OPT_NONEG to the "contains" option
- + tag: add more incompatibles mode tests
- + for-each-ref: partly change <object> to <commit> in help
- + tag tests: fix a typo in a test description
- + tag: remove a TODO item from the test suite
- + ref-filter: add test for --contains on a non-commit
- + ref-filter: make combining --merged & --no-merged an error
- + tag doc: reword --[no-]merged to talk about commits, not tips
- + tag doc: split up the --[no-]merged documentation
- + tag doc: move the description of --[no-]merged earlier
-
- "git tag/branch/for-each-ref" family of commands long allowed to
- filter the refs by "--contains X" (show only the refs that are
- descendants of X), "--merged X" (show only the refs that are
- ancestors of X), "--no-merged X" (show only the refs that are not
- ancestors of X).  One curious omission, "--no-contains X" (show
- only the refs that are not descendants of X) has been added to
- them.
-
-
-* ab/test-readme-updates (2017-03-26) 3 commits
-  (merged to 'next' on 2017-03-28 at abdc7b3b15)
- + t/README: clarify the test_have_prereq documentation
- + t/README: change "Inside <X> part" to "Inside the <X> part"
- + t/README: link to metacpan.org, not search.cpan.org
-
- Doc updates.
-
-
-* ah/log-decorate-default-to-auto (2017-03-24) 1 commit
-  (merged to 'next' on 2017-03-24 at ce353ebfb5)
- + log: if --decorate is not given, default to --decorate=auto
-
- The default behaviour of "git log" in an interactive session has
- been changed to enable "--decorate".
-
-
-* bc/push-cert-receive-fix (2017-03-28) 1 commit
-  (merged to 'next' on 2017-03-30 at 4f49b383e2)
- + builtin/receive-pack: fix incorrect pointer arithmetic
-
- "git receive-pack" could have been forced to die by attempting
- allocate an unreasonably large amount of memory with a crafted push
- certificate; this has been fixed.
-
-
-* bw/recurse-submodules-relative-fix (2017-03-17) 5 commits
-  (merged to 'next' on 2017-03-28 at d0cef6234e)
- + ls-files: fix bug when recursing with relative pathspec
- + ls-files: fix typo in variable name
- + grep: fix bug when recursing with relative pathspec
- + setup: allow for prefix to be passed to git commands
- + grep: fix help text typo
-
- A few commands that recently learned the "--recurse-submodule"
- option misbehaved when started from a subdirectory of the
- superproject.
-
-
-* bw/submodule-is-active (2017-03-18) 10 commits
-  (merged to 'next' on 2017-03-22 at 4c05cb5ab4)
- + submodule add: respect submodule.active and submodule.<name>.active
- + submodule--helper init: set submodule.<name>.active
- + clone: teach --recurse-submodules to optionally take a pathspec
- + submodule init: initialize active submodules
- + submodule: decouple url and submodule interest
- + submodule--helper clone: check for configured submodules using helper
- + submodule sync: use submodule--helper is-active
- + submodule sync: skip work for inactive submodules
- + submodule status: use submodule--helper is-active
- + submodule--helper: add is-active subcommand
-
- "what URL do we want to update this submodule?" and "are we
- interested in this submodule?" are split into two distinct
- concepts, and then the way used to express the latter got extended,
- paving a way to make it easier to manage a project with many
- submodules and make it possible to later extend use of multiple
- worktrees for a project with submodules.
-
-
-* cc/untracked (2017-03-30) 1 commit
-  (merged to 'next' on 2017-03-30 at 0b20d47950)
- + update-index: fix xgetcwd() related memory leak
+* jc/unused-symbols (2017-03-31) 1 commit
+  (merged to 'next' on 2017-04-11 at 750a6d9e97)
+ + remote.[ch]: parse_push_cas_option() can be static
 
  Code cleanup.
 
 
-* jc/merge-drop-old-syntax (2015-04-29) 1 commit
-  (merged to 'next' on 2017-02-27 at 2c0f5f73d8)
- + merge: drop 'git merge <message> HEAD <commit>' syntax
+* jk/loose-object-info-report-error (2017-04-01) 2 commits
+  (merged to 'next' on 2017-04-11 at 3a33761d94)
+ + index-pack: detect local corruption in collision check
+ + sha1_loose_object_info: return error for corrupted objects
 
- Stop supporting "git merge <message> HEAD <commit>" syntax that has
- been deprecated since October 2007, and issues a deprecation
- warning message since v2.5.0.
+ Update error handling for codepath that deals with corrupt loose
+ objects.
 
 
-* jk/make-coccicheck-detect-errors (2017-03-29) 1 commit
-  (merged to 'next' on 2017-03-30 at 34d4fe70dc)
- + Makefile: detect errors in running spatch
+* jk/snprintf-cleanups (2017-03-30) 18 commits
+  (merged to 'next' on 2017-04-11 at 42ac56e886)
+ + daemon: use an argv_array to exec children
+ + gc: replace local buffer with git_path
+ + transport-helper: replace checked snprintf with xsnprintf
+ + convert unchecked snprintf into xsnprintf
+ + combine-diff: replace malloc/snprintf with xstrfmt
+ + replace unchecked snprintf calls with heap buffers
+ + receive-pack: print --pack-header directly into argv array
+ + name-rev: replace static buffer with strbuf
+ + create_branch: use xstrfmt for reflog message
+ + create_branch: move msg setup closer to point of use
+ + avoid using mksnpath for refs
+ + avoid using fixed PATH_MAX buffers for refs
+ + fetch: use heap buffer to format reflog
+ + tag: use strbuf to format tag header
+ + diff: avoid fixed-size buffer for patch-ids
+ + odb_mkstemp: use git_path_buf
+ + odb_mkstemp: write filename into strbuf
+ + do not check odb_mkstemp return value for errors
 
Build fix.
Code clean-up.
 
 
-* jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit
-  (merged to 'next' on 2017-02-27 at 7373a1b73d)
- + setup_git_env: avoid blind fall-back to ".git"
+* js/difftool-builtin (2017-04-13) 2 commits
+  (merged to 'next' on 2017-04-15 at 0040a91b86)
+ + difftool: fix use-after-free
+  (merged to 'next' on 2017-04-11 at 38df92441f)
+ + difftool: avoid strcpy
 
- This is the endgame of the topic to avoid blindly falling back to
- ".git" when the setup sequence said we are _not_ in Git repository.
- A corner case that happens to work right now may be broken by a
- call to die("BUG").
+ Code cleanup.
 
 
-* js/rebase-i-reword-to-run-hooks (2017-03-27) 3 commits
-  (merged to 'next' on 2017-03-28 at d23d60f63d)
- + sequencer: allow the commit-msg hooks to run during a `reword`
- + sequencer: make commit options more extensible
- + t7504: document regression: reword no longer calls commit-msg
+* mm/ls-files-s-doc (2017-04-01) 1 commit
+  (merged to 'next' on 2017-04-11 at 7e55625b1e)
+ + Documentation: document elements in "ls-files -s" output in order
 
- A recent update to "rebase -i" stopped running hooks for the "git
- commit" command during "reword" action, which has been fixed.
+ Doc update.
 
 
-* ls/travis-relays-for-windows-ci (2017-03-28) 1 commit
- - travis-ci: build and test Git on Windows
+* qp/bisect-docfix (2017-04-01) 1 commit
+  (merged to 'next' on 2017-04-11 at 9c20eba240)
+ + git-bisect.txt: add missing word
 
- Define a new task in .travis.yml that triggers a test session on
- Windows run elsewhere.
+ Doc update.
 
 
-* mg/describe-debug-l10n (2017-03-27) 2 commits
-  (merged to 'next' on 2017-03-28 at 16ad604828)
- + l10n: de: translate describe debug terms
- + describe: localize debug output fully
- (this branch is used by mg/name-rev-debug.)
+* sb/show-diff-for-submodule-in-diff-fix (2017-04-02) 1 commit
+  (merged to 'next' on 2017-04-11 at 8d16ef369e)
+ + diff: submodule inline diff to initialize env array.
 
- Some debugging output from "git describe" were marked for l10n,
but some weren't.  Mark missing ones for l10n.
+ "git diff --submodule=diff" learned to work better in a project
with a submodule that in turn has its own submodules.
 
 
-* mh/notes-tree-consolidate-fix (2017-03-27) 1 commit
-  (merged to 'next' on 2017-03-30 at 8383c6c088)
- + notes: do not break note_tree structure in note_tree_consolidate()
+* sb/unpack-trees-would-lose-submodule-message-update (2017-03-29) 1 commit
+  (merged to 'next' on 2017-04-11 at 61d8ce8218)
+ + unpack-trees.c: align submodule error message to the other error messages
 
- Removing an entry from a notes tree and then looking another note
- entry from the resulting tree using the internal notes API
- functions did not work as expected.  No in-tree users of the API
- has such access pattern, but it still is worth fixing.
+ Update an error message.
 
+--------------------------------------------------
+[New Topics]
 
-* rs/freebsd-getcwd-workaround (2017-03-26) 1 commit
-  (merged to 'next' on 2017-03-28 at 3f3c1553a7)
- + strbuf: support long paths w/o read rights in strbuf_getcwd() on FreeBSD
+* ah/diff-files-ours-theirs-doc (2017-04-13) 1 commit
+ - diff-files: document --ours etc.
 
- FreeBSD implementation of getcwd(3) behaved differently when an
- intermediate directory is unreadable/unsearchable depending on the
- length of the buffer provided, which our strbuf_getcwd() was not
- aware of.  strbuf_getcwd() has been taught to cope with it better.
+ The diff options "--ours", "--theirs" exist for quite some time.
+ But so far they were not documented. Now they are.
 
+ Will merge to 'next'.
 
-* sg/completion-ctags (2017-03-23) 3 commits
-  (merged to 'next' on 2017-03-27 at cf8c081f7d)
- + completion: offer ctags symbol names for 'git log -S', '-G' and '-L:'
- + completion: extract completing ctags symbol names into helper function
- + completion: put matching ctags symbol names directly into COMPREPLY
- (this branch uses sg/completion-refs-speedup.)
 
- Command line completion updates.
+* dt/xgethostname-nul-termination (2017-04-13) 1 commit
+ - xgethostname: handle long hostnames
 
+ gethostname(2) may not NUL terminate the buffer if hostname does
+ not fit; unfortunately there is no easy way to see if our buffer
+ was too small, but at least this will make sure we will not end up
+ using garbage past the end of the buffer.
 
-* sg/completion-refs-speedup (2017-03-23) 14 commits
-  (merged to 'next' on 2017-03-27 at 6bb275710d)
- + completion: speed up branch and tag completion
- + completion: fill COMPREPLY directly when completing fetch refspecs
- + completion: fill COMPREPLY directly when completing refs
- + completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
- + completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
- + completion: let 'for-each-ref' strip the remote name from remote branches
- + completion: let 'for-each-ref' and 'ls-remote' filter matching refs
- + completion: don't disambiguate short refs
- + completion: don't disambiguate tags and branches
- + completion: support excluding full refs
- + completion: support completing fully qualified non-fast-forward refspecs
- + completion: support completing full refs after '--option=refs/<TAB>'
- + completion: wrap __git_refs() for better option parsing
- + completion: remove redundant __gitcomp_nl() options from _git_commit()
- (this branch is used by sg/completion-ctags.)
+ Will merge to 'next'.
 
- The refs completion for large number of refs has been sped up,
- partly by giving up disambiguating ambiguous refs and partly by
- eliminating most of the shell processing between 'git for-each-ref'
- and 'ls-remote' and Bash's completion facility.
 
---------------------------------------------------
-[New Topics]
+* jh/string-list-micro-optim (2017-04-15) 1 commit
+ - string-list: use ALLOC_GROW macro when reallocing string_list
 
-* sb/unpack-trees-would-lose-submodule-message-update (2017-03-29) 1 commit
-  (merged to 'next' on 2017-04-11 at 61d8ce8218)
- + unpack-trees.c: align submodule error message to the other error messages
+ The string-list API used a custom reallocation strategy that was
+ very inefficient, instead of using the usual ALLOC_GROW() macro,
+ which has been fixed.
 
Update an error message.
Will merge to 'next'.
 
- Will merge to 'master'.
 
+* jh/unpack-trees-micro-optim (2017-04-15) 1 commit
+ - unpack-trees: avoid duplicate ODB lookups during checkout
 
-* ab/regen-perl-mak-with-different-perl (2017-03-29) 1 commit
-  (merged to 'next' on 2017-04-11 at 706b224f1e)
- + perl: regenerate perl.mak if perl -V changes
+ In a 2- and 3-way merge of trees, more than one source trees often
+ end up sharing an identical subtree; optimize by not reading the
+ same tree multiple times in such a case.
 
- Update the build dependency so that an update to /usr/bin/perl
- etc. result in recomputation of perl.mak file.
+ Will merge to 'next'.
 
- Will merge to 'master'.
 
+* jh/verify-index-checksum-only-in-fsck (2017-04-15) 1 commit
+ - read-cache: force_verify_index_checksum
 
-* js/difftool-builtin (2017-03-30) 1 commit
-  (merged to 'next' on 2017-04-11 at 38df92441f)
- + difftool: avoid strcpy
+ The index file has a trailing SHA-1 checksum to detect file
+ corruption, and historically we checked it every time the index
+ file is used.  Omit the validation during normal use, and instead
+ verify only in "git fsck".
 
Code cleanup.
Will merge to 'next'.
 
- Will merge to 'master'.
 
+* jk/no-looking-at-dotgit-outside-repo (2017-04-16) 2 commits
+ - test-read-cache: setup git dir
+ - has_sha1_file: don't bother if we are not in a repository
 
-* dt/http-postbuffer-can-be-large (2017-03-31) 1 commit
- - http.postbuffer: allow full range of ssize_t values
+ Clean up fallouts from recent tightening of the set-up sequence,
+ where Git barfs when repository information is accessed without
+ first ensuring that it was started in a repository.
 
- Allow the http.postbuffer configuration variable to be set to a
- size that can be expressed in size_t, which can be larger than
- ulong on some platforms.
+ Will merge to 'next'.
+
+
+* ls/travis-doc-asciidoctor (2017-04-16) 3 commits
+ - travis-ci: unset compiler for jobs that do not need one
+ - travis-ci: parallelize documentation build
+ - travis-ci: build documentation with AsciiDoc and Asciidoctor
+
+ Have Travis CI format the documentation with both AsciiDoc and
+ AsciiDoctor.
 
  Will merge to 'next'.
 
 
-* jh/core-checksum-index (2017-03-30) 1 commit
- - read-cache: core.checksumindex
+* mg/status-in-progress-info (2017-04-14) 1 commit
+ - status: show in-progress info for short status
 
- Expecting a reroll.
- cf. <094f16d2-e1d9-1478-df6a-4f24f17e184e@jeffhostetler.com>
+ "git status" learns an option to report various operations
+ (e.g. "merging") that the user is in the middle of.
 
 
-* jc/unused-symbols (2017-03-31) 1 commit
-  (merged to 'next' on 2017-04-11 at 750a6d9e97)
- + remote.[ch]: parse_push_cas_option() can be static
+* nd/conditional-config-include (2017-04-14) 2 commits
+ - config: resolve symlinks in conditional include's patterns
+ - path.c: and an option to call real_path() in expand_user_path()
 
- Code cleanup.
+ $GIT_DIR may in some cases be normalized with all symlinks resolved
+ while "gitdir" path expansion in the pattern does not receive the
+ same treatment, leading to incorrect mismatch.  This has been fixed.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* jh/memihash-opt (2017-03-31) 1 commit
-  (merged to 'next' on 2017-04-11 at ec5a6f2818)
+ name-hash: fix buffer overrun
+* nd/worktree-add-lock (2017-04-16) 2 commits
+ - SQUASH???
- worktree add: add --lock option
 
- Hotfix for a topic that is already in 'master'.
+ Allow to lock a worktree immediately after it's created. This helps
+ prevent a race between "git worktree add; git worktree lock" and
+ "git worktree prune".
 
- Will merge to 'master'.
- This already has the fix for "sed '...\t'" squashed in.
+ Waiting for a response to SQUASH???
 
 
-* jk/loose-object-info-report-error (2017-04-01) 2 commits
-  (merged to 'next' on 2017-04-11 at 3a33761d94)
- + index-pack: detect local corruption in collision check
- + sha1_loose_object_info: return error for corrupted objects
+* ps/pathspec-empty-prefix-origin (2017-04-14) 1 commit
+ - pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix
 
- Update error handling for codepath that deals with corrupt loose
- objects.
 
- Will merge to 'master'.
+* sb/submodule-rm-absorb (2017-04-13) 1 commit
+ - submodule.c: add missing ' in error messages
 
+ Error message fix.
 
-* jc/bs-t-is-not-a-tab-for-sed (2017-03-31) 1 commit
-  (merged to 'next' on 2017-04-11 at 5573b2c49b)
- + contrib/git-resurrect.sh: do not write \t for HT in sed scripts
+ Will merge to 'next'.
+
+
+* sr/http-proxy-configuration-fix (2017-04-13) 2 commits
+ - http: fix the silent ignoring of proxy misconfiguraion
+ - http: honor empty http.proxy option to bypass proxy
+
+ "http.proxy" set to an empty string is used to disable the usage of
+ proxy.  We broke this early last year.
+
+ Will merge to 'next'.
+
+
+* tb/doc-eol-normalization (2017-04-13) 1 commit
+ - gitattributes.txt: document how to normalize the line endings
+
+ Doc update.
+
+ Will merge to 'next'.
+
+
+* va/i18n-perl-scripts (2017-04-13) 1 commit
+ - git-add--interactive.perl: add missing dot in a message
+
+ Message fix.
+
+ Will merge to 'next'.
+
+
+* bw/submodule-is-active (2017-04-13) 1 commit
+ - submodule--helper: fix typo in is_active error message
+
+ Error message fix.
+
+ Will merge to 'next'.
+
+
+* gb/rebase-signoff (2017-04-16) 3 commits
+ - rebase: pass --[no-]signoff option to git am
+ - builtin/am: fold am_signoff() into am_append_signoff()
+ - builtin/am: honor --signoff also when --rebasing
+
+ "git rebase" learns "--signoff" option.
+
+
+* jh/add-index-entry-optim (2017-04-15) 3 commits
+ - read-cache: speed up add_index_entry during checkout
+ - p0006-read-tree-checkout: perf test to time read-tree
+ - read-cache: add strcmp_offset function
+
+ "git checkout" that handles a lot of paths has been optimized by
+ reducing the number of unnecessary checks of paths in the
+ has_dir_name() function.
+
+ Will merge to 'next'.
+
+
+* ab/grep-plug-pathspec-leak (2017-04-16) 1 commit
+ - grep: plug a trivial memory leak
+
+ Call clear_pathspec() to release resources immediately before the
+ cmd_grep() function returns.
+
+ Will merge to 'next'.
+ Meh.
+
+* ab/grep-threading-cleanup (2017-04-16) 8 commits
+ - grep: given --threads with NO_PTHREADS=YesPlease, warn
+ - pack-objects: fix buggy warning about threads under NO_PTHREADS=YesPlease
+ - pack-object & index-pack: add test for --threads warning under NO_PTHREADS
+ - tests: add a PTHREADS prerequisite
+ - grep: skip pthreads overhead when using one thread
+ - grep: don't redundantly compile throwaway patterns under threading
+ - grep: add tests for --threads=N and grep.threads
+ - grep: assert that threading is enabled when calling grep_{lock,unlock}
+
+
+* bw/attr-pathspec (2017-04-16) 1 commit
+ - pathspec: fix segfault in clear_pathspec
+
+ Will merge to 'next'.
+ Hotfix for a topic already in 'master'. 
+
+
+* bw/submodule-with-bs-path (2017-04-16) 1 commit
+ - submodule: prevent backslash expantion in submodule names
+
+ "git submodule" script does not work well with strange pathnames.
+ Protect it from a path with slashes in them, at least.
+
+ Will merge to 'next'.
+
+
+* dt/gc-ignore-old-gc-logs (2017-04-16) 1 commit
+ - t6500: wait for detached auto gc at the end of the test script
+
+ Will merge to 'next'.
+ Hotfix for a topic already in 'master'. 
+
+
+* jk/loose-object-fsck (2017-04-16) 1 commit
+ - sha1_file: remove an used fd variable
 
  Code cleanup.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* bw/push-options-recursively-to-submodules (2017-04-11) 5 commits
- - push: propagate remote and refspec with --recurse-submodules
- - submodule--helper: add push-check subcommand
- - remote: expose parse_push_refspec function
- - push: propagate push-options with --recurse-submodules
- - push: unmark a local variable as static
+* jk/quarantine-received-objects (2017-04-16) 3 commits
+ - refs: reject ref updates while GIT_QUARANTINE_PATH is set
+ - receive-pack: document user-visible quarantine effects
+ - receive-pack: drop tmp_objdir_env from run_update_hook
 
- "git push --recurse-submodules --push-option=<string>" learned to
- propagate the push option recursively down to pushes in submodules.
+ Add finishing touches to a recent topic.
 
  Will merge to 'next'.
 
 
-* mm/ls-files-s-doc (2017-04-01) 1 commit
-  (merged to 'next' on 2017-04-11 at 7e55625b1e)
- + Documentation: document elements in "ls-files -s" output in order
+* ld/p4-current-branch-fix (2017-04-16) 3 commits
+ - git-p4: don't use name-rev to get current branch
+ - git-p4: add read_pipe_text() internal function
+ - git-p4: add failing test for name-rev rather than symbolic-ref
 
- Doc update.
+ "git p4" used "name-rev HEAD" when it wants to learn what branch is
+ checked out; it should use "symbolic-ref HEAD".
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* pc/t2027-git-to-pipe-cleanup (2017-04-01) 1 commit
- - t2027: avoid using pipes
+* ls/travis-coccicheck (2017-04-16) 1 commit
+ - travis-ci: add static analysis build job to run coccicheck
 
- Having a git command on the upstream side of a pipe in a test
- script will hide the exit status from the command, which may cause
- us to fail to notice a breakage; rewrite tests in a script to avoid
- this issue.
+ Travis CI learns to run coccicheck.
 
 
-* qp/bisect-docfix (2017-04-01) 1 commit
-  (merged to 'next' on 2017-04-11 at 9c20eba240)
- + git-bisect.txt: add missing word
+* rs/misc-cppcheck-fixes (2017-04-16) 3 commits
+ - server-info: avoid calling fclose(3) twice in update_info_file()
+ - files_for_each_reflog_ent_reverse(): close stream and free strbuf on error
+ - am: close stream on error, but not stdin
 
- Doc update.
+ Will merge to 'next'.
+ Various small fixes.
 
- Will merge to 'master'.
 
+* sf/putty-w-args (2017-04-16) 1 commit
+ - connect.c: handle errors from split_cmdline
 
-* sb/show-diff-for-submodule-in-diff-fix (2017-04-02) 1 commit
-  (merged to 'next' on 2017-04-11 at 8d16ef369e)
- + diff: submodule inline diff to initialize env array.
+ Will merge to 'next'.
+ Hotfix for a topic already in 'master'. 
 
- "git diff --submodule=diff" learned to work better in a project
- with a submodule that in turn has its own submodules.
 
- Will merge to 'master'.
+* km/t1400-modernization (2017-04-16) 1 commit
+ - t1400: use consistent style for test_expect_success calls
 
+ Code cleanup.
 
-* lt/mailinfo-in-body-header-continuation (2017-04-11) 1 commit
- - mailinfo: fix in-body header continuations
+ Will merge to 'next'.
 
- If a patch e-mail had its first paragraph after an in-body header
- indented (even after a blank line after the in-body header line),
- the indented line was mistook as a continuation of the in-body
- header.  This has been fixed.
+
+* vn/revision-shorthand-for-side-branch-log (2017-04-16) 1 commit
+ - doc/revisions: remove brackets from rev^-n shorthand
+
+ Doc cleanup.
 
  Will merge to 'next'.
 
@@ -517,6 +516,63 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
+* dt/http-postbuffer-can-be-large (2017-04-13) 1 commit
+ - http.postbuffer: allow full range of ssize_t values
+
+ Allow the http.postbuffer configuration variable to be set to a
+ size that can be expressed in size_t, which can be larger than
+ ulong on some platforms.
+
+ Will merge to 'next'.
+
+
+* jh/memihash-opt (2017-04-12) 3 commits
+  (merged to 'next' on 2017-04-15 at 6bfc58e19a)
+ + t3008: skip lazy-init test on a single-core box
+ + test-online-cpus: helper to return cpu count
+  (merged to 'next' on 2017-04-11 at ec5a6f2818)
+ + name-hash: fix buffer overrun
+
+ Hotfix for a topic that is already in 'master'.
+
+ Will merge to 'master'.
+
+
+* bw/push-options-recursively-to-submodules (2017-04-11) 5 commits
+  (merged to 'next' on 2017-04-16 at d4d657724b)
+ + push: propagate remote and refspec with --recurse-submodules
+ + submodule--helper: add push-check subcommand
+ + remote: expose parse_push_refspec function
+ + push: propagate push-options with --recurse-submodules
+ + push: unmark a local variable as static
+
+ "git push --recurse-submodules --push-option=<string>" learned to
+ propagate the push option recursively down to pushes in submodules.
+
+ Will merge to 'master'.
+
+
+* pc/t2027-git-to-pipe-cleanup (2017-04-14) 1 commit
+ - t2027: avoid using pipes
+
+ Having a git command on the upstream side of a pipe in a test
+ script will hide the exit status from the command, which may cause
+ us to fail to notice a breakage; rewrite tests in a script to avoid
+ this issue.
+
+
+* lt/mailinfo-in-body-header-continuation (2017-04-11) 1 commit
+  (merged to 'next' on 2017-04-16 at b2f51f0780)
+ + mailinfo: fix in-body header continuations
+
+ If a patch e-mail had its first paragraph after an in-body header
+ indented (even after a blank line after the in-body header line),
+ the indented line was mistook as a continuation of the in-body
+ header.  This has been fixed.
+
+ Will merge to 'master'.
+
+
 * bp/sub-process-convert-filter (2017-03-30) 8 commits
  - convert: update subprocess_read_status to not die on EOF
  - sub-process: move sub-process functions into separate files
@@ -530,7 +586,8 @@ of the repositories listed at
  Code from "conversion using external process" codepath has been
  extracted to a separate sub-process.[ch] module.
 
- This looks ready for 'next'.  Any more comments?
+ Reroll exists but needs more work.
+ cf. <20170407120354.17736-1-benpeart@microsoft.com>
 
 
 * cc/split-index-config (2017-03-30) 1 commit
@@ -543,32 +600,6 @@ of the repositories listed at
  The code looked OK, though.
 
 
-* jk/snprintf-cleanups (2017-03-30) 18 commits
-  (merged to 'next' on 2017-04-11 at 42ac56e886)
- + daemon: use an argv_array to exec children
- + gc: replace local buffer with git_path
- + transport-helper: replace checked snprintf with xsnprintf
- + convert unchecked snprintf into xsnprintf
- + combine-diff: replace malloc/snprintf with xstrfmt
- + replace unchecked snprintf calls with heap buffers
- + receive-pack: print --pack-header directly into argv array
- + name-rev: replace static buffer with strbuf
- + create_branch: use xstrfmt for reflog message
- + create_branch: move msg setup closer to point of use
- + avoid using mksnpath for refs
- + avoid using fixed PATH_MAX buffers for refs
- + fetch: use heap buffer to format reflog
- + tag: use strbuf to format tag header
- + diff: avoid fixed-size buffer for patch-ids
- + odb_mkstemp: use git_path_buf
- + odb_mkstemp: write filename into strbuf
- + do not check odb_mkstemp return value for errors
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
 * mg/name-rev-debug (2017-03-31) 4 commits
  - describe: pass --debug down to name-rev
  - name-rev: provide debug output
@@ -583,40 +614,42 @@ of the repositories listed at
 
 
 * bc/object-id (2017-03-31) 20 commits
- - Documentation: update and rename api-sha1-array.txt
- - Rename sha1_array to oid_array
- - Convert sha1_array_for_each_unique and for_each_abbrev to object_id
- - Convert sha1_array_lookup to take struct object_id
- - Convert remaining callers of sha1_array_lookup to object_id
- - Make sha1_array_append take a struct object_id *
- - sha1-array: convert internal storage for struct sha1_array to object_id
- - builtin/pull: convert to struct object_id
- - submodule: convert check_for_new_submodule_commits to object_id
- - sha1_name: convert disambiguate_hint_fn to take object_id
- - sha1_name: convert struct disambiguate_state to object_id
- - test-sha1-array: convert most code to struct object_id
- - parse-options-cb: convert sha1_array_append caller to struct object_id
- - fsck: convert init_skiplist to struct object_id
- - builtin/receive-pack: convert portions to struct object_id
- - builtin/pull: convert portions to struct object_id
- - builtin/diff: convert to struct object_id
- - Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ
- - Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ
- - Define new hash-size constants for allocating memory
+  (merged to 'next' on 2017-04-16 at b16f1899dd)
+ + Documentation: update and rename api-sha1-array.txt
+ + Rename sha1_array to oid_array
+ + Convert sha1_array_for_each_unique and for_each_abbrev to object_id
+ + Convert sha1_array_lookup to take struct object_id
+ + Convert remaining callers of sha1_array_lookup to object_id
+ + Make sha1_array_append take a struct object_id *
+ + sha1-array: convert internal storage for struct sha1_array to object_id
+ + builtin/pull: convert to struct object_id
+ + submodule: convert check_for_new_submodule_commits to object_id
+ + sha1_name: convert disambiguate_hint_fn to take object_id
+ + sha1_name: convert struct disambiguate_state to object_id
+ + test-sha1-array: convert most code to struct object_id
+ + parse-options-cb: convert sha1_array_append caller to struct object_id
+ + fsck: convert init_skiplist to struct object_id
+ + builtin/receive-pack: convert portions to struct object_id
+ + builtin/pull: convert portions to struct object_id
+ + builtin/diff: convert to struct object_id
+ + Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ
+ + Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ
+ + Define new hash-size constants for allocating memory
 
  Conversion from unsigned char [40] to struct object_id continues.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * sb/submodule-short-status (2017-03-29) 7 commits
- - submodule.c: correctly handle nested submodules in is_submodule_modified
- - short status: improve reporting for submodule changes
- - submodule.c: stricter checking for submodules in is_submodule_modified
- - submodule.c: port is_submodule_modified to use porcelain 2
- - submodule.c: convert is_submodule_modified to use strbuf_getwholeline
- - submodule.c: factor out early loop termination in is_submodule_modified
- - submodule.c: use argv_array in is_submodule_modified
+  (merged to 'next' on 2017-04-16 at 24e18f4a4a)
+ + submodule.c: correctly handle nested submodules in is_submodule_modified
+ + short status: improve reporting for submodule changes
+ + submodule.c: stricter checking for submodules in is_submodule_modified
+ + submodule.c: port is_submodule_modified to use porcelain 2
+ + submodule.c: convert is_submodule_modified to use strbuf_getwholeline
+ + submodule.c: factor out early loop termination in is_submodule_modified
+ + submodule.c: use argv_array in is_submodule_modified
 
  The output from "git status --short" has been extended to show
  various kinds of dirtyness in submodules differently; instead of to
@@ -624,10 +657,10 @@ of the repositories listed at
  to the working tree of the submodule but not the commit that is
  checked out.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* mh/separate-ref-cache (2017-03-31) 20 commits
+* mh/separate-ref-cache (2017-04-16) 20 commits
  - do_for_each_entry_in_dir(): delete function
  - files_pack_refs(): use reference iteration
  - commit_packed_refs(): use reference iteration
@@ -664,7 +697,7 @@ of the repositories listed at
  A proposal to use po4a to localize our manual pages.
 
 
-* nd/prune-in-worktree (2017-03-27) 12 commits
+* nd/prune-in-worktree (2017-04-16) 12 commits
  - rev-list: expose and document --single-worktree
  - revision.c: --reflog add HEAD reflog from all worktrees
  - files-backend: make reflog iterator go through per-worktree reflog
@@ -688,10 +721,11 @@ of the repositories listed at
  Waiting for nd/files-backend-git-dir to settle.
 
 
-* nd/worktree-kill-parse-ref (2017-03-27) 4 commits
+* nd/worktree-kill-parse-ref (2017-04-16) 5 commits
  - refs: kill set_worktree_head_symref()
  - worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
  - refs: introduce get_worktree_ref_store()
+ - refs.c: make submodule ref store hashmap generic
  - environment.c: fix potential segfault by get_git_common_dir()
  (this branch is used by nd/prune-in-worktree; uses nd/files-backend-git-dir; is tangled with mh/separate-ref-cache.)
 
@@ -701,13 +735,13 @@ of the repositories listed at
  Waiting for nd/files-backend-git-dir to settle.
 
 
-* nd/files-backend-git-dir (2017-03-27) 28 commits
+* nd/files-backend-git-dir (2017-04-14) 28 commits
  - refs.h: add a note about sorting order of for_each_ref_*
  - t1406: new tests for submodule ref store
  - t1405: some basic tests on main ref store
  - t/helper: add test-ref-store to test ref-store functions
  - refs: delete pack_refs() in favor of refs_pack_refs()
- - files-backend: avoid ref api targetting main ref store
+ - files-backend: avoid ref api targeting main ref store
  - refs: new transaction related ref-store api
  - refs: add new ref-store api
  - refs: rename get_ref_store() to get_submodule_ref_store() and make it public
@@ -740,17 +774,6 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* jc/p4-current-branch-fix (2017-03-27) 2 commits
- - DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch
- - git-p4: add failing test for name-rev rather than symbolic-ref
-
- "git p4" used "name-rev HEAD" when it wants to learn what branch is
- checked out; it should use "symbolic-ref HEAD".
-
- The tip one (i.e. real fix) needs to be redone by somebody
- competent with Python and git-p4 codebase.
-
-
 * jc/bundle (2016-03-03) 6 commits
  - index-pack: --clone-bundle option
  - Merge branch 'jc/index-pack' into jc/bundle
@@ -776,3 +799,13 @@ of the repositories listed at
  the base for naming a commit.
 
  Now part of mg/name-rev-debug topic.
+
+
+* jc/p4-current-branch-fix (2017-03-27) 2 commits
+ . DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch
+ . git-p4: add failing test for name-rev rather than symbolic-ref
+
+ "git p4" used "name-rev HEAD" when it wants to learn what branch is
+ checked out; it should use "symbolic-ref HEAD".
+
+ Superseded by the ld/p4-current-branch-fix topic.