]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2018/11 #04)
authorJunio C Hamano <gitster@pobox.com>
Tue, 13 Nov 2018 14:01:53 +0000 (23:01 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Nov 2018 14:01:53 +0000 (23:01 +0900)
whats-cooking.txt

index 4a1a576782217e717022af7ab0072c60ad816267..b05f8c6391b6f1dade2d38c102b2394bc588fe18 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Nov 2018, #03; Wed, 7)
-X-master-at: 8858448bb49332d353febc078ce4a3abcc962efe
-X-next-at: 8438c0b2453a7207c9c45756f5e37dfe283db602
+Subject: What's cooking in git.git (Nov 2018, #04; Tue, 13)
+X-master-at: d166e6afe5f257217836ef24a73764eba390c58d
+X-next-at: 17fedb746fde9e40924a6ce11c0976a097eb126b
 
-What's cooking in git.git (Nov 2018, #03; Wed, 7)
+What's cooking in git.git (Nov 2018, #04; Tue, 13)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -20,294 +20,696 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* en/merge-cleanup-more (2018-10-18) 2 commits
-  (merged to 'next' on 2018-10-26 at c706319c26)
- + merge-recursive: avoid showing conflicts with merge branch before HEAD
- + merge-recursive: improve auto-merging messages with path collisions
- (this branch is used by en/merge-path-collision.)
+* ab/pack-tests-cleanup (2018-10-31) 3 commits
+  (merged to 'next' on 2018-11-03 at b4a39595bb)
+ + index-pack tests: don't leave test repo dirty at end
+ + pack-objects tests: don't leave test .git corrupt at end
+ + pack-objects test: modernize style
 
- Further clean-up of merge-recursive machinery.
+ A couple of tests used to leave the repository in a state that is
+ deliberately corrupt, which have been corrected.
 
 
-* jc/http-curlver-warnings (2018-10-26) 1 commit
-  (merged to 'next' on 2018-10-26 at 870e125cec)
- + http: give curl version warnings consistently
- (this branch uses js/mingw-http-ssl; is tangled with nd/config-split.)
+* ag/rebase-i-in-c (2018-11-05) 1 commit
+  (merged to 'next' on 2018-11-06 at 8fa9d64898)
+ + sequencer.c: remove a stray semicolon
 
Warning message fix.
Code clean-up for a topic already in 'master'.
 
 
-* js/mingw-http-ssl (2018-10-26) 3 commits
-  (merged to 'next' on 2018-10-26 at 318e82e101)
- + http: when using Secure Channel, ignore sslCAInfo by default
- + http: add support for disabling SSL revocation checks in cURL
- + http: add support for selecting SSL backends at runtime
- (this branch is used by jc/http-curlver-warnings and nd/config-split.)
+* ag/rev-parse-all-exclude-fix (2018-11-01) 1 commit
+  (merged to 'next' on 2018-11-03 at 49730558fa)
+ + rev-parse: clear --exclude list after 'git rev-parse --all'
 
- On platforms with recent cURL library, http.sslBackend configuration
- variable can be used to choose a different SSL backend at runtime.
- The Windows port uses this mechanism to switch between OpenSSL and
- Secure Channel while talking over the HTTPS protocol.
+ "git rev-parse --exclude=* --branches --branches"  (i.e. first
+ saying "add only things that do not match '*' out of all branches"
+ and then adding all branches, without any exclusion this time")
+ worked as expected, but "--exclude=* --all --all" did not work the
+ same way, which has been fixed.
 
 
-* js/mingw-ns-filetime (2018-10-24) 3 commits
-  (merged to 'next' on 2018-10-29 at 4563a0d9d0)
- + mingw: implement nanosecond-precision file times
- + mingw: replace MSVCRT's fstat() with a Win32-based implementation
- + mingw: factor out code to set stat() data
+* al/send-email-auto-cte-fixup (2018-11-02) 1 commit
+  (merged to 'next' on 2018-11-05 at 4ecb1133ce)
+ + send-email: avoid empty transfer encoding header
 
- Windows port learned to use nano-second resolution file timestamps.
+ "git send-email --transfer-encoding=..." in recent versions of Git
+ sometimes produced an empty "Content-Transfer-Encoding:" header,
+ which has been corrected.
 
 
-* js/remote-archive-dwimfix (2018-10-26) 1 commit
-  (merged to 'next' on 2018-10-26 at f5bf6946bd)
- + archive: initialize archivers earlier
+* ao/submodule-wo-gitmodules-checked-out (2018-10-31) 10 commits
+  (merged to 'next' on 2018-11-03 at 00c3377ef0)
+ + t/helper: add test-submodule-nested-repo-config
+ + submodule: support reading .gitmodules when it's not in the working tree
+ + submodule: add a helper to check if it is safe to write to .gitmodules
+ + 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
+ + t7411: merge tests 5 and 6
+ + submodule: factor out a config_set_in_gitmodules_file_gently function
+ + submodule: add a print_config_from_gitmodules() helper
+ (this branch is used by sb/submodule-recursive-fetch-gets-the-tip.)
 
- The logic to determine the archive type "git archive" uses did not
- correctly kick in for "git archive --remote", which has been
corrected.
+ The submodule support has been updated to read from the blob at
+ HEAD:.gitmodules when the .gitmodules file is missing from the
working tree.
 
 
-* js/shallow-and-fetch-prune (2018-10-25) 3 commits
-  (merged to 'next' on 2018-10-26 at 93b7196560)
- + repack -ad: prune the list of shallow commits
- + shallow: offer to prune only non-existing entries
- + repack: point out a bug handling stale shallow info
+* bp/add-diff-files-optim (2018-11-03) 1 commit
+  (merged to 'next' on 2018-11-06 at cdaeb7924a)
+ + add: speed up cmd_add() by utilizing read_cache_preload()
 
- "git repack" in a shallow clone did not correctly update the
- shallow points in the repository, leading to a repository that
- does not pass fsck.
+ "git add" needs to internally run "diff-files" equivalent, and the
+ codepath learned the same optimization as "diff-files" has to run
+ lstat(2) in parallel to find which paths have been updated in the
+ working tree.
 
 
-* jt/upload-pack-v2-fix-shallow (2018-10-19) 3 commits
-  (merged to 'next' on 2018-10-29 at d9010b3c7b)
- + upload-pack: clear flags before each v2 request
- + upload-pack: make want_obj not global
- + upload-pack: make have_obj not global
+* bp/refresh-index-using-preload (2018-11-06) 2 commits
+  (merged to 'next' on 2018-11-06 at d9b9d8f559)
+ + refresh_index: remove unnecessary calls to preload_index()
+  (merged to 'next' on 2018-11-01 at 289e6bcece)
+ + speed up refresh_index() by utilizing preload_index()
 
- "git fetch" over protocol v2 into a shallow repository failed to
- fetch full history behind a new tip of history that was diverged
- before the cut-off point of the history that was previously fetched
- shallowly.
+ The helper function to refresh the cached stat information in the
+ in-core index has learned to perform the lstat() part of the
+ operation in parallel on multi-core platforms.
 
 
-* jw/send-email-no-auth (2018-10-23) 1 commit
-  (merged to 'next' on 2018-10-29 at a3fbbdb889)
- + send-email: explicitly disable authentication
+* bp/reset-quiet (2018-10-24) 3 commits
+  (merged to 'next' on 2018-10-29 at 71f4fbc802)
+ + reset: warn when refresh_index() takes more than 2 seconds
+ + reset: add new reset.quiet config setting
+ + reset: don't compute unstaged changes after reset when --quiet
+ (this branch is used by nd/config-split.)
 
- "git send-email" learned to disable SMTP authentication via the
- "--smtp-auth=none" option, even when the smtp username is given
- (which turns the authentication on by default).
+ "git reset --quiet" no longer runs "update-index --refresh"
+ internally, which shifts the refresh cost away from the command.
 
 
-* md/exclude-promisor-objects-fix (2018-10-23) 2 commits
-  (merged to 'next' on 2018-10-29 at fb36a5dcbe)
- + exclude-promisor-objects: declare when option is allowed
- + Documentation/git-log.txt: do not show --exclude-promisor-objects
+* ds/add-missing-tags (2018-11-03) 3 commits
+  (merged to 'next' on 2018-11-05 at 8388baf76d)
+ + remote: make add_missing_tags() linear
+ + test-reach: test get_reachable_subset
+ + commit-reach: implement get_reachable_subset
 
- Operations on promisor objects make sense in the context of only a
- small subset of the commands that internally use the revisions
- machinery, but the "--exclude-promisor-objects" option were taken
- and led to nonsense results by commands like "log", to which it
- didn't make much sense.  This has been corrected.
+ The history traversal used to implement the tag-following has been
+ optimized by introducing a new helper.
 
 
-* mg/gpg-fingerprint (2018-10-23) 3 commits
-  (merged to 'next' on 2018-10-26 at 1e219cb754)
- + gpg-interface.c: obtain primary key fingerprint as well
- + gpg-interface.c: support getting key fingerprint via %GF format
- + gpg-interface.c: use flags to determine key/signer info presence
(this branch uses mg/gpg-parse-tighten; is tangled with jc/gpg-cocci-preincr.)
+* ds/test-multi-pack-index (2018-10-26) 4 commits
+  (merged to 'next' on 2018-11-03 at 624c415a45)
+ + packfile: close multi-pack-index in close_all_packs
+ + multi-pack-index: define GIT_TEST_MULTI_PACK_INDEX
+ + midx: close multi-pack-index on repack
+ midx: fix broken free() in close_midx()
 
- New "--pretty=format:" placeholders %GF and %GP that show the GPG
- key fingerprints have been invented.
+ Tests for the recently introduced multi-pack index machinery.
 
 
-* mg/gpg-parse-tighten (2018-10-22) 1 commit
-  (merged to 'next' on 2018-10-26 at efdec77193)
- + gpg-interface.c: detect and reject multiple signatures on commits
- (this branch is used by jc/gpg-cocci-preincr and mg/gpg-fingerprint.)
+* jc/war-on-string-list (2018-11-01) 1 commit
+  (merged to 'next' on 2018-11-03 at 2ff65073f1)
+ + fetch: replace string-list used as a look-up table with a hashmap
 
- Detect and reject a signature block that has more than one GPG
signature.
+ Replace three string-list instances used as look-up tables in "git
fetch" with hashmaps.
 
 
-* nd/completion-negation (2018-10-22) 1 commit
-  (merged to 'next' on 2018-10-29 at 87e73b0c72)
- + completion: fix __gitcomp_builtin no longer consider extra options
+* jk/detect-truncated-zlib-input (2018-10-31) 4 commits
+  (merged to 'next' on 2018-11-03 at 4952b4412b)
+ + Adjust for 2.19.x series
+ + cat-file: handle streaming failures consistently
+ + check_stream_sha1(): handle input underflow
+ + t1450: check large blob in trailing-garbage test
 
- The command line completion machinery (in contrib/) has been
- updated to allow the completion script to tweak the list of options
- that are reported by the parse-options machinery correctly.
+ A regression in Git 2.12 era made "git fsck" fall into an infinite
+ loop while processing truncated loose objects.
 
 
-* nd/submodule-unused-vars (2018-10-22) 1 commit
-  (merged to 'next' on 2018-10-29 at 33641dcc89)
- + submodule.c: remove some of the_repository references
+* jk/misc-unused-fixes (2018-11-07) 4 commits
+  (merged to 'next' on 2018-11-07 at 8438c0b245)
+ + approxidate: fix NULL dereference in date_time()
+  (merged to 'next' on 2018-11-05 at 03429f23c4)
+ + pathspec: handle non-terminated strings with :(attr)
+ + approxidate: handle pending number for "specials"
+ + rev-list: handle flags for --indexed-objects
 
- Code clean-up.
+ Assorted fixes for bugs found while auditing -Wunused-parameter
+ warnings.
 
 
-* nd/unpack-trees-with-cache-tree (2018-10-22) 1 commit
-  (merged to 'next' on 2018-10-29 at de51b606da)
- + read-cache: use of memory after it is freed
+* jk/proto-v2-ref-prefix-fix (2018-10-31) 2 commits
+  (merged to 'next' on 2018-11-03 at 3a203db692)
+ + ls-remote: pass heads/tags prefixes to transport
+ + ls-remote: do not send ref prefixes for patterns
 
- Trivial bugfix.
+ "git ls-remote $there foo" was broken by recent update for the
+ protocol v2 and stopped showing refs that match 'foo' that are not
+ refs/{heads,tags}/foo, which has been fixed.
 
 
-* rj/header-cleanup (2018-10-29) 3 commits
-  (merged to 'next' on 2018-11-01 at 975e56048f)
- + commit-reach.h: add missing declarations (hdr-check)
- + ewok_rlw.h: add missing 'inline' to function definition
- + fetch-object.h: add missing declaration (hdr-check)
+* jk/stream-pack-non-delta-clarification (2018-10-31) 1 commit
+  (merged to 'next' on 2018-11-03 at bd386692c8)
+ + read_istream_pack_non_delta(): document input handling
 
- Code cleanup.
+ Additional comment on a tricky piece of code to help developers.
+
+
+* jk/xdiff-interface (2018-11-05) 9 commits
+  (merged to 'next' on 2018-11-05 at 0edd69cdad)
+ + xdiff-interface: drop parse_hunk_header()
+ + range-diff: use a hunk callback
+ + diff: convert --check to use a hunk callback
+ + combine-diff: use an xdiff hunk callback
+ + diff: use hunk callback for word-diff
+ + diff: discard hunk headers for patch-ids earlier
+ + diff: avoid generating unused hunk header lines
+ + xdiff-interface: provide a separate consume callback for hunks
+ + xdiff: provide a separate emit callback for hunks
+
+ The interface into "xdiff" library used to discover the offset and
+ size of a generated patch hunk by first formatting it into the
+ textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers
+ out.  A new interface has been introduced to allow callers a more
+ direct access to them.
+
+
+* js/mingw-isatty-and-dup2 (2018-10-31) 1 commit
+  (merged to 'next' on 2018-11-03 at 0616899d9e)
+ + mingw: fix isatty() after dup2()
+
+ Windows fix.
+
+
+* js/mingw-perl5lib (2018-10-31) 4 commits
+  (merged to 'next' on 2018-11-03 at 2fa516f3ae)
+ + mingw: unset PERL5LIB by default
+ + config: move Windows-specific config settings into compat/mingw.c
+ + config: allow for platform-specific core.* config settings
+ + config: rename `dummy` parameter to `cb` in git_default_config()
+
+ Windows fix.
+
+
+* js/mingw-utf8-env (2018-10-31) 2 commits
+  (merged to 'next' on 2018-11-03 at f6c5a8b609)
+ + mingw: reencode environment variables on the fly (UTF-16 <-> UTF-8)
+ + t7800: fix quoting
+
+ Windows fix.
+
+
+* js/rebase-p-tests (2018-11-02) 3 commits
+  (merged to 'next' on 2018-11-03 at fc8d97465f)
+ + tests: optionally skip `git rebase -p` tests
+ + t3418: decouple test cases from a previous `rebase -p` test case
+ + t3404: decouple some test cases from outcomes of previous test cases
+
+ In preparation to the day when we can deprecate and remove the
+ "rebase -p", make sure we can skip and later remove tests for
+ it.
+
+
+* jt/tighten-fetch-proto-v2-response (2018-11-01) 1 commit
+  (merged to 'next' on 2018-11-03 at 310fe3f2c3)
+ + fetch-pack: be more precise in parsing v2 response
+
+ "git fetch" was a bit loose in parsing resposes from the other side
+ when talking over the protocol v2.
+
+
+* ma/sequencer-do-reset-saner-loop-termination (2018-10-31) 1 commit
+  (merged to 'next' on 2018-11-03 at 99da78997d)
+ + sequencer: break out of loop explicitly
+
+ Code readability fix.
+
+
+* nb/worktree-api-doc (2018-10-31) 2 commits
+  (merged to 'next' on 2018-11-03 at de9befb1f3)
+ + worktree: rename is_worktree_locked to worktree_lock_reason
+ + worktree: update documentation for lock_reason and lock_reason_valid
+
+ Code readability fix.
+
+
+* nd/complete-format-patch (2018-11-06) 1 commit
+  (merged to 'next' on 2018-11-06 at 7f4c58c9d0)
+ + completion: use __gitcomp_builtin for format-patch
+
+ The support for format-patch (and send-email) by the command-line
+ completion script (in contrib/) has been simplified a bit.
+
+
+* nd/config-split (2018-10-29) 79 commits
+  (merged to 'next' on 2018-11-03 at a336559101)
+ + config.txt: remove config/dummy.txt
+ + config.txt: move worktree.* to a separate file
+ + config.txt: move web.* to a separate file
+ + config.txt: move versionsort.* to a separate file
+ + config.txt: move user.* to a separate file
+ + config.txt: move url.* to a separate file
+ + config.txt: move uploadpack.* to a separate file
+ + config.txt: move uploadarchive.* to a separate file
+ + config.txt: move transfer.* to a separate file
+ + config.txt: move tag.* to a separate file
+ + config.txt: move submodule.* to a separate file
+ + config.txt: move stash.* to a separate file
+ + config.txt: move status.* to a separate file
+ + config.txt: move splitIndex.* to a separate file
+ + config.txt: move showBranch.* to a separate file
+ + config.txt: move sequencer.* to a separate file
+ + config.txt: move sendemail-config.txt to config/
+ + config.txt: move reset.* to a separate file
+ + config.txt: move rerere.* to a separate file
+ + config.txt: move repack.* to a separate file
+ + config.txt: move remotes.* to a separate file
+ + config.txt: move remote.* to a separate file
+ + config.txt: move receive-config.txt to config/
+ + config.txt: move rebase-config.txt to config/
+ + config.txt: move push-config.txt to config/
+ + config.txt: move pull-config.txt to config/
+ + config.txt: move protocol.* to a separate file
+ + config.txt: move pretty.* to a separate file
+ + config.txt: move pager.* to a separate file
+ + config.txt: move pack.* to a separate file
+ + config.txt: move notes.* to a separate file
+ + config.txt: move mergetool.* to a separate file
+ + config.txt: move merge-config.txt to config/
+ + config.txt: move man.* to a separate file
+ + config.txt: move mailmap.* to a separate file
+ + config.txt: move mailinfo.* to a separate file
+ + config.txt: move log.* to a separate file
+ + config.txt: move interactive.* to a separate file
+ + config.txt: move instaweb.* to a separate file
+ + config.txt: move init.* to a separate file
+ + config.txt: move index.* to a separate file
+ + git-imap-send.txt: move imap.* to a separate file
+ + config.txt: move i18n.* to a separate file
+ + config.txt: move http.* to a separate file
+ + config.txt: move ssh.* to a separate file
+ + config.txt: move help.* to a separate file
+ + config.txt: move guitool.* to a separate file
+ + config.txt: move gui-config.txt to config/
+ + config.txt: move gpg.* to a separate file
+ + config.txt: move grep.* to a separate file
+ + config.txt: move gitweb.* to a separate file
+ + config.txt: move gitcvs-config.txt to config/
+ + config.txt: move gc.* to a separate file
+ + config.txt: move fsck.* to a separate file
+ + config.txt: move fmt-merge-msg-config.txt to config/
+ + config.txt: move format-config.txt to config/
+ + config.txt: move filter.* to a separate file
+ + config.txt: move fetch-config.txt to config/
+ + config.txt: move fastimport.* to a separate file
+ + config.txt: move difftool.* to a separate file
+ + config.txt: move diff-config.txt to config/
+ + config.txt: move completion.* to a separate file
+ + config.txt: move credential.* to a separate file
+ + config.txt: move commit.* to a separate file
+ + config.txt: move column.* to a separate file
+ + config.txt: move color.* to a separate file
+ + config.txt: move clean.* to a separate file
+ + config.txt: move checkout.* to a separate file
+ + config.txt: move browser.* to a separate file
+ + config.txt: move branch.* to a separate file
+ + config.txt: move blame.* to a separate file
+ + config.txt: move apply.* to a separate file
+ + config.txt: move am.* to a separate file
+ + config.txt: move alias.* to a separate file
+ + config.txt: move add.* to a separate file
+ + config.txt: move core.* to a separate file
+ + config.txt: move advice.* to a separate file
+ + Update makefile in preparation for Documentation/config/*.txt
+ + Merge branches 'bp/reset-quiet' and 'js/mingw-http-ssl' into nd/config-split
+ (this branch uses bp/reset-quiet.)
 
+ Split the overly large Documentation/config.txt file into million
+ little pieces.  This potentially allows each individual piece
+ included into the manual page of the command it affects more easily.
 
-* sb/submodule-url-to-absolute (2018-10-18) 1 commit
-  (merged to 'next' on 2018-10-29 at 4264c150cb)
- + submodule helper: convert relative URL to absolute URL if needed
+ This is a painful conversions while many other topics in flight
+ wants to add to or edit the documentation of configuration
+ variables.
 
- Some codepaths failed to form a proper URL when .gitmodules record
- the URL to a submodule repository as relative to the repository of
- superproject, which has been corrected.
 
+* nd/per-worktree-config (2018-10-22) 2 commits
+  (merged to 'next' on 2018-11-01 at 3746343ca8)
+ + worktree: add per-worktree config files
+ + t1300: extract and use test_cmp_config()
 
-* sg/test-rebase-editor-fix (2018-10-29) 1 commit
-  (merged to 'next' on 2018-11-01 at 271e0fc663)
- + t3404-rebase-interactive: test abbreviated commands
+ A fourth class of configuration files (in addition to the
+ traditional "system wide", "per user in the $HOME directory" and
+ "per repository in the $GIT_DIR/config") has been introduced so
+ that different worktrees that share the same repository (hence the
+ same $GIT_DIR/config file) can use different customization.
 
 
-* sg/test-verbose-log (2018-10-30) 1 commit
-  (merged to 'next' on 2018-11-01 at 0c4a18a71f)
- + test-lib: introduce the '-V' short option for '--verbose-log'
+* nd/per-worktree-ref-iteration (2018-11-05) 9 commits
+  (merged to 'next' on 2018-11-06 at 53803cedf3)
+ + git-worktree.txt: correct linkgit command name
+  (merged to 'next' on 2018-11-03 at 4cbe49a704)
+ + reflog expire: cover reflog from all worktrees
+ + fsck: check HEAD and reflog from other worktrees
+ + fsck: move fsck_head_link() to get_default_heads() to avoid some globals
+ + revision.c: better error reporting on ref from different worktrees
+ + revision.c: correct a parameter name
+ + refs: new ref types to make per-worktree refs visible to all worktrees
+ + Add a place for (not) sharing stuff between worktrees
+ + refs.c: indent with tabs, not spaces
 
- Our test scripts can now take the '-V' option as a synonym for the
- '--verbose-log' option.
+ The code to traverse objects for reachability, used to decide what
+ objects are unreferenced and expendable, have been taught to also
+ consider per-worktree refs of other worktrees as starting points to
+ prevent data loss.
 
 
-* ss/travis-ci-force-vm-mode (2018-10-26) 1 commit
-  (merged to 'next' on 2018-11-01 at 8596bb2a65)
- + travis-ci: no longer use containers
- (this branch is used by sg/travis-install-dependencies.)
+* nd/tree-walk-path-exclusion (2018-11-05) 1 commit
+  (merged to 'next' on 2018-11-06 at 6499b2d327)
+ + tree-walk.c: fix overoptimistic inclusion in :(exclude) matching
 
- The "container" mode of TravisCI is going away.  Our .travis.yml
file is getting prepared for the transition.
+ Pathspec matching against a tree object were buggy when negative
pathspec elements were involved, which has been fixed.
 
 
-* tb/char-may-be-unsigned (2018-10-26) 1 commit
-  (merged to 'next' on 2018-11-01 at 9e14f289f8)
- + path.c: char is not (always) signed
+* nd/wildmatch-double-asterisk (2018-10-29) 1 commit
+  (merged to 'next' on 2018-11-01 at 627186d020)
+ + wildmatch: change behavior of "foo**bar" in WM_PATHNAME mode
 
- Build portability fix.
+ A pattern with '**' that does not have a slash on either side used
+ to be an invalid one, but the code now treats such double-asterisks
+ the same way as two normal asterisks that happen to be adjacent to
+ each other.
+
+
+* pw/am-rebase-read-author-script (2018-11-01) 5 commits
+  (merged to 'next' on 2018-11-03 at bb6c32fe16)
+ + sequencer: use read_author_script()
+ + add read_author_script() to libgit
+ + am: rename read_author_script()
+ + am: improve author-script error reporting
+ + am: don't die in read_author_script()
+
+ Unify code to read the author-script used in "git am" and the
+ commands that use the sequencer machinery, e.g. "git rebase -i".
+
+
+* sg/travis-install-dependencies (2018-11-02) 1 commit
+  (merged to 'next' on 2018-11-06 at b86e3a2792)
+ + travis-ci: install packages in 'ci/install-dependencies.sh'
+
+ The procedure to install dependencies before testing at Travis CI
+ is getting revamped for both simplicity and flexibility, taking
+ advantage of the recent move to the vm-based environment.
+
+
+* sh/mingw-safer-compat-poll (2018-11-05) 1 commit
+  (merged to 'next' on 2018-11-05 at 933a940a68)
+ + poll: use GetTickCount64() to avoid wrap-around issues
+
+ Windows fix.
 
 --------------------------------------------------
 [New Topics]
 
-* jk/misc-unused-fixes (2018-11-07) 4 commits
-  (merged to 'next' on 2018-11-07 at 8438c0b245)
- + approxidate: fix NULL dereference in date_time()
-  (merged to 'next' on 2018-11-05 at 03429f23c4)
- + pathspec: handle non-terminated strings with :(attr)
- + approxidate: handle pending number for "specials"
- + rev-list: handle flags for --indexed-objects
+* js/rebase-autostash-detach-fix (2018-11-08) 2 commits
+ - built-in rebase --autostash: leave the current branch alone if possible
+ - built-in rebase: demonstrate regression with --autostash
 
- Assorted fixes for bugs found while auditing -Wunused-parameter
- warnings.
+ "git rebase --autostash" did not correctly re-attach the HEAD at times.
 
- Will merge to 'master'.
+ Will merge to 'next'.
+
+
+* en/rebase-merge-on-sequencer (2018-11-08) 2 commits
+ - rebase: implement --merge via git-rebase--interactive
+ - git-rebase, sequencer: extend --quiet option for the interactive machinery
+
+ "git rebase --merge" as been reimplemented by reusing the internal
+ machinery used for "git rebase -i".
+
+
+* js/mailmap (2018-11-12) 1 commit
+ - Update .mailmap
+
+ Update the mailmap to unify multiple entries for the authors with
+ commits since v2.10.
+
+ Will merge to 'next'.
+
+
+* fc/http-version (2018-11-09) 1 commit
+ - http: add support selecting http version
+
+ The "http.version" configuration variable can be used with recent
+ enough cURL library to force the version of HTTP used to talk when
+ fetching and pushing.
+
+ Will merge to 'next'.
+
+
+* ag/p3400-force-checkout (2018-11-12) 1 commit
+ - p3400: replace calls to `git checkout -b' by `git checkout -B'
+
+ Perf test tweak.
+
+ Will merge to 'next'.
+
+
+* cb/notes-freeing-always-null-fix (2018-11-13) 1 commit
+ - builtin/notes: remove unnecessary free
+
+ Code cleanup.
+
+ Will merge to 'next'.
+
+
+* dl/remote-save-to-push (2018-11-13) 1 commit
+ - remote: add --save-to-push option to git remote set-url
+
+ "git remote set-url" learned a new option that moves existing value
+ of the URL field to pushURL field of the remote before replacing
+ the URL field with a new value.
+
+ Undecided.
+
+
+* jk/loose-object-cache (2018-11-13) 9 commits
+ - fetch-pack: drop custom loose object cache
+ - sha1-file: use loose object cache for quick existence check
+ - object-store: provide helpers for loose_objects_cache
+ - sha1-file: use an object_directory for the main object dir
+ - handle alternates paths the same as the main object dir
+ - sha1_file_name(): overwrite buffer instead of appending
+ - rename "alternate_object_database" to "object_directory"
+ - submodule--helper: prefer strip_suffix() to ends_with()
+ - fsck: do not reuse child_process structs
+
+ Code clean-up with optimization for the codepath that checks
+ (non-)existence of loose objects.
+
+ Will merge to 'next'.
+
+
+* js/apply-recount-allow-noop (2018-11-13) 1 commit
+ - apply --recount: allow "no-op hunks"
+
+ When editing a patch in a "git add -i" session, a hunk could be
+ made to no-op.  The "git apply" program used to reject a patch with
+ such a no-op hunk to catch user mistakes, but it is now updated to
+ explicitly allow a no-op hunk in an edited patch.
+
+ Will merge to 'next'.
+
+
+* js/builtin-rebase-perf-fix (2018-11-13) 3 commits
+ - built-in rebase: reinstate `checkout -q` behavior where appropriate
+ - rebase: prepare reset_head() for more flags
+ - rebase: consolidate clean-up code before leaving reset_head()
+
+ Code clean-up with correction to make the reimplemented "git
+ rebase" a more faithful rewrite of the original, which also regains
+ performance.
+
+ Will merge to 'next'.
+
+
+* js/protocol-advertise-multi (2018-11-13) 2 commits
+ - SQUASH??? apply cocci fix
+ - protocol: advertise multiple supported versions
+
+ The transport layer has been updated so that the protocol version
+ used can be negotiated between the parties, by the initiator
+ listing the protocol versions it is willing to talk, and the other
+ side choosing from one of them.
+
+
+* js/rebase-r-and-merge-head (2018-11-13) 5 commits
+ - status: rebase and merge can be in progress at the same time
+ - built-in rebase --skip/--abort: clean up stale .git/<name> files
+ - rebase -i: include MERGE_HEAD into files to clean up
+ - rebase -r: do not write MERGE_HEAD unless needed
+ - rebase -r: demonstrate bug with conflicting merges
+
+ Bugfix for the recently graduated "git rebase --rebase-merges".
+
+ Will merge to 'next'.
+
+
+* js/smart-http-detect-remote-error (2018-11-13) 1 commit
+ - remote-curl: die on server-side errors
+
+ Some errors from the other side coming over smart HTTP transport
+ were not noticed, which has been corrected.
+
+ Will merge to 'next'.
+
+
+* nb/branch-show-other-worktrees-head (2018-11-12) 2 commits
+ - branch: mark and colorize a branch differently if it is checked out in a linked worktree
+ - ref-filter: add worktree atom
+
+ "git branch --list" learned to show branches that are checked out
+ in other worktrees connected to the same repository prefixed with
+ '+', similar to the way the currently checked out branch is shown
+ with '*' in front.
+
+ Expecting a reroll.
+
+
+* nd/command-list-gen-fix (2018-11-12) 1 commit
+ - build: fix broken command-list.h generation with core.autocrlf
+
+ Build tweak.
+
+ Will merge to 'next'.
+
+
+* nd/format-patch-cover-letter-stat-width (2018-11-13) 1 commit
+ - format-patch: respect --stat in cover letter's diffstat
+
+ "git format-patch --stat=<width>" can be used to specify the width
+ used by the diffstat (shown in the cover letter).
+
+ Will merge to 'next'.
+
+
+* nd/the-index (2018-11-12) 22 commits
+ - rebase-interactive.c: remove the_repository references
+ - rerere.c: remove the_repository references
+ - pack-*.c: remove the_repository references
+ - pack-check.c: remove the_repository references
+ - notes-cache.c: remove the_repository references
+ - line-log.c: remove the_repository reference
+ - diff-lib.c: remove the_repository references
+ - delta-islands.c: remove the_repository references
+ - cache-tree.c: remove the_repository references
+ - bundle.c: remove the_repository references
+ - branch.c: remove the_repository reference
+ - bisect.c: remove the_repository reference
+ - blame.c: remove implicit dependency the_repository
+ - sequencer.c: remove implicit dependency on the_repository
+ - sequencer.c: remove implicit dependency on the_index
+ - transport.c: remove implicit dependency on the_index
+ - notes-merge.c: remove implicit dependency the_repository
+ - notes-merge.c: remove implicit dependency on the_index
+ - list-objects.c: reduce the_repository references
+ - list-objects-filter.c: remove implicit dependency on the_index
+ - wt-status.c: remove implicit dependency the_repository
+ - wt-status.c: remove implicit dependency on the_index
+
+ More codepaths become aware of working with in-core repository
+ instance other than the default "the_repository".
+
+ Will merge to 'next'.
+
+
+* ot/ref-filter-object-info (2018-11-12) 5 commits
+ - ref-filter: add docs for new options
+ - ref-filter: add tests for deltabase
+ - ref-filter: add deltabase option
+ - ref-filter: add tests for objectsize:disk
+ - ref-filter: add objectsize:disk option
+
+ The "--format=<placeholder>" option of for-each-ref, branch and tag
+ learned to show a few more traits of objects that can be learned by
+ the object_info API.
 
+ Will merge to 'next'.
 
-* jk/xdiff-interface (2018-11-05) 9 commits
-  (merged to 'next' on 2018-11-05 at 0edd69cdad)
- + xdiff-interface: drop parse_hunk_header()
- + range-diff: use a hunk callback
- + diff: convert --check to use a hunk callback
- + combine-diff: use an xdiff hunk callback
- + diff: use hunk callback for word-diff
- + diff: discard hunk headers for patch-ids earlier
- + diff: avoid generating unused hunk header lines
- + xdiff-interface: provide a separate consume callback for hunks
- + xdiff: provide a separate emit callback for hunks
 
- The interface into "xdiff" library used to discover the offset and
- size of a generated patch hunk by first formatting it into the
- textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers
- out.  A new interface has been introduced to allow callers a more
- direct access to them.
+* ra/rev-parse-exclude-glob (2018-11-13) 2 commits
+ - refs: fix some exclude patterns being ignored
+ - refs: show --exclude failure with --branches/tags/remotes=glob
 
- Will merge to 'master'.
+ "rev-parse --exclude=<pattern> --branches=<pattern>" etc. did not
+ quite work, which has been corrected.
 
+ Will merge to 'next'.
 
-* al/send-email-auto-cte-fixup (2018-11-02) 1 commit
-  (merged to 'next' on 2018-11-05 at 4ecb1133ce)
- + send-email: avoid empty transfer encoding header
 
- "git send-email --transfer-encoding=..." in recent versions of Git
- sometimes produced an empty "Content-Transfer-Encoding:" header,
- which has been corrected.
+* sb/cocci-pending (2018-11-11) 1 commit
+ - coccicheck: introduce 'pending' semantic patches
 
- Will merge to 'master'.
+ A coding convention around the Coccinelle semantic patches to have
+ two classes to ease code migration process has been proposed and
+ its support has been added to the Makefile.
 
+ Will merge to 'next'.
 
-* bp/add-diff-files-optim (2018-11-03) 1 commit
-  (merged to 'next' on 2018-11-06 at cdaeb7924a)
- + add: speed up cmd_add() by utilizing read_cache_preload()
 
- "git add" needs to internally run "diff-files" equivalent, and the
- codepath learned the same optimization as "diff-files" has to run
- lstat(2) in parallel to find which paths have been updated in the
- working tree.
+* tb/print-size-t-with-uintmax-format (2018-11-12) 1 commit
+ - Upcast size_t variables to uintmax_t when printing
 
- Will merge to 'master'.
+ Code preparation to replace ulong vars with size_t vars where
+ appropriate.
 
+ Will merge to 'next'.
 
-* ds/add-missing-tags (2018-11-03) 3 commits
-  (merged to 'next' on 2018-11-05 at 8388baf76d)
- + remote: make add_missing_tags() linear
- + test-reach: test get_reachable_subset
- + commit-reach: implement get_reachable_subset
 
- The history traversal used to implement the tag-following has been
- optimized by introducing a new helper.
+* tb/xcurl-off-t (2018-11-12) 1 commit
+ - remote-curl.c: xcurl_off_t is not portable (on 32 bit platfoms)
 
- Will merge to 'master'.
+ The xcurl_off_t() helper function is used to cast size_t to
+ curl_off_t, but some compilers gave warnings against the code to
+ ensure the casting is done without wraparound, when size_t is
+ narrower than curl_off_t.  This warning has been squelched.
 
+ Will merge to 'next'.
 
-* ag/rebase-i-in-c (2018-11-05) 1 commit
-  (merged to 'next' on 2018-11-06 at 8fa9d64898)
- + sequencer.c: remove a stray semicolon
+--------------------------------------------------
+[Stalled]
 
- Code clean-up for a topic already in 'master'.
+* lt/date-human (2018-07-09) 1 commit
+ - Add 'human' date format
 
- Will merge to 'master'.
+ A new date format "--date=human" that morphs its output depending
+ on how far the time is from the current time has been introduced.
+ "--date=auto" can be used to use this new format when the output is
+ goint to the pager or to the terminal and otherwise the default
+ format.
 
+--------------------------------------------------
+[Cooking]
 
 * jk/curl-ldflags (2018-11-05) 1 commit
- - build: link with curl-defined linker flags
+  (merged to 'next' on 2018-11-13 at d1387a3aa0)
+ + build: link with curl-defined linker flags
 
  The way -lcurl library gets linked has been simplified by taking
  advantage of the fact that we can just ask curl-config command how.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * mg/gpg-fingerprint-test (2018-11-05) 2 commits
- - t/t7510-signed-commit.sh: add signing subkey to Eris Discordia key
- - t/t7510-signed-commit.sh: Add %GP to custom format checks
+  (merged to 'next' on 2018-11-13 at 71f11020c4)
+ + t/t7510-signed-commit.sh: add signing subkey to Eris Discordia key
+ + t/t7510-signed-commit.sh: Add %GP to custom format checks
 
  Add a few tests for a topic already in 'master'.
 
- Will merge to 'next'.
-
-
-* nd/tree-walk-path-exclusion (2018-11-05) 1 commit
-  (merged to 'next' on 2018-11-06 at 6499b2d327)
- + tree-walk.c: fix overoptimistic inclusion in :(exclude) matching
-
- Pathspec matching against a tree object were buggy when negative
- pathspec elements were involved, which has been fixed.
-
  Will merge to 'master'.
 
 
@@ -315,36 +717,41 @@ of the repositories listed at
  - diff: differentiate error handling in parse_color_moved_ws
 
 
-* ab/range-diff-no-patch (2018-11-07) 1 commit
- - range-diff: add a --no-patch option to show a summary
+* ab/range-diff-no-patch (2018-11-12) 4 commits
+ - SQUASH???
+ - range-diff: make diff option behavior (e.g. --stat) consistent
+ - range-diff: fix regression in passing along diff options
+ - range-diff doc: add a section about output stability
 
- "range-diff" learns the "--no-patch" option, which can be used to
- get a high-level overview without the actual line-by-line patch
- difference shown.
+ The "--no-patch" option, which can be used to get a high-level
+ overview without the actual line-by-line patch difference shown, of
+ the "range-diff" command was earlier broken, which has been
+ corrected.
 
- Will merge to 'next'.
+ Waiting for a response to squashable fix.
 
 
 * jk/unused-parameter-fixes (2018-11-06) 14 commits
- - midx: double-check large object write loop
- - assert NOARG/NONEG behavior of parse-options callbacks
- - parse-options: drop OPT_DATE()
- - apply: return -1 from option callback instead of calling exit(1)
- - cat-file: report an error on multiple --batch options
- - tag: mark "--message" option with NONEG
- - show-branch: mark --reflog option as NONEG
- - format-patch: mark "--no-numbered" option with NONEG
- - status: mark --find-renames option with NONEG
- - cat-file: mark batch options with NONEG
- - pack-objects: mark index-version option as NONEG
- - ls-files: mark exclude options as NONEG
- - am: handle --no-patch-format option
- - apply: mark include/exclude options as NONEG
+  (merged to 'next' on 2018-11-13 at 8d3625b4ae)
+ + midx: double-check large object write loop
+ + assert NOARG/NONEG behavior of parse-options callbacks
+ + parse-options: drop OPT_DATE()
+ + apply: return -1 from option callback instead of calling exit(1)
+ + cat-file: report an error on multiple --batch options
+ + tag: mark "--message" option with NONEG
+ + show-branch: mark --reflog option as NONEG
+ + format-patch: mark "--no-numbered" option with NONEG
+ + status: mark --find-renames option with NONEG
+ + cat-file: mark batch options with NONEG
+ + pack-objects: mark index-version option as NONEG
+ + ls-files: mark exclude options as NONEG
+ + am: handle --no-patch-format option
+ + apply: mark include/exclude options as NONEG
 
  Various functions have been audited for "-Wunused-parameter" warnings
  and bugs in them got fixed.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * ds/push-squelch-ambig-warning (2018-11-07) 1 commit
@@ -355,70 +762,38 @@ of the repositories listed at
  which was unnecessary (as it knew that it is feeding raw object
  names).  This has been optimized out.
 
+ Will merge to 'next'.
+
 
 * jk/verify-sig-merge-into-void (2018-11-07) 3 commits
- - pull: handle --verify-signatures for unborn branch
- - merge: handle --verify-signatures for unborn branch
- - merge: extract verify_merge_signature() helper
+  (merged to 'next' on 2018-11-13 at a207be60ed)
+ + pull: handle --verify-signatures for unborn branch
+ + merge: handle --verify-signatures for unborn branch
+ + merge: extract verify_merge_signature() helper
 
  "git merge" and "git pull" that merges into an unborn branch used
  to completely ignore "--verify-signatures", which has been
  corrected.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * js/mingw-res-rebuild (2018-11-07) 1 commit
- - Windows: force-recompile git.res for differing architectures
+  (merged to 'next' on 2018-11-13 at fb736827d1)
+ + Windows: force-recompile git.res for differing architectures
 
  Windows build update.
 
- Will merge to 'next'.
-
---------------------------------------------------
-[Stalled]
-
-* lt/date-human (2018-07-09) 1 commit
- - Add 'human' date format
-
- A new date format "--date=human" that morphs its output depending
- on how far the time is from the current time has been introduced.
- "--date=auto" can be used to use this new format when the output is
- goint to the pager or to the terminal and otherwise the default
- format.
+ Will merge to 'master'.
 
---------------------------------------------------
-[Cooking]
 
-* ab/dynamic-gettext-poison (2018-11-02) 1 commit
+* ab/dynamic-gettext-poison (2018-11-09) 2 commits
+ - Makefile: ease dynamic-gettext-poison transition
  - i18n: make GETTEXT_POISON a runtime option
 
  On hold.
- cf. <20181102163725.GY30222@szeder.dev>
-
-
-* js/rebase-p-tests (2018-11-02) 3 commits
-  (merged to 'next' on 2018-11-03 at fc8d97465f)
- + tests: optionally skip `git rebase -p` tests
- + t3418: decouple test cases from a previous `rebase -p` test case
- + t3404: decouple some test cases from outcomes of previous test cases
-
- In preparation to the day when we can deprecate and remove the
- "rebase -p", make sure we can skip and later remove tests for
- it.
-
- Will merge to 'master'.
-
-
-* sg/travis-install-dependencies (2018-11-02) 1 commit
-  (merged to 'next' on 2018-11-06 at b86e3a2792)
- + travis-ci: install packages in 'ci/install-dependencies.sh'
-
- The procedure to install dependencies before testing at Travis CI
- is getting revamped for both simplicity and flexibility, taking
- advantage of the recent move to the vm-based environment.
-
- Will merge to 'master'.
+ The tip one may be controversial, but at least it would get me going.
+ cf. <xmqqpnvg8d5z.fsf@gitster-ct.c.googlers.com>
 
 
 * ab/push-dwim-dst (2018-10-29) 9 commits
@@ -455,7 +830,7 @@ of the repositories listed at
  diagnosed as an error, not swept under the rug silently.
 
 
-* nd/i18n (2018-11-06) 16 commits
+* nd/i18n (2018-11-12) 16 commits
  - fsck: mark strings for translation
  - fsck: reduce word legos to help i18n
  - parse-options.c: mark more strings for translation
@@ -464,165 +839,38 @@ of the repositories listed at
  - repack: mark more strings for translation
  - remote.c: mark messages for translation
  - remote.c: turn some error() or die() to BUG()
- - reflog: mark strings for translation
- - read-cache.c: add missing colon separators
- - read-cache.c: mark more strings for translation
- - read-cache.c: turn die("internal error") to BUG()
- - attr.c: mark more string for translation
- - archive.c: mark more strings for translation
- - alias.c: mark split_cmdline_strerror() strings for translation
- - git.c: mark more strings for translation
-
- More _("i18n") markings.
-
-
-* nd/pthreads (2018-11-05) 14 commits
- - Clean up pthread_create() error handling
- - read-cache.c: initialize copy_len to shut up gcc 8
- - read-cache.c: reduce branching based on HAVE_THREADS
- - read-cache.c: remove #ifdef NO_PTHREADS
- - pack-objects: remove #ifdef NO_PTHREADS
- - preload-index.c: remove #ifdef NO_PTHREADS
- - grep: clean up num_threads handling
- - grep: remove #ifdef NO_PTHREADS
- - attr.c: remove #ifdef NO_PTHREADS
- - name-hash.c: remove #ifdef NO_PTHREADS
- - index-pack: remove #ifdef NO_PTHREADS
- - send-pack.c: move async's #ifdef NO_PTHREADS back to run-command.c
- - run-command.h: include thread-utils.h instead of pthread.h
- - thread-utils: macros to unconditionally compile pthreads API
-
- The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS".
-
- Will merge to 'next'.
-
-
-* nd/wildmatch-double-asterisk (2018-10-29) 1 commit
-  (merged to 'next' on 2018-11-01 at 627186d020)
- + wildmatch: change behavior of "foo**bar" in WM_PATHNAME mode
-
- A pattern with '**' that does not have a slash on either side used
- to be an invalid one, but the code now treats such double-asterisks
- the same way as two normal asterisks that happen to be adjacent to
- each other.
-
- Will merge to 'master'.
-
-
-* bp/refresh-index-using-preload (2018-11-06) 2 commits
-  (merged to 'next' on 2018-11-06 at d9b9d8f559)
- + refresh_index: remove unnecessary calls to preload_index()
-  (merged to 'next' on 2018-11-01 at 289e6bcece)
- + speed up refresh_index() by utilizing preload_index()
-
- The helper function to refresh the cached stat information in the
- in-core index has learned to perform the lstat() part of the
- operation in parallel on multi-core platforms.
-
- Will merge to 'master'.
-
-
-* ab/pack-tests-cleanup (2018-10-31) 3 commits
-  (merged to 'next' on 2018-11-03 at b4a39595bb)
- + index-pack tests: don't leave test repo dirty at end
- + pack-objects tests: don't leave test .git corrupt at end
- + pack-objects test: modernize style
-
- A couple of tests used to leave the repository in a state that is
- deliberately corrupt, which have been corrected.
-
- Will merge to 'master'.
-
-
-* jk/detect-truncated-zlib-input (2018-10-31) 4 commits
-  (merged to 'next' on 2018-11-03 at 4952b4412b)
- + Adjust for 2.19.x series
- + cat-file: handle streaming failures consistently
- + check_stream_sha1(): handle input underflow
- + t1450: check large blob in trailing-garbage test
-
- A regression in Git 2.12 era made "git fsck" fall into an infinite
- loop while processing truncated loose objects.
-
- Will merge to 'master'.
-
-
-* jk/proto-v2-ref-prefix-fix (2018-10-31) 2 commits
-  (merged to 'next' on 2018-11-03 at 3a203db692)
- + ls-remote: pass heads/tags prefixes to transport
- + ls-remote: do not send ref prefixes for patterns
-
- "git ls-remote $there foo" was broken by recent update for the
- protocol v2 and stopped showing refs that match 'foo' that are not
- refs/{heads,tags}/foo, which has been fixed.
-
- Will merge to 'master'.
-
-
-* jk/stream-pack-non-delta-clarification (2018-10-31) 1 commit
-  (merged to 'next' on 2018-11-03 at bd386692c8)
- + read_istream_pack_non_delta(): document input handling
-
- Additional comment on a tricky piece of code to help developers.
-
- Will merge to 'master'.
-
-
-* js/mingw-isatty-and-dup2 (2018-10-31) 1 commit
-  (merged to 'next' on 2018-11-03 at 0616899d9e)
- + mingw: fix isatty() after dup2()
-
- Windows fix.
-
- Will merge to 'master'.
-
-
-* js/mingw-perl5lib (2018-10-31) 4 commits
-  (merged to 'next' on 2018-11-03 at 2fa516f3ae)
- + mingw: unset PERL5LIB by default
- + config: move Windows-specific config settings into compat/mingw.c
- + config: allow for platform-specific core.* config settings
- + config: rename `dummy` parameter to `cb` in git_default_config()
-
- Windows fix.
-
- Will merge to 'master'.
-
-
-* js/mingw-utf8-env (2018-10-31) 2 commits
-  (merged to 'next' on 2018-11-03 at f6c5a8b609)
- + mingw: reencode environment variables on the fly (UTF-16 <-> UTF-8)
- + t7800: fix quoting
-
- Windows fix.
-
- Will merge to 'master'.
-
-
-* ma/sequencer-do-reset-saner-loop-termination (2018-10-31) 1 commit
-  (merged to 'next' on 2018-11-03 at 99da78997d)
- + sequencer: break out of loop explicitly
-
- Code readability fix.
-
- Will merge to 'master'.
-
-
-* nb/worktree-api-doc (2018-10-31) 2 commits
-  (merged to 'next' on 2018-11-03 at de9befb1f3)
- + worktree: rename is_worktree_locked to worktree_lock_reason
- + worktree: update documentation for lock_reason and lock_reason_valid
+ - reflog: mark strings for translation
+ - read-cache.c: add missing colon separators
+ - read-cache.c: mark more strings for translation
+ - read-cache.c: turn die("internal error") to BUG()
+ - attr.c: mark more string for translation
+ - archive.c: mark more strings for translation
+ - alias.c: mark split_cmdline_strerror() strings for translation
+ - git.c: mark more strings for translation
 
Code readability fix.
More _("i18n") markings.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* sh/mingw-safer-compat-poll (2018-11-05) 1 commit
-  (merged to 'next' on 2018-11-05 at 933a940a68)
- + poll: use GetTickCount64() to avoid wrap-around issues
+* nd/pthreads (2018-11-05) 14 commits
+  (merged to 'next' on 2018-11-13 at bb6914b3f8)
+ + Clean up pthread_create() error handling
+ + read-cache.c: initialize copy_len to shut up gcc 8
+ + read-cache.c: reduce branching based on HAVE_THREADS
+ + read-cache.c: remove #ifdef NO_PTHREADS
+ + pack-objects: remove #ifdef NO_PTHREADS
+ + preload-index.c: remove #ifdef NO_PTHREADS
+ + grep: clean up num_threads handling
+ + grep: remove #ifdef NO_PTHREADS
+ + attr.c: remove #ifdef NO_PTHREADS
+ + name-hash.c: remove #ifdef NO_PTHREADS
+ + index-pack: remove #ifdef NO_PTHREADS
+ + send-pack.c: move async's #ifdef NO_PTHREADS back to run-command.c
+ + run-command.h: include thread-utils.h instead of pthread.h
+ + thread-utils: macros to unconditionally compile pthreads API
 
Windows fix.
The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS".
 
  Will merge to 'master'.
 
@@ -657,9 +905,9 @@ of the repositories listed at
  cf. <20181030220817.61691-1-sbeller@google.com>
 
 
-* en/merge-path-collision (2018-11-05) 10 commits
- - fixup! merge-recursive: improve rename/rename(1to2)/add[/add] handling
- - fixup! merge-recursive: fix rename/add conflict handling
+* en/merge-path-collision (2018-11-08) 10 commits
+ - merge-recursive: combine error handling
+ - t6036, t6043: increase code coverage for file collision handling
  - merge-recursive: improve rename/rename(1to2)/add[/add] handling
  - merge-recursive: use handle_file_collision for add/add conflicts
  - merge-recursive: improve handling for rename/rename(2to1) conflicts
@@ -667,163 +915,11 @@ of the repositories listed at
  - merge-recursive: new function for better colliding conflict resolutions
  - merge-recursive: increase marker length with depth of recursion
  - t6036, t6042: testcases for rename collision of already conflicting files
- - Add testcases for consistency in file collision conflict handling
+ - t6042: add tests for consistency in file collision conflict handling
 
  Updates for corner cases in merge-recursive.
 
-
-* jt/tighten-fetch-proto-v2-response (2018-11-01) 1 commit
-  (merged to 'next' on 2018-11-03 at 310fe3f2c3)
- + fetch-pack: be more precise in parsing v2 response
-
- "git fetch" was a bit loose in parsing resposes from the other side
- when talking over the protocol v2.
-
- Will merge to 'master'.
-
-
-* nd/complete-format-patch (2018-11-06) 1 commit
-  (merged to 'next' on 2018-11-06 at 7f4c58c9d0)
- + completion: use __gitcomp_builtin for format-patch
-
- The support for format-patch (and send-email) by the command-line
- completion script (in contrib/) has been simplified a bit.
-
- Will merge to 'master'.
-
-
-* nd/config-split (2018-10-29) 79 commits
-  (merged to 'next' on 2018-11-03 at a336559101)
- + config.txt: remove config/dummy.txt
- + config.txt: move worktree.* to a separate file
- + config.txt: move web.* to a separate file
- + config.txt: move versionsort.* to a separate file
- + config.txt: move user.* to a separate file
- + config.txt: move url.* to a separate file
- + config.txt: move uploadpack.* to a separate file
- + config.txt: move uploadarchive.* to a separate file
- + config.txt: move transfer.* to a separate file
- + config.txt: move tag.* to a separate file
- + config.txt: move submodule.* to a separate file
- + config.txt: move stash.* to a separate file
- + config.txt: move status.* to a separate file
- + config.txt: move splitIndex.* to a separate file
- + config.txt: move showBranch.* to a separate file
- + config.txt: move sequencer.* to a separate file
- + config.txt: move sendemail-config.txt to config/
- + config.txt: move reset.* to a separate file
- + config.txt: move rerere.* to a separate file
- + config.txt: move repack.* to a separate file
- + config.txt: move remotes.* to a separate file
- + config.txt: move remote.* to a separate file
- + config.txt: move receive-config.txt to config/
- + config.txt: move rebase-config.txt to config/
- + config.txt: move push-config.txt to config/
- + config.txt: move pull-config.txt to config/
- + config.txt: move protocol.* to a separate file
- + config.txt: move pretty.* to a separate file
- + config.txt: move pager.* to a separate file
- + config.txt: move pack.* to a separate file
- + config.txt: move notes.* to a separate file
- + config.txt: move mergetool.* to a separate file
- + config.txt: move merge-config.txt to config/
- + config.txt: move man.* to a separate file
- + config.txt: move mailmap.* to a separate file
- + config.txt: move mailinfo.* to a separate file
- + config.txt: move log.* to a separate file
- + config.txt: move interactive.* to a separate file
- + config.txt: move instaweb.* to a separate file
- + config.txt: move init.* to a separate file
- + config.txt: move index.* to a separate file
- + git-imap-send.txt: move imap.* to a separate file
- + config.txt: move i18n.* to a separate file
- + config.txt: move http.* to a separate file
- + config.txt: move ssh.* to a separate file
- + config.txt: move help.* to a separate file
- + config.txt: move guitool.* to a separate file
- + config.txt: move gui-config.txt to config/
- + config.txt: move gpg.* to a separate file
- + config.txt: move grep.* to a separate file
- + config.txt: move gitweb.* to a separate file
- + config.txt: move gitcvs-config.txt to config/
- + config.txt: move gc.* to a separate file
- + config.txt: move fsck.* to a separate file
- + config.txt: move fmt-merge-msg-config.txt to config/
- + config.txt: move format-config.txt to config/
- + config.txt: move filter.* to a separate file
- + config.txt: move fetch-config.txt to config/
- + config.txt: move fastimport.* to a separate file
- + config.txt: move difftool.* to a separate file
- + config.txt: move diff-config.txt to config/
- + config.txt: move completion.* to a separate file
- + config.txt: move credential.* to a separate file
- + config.txt: move commit.* to a separate file
- + config.txt: move column.* to a separate file
- + config.txt: move color.* to a separate file
- + config.txt: move clean.* to a separate file
- + config.txt: move checkout.* to a separate file
- + config.txt: move browser.* to a separate file
- + config.txt: move branch.* to a separate file
- + config.txt: move blame.* to a separate file
- + config.txt: move apply.* to a separate file
- + config.txt: move am.* to a separate file
- + config.txt: move alias.* to a separate file
- + config.txt: move add.* to a separate file
- + config.txt: move core.* to a separate file
- + config.txt: move advice.* to a separate file
- + Update makefile in preparation for Documentation/config/*.txt
- + Merge branches 'bp/reset-quiet' and 'js/mingw-http-ssl' into nd/config-split
- (this branch uses bp/reset-quiet.)
-
- Split the overly large Documentation/config.txt file into million
- little pieces.  This potentially allows each individual piece
- included into the manual page of the command it affects more easily.
-
- Will merge to 'master'.
-
- This is a painful conversions while many other topics in flight
- wants to add to or edit the documentation of configuration
- variables.
-
-
-* nd/per-worktree-config (2018-10-22) 2 commits
-  (merged to 'next' on 2018-11-01 at 3746343ca8)
- + worktree: add per-worktree config files
- + t1300: extract and use test_cmp_config()
-
- A fourth class of configuration files (in addition to the
- traditional "system wide", "per user in the $HOME directory" and
- "per repository in the $GIT_DIR/config") has been introduced so
- that different worktrees that share the same repository (hence the
- same $GIT_DIR/config file) can use different customization.
-
- Will merge to 'master'.
-
-
-* ag/rev-parse-all-exclude-fix (2018-11-01) 1 commit
-  (merged to 'next' on 2018-11-03 at 49730558fa)
- + rev-parse: clear --exclude list after 'git rev-parse --all'
-
- "git rev-parse --exclude=* --branches --branches"  (i.e. first
- saying "add only things that do not match '*' out of all branches"
- and then adding all branches, without any exclusion this time")
- worked as expected, but "--exclude=* --all --all" did not work the
- same way, which has been fixed.
-
- Will merge to 'master'.
-
-
-* bp/reset-quiet (2018-10-24) 3 commits
-  (merged to 'next' on 2018-10-29 at 71f4fbc802)
- + reset: warn when refresh_index() takes more than 2 seconds
- + reset: add new reset.quiet config setting
- + reset: don't compute unstaged changes after reset when --quiet
- (this branch is used by nd/config-split.)
-
- "git reset --quiet" no longer runs "update-index --refresh"
- internally, which shifts the refresh cost away from the command.
-
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
 * sd/stash-wo-user-name (2018-11-02) 1 commit
@@ -832,20 +928,6 @@ of the repositories listed at
  An early part of a wip.
 
 
-* pw/am-rebase-read-author-script (2018-11-01) 5 commits
-  (merged to 'next' on 2018-11-03 at bb6c32fe16)
- + sequencer: use read_author_script()
- + add read_author_script() to libgit
- + am: rename read_author_script()
- + am: improve author-script error reporting
- + am: don't die in read_author_script()
-
- Unify code to read the author-script used in "git am" and the
- commands that use the sequencer machinery, e.g. "git rebase -i".
-
- Will merge to 'master'.
-
-
 * bc/sha-256 (2018-11-05) 12 commits
  - hash: add an SHA-256 implementation using OpenSSL
  - sha256: add an SHA-256 implementation using libgcrypt
@@ -865,25 +947,30 @@ of the repositories listed at
 
 
 * js/vsts-ci (2018-10-16) 13 commits
- travis: fix skipping tagged releases
- README: add a build badge (status of the Azure Pipelines build)
- tests: record more stderr with --write-junit-xml in case of failure
- tests: include detailed trace logs with --write-junit-xml upon failure
- git-p4: use `test_atexit` to kill the daemon
- git-daemon: use `test_atexit` in the tests
- tests: introduce `test_atexit`
- ci: add a build definition for Azure DevOps
- ci/lib.sh: add support for Azure Pipelines
- tests: optionally write results as JUnit-style .xml
- test-date: add a subcommand to measure times in shell scripts
- ci/lib.sh: encapsulate Travis-specific things
- ci: rename the library of common functions
. travis: fix skipping tagged releases
. README: add a build badge (status of the Azure Pipelines build)
. tests: record more stderr with --write-junit-xml in case of failure
. tests: include detailed trace logs with --write-junit-xml upon failure
. git-p4: use `test_atexit` to kill the daemon
. git-daemon: use `test_atexit` in the tests
. tests: introduce `test_atexit`
. ci: add a build definition for Azure DevOps
. ci/lib.sh: add support for Azure Pipelines
. tests: optionally write results as JUnit-style .xml
. test-date: add a subcommand to measure times in shell scripts
. ci/lib.sh: encapsulate Travis-specific things
. ci: rename the library of common functions
 
  Prepare to run test suite on Azure DevOps.
 
- On hold, monitoring the discussion.
- cf. <nycvar.QRO.7.76.6.1810151657080.4546@tvgsbejvaqbjf.bet>
- cf. <nycvar.QRO.7.76.6.1810261033440.4546@tvgsbejvaqbjf.bet>
+ Ejected out of 'pu', as doing so seems to help other topics get
+ tested at TravisCI.
+
+ https://travis-ci.org/git/git/builds/452713184 is a sample of a
+ build whose tests on 4 hang (with this series in).  Ejecting it
+ gave us https://travis-ci.org/git/git/builds/452778963 which still
+ shows breakages from other topics not yet in 'next', but at least
+ the tests do not stall.
 
 
 * du/branch-show-current (2018-10-26) 1 commit
@@ -903,16 +990,6 @@ of the repositories listed at
  updated to use "size_t".
 
 
-* jc/war-on-string-list (2018-11-01) 1 commit
-  (merged to 'next' on 2018-11-03 at 2ff65073f1)
- + fetch: replace string-list used as a look-up table with a hashmap
-
- Replace three string-list instances used as look-up tables in "git
- fetch" with hashmaps.
-
- Will merge to 'master'.
-
-
 * js/remote-archive-v2 (2018-09-28) 4 commits
   (merged to 'next' on 2018-10-12 at 5f34377f60)
  + archive: allow archive over HTTP(S) with proto v2
@@ -930,23 +1007,23 @@ of the repositories listed at
  Breaks interoperability.
 
 
-* ag/sequencer-reduce-rewriting-todo (2018-10-09) 16 commits
+* ag/sequencer-reduce-rewriting-todo (2018-11-12) 16 commits
  . rebase--interactive: move transform_todo_file() to rebase--interactive.c
  . sequencer: fix a call to error() in transform_todo_file()
  . sequencer: use edit_todo_list() in complete_action()
  . rebase-interactive: rewrite edit_todo_list() to handle the initial edit
  . rebase-interactive: append_todo_help() changes
- . rebase-interactive: use todo_list_transform() in edit_todo_list()
+ . rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
  . sequencer: refactor skip_unnecessary_picks() to work on a todo_list
  . sequencer: change complete_action() to use the refactored functions
  . sequencer: make sequencer_make_script() write its script to a strbuf
- . sequencer: refactor transform_todos() to work on a todo_list
  . sequencer: refactor rearrange_squash() to work on a todo_list
  . sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
  . sequencer: refactor check_todo_list() to work on a todo_list
+ . sequencer: introduce todo_list_write_to_file()
+ . sequencer: refactor transform_todos() to work on a todo_list
  . sequencer: make the todo_list structure public
- . sequencer: clear the number of items of a todo_list before parsing
- . Merge branch 'ag/rebase-i-in-c' into ag/sequencer-reduce-rewriting-todo
+ . sequencer: changes in parse_insn_buffer()
 
  The scripted version of "git rebase -i" wrote and rewrote the todo
  list many times during a single step of its operation, and the
@@ -955,56 +1032,24 @@ of the repositories listed at
  around in-core to avoid rewriting the same file over and over
  unnecessarily.
 
- A reroll exists but is based on a stale codebase and is painful to
- merge.
-
-
-* ds/test-multi-pack-index (2018-10-26) 4 commits
-  (merged to 'next' on 2018-11-03 at 624c415a45)
- + packfile: close multi-pack-index in close_all_packs
- + multi-pack-index: define GIT_TEST_MULTI_PACK_INDEX
- + midx: close multi-pack-index on repack
- + midx: fix broken free() in close_midx()
-
- Tests for the recently introduced multi-pack index machinery.
-
- Will merge to 'master'.
-
-
-* nd/per-worktree-ref-iteration (2018-11-05) 9 commits
-  (merged to 'next' on 2018-11-06 at 53803cedf3)
- + git-worktree.txt: correct linkgit command name
-  (merged to 'next' on 2018-11-03 at 4cbe49a704)
- + reflog expire: cover reflog from all worktrees
- + fsck: check HEAD and reflog from other worktrees
- + fsck: move fsck_head_link() to get_default_heads() to avoid some globals
- + revision.c: better error reporting on ref from different worktrees
- + revision.c: correct a parameter name
- + refs: new ref types to make per-worktree refs visible to all worktrees
- + Add a place for (not) sharing stuff between worktrees
- + refs.c: indent with tabs, not spaces
-
- The code to traverse objects for reachability, used to decide what
- objects are unreferenced and expendable, have been taught to also
- consider per-worktree refs of other worktrees as starting points to
- prevent data loss.
-
- Will merge to 'master'.
+ With too many topics in-flight that touch sequencer and rebaser,
+ this need to wait giving precedence to other topics that fix bugs.
 
 
 * ds/reachable-topo-order (2018-11-02) 7 commits
- - t6012: make rev-list tests more interesting
- - revision.c: generation-based topo-order algorithm
- - commit/revisions: bookkeeping before refactoring
- - revision.c: begin refactoring --topo-order logic
- - test-reach: add rev-list tests
- - test-reach: add run_three_modes method
- - prio-queue: add 'peek' operation
+  (merged to 'next' on 2018-11-13 at 4155d01aee)
+ + t6012: make rev-list tests more interesting
+ + revision.c: generation-based topo-order algorithm
+ + commit/revisions: bookkeeping before refactoring
+ + revision.c: begin refactoring --topo-order logic
+ + test-reach: add rev-list tests
+ + test-reach: add run_three_modes method
+ + prio-queue: add 'peek' operation
 
  The revision walker machinery learned to take advantage of the
  commit generation numbers stored in the commit-graph file.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * sb/submodule-recursive-fetch-gets-the-tip (2018-10-31) 11 commits
@@ -1019,7 +1064,6 @@ of the repositories listed at
  - submodule.c: fix indentation
  - sha1-array: provide oid_array_filter
  - Merge branch 'ao/submodule-wo-gitmodules-checked-out' into sb/submodule-recursive-fetch-gets-the-tip
- (this branch uses ao/submodule-wo-gitmodules-checked-out.)
 
  "git fetch --recurse-submodules" may not fetch the necessary commit
  that is bound to the superproject, which is getting corrected.
@@ -1038,27 +1082,6 @@ of the repositories listed at
  cf. <e5b2900a-0558-d3bf-8ea1-d526b078bbc2@talktalk.net>
 
 
-* ao/submodule-wo-gitmodules-checked-out (2018-10-31) 10 commits
-  (merged to 'next' on 2018-11-03 at 00c3377ef0)
- + t/helper: add test-submodule-nested-repo-config
- + submodule: support reading .gitmodules when it's not in the working tree
- + submodule: add a helper to check if it is safe to write to .gitmodules
- + 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
- + t7411: merge tests 5 and 6
- + submodule: factor out a config_set_in_gitmodules_file_gently function
- + submodule: add a print_config_from_gitmodules() helper
- (this branch is used by sb/submodule-recursive-fetch-gets-the-tip.)
-
- The submodule support has been updated to read from the blob at
- HEAD:.gitmodules when the .gitmodules file is missing from the
- working tree.
-
- Will merge to 'master'.
-
-
 * ps/stash-in-c (2018-10-15) 21 commits
  - stash: replace all `write-tree` child processes with API calls
  - stash: optimize `get_untracked_files()` and `check_changes()`