]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2017/10 #02)
authorJunio C Hamano <gitster@pobox.com>
Wed, 11 Oct 2017 06:18:12 +0000 (15:18 +0900)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Oct 2017 06:18:12 +0000 (15:18 +0900)
whats-cooking.txt

index 09c8f462ec23443f802b74142d92dd4acddb2d4d..1dc1d07885b17a0560cc57f493bed6f4f04dc9be 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Oct 2017, #01; Wed, 4)
-X-master-at: 8fb8a945bc2dea2bb04249213ad8dacffbfc604f
-X-next-at: 6663358d3414aff4d7dac0c6f06cbfcc2cb48ddb
+Subject: What's cooking in git.git (Oct 2017, #02; Wed, 11)
+X-master-at: 111ef79afe185f8731920569450f6a65320f5d5f
+X-next-at: 92ea9504509327dacaba929d631d198e57533c14
 
-What's cooking in git.git (Oct 2017, #01; Wed, 4)
+What's cooking in git.git (Oct 2017, #02; Wed, 11)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -12,9 +12,10 @@ 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.
 
-I wanted to do v2.15-rc0 today but it seems that this has to slip,
-with too many topics still in flight in 'next' among which many are
-fixes, one is even a fix for a recent regression.
+2.15-rc1 has been tagged.  Some of the topic marked "Will merge to
+'master'" below might still become part of 2.15 final, while others
+may be left to be merged after the final, to become part of the
+release after that one (2.16?).
 
 You can find the changes described here in the integration branches
 of the repositories listed at
@@ -24,248 +25,145 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* ad/doc-markup-fix (2017-09-29) 1 commit
-  (merged to 'next' on 2017-10-02 at fdf600e8f3)
- + doc: correct command formatting
-
- Docfix.
-
+* ar/request-pull-phrasofix (2017-10-03) 1 commit
+  (merged to 'next' on 2017-10-03 at 07807bba90)
+ + request-pull: capitalise "Git" to make it a proper noun
 
-* bc/rev-parse-parseopt-fix (2017-09-25) 7 commits
-  (merged to 'next' on 2017-09-26 at f3e013eaa4)
- + parse-options: only insert newline in help text if needed
- + parse-options: write blank line to correct output stream
- + t0040,t1502: Demonstrate parse_options bugs
-  (merged to 'next' on 2017-09-24 at e479bce0ff)
- + git-rebase: don't ignore unexpected command line arguments
- + rev-parse parseopt: interpret any whitespace as start of help text
- + rev-parse parseopt: do not search help text for flag chars
- + t1502: demonstrate rev-parse --parseopt option mis-parsing
+ Spell the name of our system as "Git" in the output from
+ request-pull script.
 
- Recent versions of "git rev-parse --parseopt" did not parse the
- option specification that does not have the optional flags (*=?!)
- correctly, which has been corrected.
 
+* ds/avoid-overflow-in-midpoint-computation (2017-10-10) 1 commit
+  (merged to 'next' on 2017-10-10 at 6279867a5d)
+ + cleanup: fix possible overflow errors in binary search
 
-* bw/git-clang-format (2017-10-01) 1 commit
-  (merged to 'next' on 2017-10-02 at ee84c89b07)
- + clang-format: adjust line break penalties
- (this branch is used by sb/git-clang-format.)
+ Code clean-up.
 
- Adjust clang-format penalty parameters.
 
+* er/fast-import-dump-refs-on-checkpoint (2017-09-29) 1 commit
+  (merged to 'next' on 2017-10-03 at 4e7b0e7ec1)
+ + fast-import: checkpoint: dump branches/tags/marks even if object_count==0
 
-* hn/path-ownership-comment (2017-09-27) 2 commits
-  (merged to 'next' on 2017-09-28 at 7cf8481c29)
- + read_gitfile_gently: clarify return value ownership.
- + real_path: clarify return value ownership
+ The checkpoint command "git fast-import" did not flush updates to
+ refs and marks unless at least one object was created since the
+ last checkpoint, which has been corrected, as these things can
+ happen without any new object getting created.
 
- Add comment to a few functions that use a short-lived buffer the
- caller can peek and copy out of.
 
+* hn/string-list-doc (2017-10-06) 1 commit
+  (merged to 'next' on 2017-10-10 at d214a7c369)
+ + api-argv-array.txt: remove broken link to string-list API
 
-* hn/string-list-doc (2017-09-27) 1 commit
-  (merged to 'next' on 2017-09-28 at ffc8f65f4a)
- + string-list.h: move documentation from Documentation/api/ into header
+ Docfix.
 
- Doc reorg.
 
+* jk/refs-df-conflict (2017-10-07) 2 commits
+  (merged to 'next' on 2017-10-10 at d5953a1ced)
+ + refs_resolve_ref_unsafe: handle d/f conflicts for writes
+ + t3308: create a real ref directory/file conflict
 
