]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2019/05 #01)
authorJunio C Hamano <gitster@pobox.com>
Wed, 8 May 2019 17:15:04 +0000 (02:15 +0900)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 May 2019 17:15:04 +0000 (02:15 +0900)
whats-cooking.txt

index 4550123ebe578f54ea2a5167e18761a068cb6c23..6f32c83a42f0ece6caedfc70e280773f13673611 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Apr 2019, #05; Thu, 25)
-X-master-at: 83232e38648b51abbcbdb56c94632b6906cc85a6
-X-next-at: f2820cf01acf778d953a46357a6160ba42711eb1
+Subject: What's cooking in git.git (May 2019, #01; Thu, 9)
+X-master-at: 6a6c0f10a70a6eb101c213b09ae82a9cad252743
+X-next-at: 81c186ecd2768836c2dc37eefd32d2e2a5e6dfb5
 
-What's cooking in git.git (Apr 2019, #05; Thu, 25)
+What's cooking in git.git (May 2019, #01; Thu, 9)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -12,6 +12,13 @@ Here are the topics that have been cooking.  Commits prefixed with
 '+' are in 'next'.  The ones marked with '.' do not appear in any of
 the integration branches, but I am still holding onto them.
 
+The 8th batch of topics, which Hopefully is the final one before
+-rc0, have been pushed out to 'master'.  The "no-extern" topic is
+now in 'next', with its merge conflict with many other topics, is
+still slowing me down when it is moved earlier in the merge order.
+I expect it to need only one more topic shuffling before merged to
+'master', so I hope I'd survive.
+
 You can find the changes described here in the integration branches
 of the repositories listed at
 
@@ -20,583 +27,516 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* ab/commit-graph-fixes (2019-04-01) 8 commits
-  (merged to 'next' on 2019-04-16 at 97f4ba02f0)
- + commit-graph: improve & i18n error messages
- + commit-graph write: don't die if the existing graph is corrupt
- + commit-graph verify: detect inability to read the graph
- + commit-graph: don't pass filename to load_commit_graph_one_fd_st()
- + commit-graph: don't early exit(1) on e.g. "git status"
- + commit-graph: fix segfault on e.g. "git status"
- + commit-graph tests: test a graph that's too small
- + commit-graph tests: split up corrupt_graph_and_verify()
- (this branch is used by ds/commit-graph-format-v2.)
-
- Code cleanup with more careful error checking before using data
- read from the commit-graph file.
-
-
-* ab/gc-docs (2019-04-08) 11 commits
-  (merged to 'next' on 2019-04-22 at 02785d40f5)
- + gc docs: remove incorrect reference to gc.auto=0
- + gc docs: clarify that "gc" doesn't throw away referenced objects
- + gc docs: note "gc --aggressive" in "fast-import"
- + gc docs: downplay the usefulness of --aggressive
- + gc docs: note how --aggressive impacts --window & --depth
- + gc docs: fix formatting for "gc.writeCommitGraph"
- + gc docs: re-flow the "gc.*" section in "config"
- + gc docs: include the "gc.*" section from "config" in "gc"
- + gc docs: clean grammar for "gc.bigPackThreshold"
- + gc docs: stop noting "repack" flags
- + gc docs: modernize the advice for manually running "gc"
-
- Update docs around "gc".
-
-
-* ab/gc-reflog (2019-04-01) 7 commits
-  (merged to 'next' on 2019-04-16 at aa27f951a8)
- + gc: handle & check gc.reflogExpire config
- + reflog tests: assert lack of early exit with expiry="never"
- + reflog tests: test for the "points nowhere" warning
- + reflog tests: make use of "test_config" idiom
- + gc: refactor a "call me once" pattern
- + gc: convert to using the_hash_algo
- + gc: remove redundant check for gc_auto_threshold
-
- Fix various glitches in "git gc" around reflog handling.
-
-
-* ab/test-lib-pass-trace2-env (2019-04-01) 1 commit
-  (merged to 'next' on 2019-04-16 at 4dad6d6d7a)
- + test-lib: whitelist GIT_TR2_* in the environment
-
- Allow tracing of Git executable while running the testsuite.
-
-
-* ag/sequencer-reduce-rewriting-todo (2019-03-07) 18 commits
-  (merged to 'next' on 2019-04-10 at 7eab7c7800)
- + rebase--interactive: move 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_write_to_file() in edit_todo_list()
- + sequencer: refactor skip_unnecessary_picks() to work on a todo_list
- + rebase--interactive: move rearrange_squash_in_todo_file()
- + rebase--interactive: move sequencer_add_exec_commands()
- + sequencer: change complete_action() to use the refactored functions
- + sequencer: make sequencer_make_script() write its script to a strbuf
- + 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: remove the 'arg' field from todo_item
- + sequencer: make the todo_list structure public
- + sequencer: changes in parse_insn_buffer()
- (this branch is used by pw/rebase-i-internal.)
-
- The scripted version of "git rebase -i" wrote and rewrote the todo
- list many times during a single step of its operation, and the
- recent C-rewrite made a faithful conversion of the logic to C.  The
- implementation has been updated to carry necessary information
- around in-core to avoid rewriting the same file over and over
- unnecessarily.
- cf. <20190305191805.13561-1-alban.gruin@gmail.com> (v8)
-
-
-* bc/hash-transition-16 (2019-04-01) 35 commits
-  (merged to 'next' on 2019-04-16 at 8227fea6fa)
- + gitweb: make hash size independent
- + Git.pm: make hash size independent
- + read-cache: read data in a hash-independent way
- + dir: make untracked cache extension hash size independent
- + builtin/difftool: use parse_oid_hex
- + refspec: make hash size independent
- + archive: convert struct archiver_args to object_id
- + builtin/get-tar-commit-id: make hash size independent
- + get-tar-commit-id: parse comment record
- + hash: add a function to lookup hash algorithm by length
- + remote-curl: make hash size independent
- + http: replace sha1_to_hex
- + http: compute hash of downloaded objects using the_hash_algo
- + http: replace hard-coded constant with the_hash_algo
- + http-walker: replace sha1_to_hex
- + http-push: remove remaining uses of sha1_to_hex
- + http-backend: allow 64-character hex names
- + http-push: convert to use the_hash_algo
- + builtin/pull: make hash-size independent
- + builtin/am: make hash size independent
- + fast-import: replace sha1_to_hex
- + fast-import: make hash-size independent
- + builtin/name-rev: make hash-size independent
- + object-store: rename and expand packed_git's sha1 member
- + notes: replace sha1_to_hex
- + notes: make hash size independent
- + notes-merge: switch to use the_hash_algo
- + submodule: avoid hard-coded constants
- + pack-bitmap: switch hash tables to use struct object_id
- + pack-bitmap: switch hard-coded constants to the_hash_algo
- + pack-bitmap: replace sha1_to_hex
- + pack-bitmap: convert struct stored_bitmap to object_id
- + pack-bitmap: make bitmap header handling hash agnostic
- + khash: move oid hash table definition
- + t/lib-submodule-update: use appropriate length constant
-
- Conversion from unsigned char[20] to struct object_id continues.
-
-
-* bc/send-email-qp-cr (2019-04-14) 1 commit
-  (merged to 'next' on 2019-04-22 at 69398b0ea8)
- + send-email: default to quoted-printable when CR is present
-
- "git send-email" has been taught to use quoted-printable when the
- payload contains carriage-return.  The use of the mechanism is in
- line with the design originally added the codepath that chooses QP
- when the payload has overly long lines.
-
-
-* bp/post-index-change-hook (2019-02-15) 1 commit
-  (merged to 'next' on 2019-03-11 at cb96d1d7c4)
- + read-cache: add post-index-change hook
-
- Originally merged to 'next' on 2019-02-23
-
- A new hook "post-index-change" is called when the on-disk index
- file changes, which can help e.g. a virtualized working tree
- implementation.
-
-
-* bs/sendemail-tighten-anything-by (2019-04-04) 1 commit
-  (merged to 'next' on 2019-04-22 at 0a0680f234)
- + send-email: don't cc *-by lines with '-' prefix
-
- The recently added feature to add addresses that are on
- anything-by: trailers in 'git send-email' was found to be way too
- eager and considered nonsense strings as if they can be legitimate
- beginning of *-by: trailer.  This has been tightened.
-
-
-* dk/blame-keep-origin-blob (2019-04-03) 1 commit
-  (merged to 'next' on 2019-04-16 at 39679dde8b)
- + blame.c: don't drop origin blobs as eagerly
-
- Performance fix around "git blame", especially in a linear history
- (which is the norm we should optimize for).
-
-
-* dl/submodule-set-branch (2019-04-10) 3 commits
-  (merged to 'next' on 2019-04-22 at 3b640715ae)
- + submodule: teach set-branch subcommand
- + submodule--helper: teach config subcommand --unset
- + git-submodule.txt: "--branch <branch>" option defaults to 'master'
-
- "git submodule" learns "set-branch" subcommand that allows the
- submodule.*.branch settings to be modified.
-
-
-* en/fast-import-parsing-fix (2019-04-01) 5 commits
-  (merged to 'next' on 2019-04-16 at b318831bde)
- + fast-import: fix erroneous handling of get-mark with empty orphan commits
- + fast-import: only allow cat-blob requests where it makes sense
- + fast-import: check most prominent commands first
- + git-fast-import.txt: fix wording about where ls command can appear
- + t9300: demonstrate bug with get-mark and empty orphan commits
-
- "git fast-import" update.
-
-
-* jc/gettext-test-fix (2019-04-15) 1 commit
-  (merged to 'next' on 2019-04-22 at 7c57deeb04)
- + gettext tests: export the restored GIT_TEST_GETTEXT_POISON
-
- The GETTEXT_POISON test option has been quite broken ever since it
- was made runtime-tunable, which has been fixed.
-
-
-* jk/fetch-reachability-error-fix (2019-04-15) 7 commits
-  (merged to 'next' on 2019-04-22 at b4ce8375c0)
- + fetch: do not consider peeled tags as advertised tips
- + remote.c: make singular free_ref() public
- + fetch: use free_refs()
- + pkt-line: prepare buffer before handling ERR packets
- + upload-pack: send ERR packet for non-tip objects
- + t5530: check protocol response for "not our ref"
- + t5516: drop ok=sigpipe from unreachable-want tests
-
- Code clean-up and a fix for "git fetch" by an explicit object name
- (as opposed to fetching refs by name).
-
-
-* jk/revision-rewritten-parents-in-prio-queue (2019-04-04) 1 commit
-  (merged to 'next' on 2019-04-16 at bdc1465128)
- + revision: use a prio_queue to hold rewritten parents
+* cc/aix-has-fileno-as-a-macro (2019-04-25) 1 commit
+  (merged to 'next' on 2019-04-25 at f1d6464f98)
+ + Makefile: use fileno macro work around on AIX
+ (this branch is used by cc/access-on-aix-workaround.)
 
