From: Junio C Hamano Date: Mon, 20 Aug 2018 20:29:07 +0000 (-0700) Subject: What's cooking (2018/08 #05) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8669656cddd925c101f24e26136c72c887aa5df;p=thirdparty%2Fgit.git What's cooking (2018/08 #05) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index a73ef1ab8a..3a3dae402d 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, #04; Fri, 17) -X-master-at: fa03cdc39b951d1cfbfd690fe6f3ac6c57ab6a44 -X-next-at: e017bf2cd19392a79e02d0636972bd4c284f89be +Subject: What's cooking in git.git (Aug 2018, #05; Mon, 20) +X-master-at: 7e8bfb0412581daf8f3c89909f1d37844e8610dd +X-next-at: 281dcd1b4d06be64a0a976ddb7172bf180b74c09 -What's cooking in git.git (Aug 2018, #04; Fri, 17) +What's cooking in git.git (Aug 2018, #05; Mon, 20) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,22 +12,9 @@ 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. -Quite a many topics have graduated to 'master', and also a handful -of topics have entered 'next'. I am planning to tag -rc0 over the -weekend, and some topics that are in 'next' and marked for 'master' -in this issue of "What's cooking" report may be reclassified to cook -in 'next' during the pre-release period when that happens. - -Usually, I refrain from merging larger topics in 'next' down to -'master' when we get close to -rc0, but I am wondering if it is -better to merge all of them to 'master', even the ones on the larger -and possibly undercooked side, expecting that we collectively spend -effort on hunting and fixing bugs in them during the pre-release -freeze period. If we were to go that route, I'd want everybody's -buy-in and I'll promise to ignore any shiny new toys that appear on -list that are not regression fixes to topics merged to 'master' -since the end of the previous cycle to make sure people are not -distracted. +An early preview of the upcoming 2.19 release of Git has been tagged +as v2.19.0-rc0; before -rc1, I plan to merge three more topics to +'master' from 'next'. You can find the changes described here in the integration branches of the repositories listed at @@ -37,230 +24,238 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ab/fetch-nego (2018-08-01) 3 commits - (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 +* ab/checkout-default-remote (2018-08-18) 1 commit + (merged to 'next' on 2018-08-20 at 21fff26f74) + + t2024: mark test using "checkout -p" with PERL prerequisite - Update to a few other topics around 'git fetch'. + Test fix. -* ab/fsck-transfer-updates (2018-07-27) 10 commits - (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 +* 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 and doc clean-ups. + + +* 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 - The test performed at the receiving end of "git push" to prevent - bad objects from entering repository can be customized via - receive.fsck.* configuration variables; we now have gained a - counterpart to do the same on the "git fetch" side, with - fetch.fsck.* configuration variables. + Documentation update. -* ab/sha1dc (2018-08-02) 1 commit - (merged to 'next' on 2018-08-08 at 920c190941) - + sha1dc: update from upstream +* ab/submodule-relative-url-tests (2018-08-14) 1 commit + (merged to 'next' on 2018-08-17 at 17b28d8262) + + submodule: add more exhaustive up-path testing - AIX portability update for the SHA1DC hash, imported from upstream. + Test updates. -* ab/test-must-be-empty (2018-07-30) 1 commit - (merged to 'next' on 2018-08-08 at 06599ebd1f) +* ab/test-must-be-empty-for-master (2018-07-30) 1 commit + (merged to 'next' on 2018-08-15 at 17652a77fb) + tests: make use of the test_must_be_empty function Test updates. -* 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 +* 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. -* en/abort-df-conflict-fixes (2018-07-31) 2 commits - (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 the index in certain order that - are involved in D/F conflicts. This has been corrected. +* en/incl-forward-decl (2018-08-15) 6 commits + (merged to 'next' on 2018-08-17 at 04fc9c11bb) + + 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. -* 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. +* 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 + Test fixes. -* es/rebase-i-author-script-fix (2018-07-31) 4 commits - (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. +* 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 + Doc update. -* es/want-color-fd-defensive (2018-08-03) 1 commit - (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 be misused. +* 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. -* 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. +* hn/highlight-sideband-keywords (2018-08-18) 2 commits + (merged to 'next' on 2018-08-20 at ec6f953f8c) + + sideband: do not read beyond the end of input + (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. -* 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 - The end result of documentation update has been made to be - inspected more easily to help developers. +* 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 + "git verify-tag" and "git verify-commit" have been taught to use + the exit status of underlying "gpg --verify" to signal bad or + untrusted signature they found. -* jk/merge-subtree-heuristics (2018-08-02) 1 commit - (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. +* 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` + Doc update. -* 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". +* 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. -* jt/refspec-dwim-precedence-fix (2018-08-02) 1 commit - (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 - name is "refs/heads/s" exists at the same time, fetched that one - instead by mistake. This has been corrected to honor the usual - disambiguation rules for abbreviated refnames. +* 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. -* 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 - 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. +* 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. -* 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. +* 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. -* 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 - Doc fix. +* 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. -* 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. +* 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. -* ot/ref-filter-object-info (2018-07-17) 5 commits - (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 - getting the full contents of the object, but just with the object - header. These cases have been optimized by calling - oid_object_info() API (instead of reading and inspecting the data). +* 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 + Comment update. -* rs/parse-opt-lithelp (2018-08-03) 7 commits - (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 - without PARSE_OPT_LITERAL_ARGHELP. Existing help text for option - arguments that are not formatted correctly have been identified and - fixed. +* 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. -* sb/indent-heuristic-optim (2018-08-01) 1 commit - (merged to 'next' on 2018-08-08 at 539dcc967a) - + xdiff: reduce indent heuristic overhead - "git diff --indent-heuristic" had a bad corner case performance. +* jt/fetch-negotiator-skipping (2018-08-10) 1 commit + (merged to 'next' on 2018-08-15 at 3cf8fa32f5) + + t5552: suppress upload-pack trace output --------------------------------------------------- -[New Topics] + Test fix. -* ep/worktree-quiet-option (2018-08-17) 1 commit - - worktree: add --quiet option - "git worktree" command learned "--quiet" option to make it less - verbose. +* jt/repack-promisor-packs (2018-08-09) 2 commits + (merged to 'next' on 2018-08-17 at 6869b53a69) + + repack: repack promisor objects if -a or -A is set + + repack: refactor setup of pack-objects cmd - Will merge to 'next'. + 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. * nd/cherry-pick-quit-fix (2018-08-16) 1 commit @@ -271,17 +266,45 @@ of the repositories listed at though we won't be in a cherry-pick session after it returns, which has been corrected. - Will merge to 'master'. +* 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 + + 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. -* nd/config-core-checkstat-doc (2018-08-17) 1 commit - - config.txt: clarify core.checkStat - The meaning of the possible values the "core.checkStat" - configuration variable can take were not adequately documented, - which has been fixed. +* 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 - Will merge to 'next'. + "git mergetool" stopped and gave an extra prompt to continue after + the last path has been handled, which did not make much sense. * pw/rebase-i-merge-segv-fix (2018-08-16) 2 commits @@ -292,7 +315,34 @@ of the repositories listed at "git rebase -i", when a 'merge ' insn in its todo list fails, segfaulted, which has been (minimally) corrected. - Will merge to 'master'. + +* pw/rebase-i-squash-number-fix (2018-08-15) 1 commit + (merged to 'next' on 2018-08-17 at ac54dfa51a) + + 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. + + +* sb/config-write-fix (2018-08-08) 3 commits + (merged to 'next' on 2018-08-17 at 7d9c7ce81f) + + 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 + + Recent update to "git config" broke updating variable in a + subsection, which has been corrected. + + +* 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. * sb/submodule-cleanup (2018-08-16) 2 commits @@ -302,25 +352,30 @@ of the repositories listed at A few preliminary minor clean-ups in the area around submodules. - 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 -* sm/branch-sort-config (2018-08-16) 1 commit - - branch: support configuring --sort via .gitconfig + Test fix. - "git branch --list" learned to take the default sort order from the - 'branch.sort' configuration variable, just like "git tag --list" - pays attention to 'tag.sort'. - Will merge to 'next'. +* 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 + "git instaweb" has been adjusted to run better with newer Apache on + RedHat based distros. -* ab/unconditional-free-and-null (2018-08-17) 1 commit - - refactor various if (x) FREE_AND_NULL(x) to just FREE_AND_NULL(x) - Code clean-up. +* wc/make-funnynames-shared-lazy-prereq (2018-08-06) 1 commit + (merged to 'next' on 2018-08-17 at b932a0894b) + + t: factor out FUNNYNAMES as shared lazy prereq - Will merge to 'next'. + A test prerequisite defined by various test scripts with slightly + different semantics has been consolidated into a single copy and + made into a lazily defined one. -------------------------------------------------- [Stalled] @@ -419,251 +474,99 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* bp/checkout-new-branch-optim (2018-08-16) 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? - - -* 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 - - Test fixes. - - Will merge to 'master'. - - -* 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 - - Doc update. - - Will merge to 'master'. - - -* 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` - - Doc update. - - Will merge to 'master'. - - -* 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 - - Comment update. - - Will merge to 'master'. - - -* jt/repack-promisor-packs (2018-08-09) 2 commits - (merged to 'next' on 2018-08-17 at 6869b53a69) - + repack: repack promisor objects if -a or -A is set - + repack: refactor setup of pack-objects cmd - - 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 'master'. - - -* 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 - - "git instaweb" has been adjusted to run better with newer Apache on - RedHat based distros. - - Will merge to 'master'. - - -* ab/submodule-relative-url-tests (2018-08-14) 1 commit - (merged to 'next' on 2018-08-17 at 17b28d8262) - + submodule: add more exhaustive up-path testing - - Test updates. - - Will merge to 'master'. - - -* 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. - - -* 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 +* ep/worktree-quiet-option (2018-08-17) 1 commit + - worktree: add --quiet option - 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. + "git worktree" command learned "--quiet" option to make it less + verbose. Will merge to 'next'. -* cc/delta-islands (2018-08-16) 7 commits - - pack-objects: move 'layer' into 'struct packing_data' - - pack-objects: move tree_depth into 'struct packing_data' - - t5320: tests for delta islands - - repack: add delta-islands support - - pack-objects: add delta-islands support - - pack-objects: refactor code into compute_layer_order() - - Add delta-islands.{c,h} - - 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'. - - -* en/incl-forward-decl (2018-08-15) 6 commits - (merged to 'next' on 2018-08-17 at 04fc9c11bb) - + 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 'master'. - - -* 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'. - +* nd/config-core-checkstat-doc (2018-08-17) 1 commit + - config.txt: clarify core.checkStat -* 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 + The meaning of the possible values the "core.checkStat" + configuration variable can take were not adequately documented, + which has been fixed. - Will merge to 'master'. + Will merge to 'next'. -* 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 +* sm/branch-sort-config (2018-08-16) 1 commit + - branch: support configuring --sort via .gitconfig - Doc updates. + "git branch --list" learned to take the default sort order from the + 'branch.sort' configuration variable, just like "git tag --list" + pays attention to 'tag.sort'. - Will merge to 'master'. + Will merge to 'next'. -* 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 +* ab/unconditional-free-and-null (2018-08-17) 1 commit + - refactor various if (x) FREE_AND_NULL(x) to just FREE_AND_NULL(x) - 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. + Code clean-up. - Will merge to 'master'. + Will merge to 'next'. -* js/chain-lint-attrfix (2018-08-15) 1 commit - (merged to 'next' on 2018-08-15 at e9ad19a848) - + chainlint: fix for core.autocrlf=true +* bp/checkout-new-branch-optim (2018-08-16) 1 commit + - checkout: optimize "git checkout -b " - Test fix. + "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. - Will merge to 'master'. + 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? -* js/mingw-o-append (2018-08-13) 1 commit - (merged to 'next' on 2018-08-15 at 284527a0fb) - + mingw: enable atomic O_APPEND +* 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 - 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. + The submodule support has been updated to read from the blob at + HEAD:.gitmodules when the .gitmodules file is missing from the + working tree. - Will merge to 'master'. + 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. -* 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 +* 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 - Test update. + 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 'master'. + Will merge to 'next'. -* jt/fetch-negotiator-skipping (2018-08-10) 1 commit - (merged to 'next' on 2018-08-15 at 3cf8fa32f5) - + t5552: suppress upload-pack trace output +* cc/delta-islands (2018-08-16) 7 commits + - pack-objects: move 'layer' into 'struct packing_data' + - pack-objects: move tree_depth into 'struct packing_data' + - t5320: tests for delta islands + - repack: add delta-islands support + - pack-objects: add delta-islands support + - pack-objects: refactor code into compute_layer_order() + - Add delta-islands.{c,h} - Test fix. + 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. - Will merge to 'master'. + What's the doneness of this topic? * md/filter-trees (2018-08-16) 6 commits @@ -678,50 +581,6 @@ of the repositories listed at "tree:0" filter. -* 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 - - 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'. - - * ng/status-i-short-for-ignored (2018-08-09) 1 commit - status: -i shorthand for --ignored command line option @@ -822,95 +681,6 @@ of the repositories listed at - sha1-name.c: added 'get_oidf', which acts like 'get_oid' -* pw/rebase-i-squash-number-fix (2018-08-15) 1 commit - (merged to 'next' on 2018-08-17 at ac54dfa51a) - + 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 'master'. - - -* 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'. - - -* 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'. - - -* wc/make-funnynames-shared-lazy-prereq (2018-08-06) 1 commit - (merged to 'next' on 2018-08-17 at b932a0894b) - + t: factor out FUNNYNAMES as shared lazy prereq - - A test prerequisite defined by various test scripts with slightly - different semantics has been consolidated into a single copy and - made into a lazily defined one. - - Will merge to 'master'. - - -* ab/test-must-be-empty-for-master (2018-07-30) 1 commit - (merged to 'next' on 2018-08-15 at 17652a77fb) - + tests: make use of the test_must_be_empty function - - Test updates. - - Will merge to 'master'. - - -* hn/highlight-sideband-keywords (2018-08-17) 2 commits - - sideband: do not read beyond the end of input - (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. - - Will merge to 'master'. - - -* 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 and doc clean-ups. - - Will merge to 'master'. - - * nd/clone-case-smashing-warning (2018-08-17) 1 commit - clone: report duplicate entries on case-insensitive filesystems @@ -923,7 +693,9 @@ of the repositories listed at Will merge to 'next'. -* nd/unpack-trees-with-cache-tree (2018-08-13) 5 commits +* nd/unpack-trees-with-cache-tree (2018-08-18) 7 commits + - cache-tree: verify valid cache-tree in the test suite + - unpack-trees: add missing cache invalidation - 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 @@ -941,18 +713,6 @@ of the repositories listed at Will merge to and cook in 'next'. -* sb/config-write-fix (2018-08-08) 3 commits - (merged to 'next' on 2018-08-17 at 7d9c7ce81f) - + 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 - - Recent update to "git config" broke updating variable in a - subsection, which has been corrected. - - Will merge to 'master'. - - * sb/range-diff-colors (2018-08-14) 8 commits - diff.c: rewrite emit_line_0 more understandably - diff.c: omit check for line prefix in emit_line_0 @@ -962,7 +722,6 @@ of the repositories listed at - diff.c: simplify caller of emit_line_0 - t3206: add color test for range-diff --dual-color - 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. @@ -1079,7 +838,7 @@ of the repositories listed at - range-diff: respect diff_option.file rather than assuming 'stdout' - Merge branch 'es/format-patch-interdiff' into es/format-patch-rangediff - Merge branch 'js/range-diff' into es/format-patch-rangediff - (this branch uses es/format-patch-interdiff and js/range-diff; is tangled with sb/range-diff-colors.) + (this branch uses es/format-patch-interdiff.) "git format-patch" learned a new "--range-diff" option to explain the difference between this version and the previous atttempt in @@ -1096,16 +855,6 @@ of the repositories listed at producing a larger than necessary packfiles by missing opportunities to use large deltas. - Will cook in 'next'. - - -* 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 'master'. @@ -1167,7 +916,7 @@ of the repositories listed at "git submodule update" is getting rewritten piece-by-piece into C. - Will cook in 'next'. + Will merge to 'master'. * tg/rerere (2018-08-06) 11 commits @@ -1187,7 +936,7 @@ of the repositories listed at Fixes to "git rerere" corner cases, especially when conflict markers cannot be parsed in the file. - Will cook in 'next'. + Will merge to 'master'. * ag/rebase-i-in-c (2018-08-10) 20 commits @@ -1219,38 +968,6 @@ of the repositories listed at other topics need a bit more work to play with each other better. -* 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. - - Will merge to 'master'. - - * lt/date-human (2018-07-09) 1 commit - Add 'human' date format