-* hn/submodule-comment (2017-09-26) 1 commit
-  (merged to 'next' on 2017-09-28 at a071ca3fde)
- + submodule.c: describe submodule_to_gitdir() in a new comment
+ An ancient bug that made Git misbehave with creation/renaming of
+ refs has been fixed.
 
 
-* jk/no-optional-locks (2017-09-27) 1 commit
-  (merged to 'next' on 2017-09-28 at eaffe9c638)
- + git: add --no-optional-locks option
+* jk/sha1-loose-object-info-fix (2017-10-06) 1 commit
+  (merged to 'next' on 2017-10-10 at bcfd9c4e3f)
+ + sha1_loose_object_info: handle errors from unpack_sha1_rest
 
- Some commands (most notably "git status") makes an opportunistic
- update when performing a read-only operation to help optimize later
- operations in the same repository.  The new "--no-optional-locks"
- option can be passed to Git to disable them.
+ Leakfix and futureproofing.
 
 
-* jk/read-in-full (2017-09-27) 7 commits
-  (merged to 'next' on 2017-09-28 at 9d109b9233)
- + worktree: check the result of read_in_full()
- + worktree: use xsize_t to access file size
- + distinguish error versus short read from read_in_full()
- + avoid looking at errno for short read_in_full() returns
- + prefer "!=" when checking read_in_full() result
- + notes-merge: drop dead zero-write code
- + files-backend: prefer "0" for write_in_full() error check
+* jk/ui-color-always-to-auto (2017-10-04) 3 commits
+  (merged to 'next' on 2017-10-05 at 792ae936cf)
+ + Merge branch 'jk/ui-color-always-to-auto-maint' into jk/ui-color-always-to-auto
+ + t7301: use test_terminal to check color
+ + t4015: use --color with --color-moved
+ (this branch uses jk/ui-color-always-to-auto-maint.)
 
- Code clean-up to prevent future mistakes by copying and pasting
- code that checks the result of read_in_full() function.
+ Fix regression of "git add -p" for users with "color.ui = always"
+ in their configuration, by merging the topic below and adjusting it
+ for the 'master' front.
 
 
-* jk/validate-headref-fix (2017-09-27) 3 commits
-  (merged to 'next' on 2017-09-28 at dcea9d16f9)
- + validate_headref: use get_oid_hex for detached HEADs
- + validate_headref: use skip_prefix for symref parsing
- + validate_headref: NUL-terminate HEAD buffer
+* jk/ui-color-always-to-auto-maint (2017-10-04) 10 commits
+ + color: make "always" the same as "auto" in config
+ + provide --color option for all ref-filter users
+ + t3205: use --color instead of color.branch=always
+ + t3203: drop "always" color test
+ + t6006: drop "always" color config tests
+ + t7502: use diff.noprefix for --verbose test
+ + t7508: use test_terminal for color output
+ + t3701: use test-terminal to collect color output
+ + t4015: prefer --color to -c color.diff=always
+ + test-terminal: set TERM=vt100
+ (this branch is used by jk/ui-color-always-to-auto.)
 