- Performance fix for "rev-list --parents -- pathspec".
+ AIX shared the same build issues with other BSDs around fileno(fp),
+ which has been corrected.
 
 
-* jk/server-info-rabbit-hole (2019-04-16) 13 commits
-  (merged to 'next' on 2019-04-16 at 3dded8be9a)
- + update_info_refs(): drop unused force parameter
- + server-info: drop objdirlen pointer arithmetic
- + server-info: drop nr_alloc struct member
- + server-info: use strbuf to read old info/packs file
- + server-info: simplify cleanup in parse_pack_def()
- + server-info: fix blind pointer arithmetic
- + http: simplify parsing of remote objects/info/packs
- + packfile: fix pack basename computation
- + midx: check both pack and index names for containment
- + t5319: drop useless --buffer from cat-file
- + t5319: fix bogus cat-file argument
- + pack-revindex: open index if necessary
- + packfile.h: drop extern from function declarations
+* cc/replace-graft-peel-tags (2019-04-15) 4 commits
+  (merged to 'next' on 2019-04-25 at f8d0db27ba)
+ + replace: peel tag when passing a tag first to --graft
+ + replace: peel tag when passing a tag as parent to --graft
+ + t6050: redirect expected error output to a file
+ + t6050: use test_line_count instead of wc -l
 
- Code clean-up around a much-less-important-than-it-used-to-be
- update_server_info() funtion.
+ When given a tag that points at a commit-ish, "git replace --graft"
+ failed to peel the tag before writing a replace ref, which did not
+ make sense because the old graft mechanism the feature wants to
+ mimick only allowed to replace one commit object with another.
+ This has been fixed.
 
 
-* jk/unused-params-even-more (2019-03-21) 13 commits
-  (merged to 'next' on 2019-04-10 at 12edf8872f)
- + parse_opt_ref_sorting: always use with NONEG flag
- + pretty: drop unused strbuf from parse_padding_placeholder()
- + pretty: drop unused "type" parameter in needs_rfc2047_encoding()
- + parse-options: drop unused ctx parameter from show_gitcomp()
- + fetch_pack(): drop unused parameters
- + report_path_error(): drop unused prefix parameter
- + unpack-trees: drop unused error_type parameters
- + unpack-trees: drop name_entry from traverse_by_cache_tree()
- + test-date: drop unused "now" parameter from parse_dates()
- + update-index: drop unused prefix_length parameter from do_reupdate()
- + log: drop unused "len" from show_tagger()
- + log: drop unused rev_info from early output
- + revision: drop some unused "revs" parameters
+* dl/merge-cleanup-scissors-fix (2019-04-19) 10 commits
+  (merged to 'next' on 2019-04-25 at 2014eef6b1)
+ + cherry-pick/revert: add scissors line on merge conflict
+ + sequencer.c: save and restore cleanup mode
+ + merge: add scissors line on merge conflict
+ + merge: cleanup messages like commit
+ + parse-options.h: extract common --cleanup option
+ + commit: extract cleanup_mode functions to sequencer
+ + t7502: clean up style
+ + t7604: clean up style
+ + t3507: clean up style
+ + t7600: clean up style
+ (this branch uses pw/sequencer-cleanup-with-signoff-x-fix.)
 
- Code cleanup.
+ The list of conflicted paths shown in the editor while concluding a
+ conflicted merge was shown above the scissors line when the
+ clean-up mode is set to "scissors", even though it was commented
+ out just like the list of updated paths and other information to
+ help the user explain the merge better.
+
+
+* dl/warn-tagging-a-tag (2019-04-12) 2 commits
+  (merged to 'next' on 2019-04-25 at 8b966d7fe8)
+ + tag: advise on nested tags
+ + tag: fix formatting
 
+ "git tag" learned to give an advice suggesting it might be a
+ mistake when creating an annotated or signed tag that points at
+ another tag.
 
-* jk/xmalloc (2019-04-12) 4 commits
-  (merged to 'next' on 2019-04-22 at 1a907289fa)
- + progress: use xmalloc/xcalloc
- + xdiff: use xmalloc/xrealloc
- + xdiff: use git-compat-util
- + test-prio-queue: use xmalloc
 
- The code is updated to check the result of memory allocation before
- it is used in more places, by using xmalloc and/or xcalloc calls.
+* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
+  (merged to 'next' on 2019-04-25 at 07db067adc)
+ + ref-filter: use correct branch for %(push:track)
 
+ %(push:track) token used in the --format option to "git
+ for-each-ref" and friends was not showing the right branch, which
+ has been fixed.
 
-* js/difftool-no-index (2019-03-18) 3 commits
-  (merged to 'next' on 2019-04-16 at 7313f9ff18)
- + difftool: allow running outside Git worktrees with --no-index
- + parse-options: make OPT_ARGUMENT() more useful
- + difftool: remove obsolete (and misleading) comment
 
- "git difftool" can now run outside a repository.
+* en/merge-directory-renames (2019-04-08) 15 commits
+  (merged to 'next' on 2019-04-25 at fd5b4f57b4)
+ + merge-recursive: switch directory rename detection default
+ + merge-recursive: give callers of handle_content_merge() access to contents
+ + merge-recursive: track information associated with directory renames
+ + t6043: fix copied test description to match its purpose
+ + merge-recursive: switch from (oid,mode) pairs to a diff_filespec
+ + merge-recursive: cleanup handle_rename_* function signatures
+ + merge-recursive: track branch where rename occurred in rename struct
+ + merge-recursive: remove ren[12]_other fields from rename_conflict_info
+ + merge-recursive: shrink rename_conflict_info
+ + merge-recursive: move some struct declarations together
+ + merge-recursive: use 'ci' for rename_conflict_info variable name
+ + merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
+ + merge-recursive: rename diff_filespec 'one' to 'o'
+ + merge-recursive: rename merge_options argument from 'o' to 'opt'
+ + Use 'unsigned short' for mode, like diff_filespec does
 
+ "git merge-recursive" backend recently learned a new heuristics to
+ infer file movement based on how other files in the same directory
+ moved.  As this is inherently less robust heuristics than the one
+ based on the content similarity of the file itself (rather than
+ based on what its neighbours are doing), it sometimes gives an
+ outcome unexpected by the end users.  This has been toned down to
+ leave the renamed paths in higher/conflicted stages in the index so
+ that the user can examine and confirm the result.
 
-* js/iso8895-test-on-apfs (2019-04-15) 1 commit
-  (merged to 'next' on 2019-04-22 at c2fadead33)
- + t9822: skip tests if file names cannot be ISO-8859-1 encoded
 
- Test fix on APFS that is incapable of store paths in Latin-1.
+* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
+  (merged to 'next' on 2019-04-25 at e79464c054)
+ + pack-objects: write objects packed to trace2
 
+ The "git pack-objects" command learned to report the number of
+ objects it packed via the trace2 mechanism.
 
-* js/macos-gettext-build (2019-04-15) 1 commit
-  (merged to 'next' on 2019-04-22 at de4cbb1431)
- + macOS: make sure that gettext is found
 
- Build with gettext breaks on recent macOS w/ Homebrew when
- /usr/local/bin is not on PATH, which has been corrected.
+* jk/prune-optim (2019-04-19) 1 commit
+  (merged to 'next' on 2019-04-25 at c50353b27f)
+ + t5304: add a test for pruning with bitmaps
 
+ A follow-up test for an earlier "git prune" improvements.
 
-* js/t3301-unbreak-notes-test (2019-04-09) 1 commit
-  (merged to 'next' on 2019-04-22 at a015b00bd9)
- + t3301: fix false negative
 
- Test fix.
+* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
+  (merged to 'next' on 2019-04-25 at a6037ddd54)
+ + untracked-cache: simplify parsing by dropping "len"
+ + untracked-cache: simplify parsing by dropping "next"
+ + untracked-cache: be defensive about missing NULs in index
 
+ Code clean-up.
 
-* js/untracked-cache-allocfix (2019-04-12) 1 commit
-  (merged to 'next' on 2019-04-22 at 004a544075)
- + untracked cache: fix off-by-one
- (this branch is used by jk/untracked-cache-more-fixes.)
 
