To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jun 2018, #07; Thu, 28)
+Subject: What's cooking in git.git (Jul 2018, #01; Wed, 11)
X-master-at: e3331758f12da22f4103eec7efe1b5304a9be5e9
-X-next-at: 9cd7c0d54aa2ac12712fd5611825c618efdaf1e0
+X-next-at: 985f88cf7ec28de3542ce98ac5b660da6e59caf0
-What's cooking in git.git (Jun 2018, #07; Thu, 28)
+What's cooking in git.git (Jul 2018, #01; Wed, 11)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
-[Graduated to "master"]
+[New Topics]
-* 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
+* ag/rebase-i-in-c (2018-07-10) 13 commits
+ - rebase -i: rewrite the rest of init_revisions_and_shortrevisions in C
+ - rebase -i: implement the logic to initialize the variable $revision in C
+ - rebase--interactive: remove unused modes and functions
+ - rebase--interactive: rewrite complete_action() in C
+ - sequencer: change the way skip_unnecessary_picks() returns its result
+ - sequencer: refactor append_todo_help() to write its message to a buffer
+ - rebase -i: rewrite checkout_onto() in C
+ - rebase -i: rewrite setup_reflog_action() in C
+ - sequencer: add a new function to silence a command, except if it fails
+ - rebase-interactive: rewrite the edit-todo functionality in C
+ - editor: add a function to launch the sequence editor
+ - rebase--interactive: rewrite append_todo_help() in C
+ - sequencer: make two functions and an enum from sequencer.c public
- Make refspec parsing codepath more robust.
+ Piecemeal rewrite of the remaining "rebase -i" machinery in C.
+ Expecting a reroll.
-* 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
+ The early parts of the series seem solidifying; perhaps with a
+ reroll or two, they become 'next' material?
- Fix for 2.17-era regression around `core.safecrlf`.
+* en/apply-comment-fix (2018-06-28) 1 commit
+ - apply: fix grammar error in comment
-* jc/clean-after-sanity-tests (2018-06-15) 1 commit
- (merged to 'next' on 2018-06-22 at 2df77b8af9)
- + tests: clean after SANITY tests
+ Will merge to 'next'.
- test cleanup.
+* en/t5407-rebase-m-fix (2018-06-28) 1 commit
+ - t5407: fix test to cover intended arguments
-* 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
+ Will merge to 'next'.
- 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.
+* sb/mailmap (2018-06-29) 1 commit
+ (merged to 'next' on 2018-07-11 at d9dc53e374)
+ + .mailmap: merge different spellings of names
-* 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
+ Will merge to 'master'.
- "git fetch-pack --all" used to unnecessarily fail upon seeing an
- annotated tag that points at an object other than a commit.
+* sb/object-store-lookup (2018-06-29) 33 commits
+ - commit.c: allow lookup_commit_reference to handle arbitrary repositories
+ - commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories
+ - tag.c: allow deref_tag to handle arbitrary repositories
+ - object.c: allow parse_object to handle arbitrary repositories
+ - object.c: allow parse_object_buffer to handle arbitrary repositories
+ - commit.c: allow get_cached_commit_buffer to handle arbitrary repositories
+ - commit.c: allow set_commit_buffer to handle arbitrary repositories
+ - commit.c: migrate the commit buffer to the parsed object store
+ - commit-slabs: remove realloc counter outside of slab struct
+ - commit.c: allow parse_commit_buffer to handle arbitrary repositories
+ - tag: allow parse_tag_buffer to handle arbitrary repositories
+ - tag: allow lookup_tag to handle arbitrary repositories
+ - commit: allow lookup_commit to handle arbitrary repositories
+ - tree: allow lookup_tree to handle arbitrary repositories
+ - blob: allow lookup_blob to handle arbitrary repositories
+ - object: allow lookup_object to handle arbitrary repositories
+ - object: allow object_as_type to handle arbitrary repositories
+ - tag: add repository argument to deref_tag
+ - tag: add repository argument to parse_tag_buffer
+ - tag: add repository argument to lookup_tag
+ - commit: add repository argument to get_cached_commit_buffer
+ - commit: add repository argument to set_commit_buffer
+ - commit: add repository argument to parse_commit_buffer
+ - commit: add repository argument to lookup_commit
+ - commit: add repository argument to lookup_commit_reference
+ - commit: add repository argument to lookup_commit_reference_gently
+ - tree: add repository argument to lookup_tree
+ - blob: add repository argument to lookup_blob
+ - object: add repository argument to object_as_type
+ - object: add repository argument to parse_object_buffer
+ - object: add repository argument to lookup_object
+ - object: add repository argument to parse_object
+ - Merge branch 'sb/object-store-grafts' into sb/object-store-lookup
+ (this branch uses sb/object-store-grafts.)
+
+ lookup_commit_reference() and friends have been updated to find
+ in-core object for a specific in-core repository instance.
-* 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
+ Will merge to 'next'.
- "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.
+* ag/rebase-p (2018-07-06) 1 commit
+ - git-rebase--preserve-merges: fix formatting of todo help message
+
+ The help message shown in the editor to edit todo list in "rebase -p"
+ has regressed recently, which has been corrected.
+
+ Will merge to 'next'.
-* 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.
+* bb/pedantic (2018-07-09) 8 commits
+ - utf8.c: avoid char overflow
+ - string-list.c: avoid conversion from void * to function pointer
+ - sequencer.c: avoid empty statements at top level
+ - convert.c: replace "\e" escapes with "\033".
+ - fixup! refs/refs-internal.h: avoid forward declaration of an enum
+ - refs/refs-internal.h: avoid forward declaration of an enum
+ - fixup! connect.h: avoid forward declaration of an enum
+ - connect.h: avoid forward declaration of an enum
+ The codebase has been updated to compile cleanly with -pedantic
+ option.
-* 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
+ Will merge to 'next'.
- 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.
+* bb/unicode-11-width (2018-07-09) 1 commit
+ - unicode: update the width tables to Unicode 11
-* 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 character display width table has been updated to match the
+ latest Unicode standard.
- 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 'next'.
-* 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'
+* bc/object-id (2018-07-09) 17 commits
+ - pretty: switch hard-coded constants to the_hash_algo
+ - sha1-file: convert constants to uses of the_hash_algo
+ - log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexsz
+ - diff: switch GIT_SHA1_HEXSZ to use the_hash_algo
+ - builtin/merge-recursive: make hash independent
+ - builtin/merge: switch to use the_hash_algo
+ - builtin/fmt-merge-msg: make hash independent
+ - builtin/update-index: simplify parsing of cacheinfo
+ - builtin/update-index: convert to using the_hash_algo
+ - refs/files-backend: use the_hash_algo for writing refs
+ - commit: increase commit message buffer size
+ - sha1-name: use the_hash_algo when parsing object names
+ - strbuf: allocate space with GIT_MAX_HEXSZ
+ - commit: express tree entry constants in terms of the_hash_algo
+ - hex: switch to using the_hash_algo
+ - tree-walk: replace hard-coded constants with the_hash_algo
+ - cache: update object ID functions for the_hash_algo
+
+ Conversion from uchar[40] to struct object_id continues.
- Some flaky tests have been fixed.
+ Expecting a reroll.
+ cf. <20180709232656.GA535220@genre.crustytoothpaste.net>
-* 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
+* bc/send-email-auto-cte (2018-07-09) 4 commits
+ - docs: correct RFC specifying email line length
+ - send-email: automatically determine transfer-encoding
+ - send-email: accept long lines with suitable transfer encoding
+ - send-email: add an auto option for transfer encoding
- Build and test procedure for netrc credential helper (in contrib/)
- has been updated.
+ The content-transfer-encoding of the message "git send-email" sends
+ out by default was 8bit, which can cause trouble when there is an
+ overlong line to bust RFC 5322/2822 limit. A new option 'auto' to
+ automatically switch to quoted-printable when there is such a line
+ in the payload has been introduced and is made the default.
---------------------------------------------------
-[New Topics]
+ Will merge to 'next'.
-* 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
- 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.
+* en/dirty-merge-fixes (2018-07-11) 9 commits
+ - merge: fix misleading pre-merge check documentation
+ - merge-recursive: enforce rule that index matches head before merging
+ - t6044: add more testcases with staged changes before a merge is invoked
+ - merge-recursive: fix assumption that head tree being merged is HEAD
+ - merge-recursive: make sure when we say we abort that we actually abort
+ - t6044: add a testcase for index matching head, when head doesn't match HEAD
+ - t6044: verify that merges expected to abort actually abort
+ - index_has_changes(): avoid assuming operating on the_index
+ - read-cache.c: move index_has_changes() from merge.c
+
+ The recursive merge strategy did not properly ensure there was no
+ change between HEAD and the index before performing its operation,
+ which has been corrected.
Will merge to 'next'.
-* as/sequencer-customizable-comment-char (2018-06-28) 1 commit
- - sequencer: use configured comment character
+* en/t6036-merge-recursive-tests (2018-07-11) 6 commits
+ - t6036: add a failed conflict detection case: regular files, different modes
+ - t6036: add a failed conflict detection case with conflicting types
+ - t6036: add a failed conflict detection case with submodule add/add
+ - t6036: add a failed conflict detection case with submodule modify/modify
+ - t6036: add a failed conflict detection case with symlink add/add
+ - t6036: add a failed conflict detection case with symlink modify/modify
- Honor core.commentchar when preparing the list of commits to replay
- in "rebase -i".
-
+ Tests to cover various conflicting cases have been added for
+ merge-recursive.
-* dj/runtime-prefix (2018-06-26) 1 commit
- - Makefile: tweak sed invocation
+ Will merge to 'next'.
- POSIX portability fix in Makefile to fix a glitch introduced a few
- releases ago.
+
+* en/t6036-recursive-corner-cases (2018-07-06) 1 commit
+ - t6036: add lots of detail for directory/file conflicts in recursive case
+
+ Tests to cover more D/F conflict cases have been added for
+ merge-recursive.
Will merge to 'next'.
-* ds/commit-graph (2018-06-28) 1 commit
- - commit-graph: fix documentation inconsistencies
+* en/t6042-insane-merge-rename-testcases (2018-07-03) 3 commits
+ - t6042: add testcase covering long chains of rename conflicts
+ - t6042: add testcase covering rename/rename(2to1)/delete/delete conflict
+ - t6042: add testcase covering rename/add/delete conflict type
- Docfix.
+ Various glitches in the heuristics of merge-recursive strategy have
+ been documented in new tests.
Will merge to 'next'.
+ I am not sure if there is a single "correct" answer everybody can
+ agree on for each of these "insane" cases, though.
-* 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
+
+* en/t7405-recursive-submodule-conflicts (2018-07-11) 3 commits
+ - t7405: verify 'merge --abort' works after submodule/path conflicts
+ - t7405: add a directory/submodule conflict
+ - t7405: add a file/submodule conflict
+
+ Tests to cover conflict cases that involve submodules have been
+ added for merge-recursive.
Will merge to 'next'.
-* js/enhanced-version-info (2018-06-28) 1 commit
- - Makefile: fix the "built from commit" code
+* es/test-fixes (2018-07-03) 25 commits
+ - t9119: fix broken &&-chains
+ - t9000-t9999: fix broken &&-chains
+ - t7000-t7999: fix broken &&-chains
+ - t6000-t6999: fix broken &&-chains
+ - t5000-t5999: fix broken &&-chains
+ - t4000-t4999: fix broken &&-chains
+ - t3030: fix broken &&-chains
+ - t3000-t3999: fix broken &&-chains
+ - t2000-t2999: fix broken &&-chains
+ - t1000-t1999: fix broken &&-chains
+ - t0000-t0999: fix broken &&-chains
+ - t9814: simplify convoluted check that command correctly errors out
+ - t9001: fix broken "invoke hook" test
+ - t7810: use test_expect_code() instead of hand-rolled comparison
+ - t7400: fix broken "submodule add/reconfigure --force" test
+ - t7201: drop pointless "exit 0" at end of subshell
+ - t6036: fix broken "merge fails but has appropriate contents" tests
+ - t5505: modernize and simplify hard-to-digest test
+ - t5406: use write_script() instead of birthing shell script manually
+ - t5405: use test_must_fail() instead of checking exit code manually
+ - t/lib-submodule-update: fix "absorbing" test
+ - t: drop unnecessary terminating semicolon in subshell
+ - t: use sane_unset() rather than 'unset' with broken &&-chain
+ - t: use test_write_lines() instead of series of 'echo' commands
+ - t: use test_might_fail() instead of manipulating exit code manually
+
+ Test clean-up and corrections.
- Build fix.
+ Will merge to 'next'.
+
+
+* jk/empty-pick-fix (2018-07-11) 2 commits
+ - sequencer: don't say BUG on bogus input
+ - sequencer: handle empty-set cases consistently
+
+ Handling of an empty range by "git cherry-pick" was inconsistent
+ depending on how the range ended up to be empty, which has been
+ corrected.
Will merge to 'next'.
-* js/rebase-recreate-merge (2018-06-27) 1 commit
- - rebase: fix documentation formatting
+* jk/fetch-all-peeled-fix (2018-07-06) 1 commit
+ - t5500: prettify non-commit tag tests
- Docfix.
+ Test modernization.
Will merge to 'next'.
-* jt/connectivity-check-after-unshallow (2018-06-27) 1 commit
- - fetch: when deepening, check connectivity fully
+* jk/for-each-ref-icase (2018-07-03) 3 commits
+ - ref-filter: avoid backend filtering with --ignore-case
+ - for-each-ref: consistently pass WM_IGNORECASE flag
+ - t6300: add a test for --ignore-case
- "git fetch" failed to correctly validate the set of objects it
- received when making a shallow history deeper, which has been
- corrected.
+ The "--ignore-case" option of "git for-each-ref" (and its friends)
+ did not work correctly, which has been fixed.
+ Will merge to 'next'.
-* 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.
+* jk/fsck-gitmodules-gently (2018-07-03) 5 commits
+ - fsck: silence stderr when parsing .gitmodules
+ - fsck: silence stderr when parsing .gitmodules
+ - config: add options parameter to git_config_from_mem
+ - config: add CONFIG_ERROR_SILENT handler
+ - config: turn die_on_error into caller-facing enum
+ What's the status of this one?
-* 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.
+* js/range-diff (2018-07-09) 20 commits
+ - range-diff: make --dual-color the default mode
+ - range-diff: left-pad patch numbers
+ - completion: support `git range-diff`
+ - range-diff: add a man page
+ - range-diff --dual-color: work around bogus white-space warning
+ - range-diff: offer to dual-color the diffs
+ - diff: add an internal option to dual-color diffs of diffs
+ - color: add the meta color GIT_COLOR_REVERSE
+ - range-diff: use color for the commit pairs
+ - range-diff: add tests
+ - range-diff: do not show "function names" in hunk headers
+ - range-diff: adjust the output of the commit pairs
+ - range-diff: suppress the diff headers
+ - range-diff: indent the diffs just like tbdiff
+ - range-diff: right-trim commit messages
+ - range-diff: also show the diff between patches
+ - range-diff: improve the order of the shown commits
+ - range-diff: first rudimentary implementation
+ - Introduce `range-diff` to compare iterations of a topic branch
+ - linear-assignment: a function to solve least-cost assignment problems
+
+ "git tbdiff" that lets us compare individual patches in two
+ iterations of a topic has been rewritten and made into a built-in
+ command.
+
+ Supersedes js/branch-diff topic that added a similar command under
+ a different name.
+
+
+* jt/commit-graph-per-object-store (2018-07-09) 6 commits
+ . commit-graph: add repo arg to graph readers
+ . commit-graph: store graph in struct object_store
+ . commit-graph: add free_commit_graph
+ . commit-graph: add missing forward declaration
+ . object-store: add missing include
+ . commit-graph: refactor preparing commit graph
+ (this branch uses ds/commit-graph-fsck.)
+
+ The singleton commit-graph in-core instance is made per in-core
+ repository instance.
+
+ Expecting a reroll, as it breaks 32-bit build.
+ cf. https://travis-ci.org/git/git/jobs/402422108
+
+
+* jt/partial-clone-fsck-connectivity (2018-07-09) 2 commits
+ - clone: check connectivity even if clone is partial
+ - upload-pack: send refs' objects despite "filter"
+ (this branch uses bw/ref-in-want and jt/connectivity-check-after-unshallow.)
+
+ Partial clone support of "git clone" has been updated to correctly
+ validate the objects it receives from the other side. The server
+ side has been corrected to send objects that are directly
+ requested, even if they may match the filtering criteria (e.g. when
+ doing a "lazy blob" partial clone).
Will merge to 'next'.
-* ms/core-icase-doc (2018-06-28) 1 commit
- - Documentation: declare "core.ignoreCase" as internal variable
+* kg/gc-auto-windows-workaround (2018-07-09) 1 commit
+ - gc --auto: release pack files before auto packing
- Clarify that setting core.ignoreCase to deviate from reality would
- not turn a case-incapable filesystem into a case-capable one.
+ "git gc --auto" opens file descriptors for the packfiles before
+ spawning "git repack/prune", which would upset Windows that does
+ not want a process to work on a file that is open by another
+ process. The issue has been worked around.
Will merge to 'next'.
-* rj/submodule-fsck-skip (2018-06-27) 1 commit
- - fsck: check skiplist for object in fsck_blob()
+* kn/userdiff-php (2018-07-06) 2 commits
+ - userdiff: support new keywords in PHP hunk header
+ - t4018: add missing test cases for PHP
- "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.
+ The userdiff pattern for .php has been updated.
Will merge to 'next'.
-* 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.)
+* lt/date-human (2018-07-09) 1 commit
+ - Add 'human' date format
- "git grep" learned the "--only-matching" option.
+* mh/fast-import-no-diff-delta-empty (2018-07-06) 1 commit
+ - fast-import: do not call diff_delta() with empty buffer
-* tz/exclude-doc-smallfixes (2018-06-27) 2 commits
- - dir.c: fix typos in core.excludesfile comment
- - gitignore.txt: clarify default core.excludesfile path
+ "git fast-import" has been updated to avoid attempting to create
+ delta against a zero-byte-long string, which is pointless.
- Doc updates.
+ Will merge to 'next'.
+
+
+* ot/ref-filter-object-info (2018-07-09) 4 commits
+ . ref-filter: use oid_object_info() to get object
+ . ref-filter: merge get_obj and get_object
+ . ref-filter: add empty values to technical fields
+ . ref-filter: add info_source to valid_atom
+
+ Expecting a reroll, as it breaks compilation with uninitialized var.
+ cf. https://travis-ci.org/git/git/jobs/402422102
+
+
+* pk/rebase-in-c (2018-07-09) 4 commits
+ - builtin/rebase: support running "git rebase <upstream>"
+ - sequencer: refactor the code to detach HEAD to checkout.c
+ - rebase: refactor common shell functions into their own file
+ - rebase: start implementing it as a builtin
+
+ Piecemeal rewrite of the "rebase" machinery in C.
+
+ Expecting a reroll, but it seems that this is getting quite close.
+ cf. <CAOZc8M8YmLwJOzG-1jyz8ft4W_tJMwNs6kSV8inX1q_zmDW8Sg@mail.gmail.com>
+
+
+* tb/config-default (2018-07-06) 1 commit
+ - builtin/config: work around an unsized array forward declaration
+
+ Compilation fix.
Will merge to 'next'.
---------------------------------------------------
-[Stalled]
-* ab/fetch-tags-noclobber (2018-05-16) 9 commits
- - fixup! push tests: assert re-pushing annotated tags
- - fetch: stop clobbering existing tags without --force
- - fetch tests: add a test clobbering tag behavior
- - fetch tests: correct a comment "remove it" -> "remove them"
- - push doc: correct lies about how push refspecs work
- - push tests: assert re-pushing annotated tags
- - push tests: add more testing for forced tag pushing
- - push tests: fix logic error in "push" test assertion
- - push tests: remove redundant 'git push' invocation
+* bp/log-ref-write-fd-with-strbuf (2018-07-10) 1 commit
+ - convert log_ref_write_fd() to use strbuf
- Expecting a reboot of the discussion to take it to some conclusion
- and then a reroll.
- cf. <f3b891c3-381f-de42-51d8-24fdfbca91d2@gmail.com>
- cf. <xmqq603yn50l.fsf@gitster-ct.c.googlers.com>
- cf. <xmqqzi1alodz.fsf@gitster-ct.c.googlers.com>
- cf. <xmqqvabylnbi.fsf@gitster-ct.c.googlers.com>
+ Code clean-up.
+ Will merge to 'next'.
+
+
+* hs/push-cert-check-cleanup (2018-07-11) 2 commits
+ - gpg-interface: make parse_gpg_output static and remove from interface header
+ - builtin/receive-pack: use check_signature from gpg-interface
+
+ Code clean-up.
+
+ Will merge to 'next'.
+
+
+* mk/merge-in-sparse-checkout (2018-07-11) 1 commit
+ - unpack-trees: do not fail reset because of unmerged skipped entry
+
+ "git reset --merge" (hence "git merge ---abort") and "git reset --hard"
+ had trouble working correctly in a sparsely checked out working
+ tree after a conflict, which has been corrected.
+
+ Will merge to 'next'.
+
+--------------------------------------------------
+[Stalled]
* pw/add-p-select (2018-03-16) 3 commits
- add -p: optimize line selection for short hunks
--------------------------------------------------
[Cooking]
+* ao/config-from-gitmodules (2018-06-26) 6 commits
+ (merged to 'next' on 2018-07-11 at 5d88dc6fb7)
+ + 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
+
+ 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 'master'.
+
+
+* as/sequencer-customizable-comment-char (2018-06-28) 1 commit
+ - sequencer: use configured comment character
+
+ Honor core.commentchar when preparing the list of commits to replay
+ in "rebase -i".
+
+ Needs inter-contributor coordination.
+ cf. <e8973797-fc5f-2ca5-1881-5ee66fc8279b@living180.net>
+
+
+* dj/runtime-prefix (2018-06-26) 1 commit
+ (merged to 'next' on 2018-07-11 at 27d99fef94)
+ + Makefile: tweak sed invocation
+
+ POSIX portability fix in Makefile to fix a glitch introduced a few
+ releases ago.
+
+ Will merge to 'master'.
+
+
+* ds/commit-graph (2018-06-28) 1 commit
+ (merged to 'next' on 2018-07-11 at d579f733ed)
+ + commit-graph: fix documentation inconsistencies
+
+ Docfix.
+
+ Will merge to 'master'.
+
+
+* en/rebase-i-microfixes (2018-06-27) 3 commits
+ (merged to 'next' on 2018-07-11 at d913ca0f77)
+ + 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 'master'.
+
+
+* js/enhanced-version-info (2018-06-29) 1 commit
+ (merged to 'next' on 2018-07-11 at 815b2ea2bc)
+ + Makefile: fix the "built from commit" code
+
+ Build fix.
+
+ Will merge to 'master'.
+
+
+* js/rebase-recreate-merge (2018-06-27) 1 commit
+ (merged to 'next' on 2018-07-11 at eb8f33aaef)
+ + rebase: fix documentation formatting
+
+ Docfix.
+
+ Will merge to 'master'.
+
+
+* jt/connectivity-check-after-unshallow (2018-07-03) 1 commit
+ - fetch-pack: write shallow, then check connectivity
+ (this branch is used by jt/partial-clone-fsck-connectivity; uses bw/ref-in-want.)
+
+ "git fetch" failed to correctly validate the set of objects it
+ received when making a shallow history deeper, which has been
+ corrected.
+
+ Will merge to 'next'.
+
+
+* jt/fetch-nego-tip (2018-07-03) 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.
+
+ Will merge to 'next'.
+
+
+* mb/filter-branch-optim (2018-06-26) 1 commit
+ (merged to 'next' on 2018-07-11 at e43a0136c2)
+ + 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 'master'.
+
+
+* ms/core-icase-doc (2018-06-28) 1 commit
+ (merged to 'next' on 2018-07-11 at 8f0d71c32d)
+ + Documentation: declare "core.ignoreCase" as internal variable
+
+ Clarify that setting core.ignoreCase to deviate from reality would
+ not turn a case-incapable filesystem into a case-capable one.
+
+ Will merge to 'master'.
+
+
+* rj/submodule-fsck-skip (2018-07-03) 1 commit
+ (merged to 'next' on 2018-07-11 at 985f88cf7e)
+ + fsck: check skiplist for object in fsck_blob()
+
+ "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 'master'.
+
+
+* tb/grep-only-matching (2018-07-09) 2 commits
+ - 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.
+
+ Will merge to 'next'.
+
+
+* tz/exclude-doc-smallfixes (2018-06-27) 2 commits
+ (merged to 'next' on 2018-07-11 at 5134f1ca72)
+ + dir.c: fix typos in core.excludesfile comment
+ + gitignore.txt: clarify default core.excludesfile path
+
+ Doc updates.
+
+ Will merge to 'master'.
+
+
* 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 !=
+ (merged to 'next' on 2018-06-29 at af76acb664)
+ + 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'.
+ Will merge to 'master'.
* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit
- - sequencer: do not squash 'reword' commits when we hit conflicts
+ (merged to 'next' on 2018-06-29 at 538337be74)
+ + sequencer: do not squash 'reword' commits when we hit conflicts
Bugfix for "rebase -i" corner case regression.
- Will merge to 'next'.
+ Will merge to 'master'.
* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit
- - format-patch: clear UNINTERESTING flag before prepare_bases
+ (merged to 'next' on 2018-06-29 at 0dffc46ce2)
+ + 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'.
+ Will merge to 'master'.
* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit
- - docs: link to gitsubmodules
+ (merged to 'next' on 2018-06-29 at da6f49d292)
+ + docs: link to gitsubmodules
Docfix.
- Will merge to 'next'.
+ Will merge to 'master'.
* bw/ref-in-want (2018-06-28) 8 commits
- upload-pack: test negotiation with changing repository
- upload-pack: implement ref-in-want
- test-pkt-line: add unpack-sideband subcommand
+ (this branch is used by jt/connectivity-check-after-unshallow and jt/partial-clone-fsck-connectivity.)
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.
+ Will merge to 'next'.
+
* en/rebase-consistency (2018-06-27) 9 commits
- git-rebase: make --allow-empty-message the default
the three backends gets used; this has been documented and an
effort to make them more uniform has begun.
+ 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
+ (merged to 'next' on 2018-06-29 at 852857b04e)
+ + pack-bitmap: add free function
+ + pack-bitmap: remove bitmap_git global variable
The effort to move globals to per-repository in-core structure
continues.
+ Will merge to 'master'.
+
* 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>
+ Will merge to 'next'.
* bw/protocol-v2 (2018-06-22) 1 commit
- - protocol-v2 doc: put HTTP headers after request
+ (merged to 'next' on 2018-06-29 at 78090cc343)
+ + protocol-v2 doc: put HTTP headers after request
Doc fix.
- Will merge to 'next'.
+ Will merge to 'master'.
* jk/branch-l-1-repurpose (2018-06-22) 1 commit
* vs/typofixes (2018-06-22) 1 commit
- - Documentation: spelling and grammar fixes
+ (merged to 'next' on 2018-06-29 at 665c8db2f7)
+ + Documentation: spelling and grammar fixes
Doc fix.
- Will merge to 'next'.
+ Will merge to 'master'.
-* 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
+* cc/remote-odb (2018-07-06) 10 commits
+ - SQUASH??? error: unused variable 'o' [-Werror=unused-variable]
+ - 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
+* ds/multi-pack-index (2018-07-09) 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.
+ Expecting a reroll to fix documentation build.
+ cf. https://travis-ci.org/git/git/jobs/402422110
* 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
- - builtin/grep.c: add '--column' option to 'git-grep(1)'
- - grep.c: display column number of first match
- - 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
+ (merged to 'next' on 2018-06-29 at 25dc70426e)
+ + contrib/git-jump/git-jump: jump to exact location
+ + grep.c: add configuration variables to show matched option
+ + builtin/grep.c: add '--column' option to 'git-grep(1)'
+ + grep.c: display column number of first match
+ + 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.
- Will merge to 'next'.
+ Will merge to 'master'.
* jt/fetch-pack-negotiator (2018-06-15) 7 commits
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
- - Merge branch 'ag/rebase-p' into ag/rebase-i-append-todo-help
- (this branch is used by ag/rebase-i-rewrite-todo.)
-
- 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
- - editor: add a function to launch the sequence editor
- - Merge branch 'bc/t3430-fixup' into ag/rebase-i-rewrite-todo
- (this branch uses ag/rebase-i-append-todo-help.)
-
- Stepwise rewriting of the machinery of "rebase -i" into C continues.
+ Will merge to 'next'.
* sb/submodule-core-worktree (2018-06-19) 3 commits
Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log"
take has been tweaked.
+ Will merge to 'next'.
+
* en/merge-recursive-cleanup (2018-06-12) 6 commits
(merged to 'next' on 2018-06-28 at 1a3646eb7d)
- checkout.h: wrap the arguments to unique_tracking_name()
- checkout tests: index should be clean after dwim checkout
+ "git checkout" and "git worktree add" learned to honor
+ checkout.defaultRemote when auto-vivifying a local branch out of a
+ remote tracking branch in a repository with multiple remotes that
+ have tracking branches that share the same names.
+
+ Will merge to 'next'.
+
* ds/commit-graph-fsck (2018-06-27) 22 commits
- commit-graph: update design document
- commit-graph: fix GRAPH_MIN_SIZE
- commit-graph: UNLEAK before die()
- t5318-commit-graph.sh: use core.commitGraph
+ (this branch is used by jt/commit-graph-per-object-store.)
"git fsck" learns to make sure the optional commit-graph file is in
a sane state.
- Is this ready for 'next'?
+ Will merge to 'next'.
* ma/wrapped-info (2018-05-28) 2 commits
cf. <20180529213957.GF7964@sigill.intra.peff.net>
-* jm/cache-entry-from-mem-pool (2018-06-28) 8 commits
+* jm/cache-entry-from-mem-pool (2018-07-03) 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 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
+ - read-cache: teach make_cache_entry to take object_id
+ - 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.
+ Will merge to 'next'.
+
+ This makes each cache-entry larger by either 4 or 8 bytes, which is
+ a bit sad, though.
+
* sb/object-store-grafts (2018-05-18) 19 commits
(merged to 'next' on 2018-06-28 at 02f70d6302)
+ commit: add repository argument to commit_graft_pos
+ object: move grafts to object parser
+ object-store: move object access functions to object-store.h
+ (this branch is used by sb/object-store-lookup.)
Originally merged to 'next' on 2018-06-22
Will merge to 'master'.
-* js/branch-diff (2018-05-16) 19 commits
- - fixup! Add a function to solve least-cost assignment problems
- - completion: support branch-diff
- - branch-diff: add a man page
- - branch-diff --dual-color: work around bogus white-space warning
- - branch-diff: offer to dual-color the diffs
- - diff: add an internal option to dual-color diffs of diffs
- - color: provide inverted colors, too
- - branch-diff: use color for the commit pairs
- - branch-diff: add tests
- - branch-diff: do not show "function names" in hunk headers
- - branch-diff: adjust the output of the commit pairs
- - branch-diff: suppress the diff headers
- - branch-diff: indent the diffs just like tbdiff
- - branch-diff: right-trim commit messages
- - branch-diff: also show the diff between patches
- - branch-diff: improve the order of the shown commits
- - branch-diff: first rudimentary implementation
- - Add a new builtin: branch-diff
- - Add a function to solve least-cost assignment problems
-
- "git tbdiff" that lets us compare individual patches in two
- iterations of a topic has been rewritten and made into a built-in
- command.
-
- Expecting a reroll.
- cf. <nycvar.QRO.7.76.6.1805052351560.77@tvgsbejvaqbjf.bet>
-
-
-* sb/diff-color-move-more (2018-06-25) 11 commits
- - diff: fix a sparse 'dubious one-bit signed bitfield' error
- - SQUASH??? t/4015 GETTEXT_POISON emergency fix
- - SQUASH????? Documentation breakage emergency fix
+* sb/diff-color-move-more (2018-06-29) 9 commits
- diff.c: add white space mode to move detection that allows indent changes
- diff.c: factor advance_or_nullify out of mark_color_as_moved
- diff.c: decouple white space treatment from move detection algorithm
- diff.c: add a blocks mode for moved code detection
- diff.c: adjust hash function signature to match hashmap expectation
- diff.c: do not pass diff options as keydata to hashmap
+ - t4015: avoid git as a pipe input
- xdiff/xdiffi.c: remove unneeded function declarations
- xdiff/xdiff.h: remove unused flags
"git diff --color-moved" feature has further been tweaked.
- Needs to be cleaned-up with various fix-up bits applied inline.
+ Will merge to 'next'.
* jk/branch-l-0-deprecation (2018-06-22) 3 commits
- - branch: deprecate "-l" option
- - t: switch "branch -l" to "branch --create-reflog"
- - t3200: unset core.logallrefupdates when testing reflog creation
+ (merged to 'next' on 2018-06-29 at fac676dfb9)
+ + branch: deprecate "-l" option
+ + t: switch "branch -l" to "branch --create-reflog"
+ + t3200: unset core.logallrefupdates when testing reflog creation
(this branch is used by jk/branch-l-1-repurpose.)
The "-l" option in "git branch -l" is an unfortunate short-hand for
is used as a short-hand for "--create-reflog" and warns about the
future repurposing of the it when it is used.
- Will merge to 'next'.
+ Will merge to 'master'.
+
+--------------------------------------------------
+[Discarded]
+
+* ag/rebase-i-append-todo-help (2018-06-14) 2 commits
+ . rebase--interactive: rewrite append_todo_help() in C
+ . Merge branch 'ag/rebase-p' into ag/rebase-i-append-todo-help
+ (this branch is used by ag/rebase-i-rewrite-todo.)
+
+ Stepwise rewriting of the machinery of "rebase -i" into C continues.
+
+ Now part of ag/rebase-i-in-c
+
+
+* ag/rebase-i-rewrite-todo (2018-06-15) 3 commits
+ . rebase--interactive: rewrite the edit-todo functionality in C
+ . editor: add a function to launch the sequence editor
+ . Merge branch 'bc/t3430-fixup' into ag/rebase-i-rewrite-todo
+ (this branch uses ag/rebase-i-append-todo-help.)
+
+ Stepwise rewriting of the machinery of "rebase -i" into C continues.
+
+ Now part of ag/rebase-i-in-c
+
+
+* ab/fetch-tags-noclobber (2018-05-16) 9 commits
+ - fixup! push tests: assert re-pushing annotated tags
+ - fetch: stop clobbering existing tags without --force
+ - fetch tests: add a test clobbering tag behavior
+ - fetch tests: correct a comment "remove it" -> "remove them"
+ - push doc: correct lies about how push refspecs work
+ - push tests: assert re-pushing annotated tags
+ - push tests: add more testing for forced tag pushing
+ - push tests: fix logic error in "push" test assertion
+ - push tests: remove redundant 'git push' invocation
+
+ Discarded per request.
+ cf. <87po09cnir.fsf@evledraar.gmail.com>
+
+
+* 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
+
+ Retracted to be replaced with a more vertical approach where the
+ lower-level helper functions are taught to be capable of working on
+ an istate instance that is not the_index first, and then upwards to
+ support the application layer that wants to work on an arbitrary
+ istate instance, as the goal is not a mechanical replacement of
+ foo_cache(...) to foo_index(&the_index, ...).
+
+
+* js/branch-diff (2018-05-16) 19 commits
+ . fixup! Add a function to solve least-cost assignment problems
+ . completion: support branch-diff
+ . branch-diff: add a man page
+ . branch-diff --dual-color: work around bogus white-space warning
+ . branch-diff: offer to dual-color the diffs
+ . diff: add an internal option to dual-color diffs of diffs
+ . color: provide inverted colors, too
+ . branch-diff: use color for the commit pairs
+ . branch-diff: add tests
+ . branch-diff: do not show "function names" in hunk headers
+ . branch-diff: adjust the output of the commit pairs
+ . branch-diff: suppress the diff headers
+ . branch-diff: indent the diffs just like tbdiff
+ . branch-diff: right-trim commit messages
+ . branch-diff: also show the diff between patches
+ . branch-diff: improve the order of the shown commits
+ . branch-diff: first rudimentary implementation
+ . Add a new builtin: branch-diff
+ . Add a function to solve least-cost assignment problems
+
+ "git tbdiff" that lets us compare individual patches in two
+ iterations of a topic has been rewritten and made into a built-in
+ command.