]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2017/06 #03)
authorJunio C Hamano <gitster@pobox.com>
Mon, 5 Jun 2017 02:53:52 +0000 (11:53 +0900)
committerJunio C Hamano <gitster@pobox.com>
Mon, 5 Jun 2017 02:53:52 +0000 (11:53 +0900)
whats-cooking.txt

index ded5db82b9e7257701a63c299da245dd3a193d27..0760ac7bf0e8491b80465f95861b85de065660f9 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jun 2017, #02; Fri, 2)
-X-master-at: 826c06412e429a091d32d0e1b26e77da33fc1ce9
-X-next-at: 4b9c06c7d442bdd2a0056b5372cc385eaee2012e
+Subject: What's cooking in git.git (Jun 2017, #03; Mon, 5)
+X-master-at: 69e6b9b4f4a91ce90f2c38ed2fa89686f8aff44f
+X-next-at: b3defc5cc2fce0752a80d6af33c0598a2e1a01f4
 
-What's cooking in git.git (Jun 2017, #02; Fri, 2)
+What's cooking in git.git (Jun 2017, #03; Mon, 5)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -12,12 +12,8 @@ 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.
 
-A bit more topics are now in 'master'.  One unfortunate thing is
-that the SHA1 breakage in 2.13 for big-endian platforms were lost in
-the noise with excitement felt by some subset of contributors with
-the possible use of submodules.  The first step in the series is
-neutral to the excitement, and should be fast-tracked down to
-'maint' soonish.
+With many fixes accumulated since v2.13.0, the first maintenance
+release v2.13.1 has been tagged.  Thanks for all the help.
 
 You can find the changes described here in the integration branches
 of the repositories listed at
@@ -27,143 +23,32 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* ab/grep-preparatory-cleanup (2017-05-26) 31 commits
-  (merged to 'next' on 2017-05-29 at f2cfa89d3e)
- + grep: assert that threading is enabled when calling grep_{lock,unlock}
- + grep: given --threads with NO_PTHREADS=YesPlease, warn
- + pack-objects: fix buggy warning about threads
- + pack-objects & index-pack: add test for --threads warning
- + test-lib: add a PTHREADS prerequisite
- + grep: move is_fixed() earlier to avoid forward declaration
- + grep: change internal *pcre* variable & function names to be *pcre1*
- + grep: change the internal PCRE macro names to be PCRE1
- + grep: factor test for \0 in grep patterns into a function
- + grep: remove redundant regflags assignments
- + grep: catch a missing enum in switch statement
- + perf: add a comparison test of log --grep regex engines with -F
- + perf: add a comparison test of log --grep regex engines
- + perf: add a comparison test of grep regex engines with -F
- + perf: add a comparison test of grep regex engines
- + perf: emit progress output when unpacking & building
- + perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
- + grep: add tests to fix blind spots with \0 patterns
- + grep: prepare for testing binary regexes containing rx metacharacters
- + grep: add a test helper function for less verbose -f \0 tests
- + grep: add tests for grep pattern types being passed to submodules
- + grep: amend submodule recursion test for regex engine testing
- + grep: add tests for --threads=N and grep.threads
- + grep: change non-ASCII -i test to stop using --debug
- + grep: add a test for backreferences in PCRE patterns
- + grep: add a test asserting that --perl-regexp dies when !PCRE
- + log: make --regexp-ignore-case work with --perl-regexp
- + log: add exhaustive tests for pattern style options & config
- + test-lib: rename the LIBPCRE prerequisite to PCRE
- + grep & rev-list doc: stop promising libpcre for --perl-regexp
- + Makefile & configure: reword inaccurate comment about PCRE
- (this branch is used by ab/pcre-v2 and sb/submodule-blanket-recursive.)
-
- The internal implementation of "git grep" has seen some clean-up.
-
-
-* ab/ref-filter-no-contains (2017-05-23) 1 commit
-  (merged to 'next' on 2017-05-29 at 5d39fd2961)
- + tag: duplicate mention of --contains should mention --no-contains
-
- Doc update to a recent topic.
-
-
-* ah/doc-interpret-trailers-ifexists (2017-05-23) 1 commit
-  (merged to 'next' on 2017-05-29 at cb353c1d21)
- + Documentation: fix reference to ifExists for interpret-trailers
-
- Documentation fix.
-
-
-* ah/doc-pretty-format-fix (2017-05-23) 1 commit
-  (merged to 'next' on 2017-05-29 at 6e3e8fd80d)
- + Documentation: fix formatting typo in pretty-formats.txt
-
- Documentation fix.
-
-
-* dk/send-email-avoid-net-smtp-ssl-when-able (2017-06-01) 1 commit
-  (merged to 'next' on 2017-06-01 at 3ff3ddfac7)
- + send-email: Net::SMTP::starttls was introduced in v2.34
-
- A hotfix to a topic in 'master'.
-
-
-* jk/diff-blob (2017-05-24) 15 commits
-  (merged to 'next' on 2017-05-29 at 5ecc979cc7)
- + diff: use blob path for blob/file diffs
- + diff: use pending "path" if it is available
- + diff: use the word "path" instead of "name" for blobs
- + diff: pass whole pending entry in blobinfo
- + handle_revision_arg: record paths for pending objects
- + handle_revision_arg: record modes for "a..b" endpoints
- + t4063: add tests of direct blob diffs
- + get_sha1_with_context: dynamically allocate oc->path
- + get_sha1_with_context: always initialize oc->symlink_path
- + sha1_name: consistently refer to object_context as "oc"
- + handle_revision_arg: add handle_dotdot() helper
- + handle_revision_arg: hoist ".." check out of range parsing
- + handle_revision_arg: stop using "dotdot" as a generic pointer
- + handle_revision_arg: simplify commit reference lookups
- + handle_revision_arg: reset "dotdot" consistently
-
- The result from "git diff" that compares two blobs, e.g. "git diff
- $commit1:$path $commit2:$path", used to be shown with the full
- object name as given on the command line, but it is more natural to
- use the $path in the output and use it to look up .gitattributes.
-
-
-* js/bs-is-a-dir-sep-on-windows (2017-05-26) 2 commits
-  (merged to 'next' on 2017-05-26 at 450b39f726)
- + Windows: do not treat a path with backslashes as a remote's nick name
- + mingw.h: permit arguments with side effects for is_dir_sep
-
- "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
- slashes in it, cannot be a nickname for a remote on Windows, as
- that is likely to be a pathname on a local filesystem.
-
-
-* jt/send-email-validate-hook (2017-06-02) 1 commit
-  (merged to 'next' on 2017-06-02 at 32055bc433)
- + send-email: check for repo before invoking hook
-
- A hotfix for a topic already in 'master'.
-
-
-* rs/mingw-path-lookup-simplify (2017-05-23) 1 commit
-  (merged to 'next' on 2017-05-29 at 4365139a7f)
- + mingw: simplify PATH handling
+* ab/c-translators-comment-style (2017-05-31) 1 commit
+  (merged to 'next' on 2017-06-01 at df7fb9199a)
+ + C style: use standard style for "TRANSLATORS" comments
 