- An underallocation in the code to read the untracked cache
- extension has been corrected.
+* js/misc-doc-fixes (2019-04-19) 8 commits
+  (merged to 'next' on 2019-04-25 at 6898f709d0)
+ + Turn `git serve` into a test helper
+ + test-tool: handle the `-C <directory>` option just like `git`
+ + check-docs: do not bother checking for legacy scripts' documentation
+ + docs: exclude documentation for commands that have been excluded
+ + check-docs: allow command-list.txt to contain excluded commands
+ + help -a: do not list commands that are excluded from the build
+ + Makefile: drop the NO_INSTALL variable
+ + remote-testgit: move it into the support directory for t5801
 
+ "make check-docs", "git help -a", etc. did not account for cases
+ where a particular build may deliberately omit some subcommands,
+ which has been corrected.
 
-* jt/batch-fetch-blobs-in-diff (2019-04-08) 2 commits
-  (merged to 'next' on 2019-04-22 at 0598bae567)
- + diff: batch fetching of missing blobs
- + sha1-file: support OBJECT_INFO_FOR_PREFETCH
- (this branch is used by cc/multi-promisor.)
 
- While running "git diff" in a lazy clone, we can upfront know which
- missing blobs we will need, instead of waiting for the on-demand
- machinery to discover them one by one.  Aim to achieve better
- performance by batching the request for these promised blobs.
+* js/trace2-to-directory (2019-03-22) 1 commit
+  (merged to 'next' on 2019-04-25 at 53adf71c41)
+ + trace2: write to directory targets
 
+ The trace2 tracing facility learned to auto-generate a filename
+ when told to log to a directory.
 
-* jt/fetch-no-update-shallow-in-proto-v2 (2019-04-01) 3 commits
-  (merged to 'next' on 2019-04-16 at 05c5ebe471)
- + fetch-pack: respect --no-update-shallow in v2
- + fetch-pack: call prepare_shallow_info only if v0
- + Merge branch 'jt/test-protocol-version' into jt/fetch-no-update-shallow-in-proto-v2
 
- Fix for protocol v2 support in "git fetch-pack" of shallow clones.
+* jt/clone-server-option (2019-04-18) 2 commits
+  (merged to 'next' on 2019-04-25 at 21f07cc85d)
+ + clone: send server options when using protocol v2
+ + transport: die if server options are unsupported
 
+ "git clone" learned a new --server-option option when talking over
+ the protocol version 2.
 
-* jt/fetch-pack-wanted-refs-optim (2019-04-01) 1 commit
-  (merged to 'next' on 2019-04-16 at 051f6bd38a)
- + fetch-pack: binary search when storing wanted-refs
 
- Performance fix around "git fetch" that grabs many refs.
+* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
+  (merged to 'next' on 2019-04-25 at da2c6d684d)
+ + worktree: update is_bare heuristics
 
+ The logic to tell if a Git repository has a working tree protects
+ "git branch -D" from removing the branch that is currently checked
+ out by mistake.  The implementation of this logic was broken for
+ repositories with unusual name, which unfortunately is the norm for
+ submodules these days.  This has been fixed.
 
-* km/t3000-retitle (2019-04-12) 1 commit
-  (merged to 'next' on 2019-04-22 at 2d5aa01ca6)
- + t3000 (ls-files -o): widen description to reflect current tests
 
- A test update.
+* km/empty-repo-is-still-a-repo (2019-04-10) 3 commits
+  (merged to 'next' on 2019-04-25 at bb3d4406a5)
+ + add: error appropriately on repository with no commits
+ + dir: do not traverse repositories with no commits
+ + submodule: refuse to add repository with no commits
 
+ Running "git add" on a repository created inside the current
+ repository is an explicit indication that the user wants to add it
+ as a submodule, but when the HEAD of the inner repository is on an
+ unborn branch, it cannot be added as a submodule.  Worse, the files
+ in its working tree can be added as if they are a part of the outer
+ repository, which is not what the user wants.  These problems are
+ being addressed.
 
-* nd/checkout-m (2019-03-24) 4 commits
-  (merged to 'next' on 2019-04-16 at 4d7c322bed)
- + checkout: prevent losing staged changes with --merge
- + read-tree: add --quiet
- + unpack-trees: rename "gently" flag to "quiet"
- + unpack-trees: keep gently check inside add_rejected_path
 
- "git checkout -m <other>" was about carrying the differences
- between HEAD and the working-tree files forward while checking out
- another branch, and ignored the differences between HEAD and the
- index.  The command has been taught to abort when the index and the
- HEAD are different.
+* nd/sha1-name-c-wo-the-repository (2019-04-16) 34 commits
+  (merged to 'next' on 2019-04-25 at d826918329)
+ + sha1-name.c: remove the_repo from get_oid_mb()
+ + sha1-name.c: remove the_repo from other get_oid_*
+ + sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
+ + submodule-config.c: use repo_get_oid for reading .gitmodules
+ + sha1-name.c: add repo_get_oid()
+ + sha1-name.c: remove the_repo from get_oid_with_context_1()
+ + sha1-name.c: remove the_repo from resolve_relative_path()
+ + sha1-name.c: remove the_repo from diagnose_invalid_index_path()
+ + sha1-name.c: remove the_repo from handle_one_ref()
+ + sha1-name.c: remove the_repo from get_oid_1()
+ + sha1-name.c: remove the_repo from get_oid_basic()
+ + sha1-name.c: remove the_repo from get_describe_name()
+ + sha1-name.c: remove the_repo from get_oid_oneline()
+ + sha1-name.c: add repo_interpret_branch_name()
+ + sha1-name.c: remove the_repo from interpret_branch_mark()
+ + sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
+ + sha1-name.c: remove the_repo from get_short_oid()
+ + sha1-name.c: add repo_for_each_abbrev()
+ + sha1-name.c: store and use repo in struct disambiguate_state
+ + sha1-name.c: add repo_find_unique_abbrev_r()
+ + sha1-name.c: remove the_repo from find_abbrev_len_packed()
+ + sha1-name.c: remove the_repo from sort_ambiguous()
+ + commit.c: add repo_get_commit_tree()
+ + commit.cocci: refactor code, avoid double rewrite
+ + refs.c: remove the_repo from read_ref_at()
+ + refs.c: add repo_dwim_log()
+ + refs.c: add repo_dwim_ref()
+ + refs.c: remove the_repo from expand_ref()
+ + refs.c: remove the_repo from substitute_branch_name()
+ + refs.c: add refs_shorten_unambiguous_ref()
+ + refs.c: add refs_ref_exists()
+ + packfile.c: add repo_approximate_object_count()
+ + builtin rebase: use oideq()
+ + builtin rebase: use FREE_AND_NULL
 
+ Further code clean-up to allow the lowest level of name-to-object
+ mapping layer to work with a passed-in repository other than the
+ default one.
 
-* nd/commit-a-with-paths-msg-update (2019-03-22) 1 commit
-  (merged to 'next' on 2019-04-16 at a36c712b39)
- + commit: improve error message in "-a <paths>" case
 
- The message given when "git commit -a <paths>" errors out has been
- updated.
+* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
+  (merged to 'next' on 2019-04-25 at cc587fb2b9)
+ + sequencer: fix cleanup with --signoff and -x
+ (this branch is used by dl/merge-cleanup-scissors-fix.)
 
+ "git cherry-pick" run with the "-x" or the "--signoff" option used
+ to (and more importantly, ought to) clean up the commit log message
+ with the --cleanup=space option by default, but this has been
+ broken since late 2017.  This has been fixed.
 
-* nd/diff-parseopt-4 (2019-03-24) 20 commits
-  (merged to 'next' on 2019-04-10 at 893b135f10)
- + am: avoid diff_opt_parse()
- + diff --no-index: use parse_options() instead of diff_opt_parse()
- + range-diff: use parse_options() instead of diff_opt_parse()
- + diff.c: allow --no-color-moved-ws
- + diff-parseopt: convert --color-moved-ws
- + diff-parseopt: convert --[no-]color-moved
- + diff-parseopt: convert --inter-hunk-context
- + diff-parseopt: convert --no-prefix
- + diff-parseopt: convert --line-prefix
- + diff-parseopt: convert --[src|dst]-prefix
- + diff-parseopt: convert --[no-]abbrev
- + diff-parseopt: convert --diff-filter
- + diff-parseopt: convert --find-object
- + diff-parseopt: convert -O
- + diff-parseopt: convert --pickaxe-all|--pickaxe-regex
- + diff-parseopt: convert -S|-G
- + diff-parseopt: convert -l
- + diff-parseopt: convert -z
- + diff-parseopt: convert --ita-[in]visible-in-index
- + diff-parseopt: convert --ws-error-highlight
 
- Fourth batch to teach the diff machinery to use the parse-options
- API.
+* ss/msvc-path-utils-fix (2019-04-09) 1 commit
+  (merged to 'next' on 2019-04-25 at ee2850da18)
+ + MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
 
+ An earlier update for MinGW and Cygwin accidentally broke MSVC build,
+ which has been fixed.
 
-* nd/submodule-foreach-quiet (2019-04-15) 1 commit
-  (merged to 'next' on 2019-04-22 at bf982bca7b)
- + submodule foreach: fix "<command> --quiet" not being respected
 
