]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2018/06 #07)
authorJunio C Hamano <gitster@pobox.com>
Thu, 28 Jun 2018 21:27:17 +0000 (14:27 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Jun 2018 21:27:17 +0000 (14:27 -0700)
whats-cooking.txt

index c8c4de3bed31d6d62a55287e288f3c2879309c2a..2fb2bcb86059eb64db407353c7ea36d650020acd 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jun 2018, #06; Mon, 25)
-X-master-at: ed843436dd4924c10669820cc73daf50f0b4dabd
-X-next-at: fe4b3013947290a493c4417c35793593612e592c
+Subject: What's cooking in git.git (Jun 2018, #07; Thu, 28)
+X-master-at: e3331758f12da22f4103eec7efe1b5304a9be5e9
+X-next-at: 9cd7c0d54aa2ac12712fd5611825c618efdaf1e0
 
-What's cooking in git.git (Jun 2018, #06; Mon, 25)
+What's cooking in git.git (Jun 2018, #07; Thu, 28)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -12,18 +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.
 
-Git 2.18 turned out to be an unusually large release in the recent
-history, with 900+ individual changes, compared to ~500 for a few
-releases before that.  Thanks, everybody who participated.
-
-The tip of 'next' hasn't been rewound yet, but I've already reverted
-merges of a few topics from there to give them a fresh restart.  
-
-I haven't annotated many topics still in 'pu' with short-term plans
-and my assessment on their done-ness.  Comments and review summaries
-to help deciding are appreciated.  I'd like to start accepting new
-topics only after getting the classification more-or-less right for
-the topics already in flight.
+The tip of 'next' has been rewound and it currently has only 4
+topics.  Quite a many topics are cooking in 'pu' and need to be
+sifted into good bins (for 'next') and the remainder.  Help is
+appreciated in that area ;-)
 
 You can find the changes described here in the integration branches
 of the repositories listed at
@@ -33,363 +25,243 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* ag/rebase-p (2018-06-01) 4 commits
-  (merged to 'next' on 2018-06-13 at dd6f8a51d7)
- + rebase: remove -p code from git-rebase--interactive.sh
- + rebase: use the new git-rebase--preserve-merges.sh
- + rebase: strip unused code in git-rebase--preserve-merges.sh
- + rebase: introduce a dedicated backend for --preserve-merges
- (this branch is used by ag/rebase-i-append-todo-help and ag/rebase-i-rewrite-todo.)
+* ab/refspec-init-fix (2018-06-11) 3 commits
+  (merged to 'next' on 2018-06-13 at 91d71d8435)
+ + refspec: initalize `refspec_item` in `valid_fetch_refspec()`
+ + refspec: add back a refspec_item_init() function
+ + refspec: s/refspec_item_init/&_or_die/g
 
- Separate "rebase -p" codepath out of "rebase -i" implementation to
- slim down the latter and make it easier to manage.
+ Make refspec parsing codepath more robust.
 
 
-* cc/tests-without-assuming-ref-files-backend (2018-06-04) 1 commit
-  (merged to 'next' on 2018-06-13 at 7e2f74431c)
- + t9104: kosherly remove remote refs
-
- Instead of mucking with filesystem directly, use plumbing commands
- update-ref etc. to manipulate the refs in the tests.
-
-
-* ds/commit-graph-lockfile-fix (2018-05-22) 1 commit
-  (merged to 'next' on 2018-05-24 at 3d12a02b0c)
- + commit-graph: fix UX issue when .lock file exists
- (this branch is used by ds/commit-graph-fsck; uses ds/generation-numbers.)
-
- Update to ds/generation-numbers topic.
-
-
-* ds/generation-numbers (2018-05-22) 11 commits
-  (merged to 'next' on 2018-05-24 at 56fc38a1b6)
- + commit-graph.txt: update design document
- + merge: check config before loading commits
- + commit: use generation number in remove_redundant()
- + commit: add short-circuit to paint_down_to_common()
- + commit: use generation numbers for in_merge_bases()
- + ref-filter: use generation number for --contains
- + commit-graph: always load commit-graph information
- + commit: use generations in paint_down_to_common()
- + commit-graph: compute generation numbers
- + commit: add generation number to struct commit
- + ref-filter: fix outdated comment on in_commit_list
- (this branch is used by ds/commit-graph-fsck and ds/commit-graph-lockfile-fix.)
-
- A recently added "commit-graph" datafile has learned to store
- pre-computed generation numbers to speed up the decisions to stop
- history traversal.
-
-
-* en/merge-recursive-tests (2018-05-28) 5 commits
-  (merged to 'next' on 2018-06-01 at 8490b560b4)
- + t6036: prefer test_when_finished to manual cleanup in following test
- + t6036, t6042: prefer test_cmp to sequences of test
- + t6036, t6042: prefer test_path_is_file, test_path_is_missing
- + t6036, t6042: use test_line_count instead of wc -l
- + t6036, t6042: use test_create_repo to keep tests independent
-
- Clean up tests in t6xxx series about 'merge' command.
-
-
-* en/rename-directory-detection-reboot (2018-06-18) 1 commit
-  (merged to 'next' on 2018-06-18 at 95c454d3f4)
- + merge-recursive: use xstrdup() instead of fixed buffer
-
- Newly added codepath in merge-recursive had potential buffer
- overrun, which has been fixed.
+* as/safecrlf-quiet-fix (2018-06-11) 1 commit
+  (merged to 'next' on 2018-06-13 at b163674843)
+ + config.c: fix regression for core.safecrlf false
 