- Code simplification.
+ Update the C style recommendation for notes for translators, as
+ recent versions of gettext tools can work with our style of
+ multi-line comments.
 
 
-* sb/t5531-update-desc (2017-05-23) 1 commit
-  (merged to 'next' on 2017-05-29 at 67a91db3cf)
- + t5531: fix test description
+* ab/sha1dc-maint (2017-05-22) 1 commit
+  (merged to 'next' on 2017-05-30 at 9eb40bf912)
+ + sha1dc: update from upstream
+ (this branch is used by ab/sha1dc.)
 
- The description strings for a few tests have been updated.
+ The "collision detecting" SHA-1 implementation shipped with 2.13
+ was quite broken on some big-endian platforms and/or platforms that
+ do not like unaligned fetches.  Update to the upstream code which
+ has already fixed these issues.
 
 
-* sl/clean-d-ignored-fix (2017-05-24) 6 commits
-  (merged to 'next' on 2017-05-29 at 837c255ae8)
- + clean: teach clean -d to preserve ignored paths
- + dir: expose cmp_name() and check_contains()
- + dir: hide untracked contents of untracked dirs
- + dir: recurse into untracked dirs for ignored files
- + t7061: status --ignored should search untracked dirs
- + t7300: clean -d should skip dirs with ignored files
+* ab/t3070-test-dedup (2017-05-29) 1 commit
+  (merged to 'next' on 2017-05-30 at 71eadec33b)
+ + wildmatch test: remove redundant duplicate test
 
- "git clean -d" used to clean directories that has ignored files,
- even though the command should not lose ignored ones without "-x".
- "git status --ignored"  did not list ignored and untracked files
- without "-uall".  These have been corrected.
+ Test cleanup.
 
---------------------------------------------------
-[New Topics]
 
 * ad/pull-remote-doc (2017-06-02) 1 commit
   (merged to 'next' on 2017-06-02 at 32915e88db)
@@ -171,47 +56,261 @@ of the repositories listed at
 
  Docfix.
 
- Will merge to 'master'.
 
+* ah/doc-filter-branch-export-env (2017-05-29) 1 commit
+  (merged to 'next' on 2017-05-30 at a62168bf77)
+ + doc: filter-branch does not require re-export of vars
 
-* jc/diff-tree-stale-comment (2017-06-02) 1 commit
- - diff-tree: update stale in-code comments
+ Docfix.
 
