@leroysheep / BookAlchemy / commits / 9e218500c2

What's cooking (2016/10 #06)

Junio C Hamano committed Oct 24, 2016 at 18:07 UTC 9e218500c23541b8abbc0f1e753f1f9016745088
1 file changed +283 -107
whats-cooking.txt
+283 -107
index 7824440b20..53cf195c0e 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 (Oct 2016, #05; Thu, 20) +Subject: What's cooking in git.git (Oct 2016, #06; Mon, 24) X-master-at: 659889482ac63411daea38b2c3d127842ea04e4d -X-next-at: ffd0de042c0ecacbb6661b2f7becf79fe3cf1d4b +X-next-at: 5073a4de2dac30ca7cfaaa2d4bdd8eead108e4ca -What's cooking in git.git (Oct 2016, #05; Thu, 20) +What's cooking in git.git (Oct 2016, #06; Mon, 24) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,6 +12,57 @@ 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. +Originally I planed to start concluding this cycle today, but +waiting for the conclusion of a few test breakages on Windows, I +didn't tag -rc0 today. + +Here are my current thinking on the notable topics. + + - the "off-by-one fix" part of sb/submodule-ignore-trailing-slash + needs to be in the upcoming release but the "trailing /. in base + should not affect the resolution of ../relative/path" part that + is still under discussion can wait. Which means we'd need a few + more !MINGW prerequisites in the tests by -rc0. + + - js/prepare-sequencer topic is not yet in 'next' but it would be a + nice-to-have in the upcoming release if we can. It does not yet + touch "rebase -i", but does touch the sequencer code that is used + in cherry-pick and revert, so I'd prefer to cook it for at least + a week and half in 'next' before merging. + + - ls/filter-process topic has been in 'next' with one known test + breakage on Windows, whose resolution ls/git-open-cloexec is + close to its final shape. Perhaps we can cook them for at least + a week and half in 'next' and have it in the upcoming release. + + - ex/deprecate-empty-pathspec-as-match-all topic that makes it + illegal to say 'git add ""' when you mean 'git add .' has been in + 'next' for more than a cycle. I am inclined to merge it in the + upcoming release. + + - jc/merge-drop-old-syntax is relatively new in 'next' after all + known in-tree dependents have been updated. I am planning to + keep it cooking in 'next' but add a backward incompatibility + notice to the release notes to the upcoming release. + + - lt/abbrev-auto and its follow-up jk/abbrev-auto are about auto + scaling the default abbreviation length when Git produces a short + object name to adjust to the modern times. Peff noticed one + fallout from it recently and its fix jc/abbrev-auto is not yet in + 'next'. I would not be surprised if there are other uncovered + fallouts remaining in the code, but at the same time, I expect + they are all cosmetic kind that do not affect correctness, so I + am inclined to include all of them in the upcoming release. + +I plan to merge other smallish topics that have been in 'next' to +'master' soonish, and relabel the remainder that have been labeled +as "Will merge to 'master'" to "Will hold" and keep cooking them in +'next'. For this reason, please do not take the "Will merge to +'master'" label too literally in this issue of "What's cooking" +report. It is always true that the label only means "the topic will +be in 'master' eventually", not "the topic will be in the upcoming +release", but in this issue that is even more true than usual. + You can find the changes described here in the integration branches of the repositories listed at @@ -20,117 +71,107 @@ of the repositories listed at -------------------------------------------------- [New Topics] -* jc/merge-base-fp-only (2016-10-19) 8 commits - . merge-base: fp experiment - - merge: allow to use only the fp-only merge bases - - merge-base: limit the output to bases that are on first-parent chain - - merge-base: mark bases that are on first-parent chain - - merge-base: expose get_merge_bases_many_0() a bit more - - merge-base: stop moving commits around in remove_redundant() - - sha1_name: remove ONELINE_SEEN bit - - commit: simplify fastpath of merge-base +* jk/tap-verbose-fix (2016-10-24) 4 commits + (merged to 'next' on 2016-10-24 at 5073a4de2d) + + test-lib: bail out when "-v" used under "prove" + (merged to 'next' on 2016-10-21 at 592679411c) + + travis: use --verbose-log test option + + test-lib: add --verbose-log option + + test-lib: handle TEST_OUTPUT_DIRECTORY with spaces + + The Travis CI configuration we ship ran the tests with --verbose + option but this risks non-TAP output that happens to be "ok" to be + misinterpreted as TAP signalling a test that passed. This resulted + in unnecessary failure. This has been corrected by introducing a + new mode to run our tests in the test harness to send the verbose + output separately to the log file. - An experiment of merge-base that ignores common ancestors that are - not on the first parent chain. + Will merge to 'master'. -* bw/submodule-branch-dot-doc (2016-10-19) 1 commit - - submodules doc: update documentation for "." used for submodule branches +* po/fix-doc-merge-base-illustration (2016-10-21) 1 commit + (merged to 'next' on 2016-10-21 at ac6f04a6c5) + + doc: fix merge-base ASCII art tab spacing - Recent git allows submodule.<name>.branch to use a special token - "." instead of the branch name; the documentation has been updated - to describe it. + Some AsciiDoc formatter mishandles a displayed illustration with + tabs in it. Adjust a few of them in merge-base documentation to + work around them. - Will merge to 'next'. + Will merge to 'master'. -* tg/add-chmod+x-fix (2016-10-20) 1 commit - - t3700: fix broken test under !SANITY +* jc/abbrev-auto (2016-10-22) 4 commits + - transport: compute summary-width dynamically + - transport: allow summary-width to be computed dynamically + - fetch: pass summary_width down the callchain + - transport: pass summary_width down the callchain + (this branch uses jk/abbrev-auto and lt/abbrev-auto.) - A hot-fix for a test added by a recent topic that went to both - 'master' and 'maint' already. + "git push" and "git fetch" reports from what old object to what new + object each ref was updated, using abbreviated refnames, and they + attempt to align the columns for this and other pieces of + information. The way these codepaths compute how many display + columns to allocate for the object names portion of this output has + been updated to match the recent "auto scale the default + abbreviation length" change. Will merge to 'next'. -* jk/diff-submodule-diff-inline (2016-10-20) 1 commit - - rev-list: use hdr_termination instead of a always using a newline +* jc/reset-unmerge (2016-10-24) 1 commit + - reset: --unmerge - A recently graduated topic regressed "git rev-list --header" - output, breaking "gitweb". This has been fixed. + After "git add" is run prematurely during a conflict resolution, + "git diff" can no longer be used as a way to sanity check by + looking at the combined diff. "git reset" learned a new + "--unmerge" option to recover from this situation. - Will merge to 'next'. -* jk/no-looking-at-dotgit-outside-repo (2016-10-20) 8 commits - - setup_git_env: avoid blind fall-back to ".git" - - diff: handle sha1 abbreviations outside of repository - - diff_aligned_abbrev: use "struct oid" - - diff_unique_abbrev: rename to diff_aligned_abbrev - - find_unique_abbrev: use 4-buffer ring - - test-*-cache-tree: setup git dir - - read info/{attributes,exclude} only when in repository - - Merge branch 'jc/diff-unique-abbrev-comments' into jk/no-looking-at-dotgit-outside-repo - (this branch uses jc/diff-unique-abbrev-comments.) +* jk/daemon-path-ok-check-truncation (2016-10-24) 1 commit + - daemon: detect and reject too-long paths - Update "git diff --no-index" codepath not to try to peek into .git/ - directory that happens to be under the current directory, when we - know we are operating outside any repository. + "git daemon" used fixed-length buffers to turn URL to the + repository the client asked for into the server side directory + path, using snprintf() to avoid overflowing these buffers, but + allowed possibly truncated paths to the directory. This has been + tightened to reject such a request that causes overlong path to be + required to serve. - Will wait until 'jc/diff-unique-abbrev-comments' graduates, rebase - onto 'master' and then cook in 'next'. + Will merge to 'next'. -* pt/gitgui-updates (2016-10-20) 35 commits - - Merge tag 'gitgui-0.21.0' of git://repo.or.cz/git-gui - - git-gui: set version 0.21 - - Merge branch 'as/bulgarian' into pu - - git-gui: Mark 'All' in remote.tcl for translation - - git-gui i18n: Updated Bulgarian translation (565,0f,0u) - - Merge branch 'os/preserve-author' into pu - - git-gui: avoid persisting modified author identity - - git-gui: Do not reset author details on amend - - Merge branch 'kb/unicode' into pu - - git-gui: handle the encoding of Git's output correctly - - git-gui: unicode file name support on windows - - Merge branch 'dr/ru' into pu - - git-gui: Update Russian translation - - git-gui: maintain backwards compatibility for merge syntax - - Merge branch 'va/i18n_2' into pu - - git-gui i18n: mark string in lib/error.tcl for translation - - git-gui: fix incorrect use of Tcl append command - - git-gui i18n: mark "usage:" strings for translation - - git-gui i18n: internationalize use of colon punctuation - - Merge branch 'pt/non-mouse-usage' into pu - - Amend tab ordering and text widget border and highlighting. - - Allow keyboard control to work in the staging widgets. - - Merge branch 'pt/git4win-mods' into pu - - git-gui (Windows): use git-gui.exe in `Create Desktop Shortcut` - - git-gui: fix detection of Cygwin - - Merge branch 'patches' into pu - - git-gui: ensure the file in the diff pane is in the list of selected files - - git-gui: support for $FILENAMES in tool definitions - - git-gui: fix initial git gui message encoding - - git-gui/po/glossary/txt-to-pot.sh: use the $( ... ) construct for command substitution - - Merge branch 'va/i18n' into pu - - Merge branch 'rs/use-modern-git-merge-syntax' into pu - - Merge branch 'js/commit-gpgsign' into pu - - Merge branch 'sy/i18n' into pu - - git-gui: sort entries in tclIndex +* ls/git-open-cloexec (2016-10-24) 3 commits + - SQUASH??? + - read-cache: make sure file handles are not inherited by child processes + - sha1_file: open window into packfiles with CLOEXEC - Will merge to 'master'. - Parked here temporarily as I didn't have chance to double-check. + Git generally does not explicitly close file descriptors that were + open in the parent process when spawning a child process, but most + of the time the child does not want to access them. As Windows does + not allow removing or renaming a file that has a file descriptor + open, a slow-to-exit child can even break the parent process by + holding onto them. Use O_CLOEXEC flag to open files in various + codepaths. + Under discussion. + cf. <20161024183900.GA12769@starla> -* yk/git-tag-remove-mention-of-old-layout-in-doc (2016-10-20) 1 commit - - doc: remove reference to the traditional layout in git-tag.txt + This needs to be merged before ls/filter-process so that it won't + break Windows. - Shorten description of auto-following in "git tag" by removing a - mention of historical remotes layout which is not relevant to the - main topic. - Will merge to 'next'. +* rs/ring-buffer-wraparound (2016-10-24) 1 commit + - hex: make wraparound of the index into ring-buffer explicit + + The code that we have used for the past 10+ years to cycle + 4-element ring buffers turns out to be not quite portable in + theoretical world. + Under discussion. + cf. <b1f9054e-fadb-c2d3-bf95-00e88e1fb85b@web.de> + + -------------------------------------------------- [Stalled] @@ -247,6 +288,124 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* jc/merge-base-fp-only (2016-10-19) 8 commits + . merge-base: fp experiment + - merge: allow to use only the fp-only merge bases + - merge-base: limit the output to bases that are on first-parent chain + - merge-base: mark bases that are on first-parent chain + - merge-base: expose get_merge_bases_many_0() a bit more + - merge-base: stop moving commits around in remove_redundant() + - sha1_name: remove ONELINE_SEEN bit + - commit: simplify fastpath of merge-base + + An experiment of merge-base that ignores common ancestors that are + not on the first parent chain. + + +* bw/submodule-branch-dot-doc (2016-10-19) 1 commit + (merged to 'next' on 2016-10-21 at 18aad25ba8) + + submodules doc: update documentation for "." used for submodule branches + + Recent git allows submodule.<name>.branch to use a special token + "." instead of the branch name; the documentation has been updated + to describe it. + + Will merge to 'master'. + + +* tg/add-chmod+x-fix (2016-10-20) 1 commit + (merged to 'next' on 2016-10-21 at 1585ac7139) + + t3700: fix broken test under !SANITY + + A hot-fix for a test added by a recent topic that went to both + 'master' and 'maint' already. + + Will merge to 'master'. + + +* jk/diff-submodule-diff-inline (2016-10-20) 1 commit + (merged to 'next' on 2016-10-21 at 13f300805e) + + rev-list: use hdr_termination instead of a always using a newline + + A recently graduated topic regressed "git rev-list --header" + output, breaking "gitweb". This has been fixed. + + Will merge to 'master'. + + +* jk/no-looking-at-dotgit-outside-repo (2016-10-20) 8 commits + - setup_git_env: avoid blind fall-back to ".git" + - diff: handle sha1 abbreviations outside of repository + - diff_aligned_abbrev: use "struct oid" + - diff_unique_abbrev: rename to diff_aligned_abbrev + - find_unique_abbrev: use 4-buffer ring + - test-*-cache-tree: setup git dir + - read info/{attributes,exclude} only when in repository + - Merge branch 'jc/diff-unique-abbrev-comments' into jk/no-looking-at-dotgit-outside-repo + (this branch uses jc/diff-unique-abbrev-comments.) + + Update "git diff --no-index" codepath not to try to peek into .git/ + directory that happens to be under the current directory, when we + know we are operating outside any repository. + + Will wait until 'jc/diff-unique-abbrev-comments' graduates, rebase + onto 'master' and then cook in 'next'. + + +* pt/gitgui-updates (2016-10-20) 35 commits + (merged to 'next' on 2016-10-21 at 4c8214095a) + + Merge tag 'gitgui-0.21.0' of git://repo.or.cz/git-gui + + git-gui: set version 0.21 + + Merge branch 'as/bulgarian' into pu + + git-gui: Mark 'All' in remote.tcl for translation + + git-gui i18n: Updated Bulgarian translation (565,0f,0u) + + Merge branch 'os/preserve-author' into pu + + git-gui: avoid persisting modified author identity + + git-gui: Do not reset author details on amend + + Merge branch 'kb/unicode' into pu + + git-gui: handle the encoding of Git's output correctly + + git-gui: unicode file name support on windows + + Merge branch 'dr/ru' into pu + + git-gui: Update Russian translation + + git-gui: maintain backwards compatibility for merge syntax + + Merge branch 'va/i18n_2' into pu + + git-gui i18n: mark string in lib/error.tcl for translation + + git-gui: fix incorrect use of Tcl append command + + git-gui i18n: mark "usage:" strings for translation + + git-gui i18n: internationalize use of colon punctuation + + Merge branch 'pt/non-mouse-usage' into pu + + Amend tab ordering and text widget border and highlighting. + + Allow keyboard control to work in the staging widgets. + + Merge branch 'pt/git4win-mods' into pu + + git-gui (Windows): use git-gui.exe in `Create Desktop Shortcut` + + git-gui: fix detection of Cygwin + + Merge branch 'patches' into pu + + git-gui: ensure the file in the diff pane is in the list of selected files + + git-gui: support for $FILENAMES in tool definitions + + git-gui: fix initial git gui message encoding + + git-gui/po/glossary/txt-to-pot.sh: use the $( ... ) construct for command substitution + + Merge branch 'va/i18n' into pu + + Merge branch 'rs/use-modern-git-merge-syntax' into pu + + Merge branch 'js/commit-gpgsign' into pu + + Merge branch 'sy/i18n' into pu + + git-gui: sort entries in tclIndex + + A new version of git-gui, now at its 0.21.0 tag. + + Will merge to 'master'. + + +* yk/git-tag-remove-mention-of-old-layout-in-doc (2016-10-20) 1 commit + (merged to 'next' on 2016-10-21 at 8d9e23b023) + + doc: remove reference to the traditional layout in git-tag.txt + + Shorten description of auto-following in "git tag" by removing a + mention of historical remotes layout which is not relevant to the + main topic. + + Will merge to 'master'. + + * dk/worktree-dup-checkout-with-bare-is-ok (2016-10-14) 1 commit (merged to 'next' on 2016-10-17 at 24594d3e56) + worktree: allow the main brach of a bare repository to be checked out @@ -327,7 +486,7 @@ of the repositories listed at Will merge to 'master'. -* jt/trailer-with-cruft (2016-10-20) 8 commits +* jt/trailer-with-cruft (2016-10-21) 8 commits - trailer: support values folded to multiple lines - trailer: forbid leading whitespace in trailers - trailer: allow non-trailers in trailer block @@ -345,7 +504,10 @@ of the repositories listed at Waiting for review. -* mm/send-email-cc-cruft-after-address (2016-10-14) 1 commit +* mm/send-email-cc-cruft-after-address (2016-10-21) 3 commits + (merged to 'next' on 2016-10-21 at c7ec2b5025) + + Git.pm: add comment pointing to t9000 + + t9000-addresses: update expected results after fix (merged to 'next' on 2016-10-19 at 41e3f876cd) + parse_mailboxes: accept extra text after <...> address @@ -438,15 +600,17 @@ of the repositories listed at Will merge to 'master'. -* js/prepare-sequencer (2016-10-17) 25 commits +* js/prepare-sequencer (2016-10-21) 27 commits - sequencer: mark all error messages for translation - sequencer: start error messages consistently with lower case - sequencer: quote filenames in error messages - sequencer: mark action_name() for translation - sequencer: remove overzealous assumption in rebase -i mode - - sequencer: refactor write_message() + - sequencer: teach write_message() to append an optional LF + - sequencer: refactor write_message() to take a pointer/length + - sequencer: roll back lock file if write_message() failed + - sequencer: stop releasing the strbuf in write_message() - sequencer: left-trim lines read from the script - - sequencer: do not try to commit when there were merge conflicts - sequencer: support cleaning up commit messages - sequencer: support amending commits - sequencer: allow editing the commit message on a case-by-case basis @@ -459,7 +623,7 @@ of the repositories listed at - sequencer: completely revamp the "todo" script parsing - sequencer: refactor the code to obtain a short commit name - sequencer: future-proof read_populate_todo() - - sequencer: eventually release memory allocated for the option values + - sequencer: plug memory leaks for the option values - sequencer: future-proof remove_sequencer_state() - sequencer: avoid unnecessary indirection - sequencer: use memoized sequencer directory path @@ -468,7 +632,7 @@ of the repositories listed at Update of the sequencer codebase to make it reusable to reimplement "rebase -i" continues. - Waiting for review. + Will merge to 'next'. * sb/submodule-ignore-trailing-slash (2016-10-18) 3 commits @@ -486,6 +650,8 @@ of the repositories listed at cf. <alpine.DEB.2.20.1610131255001.197091@virtualbox> cf. <CAGZ79kYrKGLEOO72aWuX5OOM-AecdFZFXRqBkRzhdAM-VbPFxA@mail.gmail.com> + What's the current state of this topic? + * st/verify-tag (2016-10-10) 7 commits - t/t7004-tag: Add --format specifier tests @@ -514,10 +680,18 @@ of the repositories listed at Will merge to 'master'. -* sb/attr (2016-10-11) 28 commits +* sb/attr (2016-10-24) 36 commits + - completion: clone can initialize specific submodules + - clone: add --init-submodule=<pathspec> switch + - submodule update: add `--init-default-path` switch + - pathspec: allow escaped query values + - pathspec: allow querying for attributes + - pathspec: move prefix check out of the inner loop + - pathspec: move long magic parsing out of prefix_pathspec + - Documentation: fix a typo + - attr: keep attr stack for each check - attr: convert to new threadsafe API - attr: make git_check_attr_counted static - - attr: make git_attr_counted static - attr.c: outline the future plans by heavily commenting - attr.c: always pass check[] to collect_some_attrs() - attr.c: introduce empty_attr_check_elems() @@ -546,6 +720,8 @@ of the repositories listed at The attributes API has been updated so that it can later be optimized using the knowledge of which attributes are queried. + Building on top of the updated API, the pathspec machinery learned + to select only paths with given attributes set. * jc/ws-error-highlight (2016-10-04) 4 commits @@ -562,8 +738,9 @@ of the repositories listed at * jk/abbrev-auto (2016-10-03) 1 commit - - find_unique_abbrev: move logic out of get_short_sha1() - (this branch uses lt/abbrev-auto.) + (merged to 'next' on 2016-10-21 at 8aa3d760d8) + + find_unique_abbrev: move logic out of get_short_sha1() + (this branch is used by jc/abbrev-auto; uses lt/abbrev-auto.) Updates the way approximate count of total objects is computed while attempting to come up with a unique abbreviated object name, @@ -573,10 +750,11 @@ of the repositories listed at Undecided. -* nd/ita-empty-commit (2016-09-28) 3 commits +* nd/ita-empty-commit (2016-10-24) 4 commits - commit: don't be fooled by ita entries when creating initial commit - - diff-lib.c: enable --shift-ita in index_differs_from() - - Resurrect "diff-lib.c: adjust position of i-t-a entries in diff" + - commit: fix empty commit creation when there's no changes but ita entries + - diff: add --ita-[in]visible-in-index + - diff-lib: allow ita entries treated as "not yet exist in index" When new paths were added by "git add -N" to the index, it was enough to circumvent the check by "git commit" to refrain from @@ -584,9 +762,7 @@ of the repositories listed at prevented "git status" to show such a path as "new file" in the "Changes not staged for commit" section. - Expecting a reroll. - cf. <xmqqzimrj03j.fsf@gitster.mtv.corp.google.com> - cf. <xmqq8tubkgg5.fsf@gitster.mtv.corp.google.com> + Will merge to 'next'. * lt/abbrev-auto (2016-10-03) 3 commits @@ -594,7 +770,7 @@ of the repositories listed at + abbrev: auto size the default abbreviation + abbrev: prepare for new world order + abbrev: add FALLBACK_DEFAULT_ABBREV to prepare for auto sizing - (this branch is used by jk/abbrev-auto.) + (this branch is used by jc/abbrev-auto and jk/abbrev-auto.) Allow the default abbreviation length, which has historically been 7, to scale as the repository grows. The logic suggests to use 12 @@ -716,7 +892,7 @@ of the repositories listed at all filtering need is served by this single process for multiple paths, reducing the process creation overhead. - Will merge to 'master'. + Will wait for ls/git-open-cloexec. * hv/submodule-not-yet-pushed-fix (2016-10-10) 3 commits