+ Fix for 2.17-era regression around `core.safecrlf`.
 
-* jk/show-index (2018-05-29) 2 commits
-  (merged to 'next' on 2018-06-01 at 4b3382d994)
- + show-index: update documentation for index v2
- + make show-index a builtin
-
- Modernize a less often used command.
-
-
-* ls/complete-remote-update-names (2018-06-01) 1 commit
-  (merged to 'next' on 2018-06-13 at 86b4d23278)
- + completion: complete remote names too
-
- "git remote update" can take both a single remote nickname and a
- nickname for remote groups, and the completion script (in contrib/)
- has been taught about it.
-
-
-* nd/commit-util-to-slab (2018-05-21) 15 commits
-  (merged to 'next' on 2018-05-24 at bb5643d75c)
- + commit.h: delete 'util' field in struct commit
- + merge: use commit-slab in merge remote desc instead of commit->util
- + log: use commit-slab in prepare_bases() instead of commit->util
- + show-branch: note about its object flags usage
- + show-branch: use commit-slab for commit-name instead of commit->util
- + name-rev: use commit-slab for rev-name instead of commit->util
- + bisect.c: use commit-slab for commit weight instead of commit->util
- + revision.c: use commit-slab for show_source
- + sequencer.c: use commit-slab to associate todo items to commits
- + sequencer.c: use commit-slab to mark seen commits
- + shallow.c: use commit-slab for commit depth instead of commit->util
- + describe: use commit-slab for commit names instead of commit->util
- + blame: use commit-slab for blame suspects instead of commit->util
- + commit-slab: support shared commit-slab
- + commit-slab.h: code split
-
- The in-core "commit" object had an all-purpose "void *util" field,
- which was tricky to use especially in library-ish part of the
- code.  All of the existing uses of the field has been migrated to a
- more dedicated "commit-slab" mechanism and the field is eliminated.
-
-
-* nd/complete-config-vars (2018-05-29) 13 commits
-  (merged to 'next' on 2018-06-13 at c2dd5546d0)
- + completion: complete general config vars in two steps
- + log-tree: allow to customize 'grafted' color
- + completion: support case-insensitive config vars
- + completion: keep other config var completion in camelCase
- + completion: drop the hard coded list of config vars
- + am: move advice.amWorkDir parsing back to advice.c
- + advice: keep config name in camelCase in advice_config[]
- + fsck: produce camelCase config key names
- + help: add --config to list all available config
- + fsck: factor out msg_id_info[] lazy initialization code
- + grep: keep all colors in an array
- + Add and use generic name->id mapping code for color slot parsing
- + Merge branch 'nd/command-list' into nd/complete-config-vars
-
- Continuing with the idea to programatically enumerate various
- pieces of data required for command line completion, teach the
- codebase to report the list of configuration variables
- subcommands care about to help complete them.
-
-
-* nd/diff-apply-ita (2018-05-29) 4 commits
-  (merged to 'next' on 2018-05-30 at f98728de81)
- + apply: add --intent-to-add
- + t2203: add a test about "diff HEAD" case
- + diff: turn --ita-invisible-in-index on by default
- + diff: ignore --ita-[in]visible-in-index when diffing worktree-to-tree
-
- "git diff" compares the index and the working tree.  For paths
- added with intent-to-add bit, the command shows the full contents
- of them as added, but the paths themselves were not marked as new
- files.  They are now shown as new by default.
-
- "git apply" learned the "--intent-to-add" option so that an
- otherwise working-tree-only application of a patch will add new
- paths to the index marked with the "intent-to-add" bit.
-
-
-* nd/reject-empty-shallow-request (2018-06-04) 1 commit
-  (merged to 'next' on 2018-06-13 at d6b6a1c3a7)
- + upload-pack: reject shallow requests that would return nothing
-
- "git fetch --shallow-since=<cutoff>" that specifies the cut-off
- point that is newer than the existing history used to end up
- grabbing the entire history.  Such a request now errors out.
-
-
-* pc/submodule-helper-foreach (2018-05-11) 4 commits
-  (merged to 'next' on 2018-05-22 at f22659ad46)
- + submodule: port submodule subcommand 'foreach' from shell to C
- + submodule foreach: document variable '$displaypath'
- + submodule foreach: document '$sm_path' instead of '$path'
- + submodule foreach: correct '$path' in nested submodules from a subdirectory
-
- The bulk of "git submodule foreach" has been rewritten in C.
-
-
-* sb/object-store-alloc (2018-05-16) 13 commits
-  (merged to 'next' on 2018-06-13 at 2868c2db9d)
- + alloc: allow arbitrary repositories for alloc functions
- + object: allow create_object to handle arbitrary repositories
- + object: allow grow_object_hash to handle arbitrary repositories
- + alloc: add repository argument to alloc_commit_index
- + alloc: add repository argument to alloc_report
- + alloc: add repository argument to alloc_object_node
- + alloc: add repository argument to alloc_tag_node
- + alloc: add repository argument to alloc_commit_node
- + alloc: add repository argument to alloc_tree_node
- + alloc: add repository argument to alloc_blob_node
- + object: add repository argument to grow_object_hash
- + object: add repository argument to create_object
- + repository: introduce parsed objects field
- (this branch is used by sb/object-store-grafts.)
-
- The conversion to pass "the_repository" and then "a_repository"
- throughout the object access API continues.
 
