From: Junio C Hamano Date: Wed, 13 Jul 2016 16:55:41 +0000 (-0700) Subject: What's cooking (2016/07 #05) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ed03171cab268cce8537595386e2812472b558f;p=thirdparty%2Fgit.git What's cooking (2016/07 #05) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index ca4a38f3d6..8e3bac5831 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 (Jul 2016, #04; Mon, 11) +Subject: What's cooking in git.git (Jul 2016, #05; Wed, 13) X-master-at: b1ec08fda8e0c3ed19b680404770ca4ec313ca8c X-next-at: aa0ab43525ebd305d89ffde30b5d5837a535491c -What's cooking in git.git (Jul 2016, #04; Mon, 11) +What's cooking in git.git (Jul 2016, #05; Wed, 13) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,7 +12,10 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The first maintenance release for 2.9.x series has been issued. +It turns out that v2.9.1 had tests that weren't even meant to pass +on platforms with 32-bit time_t/unsigned long, but did not properly +exclude them. A fix nas been prepared and I expect we'll cut v2.9.2 +with only that change relative to v2.9.1 soonish. You can find the changes described here in the integration branches of the repositories listed at @@ -20,139 +23,186 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[Graduated to "master"] - -* jc/send-email-skip-backup (2016-04-12) 1 commit - (merged to 'next' on 2016-06-28 at 67dac59) - + send-email: detect and offer to skip backup files - - A careless invocation of "git send-email directory/" after editing - 0001-change.patch with an editor often ends up sending both - 0001-change.patch and its backup file, 0001-change.patch~, causing - embarrassment and a minor confusion. Detect such an input and - offer to skip the backup files when sending the patches out. - Perhaps people will enhance it more once it gains more visibility. - - -* jk/ansi-color (2016-06-23) 7 commits - (merged to 'next' on 2016-06-28 at 354989c) - + color: support strike-through attribute - + color: support "italic" attribute - + color: allow "no-" for negating attributes - + color: refactor parse_attr - + add skip_prefix_mem helper - + doc: refactor description of color format - + color: fix max-size comment - - The output coloring scheme learned two new attributes, italic and - strike, in addition to existing bold, reverse, etc. - - -* jk/perf-any-version (2016-06-22) 2 commits - (merged to 'next' on 2016-06-28 at 6a41c30) - + p4211: explicitly disable renames in no-rename test - + t/perf: fix regression in testing older versions of git - - Allow t/perf framework to use the features from the most recent - version of Git even when testing an older installed version. - - -* jn/preformatted-doc-url (2016-06-22) 1 commit - (merged to 'next' on 2016-06-28 at 60a99eb) - + doc: git-htmldocs.googlecode.com is no more +[New Topics] - The top level documentation "git help git" still pointed at the - documentation set hosted at now-defunct google-code repository. - Update it to point to https://git.github.io/htmldocs/git.html - instead. +* js/t0006-for-v2.9.2 (2016-07-12) 1 commit + - t0006: skip "far in the future" test when unsigned long is not long enough + + A test merged to v2.9.1 forgot that the feature it was testing + would not work on a platform with 32-bit time_t/unsigned long and + reported breakage. Skip the tests that cannot run correctly on + such platforms. + + Waiting for an Ack; will fast-track down to 'maint' to cut v2.9.2. + + +* js/am-3-merge-recursive-direct (2016-07-12) 21 commits + - merge-recursive: flush output buffer even when erroring out + - merge_trees(): ensure that the output buffer is released after calling it + - merge-recursive: offer an option to retain the output in 'obuf' + - merge-recursive: write the commit title in one go + - merge-recursive: flush output buffer before printing error messages + - am -3: use merge_recursive() directly again + - merge-recursive: switch to returning errors instead of dying + - merge-recursive: handle return values indicating errors + - merge-recursive: allow write_tree_from_memory() to error out + - merge-recursive: avoid returning a wholesale struct + - merge_recursive: abort properly upon errors + - prepare the builtins for a libified merge_recursive() + - merge-recursive: clarify code in was_tracked() + - die(_("BUG")): avoid translating bug messages + - die("bug"): report bugs consistently + - t5520: verify that `git pull --rebase` shows the advice when failing + - Merge branch 'jh/clean-smudge-annex' into HEAD + - Merge branch 'bc/cocci' into js/am-3-merge-recursive-direct + - Merge branch 'js/am-call-theirs-theirs-in-fallback-3way' into js/am-3-merge-recursive-direct + - Merge branch 'cc/apply-am' into js/am-3-merge-recursive-direct + - Merge branch 'va/i18n-even-more' into js/am-3-merge-recursive-direct + (this branch uses bc/cocci, cc/apply-am, jh/clean-smudge-annex, js/am-call-theirs-theirs-in-fallback-3way and va/i18n-even-more.) + + "git am -3" calls "git merge-recursive" when it needs to fall back + to a three-way merge; this call has been turned into an internal + subroutine call instead of spawning a separate subprocess. + + Will need to wait for all the topics this depends on graduate to 'master'. + + +* ls/travis-enable-httpd-tests (2016-07-12) 1 commit + - travis-ci: enable web server tests t55xx on Linux + + Allow http daemon tests in Travis CI tests. + + +* nd/cache-tree-ita (2016-07-12) 4 commits + - cache-tree: do not generate empty trees as a result of all i-t-a subentries + - cache-tree.c: fix i-t-a entry skipping directory updates sometimes + - test-lib.sh: introduce and use $_EMPTY_BLOB + - test-lib.sh: introduce and use $_EMPTY_TREE + + "git add -N dir/file && git write-tree" produced an incorrect tree + when there are other paths in the same directory that sorts after + "file". + + Looked mostly OK. Further review comments are welcome. + + +* nd/pack-ofs-4gb-limit (2016-07-13) 7 commits + - fsck: use streaming interface for large blobs in pack + - pack-objects: do not truncate result in-pack object size on 32-bit systems + - index-pack: correct "offset" type in unpack_entry_data() + - index-pack: report correct bad object offsets even if they are large + - index-pack: correct "len" type in unpack_data() + - sha1_file.c: use type off_t* for object_info->disk_sizep + - pack-objects: pass length to check_pack_crc() without truncation + + "git pack-objects" and "git index-pack" mostly operate with off_t + when talking about the offset of objects in a packfile, but there + were a handful of places that used "unsigned long" to hold that + value, leading to an unintended truncation. + Will merge to 'next'. -* js/color-on-windows-comment (2016-06-28) 1 commit - (merged to 'next' on 2016-06-28 at 38a2ea1) - + color.h: remove obsolete comment about limitations on Windows - For a long time, we carried an in-code comment that said our - colored output would work only when we use fprintf/fputs on - Windows, which no longer is the case for the past few years. +* sb/push-options (2016-07-12) 5 commits + - add a test for push options + - push: accept push options + - SQUASH??? + - receive-pack: implement advertising and receiving push options + - push options: {pre,post}-receive hook learns about push options + "git push" learned to accept and pass extra options to the + receiving end so that hooks can read and react to them. -* js/find-commit-subject-ignore-leading-blanks (2016-06-29) 5 commits - (merged to 'next' on 2016-06-29 at 9717e00) - + reset --hard: skip blank lines when reporting the commit subject - + sequencer: use skip_blank_lines() to find the commit subject - + commit -C: skip blank lines at the beginning of the message - (merged to 'next' on 2016-06-28 at 32bbd94) - + commit.c: make find_commit_subject() more robust - + pretty: make the skip_blank_lines() function public + Discussion continues, expecting a further reroll. + ($gmane/299156) - A helper function that takes the contents of a commit object and - finds its subject line did not ignore leading blank lines, as is - commonly done by other codepaths. Make it ignore leading blank - lines to match. +* ew/http-walker (2016-07-12) 3 commits + - http-walker: reduce O(n) ops with doubly-linked list + - http: avoid disconnecting on 404s for loose objects + - http-walker: remove unused parameter from fetch_object -* mj/log-show-signature-conf (2016-06-24) 3 commits - (merged to 'next' on 2016-06-28 at c8b3347) - + log: add log.showSignature configuration variable - + log: add "--no-show-signature" command line option - + t4202: refactor test + Optimize dumb http transport on the client side. - "git log" learns log.showSignature configuration variable, and a - command line option "--no-show-signature" to countermand it. +* nd/log-decorate-color-head-arrow (2016-07-12) 1 commit + - log: decorate HEAD -> branch with the same color for arrow and HEAD -* sb/submodule-clone-retry (2016-06-13) 2 commits - (merged to 'next' on 2016-06-28 at 8a86d54) - + submodule update: continue when a clone fails - + submodule--helper: initial clone learns retry logic + An entry "git log --decorate" for the tip of the current branch is + shown as "HEAD -> name" (where "name" is the name of the branch); + paint the arrow in the same color as "HEAD", not in the color for + commits. - "git submodule update" that drives many "git clone" could - eventually hit flaky servers/network conditions on one of the - submodules; the command learned to retry the attempt. + Comments? Personally I find it more-or-less "Meh". --------------------------------------------------- -[New Topics] -* js/ignore-space-at-eol (2016-07-11) 2 commits - - diff: fix a double off-by-one with --ignore-space-at-eol - - diff: demonstrate a bug with --patience and --ignore-space-at-eol +* rs/rm-strbuf-optim (2016-07-12) 1 commit + - rm: reuse strbuf for all remove_dir_recursively() calls - An age old bug that caused "git diff --ignore-space-at-eol" - misbehave has been fixed. + The use of strbuf in "git rm" to build filename to remove was a bit + suboptimal, which has been fixed. Will merge to 'next'. -* js/rebase-i-tests (2016-07-07) 3 commits - - rebase -i: we allow extra spaces after fixup!/squash! - - rebase -i: demonstrate a bug with --autosquash - - t3404: add a test for the --gpg-sign option +* rs/worktree-use-strbuf-absolute-path (2016-07-12) 1 commit + - worktree: use strbuf_add_absolute_path() directly - A few tests that specifically target "git rebase -i" have been - added. + Code simplification. Will merge to 'next'. - -------------------------------------------------- [Stalled] -* jh/clean-smudge-annex (2016-07-08) 9 commits - - SQUASH??? compilation fix - - use smudgeToFile filter in recursive merge - - use smudgeToFile filter in git am - - better recovery from failure of smudgeToFile filter - - warn on unusable smudgeToFile/cleanFromFile config - - use smudgeToFile in git checkout etc - - use cleanFromFile in git add - - add smudgeToFile and cleanFromFile filter configs - - clarify %f documentation +* cc/apply-am (2016-06-28) 41 commits + - apply: use error_errno() where possible + - builtin/am: use apply api in run_apply() + - apply: change error_routine when be_silent is set + - usage: add get_error_routine() and get_warn_routine() + - usage: add set_warn_routine() + - apply: don't print on stdout when be_silent is set + - apply: make 'be_silent' incompatible with 'apply_verbosely' + - apply: add 'be_silent' variable to 'struct apply_state' + - write_or_die: use warning() instead of fprintf(stderr, ...) + - environment: add set_index_file() + - apply: make some parsing functions static again + - apply: move libified code from builtin/apply.c to apply.{c,h} + - apply: rename and move opt constants to apply.h + - builtin/apply: rename option parsing functions + - builtin/apply: make create_one_file() return -1 on error + - builtin/apply: make try_create_file() return -1 on error + - builtin/apply: make write_out_results() return -1 on error + - builtin/apply: make write_out_one_result() return -1 on error + - builtin/apply: make create_file() return -1 on error + - builtin/apply: make add_index_file() return -1 on error + - builtin/apply: make add_conflicted_stages_file() return -1 on error + - builtin/apply: make remove_file() return -1 on error + - builtin/apply: make build_fake_ancestor() return -1 on error + - builtin/apply: change die_on_unsafe_path() to check_unsafe_path() + - builtin/apply: make gitdiff_*() return -1 on error + - builtin/apply: make gitdiff_*() return 1 at end of header + - builtin/apply: make parse_traditional_patch() return -1 on error + - builtin/apply: make apply_all_patches() return 128 or 1 on error + - builtin/apply: move check_apply_state() to apply.c + - builtin/apply: make check_apply_state() return -1 instead of die()ing + - apply: make init_apply_state() return -1 instead of exit()ing + - builtin/apply: move init_apply_state() to apply.c + - builtin/apply: make parse_ignorewhitespace_option() return -1 instead of die()ing + - builtin/apply: make parse_whitespace_option() return -1 instead of die()ing + - builtin/apply: make parse_single_patch() return -1 on error + - builtin/apply: make parse_chunk() return a negative integer on error + - builtin/apply: make find_header() return -128 instead of die()ing + - builtin/apply: read_patch_file() return -1 instead of die()ing + - builtin/apply: make apply_patch() return -1 or -128 instead of die()ing + - apply: move 'struct apply_state' to apply.h + - apply: make some names more specific + (this branch is used by jh/clean-smudge-annex and js/am-3-merge-recursive-direct.) - The interface to "clean/smudge" filters require Git to feed the - whole contents via pipe, which is suboptimal for some applications. - "cleanFromFile/smudgeToFile" commands are the moral equilvalents - for these filters but they interact with the files on the - filesystem directly. + "git am" has been taught to make an internal call to "git apply"'s + innards without spawning the latter as a separate process. + + Needs review. * tb/convert-peek-in-index (2016-07-07) 3 commits @@ -262,7 +312,49 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* jc/renormalize-merge-kill-safer-crlf (2016-07-08) 2 commits +* jh/clean-smudge-annex (2016-07-12) 9 commits + - use smudgeToFile filter in recursive merge + - use smudgeToFile filter in git am + - better recovery from failure of smudgeToFile filter + - warn on unusable smudgeToFile/cleanFromFile config + - use smudgeToFile in git checkout etc + - use cleanFromFile in git add + - add smudgeToFile and cleanFromFile filter configs + - clarify %f documentation + - Merge branch 'cc/apply-am' into jh/clean-smudge-annex + (this branch is used by js/am-3-merge-recursive-direct; uses cc/apply-am.) + + The interface to "clean/smudge" filters require Git to feed the + whole contents via pipe, which is suboptimal for some applications. + "cleanFromFile/smudgeToFile" commands are the moral equilvalents + for these filters but they interact with the files on the + filesystem directly. + + Will need to wait for all the topics this depends on graduate to 'master'. + + +* js/ignore-space-at-eol (2016-07-11) 2 commits + - diff: fix a double off-by-one with --ignore-space-at-eol + - diff: demonstrate a bug with --patience and --ignore-space-at-eol + + An age old bug that caused "git diff --ignore-space-at-eol" + misbehave has been fixed. + + Will merge to 'next'. + + +* js/rebase-i-tests (2016-07-07) 3 commits + - rebase -i: we allow extra spaces after fixup!/squash! + - rebase -i: demonstrate a bug with --autosquash + - t3404: add a test for the --gpg-sign option + + A few tests that specifically target "git rebase -i" have been + added. + + Will merge to 'next'. + + +* jc/renormalize-merge-kill-safer-crlf (2016-07-12) 2 commits - merge: avoid "safer crlf" during recording of merge results - convert: unify the "auto" handling of CRLF (this branch is tangled with tb/convert-peek-in-index.) @@ -271,7 +363,7 @@ of the repositories listed at merge-recursive, due to "safer crlf" conversion kicking in when it shouldn't. - Waiting for further discussion; hopefully can move this forward. + Will merge to 'next', but extra set of eyes are appreciated. * rs/help-c-source-with-gitattributes (2016-07-07) 1 commit @@ -350,6 +442,7 @@ of the repositories listed at * js/am-call-theirs-theirs-in-fallback-3way (2016-07-08) 1 commit (merged to 'next' on 2016-07-11 at abae4bc) + am: counteract gender bias + (this branch is used by js/am-3-merge-recursive-direct.) One part of "git am" had an oddball helper function that called stuff from outside "his" as opposed to calling what we have "ours", @@ -377,7 +470,8 @@ of the repositories listed at interpret the paths relative to that directory, which has been fixed. - Waiting for an ack. + Favourably reviewed with some questions and a request for new tests. + ($gmane/299319) * nd/test-helpers (2016-07-11) 3 commits @@ -441,55 +535,6 @@ of the repositories listed at Will merge to 'master'. -* cc/apply-am (2016-06-28) 41 commits - - apply: use error_errno() where possible - - builtin/am: use apply api in run_apply() - - apply: change error_routine when be_silent is set - - usage: add get_error_routine() and get_warn_routine() - - usage: add set_warn_routine() - - apply: don't print on stdout when be_silent is set - - apply: make 'be_silent' incompatible with 'apply_verbosely' - - apply: add 'be_silent' variable to 'struct apply_state' - - write_or_die: use warning() instead of fprintf(stderr, ...) - - environment: add set_index_file() - - apply: make some parsing functions static again - - apply: move libified code from builtin/apply.c to apply.{c,h} - - apply: rename and move opt constants to apply.h - - builtin/apply: rename option parsing functions - - builtin/apply: make create_one_file() return -1 on error - - builtin/apply: make try_create_file() return -1 on error - - builtin/apply: make write_out_results() return -1 on error - - builtin/apply: make write_out_one_result() return -1 on error - - builtin/apply: make create_file() return -1 on error - - builtin/apply: make add_index_file() return -1 on error - - builtin/apply: make add_conflicted_stages_file() return -1 on error - - builtin/apply: make remove_file() return -1 on error - - builtin/apply: make build_fake_ancestor() return -1 on error - - builtin/apply: change die_on_unsafe_path() to check_unsafe_path() - - builtin/apply: make gitdiff_*() return -1 on error - - builtin/apply: make gitdiff_*() return 1 at end of header - - builtin/apply: make parse_traditional_patch() return -1 on error - - builtin/apply: make apply_all_patches() return 128 or 1 on error - - builtin/apply: move check_apply_state() to apply.c - - builtin/apply: make check_apply_state() return -1 instead of die()ing - - apply: make init_apply_state() return -1 instead of exit()ing - - builtin/apply: move init_apply_state() to apply.c - - builtin/apply: make parse_ignorewhitespace_option() return -1 instead of die()ing - - builtin/apply: make parse_whitespace_option() return -1 instead of die()ing - - builtin/apply: make parse_single_patch() return -1 on error - - builtin/apply: make parse_chunk() return a negative integer on error - - builtin/apply: make find_header() return -128 instead of die()ing - - builtin/apply: read_patch_file() return -1 instead of die()ing - - builtin/apply: make apply_patch() return -1 or -128 instead of die()ing - - apply: move 'struct apply_state' to apply.h - - apply: make some names more specific - - "git am" has been taught to make an internal call to "git apply"'s - innards without spawning the latter as a separate process. - - Needs review. - - * dp/autoconf-curl-ssl (2016-06-28) 1 commit - ./configure.ac: detect SSL in libcurl using curl-config @@ -810,11 +855,12 @@ of the repositories listed at + coccinelle: convert hashcpy() with null_sha1 to hashclr() + contrib/coccinelle: add basic Coccinelle transforms + hex: add oid_to_hex_r() + (this branch is used by js/am-3-merge-recursive-direct.) Conversion from unsigned char sha1[20] to struct object_id continues. - Will cook a bit in 'next' and then merge to 'master'. + Will merge to 'master'. * jk/big-and-future-archive-tar (2016-07-01) 5 commits @@ -996,6 +1042,7 @@ of the repositories listed at + i18n: advice: mark string about detached head for translation + i18n: builtin/remote.c: fix mark for translation + Merge branch 'jc/t2300-setup' into HEAD + (this branch is used by js/am-3-merge-recursive-direct.) More markings of messages for i18n, with updates to various tests to pass GETTEXT_POISON tests. @@ -1065,7 +1112,7 @@ of the repositories listed at back-burner the threading enhancement to another day. -* pb/bisect (2016-07-11) 9 commits +* pb/bisect (2016-07-12) 9 commits - bisect--helper: `bisect_write` shell function in C - bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C - bisect--helper: `bisect_reset` shell function in C