- Comment fix.
+
+* ah/doc-rev-parse-short-default (2017-06-01) 1 commit
+  (merged to 'next' on 2017-06-01 at f64fcc2a26)
+ + doc: rewrite description for rev-parse --short
+
+ Doc update.
+
+
+* jh/close-index-before-stat (2017-04-28) 1 commit
+  (merged to 'next' on 2017-05-16 at 0c0372eb02)
+ + read-cache: close index.lock in do_write_index
+
+ Originally merged to 'next' on 2017-04-30
+
+ The timestamp of the index file is now taken after the file is
+ closed, to help Windows, on which a stale timestamp is reported by
+ fstat() on a file that is opened for writing and data was written
+ but not yet closed.
+
+
+* jk/connect-symref-info-leak-fix (2017-05-26) 1 commit
+  (merged to 'next' on 2017-05-30 at d8b75d2dd9)
+ + connect.c: fix leak in parse_one_symref_info()
+
+ Leakfix.
+
+
+* jk/drop-free-refspecs (2017-06-01) 1 commit
+  (merged to 'next' on 2017-06-01 at 8f455319fc)
+ + remote: drop free_refspecs() function
+
+ Code clean-up.
+
+
+* jk/unbreak-am-h (2017-05-30) 1 commit
+  (merged to 'next' on 2017-06-01 at ee2233d409)
+ + am: handle "-h" argument earlier
+ (this branch is used by jk/consistent-h.)
+
+ "git am -h" triggered a BUG().
+
+
+* jk/url-insteadof-config (2017-06-01) 1 commit
+  (merged to 'next' on 2017-06-01 at e7ea6032c2)
+ + docs/config: mention protocol implications of url.insteadOf
+
+ The interaction of "url.*.insteadOf" and custom URL scheme's
+ whitelisting is now documented better.
+
+
+* js/blame-lib (2017-05-25) 29 commits
+  (merged to 'next' on 2017-05-30 at b4678b36a7)
+ + blame: move entry prepend to libgit
+ + blame: move scoreboard setup to libgit
+ + blame: move scoreboard-related methods to libgit
+ + blame: move fake-commit-related methods to libgit
+ + blame: move origin-related methods to libgit
+ + blame: move core structures to header
+ + blame: create entry prepend function
+ + blame: create scoreboard setup function
+ + blame: create scoreboard init function
+ + blame: rework methods that determine 'final' commit
+ + blame: wrap blame_sort and compare_blame_final
+ + blame: move progress updates to a scoreboard callback
+ + blame: make sanity_check use a callback in scoreboard
+ + blame: move no_whole_file_rename flag to scoreboard
+ + blame: move xdl_opts flags to scoreboard
+ + blame: move show_root flag to scoreboard
+ + blame: move reverse flag to scoreboard
+ + blame: move contents_from to scoreboard
+ + blame: move copy/move thresholds to scoreboard
+ + blame: move stat counters to scoreboard
+ + blame: rename nth_line function
+ + blame: rename ent_score function
+ + blame: rename coalesce function
+ + blame: rename origin-related functions
+ + blame: rename scoreboard structure to blame_scoreboard
+ + blame: rename origin structure to blame_origin
+ + blame: remove unused parameters
+ + blame: move textconv_object with related functions
+ + blame: remove unneeded dependency on blob.h
+
+ The internal logic used in "git blame" has been libified to make it
+ easier to use by cgit.
+
+
+* mb/diff-default-to-indent-heuristics (2017-05-09) 4 commits
+  (merged to 'next' on 2017-05-29 at 7645575e21)
+ + add--interactive: drop diff.indentHeuristic handling
+ + diff: enable indent heuristic by default
+ + diff: have the diff-* builtins configure diff before initializing revisions
+ + diff: make the indent heuristic part of diff's basic configuration
+
+ Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
+ configuration variable an escape hatch for those who do no want it.
+ Looks like there may be follow-on work possible, but the topic
+ itself is in good order.
+ cf. <20170509033258.q7auj5p5lxs4tggd@sigill.intra.peff.net>
+
+
+* mh/packed-ref-store-prep (2017-05-24) 26 commits
+  (merged to 'next' on 2017-05-29 at e4f5e06b4c)
+ + cache_ref_iterator_begin(): avoid priming unneeded directories
+ + ref-filter: limit traversal to prefix
+ + create_ref_entry(): remove `check_name` option
+ + refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA`
+ + read_packed_refs(): report unexpected fopen() failures
+ + read_packed_refs(): do more of the work of reading packed refs
+ + get_packed_ref_cache(): assume "packed-refs" won't change while locked
+ + should_pack_ref(): new function, extracted from `files_pack_refs()`
+ + ref_update_reject_duplicates(): add a sanity check
+ + ref_update_reject_duplicates(): use `size_t` rather than `int`
+ + ref_update_reject_duplicates(): expose function to whole refs module
+ + ref_transaction_prepare(): new optional step for reference updates
+ + ref_transaction_commit(): check for valid `transaction->state`
+ + files_transaction_cleanup(): new helper function
+ + files_ref_store: put the packed files lock directly in this struct
+ + files-backend: move `lock` member to `files_ref_store`
+ + lockfile: add a new method, is_lock_file_locked()
+ + ref_store: take a `msg` parameter when deleting references
+ + refs: use `size_t` indexes when iterating over ref transaction updates
+ + refs_ref_iterator_begin(): don't check prefixes redundantly
+ + prefix_ref_iterator: don't trim too much
+ + files-backend: use `die("BUG: ...")`, not `die("internal error: ...")`
+ + ref_iterator_begin_fn(): fix docstring
+ + refs.h: clarify docstring for the ref_transaction_update()-related fns
+ + t3600: clean up permissions test properly
+ + Merge branch 'bc/object-id'
+
+ The implementation of "ref" API around the "packed refs" have been
+ cleaned up, in preparation for further changes.
+
+
+* rf/completion-config-commit (2017-05-30) 1 commit
+  (merged to 'next' on 2017-06-01 at cea32e0486)
+ + completion: add completions for git config commit
+ (this branch is used by rf/completion.)
+
+ Completion update.
+
+
+* sd/t3200-typofix (2017-05-29) 1 commit
+  (merged to 'next' on 2017-05-30 at 784e5e73f8)
+ + branch test: fix invalid config key access
+
+ Test fix.
+
+
+* tb/pull-ff-rebase-autostash (2017-06-01) 1 commit
+  (merged to 'next' on 2017-06-01 at b5e676d57e)
+ + pull: ff --rebase --autostash works in dirty repo
+
+ "git pull --rebase --autostash" didn't auto-stash when the local history
+ fast-forwards to the upstream.
+
+--------------------------------------------------
+[New Topics]
+
+* bw/object-id (2017-06-05) 33 commits
+ - diff: rename diff_fill_sha1_info to diff_fill_oid_info
+ - diffcore-rename: use is_empty_blob_oid
+ - tree-diff: convert path_appendnew to object_id
+ - tree-diff: convert diff_tree_paths to struct object_id
+ - tree-diff: convert try_to_follow_renames to struct object_id
+ - builtin/diff-tree: cleanup references to sha1
+ - diff-tree: convert diff_tree_sha1 to struct object_id
+ - notes-merge: convert write_note_to_worktree to struct object_id
+ - notes-merge: convert verify_notes_filepair to struct object_id
+ - notes-merge: convert find_notes_merge_pair_ps to struct object_id
+ - notes-merge: convert merge_from_diffs to struct object_id
+ - notes-merge: convert notes_merge* to struct object_id
+ - tree-diff: convert diff_root_tree_sha1 to struct object_id
+ - combine-diff: convert find_paths_* to struct object_id
+ - combine-diff: convert diff_tree_combined to struct object_id
+ - diff: convert diff_flush_patch_id to struct object_id
+ - patch-ids: convert to struct object_id
+ - diff: finish conversion for prepare_temp_file to struct object_id
+ - diff: convert reuse_worktree_file to struct object_id
+ - diff: convert fill_filespec to struct object_id
+ - diff: convert diff_change to struct object_id
+ - diff: convert run_diff_files to struct object_id
+ - diff: convert diff_addremove to struct object_id
+ - diff: convert diff_index_show_file to struct object_id
+ - diff: convert get_stat_data to struct object_id
+ - grep: convert to struct object_id
+ - notes: convert some accessor functions to struct object_id
+ - builtin/notes: convert to struct object_id
+ - notes: convert format_display_notes to struct object_id
+ - notes: make get_note return pointer to struct object_id
+ - notes: convert for_each_note to struct object_id
+ - notes: convert internal parts to struct object_id
+ - notes: convert internal structures to struct object_id
+
+ Conversion from uchar[20] to struct object_id continues.
 
  Will merge to 'next'.
 
 
-* jc/noent-notdir (2017-05-30) 2 commits
- - treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked
- - compat-util: is_missing_file_error()
+* rs/strbuf-addftime-zZ (2017-06-04) 1 commit
+ - strbuf: let strbuf_addftime handle %z and %Z itself
 
- Our code often opens a path to an optional file, to work on its
- contents when we can successfully open it.  We can ignore a failure
- to open if such an optional file does not exist, but we do want to
- report a failure in opening for other reasons (e.g. we got an I/O
- error, or the file is there, but we lack the permission to open).
+ As there is no portable way to pass timezone information to
+ strftime, some output format from "git log" and friends are
+ impossible to produce.  Teach our own strbuf_addftime to replace %z
+ and %Z with caller-supplied values to help working around this.
 
- The exact errors we need to ignore are ENOENT (obviously) and
- ENOTDIR (less obvious).  Instead of repeating comparison of errno
- with these two constants, introduce a helper function to do so.
+ Will merge to 'next'.
+
+
+* sb/submodule-rm-absorb (2017-06-04) 1 commit
+ - Documentation/git-rm: correct submodule description
+
+ Doc update to a recently graduated topic.
 
  Will merge to 'next'.
 
 
-* rf/completion (2017-06-02) 6 commits
- - completion: add git config credentialCache.ignoreSIGHUP
- - completion: add git config credential completions
- - completion: add git config advice completions
- - completion: add git config am.threeWay completion
- - completion: add git config core completions
- - completion: add git config gc completions
- (this branch uses rf/completion-config-commit.)
+* sg/revision-parser-skip-prefix (2017-06-04) 3 commits
+ - revision.c: use skip_prefix() in handle_revision_pseudo_opt()
+ - revision.c: use skip_prefix() in handle_revision_opt()
+ - revision.c: stricter parsing of '--no-{min,max}-parents'
 
- Completion updates.
+ Code clean-up.
+
+ Will merge to 'next'.
+
+
+* ab/perf-remove-index-lock (2017-06-05) 1 commit
+ - perf: work around the tested repo having an index.lock
+
+ When an existing repository is used for t/perf testing, we first
+ create bit-for-bit copy of it, which may grab a transient state of
+ the repository and freeze it into the repository used for testing,
+ which then may cause Git operations to fail.  Single out "the index
+ being locked" case and forcibly drop the lock from the copy.
 
  Will merge to 'next'.
 
+
+* ab/wip-fsmonitor (2017-06-04) 7 commits
+ - perf: add a performance test for core.fsmonitor
+ - fsmonitor: add a sample query-fsmonitor hook script for Watchman
+ - fsmonitor: add documentation for the fsmonitor extension
+ - fsmonitor: add test cases for fsmonitor extension
+ - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
+ - dir: make lookup_untracked() available outside of dir.c
+ - bswap: add 64 bit endianness helper get_be64
+
 --------------------------------------------------
 [Stalled]
 
@@ -268,103 +367,76 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
-* ls/filter-process-delayed (2017-06-01) 5 commits
- - convert: add "status=delayed" to filter process protocol
- - convert: move multiple file filter error handling to separate function
- - t0021: write "OUT" only on success
- - t0021: make debug log file name configurable
- - t0021: keep filter log files on comparison
-
- The filter-process interface learned to allow a process with long
- latency give a "delayed" response.
-
- Needs review.
-
-
-* ah/doc-rev-parse-short-default (2017-06-01) 1 commit
-  (merged to 'next' on 2017-06-01 at f64fcc2a26)
- + doc: rewrite description for rev-parse --short
+* jc/diff-tree-stale-comment (2017-06-02) 1 commit
+  (merged to 'next' on 2017-06-04 at bffae281d2)
+ + diff-tree: update stale in-code comments
 
Doc update.
Comment fix.
 
  Will merge to 'master'.
 
 
-* rf/completion-config-commit (2017-05-30) 1 commit
-  (merged to 'next' on 2017-06-01 at cea32e0486)
- + completion: add completions for git config commit
(this branch is used by rf/completion.)
+* jc/noent-notdir (2017-05-30) 2 commits
+  (merged to 'next' on 2017-06-04 at 7cb4efbc3c)
+ + treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked
+ compat-util: is_missing_file_error()
 
- Completion update.
+ Our code often opens a path to an optional file, to work on its
+ contents when we can successfully open it.  We can ignore a failure
+ to open if such an optional file does not exist, but we do want to
+ report a failure in opening for other reasons (e.g. we got an I/O
+ error, or the file is there, but we lack the permission to open).
+
+ The exact errors we need to ignore are ENOENT (obviously) and
+ ENOTDIR (less obvious).  Instead of repeating comparison of errno
+ with these two constants, introduce a helper function to do so.
 
  Will merge to 'master'.
 
 
-* ab/c-translators-comment-style (2017-05-31) 1 commit
-  (merged to 'next' on 2017-06-01 at df7fb9199a)
- + C style: use standard style for "TRANSLATORS" comments
+* rf/completion (2017-06-02) 6 commits
+  (merged to 'next' on 2017-06-04 at dde1e34703)
+ + completion: add git config credentialCache.ignoreSIGHUP
+ + completion: add git config credential completions
+ + completion: add git config advice completions
+ + completion: add git config am.threeWay completion
+ + completion: add git config core completions
+ + completion: add git config gc completions
 
- Update the C style recommendation for notes for translators, as
- recent versions of gettext tools can work with our style of
- multi-line comments.
+ Completion updates.
 
  Will merge to 'master'.
 
 
-* jc/diff-log-help (2017-06-01) 1 commit
- - diff- and log- family: handle "git cmd -h" early
- (this branch is used by jc/wip-check-help-option.)
+* ls/filter-process-delayed (2017-06-01) 5 commits
+ - convert: add "status=delayed" to filter process protocol
+ - convert: move multiple file filter error handling to separate function
+ - t0021: write "OUT" only on success
+ - t0021: make debug log file name configurable
+ - t0021: keep filter log files on comparison
 
- The continuation of jk/consistent-h topic; the plumbing commands in
- the diff- and log- family were calling into the revision machinery
- without repository set-up upon "git $cmd -h", which is fixed.
+ The filter-process interface learned to allow a process with long
+ latency give a "delayed" response.
 
Will squeeze into jk/consistent-h topic.
Needs review.
 
 
-* jk/consistent-h (2017-05-30) 7 commits
+* jk/consistent-h (2017-06-05) 8 commits
  - t0012: test "-h" with builtins
  - git: add hidden --list-builtins option
  - version: convert to parse-options
+ - diff- and log- family: handle "git cmd -h" early
  - submodule--helper: show usage for "-h"
  - remote-{ext,fd}: print usage message on invalid arguments
  - upload-archive: handle "-h" option early
  - credential: handle invalid arguments earlier
- (this branch uses jk/unbreak-am-h.)
 
  "git $cmd -h" for builtin commands calls the implementation of the
  command (i.e. cmd_$cmd() function) without doing any repository
  set-up, and the commands that expect RUN_SETUP is done by the Git
  potty needs to be prepared to show the help text without barfing.
 
-
-* jk/drop-free-refspecs (2017-06-01) 1 commit
-  (merged to 'next' on 2017-06-01 at 8f455319fc)
- + remote: drop free_refspecs() function
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
-* jk/unbreak-am-h (2017-05-30) 1 commit
-  (merged to 'next' on 2017-06-01 at ee2233d409)
- + am: handle "-h" argument earlier
- (this branch is used by jk/consistent-h.)
-
- "git am -h" triggered a BUG().
-
- Will merge to 'master'.
-
-
-* jk/url-insteadof-config (2017-06-01) 1 commit
-  (merged to 'next' on 2017-06-01 at e7ea6032c2)
- + docs/config: mention protocol implications of url.insteadOf
-
- The interaction of "url.*.insteadOf" and custom URL scheme's
- whitelisting is now documented better.
-
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
 * pw/rebase-i-regression-fix-tests (2017-06-01) 1 commit
@@ -377,36 +449,27 @@ of the repositories listed at
 
 
 * sb/submodule-blanket-recursive (2017-06-01) 9 commits
- - builtin/fetch.c: respect 'submodule.recurse' option
- - builtin/push.c: respect 'submodule.recurse' option
- - builtin/grep.c: respect 'submodule.recurse' option
- - Introduce 'submodule.recurse' option for worktree manipulators
- - submodule loading: separate code path for .gitmodules and config overlay
- - reset/checkout/read-tree: unify config callback for submodule recursion
- - submodule test invocation: only pass additional arguments
- - submodule recursing: do not write a config variable twice
- - Merge branch 'ab/grep-preparatory-cleanup' into sb/submodule-blanket-recursive
+  (merged to 'next' on 2017-06-04 at 418bb03032)
+ + builtin/fetch.c: respect 'submodule.recurse' option
+ + builtin/push.c: respect 'submodule.recurse' option
+ + builtin/grep.c: respect 'submodule.recurse' option
+ + Introduce 'submodule.recurse' option for worktree manipulators
+ + submodule loading: separate code path for .gitmodules and config overlay
+ + reset/checkout/read-tree: unify config callback for submodule recursion
+ + submodule test invocation: only pass additional arguments
+ + submodule recursing: do not write a config variable twice
+ + Merge branch 'ab/grep-preparatory-cleanup' into sb/submodule-blanket-recursive
 
  Many commands learned to pay attention to submodule.recurse
  configuration.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
  It is not known if a simple "yes/no" is sufficient in the longer
  term, and what should happen when --recurse-submodules option starts
  taking "recurse into them how?" parameter, though.
 
 
-* tb/pull-ff-rebase-autostash (2017-06-01) 1 commit
-  (merged to 'next' on 2017-06-01 at b5e676d57e)
- + pull: ff --rebase --autostash works in dirty repo
-
- "git pull --rebase --autostash" didn't auto-stash when the local history
- fast-forwards to the upstream.
-
- Will merge to 'master'.
-
-
 * ab/pcre-v2 (2017-06-02) 8 commits
  - grep: add support for PCRE v2
  - grep: un-break building with PCRE >= 8.32 without --enable-jit
@@ -423,46 +486,6 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* ab/sha1dc-maint (2017-05-22) 1 commit
-  (merged to 'next' on 2017-05-30 at 9eb40bf912)
- + sha1dc: update from upstream
- (this branch is used by ab/sha1dc.)
-
- The "collision detecting" SHA-1 implementation shipped with 2.13
- was quite broken on some big-endian platforms and/or platforms that
- do not like unaligned fetches.  Update to the upstream code which
- has already fixed these issues.
-
- Will merge to 'master'.
-
-
-* ab/t3070-test-dedup (2017-05-29) 1 commit
-  (merged to 'next' on 2017-05-30 at 71eadec33b)
- + wildmatch test: remove redundant duplicate test
-
- Test cleanup.
-
- Will merge to 'master'.
-
-
-* ah/doc-filter-branch-export-env (2017-05-29) 1 commit
-  (merged to 'next' on 2017-05-30 at a62168bf77)
- + doc: filter-branch does not require re-export of vars
-
- Docfix.
-
- Will merge to 'master'.
-
-
-* jk/connect-symref-info-leak-fix (2017-05-26) 1 commit
-  (merged to 'next' on 2017-05-30 at d8b75d2dd9)
- + connect.c: fix leak in parse_one_symref_info()
-
- Leakfix.
-
- Will merge to 'master'.
-
-
 * jk/pathspec-magic-disambiguation (2017-05-29) 6 commits
  - verify_filename(): flip order of checks
  - verify_filename(): treat ":(magic)" as a pathspec
@@ -483,55 +506,12 @@ of the repositories listed at
  learned to say "it's a pathspec" a bit more often when the syntax
  looks like so.
 
-
-* sd/t3200-typofix (2017-05-29) 1 commit
-  (merged to 'next' on 2017-05-30 at 784e5e73f8)
- + branch test: fix invalid config key access
-
- Test fix.
-
- Will merge to 'master'.
-
-
-* mh/packed-ref-store-prep (2017-05-24) 26 commits
-  (merged to 'next' on 2017-05-29 at e4f5e06b4c)
- + cache_ref_iterator_begin(): avoid priming unneeded directories
- + ref-filter: limit traversal to prefix
- + create_ref_entry(): remove `check_name` option
- + refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA`
- + read_packed_refs(): report unexpected fopen() failures
- + read_packed_refs(): do more of the work of reading packed refs
- + get_packed_ref_cache(): assume "packed-refs" won't change while locked
- + should_pack_ref(): new function, extracted from `files_pack_refs()`
- + ref_update_reject_duplicates(): add a sanity check
- + ref_update_reject_duplicates(): use `size_t` rather than `int`
- + ref_update_reject_duplicates(): expose function to whole refs module
- + ref_transaction_prepare(): new optional step for reference updates
- + ref_transaction_commit(): check for valid `transaction->state`
- + files_transaction_cleanup(): new helper function
- + files_ref_store: put the packed files lock directly in this struct
- + files-backend: move `lock` member to `files_ref_store`
- + lockfile: add a new method, is_lock_file_locked()
- + ref_store: take a `msg` parameter when deleting references
- + refs: use `size_t` indexes when iterating over ref transaction updates
- + refs_ref_iterator_begin(): don't check prefixes redundantly
- + prefix_ref_iterator: don't trim too much
- + files-backend: use `die("BUG: ...")`, not `die("internal error: ...")`
- + ref_iterator_begin_fn(): fix docstring
- + refs.h: clarify docstring for the ref_transaction_update()-related fns
- + t3600: clean up permissions test properly
- + Merge branch 'bc/object-id'
-
- The implementation of "ref" API around the "packed refs" have been
- cleaned up, in preparation for further changes.
-
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
 * ab/sha1dc (2017-05-22) 2 commits
  - sha1collisiondetection: automatically enable when submodule is populated
  - sha1dc: optionally use sha1collisiondetection as a submodule