+* jc/clean-after-sanity-tests (2018-06-15) 1 commit
+  (merged to 'next' on 2018-06-22 at 2df77b8af9)
+ + tests: clean after SANITY tests
 
-* sb/plug-misc-leaks (2018-06-04) 5 commits
-  (merged to 'next' on 2018-06-13 at bf68cabe28)
- + SQUASH: tentatively cast const-ness away when calling free()
- + sequencer.c: plug mem leak in git_sequencer_config
-  (merged to 'next' on 2018-06-04 at fbefac1c7a)
- + sequencer.c: plug leaks in do_pick_commit
- + submodule--helper: plug mem leak in print_default_remote
- + refs/packed-backend.c: close fd of empty file
+ test cleanup.
 
- Misc leak plugging.
 
+* jh/partial-clone (2018-06-12) 1 commit
+  (merged to 'next' on 2018-06-13 at 818f864b0c)
+ + list-objects: check if filter is NULL before using
 
-* sg/update-ref-stdin-cleanup (2018-06-04) 1 commit
-  (merged to 'next' on 2018-06-13 at 2b9924760d)
- + update-ref --stdin: use skip_prefix()
+ The recent addition of "partial clone" experimental feature kicked
+ in when it shouldn't, namely, when there is no partial-clone filter
+ defined even if extensions.partialclone is set.
 
- Code cleanup.
+
+* jk/fetch-all-peeled-fix (2018-06-13) 2 commits
+  (merged to 'next' on 2018-06-13 at 1333bb9d90)
+ + fetch-pack: test explicitly that --all can fetch tag references pointing to non-commits
+ + fetch-pack: don't try to fetch peel values with --all
+
+ "git fetch-pack --all" used to unnecessarily fail upon seeing an
+ annotated tag that points at an object other than a commit.
+
+
+* ms/send-pack-honor-config (2018-06-12) 1 commit
+  (merged to 'next' on 2018-06-13 at e2cd933715)
+ + builtin/send-pack: populate the default configs
+
+ "git send-pack --signed" (hence "git push --signed" over the http
+ transport) did not read user ident from the config mechanism to
+ determine whom to sign the push certificate as, which has been
+ corrected.
+
+
+* nd/completion-negation (2018-06-11) 3 commits
+  (merged to 'next' on 2018-06-19 at a3be59b450)
+ + completion: collapse extra --no-.. options
+ + completion: suppress some -no- options
+ + parse-options: option to let --git-completion-helper show negative form
+
+ Continuing with the idea to programmatically enumerate various
+ pieces of data required for command line completion, the codebase
+ has been taught to enumerate options prefixed with "--no-" to
+ negate them.
+
+
+* pw/add-p-recount (2018-06-11) 1 commit
+  (merged to 'next' on 2018-06-19 at 1880ecc3f1)
+ + add -p: fix counting empty context lines in edited patches
+
+ When user edits the patch in "git add -p" and the user's editor is
+ set to strip trailing whitespaces indiscriminately, an empty line
+ that is unchanged in the patch would become completely empty
+ (instead of a line with a sole SP on it).  The code introduced in
+ Git 2.17 timeframe failed to parse such a patch, but now it learned
+ to notice the situation and cope with it.
+
+
+* sb/fix-fetching-moved-submodules (2018-06-14) 2 commits
+  (merged to 'next' on 2018-06-22 at 16039dc62a)
+ + t5526: test recursive submodules when fetching moved submodules
+ + submodule: fix NULL correctness in renamed broken submodules
+
+ The code to try seeing if a fetch is necessary in a submodule
+ during a fetch with --recurse-submodules got confused when the path
+ to the submodule was changed in the range of commits in the
+ superproject, sometimes showing "(null)".  This has been corrected.
+
+
+* sg/gpg-tests-fix (2018-06-11) 2 commits
+  (merged to 'next' on 2018-06-13 at f3a05f1c41)
+ + tests: make forging GPG signed commits and tags more robust
+ + t7510-signed-commit: use 'test_must_fail'
+
+ Some flaky tests have been fixed.
+
+
+* tz/cred-netrc-cleanup (2018-06-18) 4 commits
+  (merged to 'next' on 2018-06-22 at a471dd714c)
+ + git-credential-netrc: make "all" default target of Makefile
+ + git-credential-netrc: fix exit status when tests fail
+ + git-credential-netrc: use in-tree Git.pm for tests
+ + git-credential-netrc: minor whitespace cleanup in test script
+
+ Build and test procedure for netrc credential helper (in contrib/)
+ has been updated.
 
 --------------------------------------------------
 [New Topics]
 
-* ld/p423 (2018-06-19) 6 commits
- - git-p4: python3: fix octal constants
- - git-p4: python3: use print() function
- - git-p4: python3: basestring workaround
- - git-p4: python3: remove backticks
- - git-p4: python3: replace dict.has_key(k) with "k in dict"
- - git-p4: python3: replace <> with !=
+* ao/config-from-gitmodules (2018-06-26) 6 commits
+ - submodule-config: reuse config_from_gitmodules in repo_read_gitmodules
+ - submodule-config: pass repository as argument to config_from_gitmodules
+ - submodule-config: make 'config_from_gitmodules' private
+ - submodule-config: add helper to get 'update-clone' config from .gitmodules
+ - submodule-config: add helper function to get 'fetch' config from .gitmodules
+ - config: move config_from_gitmodules to submodule-config.c
 
