From eff6552db495fff8c7d665c78b990fdbb7b1d454 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 7 Feb 2018 15:11:26 -0800 Subject: [PATCH] What's cooking (2018/02 #01) --- whats-cooking.txt | 737 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 520 insertions(+), 217 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index a1e0beff9c..c7029092fd 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 (Jan 2018, #04; Wed, 31) +Subject: What's cooking in git.git (Feb 2018, #01; Wed, 7) X-master-at: 5be1f00a9a701532232f57958efab4be8c959a29 -X-next-at: de0f0111ea2ad3a2b03a378e6272c2ee476a26ed +X-next-at: fa21fb2ec8acbede1bf0ed3cca9e96e2445d38d1 -What's cooking in git.git (Jan 2018, #04; Wed, 31) +What's cooking in git.git (Feb 2018, #01; Wed, 7) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -28,188 +28,189 @@ of the repositories listed at -------------------------------------------------- [New Topics] -* ab/fetch-prune (2018-01-24) 11 commits - - fetch: add a --fetch-prune option and fetch.pruneTags config - - fetch tests: add scaffolding for the new fetch.pruneTags - - git-fetch & config doc: link to the new PRUNING section - - git remote doc: correct dangerous lies about what prune does - - git fetch doc: add a new section to explain the ins & outs of pruning - - fetch tests: test --prune and refspec interaction - - fetch tests: add a tag to be deleted to the pruning tests - - fetch tests: re-arrange arguments for future readability - - fetch tests: refactor in preparation for testing tag pruning - - fetch: stop accessing "remote" variable indirectly - - fetch: don't redundantly NULL something calloc() gave us +* bc/hash-algo (2018-02-02) 12 commits + - bulk-checkin: abstract SHA-1 usage + - csum-file: abstract uses of SHA-1 + - csum-file: rename sha1file to hashfile + - read-cache: abstract away uses of SHA-1 + - pack-write: switch various SHA-1 values to abstract forms + - pack-check: convert various uses of SHA-1 to abstract forms + - fast-import: switch various uses of SHA-1 to the_hash_algo + - sha1_file: switch uses of SHA-1 to the_hash_algo + - builtin/unpack-objects: switch uses of SHA-1 to the_hash_algo + - builtin/index-pack: improve hash function abstraction + - hash: create union for hash context allocation + - hash: move SHA-1 macros to hash.h + + More abstraction of hash function from the codepath. - Clarify how configured fetch refspecs interact with the "--prune" - option of "git fetch", and also add a handy short-hand for getting - rid of stale tags that are locally held. + Will merge to 'next'. -* gs/retire-mru (2018-01-24) 1 commit - - mru: Replace mru.[ch] with list.h implementation - (this branch uses ot/mru-on-list.) +* bp/untracked-cache-noflush (2018-02-05) 1 commit + - dir.c: don't flag the index as dirty for changes to the untracked cache - Retire mru API as it does not give enough abstraction over - underlying list API to be worth it. + Writing out the index file when the only thing that changed in it + is the untracked cache information is often wasteful, and this has + been optimized out. - Will merge to 'next'. + Waiting for the discussion to finish. + cf. -* jc/mailinfo-cleanup-fix (2018-01-24) 1 commit - - mailinfo: avoid segfault when can't open files - - Corner case bugfix. +* cc/perf-aggregate (2018-02-02) 3 commits + - perf/aggregate: sort JSON fields in output + - perf/aggregate: add --reponame option + - perf/aggregate: add --subsection option Will merge to 'next'. -* po/clang-format-functype-weight (2018-01-24) 1 commit - - clang-format: adjust penalty for return type line break +* gs/rebase-allow-empty-message (2018-02-07) 1 commit + - rebase: add --allow-empty-message option - Prevent "clang-format" from breaking line after function return type. + "git rebase" learned to take "--allow-empty-message" option. Will merge to 'next'. -* po/http-push-error-message (2018-01-24) 1 commit - - http-push: improve error log +* jc/blame-missing-path (2018-02-07) 1 commit + - blame: tighten command line parser - Debugging aid. + "git blame HEAD COPYING" in a bare repository failed to run, while + "git blame HEAD -- COPYING" run just fine. Will merge to 'next'. -* po/object-id (2018-01-30) 12 commits - - sha1_file: rename hash_sha1_file_literally - - sha1_file: convert write_loose_object to object_id - - sha1_file: convert force_object_loose to object_id - - sha1_file: convert write_sha1_file to object_id - - notes: convert write_notes_tree to object_id - - notes: convert combine_notes_* to object_id - - commit: convert commit_tree* to object_id - - match-trees: convert splice_tree to object_id - - cache: clear whole hash buffer with oidclr - - sha1_file: convert hash_sha1_file to object_id - - dir: convert struct sha1_stat to use object_id - - sha1_file: convert pretend_sha1_file to object_id +* jt/binsearch-with-fanout (2018-02-02) 2 commits + - packfile: refactor hash search with fanout table + - packfile: remove GIT_DEBUG_LOOKUP log statements - Conversion from uchar[20] to struct object_id continues. + Refactor the code to binary search starting from a fan-out table + (which is how the packfile is indexed with object names) into a + reusable helper. + Will merge to 'next'. -* sg/travis-linux32-sanity (2018-01-30) 5 commits - - travis-ci: don't fail if user already exists on 32 bit Linux build job - - travis-ci: don't run the test suite as root in the 32 bit Linux build - - travis-ci: don't repeat the path of the cache directory - - travis-ci: use 'set -e' in the 32 bit Linux build job - - travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux build - Will merge to 'next'. +* lw/daemon-log-destination (2018-02-05) 1 commit + - daemon: add --log-destination=(stderr|syslog|none) + The log from "git daemon" can be redirected with a new option; one + relevant use case is to send the log to standard error (instead of + syslog) when running it from inetd. -* jk/daemon-fixes (2018-01-25) 6 commits - - daemon: fix length computation in newline stripping - - t/lib-git-daemon: add network-protocol helpers - - daemon: handle NULs in extended attribute string - - daemon: fix off-by-one in logging extended attributes - - t/lib-git-daemon: record daemon log - - t5570: use ls-remote instead of clone for interp tests + Will merge to 'next'. -* jt/long-running-process-doc (2018-01-25) 1 commit - - Docs: split out long-running subprocess handshake +* nd/diff-stat-with-summary (2018-02-02) 2 commits + - diff: add --stat-with-summary + - diff.c: refactor pprint_rename() to use strbuf + Waiting for the discussion to finish. -* nd/format-patch-stat-width (2018-01-25) 2 commits - - format-patch: reduce patch diffstat width to 72 - - format-patch: keep cover-letter diffstat wrapped in 72 columns +* nd/parseopt-completion (2018-02-07) 42 commits + - SQUASH??? + - completion: use __gitcomp_builtin in _git_worktree + - completion: use __gitcomp_builtin in _git_tag + - completion: use __gitcomp_builtin in _git_status + - completion: use __gitcomp_builtin in _git_show_branch + - completion: use __gitcomp_builtin in _git_rm + - completion: use __gitcomp_builtin in _git_revert + - completion: use __gitcomp_builtin in _git_reset + - completion: use __gitcomp_builtin in _git_replace + - remote: force completing --mirror= instead of --mirror + - completion: use __gitcomp_builtin in _git_remote + - completion: use __gitcomp_builtin in _git_push + - completion: use __gitcomp_builtin in _git_pull + - completion: use __gitcomp_builtin in _git_notes + - completion: use __gitcomp_builtin in _git_name_rev + - completion: use __gitcomp_builtin in _git_mv + - completion: use __gitcomp_builtin in _git_merge_base + - completion: use __gitcomp_builtin in _git_merge + - completion: use __gitcomp_builtin in _git_ls_remote + - completion: use __gitcomp_builtin in _git_ls_files + - completion: use __gitcomp_builtin in _git_init + - completion: use __gitcomp_builtin in _git_help + - completion: use __gitcomp_builtin in _git_grep + - completion: use __gitcomp_builtin in _git_gc + - completion: use __gitcomp_builtin in _git_fsck + - completion: use __gitcomp_builtin in _git_fetch + - completion: use __gitcomp_builtin in _git_difftool + - completion: use __gitcomp_builtin in _git_describe + - completion: use __gitcomp_builtin in _git_config + - completion: use __gitcomp_builtin in _git_commit + - completion: use __gitcomp_builtin in _git_clone + - completion: use __gitcomp_builtin in _git_clean + - completion: use __gitcomp_builtin in _git_cherry_pick + - completion: use __gitcomp_builtin in _git_checkout + - completion: use __gitcomp_builtin in _git_branch + - completion: use __gitcomp_builtin in _git_apply + - completion: use __gitcomp_builtin in _git_am + - completion: use __gitcomp_builtin in _git_add + - git-completion.bash: introduce __gitcomp_builtin + - parse-options: let OPT__FORCE take optional flags argument + - parse-options: add OPT_xxx_F() variants + - parse-options: support --git-completion-helper + + +* nd/trace-index-ops (2018-02-02) 1 commit + - trace: measure where the time is spent in the index-heavy operations -* nd/list-merge-strategy (2018-01-26) 1 commit - - completion: fix completing merge strategies on non-C locales + Will merge to 'next'. -* sb/pull-rebase-submodule (2018-01-25) 1 commit - - builtin/pull: respect verbosity settings in submodules +* pc/submodule-helper-foreach (2018-02-02) 5 commits + - submodule: port submodule subcommand 'foreach' from shell to C + - submodule foreach: document variable '$displaypath' + - submodule foreach: clarify the '$toplevel' variable documentation + - submodule foreach: document '$sm_path' instead of '$path' + - submodule foreach: correct '$path' in nested submodules from a subdirectory + Waiting for the discussion to finish. + cf. <20180206150044.1bffbb573c088d38c8e44bf5@google.com> -* sg/test-i18ngrep (2018-01-26) 10 commits - - t: make 'test_i18ngrep' more informative on failure - - t: make sure that 'test_i18ngrep' got enough parameters - - t: forbid piping into 'test_i18ngrep' - - t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh' - - t5536: let 'test_i18ngrep' read the file without redirection - - t5510: consolidate 'grep' and 'test_i18ngrep' patterns - - t4001: don't run 'git status' upstream of a pipe - - t6022: don't run 'git merge' upstream of a pipe - - t5812: add 'test_i18ngrep's missing filename parameter - - t5541: add 'test_i18ngrep's missing filename parameter +* rs/cocci-strbuf-addf-to-addstr (2018-02-02) 1 commit + - cocci: simplify check for trivial format strings -* bw/c-plus-plus (2018-01-30) 37 commits - - replace: rename 'new' variables - - trailer: rename 'template' variables - - tempfile: rename 'template' variables - - wrapper: rename 'template' variables - - environment: rename 'namespace' variables - - diff: rename 'template' variables - - environment: rename 'template' variables - - init-db: rename 'template' variables - - unpack-trees: rename 'new' variables - - trailer: rename 'new' variables - - submodule: rename 'new' variables - - split-index: rename 'new' variables - - remote: rename 'new' variables - - ref-filter: rename 'new' variables - - read-cache: rename 'new' variables - - line-log: rename 'new' variables - - imap-send: rename 'new' variables - - http: rename 'new' variables - - entry: rename 'new' variables - - diffcore-delta: rename 'new' variables - - diff: rename 'new' variables - - diff-lib: rename 'new' variable - - commit: rename 'new' variables - - combine-diff: rename 'new' variables - - remote: rename 'new' variables - - reflog: rename 'new' variables - - pack-redundant: rename 'new' variables - - help: rename 'new' variables - - checkout: rename 'new' variables - - apply: rename 'new' variables - - apply: rename 'try' variables - - diff: rename 'this' variables - - rev-parse: rename 'this' variable - - pack-objects: rename 'this' variables - - blame: rename 'this' variables - - object: rename function 'typename' to 'type_name' - - object_info: change member name from 'typename' to 'type_name' + Will merge to 'next'. -* ew/svn-branch-segfault-fix (2018-01-30) 1 commit - - git-svn: control destruction order to avoid segfault +* tg/reset-hard-show-head-with-pretty (2018-02-02) 1 commit + - reset --hard: make use of the pretty machinery - Workaround for segfault with more recent versions of SVN. + The way "git reset --hard" reports the commit the updated HEAD + points at is made consistent with the way how the commit title is + generated by the other parts of the system. This matters when the + title is spread across physically multiple lines. Will merge to 'next'. -* tz/doc-show-defaults-to-head (2018-01-30) 1 commit - - doc: mention 'git show' defaults to HEAD +* tg/worktree-add-existing-branch (2018-02-05) 3 commits + - worktree: teach "add" to check out existing branches + - worktree: be clearer when "add" dwim-ery kicks in + - worktree: improve message when creating a new worktree - Doc update. + "git worktree add" learned to check out an existing branch. - Will merge to 'next'. + Expecting a reroll. + cf. + cf. + The general idea is good, just end-user facing messages are found + suboptimal. -* nd/ignore-glob-doc-update (2018-01-31) 1 commit - - gitignore.txt: elaborate shell glob syntax +* nm/tag-edit (2018-02-07) 1 commit + - tag: add --edit option -* nd/rebase-show-current-patch (2018-01-31) 3 commits - - rebase: introduce and use pseudo-ref ORIG_COMMIT - - rebase: add --show-current-patch - - am: add --show-current-patch +* sm/mv-dry-run-update (2018-02-07) 2 commits + - mv: remove unneeded 'if (!show_only)' + - t7001: add test case for --dry-run -------------------------------------------------- [Stalled] @@ -353,6 +354,265 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* ab/fetch-prune (2018-01-24) 11 commits + - fetch: add a --fetch-prune option and fetch.pruneTags config + - fetch tests: add scaffolding for the new fetch.pruneTags + - git-fetch & config doc: link to the new PRUNING section + - git remote doc: correct dangerous lies about what prune does + - git fetch doc: add a new section to explain the ins & outs of pruning + - fetch tests: test --prune and refspec interaction + - fetch tests: add a tag to be deleted to the pruning tests + - fetch tests: re-arrange arguments for future readability + - fetch tests: refactor in preparation for testing tag pruning + - fetch: stop accessing "remote" variable indirectly + - fetch: don't redundantly NULL something calloc() gave us + + Clarify how configured fetch refspecs interact with the "--prune" + option of "git fetch", and also add a handy short-hand for getting + rid of stale tags that are locally held. + + Expecting a reroll. + cf. <87h8quytmq.fsf@evledraar.gmail.com> + + +* gs/retire-mru (2018-01-24) 1 commit + (merged to 'next' on 2018-02-07 at 4b2e893911) + + mru: Replace mru.[ch] with list.h implementation + (this branch uses ot/mru-on-list.) + + Retire mru API as it does not give enough abstraction over + underlying list API to be worth it. + + Will merge to 'master'. + + +* ot/mru-on-list (2017-10-01) 1 commit + (merged to 'next' on 2018-02-07 at ee1ee4ac79) + + mru: use double-linked list from list.h + (this branch is used by gs/retire-mru.) + + The first step to getting rid of mru API and using the + doubly-linked list API directly instead. + + Will merge to 'master'. + + +* jc/mailinfo-cleanup-fix (2018-01-24) 1 commit + (merged to 'next' on 2018-02-07 at 65d41f993b) + + mailinfo: avoid segfault when can't open files + + Corner case bugfix. + + Will merge to 'master'. + + +* po/clang-format-functype-weight (2018-01-24) 1 commit + (merged to 'next' on 2018-02-07 at 0724aaae38) + + clang-format: adjust penalty for return type line break + + Prevent "clang-format" from breaking line after function return type. + + Will merge to 'master'. + + +* po/http-push-error-message (2018-01-24) 1 commit + (merged to 'next' on 2018-02-07 at 3dccd32857) + + http-push: improve error log + + Debugging aid. + + Will merge to 'master'. + + +* po/object-id (2018-01-30) 12 commits + - sha1_file: rename hash_sha1_file_literally + - sha1_file: convert write_loose_object to object_id + - sha1_file: convert force_object_loose to object_id + - sha1_file: convert write_sha1_file to object_id + - notes: convert write_notes_tree to object_id + - notes: convert combine_notes_* to object_id + - commit: convert commit_tree* to object_id + - match-trees: convert splice_tree to object_id + - cache: clear whole hash buffer with oidclr + - sha1_file: convert hash_sha1_file to object_id + - dir: convert struct sha1_stat to use object_id + - sha1_file: convert pretend_sha1_file to object_id + + Conversion from uchar[20] to struct object_id continues. + + Will merge to 'next'. + + +* sg/travis-linux32-sanity (2018-01-30) 5 commits + (merged to 'next' on 2018-02-07 at 0349cf505c) + + travis-ci: don't fail if user already exists on 32 bit Linux build job + + travis-ci: don't run the test suite as root in the 32 bit Linux build + + travis-ci: don't repeat the path of the cache directory + + travis-ci: use 'set -e' in the 32 bit Linux build job + + travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux build + + Travis updates. + + Will merge to 'master'. + + +* jk/daemon-fixes (2018-01-25) 6 commits + (merged to 'next' on 2018-02-07 at 0e4fe8f8cc) + + daemon: fix length computation in newline stripping + + t/lib-git-daemon: add network-protocol helpers + + daemon: handle NULs in extended attribute string + + daemon: fix off-by-one in logging extended attributes + + t/lib-git-daemon: record daemon log + + t5570: use ls-remote instead of clone for interp tests + + Assorted fixes to "git daemon". + + Will merge to 'master'. + + +* jt/long-running-process-doc (2018-01-25) 1 commit + (merged to 'next' on 2018-02-07 at 8bbb42ad3c) + + Docs: split out long-running subprocess handshake + + Doc updates. + + Will merge to 'master'. + + +* nd/format-patch-stat-width (2018-02-02) 2 commits + - format-patch: reduce patch diffstat width to 72 + - format-patch: keep cover-letter diffstat wrapped in 72 columns + + "git format-patch" learned to give 72-cols to diffstat, which is + consistent with other line length limits the subcommand uses for + its output meant for e-mails. + + Will merge to 'next'. + + +* nd/list-merge-strategy (2018-01-26) 1 commit + (merged to 'next' on 2018-02-07 at a75d04a675) + + completion: fix completing merge strategies on non-C locales + + Completion of "git merge -s" (in contrib/) did not work + well in non-C locale. + + Will merge to 'master'. + + +* sb/pull-rebase-submodule (2018-01-25) 1 commit + - builtin/pull: respect verbosity settings in submodules + + Will merge to 'next'. + + +* sg/test-i18ngrep (2018-01-26) 10 commits + - t: make 'test_i18ngrep' more informative on failure + - t: make sure that 'test_i18ngrep' got enough parameters + - t: forbid piping into 'test_i18ngrep' + - t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh' + - t5536: let 'test_i18ngrep' read the file without redirection + - t5510: consolidate 'grep' and 'test_i18ngrep' patterns + - t4001: don't run 'git status' upstream of a pipe + - t6022: don't run 'git merge' upstream of a pipe + - t5812: add 'test_i18ngrep's missing filename parameter + - t5541: add 'test_i18ngrep's missing filename parameter + + Test fixes. + + Expecting a reroll. + cf. + + +* bw/c-plus-plus (2018-01-30) 37 commits + - replace: rename 'new' variables + - trailer: rename 'template' variables + - tempfile: rename 'template' variables + - wrapper: rename 'template' variables + - environment: rename 'namespace' variables + - diff: rename 'template' variables + - environment: rename 'template' variables + - init-db: rename 'template' variables + - unpack-trees: rename 'new' variables + - trailer: rename 'new' variables + - submodule: rename 'new' variables + - split-index: rename 'new' variables + - remote: rename 'new' variables + - ref-filter: rename 'new' variables + - read-cache: rename 'new' variables + - line-log: rename 'new' variables + - imap-send: rename 'new' variables + - http: rename 'new' variables + - entry: rename 'new' variables + - diffcore-delta: rename 'new' variables + - diff: rename 'new' variables + - diff-lib: rename 'new' variable + - commit: rename 'new' variables + - combine-diff: rename 'new' variables + - remote: rename 'new' variables + - reflog: rename 'new' variables + - pack-redundant: rename 'new' variables + - help: rename 'new' variables + - checkout: rename 'new' variables + - apply: rename 'new' variables + - apply: rename 'try' variables + - diff: rename 'this' variables + - rev-parse: rename 'this' variable + - pack-objects: rename 'this' variables + - blame: rename 'this' variables + - object: rename function 'typename' to 'type_name' + - object_info: change member name from 'typename' to 'type_name' + + I do not mind refraining from using these keywords in a foreign + language in our codebase too much, but at the same time, renaming + must be done a bit more thoughtfully. When the original uses 'new' + together with and in contrast to 'old', renaming 'new' must be done + while preserving the pairing (which may involve renaming 'old' as + well), for example. + + Backburnered, i.e. will drop if other topics start to conflict with + it, but will accept rerolls. + + +* ew/svn-branch-segfault-fix (2018-01-30) 1 commit + (merged to 'next' on 2018-02-07 at 1bf8d8f74f) + + git-svn: control destruction order to avoid segfault + + Workaround for segfault with more recent versions of SVN. + + Will merge to 'master'. + + +* tz/doc-show-defaults-to-head (2018-01-30) 1 commit + (merged to 'next' on 2018-02-07 at fa21fb2ec8) + + doc: mention 'git show' defaults to HEAD + + Doc update. + + Will merge to 'master'. + + +* nd/ignore-glob-doc-update (2018-02-02) 1 commit + - gitignore.txt: elaborate shell glob syntax + + Doc update. + + Will merge to 'next'. + + +* nd/rebase-show-current-patch (2018-01-31) 3 commits + - rebase: introduce and use pseudo-ref ORIG_COMMIT + - rebase: add --show-current-patch + - am: add --show-current-patch + + The new "--show-current-patch" option gives an end-user facing way + to get the diff being applied when "git rebase" (and "git am") + stops with a conflict. + + Expecting a reroll. + cf. + + * jh/status-no-ahead-behind (2018-01-24) 4 commits - status: support --no-ahead-behind in long format - status: update short status to respect --no-ahead-behind @@ -363,6 +623,8 @@ of the repositories listed at between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. + At v5; is this ready for 'next'? + * nd/worktree-move (2018-01-24) 7 commits - worktree remove: allow it when $GIT_WORK_TREE is already gone @@ -375,28 +637,33 @@ of the repositories listed at "git worktree" learned move and remove subcommands. + Expecting a reroll. + cf. <20180124095357.19645-1-pclouds@gmail.com> + * nd/trace-with-env (2018-01-19) 7 commits - - run-command.c: print new cwd in trace_run_command() - - run-command.c: print env vars in trace_run_command() - - run-command.c: print program 'git' when tracing git_cmd mode - - run-command.c: introduce trace_run_command() - - trace.c: move strbuf_release() out of print_trace_line() - - trace: avoid unnecessary quoting - - sq_quote_argv: drop maxlen parameter + (merged to 'next' on 2018-02-07 at 68399411d9) + + run-command.c: print new cwd in trace_run_command() + + run-command.c: print env vars in trace_run_command() + + run-command.c: print program 'git' when tracing git_cmd mode + + run-command.c: introduce trace_run_command() + + trace.c: move strbuf_release() out of print_trace_line() + + trace: avoid unnecessary quoting + + sq_quote_argv: drop maxlen parameter The tracing machinery learned to report tweaking of environment variables as well. - Will merge to 'next'. + Will merge to 'master'. * cl/t9001-cleanup (2018-01-12) 1 commit - - t9001: use existing helper in send-email test + (merged to 'next' on 2018-02-07 at 9b194a9999) + + t9001: use existing helper in send-email test Test clean-up. - Will merge to 'next'. + Will merge to 'master'. * kg/packed-ref-cache-fix (2018-01-24) 6 commits @@ -410,65 +677,78 @@ of the repositories listed at Avoid mmapping small files while using packed refs (especially ones with zero size, which would cause later munmap() to fail). + Will merge to 'next'. + A change to a binsearch loop to work around picky complers was + unnecessarily hard to reason about, but it should do. + * ks/submodule-doc-updates (2018-01-16) 2 commits - - Doc/git-submodule: improve readability and grammar of a sentence - - Doc/gitsubmodules: make some changes to improve readability and syntax + (merged to 'next' on 2018-02-07 at aff2fa1650) + + Doc/git-submodule: improve readability and grammar of a sentence + + Doc/gitsubmodules: make some changes to improve readability and syntax Doc updates. - Will merge to 'next'. + Will merge to 'master'. * nd/shared-index-fix (2018-01-24) 3 commits - - read-cache: don't write index twice if we can't write shared index - - read-cache.c: move tempfile creation/cleanup out of write_shared_index - - read-cache.c: change type of "temp" in write_shared_index() + (merged to 'next' on 2018-02-07 at c5d6e68c91) + + read-cache: don't write index twice if we can't write shared index + + read-cache.c: move tempfile creation/cleanup out of write_shared_index + + read-cache.c: change type of "temp" in write_shared_index() - Will merge to 'next'. + Code clean-up. + + Will merge to 'master'. * rs/describe-unique-abbrev (2018-01-16) 1 commit - - describe: use strbuf_add_unique_abbrev() for adding short hashes + (merged to 'next' on 2018-02-07 at b5383e2d05) + + describe: use strbuf_add_unique_abbrev() for adding short hashes Code clean-up. - Will merge to 'next'. + Will merge to 'master'. * tb/crlf-conv-flags (2018-01-16) 1 commit - - convert_to_git(): safe_crlf/checksafe becomes int conv_flags + (merged to 'next' on 2018-02-07 at 1981be1b46) + + convert_to_git(): safe_crlf/checksafe becomes int conv_flags (this branch is used by ls/checkout-encoding.) Code clean-up. - Will merge to 'next'. + Will merge to 'master'. * nd/diff-flush-before-warning (2018-01-16) 1 commit - - diff.c: flush stdout before printing rename warnings + (merged to 'next' on 2018-02-07 at 9c67f58ae0) + + diff.c: flush stdout before printing rename warnings Avoid showing a warning message in the middle of a line of "git diff" output. - Will merge to 'next'. + Will merge to 'master'. * rb/hashmap-h-compilation-fix (2018-01-16) 1 commit - - hashmap.h: remove unused variable + (merged to 'next' on 2018-02-07 at 780bc6d06b) + + hashmap.h: remove unused variable Code clean-up. - Will merge to 'next'. + Will merge to 'master'. * cc/sha1-file-name (2018-01-19) 2 commits - - sha1_file: improve sha1_file_name() perfs - - sha1_file: remove static strbuf from sha1_file_name() + (merged to 'next' on 2018-02-07 at a50b171a84) + + sha1_file: improve sha1_file_name() perfs + + sha1_file: remove static strbuf from sha1_file_name() Code clean-up. - Will merge to 'next'. + Will merge to 'master'. * cl/send-email-reply-to (2018-01-17) 2 commits @@ -482,11 +762,12 @@ of the repositories listed at * ds/use-get-be64 (2018-01-19) 1 commit - - packfile: use get_be64() for large offsets + (merged to 'next' on 2018-02-07 at 6d6d5ba71d) + + packfile: use get_be64() for large offsets Code clean-up. - Will merge to 'next'. + Will merge to 'master'. * en/merge-recursive-fixes (2018-01-19) 3 commits @@ -495,10 +776,16 @@ of the repositories listed at - Tighten and correct a few testcases for merging and cherry-picking (this branch is used by en/rename-directory-detection.) + Will merge to 'next'. + * jc/worktree-add-short-help (2018-01-17) 1 commit - worktree: say that "add" takes an arbitrary commit in short-help + Error message fix. + + Will merge to 'next'. + * js/rebase-recreate-merge (2018-01-30) 10 commits - rebase -i: introduce --recreate-merges=[no-]rebase-cousins @@ -515,56 +802,69 @@ of the repositories listed at "git rebase" learned "--recreate-merges" to transplant the whole topology of commit graph elsewhere. + Not learning anything other than the parent info from an existing + merge was found unsatisfactory by some. It is something that can + be fixed incrementally without breaking end-user experience, I + would think, by doing the same cherry-pick 3-way merge. + cf. <87k1vpqq85.fsf@javad.com> + * jt/http-redact-cookies (2018-01-19) 2 commits - - http: support omitting data from traces - - http: support cookie redaction when tracing + (merged to 'next' on 2018-02-07 at a8c3416a7d) + + http: support omitting data from traces + + http: support cookie redaction when tracing The http tracing code, often used to debug connection issues, learned to redact potentially sensitive information from its output so that it can be more safely sharable. - Will merge to 'next'. + Will merge to 'master'. * mr/packed-ref-store-fix (2018-01-19) 1 commit - - files_initial_transaction_commit(): only unlock if locked + (merged to 'next' on 2018-02-07 at 17d32e99da) + + files_initial_transaction_commit(): only unlock if locked Crash fix for a corner case where an error codepath tried to unlock what it did not acquire lock on. - Will merge to 'next'. + Will merge to 'master'. * rs/strbuf-cocci-workaround (2018-01-19) 1 commit - - cocci: use format keyword instead of a literal string + (merged to 'next' on 2018-02-07 at 73a2c4c769) + + cocci: use format keyword instead of a literal string Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str) - Will merge to 'next'. + Will merge to 'master'. * sg/cocci-move-array (2018-01-22) 1 commit - - Use MOVE_ARRAY + (merged to 'next' on 2018-02-07 at 6ced765979) + + Use MOVE_ARRAY Code clean-up. - Will merge to 'next'. + Will merge to 'master'. * tg/split-index-fixes (2018-01-19) 3 commits - - travis: run tests with GIT_TEST_SPLIT_INDEX - - split-index: don't write cache tree with null oid entries - - read-cache: fix reading the shared index for other repos + (merged to 'next' on 2018-02-07 at 52d7a92ec5) + + travis: run tests with GIT_TEST_SPLIT_INDEX + + split-index: don't write cache tree with null oid entries + + read-cache: fix reading the shared index for other repos The split-index mode had a few corner case bugs fixed. - Will merge to 'next'. + Will merge to 'master'. * jt/fsck-code-cleanup (2018-01-23) 1 commit - fsck: fix leak when traversing trees + Will merge to 'next'. + * ab/wildmatch-tests (2018-01-30) 10 commits - wildmatch test: mark test as EXPENSIVE_ON_WINDOWS @@ -580,17 +880,24 @@ of the repositories listed at More tests for wildmatch functions. - Expecting an update. - cf. <87vaga9mgf.fsf@evledraar.gmail.com> + Will merge to 'next'. -* bw/protocol-v2 (2018-01-26) 27 commits +* bw/protocol-v2 (2018-02-07) 35 commits + - remote-curl: don't request v2 when pushing - remote-curl: implement stateless-connect command + - http: don't always add Git-Protocol header + - http: allow providing extra headers for http requests + - remote-curl: store the protocol version the server responded with - remote-curl: create copy of the service name - pkt-line: add packet_buf_write_len function - transport-helper: introduce stateless-connect - transport-helper: refactor process_connect_service - transport-helper: remove name parameter + - connect: don't request v2 when pushing + - connect: refactor git_connect to only get the protocol version once + - fetch-pack: support shallow requests + - upload-pack: support shallow requests - fetch-pack: perform a fetch using v2 - upload-pack: introduce fetch server command - push: pass ref patterns when pushing @@ -631,12 +938,13 @@ of the repositories listed at * pc/submodule-helper (2018-01-16) 2 commits - - submodule: port submodule subcommand 'deinit' from shell to C - - submodule: port submodule subcommand 'sync' from shell to C + (merged to 'next' on 2018-02-07 at 53b4524eca) + + submodule: port submodule subcommand 'deinit' from shell to C + + submodule: port submodule subcommand 'sync' from shell to C Rewrite two more "git submodule" subcommands in C. - Will merge to 'next'. + Will merge to 'master'. * sb/blame-color (2018-01-08) 4 commits @@ -645,6 +953,10 @@ of the repositories listed at - builtin/blame: dim uninteresting metadata - color.h: document and modernize header + Expecting a reroll. + cf. https://public-inbox.org/git/20171110011002.10179-1-sbeller@google.com/#t + error messages are funny, can segfault, ... + * sg/travis-build-during-script-phase (2018-01-08) 1 commit - travis-ci: build Git during the 'script' phase @@ -653,9 +965,9 @@ of the repositories listed at cf. <5DE3FA05-2347-4BE7-8A1A-A6E5FEEC7C2B@gmail.com> -* nd/fix-untracked-cache-invalidation (2018-01-24) 5 commits +* nd/fix-untracked-cache-invalidation (2018-02-07) 5 commits + - dir.c: ignore paths containing .git when invalidating untracked cache - dir.c: stop ignoring opendir() error in open_cached_dir() - - update-index doc: note a fixed bug in the untracked cache - dir.c: fix missing dir invalidation in untracked code - dir.c: avoid stat() in valid_cached_dir() - status: add a failing test showing a core.untrackedCache bug @@ -670,11 +982,12 @@ of the repositories listed at Code refactoring. - Undecided. + Undecided but inclined to drop. A "refactor" without the code that + benefit from the refactoring is hard to tell from code churn whose + only effect is potential to introduce bugs. -* ab/sha1dc-build (2017-12-12) 4 commits - . Makefile: use the sha1collisiondetection submodule by default +* ab/sha1dc-build (2017-12-08) 3 commits - sha1dc_git.h: re-arrange an ifdef chain for a subsequent change - Makefile: under "make dist", include the sha1collisiondetection submodule - Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto @@ -682,8 +995,7 @@ of the repositories listed at Push the submodule version of collision-detecting SHA-1 hash implementation a bit harder on builders. - The earlier two may make sense, but leaning toward rejecting the last step. - cf. + Will merge to 'next'. * ab/simplify-perl-makefile (2018-01-03) 3 commits @@ -697,7 +1009,7 @@ of the repositories listed at The build procedure for perl/ part has been greatly simplified by weaning ourselves off of MakeMaker. - Will cook in 'next'. + Will merge to 'master'. * en/rename-directory-detection (2018-01-31) 31 commits @@ -742,20 +1054,21 @@ of the repositories listed at * pw/sequencer-in-process-commit (2018-01-24) 14 commits - - sequencer: run 'prepare-commit-msg' hook - - t7505: add tests for cherry-pick and rebase -i/-p - - t7505: style fixes - - sequencer: assign only free()able strings to gpg_sign - - sequencer: improve config handling - - t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 - - sequencer: try to commit without forking 'git commit' - - sequencer: load commit related config - - sequencer: simplify adding Signed-off-by: trailer - - commit: move print_commit_summary() to libgit - - commit: move post-rewrite code to libgit - - Add a function to update HEAD after creating a commit - - commit: move empty message checks to libgit - - t3404: check intermediate squash messages + (merged to 'next' on 2018-02-07 at ab5961edd9) + + sequencer: run 'prepare-commit-msg' hook + + t7505: add tests for cherry-pick and rebase -i/-p + + t7505: style fixes + + sequencer: assign only free()able strings to gpg_sign + + sequencer: improve config handling + + t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 + + sequencer: try to commit without forking 'git commit' + + sequencer: load commit related config + + sequencer: simplify adding Signed-off-by: trailer + + commit: move print_commit_summary() to libgit + + commit: move post-rewrite code to libgit + + Add a function to update HEAD after creating a commit + + commit: move empty message checks to libgit + + t3404: check intermediate squash messages The sequencer infrastructure is shared across "git cherry-pick", "git rebase -i", etc., and has always spawned "git commit" when it @@ -764,7 +1077,7 @@ of the repositories listed at gives performance boost for a few tens of percents in some sample scenarios. - Will merge to 'next'. + Will merge to 'master'. * jh/fsck-promisors (2017-12-08) 10 commits @@ -789,7 +1102,7 @@ of the repositories listed at packfile specially marked as coming from trusted repository that promises to make them available on-demand and lazily. - Will cook in 'next'. + Will merge to 'master'. * jh/partial-clone (2017-12-08) 13 commits @@ -818,14 +1131,4 @@ of the repositories listed at tolerate missing objects, taking advantage of the mechanism introduced by the jh/fsck-promisors topic. - Will cook in 'next'. - - -* ot/mru-on-list (2017-10-01) 1 commit - - mru: use double-linked list from list.h - (this branch is used by gs/retire-mru.) - - The first step to getting rid of mru API and using the - doubly-linked list API directly instead. - - Will merge to 'next'. + Will merge to 'master'. -- 2.47.3