- "git submodule foreach <command> --quiet" did not pass the option
- down correctly, which has been corrected.
+* tb/unexpected (2019-04-10) 7 commits
+  (merged to 'next' on 2019-04-25 at c49927fca0)
+ + rev-list: detect broken root trees
+ + rev-list: let traversal die when --missing is not in use
+ + get_commit_tree(): return NULL for broken tree
+ + list-objects.c: handle unexpected non-tree entries
+ + list-objects.c: handle unexpected non-blob entries
+ + t: introduce tests for unexpected object types
+ + t: move 'hex2oct' into test-lib-functions.sh
 
+ Code tightening against a "wrong" object appearing where an object
+ of a different type is expected, instead of blindly assuming that
+ the connection between objects are correctly made.
 
-* po/describe-not-necessarily-7 (2019-04-08) 1 commit
-  (merged to 'next' on 2019-04-22 at 65b47ca73f)
- + describe doc: remove '7-char' abbreviation reference
 
- Docfix.
+* tz/git-svn-doc-markup-fix (2019-04-10) 1 commit
+  (merged to 'next' on 2019-04-25 at 3efaa6285c)
+ + Documentation/git-svn: improve asciidoctor compatibility
 
+ Doc formatting fix.
 
-* po/rerere-doc-fmt (2019-04-08) 1 commit
-  (merged to 'next' on 2019-04-22 at 780c0d2450)
- + rerere doc: quote `rerere.enabled`
 
- Docfix.
+* vk/autoconf-gettext (2019-04-19) 1 commit
+  (merged to 'next' on 2019-04-25 at 918870cbc2)
+ + autoconf: #include <libintl.h> when checking for gettext()
 
+ The autoconf generated configure script failed to use the right
+ gettext() implementations from -libintl by ignoring useless stub
+ implementations shipped in some C library, which has been
+ corrected.
 
-* pw/cherry-pick-continue (2019-03-18) 3 commits
-  (merged to 'next' on 2019-04-16 at 1bfd7a7179)
- + cherry-pick --continue: remember options
- + cherry-pick: demonstrate option amnesia
- + sequencer: break some long lines
+--------------------------------------------------
+[New Topics]
 
- "git cherry-pick --options A..B", after giving control back to the
- user to ask help resolving a conflicted step, did not honor the
- options it originally received, which has been corrected.
+* ab/perf-installed-fix (2019-05-08) 6 commits
+ - perf-lib.sh: forbid the use of GIT_TEST_INSTALLED
+ - perf tests: add "bindir" prefix to git tree test results
+ - perf-lib.sh: remove GIT_TEST_INSTALLED from perf-lib.sh
+ - perf-lib.sh: make "./run <revisions>" use the correct gits
+ - perf aggregate: remove GIT_TEST_INSTALLED from --codespeed
+ - perf README: correct docs for 3c8f12c96c regression
 
+ Performance test framework has been broken and measured the version
+ of Git that happens to be on $PATH, not the specified one to
+ measure, for a while, which has been corrected.
 
-* sg/blame-in-bare-start-at-head (2019-04-08) 1 commit
-  (merged to 'next' on 2019-04-22 at 159777c280)
- + blame: default to HEAD in a bare repo when no start commit is given
+ Will merge to 'next'.
+ cf. <20190507105434.9600-1-avarab@gmail.com>
 
- "git blame -- path" in a non-bare repository starts blaming from
- the working tree, and the same command in a bare repository errors
- out because there is no working tree by definition.  The command
- has been taught to instead start blaming from the commit at HEAD,
- which is more useful.
 
+* an/ignore-doc-update (2019-05-08) 1 commit
+ - gitignore.txt: make slash-rules more readable
 