- Code clean-up.
+ Users with "color.ui = always" in their configuration were broken
+ by a recent change that made plumbing commands to pay attention to
+ them as the patch created internally by "git add -p" were colored
+ (heh) and made unusable.  Fix this regression by redefining
+ 'always' to mean the same thing as 'auto'.
 
 
-* js/rebase-i-final (2017-07-27) 10 commits
-  (merged to 'next' on 2017-09-26 at ea3f8f5e11)
- + rebase -i: rearrange fixup/squash lines using the rebase--helper
- + t3415: test fixup with wrapped oneline
- + rebase -i: skip unnecessary picks using the rebase--helper
- + rebase -i: check for missing commits in the rebase--helper
- + t3404: relax rebase.missingCommitsCheck tests
- + rebase -i: also expand/collapse the SHA-1s via the rebase--helper
- + rebase -i: do not invent onelines when expanding/collapsing SHA-1s
- + rebase -i: remove useless indentation
- + rebase -i: generate the script via rebase--helper
- + t3415: verify that an empty instructionFormat is handled as before
-
- The final batch to "git rebase -i" updates to move more code from
- the shell script to C.
-
-
-* mh/mmap-packed-refs (2017-09-25) 21 commits
-  (merged to 'next' on 2017-09-29 at 3639417666)
- + packed-backend.c: rename a bunch of things and update comments
- + mmapped_ref_iterator: inline into `packed_ref_iterator`
- + ref_cache: remove support for storing peeled values
- + packed_ref_store: get rid of the `ref_cache` entirely
- + ref_store: implement `refs_peel_ref()` generically
- + packed_read_raw_ref(): read the reference from the mmapped buffer
- + packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
- + read_packed_refs(): ensure that references are ordered when read
- + packed_ref_cache: keep the `packed-refs` file mmapped if possible
- + packed-backend.c: reorder some definitions
- + mmapped_ref_iterator_advance(): no peeled value for broken refs
- + mmapped_ref_iterator: add iterator over a packed-refs file
- + packed_ref_cache: remember the file-wide peeling state
- + read_packed_refs(): read references with minimal copying
- + read_packed_refs(): make parsing of the header line more robust
- + read_packed_refs(): only check for a header at the top of the file
- + read_packed_refs(): use mmap to read the `packed-refs` file
- + die_unterminated_line(), die_invalid_line(): new functions
- + packed_ref_cache: add a backlink to the associated `packed_ref_store`
- + prefix_ref_iterator: break when we leave the prefix
- + ref_iterator: keep track of whether the iterator output is ordered
-
- Operations that do not touch (majority of) packed refs have been
- optimized by making accesses to packed-refs file lazy; we no longer
- pre-parse everything, and an access to a single ref in the
- packed-refs does not touch majority of irrelevant refs, either.
-
-
-* mr/doc-negative-pathspec (2017-09-25) 1 commit
-  (merged to 'next' on 2017-09-29 at 147bb7ef8b)
- + docs: improve discoverability of exclude pathspec
-
- Doc updates.
-
-
-* sb/diff-color-move (2017-09-28) 1 commit
-  (merged to 'next' on 2017-09-28 at cbdbc741be)
- + diff: correct newline in summary for renamed files
-
- The output from "git diff --summary" was broken in a recent topic
- that has been merged to 'master' and lost a LF after reporting of
- mode change.  This has been fixed.
-
-
-* sb/submodule-diff-header-fix (2017-09-28) 1 commit
-  (merged to 'next' on 2017-09-28 at 10e0f59303)
- + submodule: correct error message for missing commits
+* jn/strbuf-doc-re-reuse (2017-10-04) 1 commit
+  (merged to 'next' on 2017-10-04 at 5940d412d9)
+ + strbuf doc: reuse after strbuf_release is fine
 
- Error message tweak.
 
+* jr/hash-migration-plan-doc (2017-09-28) 1 commit
+  (merged to 'next' on 2017-10-04 at b47b3bb656)
+ + technical doc: add a design doc for hash function transition
 
-* sb/test-submodule-update-config (2017-09-27) 1 commit
-  (merged to 'next' on 2017-09-28 at 497214603c)
- + t7406: submodule.<name>.update command must not be run from .gitmodules
+ Lay out plans for weaning us off of SHA-1.
 
 
-* sd/branch-copy (2017-09-24) 4 commits
-  (merged to 'next' on 2017-09-28 at a6eceefa02)
- + branch: fix "copy" to never touch HEAD
- + branch: add a --copy (-c) option to go with --move (-m)
- + branch: add test for -m renaming multiple config sections
- + config: create a function to format section headers
+* jt/oidmap (2017-10-01) 1 commit
+  (merged to 'next' on 2017-10-05 at e41445fc33)
+ + oidmap: map with OID as key
 
- "git branch" learned "-c/-C" to create a new branch by copying an
- existing one.
+ Introduce a new "oidmap" API and rewrite oidset to use it.
 
---------------------------------------------------
-[New Topics]
 
-* jc/merge-symlink-ours-theirs (2017-09-26) 1 commit
- - merge: teach -Xours/-Xtheirs to symbolic link merge
+* ks/branch-tweak-error-message-for-extra-args (2017-10-04) 1 commit
+  (merged to 'next' on 2017-10-05 at aa0b656bf0)
+ + branch: change the error messages to be more meaningful
 
- "git merge -Xours/-Xtheirs" learned to use our/their version when
- resolving a conflicting updates to a symbolic link.
+ Error message tweak.
 
- Needs review.
 
+* ks/verify-filename-non-option-error-message-tweak (2017-10-04) 1 commit
+  (merged to 'next' on 2017-10-05 at 2a7030f6fe)
+ + setup: update error message to be more meaningful
 
-* jt/oidmap (2017-10-01) 1 commit
- - oidmap: map with OID as key
+ Error message tweak.
 
- Introduce a new "oidmap" API and rewrite oidset to use it.
 
- Will merge to 'next'.
+* ls/filter-process-delayed (2017-10-10) 5 commits
+  (merged to 'next' on 2017-10-10 at 7b26d72991)
+ + write_entry: untangle symlink and regular-file cases
+ + write_entry: avoid reading blobs in CE_RETRY case
+ + write_entry: fix leak when retrying delayed filter
+ + entry.c: check if file exists after checkout
+ + entry.c: update cache entry only for existing files
 