- (this branch uses ab/sha1dc-maint.)
 
  The "collission-detecting" implementation of SHA-1 hash we borrowed
  from is replaced by directly binding the upstream project as our
@@ -542,7 +522,8 @@ of the repositories listed at
  submodule is not yet fully known, but this lets us dip our toes.
 
 
-* bp/fsmonitor (2017-06-02) 6 commits
+* bp/fsmonitor (2017-06-04) 7 commits
+ - perf: add a performance test for core.fsmonitor
  - fsmonitor: add a sample query-fsmonitor hook script for Watchman
  - fsmonitor: add documentation for the fsmonitor extension
  - fsmonitor: add test cases for fsmonitor extension
@@ -579,6 +560,8 @@ of the repositories listed at
  the same as deleted lines elsewhere differently from genuinely new
  lines.
 
+ Are we happy with these changes?
+
 
 * xz/send-email-batch-size (2017-05-23) 1 commit
  - send-email: --batch-size to work around some SMTP server limit
@@ -591,44 +574,6 @@ of the repositories listed at
  cf. <CACBZZX5GYV50rjg9X602JHqFPaoofH9TwDf_-r_MDu8-rmNV6Q@mail.gmail.com>
 
 
-* js/blame-lib (2017-05-25) 29 commits
-  (merged to 'next' on 2017-05-30 at b4678b36a7)
- + blame: move entry prepend to libgit
- + blame: move scoreboard setup to libgit
- + blame: move scoreboard-related methods to libgit
- + blame: move fake-commit-related methods to libgit
- + blame: move origin-related methods to libgit
- + blame: move core structures to header
- + blame: create entry prepend function
- + blame: create scoreboard setup function
- + blame: create scoreboard init function
- + blame: rework methods that determine 'final' commit
- + blame: wrap blame_sort and compare_blame_final
- + blame: move progress updates to a scoreboard callback
- + blame: make sanity_check use a callback in scoreboard
- + blame: move no_whole_file_rename flag to scoreboard
- + blame: move xdl_opts flags to scoreboard
- + blame: move show_root flag to scoreboard
- + blame: move reverse flag to scoreboard
- + blame: move contents_from to scoreboard
- + blame: move copy/move thresholds to scoreboard
- + blame: move stat counters to scoreboard
- + blame: rename nth_line function
- + blame: rename ent_score function
- + blame: rename coalesce function
- + blame: rename origin-related functions
- + blame: rename scoreboard structure to blame_scoreboard
- + blame: rename origin structure to blame_origin
- + blame: remove unused parameters
- + blame: move textconv_object with related functions
- + blame: remove unneeded dependency on blob.h
-
- The internal logic used in "git blame" has been libified to make it
- easier to use by cgit.
-
- Will merge to 'master'.
-
-
 * sg/clone-refspec-from-command-line-config (2017-06-01) 2 commits
  - Documentation/clone: document ignored configuration variables
  - clone: respect additional configured fetch refspecs during initial fetch