-* sg/index-pack-progress (2019-04-01) 1 commit
-  (merged to 'next' on 2019-04-16 at a10bfdd950)
- + index-pack: show progress while checking objects
+ The description about slashes in gitignore patterns (used to
+ indicate things like "anchored to this level only" and "only
+ matches directories") has been revamped.
 
- A progress indicator has been added to the "index-pack" step, which
- often makes users wait for completion during "git clone".
+ Almost there.
+ cf. <20190507104507.18735-1-admin@in-ici.net>
 
 
-* sg/overlong-progress-fix (2019-04-15) 4 commits
-  (merged to 'next' on 2019-04-22 at 69921cdf09)
- + progress: break too long progress bar lines
- + progress: clear previous progress update dynamically
- + progress: assemble percentage and counters in a strbuf before printing
- + progress: make display_progress() return void
+* bl/t4253-exit-code-from-format-patch (2019-05-07) 1 commit
+ - t4253-am-keep-cr-dos: avoid using pipes
 
- Updating the display with progress message has been cleaned up to
deal better with overlong messages.
+ Avoid patterns to pipe output from a git command to feed another
command in tests.
 
+ Will merge to 'next'.
 
-* sg/test-atexit (2019-03-14) 11 commits
-  (merged to 'next' on 2019-04-10 at 7839135291)
- + t9811-git-p4-label-import: fix pipeline negation
- + git p4 test: disable '-x' tracing in the p4d watchdog loop
- + git p4 test: simplify timeout handling
- + git p4 test: clean up the p4d cleanup functions
- + git p4 test: use 'test_atexit' to kill p4d and the watchdog process
- + t0301-credential-cache: use 'test_atexit' to stop the credentials helper
- + tests: use 'test_atexit' to stop httpd
- + git-daemon: use 'test_atexit` to stop 'git-daemon'
- + test-lib: introduce 'test_atexit'
- + t/lib-git-daemon: make sure to kill the 'git-daemon' process
- + test-lib: fix interrupt handling with 'dash' and '--verbose-log -x'
 
- Test framework update to more robustly clean up leftover files and
- processes after tests are done.
+* cm/notes-comment-fix (2019-05-07) 1 commit
+ - notes: correct documentation of format_display_notes()
 
+ A stale in-code comment has been updated.
 
-* tg/ls-files-debug-format-fix (2019-04-08) 1 commit
-  (merged to 'next' on 2019-04-22 at a5ac1ca49f)
- + ls-files: use correct format string
+ Will merge to 'next'.
 
- Debugging code fix.
 
+* dl/branch-from-3dot-merge-base (2019-05-07) 2 commits
+ - branch: make create_branch accept a merge base rev
+ - t2018: cleanup in current test
 
-* tz/doc-apostrophe-no-longer-needed (2019-04-10) 1 commit
-  (merged to 'next' on 2019-04-22 at 8ff03863ce)
- + Documentation/git-show-branch: avoid literal {apostrophe}
+ "git branch new A...B" and "git checkout -b new A...B" have been
+ taught that in their contexts, the notation A...B means "the merge
+ base between these two commits", just like "git checkout A...B"
+ detaches HEAD at that commit.
 
- Doc formatting fix.
+ Will merge to 'next'.
+ cf. <cover.1556366347.git.liu.denton@gmail.com>
 
---------------------------------------------------
-[New Topics]
 
-* jc/make-dedup-ls-files-output (2019-04-22) 1 commit
- - Makefile: dedup list of files obtained from ls-files
+* ds/cvsexportcommit-force-text (2019-05-07) 1 commit
+ - cvsexportcommit: force crlf translation
 
- A "ls-files" that emulates "find" to enumerate files in the working
- tree resulted in duplicated Makefile rules that caused the build to
- issue an unnecessary warning during a trial build after merge
- conflicts are resolved in working tree *.h files but before the
- resolved results are added to the index.  This has been corrected.
+ "git cvsexportcommit" running on msys did not expect cvsnt showed
+ "cvs status" output with CRLF line endings.
 
  Will merge to 'next'.
- A not-so-low hanging fruit to teach ls-files to dedup either optionally
- or always has also been discussed, which probably is a good idea,
- to prevent mistakes similar to the bug this topic fixes in the future.
 
 
-* jk/ls-files-doc-markup-fix (2019-04-23) 1 commit
- - doc/ls-files: put nested list for "-t" option into block
+* en/fast-export-encoding (2019-05-07) 5 commits
+ - fast-export: do automatic reencoding of commit messages only if requested
+ - fast-export: differentiate between explicitly utf-8 and implicitly utf-8
+ - fast-export: avoid stripping encoding header if we cannot reencode
+ - fast-import: support 'encoding' commit header
+ - t9350: fix encoding test to actually test reencoding
 
- Docfix.
+ The "git fast-export/import" pair has been taught to handle commits
+ with log messages in encoding other than UTF-8 better.
 
  Will merge to 'next'.
 
 
-* jk/p5302-avoid-collision-check-cost (2019-04-23) 1 commit
- - p5302: create the repo in each index-pack test
+* jh/trace2 (2019-04-26) 1 commit
+  (merged to 'next' on 2019-05-09 at e1bba8aeac)
+ + trace2: fix incorrect function pointer check
+
+ An embarrassing bugfix.
+
+ Will merge to 'master'.
 
- Fix index-pack perf test so that the repeated invocations always
- run in an empty repository, which emulates the initial clone
- situation better.
+
+* jk/apache-lsan (2019-05-08) 1 commit
+ - t/lib-httpd: pass LSAN_OPTIONS through apache
+
+ Allow tests that involve httpd to be run under leak sanitizer, just
+ like we can already do so under address sanitizer.
 
  Will merge to 'next'.
 
 
-* dl/rev-tilde-doc-clarify (2019-04-24) 1 commit
- - revisions.txt: mention <rev>~ form
+* jk/cocci-batch (2019-05-08) 2 commits
+ - coccicheck: make batch size of 0 mean "unlimited"
+ - coccicheck: optionally batch spatch invocations
 
- Docfix.
+ Optionally "make coccicheck" can feed multiple source files to
+ spatch, gaining performance while spending more memory.
 
  Will merge to 'next'.
 
 
-* en/unicode-in-refnames (2019-04-24) 1 commit
- - Honor core.precomposeUnicode in more places
+* js/commit-graph-parse-leakfix (2019-05-07) 1 commit
+ - commit-graph: fix memory leak
 
- The names of the refs stored as filesystem entities may become
- different from what the end-user expects, just like files in the
- working tree gets "renamed", on a filesystem like HFS+.  Work it
- around by paying attemption to the core.precomposeUnicode
- configuration.
+ Leakfix.
 
- Looked sensible.  Ready for next?
+ Will merge to 'next'.
 
 
-* jk/perf-aggregate-wo-libjson (2019-04-24) 1 commit
- - t/perf: depend on perl JSON only when using --codespeed
+* js/fsmonitor-refresh-after-discarding-index (2019-05-08) 2 commits
+ - fsmonitor: force a refresh after the index was discarded
+ - fsmonitor: demonstrate that it is not refreshed after discard_index()
 
- The script to aggregate perf result unconditionally depended on
- libjson-perl even though it did not have to, which has been
- corrected.
+ The fsmonitor interface got out of sync after the in-core index
+ file gets discarded, which has been corrected.
 
  Will merge to 'next'.
 
 
-* cc/access-on-aix-workaround (2019-04-25) 1 commit
- - git-compat-util: work around for access(X_OK) under root
- (this branch uses cc/aix-has-fileno-as-a-macro.)
+* js/t5580-unc-alternate-test (2019-05-07) 1 commit
+ - t5580: verify that alternates can be UNC paths
 
+ An additional test for MinGW
 
-* dl/difftool-mergetool (2019-04-25) 6 commits
- - difftool: fallback on merge.guitool
- - difftool: make --gui, --tool and --extcmd mutually exclusive
- - mergetool: fallback to tool when guitool unavailable
- - mergetool: use get_merge_tool function
- - t7610: add mergetool --gui tests
- - t7610: unsuppress output
+ Will merge to 'next'.
+
+
+* js/t6500-use-windows-pid-on-mingw (2019-05-08) 1 commit
+ - t6500(mingw): use the Windows PID of the shell
+
+ Future-proof a test against an update to MSYS2 runtime v3.x series.
+
+ Will merge to 'next'.
+ cf. <pull.185.git.gitgitgadget@gmail.com>
+ It might be helpful in the longer term to encapsulate the code that
+ uses /proc/$$/winpid into a helper function and use it anywhere $$
+ is referenced, but let's defer it until we see such a callsite that
+ would be helped by such a move.
+
+
+* mh/http-fread-api-fix (2019-05-08) 1 commit
+ - Make fread/fwrite-like functions in http.c more like fread/fwrite.
+
+ A pair of private functions in http.c that had names similar to
+ fread/fwrite did not return the number of elements, which was found
+ to be confusing.
+
+ Will merge to 'next'.
+
+
+* nd/merge-quit (2019-05-07) 2 commits
+ - merge: add --quit
+ - merge: remove drop_save() in favor of remove_merge_branch_state()
+
+ "git merge" learned "--quit" option that cleans up the in-progress
+ merge while leaving the working tree and the index still in a mess.
+
+ Hmph, why is this a good idea?
+
+
+* nd/parse-options-aliases (2019-05-07) 1 commit
+ - parse-options: don't emit "ambiguous option" for aliases
+
+ Attempt to use an abbreviated option in "git clone --recurs" is
+ responded by a request to disambiguate between --recursive and
+ --recurse-submodules, which is bad because these two are synonyms.
+ The parse-options API has been extended to define such synonyms
+ more easily and not produce an unnecessary failure.
+
+ Will merge to 'next'.
+
+
+* pw/rebase-abort-clean-rewritten (2019-05-08) 1 commit
+ - rebase --abort: cleanup refs/rewritten
+ (this branch uses pw/rebase-i-internal.)
+
+ "git rebase --abort" used to leave refs/rewritten/ when concluding
+ "git rebase -r", which has been corrected.
+
+ Will merge to 'next'.
+
+
+* sg/ci-libsvn-perl (2019-05-07) 1 commit
+ - ci: install 'libsvn-perl' instead of 'git-svn'
+
+ To run tests for Git SVN, our scripts for CI used to install the
+ git-svn package (in the hope that it would bring in the right
+ dependencies).  This has been updated to install the more direct
+ dependency, namely, libsvn-perl.
+
+ Will merge to 'next'.
+
+
+* tt/no-ipv6-fallback-for-winxp (2019-05-07) 1 commit
+ - mingw: remove obsolete IPv6-related code
+
+ Code cleanup.
+
+ Will merge to 'next'.
+
+
+* jc/send-email-transferencoding-fix (2019-05-08) 2 commits
+ - send-email: honor transferencoding config option again
+ - send-email: update the mechanism to set default configuration values
+
+ Since "git send-email" learned to take 'auto' as the value for the
+ transfer-encoding, it by mistake stopped honoring the values given
+ to the configuration variables sendemail.transferencoding and/or
+ sendemail.<ident>.transferencoding.  Attempt to correct this.
+
+ cf. <20190508105607.178244-1-gitster@pobox.com> (v2)
 
 --------------------------------------------------
 [Stalled]
 
-* nb/branch-show-other-worktrees-head (2019-03-18) 3 commits
- - branch: add worktree info on verbose output
- - branch: update output to include worktree info
- - ref-filter: add worktreepath atom
+* jn/unknown-index-extensions (2018-11-21) 2 commits
+ - index: offer advice for unknown index extensions
+ - index: do not warn about unrecognized extensions
 
- "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.
+ A bit too alarming warning given when unknown index extensions
+ exist is getting revamped.
 
- Getting there...
- cf. <20190316013807.38756-1-nbelakovski@gmail.com> (v9)
- cf. <20190318121054.GC24175@szeder.dev>
+ Expecting a reroll.
+
+
+* jc/format-patch-delay-message-id (2019-04-05) 1 commit
+ - format-patch: move message-id and related headers to the end
+
+ The location "git format-patch --thread" adds the Message-Id:
+ header in the series of header fields has been moved down, which
+ may help working around a suspected bug in GMail MSA, reported at
+ <CAHk-=whP1stFZNAaJiMi5eZ9rj0MRt20Y_yHVczZPH+O01d+sA@mail.gmail.com>
+
+ Waiting for feedback to see if it truly helps.
+ Needs tests.
 
 
 * jt/fetch-cdn-offload (2019-03-12) 9 commits
@@ -659,302 +599,185 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
-* ds/midx-expire-repack (2019-04-25) 11 commits
- - t5319-multi-pack-index.sh: test batch size zero
- - midx: add test that 'expire' respects .keep files
- - multi-pack-index: test expire while adding packs
- - midx: implement midx_repack()
- - multi-pack-index: prepare 'repack' subcommand
- - multi-pack-index: implement 'expire' subcommand
- - midx: refactor permutation logic and pack sorting
- - midx: simplify computation of pack name lengths
- - multi-pack-index: prepare for 'expire' subcommand
- - Docs: rearrange subcommands for multi-pack-index
- - repack: refactor pack deletion for future use
-
- "git multi-pack-index expire/repack" are new subcommands that
- consult midx file and are used to drop unused pack files and
- coalesce small pack files that are still in use.
-
- cf. <20190424151428.170316-1-dstolee@microsoft.com> (v5)
-
-
-* es/first-contrib-tutorial (2019-04-25) 1 commit
- - documentation: add tutorial for first contribution
-
- A new tutorial targetting specifically aspiring git-core
- developers.
-
- cf. <20190423193410.101803-1-emilyshaffer@google.com> (v4)
-
-
-* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
- - fix cherry-pick/revert status after commit
- - commit/reset: try to clean up sequencer state
-
- "git chery-pick" (and "revert" that shares the same runtime engine)
- that deals with multiple commits got confused when the final step
- gets stopped with a conflict and the user concluded the sequence
- with "git commit".  Attempt to fix it by cleaning up the state
- files used by these commands in such a situation.
-
- Will merge to 'next'.
-
-
-* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
-  (merged to 'next' on 2019-04-25 at cc587fb2b9)
- + sequencer: fix cleanup with --signoff and -x
- (this branch is used by dl/merge-cleanup-scissors-fix.)
-
- "git cherry-pick" run with the "-x" or the "--signoff" option used
- to (and more importantly, ought to) clean up the commit log message
- with the --cleanup=space option by default, but this has been
- broken since late 2017.  This has been fixed.
+* nb/branch-show-other-worktrees-head (2019-05-07) 3 commits
+ - branch: add worktree info on verbose output
+ - branch: update output to include worktree info
+ - ref-filter: add worktreepath atom
 
- Will merge to 'master'.
+ "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.
 
 
-* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
-  (merged to 'next' on 2019-04-25 at 07db067adc)
- + ref-filter: use correct branch for %(push:track)
+* jc/make-dedup-ls-files-output (2019-04-22) 1 commit
+  (merged to 'next' on 2019-05-09 at e3d5825003)
+ + Makefile: dedup list of files obtained from ls-files
 
- %(push:track) token used in the --format option to "git
- for-each-ref" and friends was not showing the right branch, which
- has been fixed.
+ A "ls-files" that emulates "find" to enumerate files in the working
+ tree resulted in duplicated Makefile rules that caused the build to
+ issue an unnecessary warning during a trial build after merge
+ conflicts are resolved in working tree *.h files but before the
+ resolved results are added to the index.  This has been corrected.
 
  Will merge to 'master'.
+ A not-so-low hanging fruit to teach ls-files to dedup either optionally
+ or always has also been discussed, which probably is a good idea,
+ to prevent mistakes similar to the bug this topic fixes in the future.
 
 
-* cc/aix-has-fileno-as-a-macro (2019-04-25) 1 commit
-  (merged to 'next' on 2019-04-25 at f1d6464f98)
- + Makefile: use fileno macro work around on AIX
- (this branch is used by cc/access-on-aix-workaround.)
+* jk/ls-files-doc-markup-fix (2019-04-23) 1 commit
+  (merged to 'next' on 2019-05-09 at a68fe0ae72)
+ + doc/ls-files: put nested list for "-t" option into block
 
- AIX shared the same build issues with other BSDs around fileno(fp),
- which has been corrected.
+ Docfix.
 
  Will merge to 'master'.
 
 
-* jk/prune-optim (2019-04-19) 1 commit
-  (merged to 'next' on 2019-04-25 at c50353b27f)
- + t5304: add a test for pruning with bitmaps
+* jk/p5302-avoid-collision-check-cost (2019-04-23) 1 commit
+  (merged to 'next' on 2019-05-09 at 8dc92cad96)
+ + p5302: create the repo in each index-pack test
 
- A follow-up test for an earlier "git prune" improvements.
+ Fix index-pack perf test so that the repeated invocations always
+ run in an empty repository, which emulates the initial clone
+ situation better.
 
  Will merge to 'master'.
 
 
-* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
-  (merged to 'next' on 2019-04-25 at a6037ddd54)
- + untracked-cache: simplify parsing by dropping "len"
- + untracked-cache: simplify parsing by dropping "next"
- + untracked-cache: be defensive about missing NULs in index
+* dl/rev-tilde-doc-clarify (2019-05-08) 4 commits
+  (merged to 'next' on 2019-05-09 at 6efd564b11)
+ + revisions.txt: remove ambibuity between <rev>:<path> and :<path>
+ + revisions.txt: mention <rev>~ form
+ + revisions.txt: mark optional rev arguments with []
+ + revisions.txt: change "rev" to "<rev>"
 
Code clean-up.
Docfix.
 
  Will merge to 'master'.
 
 
-* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
-  (merged to 'next' on 2019-04-25 at da2c6d684d)
- + worktree: update is_bare heuristics
+* en/unicode-in-refnames (2019-04-26) 1 commit
+ - Honor core.precomposeUnicode in more places
 
- The logic to tell if a Git repository has a working tree protects
- "git branch -D" from removing the branch that is currently checked
- out by mistake.  The implementation of this logic was broken for
- repositories with unusual name, which unfortunately is the norm for
submodules these days.  This has been fixed.
+ The names of the refs stored as filesystem entities may become
+ different from what the end-user expects, just like files in the
+ working tree gets "renamed", on a filesystem like HFS+.  Work it
+ around by paying attemption to the core.precomposeUnicode
configuration.
 
- Will merge to 'master'.
+ Looked sensible.  Ready for next?
 
 
-* vk/autoconf-gettext (2019-04-19) 1 commit
-  (merged to 'next' on 2019-04-25 at 918870cbc2)
- + autoconf: #include <libintl.h> when checking for gettext()
+* jk/perf-aggregate-wo-libjson (2019-04-24) 1 commit
+  (merged to 'next' on 2019-05-09 at e697c1993b)
+ + t/perf: depend on perl JSON only when using --codespeed
 
- The autoconf generated configure script failed to use the right
- gettext() implementations from -libintl by ignoring useless stub
- implementations shipped in some C library, which has been
+ The script to aggregate perf result unconditionally depended on
+ libjson-perl even though it did not have to, which has been
  corrected.
 
  Will merge to 'master'.
 
 
-* dl/no-extern-in-func-decl (2019-04-24) 4 commits
- - cocci: prevent extern function declarations
- - *.[ch]: manually align parameter lists
- - *.[ch]: remove extern from function declarations using sed
- - *.[ch]: remove extern from function declarations using spatch
-
- Mechanically and systematically drop "extern" from function
- declarlation.
-
- Will merge to 'next'.
-
- This is the kind of code churn patch that causes heavy conflicts
- with multiple topics in flight, which causes conflicts in slightly
- different shape when it gets merged with them in different order.
- I've queued it moderately early in 'pu' for the night, and I am
- reasonably sure the merge of the topic itself is OK, but I do not
- have much confidence in the resolutions of conflicts with other
- topics later merged to 'pu'.
-
-
-* js/partial-clone-connectivity-check (2019-04-21) 1 commit
-  (merged to 'next' on 2019-04-25 at ebd8b4bffd)
- + clone: do faster object check for partial clones
-
- During an initial "git clone --depth=..." partial clone, it is
- pointless to spend cycles for a large portion of the connectivity
- check that enumerates and skips promisor objects (which by
- definition is all objects fetched from the other side).  This has
- been optimized out.
-
- Will merge to 'master'.
-
-
-* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
- - send-email: honor transferencoding config option again
-
- Since "git send-email" learned to take 'auto' as the value for the
- transfer-encoding, it by mistake stopped honoring the values given
- to the configuration variables sendemail.transferencoding and/or
- sendemail.<ident>.transferencoding.  Attempt to correct this.
-
- Not quite.
- cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
-
-
-* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
-  (merged to 'next' on 2019-04-25 at e79464c054)
- + pack-objects: write objects packed to trace2
-
- The "git pack-objects" command learned to report the number of
- objects it packed via the trace2 mechanism.
-
- Will merge to 'master'.
-
-
-* js/misc-doc-fixes (2019-04-19) 8 commits
-  (merged to 'next' on 2019-04-25 at 6898f709d0)
- + Turn `git serve` into a test helper
- + test-tool: handle the `-C <directory>` option just like `git`
- + check-docs: do not bother checking for legacy scripts' documentation
- + docs: exclude documentation for commands that have been excluded
- + check-docs: allow command-list.txt to contain excluded commands
- + help -a: do not list commands that are excluded from the build
- + Makefile: drop the NO_INSTALL variable
- + remote-testgit: move it into the support directory for t5801
-
- "make check-docs", "git help -a", etc. did not account for cases
- where a particular build may deliberately omit some subcommands,
- which has been corrected.
-
- Will merge to 'master'.
-
-
-* dl/warn-tagging-a-tag (2019-04-12) 2 commits
-  (merged to 'next' on 2019-04-25 at 8b966d7fe8)
- + tag: advise on nested tags
- + tag: fix formatting
+* cc/access-on-aix-workaround (2019-04-25) 1 commit
+  (merged to 'next' on 2019-05-09 at 79b25b1954)
+ + git-compat-util: work around for access(X_OK) under root
 
- "git tag" learned to give an advice suggesting it might be a
- mistake when creating an annotated or signed tag that points at
- another tag.
+ Workaround for standard-compliant but less-than-useful behaviour of
+ access(2) for the root user.
 
  Will merge to 'master'.
 
 
-* jc/format-patch-delay-message-id (2019-04-05) 1 commit
- - format-patch: move message-id and related headers to the end
-
- The location "git format-patch --thread" adds the Message-Id:
- header in the series of header fields has been moved down, which
- may help working around a suspected bug in GMail MSA, reported at
- <CAHk-=whP1stFZNAaJiMi5eZ9rj0MRt20Y_yHVczZPH+O01d+sA@mail.gmail.com>
-
- Waiting for feedback to see if it truly helps.
- Needs tests.
-
-
-* tb/unexpected (2019-04-10) 7 commits
-  (merged to 'next' on 2019-04-25 at c49927fca0)
- + rev-list: detect broken root trees
- + rev-list: let traversal die when --missing is not in use
- + get_commit_tree(): return NULL for broken tree
- + list-objects.c: handle unexpected non-tree entries
- + list-objects.c: handle unexpected non-blob entries
- + t: introduce tests for unexpected object types
- + t: move 'hex2oct' into test-lib-functions.sh
+* dl/difftool-mergetool (2019-04-25) 6 commits
+ - difftool: fallback on merge.guitool
+ - difftool: make --gui, --tool and --extcmd mutually exclusive
+ - mergetool: fallback to tool when guitool unavailable
+ - mergetool: use get_merge_tool function
+ - t7610: add mergetool --gui tests
+ - t7610: unsuppress output
 
- Code tightening against a "wrong" object appearing where an object
- of a different type is expected, instead of blindly assuming that
the connection between objects are correctly made.
+ Update "git difftool" and "git mergetool" so that the combinations
+ of {diff,merge}.{tool,guitool} configuration variables serve as
fallback settings of each other in a sensible order.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* en/merge-directory-renames (2019-04-08) 15 commits
-  (merged to 'next' on 2019-04-25 at fd5b4f57b4)
- + merge-recursive: switch directory rename detection default
- + merge-recursive: give callers of handle_content_merge() access to contents
- + merge-recursive: track information associated with directory renames
- + t6043: fix copied test description to match its purpose
- + merge-recursive: switch from (oid,mode) pairs to a diff_filespec
- + merge-recursive: cleanup handle_rename_* function signatures
- + merge-recursive: track branch where rename occurred in rename struct
- + merge-recursive: remove ren[12]_other fields from rename_conflict_info
- + merge-recursive: shrink rename_conflict_info
- + merge-recursive: move some struct declarations together
- + merge-recursive: use 'ci' for rename_conflict_info variable name
- + merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
- + merge-recursive: rename diff_filespec 'one' to 'o'
- + merge-recursive: rename merge_options argument from 'o' to 'opt'
- + Use 'unsigned short' for mode, like diff_filespec does
+* ds/midx-expire-repack (2019-04-25) 11 commits
+ - t5319-multi-pack-index.sh: test batch size zero
+ - midx: add test that 'expire' respects .keep files
+ - multi-pack-index: test expire while adding packs
+ - midx: implement midx_repack()
+ - multi-pack-index: prepare 'repack' subcommand
+ - multi-pack-index: implement 'expire' subcommand
+ - midx: refactor permutation logic and pack sorting
+ - midx: simplify computation of pack name lengths
+ - multi-pack-index: prepare for 'expire' subcommand
+ - Docs: rearrange subcommands for multi-pack-index
+ - repack: refactor pack deletion for future use
 
- "git merge-recursive" backend recently learned a new heuristics to
- infer file movement based on how other files in the same directory
- moved.  As this is inherently less robust heuristics than the one
- based on the content similarity of the file itself (rather than
- based on what its neighbours are doing), it sometimes gives an
- outcome unexpected by the end users.  This has been toned down to
- leave the renamed paths in higher/conflicted stages in the index so
- that the user can examine and confirm the result.
+ "git multi-pack-index expire/repack" are new subcommands that
+ consult midx file and are used to drop unused pack files and
+ coalesce small pack files that are still in use.
 
- Will merge to 'master'.
+ Ready for next?
+ cf. <20190424151428.170316-1-dstolee@microsoft.com> (v5)
 
 
-* jt/clone-server-option (2019-04-18) 2 commits
-  (merged to 'next' on 2019-04-25 at 21f07cc85d)
- + clone: send server options when using protocol v2
- + transport: die if server options are unsupported
+* es/first-contrib-tutorial (2019-05-08) 2 commits
+ - documentation: add anchors to MyFirstContribution
+ - documentation: add tutorial for first contribution
 
- "git clone" learned a new --server-option option when talking over
the protocol version 2.
+ A new tutorial targetting specifically aspiring git-core
developers.
 
- Will merge to 'master'.
+ I think we are almost there.
+ cf. <20190507213040.151799-1-emilyshaffer@google.com> (v5)
 
 
-* tz/git-svn-doc-markup-fix (2019-04-10) 1 commit
-  (merged to 'next' on 2019-04-25 at 3efaa6285c)
- + Documentation/git-svn: improve asciidoctor compatibility
+* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
+  (merged to 'next' on 2019-05-09 at cf6cce8ca7)
+ + fix cherry-pick/revert status after commit
+ + commit/reset: try to clean up sequencer state
 
- Doc formatting fix.
+ "git chery-pick" (and "revert" that shares the same runtime engine)
+ that deals with multiple commits got confused when the final step
+ gets stopped with a conflict and the user concluded the sequence
+ with "git commit".  Attempt to fix it by cleaning up the state
+ files used by these commands in such a situation.
 
  Will merge to 'master'.
 
 
-* ss/msvc-path-utils-fix (2019-04-09) 1 commit
-  (merged to 'next' on 2019-04-25 at ee2850da18)
- + MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
+* dl/no-extern-in-func-decl (2019-05-05) 3 commits
+  (merged to 'next' on 2019-05-09 at d165ac4cee)
+ + *.[ch]: manually align parameter lists
+ + *.[ch]: remove extern from function declarations using sed
+ + *.[ch]: remove extern from function declarations using spatch
 
- An earlier update for MinGW and Cygwin accidentally broke MSVC build,
which has been fixed.
+ Mechanically and systematically drop "extern" from function
declarlation.
 
  Will merge to 'master'.
 
 
+* js/partial-clone-connectivity-check (2019-05-05) 2 commits
+ - t/perf: add perf script for partial clones
+  (merged to 'next' on 2019-04-25 at ebd8b4bffd)
+ + clone: do faster object check for partial clones
+
+ During an initial "git clone --depth=..." partial clone, it is
+ pointless to spend cycles for a large portion of the connectivity
+ check that enumerates and skips promisor objects (which by
+ definition is all objects fetched from the other side).  This has
+ been optimized out.
+
+ Will merge to 'next' and then to 'master'.
+
+
 * cc/multi-promisor (2019-04-15) 17 commits
  - Move core_partial_clone_filter_default to promisor-remote.c
  - Move repository_format_partial_clone to promisor-remote.c
@@ -981,9 +804,9 @@ of the repositories listed at
  Needs review.
 
 
-* nd/switch-and-restore (2019-04-12) 43 commits
+* nd/switch-and-restore (2019-05-07) 43 commits
+ - Declare both git-switch and git-restore experimental
  - help: move git-diff and git-reset to different groups
- - rm: add --staged as alias for --cached
  - doc: promote "git restore"
  - user-manual.txt: prefer 'merge --abort' over 'reset --hard'
  - completion: support restore
@@ -1035,19 +858,21 @@ of the repositories listed at
  The "switch" part seems more or less ready for testing.  Perhaps
  we should split this back into two topics and merge it to 'next'.
  cf. <20190329103919.15642-1-pclouds@gmail.com> (switch v6)
- cf. <20190411131218.19195-1-pclouds@gmail.com> (restore v2)
+ cf. <20190425094600.15673-1-pclouds@gmail.com> (restore v3)
 
 
 * ew/repack-with-bitmaps-by-default (2019-03-18) 3 commits
- - pack-objects: default to writing bitmap hash-cache
- - t5310: correctly remove bitmaps for jgit test
- - repack: enable bitmaps by default on bare repos
+  (merged to 'next' on 2019-05-09 at 4f8e8b01c8)
+ + pack-objects: default to writing bitmap hash-cache
+ + t5310: correctly remove bitmaps for jgit test
+ + repack: enable bitmaps by default on bare repos
 
  The connectivity bitmaps are created by default in bare
  repositories now; also the pathname hash-cache is created by
  default to avoid making crappy deltas when repacking.
 
- Will merge to 'next'.
+ Will merge to 'master'.
+ cf. <87a7g2iuem.fsf@evledraar.gmail.com>
 
 
 * jc/format-patch-noclobber (2019-02-22) 1 commit
@@ -1074,22 +899,6 @@ of the repositories listed at
  Is this ready for 'next'?
 
 
-* cc/replace-graft-peel-tags (2019-04-15) 4 commits
-  (merged to 'next' on 2019-04-25 at f8d0db27ba)
- + replace: peel tag when passing a tag first to --graft
- + replace: peel tag when passing a tag as parent to --graft
- + t6050: redirect expected error output to a file
- + t6050: use test_line_count instead of wc -l
-
- When given a tag that points at a commit-ish, "git replace --graft"
- failed to peel the tag before writing a replace ref, which did not
- make sense because the old graft mechanism the feature wants to
- mimick only allowed to replace one commit object with another.
- This has been fixed.
-
- Will merge to 'master'.
-
-
 * dl/rebase-i-keep-base (2019-04-25) 6 commits
  - rebase: teach rebase --keep-base
  - rebase: fast-forward --fork-point in more cases
@@ -1106,10 +915,13 @@ of the repositories listed at
  The command also has learned to fast-forward in more cases where it
  can instead of replaying to recreate identical commits.
 
- Will merge to 'next'.
+ On hold.
+ cf. <20190508001252.15752-1-avarab@gmail.com>
+ cf. <xmqqa7fxionx.fsf@gitster-ct.c.googlers.com>
 
 
-* jh/trace2-sid-fix (2019-04-16) 10 commits
+* jh/trace2-sid-fix (2019-05-07) 11 commits
+ - trace2: fixup access problem on /etc/gitconfig in read_very_early_config
   (merged to 'next' on 2019-04-25 at a5c08f1226)
  + trace2: update docs to describe system/global config settings
  + trace2: make SIDs more unique
@@ -1126,116 +938,31 @@ of the repositories listed at
  configuration can specify site-wide trace2 settings, which can be
  overridden with per-user configuration and environment variables.
 
- Will merge to 'master'.
+ Will merge to 'next' and then to 'master'.
  cf. <pull.169.v4.git.gitgitgadget@gmail.com> (v4)
 
 
-* js/trace2-to-directory (2019-03-22) 1 commit
-  (merged to 'next' on 2019-04-25 at 53adf71c41)
- + trace2: write to directory targets
-
- The trace2 tracing facility learned to auto-generate a filename
- when told to log to a directory.
-
- Will merge to 'master'.
-
-
-* km/empty-repo-is-still-a-repo (2019-04-10) 3 commits
-  (merged to 'next' on 2019-04-25 at bb3d4406a5)
- + add: error appropriately on repository with no commits
- + dir: do not traverse repositories with no commits
- + submodule: refuse to add repository with no commits
-
- Running "git add" on a repository created inside the current
- repository is an explicit indication that the user wants to add it
- as a submodule, but when the HEAD of the inner repository is on an
- unborn branch, it cannot be added as a submodule.  Worse, the files
- in its working tree can be added as if they are a part of the outer
- repository, which is not what the user wants.  These problems are
- being addressed.
-
- Will merge to 'master'.
-
-
-* nd/precious (2019-04-09) 1 commit
- - Introduce "precious" file concept
-
- "git clean" learned to pay attention to the 'precious' attributes
- and keep untracked paths with the attribute instead of removing
- when the "--keep-precious" is given.
-
- Retracted.
- cf. <CACsJy8AEZ-Lz6zgEsuNukvphB9TTa9FAC1gK05fhnie2xtfc9w@mail.gmail.com>
-
- I am not sure what aspect of this longer-term "precious" vision,
- which gets taught to various commands and use cases individually
- and incrementally, Ævar finds problematic, which I understand is
- the reason of redtraction.
-
-
-* nd/sha1-name-c-wo-the-repository (2019-04-16) 34 commits
-  (merged to 'next' on 2019-04-25 at d826918329)
- + sha1-name.c: remove the_repo from get_oid_mb()
- + sha1-name.c: remove the_repo from other get_oid_*
- + sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
- + submodule-config.c: use repo_get_oid for reading .gitmodules
- + sha1-name.c: add repo_get_oid()
- + sha1-name.c: remove the_repo from get_oid_with_context_1()
- + sha1-name.c: remove the_repo from resolve_relative_path()
- + sha1-name.c: remove the_repo from diagnose_invalid_index_path()
- + sha1-name.c: remove the_repo from handle_one_ref()
- + sha1-name.c: remove the_repo from get_oid_1()
- + sha1-name.c: remove the_repo from get_oid_basic()
- + sha1-name.c: remove the_repo from get_describe_name()
- + sha1-name.c: remove the_repo from get_oid_oneline()
- + sha1-name.c: add repo_interpret_branch_name()
- + sha1-name.c: remove the_repo from interpret_branch_mark()
- + sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
- + sha1-name.c: remove the_repo from get_short_oid()
- + sha1-name.c: add repo_for_each_abbrev()
- + sha1-name.c: store and use repo in struct disambiguate_state
- + sha1-name.c: add repo_find_unique_abbrev_r()
- + sha1-name.c: remove the_repo from find_abbrev_len_packed()
- + sha1-name.c: remove the_repo from sort_ambiguous()
- + commit.c: add repo_get_commit_tree()
- + commit.cocci: refactor code, avoid double rewrite
- + refs.c: remove the_repo from read_ref_at()
- + refs.c: add repo_dwim_log()
- + refs.c: add repo_dwim_ref()
- + refs.c: remove the_repo from expand_ref()
- + refs.c: remove the_repo from substitute_branch_name()
- + refs.c: add refs_shorten_unambiguous_ref()
- + refs.c: add refs_ref_exists()
- + packfile.c: add repo_approximate_object_count()
- + builtin rebase: use oideq()
- + builtin rebase: use FREE_AND_NULL
-
- Further code clean-up to allow the lowest level of name-to-object
- mapping layer to work with a passed-in repository other than the
- default one.
-
- Will merge to 'master'.
-
-
 * pw/rebase-i-internal (2019-04-19) 13 commits
- - rebase -i: run without forking rebase--interactive
- - rebase: use a common action enum
- - rebase -i: use struct rebase_options in do_interactive_rebase()
- - rebase -i: use struct rebase_options to parse args
- - rebase -i: use struct object_id for squash_onto
- - rebase -i: use struct commit when parsing options
- - rebase -i: remove duplication
- - rebase -i: combine rebase--interactive.c with rebase.c
- - rebase: use OPT_RERERE_AUTOUPDATE()
- - rebase: rename write_basic_state()
- - rebase: don't translate trace strings
- - sequencer: always discard index after checkout
- - Merge branch 'ag/sequencer-reduce-rewriting-todo' into pw/rebase-i-internal
+  (merged to 'next' on 2019-05-09 at 1206aa6865)
+ + rebase -i: run without forking rebase--interactive
+ + rebase: use a common action enum
+ + rebase -i: use struct rebase_options in do_interactive_rebase()
+ + rebase -i: use struct rebase_options to parse args
+ + rebase -i: use struct object_id for squash_onto
+ + rebase -i: use struct commit when parsing options
+ + rebase -i: remove duplication
+ + rebase -i: combine rebase--interactive.c with rebase.c
+ + rebase: use OPT_RERERE_AUTOUPDATE()
+ + rebase: rename write_basic_state()
+ + rebase: don't translate trace strings
+ + sequencer: always discard index after checkout
+ + Merge branch 'ag/sequencer-reduce-rewriting-todo' into pw/rebase-i-internal
+ (this branch is used by pw/rebase-abort-clean-rewritten.)
 
  The internal implementation of "git rebase -i" has been updated to
  avoid forking a separate "rebase--interactive" process.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * nd/worktree-name-sanitization (2019-03-20) 2 commits
@@ -1251,27 +978,19 @@ of the repositories listed at
  to 'next'.  Opinions?
 
 
-* dm/some-stdio-functions-are-macro-on-freebsd (2019-02-01) 1 commit
- - http: cast result to FILE *
-
- Variants of BSD define fileno(fh) as a macro, breaking a program
- that passes a "void *" to it.
-
- Expecting a reroll.
- cf. <49B9198C-53E5-42BD-8834-B1EDEB3332CB@usask.ca>
-
-
-* ds/commit-graph-format-v2 (2019-04-25) 5 commits
+* ds/commit-graph-format-v2 (2019-05-08) 6 commits
+ - commit-graph: remove Future Work section
  - commit-graph: implement file format version 2
  - commit-graph: add --version=<n> option
- - commit-graph: create new version flags
+ - commit-graph: create new version parameter
  - commit-graph: collapse parameters into flags
  - commit-graph: return with errors during write
 
  Introduce version 2 of the commit-graph format to correct
  deficiency in the initial version.
 
- cf. <pull.112.v2.git.gitgitgadget@gmail.com> (v2)
+ Still actively discussed.
+ cf. <pull.112.v3.git.gitgitgadget@gmail.com> (v3)
 
 
 * br/blame-ignore (2019-04-14) 6 commits
@@ -1290,47 +1009,56 @@ of the repositories listed at
  cf. <a742dd62-c84e-1f85-0663-4a3aa4d14989@google.com>
  cf. <3db6bad3-e7a5-af1d-3fe2-321bd17db2c6@google.com>
 
+--------------------------------------------------
+[Discarded]
+
+* nd/precious (2019-04-09) 1 commit
+ - Introduce "precious" file concept
+
+ "git clean" learned to pay attention to the 'precious' attributes
+ and keep untracked paths with the attribute instead of removing
+ when the "--keep-precious" is given.
+
+ Retracted.
+ cf. <CACsJy8AEZ-Lz6zgEsuNukvphB9TTa9FAC1gK05fhnie2xtfc9w@mail.gmail.com>
+
+ I am not sure what aspect of this longer-term "precious" vision,
+ which gets taught to various commands and use cases individually
+ and incrementally, Ævar finds problematic, which I understand is
+ the reason of redtraction.
+
 
 * nd/config-move-to (2019-01-14) 7 commits
- config.h: fix hdr-check warnings
- config: add --move-to
- config: factor out set_config_source_file()
- config: use OPT_FILENAME()
- config.c: add repo_config_set_worktree_gently()
- worktree.c: add get_worktree_config()
- config.c: avoid git_path() in do_git_config_sequence()
. config.h: fix hdr-check warnings
. config: add --move-to
. config: factor out set_config_source_file()
. config: use OPT_FILENAME()
. config.c: add repo_config_set_worktree_gently()
. worktree.c: add get_worktree_config()
. config.c: avoid git_path() in do_git_config_sequence()
 
- Needs review.
+ Dropped.
+ cf. <CACsJy8DcaxBLCa2vK=MfoxkaHS0gDmdUsmamyqE2yOaoG_Esog@mail.gmail.com>
 
 
-* dl/merge-cleanup-scissors-fix (2019-04-19) 10 commits
-  (merged to 'next' on 2019-04-25 at 2014eef6b1)
- + cherry-pick/revert: add scissors line on merge conflict
- + sequencer.c: save and restore cleanup mode
- + merge: add scissors line on merge conflict
- + merge: cleanup messages like commit
- + parse-options.h: extract common --cleanup option
- + commit: extract cleanup_mode functions to sequencer
- + t7502: clean up style
- + t7604: clean up style
- + t3507: clean up style
- + t7600: clean up style
- (this branch uses pw/sequencer-cleanup-with-signoff-x-fix.)
+* dm/some-stdio-functions-are-macro-on-freebsd (2019-02-01) 1 commit
+ . http: cast result to FILE *
 
- The list of conflicted paths shown in the editor while concluding a
- conflicted merge was shown above the scissors line when the
- clean-up mode is set to "scissors", even though it was commented
- out just like the list of updated paths and other information to
- help the user explain the merge better.
+ Variants of BSD define fileno(fh) as a macro, breaking a program
+ that passes a "void *" to it.
 
- Will merge to 'master'.
+ Can be safely discarded.
+ cf. <CACsJy8BcyD199L4qGv6-TP-8HD+GS+ZDNN5jspkh5uVaWekkoQ@mail.gmail.com>
 
 
-* jn/unknown-index-extensions (2018-11-21) 2 commits
- - index: offer advice for unknown index extensions
- - index: do not warn about unrecognized extensions
+* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
+ . send-email: honor transferencoding config option again
 
- A bit too alarming warning given when unknown index extensions
- exist is getting revamped.
+ Since "git send-email" learned to take 'auto' as the value for the
+ transfer-encoding, it by mistake stopped honoring the values given
+ to the configuration variables sendemail.transferencoding and/or
+ sendemail.<ident>.transferencoding.  Attempt to correct this.
 
- Expecting a reroll.
+ Not quite.
+ cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
+ Replaced by jc/send-email-transferencoding-fix