-
-* jt/partial-clone-lazy-fetch (2017-10-02) 18 commits
- - fetch-pack: restore save_commit_buffer after use
- - unpack-trees: batch fetching of missing blobs
- - clone: configure blobmaxbytes in created repos
- - clone: support excluding large blobs
- - fetch: support excluding large blobs
- - fetch: refactor calculation of remote list
- - fetch-pack: support excluding large blobs
- - pack-objects: support --blob-max-bytes
- - pack-objects: rename want_.* to ignore_.*
- - gc: do not repack promisor packfiles
- - rev-list: support termination at promisor objects
- - sha1_file: support lazily fetching missing objects
- - introduce fetch-object: fetch one promisor object
- - index-pack: refactor writing of .keep files
- - fsck: support promisor objects as CLI argument
- - fsck: support referenced promisor objects
- - fsck: support refs pointing to promisor objects
- - fsck: introduce partialclone extension
-
- A journey for "git clone" and "git fetch" to become "lazier" by
- depending more on its remote repository---this is the beginning of
- it.
-
- Needs review.
+ Bugfixes to an already graduated series.
 
 
 * ma/builtin-unleak (2017-10-02) 1 commit
- - builtin/: add UNLEAKs
+  (merged to 'next' on 2017-10-05 at 380cb74320)
+ + builtin/: add UNLEAKs
 
  Many variables that points at a region of memory that will live
  throughout the life of the program have been marked with UNLEAK
  marker to help the leak checkers concentrate on real leaks..
 
 
-* ma/lockfile-fixes (2017-10-02) 11 commits
- - read-cache: roll back lock on error with `COMMIT_LOCK`
- - read-cache: don't leave dangling pointer in `do_write_index()`
- - read-cache: require flags for `write_locked_index()`
- - cache.h: document `write_locked_index()`
- - apply: remove `newfd` from `struct apply_state`
- - apply: move lockfile into `apply_state`
- - cache-tree: simplify locking logic
- - tempfile: fix documentation on `delete_tempfile()`
- - lockfile: fix documentation on `close_lock_file_gently()`
- - treewide: prefer lockfiles on the stack
- - sha1_file: do not leak `lock_file`
+* rb/compat-poll-fix (2017-09-29) 1 commit
+  (merged to 'next' on 2017-10-05 at c31029202d)
+ + poll.c: always set revents, even if to zero
 
- An earlier update made it possible to use an on-stack in-core
- lockfile structure (as opposed to having to deliberately leak an
- on-heap one).  Many codepaths have been updated to take advantage
- of this new facility.
+ Backports a moral equivalent of 2015 fix to the poll emulation from
+ the upstream gnulib to fix occasional breakages on HPE NonStop.
 
 
 * rs/cleanup-strbuf-users (2017-10-02) 3 commits
@@ -276,8 +174,6 @@ of the repositories listed at
 
  Code clean-up.
 
- Will merge to 'master'.
-
 
 * rs/cocci-de-paren-call-params (2017-10-02) 1 commit
   (merged to 'next' on 2017-10-03 at ee97fe5c24)
@@ -285,7 +181,30 @@ of the repositories listed at
 
  Code clean-up.
 
- Will merge to 'master'.
+
+* rs/fsck-null-return-from-lookup (2017-10-06) 1 commit
+  (merged to 'next' on 2017-10-10 at 32dfa424cf)
+ + fsck: handle NULL return of lookup_blob() and lookup_tree()
+
+ Improve behaviour of "git fsck" upon finding a missing object.
+
+
+* rs/qsort-s (2017-10-04) 1 commit
+  (merged to 'next' on 2017-10-04 at 5f10a6e263)
+ + test-stringlist: avoid buffer underrun when sorting nothing
+
+
+* rs/resolve-ref-optional-result (2017-10-01) 2 commits
+  (merged to 'next' on 2017-10-03 at f129d4b0e9)
+ + refs: pass NULL to resolve_refdup() if hash is not needed
+ + refs: pass NULL to refs_resolve_refdup() if hash is not needed
+
+ Code clean-up.
+
+
+* rs/rs-mailmap (2017-10-06) 1 commit
+  (merged to 'next' on 2017-10-10 at 020d29b68c)
+ + .mailmap: normalize name for RenĂ© Scharfe
 
 
 * rs/run-command-use-alloc-array (2017-10-03) 1 commit
@@ -294,8 +213,6 @@ of the repositories listed at
 
  Code clean-up.
 
- Will merge to 'master'.
-
 
 * rs/tag-null-pointer-arith-fix (2017-10-02) 1 commit
   (merged to 'next' on 2017-10-03 at e05d92fec9)
@@ -303,8 +220,6 @@ of the repositories listed at
 
  Code clean-up.
 
- Will merge to 'master'.
-
 
 * rs/use-free-and-null (2017-10-02) 1 commit
   (merged to 'next' on 2017-10-03 at 6340234d67)
@@ -312,7 +227,10 @@ of the repositories listed at
 
  Code clean-up.
 
