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