From: Junio C Hamano Date: Wed, 15 Aug 2018 23:01:07 +0000 (-0700) Subject: What's cooking (2018/08 #03) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a63be2f9bef440655fa710c2d98cccc75108cbfe;p=thirdparty%2Fgit.git What's cooking (2018/08 #03) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 95ef8c3925..145a58b629 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 (Aug 2018, #02; Mon, 6) -X-master-at: 1d89318c48d233d52f1db230cf622935ac3c69fa -X-next-at: 1932418f4676b98c810dd5182aeba50bbd7c02d4 +Subject: What's cooking in git.git (Aug 2018, #03; Wed, 15) +X-master-at: 63749b2dea5d1501ff85bab7b8a7f64911d21dea +X-next-at: a543ac7ca4538799a4ba8d9b2640e17e2fdf406f -What's cooking in git.git (Aug 2018, #02; Mon, 6) +What's cooking in git.git (Aug 2018, #03; Wed, 15) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -17,109 +17,759 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html +-------------------------------------------------- +[Graduated to "master"] + +* bb/make-developer-pedantic (2018-07-25) 1 commit + (merged to 'next' on 2018-08-02 at c738a84b7e) + + Makefile: add a DEVOPTS flag to get pedantic compilation + + "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile + with -pedantic option, which may catch more problematic program + constructs and potential bugs. + + +* bb/redecl-enum-fix (2018-07-26) 1 commit + (merged to 'next' on 2018-08-06 at 828dc4b156) + + packfile: ensure that enum object_type is defined + + Compilation fix. + + +* bw/clone-ref-prefixes (2018-07-20) 1 commit + (merged to 'next' on 2018-08-02 at c8ad140ab0) + + clone: send ref-prefixes when using protocol v2 + + The wire-protocol v2 relies on the client to send "ref prefixes" to + limit the bandwidth spent on the initial ref advertisement. "git + clone" when learned to speak v2 forgot to do so, which has been + corrected. + + +* bw/fetch-pack-i18n (2018-07-23) 1 commit + (merged to 'next' on 2018-08-02 at df72001755) + + fetch-pack: mark die strings for translation + + i18n updates. + + +* bw/protocol-v2 (2018-07-24) 1 commit + (merged to 'next' on 2018-08-02 at f4076b3e94) + + pack-protocol: mention and point to docs for protocol v2 + + Doc update. + + +* cb/p4-pre-submit-hook (2018-08-01) 1 commit + (merged to 'next' on 2018-08-06 at e40ae4af80) + + git-p4: add the `p4-pre-submit` hook + + "git p4 submit" learns to ask its own pre-submit hook if it should + continue with submitting. + + +* en/merge-recursive-skip-fix (2018-07-27) 2 commits + (merged to 'next' on 2018-08-06 at 9ab321a15c) + + merge-recursive: preserve skip_worktree bit when necessary + + t3507: add a testcase showing failure with sparse checkout + + When the sparse checkout feature is in use, "git cherry-pick" and + other mergy operations lost the skip_worktree bit when a path that + is excluded from checkout requires content level merge, which is + resolved as the same as the HEAD version, without materializing the + merge result in the working tree, which made the path appear as + deleted. This has been corrected by preserving the skip_worktree + bit (and not materializing the file in the working tree). + + +* es/diff-color-moved-fix (2018-07-25) 1 commit + (merged to 'next' on 2018-08-02 at 233bccfbfb) + + diff: --color-moved: rename "dimmed_zebra" to "dimmed-zebra" + + One of the "diff --color-moved" mode "dimmed_zebra" that was named + in an unusual way has been deprecated and replaced by + "dimmed-zebra". + + +* es/mw-to-git-chain-fix (2018-07-31) 1 commit + (merged to 'next' on 2018-08-06 at c10246e1c8) + + mw-to-git/t9360: fix broken &&-chain + + Test fix. + + +* hs/gpgsm (2018-07-20) 7 commits + (merged to 'next' on 2018-08-02 at db28bffe4f) + + gpg-interface t: extend the existing GPG tests with GPGSM + + gpg-interface: introduce new signature format "x509" using gpgsm + + gpg-interface: introduce new config to select per gpg format program + + gpg-interface: do not hardcode the key string len anymore + + gpg-interface: introduce an abstraction for multiple gpg formats + + t/t7510: check the validation of the new config gpg.format + + gpg-interface: add new config to select how to sign a commit + + Teach "git tag -s" etc. a few configuration variables (gpg.format + that can be set to "openpgp" or "x509", and gpg..program + that is used to specify what program to use to deal with the format) + to allow x.509 certs with CMS via "gpgsm" to be used instead of + openpgp via "gnupg". + + +* jh/json-writer (2018-07-16) 1 commit + (merged to 'next' on 2018-08-02 at d841450c7d) + + json_writer: new routines to create JSON data + (this branch is used by jh/structured-logging.) + + Preparatory code to later add json output for telemetry data. + + +* jk/banned-function (2018-07-26) 5 commits + (merged to 'next' on 2018-08-06 at 3dcd1999df) + + banned.h: mark strncpy() as banned + + banned.h: mark sprintf() as banned + + banned.h: mark strcat() as banned + + automatically ban strcpy() + + Merge branch 'sb/blame-color' into jk/banned-function + + It is too easy to misuse system API functions such as strcat(); + these selected functions are now forbidden in this codebase and + will cause a compilation failure. + + +* jk/core-use-replace-refs (2018-07-18) 3 commits + (merged to 'next' on 2018-08-02 at 90fb6b1056) + + add core.usereplacerefs config option + + check_replace_refs: rename to read_replace_refs + + check_replace_refs: fix outdated comment + + A new configuration variable core.usereplacerefs has been added, + primarily to help server installations that want to ignore the + replace mechanism altogether. + + +* jk/size-t (2018-07-24) 6 commits + (merged to 'next' on 2018-08-02 at 6f861e05f0) + + strbuf_humanise: use unsigned variables + + pass st.st_size as hint for strbuf_readlink() + + strbuf_readlink: use ssize_t + + strbuf: use size_t for length in intermediate variables + + reencode_string: use size_t for string lengths + + reencode_string: use st_add/st_mult helpers + + Code clean-up to use size_t/ssize_t when they are the right type. + + +* jk/ui-color-always-to-auto (2018-07-18) 1 commit + (merged to 'next' on 2018-08-02 at 1a054baf0e) + + Documentation: fix --color option formatting + + Doc formatting fix. + + +* jn/subtree-test-fixes (2018-07-30) 2 commits + (merged to 'next' on 2018-08-06 at 62f21c328f) + + subtree test: simplify preparation of expected results + + subtree test: add missing && to &&-chain + + Test fix. + + +* js/t7406-recursive-submodule-update-order-fix (2018-07-23) 1 commit + (merged to 'next' on 2018-08-02 at 217ea36a37) + + t7406: avoid failures solely due to timing issues + + Test fix. + + +* js/vscode (2018-07-30) 9 commits + (merged to 'next' on 2018-08-06 at 5c578b63a8) + + vscode: let cSpell work on commit messages, too + + vscode: add a dictionary for cSpell + + vscode: use 8-space tabs, no trailing ws, etc for Git's source code + + vscode: wrap commit messages at column 72 by default + + vscode: only overwrite C/C++ settings + + mingw: define WIN32 explicitly + + cache.h: extract enum declaration from inside a struct declaration + + vscode: hard-code a couple defines + + contrib: add a script to initialize VS Code configuration + + Add a script (in contrib/) to help users of VSCode work better with + our codebase. + + +* jt/connectivity-check-after-unshallow (2018-08-01) 1 commit + (merged to 'next' on 2018-08-06 at 1932418f46) + + fetch-pack: unify ref in and out param + + "git fetch" sometimes failed to update the remote-tracking refs, + which has been corrected. + + +* jt/tag-following-with-proto-v2-fix (2018-07-24) 2 commits + (merged to 'next' on 2018-08-02 at d9eabdea95) + + fetch: send "refs/tags/" prefix upon CLI refspecs + + t5702: test fetch with multiple refspecs at a time + + The wire-protocol v2 relies on the client to send "ref prefixes" to + limit the bandwidth spent on the initial ref advertisement. "git + fetch $remote branch:branch" that asks tags that point into the + history leading to the "branch" automatically followed sent to + narrow prefix and broke the tag following, which has been fixed. + + +* ms/http-proto-doc (2018-07-30) 1 commit + (merged to 'next' on 2018-08-06 at df1cac9945) + + doc: fix want-capability separator + + Doc fix. + + +* nd/i18n (2018-07-23) 23 commits + (merged to 'next' on 2018-08-02 at 904a22a5d1) + + transport-helper.c: mark more strings for translation + + transport.c: mark more strings for translation + + sha1-file.c: mark more strings for translation + + sequencer.c: mark more strings for translation + + replace-object.c: mark more strings for translation + + refspec.c: mark more strings for translation + + refs.c: mark more strings for translation + + pkt-line.c: mark more strings for translation + + object.c: mark more strings for translation + + exec-cmd.c: mark more strings for translation + + environment.c: mark more strings for translation + + dir.c: mark more strings for translation + + convert.c: mark more strings for translation + + connect.c: mark more strings for translation + + config.c: mark more strings for translation + + commit-graph.c: mark more strings for translation + + builtin/replace.c: mark more strings for translation + + builtin/pack-objects.c: mark more strings for translation + + builtin/grep.c: mark strings for translation + + builtin/config.c: mark more strings for translation + + archive-zip.c: mark more strings for translation + + archive-tar.c: mark more strings for translation + + Update messages in preparation for i18n + + Many more strings are prepared for l10n. + + +* nd/pack-objects-threading-doc (2018-07-30) 1 commit + (merged to 'next' on 2018-08-06 at cc8c305191) + + pack-objects: document about thread synchronization + + Doc fix. + + +* rs/remote-mv-leakfix (2018-08-01) 1 commit + (merged to 'next' on 2018-08-06 at 999fe6d3e5) + + remote: clear string_list after use in mv() + + Leakfix. + + +* sb/histogram-less-memory (2018-07-23) 4 commits + (merged to 'next' on 2018-08-02 at cfb02aa3b5) + + xdiff/histogram: remove tail recursion + + xdiff/xhistogram: move index allocation into find_lcs + + xdiff/xhistogram: factor out memory cleanup into free_index() + + xdiff/xhistogram: pass arguments directly to fall_back_to_classic_diff + + "git diff --histogram" had a bad memory usage pattern, which has + been rearranged to reduce the peak usage. + + +* sb/trailers-docfix (2018-07-20) 1 commit + (merged to 'next' on 2018-08-02 at ba348fafcd) + + Documentation/git-interpret-trailers: explain possible values + + Doc update. + + +* sg/coccicheck-updates (2018-07-23) 5 commits + (merged to 'next' on 2018-08-02 at b5548ff3a9) + + coccinelle: extract dedicated make target to clean Coccinelle's results + + coccinelle: put sane filenames into output patches + + coccinelle: exclude sha1dc source files from static analysis + + coccinelle: use $(addsuffix) in 'coccicheck' make target + + coccinelle: mark the 'coccicheck' make target as .PHONY + + Update the way we use Coccinelle to find out-of-style code that + need to be modernised. + + +* sg/fast-import-dump-refs-on-checkpoint-fix (2018-07-20) 1 commit + (merged to 'next' on 2018-08-02 at f5c05b5a2c) + + t9300: wait for background fast-import process to die after killing it + + Test update. + + +* sg/travis-cocci-diagnose-failure (2018-07-23) 2 commits + (merged to 'next' on 2018-08-02 at 54808a8778) + + travis-ci: fail if Coccinelle static analysis found something to transform + + travis-ci: run Coccinelle static analysis with two parallel jobs + + Update the way we run static analysis tool at TravisCI to make it + easier to use its findings. + + +* sg/travis-retrieve-trash-upon-failure (2018-08-01) 1 commit + (merged to 'next' on 2018-08-06 at d67def2a92) + + travis-ci: include the trash directories of failed tests in the trace log + + The Travis CI scripts were taught to ship back the test data from + failed tests. + -------------------------------------------------- [New Topics] -* js/rebase-merges-exec-fix (2018-08-06) 2 commits - - rebase --exec: make it work with --rebase-merges - - t3430: demonstrate what -r, --autosquash & --exec should do +* en/t7406-fixes (2018-08-08) 5 commits + (merged to 'next' on 2018-08-15 at c6a740d828) + + t7406: avoid using test_must_fail for commands other than git + + t7406: prefer test_* helper functions to test -[feds] + + t7406: avoid having git commands upstream of a pipe + + t7406: simplify by using diff --name-only instead of diff --raw + + t7406: fix call that was failing for the wrong reason - The "--exec" option to "git rebase --rebase-merges" placed the exec - commands at wrong places, which has been corrected. - - cf. + Test fixes. + Will merge to 'master'. -* nd/no-extern (2018-08-03) 12 commits - - submodule.h: drop extern from function declaration - - revision.h: drop extern from function declaration - - repository.h: drop extern from function declaration - - rerere.h: drop extern from function declaration - - line-range.h: drop extern from function declaration - - diff.h: remove extern from function declaration - - diffcore.h: drop extern from function declaration - - convert.h: drop 'extern' from function declaration - - cache-tree.h: drop extern from function declaration - - blame.h: drop extern on func declaration - - attr.h: drop extern from function declaration - - apply.h: drop extern on func declaration - Noiseword "extern" has been removed from function decls in the - header files. +* en/update-index-doc (2018-08-08) 1 commit + (merged to 'next' on 2018-08-15 at 3ee0ae14dc) + + git-update-index.txt: reword possibly confusing example - Will merge to 'next'. + Doc update. + Will merge to 'master'. -* ar/t4150-am-scissors-test-fix (2018-08-06) 1 commit - - t4150: fix broken test for am --scissors - Test fix. +* jc/update-index-doc (2018-08-08) 1 commit + (merged to 'next' on 2018-08-15 at 055994ccca) + + update-index: there no longer is `apply --index-info` - Will merge to 'next'. + Doc update. + + Will merge to 'master'. -* en/t3031-title-fix (2018-08-06) 1 commit - - t3031: update test description to mention desired behavior +* js/typofixes (2018-08-08) 2 commits + (merged to 'next' on 2018-08-15 at ce3932254a) + + remote-curl: remove spurious period + + git-compat-util.h: fix typo - Test fix. + Comment update. - Will merge to 'next'. + Will merge to 'master'. -* hn/config-in-code-comment (2018-08-06) 1 commit - - config: document git config getter return value +* jt/repack-promisor-packs (2018-08-09) 2 commits + - repack: repack promisor objects if -a or -A is set + - repack: refactor setup of pack-objects cmd - Header update. + After a partial clone, repeated fetches from promisor remote would + have accumulated many packfiles marked with .promisor bit without + getting them coalesced into fewer packfiles, hurting performance. + "git repack" now learned to repack them. Will merge to 'next'. -* jk/diff-rendered-docs (2018-08-06) 1 commit - - add a script to diff rendered documentation +* sk/instaweb-rh-update (2018-08-08) 2 commits + (merged to 'next' on 2018-08-15 at ce5f1115e9) + + git-instaweb: fix apache2 config with apache >= 2.4 + + git-instaweb: support Fedora/Red Hat apache module path - Developer support to allow the end result of documentation update - to be inspected more easily. + "git instaweb" has been adjusted to run better with newer Apache on + RedHat based distros. - Will merge to 'next'. + Will merge to 'master'. -* js/pull-rebase-type-shorthand (2018-08-06) 1 commit - - pull --rebase=: allow single-letter abbreviations for the type +* ab/submodule-relative-url-tests (2018-08-14) 1 commit + - submodule: add more exhaustive up-path testing - "git pull --rebase=interactive" learned "i" as a short-hand for - "interactive". + Test updates. Will merge to 'next'. -* nd/complete-config-vars (2018-08-06) 1 commit - - Makefile: add missing dependency for command-list.h +* ao/submodule-wo-gitmodules-checked-out (2018-08-14) 7 commits + - submodule: support reading .gitmodules even when it's not checked out + - t7506: clean up .gitmodules properly before setting up new scenario + - submodule: use the 'submodule--helper config' command + - submodule--helper: add a new 'config' subcommand + - t7411: be nicer to future tests and really clean things up + - submodule: factor out a config_set_in_gitmodules_file_gently function + - submodule: add a print_config_from_gitmodules() helper + + The submodule support has been updated to read from the blob at + HEAD:.gitmodules when the .gitmodules file is missing from the + working tree. + + I find the design a bit iffy in that our usual "missing in the + working tree? let's use the latest blob" fallback is to take it + from the index, not from the HEAD. - Build fix. + +* bw/submodule-name-to-dir (2018-08-10) 2 commits + - submodule: munge paths to submodule git directories + - submodule: create helper to build paths to submodule gitdirs + + In modern repository layout, the real body of a cloned submodule + repository is held in .git/modules/ of the superproject, indexed by + the submodule name. URLencode the submodule name before computing + the name of the directory to make sure they form a flat namespace. Will merge to 'next'. -* nd/config-blame-sort (2018-08-06) 1 commit - - config.txt: reorder blame stuff to keep config keys sorted +* cc/delta-islands (2018-08-10) 8 commits + - pack-objects: move 'layer' into 'struct packing_data' + - pack-objects: move tree_depth into 'struct packing_data' + - t5320: delta islands tests + - repack: add delta-islands support + - pack-objects: add delta-islands support + - pack-objects: refactor code into compute_layer_order() + - Add delta-islands.{c,h} + - packfile: make get_delta_base() non static + + Lift code from GitHub to restrict delta computation so that an + object that exists in one fork is not made into a delta against + another object that does not appear in the same forked repository. + + What's the doneness of this topic? + + +* ds/commit-graph-fsck (2018-08-13) 1 commit + (merged to 'next' on 2018-08-15 at a2f82d3cbd) + + t5318: use 'test_cmp_bin' to compare commit-graph files + + Test fix. + + Will merge to 'master'. - Doc fix. + +* en/incl-forward-decl (2018-08-15) 6 commits + - Remove forward declaration of an enum + - compat/precompose_utf8.h: use more common include guard style + - urlmatch.h: fix include guard + - Move definition of enum branch_track from cache.h to branch.h + - alloc: make allocate_alloc_state and clear_alloc_state more consistent + - Add missing includes and forward declarations + + Code hygiene improvement for the header files. Will merge to 'next'. -* wc/make-funnynames-shared-lazy-prereq (2018-08-06) 1 commit - - t: factor out FUNNYNAMES as shared lazy prereq +* es/chain-lint-more (2018-08-13) 6 commits + (merged to 'next' on 2018-08-15 at bb5150ee96) + + chainlint: add test of pathological case which triggered false positive + + chainlint: recognize multi-line quoted strings more robustly + + chainlint: let here-doc and multi-line string commence on same line + + chainlint: recognize multi-line $(...) when command cuddled with "$(" + + chainlint: match 'quoted' here-doc tags + + chainlint: match arbitrary here-docs tags rather than hard-coded names + + Improve built-in facility to catch broken &&-chain in the tests. + + Will merge to 'master'. + + +* jc/gpg-status (2018-08-09) 1 commit + (merged to 'next' on 2018-08-15 at 824781761a) + + gpg-interface: propagate exit status from gpg back to the callers + + Will merge to 'master'. + + +* jh/partial-clone-doc (2018-08-15) 1 commit + (merged to 'next' on 2018-08-15 at cf09e8be6a) + + partial-clone: render design doc using asciidoc + + Doc updates. + + Will merge to 'master'. + + +* jk/for-each-object-iteration (2018-08-14) 11 commits + (merged to 'next' on 2018-08-15 at e2558810ff) + + for_each_*_object: move declarations to object-store.h + + cat-file: use a single strbuf for all output + + cat-file: split batch "buf" into two variables + + cat-file: use oidset check-and-insert + + cat-file: support "unordered" output for --batch-all-objects + + cat-file: rename batch_{loose,packed}_object callbacks + + t1006: test cat-file --batch-all-objects with duplicates + + for_each_packed_object: support iterating in pack-order + + for_each_*_object: give more comprehensive docstrings + + for_each_*_object: take flag arguments as enum + + for_each_*_object: store flag definitions in a single location + + The API to iterate over all objects learned to optionally list + objects in the order they appear in packfiles, which helps locality + of access if the caller accesses these objects while as objects are + enumerated. + + Will merge to 'master'. + + +* js/chain-lint-attrfix (2018-08-15) 1 commit + (merged to 'next' on 2018-08-15 at e9ad19a848) + + chainlint: fix for core.autocrlf=true + + Test fix. + + Will merge to 'master'. + + +* js/mingw-o-append (2018-08-13) 1 commit + (merged to 'next' on 2018-08-15 at 284527a0fb) + + mingw: enable atomic O_APPEND + + Among the three codepaths we use O_APPEND to open a file for + appending, one used for writing GIT_TRACE output requires O_APPEND + implementation that behaves sensibly when multiple processes are + writing to the same file. POSIX emulation used in the Windows port + has been updated to improve in this area. + + Will merge to 'master'. + + +* jt/commit-graph-per-object-store (2018-08-13) 1 commit + (merged to 'next' on 2018-08-15 at 5d6db738d8) + + t5318: avoid unnecessary command substitutions + + Test update. + + Will merge to 'master'. + + +* jt/fetch-negotiator-skipping (2018-08-10) 1 commit + (merged to 'next' on 2018-08-15 at 3cf8fa32f5) + + t5552: suppress upload-pack trace output + + Test fix. + + Will merge to 'master'. + + +* md/filter-trees (2018-08-15) 6 commits + - list-objects-filter: implement filter tree:0 + - revision: mark non-user-given objects instead + - rev-list: handle missing tree objects properly + - list-objects: always parse trees gently + - list-objects: refactor to process_tree_contents + - list-objects: store common func args in struct + + The "rev-list --filter" feature learned to exclude all trees via + "tree:0" filter. + + Expecting a reroll. + + +* nd/no-the-index (2018-08-13) 24 commits + (merged to 'next' on 2018-08-15 at 41e53dc53b) + + blame.c: remove implicit dependency on the_index + + apply.c: remove implicit dependency on the_index + + apply.c: make init_apply_state() take a struct repository + + apply.c: pass struct apply_state to more functions + + resolve-undo.c: use the right index instead of the_index + + archive-*.c: use the right repository + + archive.c: avoid access to the_index + + grep: use the right index instead of the_index + + attr: remove index from git_attr_set_direction() + + entry.c: use the right index instead of the_index + + submodule.c: use the right index instead of the_index + + pathspec.c: use the right index instead of the_index + + unpack-trees: avoid the_index in verify_absent() + + unpack-trees: convert clear_ce_flags* to avoid the_index + + unpack-trees: don't shadow global var the_index + + unpack-trees: add a note about path invalidation + + unpack-trees: remove 'extern' on function declaration + + ls-files: correct index argument to get_convert_attr_ascii() + + preload-index.c: use the right index instead of the_index + + dir.c: remove an implicit dependency on the_index in pathspec code + + convert.c: remove an implicit dependency on the_index + + attr: remove an implicit dependency on the_index + + cache-tree: wrap the_index based wrappers with #ifdef + + diff.c: move read_index() code back to the caller + (this branch uses nd/no-extern.) + + The more library-ish parts of the codebase learned to work on the + in-core index-state instance that is passed in by their callers, + instead of always working on the singleton "the_index" instance. + + Will merge to 'master'. + + +* ng/mergetool-lose-final-prompt (2018-08-13) 1 commit + (merged to 'next' on 2018-08-15 at f8f7ac365b) + + mergetool: don't suggest to continue after last file + + "git mergetool" stopped and gave an extra prompt to continue after + the last path has been handled, which did not make much sense. + + Will merge to 'master'. - A test prerequisite defined by various test scripts with slightly - different sematics has been consolidated into a single copy and - made into a lazily defined one. +* ng/status-i-short-for-ignored (2018-08-09) 1 commit + - status: -i shorthand for --ignored command line option + + +* pk/rebase-in-c-2-basic (2018-08-10) 11 commits + - builtin rebase: support `git rebase ` + - builtin rebase: only store fully-qualified refs in `options.head_name` + - builtin rebase: start a new rebase only if none is in progress + - builtin rebase: support --force-rebase + - builtin rebase: try to fast forward when possible + - builtin rebase: require a clean worktree + - builtin rebase: support the `verbose` and `diffstat` options + - builtin rebase: support --quiet + - builtin rebase: handle the pre-rebase hook (and add --no-verify) + - builtin rebase: support `git rebase --onto A...B` + - builtin rebase: support --onto + (this branch is used by pk/rebase-in-c-3-acts, pk/rebase-in-c-4-opts, pk/rebase-in-c-5-test and pk/rebase-in-c-6-final; uses pk/rebase-in-c.) + + +* pk/rebase-in-c-3-acts (2018-08-10) 7 commits + - builtin rebase: stop if `git am` is in progress + - builtin rebase: actions require a rebase in progress + - builtin rebase: support --edit-todo and --show-current-patch + - builtin rebase: support --quit + - builtin rebase: support --abort + - builtin rebase: support --skip + - builtin rebase: support --continue + (this branch is used by pk/rebase-in-c-4-opts, pk/rebase-in-c-5-test and pk/rebase-in-c-6-final; uses pk/rebase-in-c and pk/rebase-in-c-2-basic.) + + +* pk/rebase-in-c-4-opts (2018-08-10) 18 commits + - builtin rebase: support --root + - builtin rebase: add support for custom merge strategies + - builtin rebase: support `fork-point` option + - merge-base --fork-point: extract libified function + - builtin rebase: support --rebase-merges[=[no-]rebase-cousins] + - builtin rebase: support `--allow-empty-message` option + - builtin rebase: support `--exec` + - builtin rebase: support `--autostash` option + - builtin rebase: support `-C` and `--whitespace=` + - builtin rebase: support `--gpg-sign` option + - builtin rebase: support `--autosquash` + - builtin rebase: support `keep-empty` option + - builtin rebase: support `ignore-date` option + - builtin rebase: support `ignore-whitespace` option + - builtin rebase: support --committer-date-is-author-date + - builtin rebase: support --rerere-autoupdate + - builtin rebase: support --signoff + - builtin rebase: allow selecting the rebase "backend" + (this branch is used by pk/rebase-in-c-5-test and pk/rebase-in-c-6-final; uses pk/rebase-in-c, pk/rebase-in-c-2-basic and pk/rebase-in-c-3-acts.) + + +* pk/rebase-in-c-5-test (2018-08-10) 6 commits + - builtin rebase: error out on incompatible option/mode combinations + - builtin rebase: use no-op editor when interactive is "implied" + - builtin rebase: show progress when connected to a terminal + - builtin rebase: fast-forward to onto if it is a proper descendant + - builtin rebase: optionally pass custom reflogs to reset_head() + - builtin rebase: optionally auto-detect the upstream + (this branch is used by pk/rebase-in-c-6-final; uses pk/rebase-in-c, pk/rebase-in-c-2-basic, pk/rebase-in-c-3-acts and pk/rebase-in-c-4-opts.) + + +* pk/rebase-in-c-6-final (2018-08-10) 1 commit + - rebase: default to using the builtin rebase + (this branch uses pk/rebase-in-c, pk/rebase-in-c-2-basic, pk/rebase-in-c-3-acts, pk/rebase-in-c-4-opts and pk/rebase-in-c-5-test.) + + +* ps/stash-in-c (2018-08-08) 26 commits + - stash: replace all "git apply" child processes with API calls + - stash: replace all `write-tree` child processes with API calls + - stash: optimize `get_untracked_files()` and `check_changes()` + - stash: convert `stash--helper.c` into `stash.c` + - stash: convert save to builtin + - stash: replace spawning `git ls-files` child process + - stash: add tests for `git stash push -q` + - stash: make push to be quiet + - stash: convert push to builtin + - stash: avoid spawning a "diff-index" process + - stash: replace spawning a "read-tree" process + - stash: convert create to builtin + - stash: convert store to builtin + - stash: update `git stash show` documentation + - stash: refactor `show_stash()` to use the diff API + - stash: change `git stash show` usage text and documentation + - stash: convert show to builtin + - stash: implement the "list" command in the builtin + - stash: convert pop to builtin + - stash: convert branch to builtin + - stash: convert drop and clear to builtin + - stash: convert apply to builtin + - stash: renamed test cases to be more descriptive + - stash: update test cases conform to coding guidelines + - stash: improve option parsing test coverage + - sha1-name.c: added 'get_oidf', which acts like 'get_oid' + + +* pw/rebase-i-squash-number-fix (2018-08-15) 2 commits + - squash??? if this is easier to read + - rebase -i: fix numbering in squash message + + When "git rebase -i" is told to squash two or more commits into + one, it labeled the log message for each commit with its number. + It correctly called the first one "1st commit", but the next one + was "commit #1", which was off-by-one. This has been corrected. + + Will merge to 'next' after dropping the clean-up at the tip. + + +* sb/pull-rebase-submodule (2018-08-14) 1 commit + (merged to 'next' on 2018-08-15 at 07c7b55cc9) + + git-submodule.sh: accept verbose flag in cmd_update to be non-quiet + + "git pull --rebase -v" in a repository with a submodule barfed as + an intermediate process did not understand what "-v(erbose)" flag + meant, which has been fixed. + Will merge to 'master'. + + +* sg/t5310-empty-input-fix (2018-08-14) 1 commit + (merged to 'next' on 2018-08-15 at c3c03973a0) + + t5310-pack-bitmaps: fix bogus 'pack-objects to file can use bitmap' test + + Test fix. + + Will merge to 'master'. -------------------------------------------------- [Stalled] +* bp/checkout-new-branch-optim (2018-07-31) 1 commit + - checkout: optimize "git checkout -b " + + "git checkout -b newbranch [HEAD]" should not have to do as much as + checking out a commit different from HEAD. An attempt is made to + optimize this special case. + + So... what is the status of this thing? Is the other "optimize + unpack-trees" effort turning out to be a safer and less hacky way + to achieve similar gain and this no longer is needed? + + +* sl/commit-dry-run-with-short-output-fix (2018-07-30) 4 commits + . commit: fix exit code when doing a dry run + . wt-status: teach wt_status_collect about merges in progress + . wt-status: rename commitable to committable + . t7501: add coverage for flags which imply dry runs + + "git commit --dry-run" gave a correct exit status even during a + conflict resolution toward a merge, but it did not with the + "--short" option, which has been corrected. + + Seems to break 7512, 3404 and 7060 in 'pu'. + + * ma/wrapped-info (2018-05-28) 2 commits - usage: prefix all lines in `vreportf()`, not just the first - usage: extract `prefix_suffix_lines()` from `advise()` @@ -176,42 +826,151 @@ of the repositories listed at in the thread above---we are still waiting for a reroll. -* jk/drop-ancient-curl (2017-08-09) 5 commits - - http: #error on too-old curl - - curl: remove ifdef'd code never used with curl >=7.19.4 - - http: drop support for curl < 7.19.4 - - http: drop support for curl < 7.16.0 - - http: drop support for curl < 7.11.1 +* jk/drop-ancient-curl (2017-08-09) 5 commits + - http: #error on too-old curl + - curl: remove ifdef'd code never used with curl >=7.19.4 + - http: drop support for curl < 7.19.4 + - http: drop support for curl < 7.16.0 + - http: drop support for curl < 7.11.1 + + Some code in http.c that has bitrot is being removed. + + Expecting a reroll. + + +* mk/use-size-t-in-zlib (2017-08-10) 1 commit + . zlib.c: use size_t for size + + The wrapper to call into zlib followed our long tradition to use + "unsigned long" for sizes of regions in memory, which have been + updated to use "size_t". + + Needs resurrecting by making sure the fix is good and still applies + (or adjusted to today's codebase). + +-------------------------------------------------- +[Cooking] + +* js/rebase-merges-exec-fix (2018-08-09) 2 commits + (merged to 'next' on 2018-08-15 at 9de975d92d) + + rebase --exec: make it work with --rebase-merges + + t3430: demonstrate what -r, --autosquash & --exec should do + + The "--exec" option to "git rebase --rebase-merges" placed the exec + commands at wrong places, which has been corrected. + + Will merge to 'master'. + + +* nd/no-extern (2018-08-03) 12 commits + (merged to 'next' on 2018-08-08 at bcce75766b) + + submodule.h: drop extern from function declaration + + revision.h: drop extern from function declaration + + repository.h: drop extern from function declaration + + rerere.h: drop extern from function declaration + + line-range.h: drop extern from function declaration + + diff.h: remove extern from function declaration + + diffcore.h: drop extern from function declaration + + convert.h: drop 'extern' from function declaration + + cache-tree.h: drop extern from function declaration + + blame.h: drop extern on func declaration + + attr.h: drop extern from function declaration + + apply.h: drop extern on func declaration + (this branch is used by nd/no-the-index.) + + Noiseword "extern" has been removed from function decls in the + header files. + + Will merge to 'master'. + + +* ar/t4150-am-scissors-test-fix (2018-08-06) 1 commit + (merged to 'next' on 2018-08-08 at e639183205) + + t4150: fix broken test for am --scissors + + Test fix. + + Will merge to 'master'. + + +* en/t3031-title-fix (2018-08-06) 1 commit + (merged to 'next' on 2018-08-08 at 3913b03884) + + t3031: update test description to mention desired behavior + + Test fix. + + Will merge to 'master'. + + +* hn/config-in-code-comment (2018-08-06) 1 commit + (merged to 'next' on 2018-08-08 at 1fae946a0f) + + config: document git config getter return value + + Header update. + + Will merge to 'master'. + + +* jk/diff-rendered-docs (2018-08-06) 1 commit + (merged to 'next' on 2018-08-08 at fe6e1b4dbe) + + add a script to diff rendered documentation + + Developer support to allow the end result of documentation update + to be inspected more easily. + + Will merge to 'master'. + + +* js/pull-rebase-type-shorthand (2018-08-06) 1 commit + (merged to 'next' on 2018-08-08 at 9213756b36) + + pull --rebase=: allow single-letter abbreviations for the type + + "git pull --rebase=interactive" learned "i" as a short-hand for + "interactive". + + Will merge to 'master'. + + +* nd/complete-config-vars (2018-08-06) 1 commit + (merged to 'next' on 2018-08-08 at ffc8e1a3cd) + + Makefile: add missing dependency for command-list.h + + Build fix. + + Will merge to 'master'. + + +* nd/config-blame-sort (2018-08-06) 1 commit + (merged to 'next' on 2018-08-08 at 34ebb9888f) + + config.txt: reorder blame stuff to keep config keys sorted - Some code in http.c that has bitrot is being removed. + Doc fix. - Expecting a reroll. + Will merge to 'master'. -* mk/use-size-t-in-zlib (2017-08-10) 1 commit - . zlib.c: use size_t for size +* wc/make-funnynames-shared-lazy-prereq (2018-08-06) 1 commit + - t: factor out FUNNYNAMES as shared lazy prereq - The wrapper to call into zlib followed our long tradition to use - "unsigned long" for sizes of regions in memory, which have been - updated to use "size_t". + A test prerequisite defined by various test scripts with slightly + different sematics has been consolidated into a single copy and + made into a lazily defined one. - Needs resurrecting by making sure the fix is good and still applies - (or adjusted to today's codebase). + Will merge to 'next'. --------------------------------------------------- -[Cooking] * ab/fsck-transfer-updates (2018-07-27) 10 commits - - fsck: test and document unknown fsck. values - - fsck: add stress tests for fsck.skipList - - fsck: test & document {fetch,receive}.fsck.* config fallback - - fetch: implement fetch.fsck.* - - transfer.fsckObjects tests: untangle confusing setup - - config doc: elaborate on fetch.fsckObjects security - - config doc: elaborate on what transfer.fsckObjects does - - config doc: unify the description of fsck.* and receive.fsck.* - - config doc: don't describe *.fetchObjects twice - - receive.fsck. tests: remove dead code + (merged to 'next' on 2018-08-08 at d92085269f) + + fsck: test and document unknown fsck. values + + fsck: add stress tests for fsck.skipList + + fsck: test & document {fetch,receive}.fsck.* config fallback + + fetch: implement fetch.fsck.* + + transfer.fsckObjects tests: untangle confusing setup + + config doc: elaborate on fetch.fsckObjects security + + config doc: elaborate on what transfer.fsckObjects does + + config doc: unify the description of fsck.* and receive.fsck.* + + config doc: don't describe *.fetchObjects twice + + receive.fsck. tests: remove dead code The test performed at the receiving end of "git push" to prevent bad objects from entering repository can be customized via @@ -219,155 +978,100 @@ of the repositories listed at counterpart to do the same on the "git fetch" side, with fetch.fsck.* configuration variables. - Will merge to 'next'. + Will merge to 'master'. * ab/test-must-be-empty (2018-07-30) 1 commit - - tests: make use of the test_must_be_empty function + (merged to 'next' on 2018-08-08 at 06599ebd1f) + + tests: make use of the test_must_be_empty function Test updates. - Will merge to 'next'. + Will merge to 'master'. * ab/test-must-be-empty-for-master (2018-07-30) 1 commit - - tests: make use of the test_must_be_empty function + (merged to 'next' on 2018-08-15 at 17652a77fb) + + tests: make use of the test_must_be_empty function Test updates. - Did anybody spot incorrect conversion in this yet? - - -* cb/p4-pre-submit-hook (2018-08-01) 1 commit - (merged to 'next' on 2018-08-06 at e40ae4af80) - + git-p4: add the `p4-pre-submit` hook - - "git p4 submit" learns to ask its own pre-submit hook if it should - continue with submitting. - Will merge to 'master'. * es/rebase-i-author-script-fix (2018-07-31) 4 commits - - sequencer: don't die() on bogus user-edited timestamp - - sequencer: fix "rebase -i --root" corrupting author header timestamp - - sequencer: fix "rebase -i --root" corrupting author header timezone - - sequencer: fix "rebase -i --root" corrupting author header + (merged to 'next' on 2018-08-08 at 6b34261b72) + + sequencer: don't die() on bogus user-edited timestamp + + sequencer: fix "rebase -i --root" corrupting author header timestamp + + sequencer: fix "rebase -i --root" corrupting author header timezone + + sequencer: fix "rebase -i --root" corrupting author header (this branch is used by pw/rebase-i-author-script-fix.) The "author-script" file "git rebase -i" creates got broken when we started to move the command away from shell script, which is getting fixed now. - Will merge to 'next'. + Will merge to 'master'. -* hn/highlight-sideband-keywords (2018-08-06) 2 commits - - SQUASH??? - - sideband: highlight keywords in remote sideband output +* hn/highlight-sideband-keywords (2018-08-08) 1 commit + (merged to 'next' on 2018-08-15 at f8945f3be5) + + sideband: highlight keywords in remote sideband output The sideband code learned to optionally paint selected keywords at the beginning of incoming lines on the receiving end. - -* jn/subtree-test-fixes (2018-07-30) 2 commits - (merged to 'next' on 2018-08-06 at 62f21c328f) - + subtree test: simplify preparation of expected results - + subtree test: add missing && to &&-chain - - Test fix. - - Will merge to 'master'. - - -* ms/http-proto-doc (2018-07-30) 1 commit - (merged to 'next' on 2018-08-06 at df1cac9945) - + doc: fix want-capability separator - - Doc fix. - - Will merge to 'master'. - - -* nd/pack-objects-threading-doc (2018-07-30) 1 commit - (merged to 'next' on 2018-08-06 at cc8c305191) - + pack-objects: document about thread synchronization - - Doc fix. - Will merge to 'master'. * sb/indent-heuristic-optim (2018-08-01) 1 commit - - xdiff: reduce indent heuristic overhead + (merged to 'next' on 2018-08-08 at 539dcc967a) + + xdiff: reduce indent heuristic overhead "git diff --indent-heuristic" had a bad corner case performance. - Will merge to 'next'. + Will merge to 'master'. * ab/fetch-nego (2018-08-01) 3 commits - - fetch doc: cross-link two new negotiation options - - negotiator: unknown fetch.negotiationAlgorithm should error out - - Merge branch 'jt/fetch-nego-tip' into ab/fetch-nego + (merged to 'next' on 2018-08-08 at 87662bb344) + + fetch doc: cross-link two new negotiation options + + negotiator: unknown fetch.negotiationAlgorithm should error out + + Merge branch 'jt/fetch-nego-tip' into ab/fetch-nego Update to a few other topics. - Will merge to 'next'. - - -* ab/fetch-tags-noclobber (2018-07-31) 10 commits - - fetch: stop clobbering existing tags without --force - - pull doc: fix a long-standing grammar error - - fetch tests: add a test clobbering tag behavior - - fetch tests: correct a comment "remove it" -> "remove them" - - push doc: correct lies about how push refspecs work - - push tests: assert re-pushing annotated tags - - push tests: add more testing for forced tag pushing - - push tests: fix logic error in "push" test assertion - - push tests: remove redundant 'git push' invocation - - fetch tests: change "Tag" test tag to "testTag" - - "git fetch" used to apply the same "fast-forward" rule and allow - tags to move without "--force" option, which made little sense, - which has been corrected. - - Expecting a reroll. - cf. - cf. - - -* bp/checkout-new-branch-optim (2018-07-31) 1 commit - - checkout: optimize "git checkout -b " - - "git checkout -b newbranch [HEAD]" should not have to do as much as - checking out a commit different from HEAD. An attempt is made to - optimize this special case. - - Waiting for review comments to be responded. - cf. + Will merge to 'master'. -* es/mw-to-git-chain-fix (2018-07-31) 1 commit - (merged to 'next' on 2018-08-06 at c10246e1c8) - + mw-to-git/t9360: fix broken &&-chain +* ab/fetch-tags-noclobber (2018-08-13) 7 commits + (merged to 'next' on 2018-08-15 at eca0ac8afa) + + pull doc: fix a long-standing grammar error + + fetch tests: correct a comment "remove it" -> "remove them" + + push tests: assert re-pushing annotated tags + + push tests: add more testing for forced tag pushing + + push tests: fix logic error in "push" test assertion + + push tests: remove redundant 'git push' invocation + + fetch tests: change "Tag" test tag to "testTag" - Test fix. + Test and doc clean-ups. Will merge to 'master'. * jk/merge-subtree-heuristics (2018-08-02) 1 commit - - score_trees(): fix iteration over trees with missing entries + (merged to 'next' on 2018-08-08 at 5126c2d717) + + score_trees(): fix iteration over trees with missing entries The automatic tree-matching in "git merge -s subtree" was broken 5 years ago and nobody has noticed since then, which is now fixed. - Will merge to 'next'. + Will merge to 'master'. * jt/refspec-dwim-precedence-fix (2018-08-02) 1 commit - - remote: make refspec follow the same disambiguation rule as local refs + (merged to 'next' on 2018-08-08 at 34d0484d3a) + + remote: make refspec follow the same disambiguation rule as local refs "git fetch $there refs/heads/s" ought to fetch the tip of the branch 's', but when "refs/heads/refs/heads/s", i.e. a branch whose @@ -375,10 +1079,11 @@ of the repositories listed at instead by mistake. This has been corrected to honor the usual disambiguation rules for abbreviated refnames. - Will merge to 'next'. + Will merge to 'master'. -* nd/clone-case-smashing-warning (2018-07-31) 1 commit +* nd/clone-case-smashing-warning (2018-08-14) 2 commits + - mark_colliding_entries(): fix incorrect #if...#endif guard - clone: report duplicate entries on case-insensitive filesystems Running "git clone" against a project that contain two files with @@ -387,19 +1092,16 @@ of the repositories listed at underlying filesystem is incapable of holding both at the same time. An attempt is made to detect such a case and warn. - Discussion getting petered out. - Doing this portably and extending it to UTF-8 normalization issue - HFS+ has would be costly. + Expecting a new round of discussion. + cf. <20180815190816.GA26521@tor.lan> - cf. <20180728095659.GA21450@sigill.intra.peff.net> - cf. - -* nd/unpack-trees-with-cache-tree (2018-08-06) 4 commits - - unpack-trees: cheaper index update when walking by cache-tree +* nd/unpack-trees-with-cache-tree (2018-08-13) 5 commits + - unpack-trees: reuse (still valid) cache-tree from src_index - unpack-trees: reduce malloc in cache-tree walk - unpack-trees: optimize walking same trees with cache-tree - unpack-trees: add performance tracing + - trace.h: support nested performance tracing The unpack_trees() API used in checking out a branch and merging walks one or more trees along with the index. When the cache-tree @@ -409,17 +1111,10 @@ of the repositories listed at open tree objects recursively and listing their entries, the walk can be optimized, which is done in this topic. - -* rs/remote-mv-leakfix (2018-08-01) 1 commit - (merged to 'next' on 2018-08-06 at 999fe6d3e5) - + remote: clear string_list after use in mv() - - Leakfix. - - Will merge to 'master'. + Will merge to and cook in 'next'. -* sb/config-write-fix (2018-08-01) 3 commits +* sb/config-write-fix (2018-08-08) 3 commits - git-config: document accidental multi-line setting in deprecated syntax - config: fix case sensitive subsection names on writing - t1300: document current behavior of setting options @@ -431,10 +1126,9 @@ of the repositories listed at cf. -* sb/range-diff-colors (2018-08-01) 9 commits - - fixup! t3206: add color test for range-diff --dual-color +* sb/range-diff-colors (2018-08-14) 8 commits - diff.c: rewrite emit_line_0 more understandably - - diff.c: compute reverse locally in emit_line_0 + - diff.c: omit check for line prefix in emit_line_0 - diff: use emit_line_0 once per line - diff.c: add set_sign to emit_line_0 - diff.c: reorder arguments for emit_line_ws_markup @@ -443,6 +1137,9 @@ of the repositories listed at - test_decode_color: understand FAINT and ITALIC (this branch uses js/range-diff; is tangled with es/format-patch-rangediff.) + The color output support for recently introduced "range-diff" + command got tweaked a bit. + * sg/t1404-update-ref-test-timeout (2018-08-01) 1 commit - t1404: increase core.packedRefsTimeout to avoid occasional test failure @@ -450,45 +1147,27 @@ of the repositories listed at An attempt to unflake a test a bit. -* sg/travis-retrieve-trash-upon-failure (2018-08-01) 1 commit - (merged to 'next' on 2018-08-06 at d67def2a92) - + travis-ci: include the trash directories of failed tests in the trace log - - The Travis CI scripts were taught to ship back the test data from - failed tests. - - Will merge to 'master'. - - -* jt/connectivity-check-after-unshallow (2018-08-01) 1 commit - (merged to 'next' on 2018-08-06 at 1932418f46) - + fetch-pack: unify ref in and out param - - "git fetch" sometimes failed to update the remote-tracking refs, - which has been corrected. - - Will merge to 'master'. - - * ab/sha1dc (2018-08-02) 1 commit - - sha1dc: update from upstream + (merged to 'next' on 2018-08-08 at 920c190941) + + sha1dc: update from upstream - AIX portability update for SHADC hash, imported from upstream. + AIX portability update for SHA1DC hash, imported from upstream. - Will merge to 'next'. + Will merge to 'master'. * es/want-color-fd-defensive (2018-08-03) 1 commit - - color: protect against out-of-bounds reads and writes + (merged to 'next' on 2018-08-08 at a11d90d26f) + + color: protect against out-of-bounds reads and writes Futureproofing a helper function that can easily misused. - Will merge to 'next'. + Will merge to 'master'. -* pw/rebase-i-author-script-fix (2018-08-02) 2 commits +* pw/rebase-i-author-script-fix (2018-08-07) 2 commits - sequencer: fix quoting in write_author_script - - sequencer: handle errors in read_author_ident() + - sequencer: handle errors from read_author_ident() (this branch uses es/rebase-i-author-script-fix.) Recent "git rebase -i" update started to write bogusly formatted @@ -501,13 +1180,14 @@ of the repositories listed at * rs/parse-opt-lithelp (2018-08-03) 7 commits - - parse-options: automatically infer PARSE_OPT_LITERAL_ARGHELP - - shortlog: correct option help for -w - - send-pack: specify --force-with-lease argument help explicitly - - pack-objects: specify --index-version argument help explicitly - - difftool: remove angular brackets from argument help - - add, update-index: fix --chmod argument help - - push: use PARSE_OPT_LITERAL_ARGHELP instead of unbalanced brackets + (merged to 'next' on 2018-08-08 at 3a4e0142fe) + + parse-options: automatically infer PARSE_OPT_LITERAL_ARGHELP + + shortlog: correct option help for -w + + send-pack: specify --force-with-lease argument help explicitly + + pack-objects: specify --index-version argument help explicitly + + difftool: remove angular brackets from argument help + + add, update-index: fix --chmod argument help + + push: use PARSE_OPT_LITERAL_ARGHELP instead of unbalanced brackets The parse-options machinery learned to refrain from enclosing placeholder string inside a "" pair automatically @@ -515,17 +1195,6 @@ of the repositories listed at arguments that are not formatted correctly have been identified and fixed. - Will merge to 'next'. - - -* es/diff-color-moved-fix (2018-07-25) 1 commit - (merged to 'next' on 2018-08-02 at 233bccfbfb) - + diff: --color-moved: rename "dimmed_zebra" to "dimmed-zebra" - - One of the "diff --color-moved" mode "dimmed_zebra" that was named - in an unusual way has been deprecated and replaced by - "dimmed-zebra". - Will merge to 'master'. @@ -535,146 +1204,51 @@ of the repositories listed at - add -p: select modified lines correctly - add -p: select individual hunk lines - "git add -p" interactive interface learned to let users choose - individual added/removed lines to be used in the operation, instead - of accepting or rejecting a whole hunk. - - Will hold. - cf. - I found the feature to be hard to explain, and may result in more - end-user complaints, but let's see. - - -* mk/http-backend-content-length (2018-07-30) 4 commits - - t5562: avoid non-portable "export FOO=bar" construct - - http-backend: respect CONTENT_LENGTH for receive-pack - - http-backend: respect CONTENT_LENGTH as specified by rfc3875 - - http-backend: cleanup writing to child process - - The http-backend (used for smart-http transport) used to slurp the - whole input until EOF, without paying attention to CONTENT_LENGTH - that is supplied in the environment and instead expecting the Web - server to close the input stream. This has been fixed. - - Will merge to 'next'. - - -* ds/commit-graph-with-grafts (2018-07-19) 8 commits - (merged to 'next' on 2018-08-02 at 0ee624e329) - + commit-graph: close_commit_graph before shallow walk - + commit-graph: not compatible with uninitialized repo - + commit-graph: not compatible with grafts - + commit-graph: not compatible with replace objects - + test-repository: properly init repo - + commit-graph: update design document - + refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback - + refs.c: migrate internal ref iteration to pass thru repository argument - - The recently introduced commit-graph auxiliary data is incompatible - with mechanisms such as replace & grafts that "breaks" immutable - nature of the object reference relationship. Disable optimizations - based on its use (and updating existing commit-graph) when these - incompatible features are in use in the repository. - - Will cook in 'next'. - - -* jk/core-use-replace-refs (2018-07-18) 3 commits - (merged to 'next' on 2018-08-02 at 90fb6b1056) - + add core.usereplacerefs config option - + check_replace_refs: rename to read_replace_refs - + check_replace_refs: fix outdated comment - - A new configuration variable core.usereplacerefs has been added, - primarily to help server installations that want to ignore the - replace mechanism altogether. - - Will merge to 'master'. - - -* nd/i18n (2018-07-23) 23 commits - (merged to 'next' on 2018-08-02 at 904a22a5d1) - + transport-helper.c: mark more strings for translation - + transport.c: mark more strings for translation - + sha1-file.c: mark more strings for translation - + sequencer.c: mark more strings for translation - + replace-object.c: mark more strings for translation - + refspec.c: mark more strings for translation - + refs.c: mark more strings for translation - + pkt-line.c: mark more strings for translation - + object.c: mark more strings for translation - + exec-cmd.c: mark more strings for translation - + environment.c: mark more strings for translation - + dir.c: mark more strings for translation - + convert.c: mark more strings for translation - + connect.c: mark more strings for translation - + config.c: mark more strings for translation - + commit-graph.c: mark more strings for translation - + builtin/replace.c: mark more strings for translation - + builtin/pack-objects.c: mark more strings for translation - + builtin/grep.c: mark strings for translation - + builtin/config.c: mark more strings for translation - + archive-zip.c: mark more strings for translation - + archive-tar.c: mark more strings for translation - + Update messages in preparation for i18n - - Many more strings are prepared for l10n. - - Will merge to 'master'. - - -* sb/histogram-less-memory (2018-07-23) 4 commits - (merged to 'next' on 2018-08-02 at cfb02aa3b5) - + xdiff/histogram: remove tail recursion - + xdiff/xhistogram: move index allocation into find_lcs - + xdiff/xhistogram: factor out memory cleanup into free_index() - + xdiff/xhistogram: pass arguments directly to fall_back_to_classic_diff - - "git diff --histogram" had a bad memory usage pattern, which has - been rearranged to reduce the peak usage. - - Will merge to 'master'. - - -* bb/make-developer-pedantic (2018-07-25) 1 commit - (merged to 'next' on 2018-08-02 at c738a84b7e) - + Makefile: add a DEVOPTS flag to get pedantic compilation - - "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile - with -pedantic option, which may catch more problematic program - constructs and potential bugs. - - Will merge to 'master'. - - -* bw/clone-ref-prefixes (2018-07-20) 1 commit - (merged to 'next' on 2018-08-02 at c8ad140ab0) - + clone: send ref-prefixes when using protocol v2 - - The wire-protocol v2 relies on the client to send "ref prefixes" to - limit the bandwidth spent on the initial ref advertisement. "git - clone" when learned to speak v2 forgot to do so, which has been - corrected. + "git add -p" interactive interface learned to let users choose + individual added/removed lines to be used in the operation, instead + of accepting or rejecting a whole hunk. - Will merge to 'master'. + Will hold. + cf. + I found the feature to be hard to explain, and may result in more + end-user complaints, but let's see. -* bw/fetch-pack-i18n (2018-07-23) 1 commit - (merged to 'next' on 2018-08-02 at df72001755) - + fetch-pack: mark die strings for translation +* mk/http-backend-content-length (2018-07-30) 4 commits + (merged to 'next' on 2018-08-08 at 0091062ec4) + + t5562: avoid non-portable "export FOO=bar" construct + + http-backend: respect CONTENT_LENGTH for receive-pack + + http-backend: respect CONTENT_LENGTH as specified by rfc3875 + + http-backend: cleanup writing to child process - i18n updates. + The http-backend (used for smart-http transport) used to slurp the + whole input until EOF, without paying attention to CONTENT_LENGTH + that is supplied in the environment and instead expecting the Web + server to close the input stream. This has been fixed. Will merge to 'master'. -* bw/protocol-v2 (2018-07-24) 1 commit - (merged to 'next' on 2018-08-02 at f4076b3e94) - + pack-protocol: mention and point to docs for protocol v2 +* ds/commit-graph-with-grafts (2018-07-19) 8 commits + (merged to 'next' on 2018-08-02 at 0ee624e329) + + commit-graph: close_commit_graph before shallow walk + + commit-graph: not compatible with uninitialized repo + + commit-graph: not compatible with grafts + + commit-graph: not compatible with replace objects + + test-repository: properly init repo + + commit-graph: update design document + + refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback + + refs.c: migrate internal ref iteration to pass thru repository argument - Doc update. + The recently introduced commit-graph auxiliary data is incompatible + with mechanisms such as replace & grafts that "breaks" immutable + nature of the object reference relationship. Disable optimizations + based on its use (and updating existing commit-graph) when these + incompatible features are in use in the repository. - Will merge to 'master'. + Perhaps eject and replace with another reroll when it comes. + cf. + cf. <86bmap7l7a.fsf@gmail.com> * ds/reachable (2018-07-20) 18 commits @@ -704,22 +1278,6 @@ of the repositories listed at Will merge to and cook in 'next'. -* en/merge-recursive-skip-fix (2018-07-27) 2 commits - (merged to 'next' on 2018-08-06 at 9ab321a15c) - + merge-recursive: preserve skip_worktree bit when necessary - + t3507: add a testcase showing failure with sparse checkout - - When the sparse checkout feature is in use, "git cherry-pick" and - other mergy operations lost the skip_worktree bit when a path that - is excluded from checkout requires content level merge, which is - resolved as the same as the HEAD version, without materializing the - merge result in the working tree, which made the path appear as - deleted. This has been corrected by preserving the skip_worktree - bit (and not materializing the file in the working tree). - - Will merge to 'master'. - - * es/format-patch-interdiff (2018-07-23) 6 commits - format-patch: allow --interdiff to apply to a lone-patch - log-tree: show_log: make commentary block delimiting reusable @@ -737,7 +1295,7 @@ of the repositories listed at cf. -* es/format-patch-rangediff (2018-07-30) 10 commits +* es/format-patch-rangediff (2018-08-14) 10 commits - format-patch: allow --range-diff to apply to a lone-patch - format-patch: add --creation-factor tweak for --range-diff - format-patch: teach --range-diff to respect -v/--reroll-count @@ -757,76 +1315,6 @@ of the repositories listed at Need to wait for the prereq topics to solidify a bit more. -* jk/banned-function (2018-07-26) 5 commits - (merged to 'next' on 2018-08-06 at 3dcd1999df) - + banned.h: mark strncpy() as banned - + banned.h: mark sprintf() as banned - + banned.h: mark strcat() as banned - + automatically ban strcpy() - + Merge branch 'sb/blame-color' into jk/banned-function - - It is too easy to misuse system API functions such as strcat(); - these selected functions are now forbidden in this codebase and - will cause a compilation failure. - - Will merge to 'master'. - - -* jk/size-t (2018-07-24) 6 commits - (merged to 'next' on 2018-08-02 at 6f861e05f0) - + strbuf_humanise: use unsigned variables - + pass st.st_size as hint for strbuf_readlink() - + strbuf_readlink: use ssize_t - + strbuf: use size_t for length in intermediate variables - + reencode_string: use size_t for string lengths - + reencode_string: use st_add/st_mult helpers - - Code clean-up to use size_t/ssize_t when they are the right type. - - Will merge to 'master'. - - -* js/t7406-recursive-submodule-update-order-fix (2018-07-23) 1 commit - (merged to 'next' on 2018-08-02 at 217ea36a37) - + t7406: avoid failures solely due to timing issues - - Test fix. - - Will merge to 'master'. - - -* js/vscode (2018-07-30) 9 commits - (merged to 'next' on 2018-08-06 at 5c578b63a8) - + vscode: let cSpell work on commit messages, too - + vscode: add a dictionary for cSpell - + vscode: use 8-space tabs, no trailing ws, etc for Git's source code - + vscode: wrap commit messages at column 72 by default - + vscode: only overwrite C/C++ settings - + mingw: define WIN32 explicitly - + cache.h: extract enum declaration from inside a struct declaration - + vscode: hard-code a couple defines - + contrib: add a script to initialize VS Code configuration - - Add a script (in contrib/) to help users of VSCode work better with - our codebase. - - Will merge to 'master'. - - -* jt/tag-following-with-proto-v2-fix (2018-07-24) 2 commits - (merged to 'next' on 2018-08-02 at d9eabdea95) - + fetch: send "refs/tags/" prefix upon CLI refspecs - + t5702: test fetch with multiple refspecs at a time - - The wire-protocol v2 relies on the client to send "ref prefixes" to - limit the bandwidth spent on the initial ref advertisement. "git - fetch $remote branch:branch" that asks tags that point into the - history leading to the "branch" automatically followed sent to - narrow prefix and broke the tag following, which has been fixed. - - Will merge to 'master'. - - * nd/pack-deltify-regression-fix (2018-07-23) 1 commit (merged to 'next' on 2018-08-02 at f3b2bf0fef) + pack-objects: fix performance issues on packing large deltas @@ -838,64 +1326,13 @@ of the repositories listed at Will cook in 'next'. -* sb/trailers-docfix (2018-07-20) 1 commit - (merged to 'next' on 2018-08-02 at ba348fafcd) - + Documentation/git-interpret-trailers: explain possible values - - Doc update. - - Will merge to 'master'. - - -* sg/coccicheck-updates (2018-07-23) 5 commits - (merged to 'next' on 2018-08-02 at b5548ff3a9) - + coccinelle: extract dedicated make target to clean Coccinelle's results - + coccinelle: put sane filenames into output patches - + coccinelle: exclude sha1dc source files from static analysis - + coccinelle: use $(addsuffix) in 'coccicheck' make target - + coccinelle: mark the 'coccicheck' make target as .PHONY - - Update the way we use Coccinelle to find out-of-style code that - need to be modernised. - - Will merge to 'master'. - - -* sg/fast-import-dump-refs-on-checkpoint-fix (2018-07-20) 1 commit - (merged to 'next' on 2018-08-02 at f5c05b5a2c) - + t9300: wait for background fast-import process to die after killing it - - Test update. - - Will merge to 'master'. - - -* sg/travis-cocci-diagnose-failure (2018-07-23) 2 commits - (merged to 'next' on 2018-08-02 at 54808a8778) - + travis-ci: fail if Coccinelle static analysis found something to transform - + travis-ci: run Coccinelle static analysis with two parallel jobs - - Update the way we run static analysis tool at TravisCI to make it - easier to use its findings. - - Will merge to 'master'. - - -* ab/newhash-is-sha256 (2018-08-06) 2 commits - - doc hash-function-transition: pick SHA-256 as NewHash - - doc hash-function-transition: note the lack of a changelog +* ab/newhash-is-sha256 (2018-08-07) 2 commits + (merged to 'next' on 2018-08-15 at 2e808d75d3) + + doc hash-function-transition: pick SHA-256 as NewHash + + doc hash-function-transition: note the lack of a changelog Documentation update. - Will Merge to 'next'. - - -* bb/redecl-enum-fix (2018-07-26) 1 commit - (merged to 'next' on 2018-08-06 at 828dc4b156) - + packfile: ensure that enum object_type is defined - - Compilation fix. - Will merge to 'master'. @@ -925,38 +1362,19 @@ of the repositories listed at - structured-logging: add structured logging framework - structured-logging: add STRUCTURED_LOGGING=1 to Makefile - structured-logging: design document - (this branch uses jh/json-writer.) Will merge to 'next'. * en/abort-df-conflict-fixes (2018-07-31) 2 commits - - read-cache: fix directory/file conflict handling in read_index_unmerged() - - t1015: demonstrate directory/file conflict recovery failures + (merged to 'next' on 2018-08-08 at a19cad0bb7) + + read-cache: fix directory/file conflict handling in read_index_unmerged() + + t1015: demonstrate directory/file conflict recovery failures "git merge --abort" etc. did not clean things up properly when there were conflicted entries in certain order that are involved in D/F conflicts. This has been corrected. - Will merge to 'next'. - - -* hs/gpgsm (2018-07-20) 7 commits - (merged to 'next' on 2018-08-02 at db28bffe4f) - + gpg-interface t: extend the existing GPG tests with GPGSM - + gpg-interface: introduce new signature format "x509" using gpgsm - + gpg-interface: introduce new config to select per gpg format program - + gpg-interface: do not hardcode the key string len anymore - + gpg-interface: introduce an abstraction for multiple gpg formats - + t/t7510: check the validation of the new config gpg.format - + gpg-interface: add new config to select how to sign a commit - - Teach "git tag -s" etc. a few configuration varaibles (gpg.format - that can be set to "openpgp" or "x509", and gpg..program - that is used to specify what program to use to deal with the format) - to allow x.509 certs with CMS via "gpgsm" to be used instead of - openpgp via "gnupg". - Will merge to 'master'. @@ -976,7 +1394,7 @@ of the repositories listed at cf. <20180717201348.GD26218@sigill.intra.peff.net> -* sb/submodule-update-in-c (2018-08-03) 7 commits +* sb/submodule-update-in-c (2018-08-14) 7 commits - submodule--helper: introduce new update-module-mode helper - submodule--helper: replace connect-gitdir-workingtree by ensure-core-worktree - builtin/submodule--helper: factor out method to update a single submodule @@ -990,19 +1408,6 @@ of the repositories listed at Will merge to and cook in 'next'. -* sl/commit-dry-run-with-short-output-fix (2018-07-30) 4 commits - . commit: fix exit code when doing a dry run - . wt-status: teach wt_status_collect about merges in progress - . wt-status: rename commitable to committable - . t7501: add coverage for flags which imply dry runs - - "git commit --dry-run" gave a correct exit status even during a - conflict resolution toward a merge, but it did not with the - "--short" option, which has been corrected. - - Seems to break 7512, 3404 and 7060 in 'pu'. - - * tg/rerere (2018-08-06) 11 commits - rerere: recalculate conflict ID when unresolved conflict is committed - rerere: teach rerere to handle nested conflicts @@ -1022,26 +1427,7 @@ of the repositories listed at Will merge to and cook in 'next'. -* jk/ui-color-always-to-auto (2018-07-18) 1 commit - (merged to 'next' on 2018-08-02 at 1a054baf0e) - + Documentation: fix --color option formatting - - Doc formatting fix. - - Will merge to 'master'. - - -* jh/json-writer (2018-07-16) 1 commit - (merged to 'next' on 2018-08-02 at d841450c7d) - + json_writer: new routines to create JSON data - (this branch is used by jh/structured-logging.) - - Preparatory code to later add json output for telemetry data. - - Will merge to 'master'. - - -* ag/rebase-i-in-c (2018-07-31) 20 commits +* ag/rebase-i-in-c (2018-08-10) 20 commits - rebase -i: move rebase--helper modes to rebase--interactive - rebase -i: remove git-rebase--interactive.sh - rebase--interactive2: rewrite the submodes of interactive rebase in C @@ -1061,43 +1447,43 @@ of the repositories listed at - rebase -i: rewrite the edit-todo functionality in C - editor: add a function to launch the sequence editor - rebase -i: rewrite append_todo_help() in C - - sequencer: make two functions and an enum from sequencer.c public + - sequencer: make three functions and an enum from sequencer.c public Rewrite of the remaining "rebase -i" machinery in C. Will merge to 'next'. -* js/range-diff (2018-07-30) 21 commits - - range-diff: use dim/bold cues to improve dual color mode - - range-diff: make --dual-color the default mode - - range-diff: left-pad patch numbers - - completion: support `git range-diff` - - range-diff: populate the man page - - range-diff --dual-color: fix bogus white-space warning - - range-diff: offer to dual-color the diffs - - diff: add an internal option to dual-color diffs of diffs - - color: add the meta color GIT_COLOR_REVERSE - - range-diff: use color for the commit pairs - - range-diff: add tests - - range-diff: do not show "function names" in hunk headers - - range-diff: adjust the output of the commit pairs - - range-diff: suppress the diff headers - - range-diff: indent the diffs just like tbdiff - - range-diff: right-trim commit messages - - range-diff: also show the diff between patches - - range-diff: improve the order of the shown commits - - range-diff: first rudimentary implementation - - Introduce `range-diff` to compare iterations of a topic branch - - linear-assignment: a function to solve least-cost assignment problems +* js/range-diff (2018-08-13) 21 commits + (merged to 'next' on 2018-08-15 at 8d56067806) + + range-diff: use dim/bold cues to improve dual color mode + + range-diff: make --dual-color the default mode + + range-diff: left-pad patch numbers + + completion: support `git range-diff` + + range-diff: populate the man page + + range-diff --dual-color: skip white-space warnings + + range-diff: offer to dual-color the diffs + + diff: add an internal option to dual-color diffs of diffs + + color: add the meta color GIT_COLOR_REVERSE + + range-diff: use color for the commit pairs + + range-diff: add tests + + range-diff: do not show "function names" in hunk headers + + range-diff: adjust the output of the commit pairs + + range-diff: suppress the diff headers + + range-diff: indent the diffs just like tbdiff + + range-diff: right-trim commit messages + + range-diff: also show the diff between patches + + range-diff: improve the order of the shown commits + + range-diff: first rudimentary implementation + + Introduce `range-diff` to compare iterations of a topic branch + + linear-assignment: a function to solve least-cost assignment problems (this branch is used by es/format-patch-rangediff and sb/range-diff-colors.) "git tbdiff" that lets us compare individual patches in two iterations of a topic has been rewritten and made into a built-in command. - It seems there will another hopefully the final reroll coming. - cf. + Will merge to 'master'. * lt/date-human (2018-07-09) 1 commit @@ -1111,11 +1497,12 @@ of the repositories listed at * ot/ref-filter-object-info (2018-07-17) 5 commits - - ref-filter: use oid_object_info() to get object - - ref-filter: merge get_obj and get_object - - ref-filter: initialize eaten variable - - ref-filter: fill empty fields with empty values - - ref-filter: add info_source to valid_atom + (merged to 'next' on 2018-08-08 at 9ed619941b) + + ref-filter: use oid_object_info() to get object + + ref-filter: merge get_obj and get_object + + ref-filter: initialize eaten variable + + ref-filter: fill empty fields with empty values + + ref-filter: add info_source to valid_atom A few atoms like %(objecttype) and %(objectsize) in the format specifier of "for-each-ref --format=" can be filled without @@ -1123,72 +1510,52 @@ of the repositories listed at header. These cases have been optimzied by calling oid_object_info() API. - Will merge to 'next'. + Will merge to 'master'. * pk/rebase-in-c (2018-08-06) 3 commits - builtin/rebase: support running "git rebase " - rebase: refactor common shell functions into their own file - rebase: start implementing it as a builtin + (this branch is used by pk/rebase-in-c-2-basic, pk/rebase-in-c-3-acts, pk/rebase-in-c-4-opts, pk/rebase-in-c-5-test and pk/rebase-in-c-6-final.) Rewrite of the "rebase" machinery in C. * jk/branch-l-1-repurpose (2018-06-22) 1 commit - - branch: make "-l" a synonym for "--list" + (merged to 'next' on 2018-08-08 at d2a08dd08e) + + branch: make "-l" a synonym for "--list" Updated plan to repurpose the "-l" option to "git branch". Will merge to and cook in 'next'. -* cc/remote-odb (2018-08-02) 9 commits - - Documentation/config: add odb..promisorRemote - - t0410: test fetching from many promisor remotes - - Use odb.origin.partialclonefilter instead of core.partialclonefilter - - Use remote_odb_get_direct() and has_remote_odb() - - remote-odb: add remote_odb_reinit() - - remote-odb: implement remote_odb_get_many_direct() - - remote-odb: implement remote_odb_get_direct() - - Add initial remote odb support - - fetch-object: make functions return an error code - - Implement lazy fetches of missing objects to complement the - experimental partial clone feature. - - I haven't seen much interest in this topic on list. What's the - doneness of this thing? - - I do not particularly mind adding code to support a niche feature - as long as it is cleanly made and it is clear that the feature - won't negatively affect those who do not use it, so a review from - that point of view may also be appropriate. - - * ds/multi-pack-index (2018-07-20) 23 commits - - midx: clear midx on repack - - packfile: skip loading index if in multi-pack-index - - midx: prevent duplicate packfile loads - - midx: use midx in approximate_object_count - - midx: use existing midx when writing new one - - midx: use midx in abbreviation calculations - - midx: read objects from multi-pack-index - - config: create core.multiPackIndex setting - - midx: write object offsets - - midx: write object id fanout chunk - - midx: write object ids in a chunk - - midx: sort and deduplicate objects from packfiles - - midx: read pack names into array - - multi-pack-index: write pack names in chunk - - multi-pack-index: read packfile list - - packfile: generalize pack directory list - - t5319: expand test data - - multi-pack-index: load into memory - - midx: write header information to lockfile - - multi-pack-index: add 'write' verb - - multi-pack-index: add builtin - - multi-pack-index: add format details - - multi-pack-index: add design document + (merged to 'next' on 2018-08-08 at 1a56c52967) + + midx: clear midx on repack + + packfile: skip loading index if in multi-pack-index + + midx: prevent duplicate packfile loads + + midx: use midx in approximate_object_count + + midx: use existing midx when writing new one + + midx: use midx in abbreviation calculations + + midx: read objects from multi-pack-index + + config: create core.multiPackIndex setting + + midx: write object offsets + + midx: write object id fanout chunk + + midx: write object ids in a chunk + + midx: sort and deduplicate objects from packfiles + + midx: read pack names into array + + multi-pack-index: write pack names in chunk + + multi-pack-index: read packfile list + + packfile: generalize pack directory list + + t5319: expand test data + + multi-pack-index: load into memory + + midx: write header information to lockfile + + multi-pack-index: add 'write' verb + + multi-pack-index: add builtin + + multi-pack-index: add format details + + multi-pack-index: add design document When there are too many packfiles in a repository (which is not recommended), looking up an object in these would require @@ -1216,3 +1583,29 @@ of the repositories listed at Code clarification. Superseded by another topic. + + +* cc/remote-odb (2018-08-02) 9 commits + . Documentation/config: add odb..promisorRemote + . t0410: test fetching from many promisor remotes + . Use odb.origin.partialclonefilter instead of core.partialclonefilter + . Use remote_odb_get_direct() and has_remote_odb() + . remote-odb: add remote_odb_reinit() + . remote-odb: implement remote_odb_get_many_direct() + . remote-odb: implement remote_odb_get_direct() + . Add initial remote odb support + . fetch-object: make functions return an error code + + Implement lazy fetches of missing objects to complement the + experimental partial clone feature. + + Ejected; seems to break existing repositories that use partialclone + repository extension. + + I haven't seen much interest in this topic on list. What's the + doneness of this thing? + + I do not particularly mind adding code to support a niche feature + as long as it is cleanly made and it is clear that the feature + won't negatively affect those who do not use it, so a review from + that point of view may also be appropriate.