- Code preparation to make "git p4" closer to be usable with Python 3.
+ Tighten the API to make it harder to misuse in-tree .gitmodules
+ file, even though it shares the same syntax with configuration
+ files, to read random configuration items from it.
 
  Will merge to 'next'.
 
 
-* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit
- - sequencer: do not squash 'reword' commits when we hit conflicts
+* as/sequencer-customizable-comment-char (2018-06-28) 1 commit
+ - sequencer: use configured comment character
 
- Bugfix for "rebase -i" corner case regression.
+ Honor core.commentchar when preparing the list of commits to replay
+ in "rebase -i".
+
+* dj/runtime-prefix (2018-06-26) 1 commit
+ - Makefile: tweak sed invocation
+
+ POSIX portability fix in Makefile to fix a glitch introduced a few
+ releases ago.
 
  Will merge to 'next'.
 
 
-* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit
- - format-patch: clear UNINTERESTING flag before prepare_bases
+* ds/commit-graph (2018-06-28) 1 commit
+ - commit-graph: fix documentation inconsistencies
 
- Recently added "--base" option to "git format-patch" command did
- not correctly generate prereq patch ids.
+ Docfix.
 
  Will merge to 'next'.
 
 
-* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit
- - docs: link to gitsubmodules
+* en/rebase-i-microfixes (2018-06-27) 3 commits
+ - git-rebase--merge: modernize "git-$cmd" to "git $cmd"
+ - Fix use of strategy options with interactive rebases
+ - t3418: add testcase showing problems with rebase -i and strategy options
+
+ Will merge to 'next'.
 
- Docfix.
+
+* js/enhanced-version-info (2018-06-28) 1 commit
+ - Makefile: fix the "built from commit" code
+
+ Build fix.
 
  Will merge to 'next'.
 
 
-* bw/ref-in-want (2018-06-21) 8 commits
- - fetch-pack: implement ref-in-want
- - fetch-pack: put shallow info in output parameter
- - fetch: refactor to make function args narrower
- - fetch: refactor fetch_refs into two functions
- - fetch: refactor the population of peer ref OIDs
- - upload-pack: test negotiation with changing repository
- - upload-pack: implement ref-in-want
- - test-pkt-line: add unpack-sideband subcommand
+* js/rebase-recreate-merge (2018-06-27) 1 commit
+ - rebase: fix documentation formatting
 
+ Docfix.
 
-* en/rebase-consistency (2018-06-21) 7 commits
- - git-rebase: make --allow-empty-message the default
- - git-rebase.txt: address confusion between --no-ff vs --force-rebase
- - git-rebase.txt: document behavioral inconsistencies between modes
- - git-rebase: error out when incompatible options passed
- - t3422: new testcases for checking when incompatible options passed
- - git-rebase.sh: update help messages a bit
- - git-rebase.txt: document incompatible options
+ Will merge to 'next'.
 
 
-* jt/remove-pack-bitmap-global (2018-06-21) 2 commits
- - pack-bitmap: add free function
- - pack-bitmap: remove bitmap_git global variable
+* jt/connectivity-check-after-unshallow (2018-06-27) 1 commit
+ - fetch: when deepening, check connectivity fully
 
+ "git fetch" failed to correctly validate the set of objects it
+ received when making a shallow history deeper, which has been
+ corrected.
 
-* sb/submodule-move-head-error-msg (2018-06-25) 1 commit
- - submodule.c: report the submodule that an error occurs in
 
- Needs a reroll.
- cf. <20180622081713.5360-1-szeder.dev@gmail.com>
+* jt/fetch-nego-tip (2018-06-27) 1 commit
+ - fetch-pack: support negotiation tip whitelist
+ (this branch uses jt/fetch-pack-negotiator.)
 
+ "git fetch" learned a new option "--negotiation-tip" to limit the
+ set of commits it tells the other end as "have", to reduce wasted
+ bandwidth and cycles, which would be helpful when the receiving
+ repository has a lot of refs that have little to do with the
+ history at the remote it is fetching from.
 
-* bw/protocol-v2 (2018-06-22) 1 commit
- - protocol-v2 doc: put HTTP headers after request
 
- Doc fix.
+* mb/filter-branch-optim (2018-06-26) 1 commit
+ - filter-branch: skip commits present on --state-branch
+
+ "git filter-branch" when used with the "--state-branch" option
+ still attempted to rewrite the commits whose filtered result is
+ known from the previous attempt (which is recorded on the state
+ branch); the command has been corrected not to waste cycles doing
+ so.
 
  Will merge to 'next'.
 
 
-* jk/branch-l-1-repurpose (2018-06-22) 1 commit
- - branch: make "-l" a synonym for "--list"
- (this branch uses jk/branch-l-0-deprecation.)
+* ms/core-icase-doc (2018-06-28) 1 commit
+ - Documentation: declare "core.ignoreCase" as internal variable
 
- Updated plan to repurpose the "-l" option to "git branch".
+ Clarify that setting core.ignoreCase to deviate from reality would
+ not turn a case-incapable filesystem into a case-capable one.
 
- Will hold in 'pu' until jk/branch-l-0-deprecation progresses sufficiently.
+ Will merge to 'next'.
 
 
-* vs/typofixes (2018-06-22) 1 commit
- - Documentation: spelling and grammar fixes
+* rj/submodule-fsck-skip (2018-06-27) 1 commit
+ - fsck: check skiplist for object in fsck_blob()
 