- Will merge to 'master'.
+
+* sb/branch-avoid-repeated-strbuf-release (2017-10-04) 1 commit
+  (merged to 'next' on 2017-10-04 at bd86ef77fc)
+ + branch: reset instead of release a strbuf
 
 
 * sb/git-clang-format (2017-10-02) 1 commit
@@ -322,102 +240,153 @@ of the repositories listed at
  Add comment to clarify that the style file is meant to be used with
  clang-5 and the rules are still work in progress.
 
- Will merge to 'master'.
 
+* sb/test-cmp-expect-actual (2017-10-07) 1 commit
+  (merged to 'next' on 2017-10-10 at c47a4dcc72)
+ + tests: fix diff order arguments in test_cmp
 
-* rs/resolve-ref-optional-result (2017-10-01) 2 commits
-  (merged to 'next' on 2017-10-03 at f129d4b0e9)
- + refs: pass NULL to resolve_refdup() if hash is not needed
- + refs: pass NULL to refs_resolve_refdup() if hash is not needed
+ Test tweak.
 
- Code clean-up.
 
- Will merge to 'master'.
+* tb/complete-describe (2017-10-07) 1 commit
+  (merged to 'next' on 2017-10-10 at 2607253946)
+ + completion: add --broken and --dirty to describe
 
+ Docfix.
 
-* ar/request-pull-phrasofix (2017-10-03) 1 commit
-  (merged to 'next' on 2017-10-03 at 07807bba90)
- + request-pull: capitalise "Git" to make it a proper noun
 
- Spell the name of our system as "Git" in the output from
- request-pull script.
+* tb/delimit-pretty-trailers-args-with-comma (2017-10-02) 1 commit
+  (merged to 'next' on 2017-10-04 at de5446a01c)
+ + pretty.c: delimit "%(trailers)" arguments with ","
+ (this branch is used by tb/show-trailers-in-ref-filter.)
 
- Will merge to 'master'.
+ The feature that allows --pretty='%(trailers)' to take modifiers
+ like "fold" and "only" used to separate these modifiers with a
+ comma, i.e. "%(trailers:fold:only)", but we changed our mind and
+ use a comma, i.e. "%(trailers:fold,only)".  Fast track this change
+ before this new feature becomes part of any official release.
 
 
-* tb/show-trailers-in-ref-filter (2017-10-02) 7 commits
- - ref-filter.c: parse trailers arguments with %(contents) atom
- - ref-filter.c: use trailer_opts to format trailers
- - t6300: refactor %(trailers) tests
- - doc: use "`<literal>`"-style quoting for literal strings
- - doc: 'trailers' is the preferred way to format trailers
- - t4205: unfold across multiple lines
- - pretty.c: delimit "%(trailers)" arguments with ","
+* tb/ref-filter-empty-modifier (2017-10-05) 1 commit
+  (merged to 'next' on 2017-10-05 at 62cb67688a)
+ + ref-filter.c: pass empty-string as NULL to atom parsers
 
