diff --git a/whats-cooking.txt b/whats-cooking.txt index b47c69da52..7e0c111799 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (May 2017, #06; Mon, 22) -X-master-at: 10c78a162fa821ee85203165b805ff46be454091 -X-next-at: 20371eebb69346345f908fea7f7cbd2909a91c2c +Subject: What's cooking in git.git (May 2017, #07; Tue, 23) +X-master-at: 1eb437020a2c098a7c12da4c05082fbea10d98c9 +X-next-at: 93fb34087a286d99fc95933e0bb699d6263fbad7 -What's cooking in git.git (May 2017, #06; Mon, 22) +What's cooking in git.git (May 2017, #07; Tue, 23) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,291 +12,131 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The tip of 'next' has been rewound, and the first batch of topics -for the next release have been merged to 'master'. I tentatively -wrote doen that this cycle will last for 11 weeks, completing at the -end of July. +The 'maint' branch is now for the v2.13.x maintenance track. A +handful of fixes in 'master' will soon be merged to it to prepare +for v2.13.1 in a week or so. You can find the changes described here in the integration branches of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html +-------------------------------------------------- +[Graduated to "master"] + +* ab/doc-replace-gmane-links (2017-05-09) 2 commits + (merged to 'next' on 2017-05-20 at 2c4f96560c) + + doc: replace more gmane links + + doc: replace a couple of broken gmane links + + The Web interface to gmane news archive is long gone, even though + the articles are still accessible via NTTP. Replace the links with + ones to public-inbox.org. Because their message identification is + based on the actual message-id, it is likely that it will be easier + to migrate away from it if/when necessary. + + +* ab/fix-poison-tests (2017-05-11) 3 commits + (merged to 'next' on 2017-05-20 at 5b13ba86bd) + + travis-ci: add job to run tests with GETTEXT_POISON + + travis-ci: setup "prove cache" in "script" step + + tests: fix tests broken under GETTEXT_POISON=YesPlease + + Update tests to pass under GETTEXT_POISON (a mechanism to ensure + that output strings that should not be translated are not + translated by mistake), and tell TravisCI to run them. + + +* ah/log-decorate-default-to-auto (2017-05-15) 1 commit + (merged to 'next' on 2017-05-20 at 209614479c) + + builtin/log: honor log.decorate + + Setting "log.decorate=false" in the configuration file did not take + effect in v2.13, which has been corrected. + + +* bw/submodule-with-bs-path (2017-05-01) 1 commit + (merged to 'next' on 2017-05-20 at b740f784cb) + + t7400: add !CYGWIN prerequisite to 'add with \\ in path' + + A hotfix to a topic that is already in v2.13. + + +* jt/push-options-doc (2017-05-10) 2 commits + (merged to 'next' on 2017-05-20 at ca7f344111) + + receive-pack: verify push options in cert + + docs: correct receive.advertisePushOptions default + + The receive-pack program now makes sure that the push certificate + records the same set of push options used for pushing. + + +* ls/travis-relays-for-windows-ci (2017-05-04) 2 commits + (merged to 'next' on 2017-05-20 at 47f34b78e2) + + travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503 + + travis-ci: handle Git for Windows CI status "failed" explicitly + + Will merge to 'master'. + + +* rs/checkout-am-fix-unborn (2017-05-08) 2 commits + (merged to 'next' on 2017-05-20 at d4f1ee3ed7) + + am: check return value of resolve_refdup before using hash + + checkout: check return value of resolve_refdup before using hash + + A few codepaths in "checkout" and "am" working on an unborn branch + tried to access an uninitialized piece of memory. + + +* tb/dedup-crlf-tests (2017-05-10) 1 commit + (merged to 'next' on 2017-05-20 at 0a7ffff154) + + t0027: tests are not expensive; remove t0025 + + Will merge to 'master'. + -------------------------------------------------- [New Topics] -* ab/conditional-config-with-symlinks (2017-05-17) 1 commit - - config: match both symlink & realpath versions in IncludeIf.gitdir:* +* ah/doc-interpret-trailers-ifexists (2017-05-23) 1 commit + - Documentation: fix reference to ifExists for interpret-trailers - The recently introduced "[includeIf "gitdir:$dir"] path=..." - mechansim has further been taught to take symlinks into account. - The directory "$dir" specified in "gitdir:$dir" may be a symlink to - a real location, not something that $(getcwd) may return. In such - a case, a realpath of "$dir" is compared with the real path of the - current repository to determine if the contents from the named path - should be included. + Documentation fix. Will merge to 'next'. -* bm/interpret-trailers-cut-line-is-eom (2017-05-18) 1 commit - - interpret-trailers: honor the cut line +* ah/doc-pretty-format-fix (2017-05-23) 1 commit + - Documentation: fix formatting typo in pretty-formats.txt - "git interpret-trailers", when used as GIT_EDITOR for "git commit - -v", looked for and appended to a trailer block at the very end, - i.e. at the end of the "diff" output. The command has been - corrected to pay attention to the cut-mark line "commit -v" adds to - the buffer---the real trailer block should appear just before it. + Documentation fix. Will merge to 'next'. -* jc/skip-test-in-the-middle (2017-05-18) 2 commits - - t5545: enhance test coverage when no http server is installed - - test: allow skipping the remainder +* sb/submodule-blanket-recursive (2017-05-23) 6 commits + . builtin/push.c: respect 'submodule.recurse' option + . builtin/grep.c: respect 'submodule.recurse' option + . builtin/fetch.c: respect 'submodule.recurse' option + . Introduce submodule.recurse option for worktree manipulators + . submodule test invocation: only pass additional arguments + . submodule.c: add has_submodules to check if we have any submodules + (this branch uses sb/reset-recurse-submodules.) - A recent update to t5545-push-options.sh started skipping all the - tests in the script when a web server testing is disabled or - unavailable, not just the ones that require a web server. Non HTTP - tests have been salvaged to always run in this script. + A new configuration variable "submodule.recurse" can be set to true + to force various commands run at the top-level superproject to + behave as if they were invoked with the "--recurse-submodules" + option. + + Seems to break t7814 when merged to 'pu'. + + +* sb/t5531-update-desc (2017-05-23) 1 commit + - t5531: fix test description + + The description strings for a few tests have been updated. Will merge to 'next'. - -* jk/alternate-ref-optim (2017-05-18) 1 commit - - t5400: avoid concurrent writes into a trace file - - A test allowed both "git push" and "git receive-pack" on the other - end write their traces into the same file. This is OK on platforms - that allows atomically appending to a file opened with O_APPEND, - but on other platforms led to a mangled output, causing - intermittent test failures. This has been fixed by disabling - traces from "receive-pack" in the test. - - Will merge to 'next'. - - -* mh/packed-ref-store-prep (2017-05-18) 23 commits - - cache_ref_iterator_begin(): avoid priming unneeded directories - - ref-filter: limit traversal to prefix - - create_ref_entry(): remove `check_name` option - - refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA` - - read_packed_refs(): report unexpected fopen() failures - - read_packed_refs(): do more of the work of reading packed refs - - get_packed_ref_cache(): assume "packed-refs" won't change while locked - - should_pack_ref(): new function, extracted from `files_pack_refs()` - - ref_update_reject_duplicates(): add a sanity check - - ref_update_reject_duplicates(): use `size_t` rather than `int` - - ref_update_reject_duplicates(): expose function to whole refs module - - ref_transaction_commit(): break into multiple functions - - files_transaction_cleanup(): new helper function - - files_ref_store: put the packed files lock directly in this struct - - files-backend: move `lock` member to `files_ref_store` - - lockfile: add a new method, is_lock_file_locked() - - ref_store: take `logmsg` parameter when deleting references - - refs: use `size_t` indexes when iterating over ref transaction updates - - refs_ref_iterator_begin(): don't check prefixes redundantly - - prefix_ref_iterator: don't trim too much - - ref_iterator_begin_fn(): fix docstring - - refs.h: clarify docstring for the ref_transaction_update()-related fns - - t3600: clean up permissions test properly - - The implementation of "ref" API around the "packed refs" have been - cleaned up, in preparation for further changes. - - Expecting a reroll. - - -* sl/clean-d-ignored-fix (2017-05-22) 7 commits - - SQUASH???? - - clean: teach clean -d to skip dirs containing ignored files - - dir: expose cmp_name() and check_contains() - - dir: hide untracked contents of untracked dirs - - dir: recurse into untracked dirs for ignored files - - t7061: status --ignored should search untracked dirs - - t7300: clean -d should skip dirs with ignored files - - "git clean -d" used to clean directories that has ignored files, - even though the command should not lose ignored ones without "-x". - This has been corrected. - - -* tg/stash-push-fixup (2017-05-17) 1 commit - - completion: add git stash push - - The shell completion script (in contrib/) learned "git stash" has - a new "push" subcommand. - - Will merge to 'next'. - - -* ab/sha1dc (2017-05-22) 3 commits - - sha1collisiondetection: automatically enable when submodule is populated - - sha1dc: optionally use sha1collisiondetection as a submodule - - sha1dc: update from upstream - - The "collission-detecting" implementation of SHA-1 hash we borrowed - from is replaced by directly binding the upstream project as our - submodule. - - Will keep in 'pu' for a few CI cycles. - Impact to the various build and release infrastructure of using - submodule is not yet fully known, but this lets us dip our toes. - - -* bp/fsmonitor (2017-05-21) 10 commits - - SQUASH??? - - SQUASH??? - - SQUASH??? - - fsmonitor: add a sample query-fsmonitor hook script for Watchman - - fsmonitor: add documentation for the fsmonitor extension. - - fsmonitor: add test cases for fsmonitor extension - - SQUASH??? - - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files. - - dir: make lookup_untracked() available outside of dir.c - - bswap: add 64 bit endianness helper get_be64 - - Expecting reroll. - - -* dk/send-email-avoid-net-smtp-ssl-when-able (2017-05-20) 1 commit - - send-email: Net::SMTP::SSL is obsolete, use only when necessary - - "git send-email" now uses Net::SMTP::SSL, which is obsolete, only - when needed. Recent versions of Net::SMTP can do TLS natively. - - Will merge to 'next'. - - -* jc/name-rev-lw-tag (2017-03-29) 2 commits - - name-rev: favor describing with tags and use committer date to tiebreak - - name-rev: refactor logic to see if a new candidate is a better name - (this branch is used by mg/name-rev-debug.) - - "git describe --contains" penalized light-weight tags so much that - they were almost never considered. Instead, give them about the - same chance to be considered as an annotated tag that is the same - age as the underlying commit would. - - Will merge to 'next'. - - -* jk/diff-blob (2017-05-20) 15 commits - - diff: use blob path for blob/file diffs - - diff: use pending "path" if it is available - - diff: use the word "path" instead of "name" for blobs - - diff: pass whole pending entry in blobinfo - - handle_revision_arg: record paths for pending objects - - handle_revision_arg: record modes for "a..b" endpoints - - t4063: add tests of direct blob diffs - - get_sha1_with_context: dynamically allocate oc->path - - get_sha1_with_context: always initialize oc->symlink_path - - sha1_name: consistently refer to object_context as "oc" - - handle_revision_arg: add handle_dotdot() helper - - handle_revision_arg: hoist ".." check out of range parsing - - handle_revision_arg: stop using "dotdot" as a generic pointer - - handle_revision_arg: simplify commit reference lookups - - handle_revision_arg: reset "dotdot" consistently - - The result from "git diff" that compares two blobs, e.g. "git diff - $commit1:$path $commit2:$path", used to be shown with the full - object name as given on the command line, but it is more natural to - use the $path in the output and use it to look up .gitattributes. - - Needs review. - - -* jk/ignore-broken-tags-when-ignoring-missing-links (2017-05-20) 1 commit - - revision.c: ignore broken tags with ignore_missing_links - - Tag objects, which are not reachable from any ref, that point at - missing objects were mishandled by "git gc" and friends (they - should silently be ignored instead) - - Will merge to 'next'. - - -* js/bs-is-a-dir-sep-on-windows (2017-05-20) 2 commits - - Windows: do not treat a path with backslashes as a remote's nick name - - mingw.h: permit arguments with side effects for is_dir_sep - - "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no - slashes in it, cannot be a nickname for a remote on Windows, as - that is likely to be a pathname on a local filesystem. - - Will merge to 'next'. - - -* js/larger-timestamps (2017-05-20) 1 commit - - name-rev: change a "long" variable to timestamp_t - - A follow-up hotfix for a topic already in 'master'. - - Will merge to 'next'. - - -* km/log-showsignature-doc (2017-05-20) 1 commit - - config.txt: add an entry for log.showSignature - - Will merge to 'next'. - - -* kn/ref-filter-branch-list (2017-05-20) 1 commit - - ref-filter: resolve HEAD when parsing %(HEAD) atom - - "git for-each-ref --format=..." with %(HEAD) in the format used to - resolve the HEAD symref as many times as it had processed refs, - which was wasteful, and "git branch" shared the same problem. - - Will merge to 'next'. - - -* pw/rebase-i-regression-fix (2017-05-20) 3 commits - - rebase -i: add missing newline to end of message - - rebase -i: silence stash apply - - rebase -i: fix reflog message - - Regression fix to topic recently merged to 'master'. - - Will merge to 'next'. - - -* sb/diff-color-move (2017-05-20) 20 commits - - diff.c: color moved lines differently - - diff: buffer all output if asked to - - diff.c: emit_line includes whitespace highlighting - - diff.c: convert diff_summary to use emit_line_* - - diff.c: convert diff_flush to use emit_line_* - - diff.c: convert word diffing to use emit_line_* - - diff.c: convert show_stats to use emit_line_* - - diff.c: convert emit_binary_diff_body to use emit_line_* - - submodule.c: convert show_submodule_summary to use emit_line_fmt - - diff.c: convert emit_rewrite_lines to use emit_line_* - - diff.c: convert emit_rewrite_diff to use emit_line_* - - diff.c: convert builtin_diff to use emit_line_* - - diff.c: convert fn_out_consume to use emit_line - - diff.c: inline emit_line_0 into emit_line - - diff.c: emit_line_0 takes parameter whether to output line prefix - - diff.c: emit_line_0 can handle no color setting - - diff.c: teach emit_line_0 to accept sign parameter - - diff.c: factor out diff_flush_patch_all_file_pairs - - diff: move line ending check into emit_hunk_header - - diff: readability fix - - "git diff" has been taught to optionally paint new lines that are - the same as deleted lines elsewhere differently from genuinely new - lines. - - -* xz/send-email-batch-size (2017-05-22) 2 commits - - SQUASH??? - - send-email: --batch-size to work around some SMTP server limit - - "git send-email" learned to overcome some SMTP server limitation - that does not allow many pieces of e-mails to be sent over a single - session. - - -------------------------------------------------- [Stalled] @@ -355,6 +195,7 @@ of the repositories listed at - convert: add "status=delayed" to filter process protocol Expecting a reroll. + cf. <04ECEBE5-CAC8-4344-B07A-6B7A7C795C94@gmail.com> * sk/dash-is-previous (2017-03-01) 5 commits @@ -373,26 +214,310 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* ah/log-decorate-default-to-auto (2017-05-15) 1 commit - (merged to 'next' on 2017-05-20 at 209614479c) - + builtin/log: honor log.decorate +* ab/conditional-config-with-symlinks (2017-05-17) 1 commit + (merged to 'next' on 2017-05-23 at 6162222c2e) + + config: match both symlink & realpath versions in IncludeIf.gitdir:* - Setting "log.decorate=false" in the configuration file did not take - effect in v2.13, which has been corrected. + The recently introduced "[includeIf "gitdir:$dir"] path=..." + mechansim has further been taught to take symlinks into account. + The directory "$dir" specified in "gitdir:$dir" may be a symlink to + a real location, not something that $(getcwd) may return. In such + a case, a realpath of "$dir" is compared with the real path of the + current repository to determine if the contents from the named path + should be included. Will merge to 'master'. +* bm/interpret-trailers-cut-line-is-eom (2017-05-18) 1 commit + (merged to 'next' on 2017-05-23 at 3e5ff08517) + + interpret-trailers: honor the cut line + + "git interpret-trailers", when used as GIT_EDITOR for "git commit + -v", looked for and appended to a trailer block at the very end, + i.e. at the end of the "diff" output. The command has been + corrected to pay attention to the cut-mark line "commit -v" adds to + the buffer---the real trailer block should appear just before it. + + Will merge to 'master'. + + +* jc/skip-test-in-the-middle (2017-05-18) 2 commits + (merged to 'next' on 2017-05-23 at 6c962b353b) + + t5545: enhance test coverage when no http server is installed + + test: allow skipping the remainder + + A recent update to t5545-push-options.sh started skipping all the + tests in the script when a web server testing is disabled or + unavailable, not just the ones that require a web server. Non HTTP + tests have been salvaged to always run in this script. + + Will merge to 'master'. + + +* jk/alternate-ref-optim (2017-05-18) 1 commit + (merged to 'next' on 2017-05-23 at 4b4b3ac463) + + t5400: avoid concurrent writes into a trace file + + A test allowed both "git push" and "git receive-pack" on the other + end write their traces into the same file. This is OK on platforms + that allows atomically appending to a file opened with O_APPEND, + but on other platforms led to a mangled output, causing + intermittent test failures. This has been fixed by disabling + traces from "receive-pack" in the test. + + Will merge to 'master'. + + +* mh/packed-ref-store-prep (2017-05-23) 26 commits + - cache_ref_iterator_begin(): avoid priming unneeded directories + - ref-filter: limit traversal to prefix + - create_ref_entry(): remove `check_name` option + - refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA` + - read_packed_refs(): report unexpected fopen() failures + - read_packed_refs(): do more of the work of reading packed refs + - get_packed_ref_cache(): assume "packed-refs" won't change while locked + - should_pack_ref(): new function, extracted from `files_pack_refs()` + - ref_update_reject_duplicates(): add a sanity check + - ref_update_reject_duplicates(): use `size_t` rather than `int` + - ref_update_reject_duplicates(): expose function to whole refs module + - ref_transaction_prepare(): new optional step for reference updates + - ref_transaction_commit(): check for valid `transaction->state` + - files_transaction_cleanup(): new helper function + - files_ref_store: put the packed files lock directly in this struct + - files-backend: move `lock` member to `files_ref_store` + - lockfile: add a new method, is_lock_file_locked() + - ref_store: take a `msg` parameter when deleting references + - refs: use `size_t` indexes when iterating over ref transaction updates + - refs_ref_iterator_begin(): don't check prefixes redundantly + - prefix_ref_iterator: don't trim too much + - files-backend: use `die("BUG: ...")`, not `die("internal error: ...")` + - ref_iterator_begin_fn(): fix docstring + - refs.h: clarify docstring for the ref_transaction_update()-related fns + - t3600: clean up permissions test properly + - Merge branch 'bc/object-id' + (this branch uses bc/object-id.) + + The implementation of "ref" API around the "packed refs" have been + cleaned up, in preparation for further changes. + + Will merge to 'next'. + + +* sl/clean-d-ignored-fix (2017-05-22) 7 commits + - SQUASH???? + - clean: teach clean -d to skip dirs containing ignored files + - dir: expose cmp_name() and check_contains() + - dir: hide untracked contents of untracked dirs + - dir: recurse into untracked dirs for ignored files + - t7061: status --ignored should search untracked dirs + - t7300: clean -d should skip dirs with ignored files + + "git clean -d" used to clean directories that has ignored files, + even though the command should not lose ignored ones without "-x". + This has been corrected. + + Expecting a reroll. + cf. + + +* tg/stash-push-fixup (2017-05-17) 1 commit + (merged to 'next' on 2017-05-23 at 338eb650f2) + + completion: add git stash push + + The shell completion script (in contrib/) learned "git stash" has + a new "push" subcommand. + + Will merge to 'master'. + + +* ab/sha1dc (2017-05-22) 3 commits + - sha1collisiondetection: automatically enable when submodule is populated + - sha1dc: optionally use sha1collisiondetection as a submodule + - sha1dc: update from upstream + + The "collission-detecting" implementation of SHA-1 hash we borrowed + from is replaced by directly binding the upstream project as our + submodule. + + Will keep in 'pu' for a few CI cycles. + Impact to the various build and release infrastructure of using + submodule is not yet fully known, but this lets us dip our toes. + + +* bp/fsmonitor (2017-05-21) 10 commits + - SQUASH??? + - SQUASH??? + - SQUASH??? + - fsmonitor: add a sample query-fsmonitor hook script for Watchman + - fsmonitor: add documentation for the fsmonitor extension. + - fsmonitor: add test cases for fsmonitor extension + - SQUASH??? + - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files. + - dir: make lookup_untracked() available outside of dir.c + - bswap: add 64 bit endianness helper get_be64 + + Expecting a reroll. + + +* dk/send-email-avoid-net-smtp-ssl-when-able (2017-05-20) 1 commit + (merged to 'next' on 2017-05-23 at fc59b8a1d4) + + send-email: Net::SMTP::SSL is obsolete, use only when necessary + + "git send-email" now uses Net::SMTP::SSL, which is obsolete, only + when needed. Recent versions of Net::SMTP can do TLS natively. + + Will merge to 'master'. + + +* jc/name-rev-lw-tag (2017-03-29) 2 commits + (merged to 'next' on 2017-05-23 at 3f88b6d73c) + + name-rev: favor describing with tags and use committer date to tiebreak + + name-rev: refactor logic to see if a new candidate is a better name + (this branch is used by mg/name-rev-debug.) + + "git describe --contains" penalized light-weight tags so much that + they were almost never considered. Instead, give them about the + same chance to be considered as an annotated tag that is the same + age as the underlying commit would. + + Will merge to 'master'. + + +* jk/diff-blob (2017-05-20) 15 commits + - diff: use blob path for blob/file diffs + - diff: use pending "path" if it is available + - diff: use the word "path" instead of "name" for blobs + - diff: pass whole pending entry in blobinfo + - handle_revision_arg: record paths for pending objects + - handle_revision_arg: record modes for "a..b" endpoints + - t4063: add tests of direct blob diffs + - get_sha1_with_context: dynamically allocate oc->path + - get_sha1_with_context: always initialize oc->symlink_path + - sha1_name: consistently refer to object_context as "oc" + - handle_revision_arg: add handle_dotdot() helper + - handle_revision_arg: hoist ".." check out of range parsing + - handle_revision_arg: stop using "dotdot" as a generic pointer + - handle_revision_arg: simplify commit reference lookups + - handle_revision_arg: reset "dotdot" consistently + + The result from "git diff" that compares two blobs, e.g. "git diff + $commit1:$path $commit2:$path", used to be shown with the full + object name as given on the command line, but it is more natural to + use the $path in the output and use it to look up .gitattributes. + + Needs review. + + +* jk/ignore-broken-tags-when-ignoring-missing-links (2017-05-20) 1 commit + (merged to 'next' on 2017-05-23 at 977491e52a) + + revision.c: ignore broken tags with ignore_missing_links + + Tag objects, which are not reachable from any ref, that point at + missing objects were mishandled by "git gc" and friends (they + should silently be ignored instead) + + Will merge to 'master'. + + +* js/bs-is-a-dir-sep-on-windows (2017-05-20) 2 commits + (merged to 'next' on 2017-05-23 at e27040ceb0) + + Windows: do not treat a path with backslashes as a remote's nick name + + mingw.h: permit arguments with side effects for is_dir_sep + + "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no + slashes in it, cannot be a nickname for a remote on Windows, as + that is likely to be a pathname on a local filesystem. + + Will merge to 'master'. + + +* js/larger-timestamps (2017-05-20) 1 commit + (merged to 'next' on 2017-05-23 at 16f7c9e677) + + name-rev: change a "long" variable to timestamp_t + + A follow-up hotfix for a topic already in 'master'. + + Will merge to 'master'. + + +* km/log-showsignature-doc (2017-05-20) 1 commit + (merged to 'next' on 2017-05-23 at f43ea11956) + + config.txt: add an entry for log.showSignature + + Will merge to 'master'. + + +* kn/ref-filter-branch-list (2017-05-20) 1 commit + (merged to 'next' on 2017-05-23 at e0cc721af0) + + ref-filter: resolve HEAD when parsing %(HEAD) atom + + "git for-each-ref --format=..." with %(HEAD) in the format used to + resolve the HEAD symref as many times as it had processed refs, + which was wasteful, and "git branch" shared the same problem. + + Will merge to 'master'. + + +* pw/rebase-i-regression-fix (2017-05-20) 3 commits + (merged to 'next' on 2017-05-23 at 14676d0013) + + rebase -i: add missing newline to end of message + + rebase -i: silence stash apply + + rebase -i: fix reflog message + + Regression fix to topic recently merged to 'master'. + + Will merge to 'master'. + + +* sb/diff-color-move (2017-05-23) 17 commits + . diff.c: color moved lines differently + . diff: buffer all output if asked to + . diff.c: emit_line includes whitespace highlighting + . diff.c: convert diff_summary to use emit_line_* + . diff.c: convert diff_flush to use emit_line_* + . diff.c: convert word diffing to use emit_line_* + . diff.c: convert show_stats to use emit_line_* + . diff.c: convert emit_binary_diff_body to use emit_line_* + . submodule.c: convert show_submodule_summary to use emit_line_fmt + . diff.c: convert emit_rewrite_lines to use emit_line_* + . diff.c: convert emit_rewrite_diff to use emit_line_* + . diff.c: convert builtin_diff to use emit_line_* + . diff.c: convert fn_out_consume to use emit_line + . diff: introduce more flexible emit function + . diff.c: factor out diff_flush_patch_all_file_pairs + . diff: move line ending check into emit_hunk_header + . diff: readability fix + + "git diff" has been taught to optionally paint new lines that are + the same as deleted lines elsewhere differently from genuinely new + lines. + + Seems to break t4060 when merged to 'next'. + + +* xz/send-email-batch-size (2017-05-23) 1 commit + - send-email: --batch-size to work around some SMTP server limit + + "git send-email" learned to overcome some SMTP server limitation + that does not allow many pieces of e-mails to be sent over a single + session. + + Waiting for response. + cf. + + * jh/memihash-opt (2017-05-16) 5 commits - - p0004: don't error out if test repo is too small - - p0004: don't abort if multi-threaded is too slow - - p0004: use test_perf - - p0004: avoid using pipes - - p0004: simplify calls of test-lazy-init-name-hash + (merged to 'next' on 2017-05-23 at 2f0293e8b8) + + p0004: don't error out if test repo is too small + + p0004: don't abort if multi-threaded is too slow + + p0004: use test_perf + + p0004: avoid using pipes + + p0004: simplify calls of test-lazy-init-name-hash perf-test update. - Will merge to 'next'. + Will merge to 'master'. * jk/bug-to-abort (2017-05-22) 4 commits @@ -408,20 +533,14 @@ of the repositories listed at Will merge to 'master'. -* jk/no-looking-at-dotgit-outside-repo (2017-05-15) 1 commit - - config: complain about --local outside of a git repo - - Will discard. - Superseded by jk/bug-to-abort. - - * jk/update-links-in-docs (2017-05-15) 1 commit - - doc: use https links to Wikipedia to avoid http redirects + (merged to 'next' on 2017-05-23 at 5b2df9fdbe) + + doc: use https links to Wikipedia to avoid http redirects A few http:// links that are redirected to https:// in the documentation have been updated to https:// links. - Will merge to 'next'. + Will merge to 'master'. * js/blame-lib (2017-05-15) 22 commits @@ -451,38 +570,48 @@ of the repositories listed at The internal logic used in "git blame" has been libified to make it easier to use by cgit. + RFC, and is hard to review due to renaming of symbols and moving of + lines across files are intermixed but I think the overall direction + is a good one. + + Expecting a rerolled non-RFC series. + cf. <20170514031513.9042-1-whydoubt@gmail.com> + * jt/send-email-validate-hook (2017-05-16) 1 commit - - send-email: support validate hook + (merged to 'next' on 2017-05-23 at 89848cb9ac) + + send-email: support validate hook "git send-email" learned to run sendemail-validate hook to inspect and reject a message before sending it out. - Will merge to 'next'. + Will merge to 'master'. * bw/pathspec-sans-the-index (2017-05-12) 6 commits - - pathspec: convert find_pathspecs_matching_against_index to take an index - - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP - - ls-files: prevent prune_cache from overeagerly pruning submodules - - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag - - submodule: add die_in_unpopulated_submodule function - - pathspec: provide a more descriptive die message + (merged to 'next' on 2017-05-23 at 45c8ef3115) + + pathspec: convert find_pathspecs_matching_against_index to take an index + + pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP + + ls-files: prevent prune_cache from overeagerly pruning submodules + + pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag + + submodule: add die_in_unpopulated_submodule function + + pathspec: provide a more descriptive die message Simplify parse_pathspec() codepath and stop it from looking at the default in-core index. - Will merge to 'next'. + Will merge to 'master'. * jt/fetch-allow-tip-sha1-implicitly (2017-05-16) 1 commit - - fetch-pack: always allow fetching of literal SHA1s + (merged to 'next' on 2017-05-23 at 690ed987df) + + fetch-pack: always allow fetching of literal SHA1s There is no good reason why "git fetch $there $sha1" should fail when the $sha1 names an object at the tip of an advertised ref, even when the other side hasn't enabled allowTipSHA1InWant. - Will merge to 'next'. + Will merge to 'master'. * jc/read-tree-empty-with-m (2017-05-10) 1 commit @@ -498,47 +627,26 @@ of the repositories listed at * ab/perf-wildmatch (2017-05-12) 2 commits - - perf: add test showing exponential growth in path globbing - - perf: add function to setup a fresh test repo + (merged to 'next' on 2017-05-23 at 0adb7dac31) + + perf: add test showing exponential growth in path globbing + + perf: add function to setup a fresh test repo Add perf-test for wildmatch. - Will merge to 'next'. + Will merge to 'master'. * jk/doc-config-include (2017-05-12) 4 commits - - docs/config: consistify include.path examples - - docs/config: avoid the term "expand" for includes - - docs/config: give a relative includeIf example - - docs/config: clarify include/includeIf relationship + (merged to 'next' on 2017-05-23 at 4f60843265) + + docs/config: consistify include.path examples + + docs/config: avoid the term "expand" for includes + + docs/config: give a relative includeIf example + + docs/config: clarify include/includeIf relationship Clarify documentation for include.path and includeIf..path configuration variables. - Will merge to 'next'. - - -* js/retire-old-remote-spec (2017-05-12) 11 commits - . PREVIEW: remove support for .git/remotes/ and .git/branches/ - . PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/ - . PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests - . PREVIEW: remote: remove support for migrating ancient remotes - . PREVIEW: t5516: stop testing .git/branches/ functionality - . PREVIEW: t5510: convert .git/remotes/ test to use a regular remote - . Revert "Revert "Don't create the $GIT_DIR/branches directory on init"" - . remote: warn loud and clear when .git/remotes/ is *still* used - . remote: warn loud and clear when .git/branches/ is *still* used - . Documentation: really deprecate .git/remotes/ and .git/branches/ - . git-parse-remote: fix highly misleading man page - - Stop reading from .git/remotes/ and .git/branches/, two old ways - that we have been supporting to configure short-hands for fetching - from remote repositories. - - Will discard. - The procedure of removing an old and unused feature is correctly - followed by this series, but it is far from clear that the feature - this attempts to remove is unused or useless. + Will merge to 'master'. * ab/grep-preparatory-cleanup (2017-05-21) 30 commits @@ -575,20 +683,12 @@ of the repositories listed at The internal implementation of "git grep" has seen some clean-up. - -* jt/push-options-doc (2017-05-10) 2 commits - (merged to 'next' on 2017-05-20 at ca7f344111) - + receive-pack: verify push options in cert - + docs: correct receive.advertisePushOptions default - - The receive-pack program now makes sure that the push certificate - records the same set of push options used for pushing. - - Will merge to 'master'. + Will merge to 'next'. * dt/unpack-save-untracked-cache-extension (2017-05-20) 1 commit - - unpack-trees: preserve index extensions + (merged to 'next' on 2017-05-23 at 3196d093d6) + + unpack-trees: preserve index extensions When "git checkout", "git merge", etc. manipulates the in-core index, various pieces of information in the index extensions are @@ -598,7 +698,7 @@ of the repositories listed at operations now, which would speed up "git status" (as long as the cache is properly invalidated). - Will merge to 'next'. + Will merge to 'master'. * sg/clone-refspec-from-command-line-config (2017-05-16) 4 commits @@ -612,6 +712,9 @@ of the repositories listed at variables take effect while the initial clone is happening, e.g. these configuration variables could be fetch refspecs. + Waiting for response. + cf. + * sb/checkout-recurse-submodules (2017-05-04) 3 commits (merged to 'next' on 2017-05-20 at f972b2069f) @@ -626,41 +729,15 @@ of the repositories listed at * ja/do-not-ask-needless-questions (2017-05-12) 3 commits - - git-filter-branch: be more direct in an error message - - read-tree -m: make error message for merging 0 trees less smart aleck - - usability: don't ask questions if no reply is required + (merged to 'next' on 2017-05-23 at 6b373cd892) + + git-filter-branch: be more direct in an error message + + read-tree -m: make error message for merging 0 trees less smart aleck + + usability: don't ask questions if no reply is required Git sometimes gives an advice in a rhetorical question that does not require an answer, which can confuse new users and non native speakers. Attempt to rephrase them. - Will merge to 'next'. - - -* ab/doc-replace-gmane-links (2017-05-09) 2 commits - (merged to 'next' on 2017-05-20 at 2c4f96560c) - + doc: replace more gmane links - + doc: replace a couple of broken gmane links - - The Web interface to gmane news archive is long gone, even though - the articles are still accessible via NTTP. Replace the links with - ones to public-inbox.org. Because their message identification is - based on the actual message-id, it is likely that it will be easier - to migrate away from it if/when necessary. - - Will merge to 'master'. - - -* ab/fix-poison-tests (2017-05-11) 3 commits - (merged to 'next' on 2017-05-20 at 5b13ba86bd) - + travis-ci: add job to run tests with GETTEXT_POISON - + travis-ci: setup "prove cache" in "script" step - + tests: fix tests broken under GETTEXT_POISON=YesPlease - - Update tests to pass under GETTEXT_POISON (a mechanism to ensure - that output strings that should not be translated are not - translated by mistake), and tell TravisCI to run them. - Will merge to 'master'. @@ -739,26 +816,6 @@ of the repositories listed at Will merge to 'master'. -* rs/checkout-am-fix-unborn (2017-05-08) 2 commits - (merged to 'next' on 2017-05-20 at d4f1ee3ed7) - + am: check return value of resolve_refdup before using hash - + checkout: check return value of resolve_refdup before using hash - - A few codepaths in "checkout" and "am" working on an unborn branch - tried to access an uninitialized piece of memory. - - Will merge to 'master'. - - -* bw/submodule-with-bs-path (2017-05-01) 1 commit - (merged to 'next' on 2017-05-20 at b740f784cb) - + t7400: add !CYGWIN prerequisite to 'add with \\ in path' - - A hotfix to a topic that is already in v2.13. - - Will merge to 'master'. - - * js/plug-leaks (2017-05-09) 26 commits (merged to 'next' on 2017-05-20 at fb136ea2dc) + checkout: fix memory leak @@ -807,14 +864,6 @@ of the repositories listed at Will cook in 'next'. -* ls/travis-relays-for-windows-ci (2017-05-04) 2 commits - (merged to 'next' on 2017-05-20 at 47f34b78e2) - + travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503 - + travis-ci: handle Git for Windows CI status "failed" explicitly - - Will merge to 'master'. - - * mb/diff-default-to-indent-heuristics (2017-05-09) 4 commits - add--interactive: drop diff.indentHeuristic handling - diff: enable indent heuristic by default @@ -824,14 +873,10 @@ of the repositories listed at Make the "indent" heuristics the default in "diff" and diff.indentHeuristics configuration variable an escape hatch for those who do no want it. - Kicked out of next; it seems it is still getting review suggestions? - - -* tb/dedup-crlf-tests (2017-05-10) 1 commit - (merged to 'next' on 2017-05-20 at 0a7ffff154) - + t0027: tests are not expensive; remove t0025 - - Will merge to 'master'. + Will merge to 'next'. + Looks like there may be follow-on work possible, but the topic + itself is in good order. + cf. <20170509033258.q7auj5p5lxs4tggd@sigill.intra.peff.net> * jc/repack-threads (2017-04-27) 1 commit @@ -873,6 +918,10 @@ of the repositories listed at optional, and silently ignore errors from open/fopen; report such errors if they are not due to missing files. + Will merge to 'next'. + Looks like this is now in a good shape. + cf. <20170503101706.9223-1-pclouds@gmail.com> + * bc/object-id (2017-05-08) 53 commits (merged to 'next' on 2017-05-20 at e7372733fb) @@ -929,23 +978,13 @@ of the repositories listed at + Convert struct cache_tree to use struct object_id + Clean up outstanding object_id transforms. + fetch-pack: convert to struct object_id + (this branch is used by mh/packed-ref-store-prep.) Conversion from uchar[20] to struct object_id continues. Will merge to 'master'. -* jc/checkout-working-tree-only (2017-04-27) 1 commit - - checkout: add --working-tree-only option - - "git checkout " learned a variant that does - not update the index when doing its thing. - - This was more of "the world could have been like this" illustration - rather than a "let's make this change" proposal. Unless people - really want it, I am inclined to discard this topic. Opinions? - - * js/rebase-i-final (2017-05-02) 10 commits - rebase -i: rearrange fixup/squash lines using the rebase--helper - t3415: test fixup with wrapped oneline @@ -965,25 +1004,26 @@ of the repositories listed at * bw/forking-and-threading (2017-05-15) 14 commits - - usage.c: drop set_error_handle() - - run-command: restrict PATH search to executable files - - run-command: expose is_executable function - - run-command: block signals between fork and execve - - run-command: add note about forking and threading - - run-command: handle dup2 and close errors in child - - run-command: eliminate calls to error handling functions in child - - run-command: don't die in child when duping /dev/null - - run-command: prepare child environment before forking - - string-list: add string_list_remove function - - run-command: use the async-signal-safe execv instead of execvp - - run-command: prepare command before forking - - t0061: run_command executes scripts without a #! line - - t5550: use write_script to generate post-update hook + (merged to 'next' on 2017-05-23 at 79a6a59851) + + usage.c: drop set_error_handle() + + run-command: restrict PATH search to executable files + + run-command: expose is_executable function + + run-command: block signals between fork and execve + + run-command: add note about forking and threading + + run-command: handle dup2 and close errors in child + + run-command: eliminate calls to error handling functions in child + + run-command: don't die in child when duping /dev/null + + run-command: prepare child environment before forking + + string-list: add string_list_remove function + + run-command: use the async-signal-safe execv instead of execvp + + run-command: prepare command before forking + + t0061: run_command executes scripts without a #! line + + t5550: use write_script to generate post-update hook The "run-command" API implementation has been made more robust against dead-locking in a threaded environment. - Will merge to 'next'. + Will merge to 'master'. * sb/reset-recurse-submodules (2017-04-23) 4 commits @@ -992,6 +1032,7 @@ of the repositories listed at + submodule.c: submodule_move_head works with broken submodules + submodule.c: uninitialized submodules are ignored in recursive commands + entry.c: submodule recursing: respect force flag correctly + (this branch is used by sb/submodule-blanket-recursive.) "git reset" learned "--recurse-submodules" option. @@ -999,22 +1040,23 @@ of the repositories listed at * bp/sub-process-convert-filter (2017-05-15) 11 commits - - convert: update subprocess_read_status() to not die on EOF - - sub-process: move sub-process functions into separate files - - convert: rename reusable sub-process functions - - convert: update generic functions to only use generic data structures - - convert: separate generic structures and variables from the filter specific ones - - convert: split start_multi_file_filter() into two separate functions - - pkt-line: annotate packet_writel with LAST_ARG_MUST_BE_NULL - - convert: move packet_write_line() into pkt-line as packet_writel() - - pkt-line: add packet_read_line_gently() - - pkt-line: fix packet_read_line() to handle len < 0 errors - - convert: remove erroneous tests for errno == EPIPE + (merged to 'next' on 2017-05-23 at 89f5420a82) + + convert: update subprocess_read_status() to not die on EOF + + sub-process: move sub-process functions into separate files + + convert: rename reusable sub-process functions + + convert: update generic functions to only use generic data structures + + convert: separate generic structures and variables from the filter specific ones + + convert: split start_multi_file_filter() into two separate functions + + pkt-line: annotate packet_writel with LAST_ARG_MUST_BE_NULL + + convert: move packet_write_line() into pkt-line as packet_writel() + + pkt-line: add packet_read_line_gently() + + pkt-line: fix packet_read_line() to handle len < 0 errors + + convert: remove erroneous tests for errno == EPIPE Code from "conversion using external process" codepath has been extracted to a separate sub-process.[ch] module. - Will merge to 'next'. + Will merge to 'master'. * nd/prune-in-worktree (2017-04-24) 12 commits @@ -1041,7 +1083,6 @@ of the repositories listed at Has been waiting for nd/worktree-kill-parse-ref to settle. cf. - -------------------------------------------------- [Discard] @@ -1057,3 +1098,42 @@ of the repositories listed at cf. +* jk/no-looking-at-dotgit-outside-repo (2017-05-15) 1 commit + . config: complain about --local outside of a git repo + + Will discard. + Superseded by jk/bug-to-abort. + + +* js/retire-old-remote-spec (2017-05-12) 11 commits + . PREVIEW: remove support for .git/remotes/ and .git/branches/ + . PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/ + . PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests + . PREVIEW: remote: remove support for migrating ancient remotes + . PREVIEW: t5516: stop testing .git/branches/ functionality + . PREVIEW: t5510: convert .git/remotes/ test to use a regular remote + . Revert "Revert "Don't create the $GIT_DIR/branches directory on init"" + . remote: warn loud and clear when .git/remotes/ is *still* used + . remote: warn loud and clear when .git/branches/ is *still* used + . Documentation: really deprecate .git/remotes/ and .git/branches/ + . git-parse-remote: fix highly misleading man page + + Stop reading from .git/remotes/ and .git/branches/, two old ways + that we have been supporting to configure short-hands for fetching + from remote repositories. + + Will discard. + The procedure of removing an old and unused feature is correctly + followed by this series, but it is far from clear that the feature + this attempts to remove is unused or useless. + + +* jc/checkout-working-tree-only (2017-04-27) 1 commit + . checkout: add --working-tree-only option + + "git checkout " learned a variant that does + not update the index when doing its thing. + + Will discard. + This was more of "the world could have been like this" illustration + rather than a "let's make this change" proposal.