- Doc fix.
+ "fsck.skipList" did not prevent a blob object listed there from
+ being inspected for is contents (e.g. we recently started to
+ inspect the contents of ".gitmodules" for certain malicious
+ patterns), which has been corrected.
 
  Will merge to 'next'.
 
 
-* cc/remote-odb (2018-06-25) 9 commits
- - Documentation/config: add odb.<name>.promisorRemote
- - t0410: test fetching from many promisor remotes
- - Use odb.origin.partialclonefilter instead of core.partialclonefilter
- - Use remote_odb_get_direct() and has_remote_odb()
- - remote-odb: add remote_odb_reinit()
- - remote-odb: implement remote_odb_get_many_direct()
- - remote-odb: implement remote_odb_get_direct()
- - Add initial remote odb support
- - fetch-object: make functions return an error code
+* tb/grep-only-matching (2018-06-27) 3 commits
+ - SQUASH??? emerg compilation fix
+ - grep.c: teach 'git grep --only-matching'
+ - grep.c: extract show_line_header()
+ (this branch uses tb/grep-column.)
 
+ "git grep" learned the "--only-matching" option.
 
-* ds/multi-pack-index (2018-06-25) 24 commits
- - midx: clear midx on repack
- - packfile: skip loading index if in multi-pack-index
- - midx: prevent duplicate packfile loads
- - midx: use midx in approximate_object_count
- - midx: use existing midx when writing new one
- - midx: use midx in abbreviation calculations
- - midx: read objects from multi-pack-index
- - midx: prepare midxed_git struct
- - config: create core.multiPackIndex setting
- - midx: write object offsets
- - midx: write object id fanout chunk
- - midx: write object ids in a chunk
- - midx: sort and deduplicate objects from packfiles
- - midx: read pack names into array
- - multi-pack-index: write pack names in chunk
- - multi-pack-index: read packfile list
- - packfile: generalize pack directory list
- - multi-pack-index: expand test data
- - multi-pack-index: load into memory
- - midx: write header information to lockfile
- - multi-pack-index: add 'write' verb
- - multi-pack-index: add builtin
- - multi-pack-index: add format details
- - multi-pack-index: add design document
 
+* tz/exclude-doc-smallfixes (2018-06-27) 2 commits
+ - dir.c: fix typos in core.excludesfile comment
+ - gitignore.txt: clarify default core.excludesfile path
 
-* nd/use-the-index-compat-less (2018-06-25) 13 commits
- - wt-status.c: stop using index compat macros
- - sha1-name.c: stop using index compat macros
- - sequencer.c: stop using index compat macros
- - revision.c: stop using index compat macros
- - rerere.c: stop using index compat macros
- - merge.c: stop using index compat macros
- - merge-recursive.c: stop using index compat macros
- - entry.c: stop using index compat macros
- - diff.c: stop using index compat macros
- - diff-lib.c: stop using index compat macros
- - check-racy.c: stop using index compat macros
- - blame.c: stop using index compat macros
- - apply.c: stop using index compat macros
+ Doc updates.
+
+ Will merge to 'next'.
 
 --------------------------------------------------
 [Stalled]