@@ -641,56 +586,27 @@ of the repositories listed at
  Are we happy with these two?
 
 
-* jh/close-index-before-stat (2017-04-28) 1 commit
-  (merged to 'next' on 2017-05-16 at 0c0372eb02)
- + read-cache: close index.lock in do_write_index
-
- Originally merged to 'next' on 2017-04-30
-
- The timestamp of the index file is now taken after the file is
- closed, to help Windows, on which a stale timestamp is reported by
- fstat() on a file that is opened for writing and data was written
- but not yet closed.
-
- Will merge to 'master'.
-
-
-* mb/diff-default-to-indent-heuristics (2017-05-09) 4 commits
-  (merged to 'next' on 2017-05-29 at 7645575e21)
- + add--interactive: drop diff.indentHeuristic handling
- + diff: enable indent heuristic by default
- + diff: have the diff-* builtins configure diff before initializing revisions
- + diff: make the indent heuristic part of diff's basic configuration
-
- Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
- configuration variable an escape hatch for those who do no want it.
-
- Will merge to 'master'.
- Looks like there may be follow-on work possible, but the topic
- itself is in good order.
- cf. <20170509033258.q7auj5p5lxs4tggd@sigill.intra.peff.net>
-
-
 * nd/fopen-errors (2017-06-02) 13 commits
