]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2018/08 #03)
authorJunio C Hamano <gitster@pobox.com>
Wed, 15 Aug 2018 23:01:07 +0000 (16:01 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Aug 2018 23:01:07 +0000 (16:01 -0700)
whats-cooking.txt

index 95ef8c392558dab1a361d91fbb269a26faf6c5ff..145a58b6297666292c316d8fef193655b6787bd4 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Aug 2018, #02; Mon, 6)
-X-master-at: 1d89318c48d233d52f1db230cf622935ac3c69fa
-X-next-at: 1932418f4676b98c810dd5182aeba50bbd7c02d4
+Subject: What's cooking in git.git (Aug 2018, #03; Wed, 15)
+X-master-at: 63749b2dea5d1501ff85bab7b8a7f64911d21dea
+X-next-at: a543ac7ca4538799a4ba8d9b2640e17e2fdf406f
 
-What's cooking in git.git (Aug 2018, #02; Mon, 6)
+What's cooking in git.git (Aug 2018, #03; Wed, 15)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -17,109 +17,759 @@ of the repositories listed at
 
     http://git-blame.blogspot.com/p/git-public-repositories.html
 
+--------------------------------------------------
+[Graduated to "master"]
+
+* bb/make-developer-pedantic (2018-07-25) 1 commit
+  (merged to 'next' on 2018-08-02 at c738a84b7e)
+ + Makefile: add a DEVOPTS flag to get pedantic compilation
+
+ "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
+ with -pedantic option, which may catch more problematic program
+ constructs and potential bugs.
+
+
+* bb/redecl-enum-fix (2018-07-26) 1 commit
+  (merged to 'next' on 2018-08-06 at 828dc4b156)
+ + packfile: ensure that enum object_type is defined
+
+ Compilation fix.
+
+
+* bw/clone-ref-prefixes (2018-07-20) 1 commit
+  (merged to 'next' on 2018-08-02 at c8ad140ab0)
+ + clone: send ref-prefixes when using protocol v2
+
+ The wire-protocol v2 relies on the client to send "ref prefixes" to
+ limit the bandwidth spent on the initial ref advertisement.  "git
+ clone" when learned to speak v2 forgot to do so, which has been
+ corrected.
+
+
+* bw/fetch-pack-i18n (2018-07-23) 1 commit
+  (merged to 'next' on 2018-08-02 at df72001755)
+ + fetch-pack: mark die strings for translation
+
+ i18n updates.
+
+
+* bw/protocol-v2 (2018-07-24) 1 commit
+  (merged to 'next' on 2018-08-02 at f4076b3e94)
+ + pack-protocol: mention and point to docs for protocol v2
+
+ Doc update.
+
+
+* cb/p4-pre-submit-hook (2018-08-01) 1 commit
+  (merged to 'next' on 2018-08-06 at e40ae4af80)
+ + git-p4: add the `p4-pre-submit` hook
+
+ "git p4 submit" learns to ask its own pre-submit hook if it should
+ continue with submitting.
+
+
+* en/merge-recursive-skip-fix (2018-07-27) 2 commits
+  (merged to 'next' on 2018-08-06 at 9ab321a15c)
+ + merge-recursive: preserve skip_worktree bit when necessary
+ + t3507: add a testcase showing failure with sparse checkout
+
+ When the sparse checkout feature is in use, "git cherry-pick" and
+ other mergy operations lost the skip_worktree bit when a path that
+ is excluded from checkout requires content level merge, which is
+ resolved as the same as the HEAD version, without materializing the
+ merge result in the working tree, which made the path appear as
+ deleted.  This has been corrected by preserving the skip_worktree
+ bit (and not materializing the file in the working tree).
+
+
+* es/diff-color-moved-fix (2018-07-25) 1 commit
+  (merged to 'next' on 2018-08-02 at 233bccfbfb)
+ + diff: --color-moved: rename "dimmed_zebra" to "dimmed-zebra"
+
+ One of the "diff --color-moved" mode "dimmed_zebra" that was named
+ in an unusual way has been deprecated and replaced by
+ "dimmed-zebra".
+
+
+* es/mw-to-git-chain-fix (2018-07-31) 1 commit
+  (merged to 'next' on 2018-08-06 at c10246e1c8)
+ + mw-to-git/t9360: fix broken &&-chain
+
+ Test fix.
+
+
+* hs/gpgsm (2018-07-20) 7 commits
+  (merged to 'next' on 2018-08-02 at db28bffe4f)
+ + gpg-interface t: extend the existing GPG tests with GPGSM
+ + gpg-interface: introduce new signature format "x509" using gpgsm
+ + gpg-interface: introduce new config to select per gpg format program
+ + gpg-interface: do not hardcode the key string len anymore
+ + gpg-interface: introduce an abstraction for multiple gpg formats
+ + t/t7510: check the validation of the new config gpg.format
+ + gpg-interface: add new config to select how to sign a commit
+
+ Teach "git tag -s" etc. a few configuration variables (gpg.format
+ that can be set to "openpgp" or "x509", and gpg.<format>.program
+ that is used to specify what program to use to deal with the format)
+ to allow x.509 certs with CMS via "gpgsm" to be used instead of
+ openpgp via "gnupg".
+
+
+* jh/json-writer (2018-07-16) 1 commit
+  (merged to 'next' on 2018-08-02 at d841450c7d)
+ + json_writer: new routines to create JSON data
+ (this branch is used by jh/structured-logging.)
+
+ Preparatory code to later add json output for telemetry data.
+
+
+* jk/banned-function (2018-07-26) 5 commits
+  (merged to 'next' on 2018-08-06 at 3dcd1999df)
+ + banned.h: mark strncpy() as banned
+ + banned.h: mark sprintf() as banned
+ + banned.h: mark strcat() as banned
+ + automatically ban strcpy()
+ + Merge branch 'sb/blame-color' into jk/banned-function
+
+ It is too easy to misuse system API functions such as strcat();
+ these selected functions are now forbidden in this codebase and
+ will cause a compilation failure.
+
+
+* jk/core-use-replace-refs (2018-07-18) 3 commits
+  (merged to 'next' on 2018-08-02 at 90fb6b1056)
+ + add core.usereplacerefs config option
+ + check_replace_refs: rename to read_replace_refs
+ + check_replace_refs: fix outdated comment
+
+ A new configuration variable core.usereplacerefs has been added,
+ primarily to help server installations that want to ignore the
+ replace mechanism altogether.
+
+
+* jk/size-t (2018-07-24) 6 commits
+  (merged to 'next' on 2018-08-02 at 6f861e05f0)
+ + strbuf_humanise: use unsigned variables
+ + pass st.st_size as hint for strbuf_readlink()
+ + strbuf_readlink: use ssize_t
+ + strbuf: use size_t for length in intermediate variables
+ + reencode_string: use size_t for string lengths
+ + reencode_string: use st_add/st_mult helpers
+
+ Code clean-up to use size_t/ssize_t when they are the right type.
+
+
+* jk/ui-color-always-to-auto (2018-07-18) 1 commit
+  (merged to 'next' on 2018-08-02 at 1a054baf0e)
+ + Documentation: fix --color option formatting
+
+ Doc formatting fix.
+
+
+* jn/subtree-test-fixes (2018-07-30) 2 commits
+  (merged to 'next' on 2018-08-06 at 62f21c328f)
+ + subtree test: simplify preparation of expected results
+ + subtree test: add missing && to &&-chain
+
+ Test fix.
+
+
+* js/t7406-recursive-submodule-update-order-fix (2018-07-23) 1 commit
+  (merged to 'next' on 2018-08-02 at 217ea36a37)
+ + t7406: avoid failures solely due to timing issues
+
+ Test fix.
+
+
+* js/vscode (2018-07-30) 9 commits
+  (merged to 'next' on 2018-08-06 at 5c578b63a8)
+ + vscode: let cSpell work on commit messages, too
+ + vscode: add a dictionary for cSpell
+ + vscode: use 8-space tabs, no trailing ws, etc for Git's source code
+ + vscode: wrap commit messages at column 72 by default
+ + vscode: only overwrite C/C++ settings
+ + mingw: define WIN32 explicitly
+ + cache.h: extract enum declaration from inside a struct declaration
+ + vscode: hard-code a couple defines
+ + contrib: add a script to initialize VS Code configuration
+
+ Add a script (in contrib/) to help users of VSCode work better with
+ our codebase.
+
+
+* jt/connectivity-check-after-unshallow (2018-08-01) 1 commit
+  (merged to 'next' on 2018-08-06 at 1932418f46)
+ + fetch-pack: unify ref in and out param
+
+ "git fetch" sometimes failed to update the remote-tracking refs,
+ which has been corrected.
+
+
+* jt/tag-following-with-proto-v2-fix (2018-07-24) 2 commits
+  (merged to 'next' on 2018-08-02 at d9eabdea95)
+ + fetch: send "refs/tags/" prefix upon CLI refspecs
+ + t5702: test fetch with multiple refspecs at a time
+
+ The wire-protocol v2 relies on the client to send "ref prefixes" to
+ limit the bandwidth spent on the initial ref advertisement.  "git
+ fetch $remote branch:branch" that asks tags that point into the
+ history leading to the "branch" automatically followed sent to
+ narrow prefix and broke the tag following, which has been fixed.
+
+
+* ms/http-proto-doc (2018-07-30) 1 commit
+  (merged to 'next' on 2018-08-06 at df1cac9945)
+ + doc: fix want-capability separator
+
+ Doc fix.
+
+
+* nd/i18n (2018-07-23) 23 commits
+  (merged to 'next' on 2018-08-02 at 904a22a5d1)
+ + transport-helper.c: mark more strings for translation
+ + transport.c: mark more strings for translation
+ + sha1-file.c: mark more strings for translation
+ + sequencer.c: mark more strings for translation
+ + replace-object.c: mark more strings for translation
+ + refspec.c: mark more strings for translation
+ + refs.c: mark more strings for translation
+ + pkt-line.c: mark more strings for translation
+ + object.c: mark more strings for translation
+ + exec-cmd.c: mark more strings for translation
+ + environment.c: mark more strings for translation
+ + dir.c: mark more strings for translation
+ + convert.c: mark more strings for translation
+ + connect.c: mark more strings for translation
+ + config.c: mark more strings for translation
+ + commit-graph.c: mark more strings for translation
+ + builtin/replace.c: mark more strings for translation
+ + builtin/pack-objects.c: mark more strings for translation
+ + builtin/grep.c: mark strings for translation
+ + builtin/config.c: mark more strings for translation
+ + archive-zip.c: mark more strings for translation
+ + archive-tar.c: mark more strings for translation
+ + Update messages in preparation for i18n
+
+ Many more strings are prepared for l10n.
+
+
+* nd/pack-objects-threading-doc (2018-07-30) 1 commit
+  (merged to 'next' on 2018-08-06 at cc8c305191)
+ + pack-objects: document about thread synchronization
+
+ Doc fix.
+
+
+* rs/remote-mv-leakfix (2018-08-01) 1 commit
+  (merged to 'next' on 2018-08-06 at 999fe6d3e5)
+ + remote: clear string_list after use in mv()
+
+ Leakfix.
+
+
+* sb/histogram-less-memory (2018-07-23) 4 commits
+  (merged to 'next' on 2018-08-02 at cfb02aa3b5)
+ + xdiff/histogram: remove tail recursion
+ + xdiff/xhistogram: move index allocation into find_lcs
+ + xdiff/xhistogram: factor out memory cleanup into free_index()
+ + xdiff/xhistogram: pass arguments directly to fall_back_to_classic_diff
+
+ "git diff --histogram" had a bad memory usage pattern, which has
+ been rearranged to reduce the peak usage.
+
+
+* sb/trailers-docfix (2018-07-20) 1 commit
+  (merged to 'next' on 2018-08-02 at ba348fafcd)
+ + Documentation/git-interpret-trailers: explain possible values
+
+ Doc update.
+
+
+* sg/coccicheck-updates (2018-07-23) 5 commits
+  (merged to 'next' on 2018-08-02 at b5548ff3a9)
+ + coccinelle: extract dedicated make target to clean Coccinelle's results
+ + coccinelle: put sane filenames into output patches
+ + coccinelle: exclude sha1dc source files from static analysis
+ + coccinelle: use $(addsuffix) in 'coccicheck' make target
+ + coccinelle: mark the 'coccicheck' make target as .PHONY
+
+ Update the way we use Coccinelle to find out-of-style code that
+ need to be modernised.
+
+
+* sg/fast-import-dump-refs-on-checkpoint-fix (2018-07-20) 1 commit
+  (merged to 'next' on 2018-08-02 at f5c05b5a2c)
+ + t9300: wait for background fast-import process to die after killing it
+
+ Test update.
+
+
+* sg/travis-cocci-diagnose-failure (2018-07-23) 2 commits
+  (merged to 'next' on 2018-08-02 at 54808a8778)
+ + travis-ci: fail if Coccinelle static analysis found something to transform
+ + travis-ci: run Coccinelle static analysis with two parallel jobs
+
+ Update the way we run static analysis tool at TravisCI to make it
+ easier to use its findings.
+
+
+* sg/travis-retrieve-trash-upon-failure (2018-08-01) 1 commit
+  (merged to 'next' on 2018-08-06 at d67def2a92)
+ + travis-ci: include the trash directories of failed tests in the trace log
+
+ The Travis CI scripts were taught to ship back the test data from
+ failed tests.
+
 --------------------------------------------------
 [New Topics]
 
-* js/rebase-merges-exec-fix (2018-08-06) 2 commits
- - rebase --exec: make it work with --rebase-merges
- - t3430: demonstrate what -r, --autosquash & --exec should do
+* en/t7406-fixes (2018-08-08) 5 commits
+  (merged to 'next' on 2018-08-15 at c6a740d828)
+ + t7406: avoid using test_must_fail for commands other than git
+ + t7406: prefer test_* helper functions to test -[feds]
+ + t7406: avoid having git commands upstream of a pipe
+ + t7406: simplify by using diff --name-only instead of diff --raw
+ + t7406: fix call that was failing for the wrong reason
 
- The "--exec" option to "git rebase --rebase-merges" placed the exec
- commands at wrong places, which has been corrected.
- cf. <pull.13.v2.git.gitgitgadget@gmail.com>
+ Test fixes.
 
+ Will merge to 'master'.
 
-* nd/no-extern (2018-08-03) 12 commits
- - submodule.h: drop extern from function declaration
- - revision.h: drop extern from function declaration
- - repository.h: drop extern from function declaration
- - rerere.h: drop extern from function declaration
- - line-range.h: drop extern from function declaration
- - diff.h: remove extern from function declaration
- - diffcore.h: drop extern from function declaration
- - convert.h: drop 'extern' from function declaration
- - cache-tree.h: drop extern from function declaration
- - blame.h: drop extern on func declaration
- - attr.h: drop extern from function declaration
- - apply.h: drop extern on func declaration
 
- Noiseword "extern" has been removed from function decls in the
- header files.
+* en/update-index-doc (2018-08-08) 1 commit
+  (merged to 'next' on 2018-08-15 at 3ee0ae14dc)
+ + git-update-index.txt: reword possibly confusing example
 
Will merge to 'next'.
Doc update.
 
+ Will merge to 'master'.
 
-* ar/t4150-am-scissors-test-fix (2018-08-06) 1 commit
- - t4150: fix broken test for am --scissors
 
- Test fix.
+* jc/update-index-doc (2018-08-08) 1 commit
+  (merged to 'next' on 2018-08-15 at 055994ccca)
+ + update-index: there no longer is `apply --index-info`
 
- Will merge to 'next'.
+ Doc update.
+
+ Will merge to 'master'.
 
 
-* en/t3031-title-fix (2018-08-06) 1 commit
- - t3031: update test description to mention desired behavior
+* js/typofixes (2018-08-08) 2 commits
+  (merged to 'next' on 2018-08-15 at ce3932254a)
+ + remote-curl: remove spurious period
+ + git-compat-util.h: fix typo
 
Test fix.
Comment update.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* hn/config-in-code-comment (2018-08-06) 1 commit
- - config: document git config getter return value
+* jt/repack-promisor-packs (2018-08-09) 2 commits
+ - repack: repack promisor objects if -a or -A is set
+ - repack: refactor setup of pack-objects cmd
 
- Header update.
+ After a partial clone, repeated fetches from promisor remote would
+ have accumulated many packfiles marked with .promisor bit without
+ getting them coalesced into fewer packfiles, hurting performance.
+ "git repack" now learned to repack them.
 
  Will merge to 'next'.
 
 
-* jk/diff-rendered-docs (2018-08-06) 1 commit
- - add a script to diff rendered documentation
+* sk/instaweb-rh-update (2018-08-08) 2 commits
+  (merged to 'next' on 2018-08-15 at ce5f1115e9)
+ + git-instaweb: fix apache2 config with apache >= 2.4
+ + git-instaweb: support Fedora/Red Hat apache module path
 
- Developer support to allow the end result of documentation update
to be inspected more easily.
+ "git instaweb" has been adjusted to run better with newer Apache on
RedHat based distros.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* js/pull-rebase-type-shorthand (2018-08-06) 1 commit
- - pull --rebase=<type>: allow single-letter abbreviations for the type
+* ab/submodule-relative-url-tests (2018-08-14) 1 commit
+ - submodule: add more exhaustive up-path testing
 
- "git pull --rebase=interactive" learned "i" as a short-hand for
- "interactive".
+ Test updates.
 
  Will merge to 'next'.
 
 
-* nd/complete-config-vars (2018-08-06) 1 commit
- - Makefile: add missing dependency for command-list.h
+* ao/submodule-wo-gitmodules-checked-out (2018-08-14) 7 commits
+ - submodule: support reading .gitmodules even when it's not checked out
+ - t7506: clean up .gitmodules properly before setting up new scenario
+ - submodule: use the 'submodule--helper config' command
+ - submodule--helper: add a new 'config' subcommand
+ - t7411: be nicer to future tests and really clean things up
+ - submodule: factor out a config_set_in_gitmodules_file_gently function
+ - submodule: add a print_config_from_gitmodules() helper
+
+ The submodule support has been updated to read from the blob at
+ HEAD:.gitmodules when the .gitmodules file is missing from the
+ working tree.
+
+ I find the design a bit iffy in that our usual "missing in the
+ working tree?  let's use the latest blob" fallback is to take it
+ from the index, not from the HEAD.
 
- Build fix.
+
+* bw/submodule-name-to-dir (2018-08-10) 2 commits
+ - submodule: munge paths to submodule git directories
+ - submodule: create helper to build paths to submodule gitdirs
+
+ In modern repository layout, the real body of a cloned submodule
+ repository is held in .git/modules/ of the superproject, indexed by
+ the submodule name.  URLencode the submodule name before computing
+ the name of the directory to make sure they form a flat namespace.
 
  Will merge to 'next'.
 
 
-* nd/config-blame-sort (2018-08-06) 1 commit
- - config.txt: reorder blame stuff to keep config keys sorted
+* cc/delta-islands (2018-08-10) 8 commits
+ - pack-objects: move 'layer' into 'struct packing_data'
+ - pack-objects: move tree_depth into 'struct packing_data'
+ - t5320: delta islands tests
+ - repack: add delta-islands support
+ - pack-objects: add delta-islands support
+ - pack-objects: refactor code into compute_layer_order()
+ - Add delta-islands.{c,h}
+ - packfile: make get_delta_base() non static
+
+ Lift code from GitHub to restrict delta computation so that an
+ object that exists in one fork is not made into a delta against
+ another object that does not appear in the same forked repository.
+
+ What's the doneness of this topic?
+
+
+* ds/commit-graph-fsck (2018-08-13) 1 commit
+  (merged to 'next' on 2018-08-15 at a2f82d3cbd)
+ + t5318: use 'test_cmp_bin' to compare commit-graph files
+
+ Test fix.
+
+ Will merge to 'master'.
 
- Doc fix.
+
+* en/incl-forward-decl (2018-08-15) 6 commits
+ - Remove forward declaration of an enum
+ - compat/precompose_utf8.h: use more common include guard style
+ - urlmatch.h: fix include guard
+ - Move definition of enum branch_track from cache.h to branch.h
+ - alloc: make allocate_alloc_state and clear_alloc_state more consistent
+ - Add missing includes and forward declarations
+
+ Code hygiene improvement for the header files.
 
  Will merge to 'next'.
 
 
-* wc/make-funnynames-shared-lazy-prereq (2018-08-06) 1 commit
- - t: factor out FUNNYNAMES as shared lazy prereq
+* es/chain-lint-more (2018-08-13) 6 commits
+  (merged to 'next' on 2018-08-15 at bb5150ee96)
+ + chainlint: add test of pathological case which triggered false positive
+ + chainlint: recognize multi-line quoted strings more robustly
+ + chainlint: let here-doc and multi-line string commence on same line
+ + chainlint: recognize multi-line $(...) when command cuddled with "$("
+ + chainlint: match 'quoted' here-doc tags
+ + chainlint: match arbitrary here-docs tags rather than hard-coded names
+
+ Improve built-in facility to catch broken &&-chain in the tests.
+
+ Will merge to 'master'.
+
+
+* jc/gpg-status (2018-08-09) 1 commit
+  (merged to 'next' on 2018-08-15 at 824781761a)
+ + gpg-interface: propagate exit status from gpg back to the callers
+
+ Will merge to 'master'.
+
+
+* jh/partial-clone-doc (2018-08-15) 1 commit
+  (merged to 'next' on 2018-08-15 at cf09e8be6a)
+ + partial-clone: render design doc using asciidoc
+
+ Doc updates.
+
+ Will merge to 'master'.
+
+
+* jk/for-each-object-iteration (2018-08-14) 11 commits
+  (merged to 'next' on 2018-08-15 at e2558810ff)
+ + for_each_*_object: move declarations to object-store.h
+ + cat-file: use a single strbuf for all output
+ + cat-file: split batch "buf" into two variables
+ + cat-file: use oidset check-and-insert
+ + cat-file: support "unordered" output for --batch-all-objects
+ + cat-file: rename batch_{loose,packed}_object callbacks
+ + t1006: test cat-file --batch-all-objects with duplicates
+ + for_each_packed_object: support iterating in pack-order
+ + for_each_*_object: give more comprehensive docstrings
+ + for_each_*_object: take flag arguments as enum
+ + for_each_*_object: store flag definitions in a single location
+
+ The API to iterate over all objects learned to optionally list
+ objects in the order they appear in packfiles, which helps locality
+ of access if the caller accesses these objects while as objects are
+ enumerated.
+
+ Will merge to 'master'.
+
+
+* js/chain-lint-attrfix (2018-08-15) 1 commit
+  (merged to 'next' on 2018-08-15 at e9ad19a848)
+ + chainlint: fix for core.autocrlf=true
+
+ Test fix.
+
+ Will merge to 'master'.
+
+
+* js/mingw-o-append (2018-08-13) 1 commit
+  (merged to 'next' on 2018-08-15 at 284527a0fb)
+ + mingw: enable atomic O_APPEND
+
+ Among the three codepaths we use O_APPEND to open a file for
+ appending, one used for writing GIT_TRACE output requires O_APPEND
+ implementation that behaves sensibly when multiple processes are
+ writing to the same file.  POSIX emulation used in the Windows port
+ has been updated to improve in this area.
+
+ Will merge to 'master'.
+
+
+* jt/commit-graph-per-object-store (2018-08-13) 1 commit
+  (merged to 'next' on 2018-08-15 at 5d6db738d8)
+ + t5318: avoid unnecessary command substitutions
+
+ Test update.
+
+ Will merge to 'master'.
+
+
+* jt/fetch-negotiator-skipping (2018-08-10) 1 commit
+  (merged to 'next' on 2018-08-15 at 3cf8fa32f5)
+ + t5552: suppress upload-pack trace output
+
+ Test fix.
+
+ Will merge to 'master'.
+
+
+* md/filter-trees (2018-08-15) 6 commits
+ - list-objects-filter: implement filter tree:0
+ - revision: mark non-user-given objects instead
+ - rev-list: handle missing tree objects properly
+ - list-objects: always parse trees gently
+ - list-objects: refactor to process_tree_contents
+ - list-objects: store common func args in struct
+
+ The "rev-list --filter" feature learned to exclude all trees via
+ "tree:0" filter.
+
+ Expecting a reroll.
+
+
+* nd/no-the-index (2018-08-13) 24 commits
+  (merged to 'next' on 2018-08-15 at 41e53dc53b)
+ + blame.c: remove implicit dependency on the_index
+ + apply.c: remove implicit dependency on the_index
+ + apply.c: make init_apply_state() take a struct repository
+ + apply.c: pass struct apply_state to more functions
+ + resolve-undo.c: use the right index instead of the_index
+ + archive-*.c: use the right repository
+ + archive.c: avoid access to the_index
+ + grep: use the right index instead of the_index
+ + attr: remove index from git_attr_set_direction()
+ + entry.c: use the right index instead of the_index
+ + submodule.c: use the right index instead of the_index
+ + pathspec.c: use the right index instead of the_index
+ + unpack-trees: avoid the_index in verify_absent()
+ + unpack-trees: convert clear_ce_flags* to avoid the_index
+ + unpack-trees: don't shadow global var the_index
+ + unpack-trees: add a note about path invalidation
+ + unpack-trees: remove 'extern' on function declaration
+ + ls-files: correct index argument to get_convert_attr_ascii()
+ + preload-index.c: use the right index instead of the_index
+ + dir.c: remove an implicit dependency on the_index in pathspec code
+ + convert.c: remove an implicit dependency on the_index
+ + attr: remove an implicit dependency on the_index
+ + cache-tree: wrap the_index based wrappers with #ifdef
+ + diff.c: move read_index() code back to the caller
+ (this branch uses nd/no-extern.)
+
+ The more library-ish parts of the codebase learned to work on the
+ in-core index-state instance that is passed in by their callers,
+ instead of always working on the singleton "the_index" instance.
+
+ Will merge to 'master'.
+
+
+* ng/mergetool-lose-final-prompt (2018-08-13) 1 commit
+  (merged to 'next' on 2018-08-15 at f8f7ac365b)
+ + mergetool: don't suggest to continue after last file
+
+ "git mergetool" stopped and gave an extra prompt to continue after
+ the last path has been handled, which did not make much sense.
+
+ Will merge to 'master'.
 
- A test prerequisite defined by various test scripts with slightly
- different sematics has been consolidated into a single copy and
- made into a lazily defined one.
 
+* ng/status-i-short-for-ignored (2018-08-09) 1 commit
+ - status: -i shorthand for --ignored command line option
+
+
+* pk/rebase-in-c-2-basic (2018-08-10) 11 commits
+ - builtin rebase: support `git rebase <upstream> <switch-to>`
+ - builtin rebase: only store fully-qualified refs in `options.head_name`
+ - builtin rebase: start a new rebase only if none is in progress
+ - builtin rebase: support --force-rebase
+ - builtin rebase: try to fast forward when possible
+ - builtin rebase: require a clean worktree
+ - builtin rebase: support the `verbose` and `diffstat` options
+ - builtin rebase: support --quiet
+ - builtin rebase: handle the pre-rebase hook (and add --no-verify)
+ - builtin rebase: support `git rebase --onto A...B`
+ - builtin rebase: support --onto
+ (this branch is used by pk/rebase-in-c-3-acts, pk/rebase-in-c-4-opts, pk/rebase-in-c-5-test and pk/rebase-in-c-6-final; uses pk/rebase-in-c.)
+
+
+* pk/rebase-in-c-3-acts (2018-08-10) 7 commits
+ - builtin rebase: stop if `git am` is in progress
+ - builtin rebase: actions require a rebase in progress
+ - builtin rebase: support --edit-todo and --show-current-patch
+ - builtin rebase: support --quit
+ - builtin rebase: support --abort
+ - builtin rebase: support --skip
+ - builtin rebase: support --continue
+ (this branch is used by pk/rebase-in-c-4-opts, pk/rebase-in-c-5-test and pk/rebase-in-c-6-final; uses pk/rebase-in-c and pk/rebase-in-c-2-basic.)
+
+
+* pk/rebase-in-c-4-opts (2018-08-10) 18 commits
+ - builtin rebase: support --root
+ - builtin rebase: add support for custom merge strategies
+ - builtin rebase: support `fork-point` option
+ - merge-base --fork-point: extract libified function
+ - builtin rebase: support --rebase-merges[=[no-]rebase-cousins]
+ - builtin rebase: support `--allow-empty-message` option
+ - builtin rebase: support `--exec`
+ - builtin rebase: support `--autostash` option
+ - builtin rebase: support `-C` and `--whitespace=<type>`
+ - builtin rebase: support `--gpg-sign` option
+ - builtin rebase: support `--autosquash`
+ - builtin rebase: support `keep-empty` option
+ - builtin rebase: support `ignore-date` option
+ - builtin rebase: support `ignore-whitespace` option
+ - builtin rebase: support --committer-date-is-author-date
+ - builtin rebase: support --rerere-autoupdate
+ - builtin rebase: support --signoff
+ - builtin rebase: allow selecting the rebase "backend"
+ (this branch is used by pk/rebase-in-c-5-test and pk/rebase-in-c-6-final; uses pk/rebase-in-c, pk/rebase-in-c-2-basic and pk/rebase-in-c-3-acts.)
+
+
+* pk/rebase-in-c-5-test (2018-08-10) 6 commits
+ - builtin rebase: error out on incompatible option/mode combinations
+ - builtin rebase: use no-op editor when interactive is "implied"
+ - builtin rebase: show progress when connected to a terminal
+ - builtin rebase: fast-forward to onto if it is a proper descendant
+ - builtin rebase: optionally pass custom reflogs to reset_head()
+ - builtin rebase: optionally auto-detect the upstream
+ (this branch is used by pk/rebase-in-c-6-final; uses pk/rebase-in-c, pk/rebase-in-c-2-basic, pk/rebase-in-c-3-acts and pk/rebase-in-c-4-opts.)
+
+
+* pk/rebase-in-c-6-final (2018-08-10) 1 commit
+ - rebase: default to using the builtin rebase
+ (this branch uses pk/rebase-in-c, pk/rebase-in-c-2-basic, pk/rebase-in-c-3-acts, pk/rebase-in-c-4-opts and pk/rebase-in-c-5-test.)
+
+
+* ps/stash-in-c (2018-08-08) 26 commits
+ - stash: replace all "git apply" child processes with API calls
+ - stash: replace all `write-tree` child processes with API calls
+ - stash: optimize `get_untracked_files()` and `check_changes()`
+ - stash: convert `stash--helper.c` into `stash.c`
+ - stash: convert save to builtin
+ - stash: replace spawning `git ls-files` child process
+ - stash: add tests for `git stash push -q`
+ - stash: make push to be quiet
+ - stash: convert push to builtin
+ - stash: avoid spawning a "diff-index" process
+ - stash: replace spawning a "read-tree" process
+ - stash: convert create to builtin
+ - stash: convert store to builtin
+ - stash: update `git stash show` documentation
+ - stash: refactor `show_stash()` to use the diff API
+ - stash: change `git stash show` usage text and documentation
+ - stash: convert show to builtin
+ - stash: implement the "list" command in the builtin
+ - stash: convert pop to builtin
+ - stash: convert branch to builtin
+ - stash: convert drop and clear to builtin
+ - stash: convert apply to builtin
+ - stash: renamed test cases to be more descriptive
+ - stash: update test cases conform to coding guidelines
+ - stash: improve option parsing test coverage
+ - sha1-name.c: added 'get_oidf', which acts like 'get_oid'
+
+
+* pw/rebase-i-squash-number-fix (2018-08-15) 2 commits
+ - squash??? if this is easier to read
+ - rebase -i: fix numbering in squash message
+
+ When "git rebase -i" is told to squash two or more commits into
+ one, it labeled the log message for each commit with its number.
+ It correctly called the first one "1st commit", but the next one
+ was "commit #1", which was off-by-one.  This has been corrected.
+
+ Will merge to 'next' after dropping the clean-up at the tip.
+
+
+* sb/pull-rebase-submodule (2018-08-14) 1 commit
+  (merged to 'next' on 2018-08-15 at 07c7b55cc9)
+ + git-submodule.sh: accept verbose flag in cmd_update to be non-quiet
+
+ "git pull --rebase -v" in a repository with a submodule barfed as
+ an intermediate process did not understand what "-v(erbose)" flag
+ meant, which has been fixed.
 
+ Will merge to 'master'.
+
+
+* sg/t5310-empty-input-fix (2018-08-14) 1 commit
+  (merged to 'next' on 2018-08-15 at c3c03973a0)
+ + t5310-pack-bitmaps: fix bogus 'pack-objects to file can use bitmap' test
+
+ Test fix.
+
+ Will merge to 'master'.
 
 --------------------------------------------------
 [Stalled]
 
+* bp/checkout-new-branch-optim (2018-07-31) 1 commit
+ - checkout: optimize "git checkout -b <new_branch>"
+
+ "git checkout -b newbranch [HEAD]" should not have to do as much as
+ checking out a commit different from HEAD.  An attempt is made to
+ optimize this special case.
+
+ So... what is the status of this thing?  Is the other "optimize
+ unpack-trees" effort turning out to be a safer and less hacky way
+ to achieve similar gain and this no longer is needed?
+
+
+* sl/commit-dry-run-with-short-output-fix (2018-07-30) 4 commits
+ . commit: fix exit code when doing a dry run
+ . wt-status: teach wt_status_collect about merges in progress
+ . wt-status: rename commitable to committable
+ . t7501: add coverage for flags which imply dry runs
+
+ "git commit --dry-run" gave a correct exit status even during a
+ conflict resolution toward a merge, but it did not with the
+ "--short" option, which has been corrected.
+
+ Seems to break 7512, 3404 and 7060 in 'pu'.
+
+
 * ma/wrapped-info (2018-05-28) 2 commits
  - usage: prefix all lines in `vreportf()`, not just the first
  - usage: extract `prefix_suffix_lines()` from `advise()`
@@ -176,42 +826,151 @@ of the repositories listed at
  in the thread above---we are still waiting for a reroll.
 
 
-* jk/drop-ancient-curl (2017-08-09) 5 commits
- - http: #error on too-old curl
- - curl: remove ifdef'd code never used with curl >=7.19.4
- - http: drop support for curl < 7.19.4
- - http: drop support for curl < 7.16.0
- - http: drop support for curl < 7.11.1
+* jk/drop-ancient-curl (2017-08-09) 5 commits
+ - http: #error on too-old curl
+ - curl: remove ifdef'd code never used with curl >=7.19.4
+ - http: drop support for curl < 7.19.4
+ - http: drop support for curl < 7.16.0
+ - http: drop support for curl < 7.11.1
+
+ Some code in http.c that has bitrot is being removed.
+
+ Expecting a reroll.
+
+
+* mk/use-size-t-in-zlib (2017-08-10) 1 commit
+ . zlib.c: use size_t for size
+
+ The wrapper to call into zlib followed our long tradition to use
+ "unsigned long" for sizes of regions in memory, which have been
+ updated to use "size_t".
+
+ Needs resurrecting by making sure the fix is good and still applies
+ (or adjusted to today's codebase).
+
+--------------------------------------------------
+[Cooking]
+
+* js/rebase-merges-exec-fix (2018-08-09) 2 commits
+  (merged to 'next' on 2018-08-15 at 9de975d92d)
+ + rebase --exec: make it work with --rebase-merges
+ + t3430: demonstrate what -r, --autosquash & --exec should do
+
+ The "--exec" option to "git rebase --rebase-merges" placed the exec
+ commands at wrong places, which has been corrected.
+
+ Will merge to 'master'.
+
+
+* nd/no-extern (2018-08-03) 12 commits
+  (merged to 'next' on 2018-08-08 at bcce75766b)
+ + submodule.h: drop extern from function declaration
+ + revision.h: drop extern from function declaration
+ + repository.h: drop extern from function declaration
+ + rerere.h: drop extern from function declaration
+ + line-range.h: drop extern from function declaration
+ + diff.h: remove extern from function declaration
+ + diffcore.h: drop extern from function declaration
+ + convert.h: drop 'extern' from function declaration
+ + cache-tree.h: drop extern from function declaration
+ + blame.h: drop extern on func declaration
+ + attr.h: drop extern from function declaration
+ + apply.h: drop extern on func declaration
+ (this branch is used by nd/no-the-index.)
+
+ Noiseword "extern" has been removed from function decls in the
+ header files.
+
+ Will merge to 'master'.
+
+
+* ar/t4150-am-scissors-test-fix (2018-08-06) 1 commit
+  (merged to 'next' on 2018-08-08 at e639183205)
+ + t4150: fix broken test for am --scissors
+
+ Test fix.
+
+ Will merge to 'master'.
+
+
+* en/t3031-title-fix (2018-08-06) 1 commit
+  (merged to 'next' on 2018-08-08 at 3913b03884)
+ + t3031: update test description to mention desired behavior
+
+ Test fix.
+
+ Will merge to 'master'.
+
+
+* hn/config-in-code-comment (2018-08-06) 1 commit
+  (merged to 'next' on 2018-08-08 at 1fae946a0f)
+ + config: document git config getter return value
+
+ Header update.
+
+ Will merge to 'master'.
+
+
+* jk/diff-rendered-docs (2018-08-06) 1 commit
+  (merged to 'next' on 2018-08-08 at fe6e1b4dbe)
+ + add a script to diff rendered documentation
+
+ Developer support to allow the end result of documentation update
+ to be inspected more easily.
+
+ Will merge to 'master'.
+
+
+* js/pull-rebase-type-shorthand (2018-08-06) 1 commit
+  (merged to 'next' on 2018-08-08 at 9213756b36)
+ + pull --rebase=<type>: allow single-letter abbreviations for the type
+
+ "git pull --rebase=interactive" learned "i" as a short-hand for
+ "interactive".
+
+ Will merge to 'master'.
+
+
+* nd/complete-config-vars (2018-08-06) 1 commit
+  (merged to 'next' on 2018-08-08 at ffc8e1a3cd)
+ + Makefile: add missing dependency for command-list.h
+
+ Build fix.
+
+ Will merge to 'master'.
+
+
+* nd/config-blame-sort (2018-08-06) 1 commit
+  (merged to 'next' on 2018-08-08 at 34ebb9888f)
+ + config.txt: reorder blame stuff to keep config keys sorted
 
Some code in http.c that has bitrot is being removed.
Doc fix.
 
Expecting a reroll.
Will merge to 'master'.
 
 
-* mk/use-size-t-in-zlib (2017-08-10) 1 commit
- . zlib.c: use size_t for size
+* wc/make-funnynames-shared-lazy-prereq (2018-08-06) 1 commit
+ - t: factor out FUNNYNAMES as shared lazy prereq
 
- The wrapper to call into zlib followed our long tradition to use
- "unsigned long" for sizes of regions in memory, which have been
updated to use "size_t".
+ A test prerequisite defined by various test scripts with slightly
+ different sematics has been consolidated into a single copy and
made into a lazily defined one.
 
- Needs resurrecting by making sure the fix is good and still applies
- (or adjusted to today's codebase).
+ Will merge to 'next'.
 
---------------------------------------------------
-[Cooking]
 
 * ab/fsck-transfer-updates (2018-07-27) 10 commits
- - fsck: test and document unknown fsck.<msg-id> values
- - fsck: add stress tests for fsck.skipList
- - fsck: test & document {fetch,receive}.fsck.* config fallback
- - fetch: implement fetch.fsck.*
- - transfer.fsckObjects tests: untangle confusing setup
- - config doc: elaborate on fetch.fsckObjects security
- - config doc: elaborate on what transfer.fsckObjects does
- - config doc: unify the description of fsck.* and receive.fsck.*
- - config doc: don't describe *.fetchObjects twice
- - receive.fsck.<msg-id> tests: remove dead code
+  (merged to 'next' on 2018-08-08 at d92085269f)
+ + fsck: test and document unknown fsck.<msg-id> values
+ + fsck: add stress tests for fsck.skipList
+ + fsck: test & document {fetch,receive}.fsck.* config fallback
+ + fetch: implement fetch.fsck.*
+ + transfer.fsckObjects tests: untangle confusing setup
+ + config doc: elaborate on fetch.fsckObjects security
+ + config doc: elaborate on what transfer.fsckObjects does
+ + config doc: unify the description of fsck.* and receive.fsck.*
+ + config doc: don't describe *.fetchObjects twice
+ + receive.fsck.<msg-id> tests: remove dead code
 
  The test performed at the receiving end of "git push" to prevent
  bad objects from entering repository can be customized via
@@ -219,155 +978,100 @@ of the repositories listed at
  counterpart to do the same on the "git fetch" side, with
  fetch.fsck.* configuration variables.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * ab/test-must-be-empty (2018-07-30) 1 commit
- - tests: make use of the test_must_be_empty function
+  (merged to 'next' on 2018-08-08 at 06599ebd1f)
+ + tests: make use of the test_must_be_empty function
 
  Test updates.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * ab/test-must-be-empty-for-master (2018-07-30) 1 commit
- - tests: make use of the test_must_be_empty function
+  (merged to 'next' on 2018-08-15 at 17652a77fb)
+ + tests: make use of the test_must_be_empty function
 
  Test updates.
 
- Did anybody spot incorrect conversion in this yet?
-
-
-* cb/p4-pre-submit-hook (2018-08-01) 1 commit
-  (merged to 'next' on 2018-08-06 at e40ae4af80)
- + git-p4: add the `p4-pre-submit` hook
-
- "git p4 submit" learns to ask its own pre-submit hook if it should
- continue with submitting.
-
  Will merge to 'master'.
 
 
 * es/rebase-i-author-script-fix (2018-07-31) 4 commits
- - sequencer: don't die() on bogus user-edited timestamp
- - sequencer: fix "rebase -i --root" corrupting author header timestamp
- - sequencer: fix "rebase -i --root" corrupting author header timezone
- - sequencer: fix "rebase -i --root" corrupting author header
+  (merged to 'next' on 2018-08-08 at 6b34261b72)
+ + sequencer: don't die() on bogus user-edited timestamp
+ + sequencer: fix "rebase -i --root" corrupting author header timestamp
+ + sequencer: fix "rebase -i --root" corrupting author header timezone
+ + sequencer: fix "rebase -i --root" corrupting author header
  (this branch is used by pw/rebase-i-author-script-fix.)
 
  The "author-script" file "git rebase -i" creates got broken when
  we started to move the command away from shell script, which is
  getting fixed now.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* hn/highlight-sideband-keywords (2018-08-06) 2 commits
- - SQUASH???
- sideband: highlight keywords in remote sideband output
+* hn/highlight-sideband-keywords (2018-08-08) 1 commit
+  (merged to 'next' on 2018-08-15 at f8945f3be5)
+ sideband: highlight keywords in remote sideband output
 
  The sideband code learned to optionally paint selected keywords at
  the beginning of incoming lines on the receiving end.
 
-
-* jn/subtree-test-fixes (2018-07-30) 2 commits
-  (merged to 'next' on 2018-08-06 at 62f21c328f)
- + subtree test: simplify preparation of expected results
- + subtree test: add missing && to &&-chain
-
- Test fix.
-
- Will merge to 'master'.
-
-
-* ms/http-proto-doc (2018-07-30) 1 commit
-  (merged to 'next' on 2018-08-06 at df1cac9945)
- + doc: fix want-capability separator
-
- Doc fix.
-
- Will merge to 'master'.
-
-
-* nd/pack-objects-threading-doc (2018-07-30) 1 commit
-  (merged to 'next' on 2018-08-06 at cc8c305191)
- + pack-objects: document about thread synchronization
-
- Doc fix.
-
  Will merge to 'master'.
 
 
 * sb/indent-heuristic-optim (2018-08-01) 1 commit
- - xdiff: reduce indent heuristic overhead
+  (merged to 'next' on 2018-08-08 at 539dcc967a)
+ + xdiff: reduce indent heuristic overhead
 
  "git diff --indent-heuristic" had a bad corner case performance.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * ab/fetch-nego (2018-08-01) 3 commits
- - fetch doc: cross-link two new negotiation options
- - negotiator: unknown fetch.negotiationAlgorithm should error out
- - Merge branch 'jt/fetch-nego-tip' into ab/fetch-nego
+  (merged to 'next' on 2018-08-08 at 87662bb344)
+ + fetch doc: cross-link two new negotiation options
+ + negotiator: unknown fetch.negotiationAlgorithm should error out
+ + Merge branch 'jt/fetch-nego-tip' into ab/fetch-nego
 
  Update to a few other topics.
 
- Will merge to 'next'.
-
-
-* ab/fetch-tags-noclobber (2018-07-31) 10 commits
- - fetch: stop clobbering existing tags without --force
- - pull doc: fix a long-standing grammar error
- - fetch tests: add a test clobbering tag behavior
- - fetch tests: correct a comment "remove it" -> "remove them"
- - push doc: correct lies about how push refspecs work
- - push tests: assert re-pushing annotated tags
- - push tests: add more testing for forced tag pushing
- - push tests: fix logic error in "push" test assertion
- - push tests: remove redundant 'git push' invocation
- - fetch tests: change "Tag" test tag to "testTag"
-
- "git fetch" used to apply the same "fast-forward" rule and allow
- tags to move without "--force" option, which made little sense,
- which has been corrected.
-
- Expecting a reroll.
- cf. <xmqq4lgfcn5a.fsf@gitster-ct.c.googlers.com>
- cf. <xmqqzhy7b7v9.fsf@gitster-ct.c.googlers.com>
-
-
-* bp/checkout-new-branch-optim (2018-07-31) 1 commit
- - checkout: optimize "git checkout -b <new_branch>"
-
- "git checkout -b newbranch [HEAD]" should not have to do as much as
- checking out a commit different from HEAD.  An attempt is made to
- optimize this special case.
-
- Waiting for review comments to be responded.
- cf. <CACsJy8DMEMsDnKZc65K-0EJcm2udXZ7OKY=xoFmX4COM0dSH=g@mail.gmail.com>
+ Will merge to 'master'.
 
 
-* es/mw-to-git-chain-fix (2018-07-31) 1 commit
-  (merged to 'next' on 2018-08-06 at c10246e1c8)
- + mw-to-git/t9360: fix broken &&-chain
+* ab/fetch-tags-noclobber (2018-08-13) 7 commits
+  (merged to 'next' on 2018-08-15 at eca0ac8afa)
+ + pull doc: fix a long-standing grammar error
+ + fetch tests: correct a comment "remove it" -> "remove them"
+ + push tests: assert re-pushing annotated tags
+ + push tests: add more testing for forced tag pushing
+ + push tests: fix logic error in "push" test assertion
+ + push tests: remove redundant 'git push' invocation
+ + fetch tests: change "Tag" test tag to "testTag"
 
- Test fix.
+ Test and doc clean-ups.
 
  Will merge to 'master'.
 
 
 * jk/merge-subtree-heuristics (2018-08-02) 1 commit
- - score_trees(): fix iteration over trees with missing entries
+  (merged to 'next' on 2018-08-08 at 5126c2d717)
+ + score_trees(): fix iteration over trees with missing entries
 
  The automatic tree-matching in "git merge -s subtree" was broken 5
  years ago and nobody has noticed since then, which is now fixed.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * jt/refspec-dwim-precedence-fix (2018-08-02) 1 commit
- - remote: make refspec follow the same disambiguation rule as local refs
+  (merged to 'next' on 2018-08-08 at 34d0484d3a)
+ + remote: make refspec follow the same disambiguation rule as local refs
 
  "git fetch $there refs/heads/s" ought to fetch the tip of the
  branch 's', but when "refs/heads/refs/heads/s", i.e. a branch whose
@@ -375,10 +1079,11 @@ of the repositories listed at
  instead by mistake.  This has been corrected to honor the usual
  disambiguation rules for abbreviated refnames.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* nd/clone-case-smashing-warning (2018-07-31) 1 commit
+* nd/clone-case-smashing-warning (2018-08-14) 2 commits
+ - mark_colliding_entries(): fix incorrect #if...#endif guard
  - clone: report duplicate entries on case-insensitive filesystems
 
  Running "git clone" against a project that contain two files with
@@ -387,19 +1092,16 @@ of the repositories listed at
  underlying filesystem is incapable of holding both at the same
  time.  An attempt is made to detect such a case and warn.
 
- Discussion getting petered out.
- Doing this portably and extending it to UTF-8 normalization issue
- HFS+ has would be costly.
+ Expecting a new round of discussion.
+ cf. <20180815190816.GA26521@tor.lan>
 
- cf. <20180728095659.GA21450@sigill.intra.peff.net>
- cf. <xmqq1sbh7phx.fsf@gitster-ct.c.googlers.com>
 
-
-* nd/unpack-trees-with-cache-tree (2018-08-06) 4 commits
- - unpack-trees: cheaper index update when walking by cache-tree
+* nd/unpack-trees-with-cache-tree (2018-08-13) 5 commits
+ - unpack-trees: reuse (still valid) cache-tree from src_index
  - unpack-trees: reduce malloc in cache-tree walk
  - unpack-trees: optimize walking same trees with cache-tree
  - unpack-trees: add performance tracing
+ - trace.h: support nested performance tracing
 
  The unpack_trees() API used in checking out a branch and merging
  walks one or more trees along with the index.  When the cache-tree
@@ -409,17 +1111,10 @@ of the repositories listed at
  open tree objects recursively and listing their entries, the walk
  can be optimized, which is done in this topic.
 
-
-* rs/remote-mv-leakfix (2018-08-01) 1 commit
-  (merged to 'next' on 2018-08-06 at 999fe6d3e5)
- + remote: clear string_list after use in mv()
-
- Leakfix.
-
- Will merge to 'master'.
+ Will merge to and cook in 'next'.
 
 
-* sb/config-write-fix (2018-08-01) 3 commits
+* sb/config-write-fix (2018-08-08) 3 commits
  - git-config: document accidental multi-line setting in deprecated syntax
  - config: fix case sensitive subsection names on writing
  - t1300: document current behavior of setting options
@@ -431,10 +1126,9 @@ of the repositories listed at
  cf. <CAGZ79kZ1R8sxmtfgPOQcpoWM7GWV1qiRaqMq_zhGyKBB3ARLjg@mail.gmail.com>
 
 
-* sb/range-diff-colors (2018-08-01) 9 commits
- - fixup! t3206: add color test for range-diff --dual-color
+* sb/range-diff-colors (2018-08-14) 8 commits
  - diff.c: rewrite emit_line_0 more understandably
- - diff.c: compute reverse locally in emit_line_0
+ - diff.c: omit check for line prefix in emit_line_0
  - diff: use emit_line_0 once per line
  - diff.c: add set_sign to emit_line_0
  - diff.c: reorder arguments for emit_line_ws_markup
@@ -443,6 +1137,9 @@ of the repositories listed at
  - test_decode_color: understand FAINT and ITALIC
  (this branch uses js/range-diff; is tangled with es/format-patch-rangediff.)
 
+ The color output support for recently introduced "range-diff"
+ command got tweaked a bit.
+
 
 * sg/t1404-update-ref-test-timeout (2018-08-01) 1 commit
  - t1404: increase core.packedRefsTimeout to avoid occasional test failure
@@ -450,45 +1147,27 @@ of the repositories listed at
  An attempt to unflake a test a bit.
 
 
-* sg/travis-retrieve-trash-upon-failure (2018-08-01) 1 commit
-  (merged to 'next' on 2018-08-06 at d67def2a92)
- + travis-ci: include the trash directories of failed tests in the trace log
-
- The Travis CI scripts were taught to ship back the test data from
- failed tests.
-
- Will merge to 'master'.
-
-
-* jt/connectivity-check-after-unshallow (2018-08-01) 1 commit
-  (merged to 'next' on 2018-08-06 at 1932418f46)
- + fetch-pack: unify ref in and out param
-
- "git fetch" sometimes failed to update the remote-tracking refs,
- which has been corrected.
-
- Will merge to 'master'.
-
-
 * ab/sha1dc (2018-08-02) 1 commit
- - sha1dc: update from upstream
+  (merged to 'next' on 2018-08-08 at 920c190941)
+ + sha1dc: update from upstream
 
- AIX portability update for SHADC hash, imported from upstream.
+ AIX portability update for SHA1DC hash, imported from upstream.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * es/want-color-fd-defensive (2018-08-03) 1 commit
- - color: protect against out-of-bounds reads and writes
+  (merged to 'next' on 2018-08-08 at a11d90d26f)
+ + color: protect against out-of-bounds reads and writes
 
  Futureproofing a helper function that can easily misused.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
-* pw/rebase-i-author-script-fix (2018-08-02) 2 commits
+* pw/rebase-i-author-script-fix (2018-08-07) 2 commits
  - sequencer: fix quoting in write_author_script
- - sequencer: handle errors in read_author_ident()
+ - sequencer: handle errors from read_author_ident()
  (this branch uses es/rebase-i-author-script-fix.)
 
  Recent "git rebase -i" update started to write bogusly formatted
@@ -501,13 +1180,14 @@ of the repositories listed at
 
 
 * rs/parse-opt-lithelp (2018-08-03) 7 commits
- - parse-options: automatically infer PARSE_OPT_LITERAL_ARGHELP
- - shortlog: correct option help for -w
- - send-pack: specify --force-with-lease argument help explicitly
- - pack-objects: specify --index-version argument help explicitly
- - difftool: remove angular brackets from argument help
- - add, update-index: fix --chmod argument help
- - push: use PARSE_OPT_LITERAL_ARGHELP instead of unbalanced brackets
+  (merged to 'next' on 2018-08-08 at 3a4e0142fe)
+ + parse-options: automatically infer PARSE_OPT_LITERAL_ARGHELP
+ + shortlog: correct option help for -w
+ + send-pack: specify --force-with-lease argument help explicitly
+ + pack-objects: specify --index-version argument help explicitly
+ + difftool: remove angular brackets from argument help
+ + add, update-index: fix --chmod argument help
+ + push: use PARSE_OPT_LITERAL_ARGHELP instead of unbalanced brackets
 
  The parse-options machinery learned to refrain from enclosing
  placeholder string inside a "<bra" and "ket>" pair automatically
@@ -515,17 +1195,6 @@ of the repositories listed at
  arguments that are not formatted correctly have been identified and
  fixed.
 
- Will merge to 'next'.
-
-
-* es/diff-color-moved-fix (2018-07-25) 1 commit
-  (merged to 'next' on 2018-08-02 at 233bccfbfb)
- + diff: --color-moved: rename "dimmed_zebra" to "dimmed-zebra"
-
- One of the "diff --color-moved" mode "dimmed_zebra" that was named
- in an unusual way has been deprecated and replaced by
- "dimmed-zebra".
-
  Will merge to 'master'.
 
 
@@ -535,146 +1204,51 @@ of the repositories listed at
  - add -p: select modified lines correctly
  - add -p: select individual hunk lines
 
- "git add -p" interactive interface learned to let users choose
- individual added/removed lines to be used in the operation, instead
- of accepting or rejecting a whole hunk.
-
- Will hold.
- cf. <d622a95b-7302-43d4-4ec9-b2cf3388c653@talktalk.net>
- I found the feature to be hard to explain, and may result in more
- end-user complaints, but let's see.
-
-
-* mk/http-backend-content-length (2018-07-30) 4 commits
- - t5562: avoid non-portable "export FOO=bar" construct
- - http-backend: respect CONTENT_LENGTH for receive-pack
- - http-backend: respect CONTENT_LENGTH as specified by rfc3875
- - http-backend: cleanup writing to child process
-
- The http-backend (used for smart-http transport) used to slurp the
- whole input until EOF, without paying attention to CONTENT_LENGTH
- that is supplied in the environment and instead expecting the Web
- server to close the input stream.  This has been fixed.
-
- Will merge to 'next'.
-
-
-* ds/commit-graph-with-grafts (2018-07-19) 8 commits
-  (merged to 'next' on 2018-08-02 at 0ee624e329)
- + commit-graph: close_commit_graph before shallow walk
- + commit-graph: not compatible with uninitialized repo
- + commit-graph: not compatible with grafts
- + commit-graph: not compatible with replace objects
- + test-repository: properly init repo
- + commit-graph: update design document
- + refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback
- + refs.c: migrate internal ref iteration to pass thru repository argument
-
- The recently introduced commit-graph auxiliary data is incompatible
- with mechanisms such as replace & grafts that "breaks" immutable
- nature of the object reference relationship.  Disable optimizations
- based on its use (and updating existing commit-graph) when these
- incompatible features are in use in the repository.
-
- Will cook in 'next'.
-
-
-* jk/core-use-replace-refs (2018-07-18) 3 commits
-  (merged to 'next' on 2018-08-02 at 90fb6b1056)
- + add core.usereplacerefs config option
- + check_replace_refs: rename to read_replace_refs
- + check_replace_refs: fix outdated comment
-
- A new configuration variable core.usereplacerefs has been added,
- primarily to help server installations that want to ignore the
- replace mechanism altogether.
-
- Will merge to 'master'.
-
-
-* nd/i18n (2018-07-23) 23 commits
-  (merged to 'next' on 2018-08-02 at 904a22a5d1)
- + transport-helper.c: mark more strings for translation
- + transport.c: mark more strings for translation
- + sha1-file.c: mark more strings for translation
- + sequencer.c: mark more strings for translation
- + replace-object.c: mark more strings for translation
- + refspec.c: mark more strings for translation
- + refs.c: mark more strings for translation
- + pkt-line.c: mark more strings for translation
- + object.c: mark more strings for translation
- + exec-cmd.c: mark more strings for translation
- + environment.c: mark more strings for translation
- + dir.c: mark more strings for translation
- + convert.c: mark more strings for translation
- + connect.c: mark more strings for translation
- + config.c: mark more strings for translation
- + commit-graph.c: mark more strings for translation
- + builtin/replace.c: mark more strings for translation
- + builtin/pack-objects.c: mark more strings for translation
- + builtin/grep.c: mark strings for translation
- + builtin/config.c: mark more strings for translation
- + archive-zip.c: mark more strings for translation
- + archive-tar.c: mark more strings for translation
- + Update messages in preparation for i18n
-
- Many more strings are prepared for l10n.
-
- Will merge to 'master'.
-
-
-* sb/histogram-less-memory (2018-07-23) 4 commits
-  (merged to 'next' on 2018-08-02 at cfb02aa3b5)
- + xdiff/histogram: remove tail recursion
- + xdiff/xhistogram: move index allocation into find_lcs
- + xdiff/xhistogram: factor out memory cleanup into free_index()
- + xdiff/xhistogram: pass arguments directly to fall_back_to_classic_diff
-
- "git diff --histogram" had a bad memory usage pattern, which has
- been rearranged to reduce the peak usage.
-
- Will merge to 'master'.
-
-
-* bb/make-developer-pedantic (2018-07-25) 1 commit
-  (merged to 'next' on 2018-08-02 at c738a84b7e)
- + Makefile: add a DEVOPTS flag to get pedantic compilation
-
- "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
- with -pedantic option, which may catch more problematic program
- constructs and potential bugs.
-
- Will merge to 'master'.
-
-
-* bw/clone-ref-prefixes (2018-07-20) 1 commit
-  (merged to 'next' on 2018-08-02 at c8ad140ab0)
- + clone: send ref-prefixes when using protocol v2
-
- The wire-protocol v2 relies on the client to send "ref prefixes" to
- limit the bandwidth spent on the initial ref advertisement.  "git
- clone" when learned to speak v2 forgot to do so, which has been
- corrected.
+ "git add -p" interactive interface learned to let users choose
+ individual added/removed lines to be used in the operation, instead
+ of accepting or rejecting a whole hunk.
 
- Will merge to 'master'.
+ Will hold.
+ cf. <d622a95b-7302-43d4-4ec9-b2cf3388c653@talktalk.net>
+ I found the feature to be hard to explain, and may result in more
+ end-user complaints, but let's see.
 
 
-* bw/fetch-pack-i18n (2018-07-23) 1 commit
-  (merged to 'next' on 2018-08-02 at df72001755)
- + fetch-pack: mark die strings for translation
+* mk/http-backend-content-length (2018-07-30) 4 commits
+  (merged to 'next' on 2018-08-08 at 0091062ec4)
+ + t5562: avoid non-portable "export FOO=bar" construct
+ + http-backend: respect CONTENT_LENGTH for receive-pack
+ + http-backend: respect CONTENT_LENGTH as specified by rfc3875
+ + http-backend: cleanup writing to child process
 
- i18n updates.
+ The http-backend (used for smart-http transport) used to slurp the
+ whole input until EOF, without paying attention to CONTENT_LENGTH
+ that is supplied in the environment and instead expecting the Web
+ server to close the input stream.  This has been fixed.
 
  Will merge to 'master'.
 
 
-* bw/protocol-v2 (2018-07-24) 1 commit
-  (merged to 'next' on 2018-08-02 at f4076b3e94)
- + pack-protocol: mention and point to docs for protocol v2
+* ds/commit-graph-with-grafts (2018-07-19) 8 commits
+  (merged to 'next' on 2018-08-02 at 0ee624e329)
+ + commit-graph: close_commit_graph before shallow walk
+ + commit-graph: not compatible with uninitialized repo
+ + commit-graph: not compatible with grafts
+ + commit-graph: not compatible with replace objects
+ + test-repository: properly init repo
+ + commit-graph: update design document
+ + refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback
+ + refs.c: migrate internal ref iteration to pass thru repository argument
 
- Doc update.
+ The recently introduced commit-graph auxiliary data is incompatible
+ with mechanisms such as replace & grafts that "breaks" immutable
+ nature of the object reference relationship.  Disable optimizations
+ based on its use (and updating existing commit-graph) when these
+ incompatible features are in use in the repository.
 
- Will merge to 'master'.
+ Perhaps eject and replace with another reroll when it comes.
+ cf. <a3640919-95cf-cca4-d552-4715a031dd7f@gmail.com>
+ cf. <86bmap7l7a.fsf@gmail.com>
 
 
 * ds/reachable (2018-07-20) 18 commits
@@ -704,22 +1278,6 @@ of the repositories listed at
  Will merge to and cook in 'next'.
 
 
-* en/merge-recursive-skip-fix (2018-07-27) 2 commits
-  (merged to 'next' on 2018-08-06 at 9ab321a15c)
- + merge-recursive: preserve skip_worktree bit when necessary
- + t3507: add a testcase showing failure with sparse checkout
-
- When the sparse checkout feature is in use, "git cherry-pick" and
- other mergy operations lost the skip_worktree bit when a path that
- is excluded from checkout requires content level merge, which is
- resolved as the same as the HEAD version, without materializing the
- merge result in the working tree, which made the path appear as
- deleted.  This has been corrected by preserving the skip_worktree
- bit (and not materializing the file in the working tree).
-
- Will merge to 'master'.
-
-
 * es/format-patch-interdiff (2018-07-23) 6 commits
  - format-patch: allow --interdiff to apply to a lone-patch
  - log-tree: show_log: make commentary block delimiting reusable
@@ -737,7 +1295,7 @@ of the repositories listed at
  cf. <CAPig+cSuYUYSPTuKx08wcmQM-G12_-W2T4BS07fA=6grM1b8Gw@mail.gmail.com>
 
 
-* es/format-patch-rangediff (2018-07-30) 10 commits
+* es/format-patch-rangediff (2018-08-14) 10 commits
  - format-patch: allow --range-diff to apply to a lone-patch
  - format-patch: add --creation-factor tweak for --range-diff
  - format-patch: teach --range-diff to respect -v/--reroll-count
@@ -757,76 +1315,6 @@ of the repositories listed at
  Need to wait for the prereq topics to solidify a bit more.
 
 
-* jk/banned-function (2018-07-26) 5 commits
-  (merged to 'next' on 2018-08-06 at 3dcd1999df)
- + banned.h: mark strncpy() as banned
- + banned.h: mark sprintf() as banned
- + banned.h: mark strcat() as banned
- + automatically ban strcpy()
- + Merge branch 'sb/blame-color' into jk/banned-function
-
- It is too easy to misuse system API functions such as strcat();
- these selected functions are now forbidden in this codebase and
- will cause a compilation failure.
-
- Will merge to 'master'.
-
-
-* jk/size-t (2018-07-24) 6 commits
-  (merged to 'next' on 2018-08-02 at 6f861e05f0)
- + strbuf_humanise: use unsigned variables
- + pass st.st_size as hint for strbuf_readlink()
- + strbuf_readlink: use ssize_t
- + strbuf: use size_t for length in intermediate variables
- + reencode_string: use size_t for string lengths
- + reencode_string: use st_add/st_mult helpers
-
- Code clean-up to use size_t/ssize_t when they are the right type.
-
- Will merge to 'master'.
-
-
-* js/t7406-recursive-submodule-update-order-fix (2018-07-23) 1 commit
-  (merged to 'next' on 2018-08-02 at 217ea36a37)
- + t7406: avoid failures solely due to timing issues
-
- Test fix.
-
- Will merge to 'master'.
-
-
-* js/vscode (2018-07-30) 9 commits
-  (merged to 'next' on 2018-08-06 at 5c578b63a8)
- + vscode: let cSpell work on commit messages, too
- + vscode: add a dictionary for cSpell
- + vscode: use 8-space tabs, no trailing ws, etc for Git's source code
- + vscode: wrap commit messages at column 72 by default
- + vscode: only overwrite C/C++ settings
- + mingw: define WIN32 explicitly
- + cache.h: extract enum declaration from inside a struct declaration
- + vscode: hard-code a couple defines
- + contrib: add a script to initialize VS Code configuration
-
- Add a script (in contrib/) to help users of VSCode work better with
- our codebase.
-
- Will merge to 'master'.
-
-
-* jt/tag-following-with-proto-v2-fix (2018-07-24) 2 commits
-  (merged to 'next' on 2018-08-02 at d9eabdea95)
- + fetch: send "refs/tags/" prefix upon CLI refspecs
- + t5702: test fetch with multiple refspecs at a time
-
- The wire-protocol v2 relies on the client to send "ref prefixes" to
- limit the bandwidth spent on the initial ref advertisement.  "git
- fetch $remote branch:branch" that asks tags that point into the
- history leading to the "branch" automatically followed sent to
- narrow prefix and broke the tag following, which has been fixed.
-
- Will merge to 'master'.
-
-
 * nd/pack-deltify-regression-fix (2018-07-23) 1 commit
   (merged to 'next' on 2018-08-02 at f3b2bf0fef)
  + pack-objects: fix performance issues on packing large deltas
@@ -838,64 +1326,13 @@ of the repositories listed at
  Will cook in 'next'.
 
 
-* sb/trailers-docfix (2018-07-20) 1 commit
-  (merged to 'next' on 2018-08-02 at ba348fafcd)
- + Documentation/git-interpret-trailers: explain possible values
-
- Doc update.
-
- Will merge to 'master'.
-
-
-* sg/coccicheck-updates (2018-07-23) 5 commits
-  (merged to 'next' on 2018-08-02 at b5548ff3a9)
- + coccinelle: extract dedicated make target to clean Coccinelle's results
- + coccinelle: put sane filenames into output patches
- + coccinelle: exclude sha1dc source files from static analysis
- + coccinelle: use $(addsuffix) in 'coccicheck' make target
- + coccinelle: mark the 'coccicheck' make target as .PHONY
-
- Update the way we use Coccinelle to find out-of-style code that
- need to be modernised.
-
- Will merge to 'master'.
-
-
-* sg/fast-import-dump-refs-on-checkpoint-fix (2018-07-20) 1 commit
-  (merged to 'next' on 2018-08-02 at f5c05b5a2c)
- + t9300: wait for background fast-import process to die after killing it
-
- Test update.
-
- Will merge to 'master'.
-
-
-* sg/travis-cocci-diagnose-failure (2018-07-23) 2 commits
-  (merged to 'next' on 2018-08-02 at 54808a8778)
- + travis-ci: fail if Coccinelle static analysis found something to transform
- + travis-ci: run Coccinelle static analysis with two parallel jobs
-
- Update the way we run static analysis tool at TravisCI to make it
- easier to use its findings.
-
- Will merge to 'master'.
-
-
-* ab/newhash-is-sha256 (2018-08-06) 2 commits
- - doc hash-function-transition: pick SHA-256 as NewHash
- - doc hash-function-transition: note the lack of a changelog
+* ab/newhash-is-sha256 (2018-08-07) 2 commits
+  (merged to 'next' on 2018-08-15 at 2e808d75d3)
+ + doc hash-function-transition: pick SHA-256 as NewHash
+ + doc hash-function-transition: note the lack of a changelog
 
  Documentation update.
 
- Will Merge to 'next'.
-
-
-* bb/redecl-enum-fix (2018-07-26) 1 commit
-  (merged to 'next' on 2018-08-06 at 828dc4b156)
- + packfile: ensure that enum object_type is defined
-
- Compilation fix.
-
  Will merge to 'master'.
 
 
@@ -925,38 +1362,19 @@ of the repositories listed at
  - structured-logging: add structured logging framework
  - structured-logging: add STRUCTURED_LOGGING=1 to Makefile
  - structured-logging: design document
- (this branch uses jh/json-writer.)
 
  Will merge to 'next'.
 
 
 * en/abort-df-conflict-fixes (2018-07-31) 2 commits
- - read-cache: fix directory/file conflict handling in read_index_unmerged()
- - t1015: demonstrate directory/file conflict recovery failures
+  (merged to 'next' on 2018-08-08 at a19cad0bb7)
+ + read-cache: fix directory/file conflict handling in read_index_unmerged()
+ + t1015: demonstrate directory/file conflict recovery failures
 
  "git merge --abort" etc. did not clean things up properly when
  there were conflicted entries in certain order that are involved
  in D/F conflicts.  This has been corrected.
 
- Will merge to 'next'.
-
-
-* hs/gpgsm (2018-07-20) 7 commits
-  (merged to 'next' on 2018-08-02 at db28bffe4f)
- + gpg-interface t: extend the existing GPG tests with GPGSM
- + gpg-interface: introduce new signature format "x509" using gpgsm
- + gpg-interface: introduce new config to select per gpg format program
- + gpg-interface: do not hardcode the key string len anymore
- + gpg-interface: introduce an abstraction for multiple gpg formats
- + t/t7510: check the validation of the new config gpg.format
- + gpg-interface: add new config to select how to sign a commit
-
- Teach "git tag -s" etc. a few configuration varaibles (gpg.format
- that can be set to "openpgp" or "x509", and gpg.<format>.program
- that is used to specify what program to use to deal with the format)
- to allow x.509 certs with CMS via "gpgsm" to be used instead of
- openpgp via "gnupg".
-
  Will merge to 'master'.
 
 
@@ -976,7 +1394,7 @@ of the repositories listed at
  cf. <20180717201348.GD26218@sigill.intra.peff.net>
 
 
-* sb/submodule-update-in-c (2018-08-03) 7 commits
+* sb/submodule-update-in-c (2018-08-14) 7 commits
  - submodule--helper: introduce new update-module-mode helper
  - submodule--helper: replace connect-gitdir-workingtree by ensure-core-worktree
  - builtin/submodule--helper: factor out method to update a single submodule
@@ -990,19 +1408,6 @@ of the repositories listed at
  Will merge to and cook in 'next'.
 
 
-* sl/commit-dry-run-with-short-output-fix (2018-07-30) 4 commits
- . commit: fix exit code when doing a dry run
- . wt-status: teach wt_status_collect about merges in progress
- . wt-status: rename commitable to committable
- . t7501: add coverage for flags which imply dry runs
-
- "git commit --dry-run" gave a correct exit status even during a
- conflict resolution toward a merge, but it did not with the
- "--short" option, which has been corrected.
-
- Seems to break 7512, 3404 and 7060 in 'pu'.
-
-
 * tg/rerere (2018-08-06) 11 commits
  - rerere: recalculate conflict ID when unresolved conflict is committed
  - rerere: teach rerere to handle nested conflicts
@@ -1022,26 +1427,7 @@ of the repositories listed at
  Will merge to and cook in 'next'.
 
 
-* jk/ui-color-always-to-auto (2018-07-18) 1 commit
-  (merged to 'next' on 2018-08-02 at 1a054baf0e)
- + Documentation: fix --color option formatting
-
- Doc formatting fix.
-
- Will merge to 'master'.
-
-
-* jh/json-writer (2018-07-16) 1 commit
-  (merged to 'next' on 2018-08-02 at d841450c7d)
- + json_writer: new routines to create JSON data
- (this branch is used by jh/structured-logging.)
-
- Preparatory code to later add json output for telemetry data.
-
- Will merge to 'master'.
-
-
-* ag/rebase-i-in-c (2018-07-31) 20 commits
+* ag/rebase-i-in-c (2018-08-10) 20 commits
  - rebase -i: move rebase--helper modes to rebase--interactive
  - rebase -i: remove git-rebase--interactive.sh
  - rebase--interactive2: rewrite the submodes of interactive rebase in C
@@ -1061,43 +1447,43 @@ of the repositories listed at
  - rebase -i: rewrite the edit-todo functionality in C
  - editor: add a function to launch the sequence editor
  - rebase -i: rewrite append_todo_help() in C
- - sequencer: make two functions and an enum from sequencer.c public
+ - sequencer: make three functions and an enum from sequencer.c public
 
  Rewrite of the remaining "rebase -i" machinery in C.
 
  Will merge to 'next'.
 
 
-* js/range-diff (2018-07-30) 21 commits
- - range-diff: use dim/bold cues to improve dual color mode
- - range-diff: make --dual-color the default mode
- - range-diff: left-pad patch numbers
- - completion: support `git range-diff`
- - range-diff: populate the man page
- - range-diff --dual-color: fix bogus white-space warning
- - range-diff: offer to dual-color the diffs
- - diff: add an internal option to dual-color diffs of diffs
- - color: add the meta color GIT_COLOR_REVERSE
- - range-diff: use color for the commit pairs
- - range-diff: add tests
- - range-diff: do not show "function names" in hunk headers
- - range-diff: adjust the output of the commit pairs
- - range-diff: suppress the diff headers
- - range-diff: indent the diffs just like tbdiff
- - range-diff: right-trim commit messages
- - range-diff: also show the diff between patches
- - range-diff: improve the order of the shown commits
- - range-diff: first rudimentary implementation
- - Introduce `range-diff` to compare iterations of a topic branch
- - linear-assignment: a function to solve least-cost assignment problems
+* js/range-diff (2018-08-13) 21 commits
+  (merged to 'next' on 2018-08-15 at 8d56067806)
+ + range-diff: use dim/bold cues to improve dual color mode
+ + range-diff: make --dual-color the default mode
+ + range-diff: left-pad patch numbers
+ + completion: support `git range-diff`
+ + range-diff: populate the man page
+ + range-diff --dual-color: skip white-space warnings
+ + range-diff: offer to dual-color the diffs
+ + diff: add an internal option to dual-color diffs of diffs
+ + color: add the meta color GIT_COLOR_REVERSE
+ + range-diff: use color for the commit pairs
+ + range-diff: add tests
+ + range-diff: do not show "function names" in hunk headers
+ + range-diff: adjust the output of the commit pairs
+ + range-diff: suppress the diff headers
+ + range-diff: indent the diffs just like tbdiff
+ + range-diff: right-trim commit messages
+ + range-diff: also show the diff between patches
+ + range-diff: improve the order of the shown commits
+ + range-diff: first rudimentary implementation
+ + Introduce `range-diff` to compare iterations of a topic branch
+ + linear-assignment: a function to solve least-cost assignment problems
  (this branch is used by es/format-patch-rangediff and sb/range-diff-colors.)
 
  "git tbdiff" that lets us compare individual patches in two
  iterations of a topic has been rewritten and made into a built-in
  command.
 
- It seems there will another hopefully the final reroll coming.
- cf. <nycvar.QRO.7.76.6.1808011800570.71@tvgsbejvaqbjf.bet>
+ Will merge to 'master'.
 
 
 * lt/date-human (2018-07-09) 1 commit
@@ -1111,11 +1497,12 @@ of the repositories listed at
 
 
 * ot/ref-filter-object-info (2018-07-17) 5 commits
- - ref-filter: use oid_object_info() to get object
- - ref-filter: merge get_obj and get_object
- - ref-filter: initialize eaten variable
- - ref-filter: fill empty fields with empty values
- - ref-filter: add info_source to valid_atom
+  (merged to 'next' on 2018-08-08 at 9ed619941b)
+ + ref-filter: use oid_object_info() to get object
+ + ref-filter: merge get_obj and get_object
+ + ref-filter: initialize eaten variable
+ + ref-filter: fill empty fields with empty values
+ + ref-filter: add info_source to valid_atom
 
  A few atoms like %(objecttype) and %(objectsize) in the format
  specifier of "for-each-ref --format=<format>" can be filled without
@@ -1123,72 +1510,52 @@ of the repositories listed at
  header.  These cases have been optimzied by calling
  oid_object_info() API.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * pk/rebase-in-c (2018-08-06) 3 commits
  - builtin/rebase: support running "git rebase <upstream>"
  - rebase: refactor common shell functions into their own file
  - rebase: start implementing it as a builtin
+ (this branch is used by pk/rebase-in-c-2-basic, pk/rebase-in-c-3-acts, pk/rebase-in-c-4-opts, pk/rebase-in-c-5-test and pk/rebase-in-c-6-final.)
 
  Rewrite of the "rebase" machinery in C.
 
 
 * jk/branch-l-1-repurpose (2018-06-22) 1 commit
- - branch: make "-l" a synonym for "--list"
+  (merged to 'next' on 2018-08-08 at d2a08dd08e)
+ + branch: make "-l" a synonym for "--list"
 
  Updated plan to repurpose the "-l" option to "git branch".
 
  Will merge to and cook in 'next'.
 
 
-* cc/remote-odb (2018-08-02) 9 commits
- - Documentation/config: add odb.<name>.promisorRemote
- - t0410: test fetching from many promisor remotes
- - Use odb.origin.partialclonefilter instead of core.partialclonefilter
- - Use remote_odb_get_direct() and has_remote_odb()
- - remote-odb: add remote_odb_reinit()
- - remote-odb: implement remote_odb_get_many_direct()
- - remote-odb: implement remote_odb_get_direct()
- - Add initial remote odb support
- - fetch-object: make functions return an error code
-
- Implement lazy fetches of missing objects to complement the
- experimental partial clone feature.
-
- I haven't seen much interest in this topic on list.  What's the
- doneness of this thing?
-
- I do not particularly mind adding code to support a niche feature
- as long as it is cleanly made and it is clear that the feature
- won't negatively affect those who do not use it, so a review from
- that point of view may also be appropriate.
-
-
 * ds/multi-pack-index (2018-07-20) 23 commits
- - midx: clear midx on repack
- - packfile: skip loading index if in multi-pack-index
- - midx: prevent duplicate packfile loads
- - midx: use midx in approximate_object_count
- - midx: use existing midx when writing new one
- - midx: use midx in abbreviation calculations
- - midx: read objects from multi-pack-index
- - config: create core.multiPackIndex setting
- - midx: write object offsets
- - midx: write object id fanout chunk
- - midx: write object ids in a chunk
- - midx: sort and deduplicate objects from packfiles
- - midx: read pack names into array
- - multi-pack-index: write pack names in chunk
- - multi-pack-index: read packfile list
- - packfile: generalize pack directory list
- - t5319: expand test data
- - multi-pack-index: load into memory
- - midx: write header information to lockfile
- - multi-pack-index: add 'write' verb
- - multi-pack-index: add builtin
- - multi-pack-index: add format details
- - multi-pack-index: add design document
+  (merged to 'next' on 2018-08-08 at 1a56c52967)
+ + midx: clear midx on repack
+ + packfile: skip loading index if in multi-pack-index
+ + midx: prevent duplicate packfile loads
+ + midx: use midx in approximate_object_count
+ + midx: use existing midx when writing new one
+ + midx: use midx in abbreviation calculations
+ + midx: read objects from multi-pack-index
+ + config: create core.multiPackIndex setting
+ + midx: write object offsets
+ + midx: write object id fanout chunk
+ + midx: write object ids in a chunk
+ + midx: sort and deduplicate objects from packfiles
+ + midx: read pack names into array
+ + multi-pack-index: write pack names in chunk
+ + multi-pack-index: read packfile list
+ + packfile: generalize pack directory list
+ + t5319: expand test data
+ + multi-pack-index: load into memory
+ + midx: write header information to lockfile
+ + multi-pack-index: add 'write' verb
+ + multi-pack-index: add builtin
+ + multi-pack-index: add format details
+ + multi-pack-index: add design document
 
  When there are too many packfiles in a repository (which is not
  recommended), looking up an object in these would require
@@ -1216,3 +1583,29 @@ of the repositories listed at
  Code clarification.
 
  Superseded by another topic.
+
+
+* cc/remote-odb (2018-08-02) 9 commits
+ . Documentation/config: add odb.<name>.promisorRemote
+ . t0410: test fetching from many promisor remotes
+ . Use odb.origin.partialclonefilter instead of core.partialclonefilter
+ . Use remote_odb_get_direct() and has_remote_odb()
+ . remote-odb: add remote_odb_reinit()
+ . remote-odb: implement remote_odb_get_many_direct()
+ . remote-odb: implement remote_odb_get_direct()
+ . Add initial remote odb support
+ . fetch-object: make functions return an error code
+
+ Implement lazy fetches of missing objects to complement the
+ experimental partial clone feature.
+
+ Ejected; seems to break existing repositories that use partialclone
+ repository extension.
+
+ I haven't seen much interest in this topic on list.  What's the
+ doneness of this thing?
+
+ I do not particularly mind adding code to support a niche feature
+ as long as it is cleanly made and it is clear that the feature
+ won't negatively affect those who do not use it, so a review from
+ that point of view may also be appropriate.