@@ -518,6 +390,185 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
+* ld/p423 (2018-06-19) 6 commits
+ - git-p4: python3: fix octal constants
+ - git-p4: python3: use print() function
+ - git-p4: python3: basestring workaround
+ - git-p4: python3: remove backticks
+ - git-p4: python3: replace dict.has_key(k) with "k in dict"
+ - git-p4: python3: replace <> with !=
+
+ Code preparation to make "git p4" closer to be usable with Python 3.
+
+ Will merge to 'next'.
+
+
+* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit
+ - sequencer: do not squash 'reword' commits when we hit conflicts
+
+ Bugfix for "rebase -i" corner case regression.
+
+ Will merge to 'next'.
+
+
+* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit
+ - format-patch: clear UNINTERESTING flag before prepare_bases
+
+ Recently added "--base" option to "git format-patch" command did
+ not correctly generate prereq patch ids.
+
+ Will merge to 'next'.
+
+
+* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit
+ - docs: link to gitsubmodules
+
+ Docfix.
+
+ Will merge to 'next'.
+
+
+* bw/ref-in-want (2018-06-28) 8 commits
+ - fetch-pack: implement ref-in-want
+ - fetch-pack: put shallow info in output parameter
+ - fetch: refactor to make function args narrower
+ - fetch: refactor fetch_refs into two functions
+ - fetch: refactor the population of peer ref OIDs
+ - upload-pack: test negotiation with changing repository
+ - upload-pack: implement ref-in-want
+ - test-pkt-line: add unpack-sideband subcommand
+
+ Protocol v2 has been updated to allow slightly out-of-sync set of
+ servers to work together to serve a single client, which would be
+ useful with load-balanced servers that talk smart HTTP transport.
+
+
+* en/rebase-consistency (2018-06-27) 9 commits
+ - git-rebase: make --allow-empty-message the default
+ - t3401: add directory rename testcases for rebase and am
+ - git-rebase.txt: document behavioral differences between modes
+ - directory-rename-detection.txt: technical docs on abilities and limitations
+ - git-rebase.txt: address confusion between --no-ff vs --force-rebase
+ - git-rebase: error out when incompatible options passed
+ - t3422: new testcases for checking when incompatible options passed
+ - git-rebase.sh: update help messages a bit
+ - git-rebase.txt: document incompatible options
+
+ "git rebase" behaved slightly differently depending on which one of
+ the three backends gets used; this has been documented and an
+ effort to make them more uniform has begun.
+
+
+* jt/remove-pack-bitmap-global (2018-06-21) 2 commits
+ - pack-bitmap: add free function
+ - pack-bitmap: remove bitmap_git global variable
+
+ The effort to move globals to per-repository in-core structure
+ continues.
+
+
+* sb/submodule-move-head-error-msg (2018-06-25) 1 commit
+ - submodule.c: report the submodule that an error occurs in
+
+ Needs a reroll.
+ cf. <20180622081713.5360-1-szeder.dev@gmail.com>
+
+
+* bw/protocol-v2 (2018-06-22) 1 commit
+ - protocol-v2 doc: put HTTP headers after request
+
+ Doc fix.
+
+ Will merge to 'next'.
+
+
+* jk/branch-l-1-repurpose (2018-06-22) 1 commit
+ - branch: make "-l" a synonym for "--list"
+ (this branch uses jk/branch-l-0-deprecation.)
+
+ Updated plan to repurpose the "-l" option to "git branch".
+
+ Will hold in 'pu' until jk/branch-l-0-deprecation progresses sufficiently.
+
+
+* vs/typofixes (2018-06-22) 1 commit
+ - Documentation: spelling and grammar fixes
+
+ Doc fix.
+
+ Will merge to 'next'.
+
+
+* cc/remote-odb (2018-06-25) 9 commits
+ . Documentation/config: add odb.<name>.promisorRemote
+ . t0410: test fetching from many promisor remotes
+ . Use odb.origin.partialclonefilter instead of core.partialclonefilter
+ . Use remote_odb_get_direct() and has_remote_odb()
+ . remote-odb: add remote_odb_reinit()
+ . remote-odb: implement remote_odb_get_many_direct()
+ . remote-odb: implement remote_odb_get_direct()
+ . Add initial remote odb support
+ . fetch-object: make functions return an error code
+
+ Needs a reroll.
+
+
+* ds/multi-pack-index (2018-06-25) 24 commits
+ - midx: clear midx on repack
+ - packfile: skip loading index if in multi-pack-index
+ - midx: prevent duplicate packfile loads
+ - midx: use midx in approximate_object_count
+ - midx: use existing midx when writing new one
+ - midx: use midx in abbreviation calculations
+ - midx: read objects from multi-pack-index
+ - midx: prepare midxed_git struct
+ - config: create core.multiPackIndex setting
+ - midx: write object offsets
+ - midx: write object id fanout chunk
+ - midx: write object ids in a chunk
+ - midx: sort and deduplicate objects from packfiles
+ - midx: read pack names into array
+ - multi-pack-index: write pack names in chunk
+ - multi-pack-index: read packfile list
+ - packfile: generalize pack directory list
+ - multi-pack-index: expand test data
+ - multi-pack-index: load into memory
+ - midx: write header information to lockfile
+ - multi-pack-index: add 'write' verb
+ - multi-pack-index: add builtin
+ - multi-pack-index: add format details
+ - multi-pack-index: add design document
+
+ When there are too many packfiles in a repository (which is not
+ recommended), looking up an object in these would require
+ consulting many pack .idx files; a new mechanism to have a single
+ file that consolidates all of these .idx files is introduced.
+
+
+* nd/use-the-index-compat-less (2018-06-25) 13 commits
+ - wt-status.c: stop using index compat macros
+ - sha1-name.c: stop using index compat macros
+ - sequencer.c: stop using index compat macros
+ - revision.c: stop using index compat macros
+ - rerere.c: stop using index compat macros
+ - merge.c: stop using index compat macros
+ - merge-recursive.c: stop using index compat macros
+ - entry.c: stop using index compat macros
+ - diff.c: stop using index compat macros
+ - diff-lib.c: stop using index compat macros
+ - check-racy.c: stop using index compat macros
+ - blame.c: stop using index compat macros
+ - apply.c: stop using index compat macros
+
+ Use of many convenience functions that operate on the_index
+ "primary in-core index instance" have been rewritten to explicitly
+ call the coutnerpart functions that take arbitrary index_state and
+ pass the_index.
+
+ I'd say that alone is a useless code churn, but people seem to be
+ excited about the change, so it is queued here.
+
+
 * tb/grep-column (2018-06-22) 7 commits
  - contrib/git-jump/git-jump: jump to exact location
  - grep.c: add configuration variables to show matched option
@@ -526,22 +577,12 @@ of the repositories listed at
  - grep.[ch]: extend grep_opt to allow showing matched column
  - grep.c: expose {,inverted} match column in match_line()
  - Documentation/config.txt: camel-case lineNumber for consistency
+ (this branch is used by tb/grep-only-matching.)
 
  "git grep" learned the "--column" option that gives not just the
  line number but the column number of the hit.
 
-
-* tz/cred-netrc-cleanup (2018-06-18) 4 commits
-  (merged to 'next' on 2018-06-22 at a471dd714c)
- + git-credential-netrc: make "all" default target of Makefile
- + git-credential-netrc: fix exit status when tests fail
- + git-credential-netrc: use in-tree Git.pm for tests
- + git-credential-netrc: minor whitespace cleanup in test script
-
- Build and test procedure for netrc credential helper (in contrib/)
- has been updated.
-
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
 * jt/fetch-pack-negotiator (2018-06-15) 7 commits