- - mingw_fopen: report ENOENT for invalid file names
- - mingw: verify that paths are not mistaken for remote nicknames
- - log: fix memory leak in open_next_file()
- - rerere.c: move error_errno() closer to the source system call
- - print errno when reporting a system call error
- - wrapper.c: make warn_on_inaccessible() static
- - wrapper.c: add and use fopen_or_warn()
- - wrapper.c: add and use warn_on_fopen_errors()
- - config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too
- - config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
- - clone: use xfopen() instead of fopen()
- - use xfopen() in more places
- - git_fopen: fix a sparse 'not declared' warning
+  (merged to 'next' on 2017-06-04 at 7a755e73bb)
+ + mingw_fopen: report ENOENT for invalid file names
+ + mingw: verify that paths are not mistaken for remote nicknames
+ + log: fix memory leak in open_next_file()
+ + rerere.c: move error_errno() closer to the source system call
+ + print errno when reporting a system call error
+ + wrapper.c: make warn_on_inaccessible() static
+ + wrapper.c: add and use fopen_or_warn()
+ + wrapper.c: add and use warn_on_fopen_errors()
+ + config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too
+ + config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
+ + clone: use xfopen() instead of fopen()
+ + use xfopen() in more places
+ + git_fopen: fix a sparse 'not declared' warning
 
  We often try to open a file for reading whose existence is
  optional, and silently ignore errors from open/fopen; report such
  errors if they are not due to missing files.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * js/rebase-i-final (2017-05-02) 10 commits
@@ -708,7 +624,7 @@ of the repositories listed at
  The final batch to "git rebase -i" updates to move more code from
  the shell script to C.
 
Undecided; expecting a reroll.
Expecting a reroll.
  This is at its v4.
  cf. <cover.1493414945.git.johannes.schindelin@gmx.de>