- "git for-each-ref --format=..." learned a new format element,
- %(trailers), to show only the commit log trailer part of the log
- message.
+ In the "--format=..." option of the "git for-each-ref" command (and
+ its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)"
+ (e.g. "%(refname:)", "%(body:)" used to error out.  Instead, treat
+ them as if the colon and an empty string that follows it were not
+ there.
 
- Will merge to 'next'.
 
+* tb/show-trailers-in-ref-filter (2017-10-02) 6 commits
+  (merged to 'next' on 2017-10-05 at c7a697f15d)
+ + ref-filter.c: parse trailers arguments with %(contents) atom
+ + ref-filter.c: use trailer_opts to format trailers
+ + t6300: refactor %(trailers) tests
+ + doc: use "`<literal>`"-style quoting for literal strings
+ + doc: 'trailers' is the preferred way to format trailers
+ + t4205: unfold across multiple lines
 
-* jk/ui-color-always-to-auto (2017-10-04) 3 commits
- - Merge branch 'jk/ui-color-always-to-auto-maint' into jk/ui-color-always-to-auto
- - t7301: use test_terminal to check color
- - t4015: use --color with --color-moved
- (this branch uses jk/ui-color-always-to-auto-maint.)
+ "git for-each-ref --format=..." learned a new format element,
+ %(trailers), to show only the commit log trailer part of the log
+ message.
 
 
-* jk/ui-color-always-to-auto-maint (2017-10-04) 10 commits
- - color: make "always" the same as "auto" in config
- - provide --color option for all ref-filter users
- - t3205: use --color instead of color.branch=always
- - t3203: drop "always" color test
- - t6006: drop "always" color config tests
- - t7502: use diff.noprefix for --verbose test
- - t7508: use test_terminal for color output
- - t3701: use test-terminal to collect color output
- - t4015: prefer --color to -c color.diff=always
- - test-terminal: set TERM=vt100
- (this branch is used by jk/ui-color-always-to-auto.)
+* tg/memfixes (2017-10-04) 3 commits
+  (merged to 'next' on 2017-10-04 at fb338a5531)
+ + sub-process: use child_process.args instead of child_process.argv
+ + http-push: fix construction of hex value from path
+ + path.c: fix uninitialized memory access
 
+ Fixes for a handful memory access issues identified by valgrind.
 
-* jn/strbuf-doc-re-reuse (2017-10-04) 1 commit
- - strbuf doc: reuse after strbuf_release is fine
+--------------------------------------------------
+[New Topics]
 
- Will merge to 'next'.
+* dm/run-command-ignored-hook-advise (2017-10-10) 1 commit
+  (merged to 'next' on 2017-10-10 at 0827814922)
+ + run-command: add hint when a hook is ignored
 
+ A hook script that is set unexecutable is simply ignored.  Git
+ notifies when such a file is ignored, unless the message is
+ squelched via advice.ignoredHook configuration.
 
-* ks/branch-tweak-error-message-for-extra-args (2017-10-04) 1 commit
- - branch: change the error messages to be more meaningful
+ Will cook in 'next'.
 
- Error message tweak.
 
+* hv/fetch-moved-submodules-on-demand (2017-10-08) 5 commits
+ - DONTMERGE: mark failing tests for now
+ - submodule: simplify decision tree whether to or not to fetch
+ - implement fetching of moved submodules
+ - change submodule push test to use proper repository setup
+ - fetch: add test to make sure we stay backwards compatible
 
-* ks/verify-filename-non-option-error-message-tweak (2017-10-04) 1 commit
- - setup: update error message to be more meaningful
+ WIP.
 
- Error message tweak.
 
+* js/for-each-ref-remote-name-and-ref (2017-10-11) 3 commits
+ - for-each-ref: test :remotename and :remoteref
+ - for-each-ref: let upstream/push optionally report the remote ref name
+ - for-each-ref: let upstream/push optionally report the remote name
 
-* rs/qsort-s (2017-10-04) 1 commit
- - test-stringlist: avoid buffer underrun when sorting nothing
+ The "--format=..." option "git for-each-ref" takes learned to show
+ the name of the 'remote' repository and the ref at the remote side
+ that is affected for 'upstream' and 'push' via "%(push:remotename)"
+ and friends.
 
- Will merge to 'next'.
 
+* pb/bisect-helper (2017-10-06) 6 commits
+ - bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
+ - t6030: explicitly test for bisection cleanup
+ - bisect--helper: `bisect_clean_state` shell function in C
+ - bisect--helper: `write_terms` shell function in C
+ - bisect--helper: rewrite `check_term_format` shell function in C
+ - bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
 
-* sb/branch-avoid-repeated-strbuf-release (2017-10-04) 1 commit
- - branch: reset instead of release a strbuf
+ An early part of piece-by-piece rewrite of "git bisect".
 
  Will merge to 'next'.
 
 
-* tg/memfixes (2017-10-04) 3 commits
- - sub-process: use child_process.args instead of child_process.argv
- - http-push: fix construction of hex value from path
- - path.c: fix uninitialized memory access
-
- Fixes for a handful memory access issues identified by valgrind.
+* bc/object-id (2017-10-09) 24 commits
+ - refs/files-backend: convert static functions to object_id
+ - refs: convert read_raw_ref backends to struct object_id
+ - refs: convert peel_object to struct object_id
+ - refs: convert resolve_ref_unsafe to struct object_id
+ - worktree: convert struct worktree to object_id
+ - refs: convert resolve_gitlink_ref to struct object_id
+ - resolve_gitlink_ref(): convert remaining callers to object_id
+ - sha1_file: convert index_path and index_fd to struct object_id
+ - refs: convert reflog_expire parameter to struct object_id
+ - refs: convert read_ref_at to struct object_id
+ - refs: convert peel_ref to struct object_id
+ - builtin/pack-objects: convert to struct object_id
+ - pack-bitmap: convert traverse_bitmap_commit_list to object_id
+ - refs: convert dwim_log to struct object_id
+ - builtin/reflog: convert remaining unsigned char uses to object_id
+ - refs: convert dwim_ref and expand_ref to struct object_id
+ - refs: convert read_ref and read_ref_full to object_id
+ - refs: convert resolve_refdup and refs_resolve_refdup to struct object_id
+ - check_connected(): use struct object_id
+ - refs: update ref transactions to use struct object_id
+ - refs: convert update_ref and refs_update_ref to use struct object_id
+ - refs: convert delete_ref and refs_delete_ref to struct object_id
+ - refs/files-backend: convert struct ref_to_prune to object_id
+ - walker: convert to struct object_id
+
+
+* jc/no-cmd-as-subroutine (2017-10-11) 2 commits
+ - merge-ours: do not use cmd_*() as a subroutine
+ - describe: do not use cmd_*() as a subroutine
+
+ Calling cmd_foo() as if it is a general purpose helper function is
+ a no-no.  Correct two instances of such to set an example.
+
+
+* jc/doc-checkout (2017-10-11) 1 commit
+ - checkout doc: clarify command line args for "checkout paths" mode
+
+ Doc update.
 
  Will merge to 'next'.
 
@@ -478,43 +447,72 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
-* er/fast-import-dump-refs-on-checkpoint (2017-09-29) 1 commit
-  (merged to 'next' on 2017-10-03 at 4e7b0e7ec1)
- + fast-import: checkpoint: dump branches/tags/marks even if object_count==0
+* jc/merge-symlink-ours-theirs (2017-09-26) 1 commit
+ - merge: teach -Xours/-Xtheirs to symbolic link merge
 
- The checkpoint command "git fast-import" did not flush updates to
- refs and marks unless at least one object was created since the
- last checkpoint, which has been corrected, as these things can
- happen without any new object getting created.
+ "git merge -Xours/-Xtheirs" learned to use our/their version when
+ resolving a conflicting updates to a symbolic link.
 
Will merge to 'master'.
Needs review.
 
 
-* jr/hash-migration-plan-doc (2017-09-28) 1 commit
- - technical doc: add a design doc for hash function transition
+* jt/partial-clone-lazy-fetch (2017-10-02) 18 commits
+ - fetch-pack: restore save_commit_buffer after use
+ - unpack-trees: batch fetching of missing blobs
+ - clone: configure blobmaxbytes in created repos
+ - clone: support excluding large blobs
+ - fetch: support excluding large blobs
+ - fetch: refactor calculation of remote list
+ - fetch-pack: support excluding large blobs
+ - pack-objects: support --blob-max-bytes
+ - pack-objects: rename want_.* to ignore_.*
+ - gc: do not repack promisor packfiles
+ - rev-list: support termination at promisor objects
+ - sha1_file: support lazily fetching missing objects
+ - introduce fetch-object: fetch one promisor object
+ - index-pack: refactor writing of .keep files
+ - fsck: support promisor objects as CLI argument
+ - fsck: support referenced promisor objects
+ - fsck: support refs pointing to promisor objects
+ - fsck: introduce partialclone extension
 
- Lay out plans for weaning us off of SHA-1.
+ A journey for "git clone" and "git fetch" to become "lazier" by
+ depending more on its remote repository---this is the beginning of
+ it.
 
Will merge to 'next'.
Needs review.
 
 
-* ot/mru-on-list (2017-10-01) 1 commit
- - mru: use double-linked list from list.h
+* ma/lockfile-fixes (2017-10-07) 12 commits
+ - read_cache: roll back lock in `update_index_if_able()`
+ - read-cache: leave lock in right state in `write_locked_index()`
+ - read-cache: drop explicit `CLOSE_LOCK`-flag
+ - cache.h: document `write_locked_index()`
+ - apply: remove `newfd` from `struct apply_state`
+ - apply: move lockfile into `apply_state`
+ - cache-tree: simplify locking logic
+ - checkout-index: simplify locking logic
+ - tempfile: fix documentation on `delete_tempfile()`
+ - lockfile: fix documentation on `close_lock_file_gently()`
+ - treewide: prefer lockfiles on the stack
+ - sha1_file: do not leak `lock_file`
 
- The first step to getting rid of mru API and using the
- doubly-linked list API directly instead.
+ An earlier update made it possible to use an on-stack in-core
+ lockfile structure (as opposed to having to deliberately leak an
+ on-heap one).  Many codepaths have been updated to take advantage
+ of this new facility.
 
- Needs review.
- Outreachy.
+ Looking good.  Is this ready for 'next'?
 
 
-* rb/compat-poll-fix (2017-09-29) 1 commit
- - poll.c: always set revents, even if to zero
+* ot/mru-on-list (2017-10-01) 1 commit
+  (merged to 'next' on 2017-10-07 at e6ad4a16a2)
+ + mru: use double-linked list from list.h
 
- Backports a moral equivalent of 2015 fix to the poll emulation from
the upstream gnulib to fix occasional breakages on HPE NonStop.
+ The first step to getting rid of mru API and using the
doubly-linked list API directly instead.
 
Needs review.
Will cook in 'next'.
 
 
 * jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit
@@ -555,12 +553,16 @@ of the repositories listed at
  What's the doneness of this one?
 
 
-* ds/find-unique-abbrev-optim (2017-10-03) 5 commits
+* ds/find-unique-abbrev-optim (2017-10-09) 4 commits
  - sha1_name: minimize OID comparisons during disambiguation
  - sha1_name: parse less while finding common prefix
  - sha1_name: unroll len loop in find_unique_abbrev_r()
- - p0008-abbrev.sh: test find_unique_abbrev() perf
- - test-list-objects: list a subset of object ids
+ - p4211-line-log.sh: add log --online --raw --parents perf test
+
+ Optimize the code to find shortest unique prefix of object names.
+
+ Almost there.
+ cf. <20171009134933.vmba67adelqbkx4y@sigill.intra.peff.net>
 
 
 * cc/perf-run-config (2017-09-24) 9 commits
@@ -589,8 +591,11 @@ of the repositories listed at
  Waiting for review to conclude.
 
 
-* bp/fsmonitor (2017-10-04) 13 commits
- - fsmonitor: MINGW support for watchman integration
+* bp/fsmonitor (2017-10-05) 15 commits
+  (merged to 'next' on 2017-10-05 at 964a029d13)
+ + fsmonitor: preserve utf8 filenames in fsmonitor-watchman log
+ + fsmonitor: read entirety of watchman output
+ + fsmonitor: MINGW support for watchman integration
   (merged to 'next' on 2017-10-02 at cf0c67979c)
  + fsmonitor: add a performance test
  + fsmonitor: add a sample integration script for Watchman
@@ -608,6 +613,8 @@ of the repositories listed at
  We learned to talk to watchman to speed up "git status" and other
  operations that need to see which paths have been modified.
 
+ Will cook in 'next'.
+
 
 * bw/protocol-v1 (2017-10-04) 10 commits
  - ssh: introduce a 'simple' ssh variant
@@ -625,8 +632,14 @@ of the repositories listed at
  and demonstrated that it works with the older versions of Git
  without harming them.
 
+ Expecting a reroll.
+ cf. <20171003214206.GY19555@aiede.mtv.corp.google.com>
+ The tip one needs to clarify that it is not just '-o' but also '-p'
+ option in the documentation.  Other than that, the approach taken
+ by the series basically seems sane and well received.
+
 
-* pc/submodule-helper (2017-10-02) 3 commits
+* pc/submodule-helper (2017-10-07) 3 commits
  - submodule: port submodule subcommand 'status' from shell to C
  - submodule--helper: introduce for_each_listed_submodule()
  - submodule--helper: introduce get_submodule_displaypath()
@@ -635,7 +648,8 @@ of the repositories listed at
  Is this ready for 'next'?
 
 
-* bc/hash-algo (2017-08-20) 5 commits
+* bc/hash-algo (2017-10-04) 6 commits
+ - fixup! hash-algo: integrate hash algorithm support with repo setup
  - hash-algo: switch empty tree and blob lookups to use hash abstraction
  - hash-algo: integrate hash algorithm support with repo setup
  - hash-algo: add structure representing hash algorithm
@@ -690,23 +704,6 @@ of the repositories listed at
  cf. <f59c8256-716b-9305-2a4f-d4fe49f666ff@web.de>
 
 
-* jc/allow-lazy-cas (2017-07-06) 1 commit
- - push: disable lazy --force-with-lease by default
-
- Because "git push --force-with-lease[=<ref>]" that relies on the
- stability of remote-tracking branches is unsafe when something
- fetches into the repository behind user's back, it is now disabled
- by default.  A new configuration variable can be used to enable it
- by users who know what they are doing.  This would pave the way to
- possibly turn `--force` into `--force-with-lease`.
-
- Will discard.
- Independent from disabling the feature by default, this stirred up
- a discussion to replace the DWIM heuristics with a better one, which
- deserves to be its own topic.
- cf. <alpine.DEB.2.21.1.1707131435220.4193@virtualbox>
-
-
 * ex/deprecate-empty-pathspec-as-match-all (2017-06-23) 2 commits
   (merged to 'next' on 2017-08-14 at 24db08a6e8)
  + pathspec: die on empty strings as pathspec
@@ -724,7 +721,6 @@ of the repositories listed at
  As the draft RelNotes says, let's merge this to 'master' after
  this release cycle.
 
-
 --------------------------------------------------
 [Discarded]
 
@@ -742,3 +738,18 @@ of the repositories listed at
  one) until we come up with a different fix to the problem.
 
 
+* jc/allow-lazy-cas (2017-07-06) 1 commit
+ . push: disable lazy --force-with-lease by default
+
+ Because "git push --force-with-lease[=<ref>]" that relies on the
+ stability of remote-tracking branches is unsafe when something
+ fetches into the repository behind user's back, it is now disabled
+ by default.  A new configuration variable can be used to enable it
+ by users who know what they are doing.  This would pave the way to
+ possibly turn `--force` into `--force-with-lease`.
+
+ Will discard.
+ Independent from disabling the feature by default, this stirred up
+ a discussion to replace the DWIM heuristics with a better one, which
+ deserves to be its own topic.
+ cf. <alpine.DEB.2.21.1.1707131435220.4193@virtualbox>