@@ -552,10 +593,13 @@ of the repositories listed at
  - fetch-pack: directly end negotiation if ACK ready
  - fetch-pack: clear marks before re-marking
  - fetch-pack: split up everything_local()
+ (this branch is used by jt/fetch-nego-tip.)
 
  Code restructuring and a small fix to transport protocol v2 during
  fetching.
 
+ Is this ready for 'next'?
+
 
 * ag/rebase-i-append-todo-help (2018-06-14) 2 commits
  - rebase--interactive: rewrite append_todo_help() in C
@@ -564,6 +608,9 @@ of the repositories listed at
 
  Stepwise rewriting of the machinery of "rebase -i" into C continues.
 
+ Needs a reroll.
+ cf. <nycvar.QRO.7.76.6.1806261125330.21419@tvgsbejvaqbjf.bet>
+
 
 * ag/rebase-i-rewrite-todo (2018-06-15) 3 commits
  - rebase--interactive: rewrite the edit-todo functionality in C
@@ -574,25 +621,14 @@ of the repositories listed at
  Stepwise rewriting of the machinery of "rebase -i" into C continues.
 
 
-* sb/fix-fetching-moved-submodules (2018-06-14) 2 commits
-  (merged to 'next' on 2018-06-22 at 16039dc62a)
- + t5526: test recursive submodules when fetching moved submodules
- + submodule: fix NULL correctness in renamed broken submodules
-
- The code to try seeing if a fetch is necessary in a submodule
- during a fetch with --recurse-submodules got confused when the path
- to the submodule was changed in the range of commits in the
- superproject, sometimes showing "(null)".  This has been corrected.
-
- Will merge to 'master'.
-
-
 * sb/submodule-core-worktree (2018-06-19) 3 commits
-  (merged to 'next' on 2018-06-22 at 2f7f263b30)
+  (merged to 'next' on 2018-06-28 at 96e1a8dbd1)
  + submodule deinit: unset core.worktree
  + submodule: ensure core.worktree is set after update
  + submodule: unset core.worktree if no working tree is present
 
+ Originally merged to 'next' on 2018-06-22
+
  "git submodule" did not correctly adjust core.worktree setting that
  indicates whether/where a submodule repository has its associated
  working tree across various state transitions, which has been
@@ -602,7 +638,7 @@ of the repositories listed at
 
 
 * ds/ewah-cleanup (2018-06-21) 10 commits
-  (merged to 'next' on 2018-06-22 at ad0ab374a1)
+  (merged to 'next' on 2018-06-28 at 9cd7c0d54a)
  + ewah: delete unused 'rlwit_discharge_empty()'
  + ewah: drop ewah_serialize_native function
  + ewah: drop ewah_deserialize function
@@ -614,21 +650,14 @@ of the repositories listed at
  + ewah/bitmap.c: delete unused 'bitmap_each_bit()'
  + ewah/bitmap.c: delete unused 'bitmap_clear()'
 
+ Originally merged to 'next' on 2018-06-22
+
  Remove unused function definitions and declarations from ewah
  bitmap subsystem.
 
  Will merge to 'master'.
 
 
-* jc/clean-after-sanity-tests (2018-06-15) 1 commit
-  (merged to 'next' on 2018-06-22 at 2df77b8af9)
- + tests: clean after SANITY tests
-
- test cleanup.
-
- Will merge to 'master'.
-
-
 * is/parsing-line-range (2018-06-15) 2 commits
  - log: prevent error if line range ends past end of file
  - blame: prevent error if range ends past end of file
@@ -637,49 +666,8 @@ of the repositories listed at
  take has been tweaked.
 
 
-* ab/refspec-init-fix (2018-06-11) 3 commits
-  (merged to 'next' on 2018-06-13 at 91d71d8435)
- + refspec: initalize `refspec_item` in `valid_fetch_refspec()`
- + refspec: add back a refspec_item_init() function
- + refspec: s/refspec_item_init/&_or_die/g
-
- Make refspec parsing codepath more robust.
-
- Will merge to 'master'.
-
-
-* as/safecrlf-quiet-fix (2018-06-11) 1 commit
-  (merged to 'next' on 2018-06-13 at b163674843)
- + config.c: fix regression for core.safecrlf false
-
- Fix for 2.17-era regression.
-
- Will merge to 'master'.
-
-
-* sg/gpg-tests-fix (2018-06-11) 2 commits
-  (merged to 'next' on 2018-06-13 at f3a05f1c41)
- + tests: make forging GPG signed commits and tags more robust
- + t7510-signed-commit: use 'test_must_fail'
-
- Some flaky tests have been fixed.
-
- Will merge to 'master'.
-
-
-* jk/fetch-all-peeled-fix (2018-06-13) 2 commits
-  (merged to 'next' on 2018-06-13 at 1333bb9d90)
- + fetch-pack: test explicitly that --all can fetch tag references pointing to non-commits
- + fetch-pack: don't try to fetch peel values with --all
-
- "git fetch-pack --all" used to unnecessarily fail upon seeing an
- annotated tag that points at an object other than a commit.
-
- Will merge to 'master'.
-
-
 * en/merge-recursive-cleanup (2018-06-12) 6 commits
-  (merged to 'next' on 2018-06-19 at d175cea416)
+  (merged to 'next' on 2018-06-28 at 1a3646eb7d)
  + merge-recursive: add pointer about unduly complex looking code
  + merge-recursive: rename conflict_rename_*() family of functions
  + merge-recursive: clarify the rename_dir/RENAME_DIR meaning
@@ -687,30 +675,9 @@ of the repositories listed at
  + merge-recursive: fix numerous argument alignment issues
  + merge-recursive: fix miscellaneous grammar error in comment
 
- Code cleanup.
-
- Will merge to 'master'.
-
-
-* jh/partial-clone (2018-06-12) 1 commit
-  (merged to 'next' on 2018-06-13 at 818f864b0c)
- + list-objects: check if filter is NULL before using
-
- The recent addition of "partial clone" experimental feature kicked
- in when it shouldn't, namely, when there is no partial-clone filter
- defined even if extensions.partialclone is set.
-
- Will merge to 'master'.
-
+ Originally merged to 'next' on 2018-06-19
 
-* ms/send-pack-honor-config (2018-06-12) 1 commit
-  (merged to 'next' on 2018-06-13 at e2cd933715)
- + builtin/send-pack: populate the default configs
-
- "git send-pack --signed" (hence "git push --signed" over the http
- transport) did not read user ident from the config mechanism to
- determine whom to sign the push certificate as, which has been
- corrected.
+ Code cleanup.
 
  Will merge to 'master'.
 
@@ -726,24 +693,11 @@ of the repositories listed at
  - checkout tests: index should be clean after dwim checkout
 
 
-* pw/add-p-recount (2018-06-11) 1 commit
-  (merged to 'next' on 2018-06-19 at 1880ecc3f1)
- + add -p: fix counting empty context lines in edited patches
-
- When user edits the patch in "git add -p" and the user's editor is
- set to strip trailing whitespaces indiscriminately, an empty line
- that is unchanged in the patch would become completely empty
- (instead of a line with a sole SP on it).  The code introduced in
- Git 2.17 timeframe failed to parse such a patch, but now it learned
- to notice the situation and cope with it.
-
- Will merge to 'master'.
-
-
-* ds/commit-graph-fsck (2018-05-29) 20 commits
+* ds/commit-graph-fsck (2018-06-27) 22 commits
  - commit-graph: update design document
  - gc: automatically write commit-graph files
  - commit-graph: add '--reachable' option
+ - commit-graph: use string-list API for input
  - fsck: verify commit-graph
  - commit-graph: verify contents match checksum
  - commit-graph: test for corrupted octopus edge
@@ -761,9 +715,12 @@ of the repositories listed at
  - commit-graph: parse commit from chosen graph
  - commit-graph: fix GRAPH_MIN_SIZE
  - commit-graph: UNLEAK before die()
+ - t5318-commit-graph.sh: use core.commitGraph
 
- Expecting a reroll.
- cf. <ba3b8e06-b5e1-99a1-0fe4-ff97d6da8f15@gmail.com>
+ "git fsck" learns to make sure the optional commit-graph file is in
+ a sane state.
+
+ Is this ready for 'next'?
 
 
 * ma/wrapped-info (2018-05-28) 2 commits
@@ -773,44 +730,27 @@ of the repositories listed at
  An attempt to help making multi-line messages fed to warning(),
  error(), and friends more easily translatable.
 
- Waiting for the discussion to settle.
+ Will discard and wait for a cleaned-up rewrite.
  cf. <20180529213957.GF7964@sigill.intra.peff.net>
 
 
-* nd/completion-negation (2018-06-11) 3 commits
-  (merged to 'next' on 2018-06-19 at a3be59b450)
- + completion: collapse extra --no-.. options
- + completion: suppress some -no- options
- + parse-options: option to let --git-completion-helper show negative form
-
- Continuing with the idea to programatically enumerate various
- pieces of data required for command line completion, the codebase
- has been taught to enumerate options prefixed with "--no-" to
- negate them.
-
- Will merge to 'master'.
-
-
-* jm/cache-entry-from-mem-pool (2018-06-21) 8 commits
+* jm/cache-entry-from-mem-pool (2018-06-28) 8 commits
  - block alloc: add validations around cache_entry lifecyle
- - block alloc: allocate cache entries from mem_pool
+ - block alloc: allocate cache entries from mem-pool
  - mem-pool: fill out functionality
- - mem-pool: add lifecycle management functions
- - mem-pool: tweak math on mp_block allocation size
+ - mem-pool: add life cycle management functions
  - mem-pool: only search head block for available space
  - block alloc: add lifecycle APIs for cache_entry structs
+ - read-cache: make_cache_entry should take object_id struct
  - read-cache: teach refresh_cache_entry() to take istate
 
  For a large tree, the index needs to hold many cache entries
  allocated on heap.  These cache entries are now allocated out of a
  dedicated memory pool to amortize malloc(3) overhead.
 
- Kicked back to 'pu' with a rerolled one.
- cf. <20180620201557.77155-1-jamill@microsoft.com>
-
 
 * sb/object-store-grafts (2018-05-18) 19 commits
-  (merged to 'next' on 2018-06-22 at 386a6cc66a)
+  (merged to 'next' on 2018-06-28 at 02f70d6302)
  + commit: allow lookup_commit_graft to handle arbitrary repositories
  + commit: allow prepare_commit_graft to handle arbitrary repositories
  + shallow: migrate shallow information into the object parser
@@ -831,6 +771,8 @@ of the repositories listed at
  + object: move grafts to object parser
  + object-store: move object access functions to object-store.h
 
+ Originally merged to 'next' on 2018-06-22
+
  The conversion to pass "the_repository" and then "a_repository"
  throughout the object access API continues.