From: Junio C Hamano Date: Fri, 18 Jan 2019 23:08:58 +0000 (-0800) Subject: What's cooking (2019/01 #03) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=650da6fd97d84db5f9320261b64a951d4bfe3a2a;p=thirdparty%2Fgit.git What's cooking (2019/01 #03) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 6ce5301be0..e7f595196d 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jan 2019, #02; Tue, 15) -X-master-at: 77556354bb7ac50450e3b28999e3576969869068 -X-next-at: 40155ab247a57ccc696d2ded09336b2c5203e832 +Subject: What's cooking in git.git (Jan 2019, #03; Fri, 18) +X-master-at: 16a465bc018d09e9d7bbbdc5f40a7fb99c21f8ef +X-next-at: aa96b0ce6b0fa4fa4cc6870f1a3aff3878967bfa -What's cooking in git.git (Jan 2019, #02; Tue, 15) +What's cooking in git.git (Jan 2019, #03; Fri, 18) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -20,568 +20,701 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ab/commit-graph-progress-fix (2018-11-20) 1 commit - (merged to 'next' on 2019-01-04 at 405a1a2cf5) - + commit-graph: split up close_reachable() progress output - +* cy/completion-typofix (2019-01-03) 1 commit + (merged to 'next' on 2019-01-08 at 6c6f01a07d) + + completion: fix typo in git-completion.bash -* bw/mailmap (2018-12-09) 1 commit - (merged to 'next' on 2019-01-04 at 02b6e83231) - + mailmap: update brandon williams's email address + Typofix. -* cb/openbsd-allows-reading-directory (2018-12-03) 1 commit - (merged to 'next' on 2019-01-04 at 9d865107fd) - + config.mak.uname: OpenBSD uses BSD semantics with fread for directories +* cy/zsh-completion-SP-in-path (2019-01-03) 2 commits + (merged to 'next' on 2019-01-08 at fee27de30b) + + completion: treat results of git ls-tree as file paths + + zsh: complete unquoted paths with spaces correctly - BSD port update. + With zsh, "git cmd path" was completed to "git cmd path name" + when the completed path has a special character like SP in it, + without any attempt to keep "path name" a single filename. This + has been fixed to complete it to "git cmd path\ name" just like + Bash completion does. -* cb/t5004-empty-tar-archive-fix (2018-12-03) 1 commit - (merged to 'next' on 2019-01-04 at 39f4cf94ce) - + t5004: avoid using tar for empty packages +* ds/commit-graph-assert-missing-parents (2019-01-02) 1 commit + (merged to 'next' on 2019-01-08 at d141f063e0) + + commit-graph: writing missing parents is a BUG - BSD port update. + Tightening error checking in commit-graph writer. -* cb/test-lint-cp-a (2018-12-03) 1 commit - (merged to 'next' on 2019-01-04 at d13e6cfcb0) - + tests: add lint for non portable cp -a +* ds/gc-doc-typofix (2019-01-08) 1 commit + (merged to 'next' on 2019-01-08 at f21ffc83e0) + + git-gc.txt: fix typo about gc.writeCommitGraph - BSD port update. + Typofix. -* do/gitweb-strict-export-conf-doc (2018-12-09) 1 commit - (merged to 'next' on 2019-01-04 at 5249c9386a) - + docs: fix $strict_export text in gitweb.conf.txt +* ed/simplify-setup-git-dir (2019-01-03) 1 commit + (merged to 'next' on 2019-01-08 at 8722c7c2ef) + + Simplify handling of setup_git_directory_gently() failure cases. - Doc update. + Code simplification. -* en/directory-renames-nothanks-doc-update (2018-12-09) 1 commit - (merged to 'next' on 2019-01-04 at cb7134b54c) - + git-rebase.txt: update note about directory rename detection and am +* en/show-ref-doc-fix (2019-01-10) 1 commit + (merged to 'next' on 2019-01-14 at f875bfb9a4) + + git-show-ref.txt: fix order of flags Doc update. -* fd/gitweb-snapshot-conf-doc-fix (2018-12-09) 1 commit - (merged to 'next' on 2019-01-04 at 7ba71fca17) - + docs/gitweb.conf: config variable typo +* es/doc-worktree-guessremote-config (2018-12-28) 1 commit + (merged to 'next' on 2019-01-08 at f1dc5e39a6) + + doc/config: do a better job of introducing 'worktree.guessRemote' - Doc update. + Doc clarification. -* hb/t0061-dot-in-path-fix (2018-12-03) 1 commit - (merged to 'next' on 2019-01-04 at 789f990c4e) - + t0061: do not fail test if '.' is part of $PATH +* ew/ban-strncat (2019-01-02) 1 commit + (merged to 'next' on 2019-01-08 at 3bba2ae2bb) + + banned.h: mark strncat() as banned - Test update. + The "strncat()" function is now among the banned functions. -* hn/highlight-sideband-keywords (2018-12-04) 1 commit - (merged to 'next' on 2019-01-04 at b039601533) - + sideband: color lines with keyword only +* jk/dev-build-format-security (2019-01-07) 1 commit + (merged to 'next' on 2019-01-08 at 3761ab7026) + + config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users - Lines that begin with a certain keyword that come over the wire, as - well as lines that consist only of one of these keywords, ought to - be painted in color for easier eyeballing, but the latter was - broken ever since the feature was introduced in 2.19, which has - been corrected. + Earlier we added "-Wformat-security" to developer builds, assuming + that "-Wall" (which includes "-Wformat" which in turn is required + to use "-Wformat-security") is always in effect. This is not true + when config.mak.autogen is in use, unfortunately. This has been + fixed by unconditionally adding "-Wall" to developer builds. -* km/rebase-doc-typofix (2018-12-10) 1 commit - (merged to 'next' on 2019-01-04 at c89f646e8f) - + rebase docs: drop stray word in merge command description +* jn/stripspace-wo-repository (2018-12-26) 1 commit + (merged to 'next' on 2019-01-08 at 81815821c9) + + stripspace: allow -s/-c outside git repository - Doc update. + "git stripspace" should be usable outside a git repository, but + under the "-s" or "-c" mode, it didn't. -* md/exclude-promisor-objects-fix-cleanup (2018-12-06) 1 commit - (merged to 'next' on 2019-01-04 at c15362832d) - + revision.c: put promisor option in specialized struct +* js/gc-repack-close-before-remove (2019-01-11) 1 commit + (merged to 'next' on 2019-01-14 at 9daedfee40) + + gc/repack: release packs when needed - Code clean-up. + "git gc" and "git repack" did not close the open packfiles that + they found unneeded before removing them, which didn't work on a + platform incapable of removing an open file. This has been + corrected. -* md/list-lazy-objects-fix (2018-12-06) 1 commit - (merged to 'next' on 2019-01-04 at 93bd38fff9) - + list-objects.c: don't segfault for missing cmdline objects +* la/quiltimport-keep-non-patch (2019-01-07) 1 commit + (merged to 'next' on 2019-01-08 at 37cb490792) + + git-quiltimport: add --keep-non-patch option - "git rev-list --exclude-promisor-objects" had to take an object - that does not exist locally (and is lazily available) from the - command line without barfing, but the code dereferenced NULL. + "git quiltimport" learned "--keep-non-patch" option. -* nd/attr-pathspec-in-tree-walk (2018-11-19) 5 commits - (merged to 'next' on 2019-01-04 at 6a07e5b905) - + tree-walk: support :(attr) matching - + dir.c: move, rename and export match_attrs() - + pathspec.h: clean up "extern" in function declarations - + tree-walk.c: make tree_entry_interesting() take an index - + tree.c: make read_tree*() take 'struct repository *' +* ma/asciidoctor (2018-12-26) 3 commits + (merged to 'next' on 2019-01-08 at 3cfd4ad6cb) + + git-status.txt: render tables correctly under Asciidoctor + + Documentation: do not nest open blocks + + git-column.txt: fix section header - The traversal over tree objects has learned to honor - ":(attr:label)" pathspec match, which has been implemented only for - enumerating paths on the filesystem. + Some of the documentation pages formatted incorrectly with + Asciidoctor, which have been fixed. -* nd/checkout-noisy (2018-11-20) 2 commits - (merged to 'next' on 2019-01-04 at 480172d3d7) - + t0027: squelch checkout path run outside test_expect_* block - + checkout: print something when checking out paths +* mm/multimail-1.5 (2019-01-07) 1 commit + (merged to 'next' on 2019-01-08 at 8c872af48e) + + git-multimail: update to release 1.5.0 - "git checkout [] path..." learned to report the number of - paths that have been checked out of the index or the tree-ish, - which gives it the same degree of noisy-ness as the case in which - the command checks out a branch. + Update "git multimail" from the upstream. -* nd/indentation-fix (2018-12-09) 1 commit - (merged to 'next' on 2019-01-04 at 738b17d365) - + Indent code with TABs +* nd/style-opening-brace (2018-12-10) 1 commit + (merged to 'next' on 2019-01-08 at 80de026e14) + + style: the opening '{' of a function is in a separate line - Code cleanup. + Code clean-up. -* sb/diff-color-moved-config-option-fixup (2018-11-14) 1 commit - (merged to 'next' on 2019-01-04 at 46de5f42d1) - + diff: align move detection error handling with other options +* nd/worktree-remove-with-uninitialized-submodules (2019-01-07) 1 commit + (merged to 'next' on 2019-01-08 at e19cfe8741) + + worktree: allow to (re)move worktrees with uninitialized submodules - Minor inconsistency fix. + "git worktree remove" and "git worktree move" refused to work when + there is a submodule involved. This has been loosened to ignore + uninitialized submodules. -* tb/log-G-binary (2018-12-26) 1 commit - (merged to 'next' on 2019-01-04 at a713ef389c) - + log -G: ignore binary files +* ot/ref-filter-object-info (2019-01-10) 7 commits + (merged to 'next' on 2019-01-10 at 9e740568ce) + + ref-filter: give uintmax_t to format with %PRIuMAX + (merged to 'next' on 2019-01-08 at 0a4d4ed36a) + + ref-filter: add docs for new options + + ref-filter: add tests for deltabase + + ref-filter: add deltabase option + + ref-filter: add tests for objectsize:disk + + ref-filter: add check for negative file size + + ref-filter: add objectsize:disk option - "git log -G" looked for a hunk in the "git log -p" patch - output that contained a string that matches the given pattern. - Optimize this code to ignore binary files, which by default will - not show any hunk that would match any pattern (unless textconv or - the --text option is in effect, that is). + The "--format=" option of for-each-ref, branch and tag + learned to show a few more traits of objects that can be learned by + the object_info API. -* tb/use-common-win32-pathfuncs-on-cygwin (2018-12-26) 1 commit - (merged to 'next' on 2019-01-04 at c3b2b1f3c3) - + git clone C:\cygwin\home\USER\repo' is working (again) +* po/git-p4-wo-login (2019-01-07) 1 commit + (merged to 'next' on 2019-01-08 at a7cc58d6b9) + + git-p4: fix problem when p4 login is not necessary - Cygwin update. + "git p4" update. --------------------------------------------------- -[New Topics] -* ds/gc-doc-typofix (2019-01-08) 1 commit - (merged to 'next' on 2019-01-08 at f21ffc83e0) - + git-gc.txt: fix typo about gc.writeCommitGraph +* rb/hpe (2019-01-03) 5 commits + (merged to 'next' on 2019-01-08 at 52d6995399) + + compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop + + git-compat-util.h: add FLOSS headers for HPE NonStop + + config.mak.uname: support for modern HPE NonStop config. + + transport-helper: drop read/write errno checks + + transport-helper: use xread instead of read - Typofix. + Portability updates for the HPE NonStop platform. - Will merge to 'master'. +* rs/loose-object-cache-perffix (2019-01-08) 4 commits + (merged to 'next' on 2019-01-08 at 36e355e099) + + object-store: retire odb_load_loose_cache() + + object-store: use one oid_array per subdirectory for loose cache + + object-store: factor out odb_clear_loose_cache() + + object-store: factor out odb_loose_cache() + (this branch is used by jk/loose-object-cache-oid.) -* sc/pack-redundant (2019-01-14) 5 commits - - pack-redundant: consistent sort method - - pack-redundant: rename pack_list.all_objects - - pack-redundant: remove unused functions - - pack-redundant: new algorithm to find min packs - - t5323: test cases for git-pack-redundant + The loose object cache used to optimize existence look-up has been + updated. - Update the implementation of pack-redundant for performance in a - repository with many packfiles. - Comments? +* rs/sha1-file-close-mapped-file-on-error (2019-01-07) 1 commit + (merged to 'next' on 2019-01-08 at 5841cbc153) + + sha1-file: close fd of empty file in map_sha1_file_1() + Code clean-up. -* pw/diff-color-moved-ws-fix (2019-01-10) 9 commits - - diff --color-moved-ws: handle blank lines - - diff --color-moved-ws: modify allow-indentation-change - - diff --color-moved-ws: optimize allow-indentation-change - - diff --color-moved=zebra: be stricter with color alternation - - diff --color-moved-ws: fix false positives - - diff --color-moved-ws: demonstrate false positives - - diff: allow --no-color-moved-ws - - Use "whitespace" consistently - - diff: document --no-color-moved - "git diff --color-moved-ws" updates. +* sb/submodule-fetchjobs-default-to-one (2018-12-14) 1 commit + (merged to 'next' on 2019-01-08 at 97a522ef5e) + + submodule update: run at most one fetch job unless otherwise set - Will merge to 'next'. + "git submodule update" ought to use a single job unless asked, but + by mistake used multiple jobs, which has been fixed. -* en/show-ref-doc-fix (2019-01-10) 1 commit - (merged to 'next' on 2019-01-14 at f875bfb9a4) - + git-show-ref.txt: fix order of flags +* sb/submodule-unset-core-worktree-when-worktree-is-lost (2018-12-26) 4 commits + (merged to 'next' on 2019-01-08 at 38f3175a2b) + + submodule deinit: unset core.worktree + + submodule--helper: fix BUG message in ensure_core_worktree + + submodule: unset core.worktree if no working tree is present + + submodule update: add regression test with old style setups - Doc update. + The core.worktree setting in a submodule repository should not be + pointing at a directory when the submodule loses its working tree + (e.g. getting deinit'ed), but the code did not properly maintain + this invariant. - Will merge to 'master'. +* sg/stress-test (2019-01-07) 8 commits + (merged to 'next' on 2019-01-08 at 2a65cea5f9) + + test-lib: add the '--stress' option to run a test repeatedly under load + + test-lib-functions: introduce the 'test_set_port' helper function + + test-lib: set $TRASH_DIRECTORY earlier + + test-lib: consolidate naming of test-results paths + + test-lib: parse command line options earlier + + test-lib: parse options in a for loop to keep $@ intact + + test-lib: extract Bash version check for '-x' tracing + + test-lib: translate SIGTERM and SIGHUP to an exit + (this branch uses sg/test-bash-version-fix.) -* it/log-format-source (2019-01-11) 1 commit - - log: add %S option (like --source) to log --format + Flaky tests can now be repeatedly run under load with the + "--stress" option. - Custom userformat "log --format" learned %S atom that stands for - the tip the traversal reached the commit from, i.e. --source. - Will merge to 'next'. +* sg/test-bash-version-fix (2019-01-03) 2 commits + (merged to 'next' on 2019-01-08 at f83a0628a0) + + Merge branch 'sg/test-bash-version-fix' + + test-lib: check Bash version for '-x' without using shell arrays + (this branch is used by sg/stress-test.) + The test suite tried to see if it is run under bash, but the check + itself failed under some other implementations of shell (notably + under NetBSD). This has been corrected. -* js/filter-options-should-use-plain-int (2019-01-08) 1 commit - - filter-options: expand scaled numbers - Update the protocol message specification to allow only the limited - use of scaled quantities. This is ensure potential compatibility - issues will not go out of hand. +* so/cherry-pick-always-allow-m1 (2019-01-07) 4 commits + (merged to 'next' on 2019-01-08 at 2b790fec25) + + t3506: validate '-m 1 -ff' is now accepted for non-merge commits + + t3502: validate '-m 1' argument is now accepted for non-merge commits + + cherry-pick: do not error on non-merge commits when '-m 1' is specified + + t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks - Will merge to 'next'. + "git cherry-pick -m1" was forbidden when picking a non-merge + commit, even though there _is_ parent number 1 for such a commit. + This was done to avoid mistakes back when "cherry-pick" was about + picking a single commit, but is no longer useful with "cherry-pick" + that can pick a range of commits. Now the "-m$num" option is + allowed when picking any commit, as long as $num names an existing + parent of the commit. + Technically this is a backward incompatible change; hopefully + nobody is relying on the error-checking behaviour. -* js/gc-repack-close-before-remove (2019-01-11) 1 commit - (merged to 'next' on 2019-01-14 at 9daedfee40) - + gc/repack: release packs when needed - "git gc" and "git repack" did not close the open packfiles that - they found unneeded before removing them, which didn't work on a - platform incapable of removing an open file. This has been - corrected. +* tg/t5570-drop-racy-test (2019-01-07) 2 commits + (merged to 'next' on 2019-01-08 at 9fc753bbdc) + + Revert "t/lib-git-daemon: record daemon log" + + t5570: drop racy test - Will merge to 'master'. + An inherently racy test that caused intermittent failures has been + removed. +-------------------------------------------------- +[New Topics] -* jt/upload-pack-deepen-relative-proto-v2 (2019-01-10) 2 commits - - upload-pack: teach deepen-relative in protocol v2 - - fetch-pack: do not take shallow lock unnecessarily +* ab/commit-graph-write-optim (2019-01-17) 1 commit + - commit-graph write: use pack order when finding commits + (this branch uses ab/commit-graph-write-progress.) - "git fetch --deepen=" has been corrected to work over v2 - protocol. + The codepath to write out commit-graph has been optimized by + following the usual pattern of visiting objects in in-pack order. - Will merge to 'next'. + This is taken hostage of the other topic; it may be slightly better + if the dependency were the other way around, to allow this to + graduate faster without waiting for the other. + Needs sign-off. -* nd/config-move-to (2019-01-14) 7 commits - - config.h: fix hdr-check warnings - - config: add --move-to - - config: factor out set_config_source_file() - - config: use OPT_FILENAME() - - config.c: add repo_config_set_worktree_gently() - - worktree.c: add get_worktree_config() - - config.c: avoid git_path() in do_git_config_sequence() - Needs review. +* ab/commit-graph-write-progress (2019-01-17) 9 commits + - commit-graph write: emit a percentage for all progress + - commit-graph write: add itermediate progress + - commit-graph write: remove empty line for readability + - commit-graph write: add more descriptive progress output + - commit-graph write: show progress for object search + - commit-graph write: more descriptive "writing out" output + - commit-graph write: add "Writing out" progress output + - commit-graph: don't call write_graph_chunk_large_edges() unnecessarily + - commit-graph: rename 'num_extra_edges' variable to 'num_large_edges' + (this branch is used by ab/commit-graph-write-optim.) + The codepath to show progress meter while writing out commit-graph + file has been improved. -* sg/travis-specific-cc (2019-01-10) 4 commits - - travis-ci: build with the right compiler - - travis-ci: switch to Xcode 10.1 macOS image - - travis-ci: don't be '--quiet' when running the tests - - .gitignore: ignore external debug symbols from GCC on macOS + Proposed updates for the bottom two have been raised. + cf. <20190118170549.30403-1-szeder.dev@gmail.com> - The travis CI scripts have been corrected to build Git with the - compiler(s) of our choice. - Will likely to break linux32 build due to outdated code in - compat/obstack. +* cc/test-ref-store-typofix (2019-01-17) 1 commit + - helper/test-ref-store: fix "new-sha1" vs "old-sha1" typo + An obvious typo in an assersion error message has been fixed. -* sg/obstack-cast-function-type-fix (2019-01-14) 1 commit - - compat/obstack: fix -Wcast-function-type warnings + Will merge to 'next'. - The compat/obstack code had casts that -Wcast-function-type - compilation option found questionable. + +* jk/add-ignore-errors-bit-assignment-fix (2019-01-17) 1 commit + - add: use separate ADD_CACHE_RENORMALIZE flag + + "git add --ignore-errors" did not work as advertised and instead + worked as an unintended synonym for "git add --renormalize", which + has been fixed. Will merge to 'next'. -* cc/fetch-error-message-fix (2019-01-14) 1 commit - (merged to 'next' on 2019-01-14 at 81078f86c0) - + fetch: fix extensions.partialclone name in error message +* js/mingw-unc-path-w-backslashes (2019-01-18) 2 commits + - mingw: special-case arguments to `sh` + - mingw (t5580): document bug when cloning from backslashed UNC paths - Error message fix. + In Git for Windows, "git clone \\server\share\path" etc. that uses + UNC paths from command line had bad interaction with its shell + emulation. - Will merge to 'master'. + Will merge to 'next'. -* cc/parial-clone-doc-typofix (2019-01-14) 1 commit - (merged to 'next' on 2019-01-14 at 0395de767e) - + partial-clone: add missing 'is' in doc +* js/t6042-timing-fix (2019-01-17) 1 commit + - t6042: work around speed optimization on Windows - Doc fix. + Test update. - Will merge to 'master'. + Will merge to 'next'. -* jk/remote-insteadof-cleanup (2019-01-11) 1 commit - - remote: check config validity before creating rewrite struct +* jt/namespaced-ls-refs-fix (2019-01-18) 1 commit + - ls-refs: filter refs using namespace-stripped name - Code clean-up. + Fix namespace support in protocol v2. Will merge to 'next'. -* jk/save-getenv-result (2019-01-11) 6 commits - - builtin_diff(): read $GIT_DIFF_OPTS closer to use - - merge-recursive: copy $GITHEAD strings - - init: make a copy of $GIT_DIR string - - config: make a copy of $GIT_CONFIG string - - commit: copy saved getenv() result - - get_super_prefix(): copy getenv() result +* bp/checkout-new-branch-optim (2019-01-18) 2 commits + - checkout: fix regression in checkout -b on intitial checkout + - checkout: add test to demonstrate regression with checkout -b on initial commit - There were many places the code relied on the string returned from - getenv() to be non-volatile, which is not true, that have been - corrected. + "git checkout -b [HEAD]" to create a new branch from the + current commit and check it out ought to be a no-op in the index + and the working tree in normal cases, but there are corner cases + that does require updates to the index and the working tree. + Running it immediately after "git clone --no-checkout" is one of + these cases that an earlier optimization kicked in incorrectly, + which has been fixed. - Will merge to 'next'. + Seems to break an existing test... -* jt/fetch-v2-sideband (2019-01-15) 5 commits - - tests: define GIT_TEST_SIDEBAND_ALL - - {fetch,upload}-pack: sideband v2 fetch response - - sideband: reverse its dependency on pkt-line - - pkt-line: introduce struct packet_writer - - Merge branch 'ms/packet-err-check' into jt/fetch-v2-sideband - (this branch uses ms/packet-err-check.) +* br/blame-ignore (2019-01-18) 3 commits + - blame: add a config option to mark ignored lines + - blame: add the ability to ignore commits and their changes + - Move init_skiplist() outside of fsck - "git fetch" and "git upload-pack" learned to send all exchange over - the sideband channel while talking the v2 protocol. + "git blame" learned to "ignore" commits in the history, whose + effects (as well as their presence) get ignored. + + +* js/abspath-part-inside-repo (2019-01-18) 1 commit + - abspath_part_inside_repo: respect core.ignoreCase + + On a case-insensntive filesystem, we failed to compare the part of + the path that is above the worktree directory in an absolute + pathname, which has been corrected. Will merge to 'next'. -* kg/external-diff-save-env (2019-01-11) 1 commit - (merged to 'next' on 2019-01-14 at 8281bbd48b) - + diff: ensure correct lifetime of external_diff_cmd +* nd/diff-parseopt (2019-01-18) 77 commits + - SQUASH??? + - am: avoid diff_opt_parse() + - diff --no-index: use parse_options() instead of diff_opt_parse() + - range-diff: use parse_options() instead of diff_opt_parse() + - diff.c: allow --no-color-moved-ws + - diff.c: convert --color-moved-ws + - diff.c: convert --color-moved + - diff.c: convert --inter-hunk-context + - diff.c: convert --no-prefix + - diff.c: convert --line-prefix + - diff.c: convert --[src|dst]-prefix + - diff.c: convert --[no-]abbrev + - diff.c: convert --diff-filter + - diff.c: convert --find-object + - diff.c: convert -O + - diff.c: convert --pickaxe-all|--pickaxe-regex + - diff.c: convert -S|-G + - diff.c: convert -l + - diff.c: convert -z + - diff.c: convert --ita-[in]visible-in-index + - diff.c: convert --ws-error-highlight + - diff.c: convert --submodule + - diff.c: convert --ignore-submodules + - diff.c: convert --textconv + - diff.c: convert --ext-diff + - diff.c: convert --quiet + - diff.c: convert --exit-code + - diff.c: convert --color-words + - diff.c: convert --word-diff-regex + - diff.c: convert --word-diff + - diff.c: convert --[no-]color + - diff.c: convert --[no-]follow + - diff.c: convert -R + - diff.c: convert -a|--text + - diff.c: convert --full-index + - diff.c: convert --binary + - diff.c: convert --anchored + - diff.c: convert --diff-algorithm + - diff.c: convert --histogram + - diff.c: convert --patience + - diff.c: convert --[no-]indent-heuristic + - diff.c: convert --ignore-some-changes + - diff.c: convert --[no-]minimal + - diff.c: convert --relative + - diff.c: convert --no-renames|--[no--rename-empty + - diff.c: convert --find-copies-harder + - diff.c: convert -C|--find-copies + - diff.c: convert -D|--irreversible-delete + - diff.c: convert -M|--find-renames + - diff.c: convert -B|--break-rewrites + - diff.c: convert --output-* + - diff.c: convert --[no-]compact-summary + - diff.c: convert --stat* + - diff.c: convert -s|--no-patch + - diff.c: convert --name-status + - diff.c: convert --name-only + - diff.c: convert --patch-with-stat + - diff.c: convert --summary + - diff.c: convert --check + - diff.c: convert --dirstat and friends + - diff.c: convert --numstat and --shortstat + - diff.c: convert --patch-with-raw + - diff.c: convert --raw + - diff.c: convert -W|--[no-]function-context + - diff.c: convert -U|--unified + - diff.c: convert -u|-p|--patch + - diff.c: prepare to use parse_options() for parsing + - diff.h: avoid bit fields in struct diff_flags + - diff.h: keep forward struct declarations sorted + - parse-options: allow ll_callback with OPTION_CALLBACK + - parse-options: avoid magic return codes + - parse-options: stop abusing 'callback' for lowlevel callbacks + - parse-options: add OPT_BITOP() + - parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN + - parse-options: allow keep-unknown + stop-at-non-opt combination + - parse-options: add one-shot mode + - parse-options.h: remove extern on function prototypes + + The diff machinery, one of the oldest parts of the system, which + long predates the parse-options API, uses fairly long and complex + handcrafted option parser. This has been rewritten to use the + parse-options API. - The code to drive GIT_EXTERNAL_DIFF command relied on the string - returned from getenv() to be non-volatile, which is not true, that - has been corrected. +-------------------------------------------------- +[Cooking] - Will merge to 'master'. +* sc/pack-redundant (2019-01-14) 5 commits + - pack-redundant: consistent sort method + - pack-redundant: rename pack_list.all_objects + - pack-redundant: remove unused functions + - pack-redundant: new algorithm to find min packs + - t5323: test cases for git-pack-redundant + Update the implementation of pack-redundant for performance in a + repository with many packfiles. -* ld/git-p4-shelve-update-fix (2019-01-14) 2 commits - - git-p4: handle update of moved files when updating a shelve - - git-p4: add failing test for shelved CL update involving move + Comments? - "git p4" failed to update a shelved change when there were moved - files, which has been corrected. - Will merge to 'next'. +* pw/diff-color-moved-ws-fix (2019-01-10) 9 commits + (merged to 'next' on 2019-01-18 at e19713c82f) + + diff --color-moved-ws: handle blank lines + + diff --color-moved-ws: modify allow-indentation-change + + diff --color-moved-ws: optimize allow-indentation-change + + diff --color-moved=zebra: be stricter with color alternation + + diff --color-moved-ws: fix false positives + + diff --color-moved-ws: demonstrate false positives + + diff: allow --no-color-moved-ws + + Use "whitespace" consistently + + diff: document --no-color-moved + "git diff --color-moved-ws" updates. -* ma/clear-repository-format (2019-01-14) 3 commits - - setup: add `clear_repository_format()` - - setup: do not use invalid `repository_format` - - setup: free old value before setting `work_tree` + Will merge to 'master'. - The setup code has been cleaned up to avoid leaks around the - repository_format structure. - cf. <20190115193112.GE4886@sigill.intra.peff.net> +* it/log-format-source (2019-01-11) 1 commit + (merged to 'next' on 2019-01-18 at d660044e93) + + log: add %S option (like --source) to log --format + Custom userformat "log --format" learned %S atom that stands for + the tip the traversal reached the commit from, i.e. --source. -* nd/the-index-final (2019-01-14) 11 commits - - cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch - - read-cache.c: remove the_* from index_has_changes() - - merge-recursive.c: remove implicit dependency on the_repository - - merge-recursive.c: remove implicit dependency on the_index - - sha1-name.c: remove implicit dependency on the_index - - read-cache.c: replace update_index_if_able with repo_& - - read-cache.c: kill read_index() - - checkout: avoid the_index when possible - - repository.c: replace hold_locked_index() with repo_hold_locked_index() - - notes-utils.c: remove the_repository references - - grep: use grep_opt->repo instead of explict repo argument + Will merge to 'master'. - The assumption to work on the single "in-core index" instance has - been reduced from the library-ish part of the codebase. - This obviously has fallouts with a few topics in flight, but - otherwise it seemed to be in good enough shape. +* js/filter-options-should-use-plain-int (2019-01-15) 1 commit + (merged to 'next' on 2019-01-18 at 6714547e6d) + + filter-options: expand scaled numbers + (this branch uses md/list-objects-filter-by-depth and sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.) + Update the protocol message specification to allow only the limited + use of scaled quantities. This is ensure potential compatibility + issues will not go out of hand. -* bc/tree-walk-oid (2019-01-15) 5 commits - - cache: make oidcpy always copy GIT_MAX_RAWSZ bytes - - tree-walk: store object_id in a separate member - - match-trees: use hashcpy to splice trees - - match-trees: compute buffer offset correctly when splicing - - tree-walk: copy object ID before use + Will merge to 'master'. - The code to walk tree objects has been taught that we may be - working with object names that are not computed with SHA-1. - Will merge to 'next'. +* jt/upload-pack-deepen-relative-proto-v2 (2019-01-10) 2 commits + (merged to 'next' on 2019-01-18 at 1483ad21db) + + upload-pack: teach deepen-relative in protocol v2 + + fetch-pack: do not take shallow lock unnecessarily + "git fetch --deepen=" has been corrected to work over v2 + protocol. -* js/add-e-clear-patch-before-stating (2019-01-15) 1 commit - - add --edit: truncate the patch file + Will merge to 'master'. - "git add -e" got confused when the change it wants to let the user - edit is smaller than the previous change that was left over in a - temporary file. - Will merge to 'next'. +* nd/config-move-to (2019-01-14) 7 commits + - config.h: fix hdr-check warnings + - config: add --move-to + - config: factor out set_config_source_file() + - config: use OPT_FILENAME() + - config.c: add repo_config_set_worktree_gently() + - worktree.c: add get_worktree_config() + - config.c: avoid git_path() in do_git_config_sequence() + Needs review. -* js/commit-graph-read-overflow-fix (2019-01-15) 3 commits - - Makefile: correct example fuzz build - - commit-graph: fix buffer read-overflow - - commit-graph, fuzz: add fuzzer for commit-graph - The code to read the commit-graph file was not prepared to see a - corrupt size field in the file, and ended up reading beyond the end - of the buffer. +* sg/travis-specific-cc (2019-01-17) 4 commits + - travis-ci: build with the right compiler + - travis-ci: switch to Xcode 10.1 macOS image + - travis-ci: don't be '--quiet' when running the tests + - .gitignore: ignore external debug symbols from GCC on macOS + + The travis CI scripts have been corrected to build Git with the + compiler(s) of our choice. Will merge to 'next'. --------------------------------------------------- -[Cooking] -* jt/fetch-pack-v2 (2019-01-10) 1 commit - - fetch-pack: support protocol version 2 +* sg/obstack-cast-function-type-fix (2019-01-17) 1 commit + - compat/obstack: fix -Wcast-function-type warnings - "git fetch-pack" now can talk the version 2 protocol. + The compat/obstack code had casts that -Wcast-function-type + compilation option found questionable. Will merge to 'next'. -* jn/stripspace-wo-repository (2018-12-26) 1 commit - (merged to 'next' on 2019-01-08 at 81815821c9) - + stripspace: allow -s/-c outside git repository +* cc/fetch-error-message-fix (2019-01-14) 1 commit + (merged to 'next' on 2019-01-14 at 81078f86c0) + + fetch: fix extensions.partialclone name in error message - "git stripspace" should be usable outside a git repository, but - under the "-s" or "-c" mode, it didn't. + Error message fix. Will merge to 'master'. -* ma/asciidoctor (2018-12-26) 3 commits - (merged to 'next' on 2019-01-08 at 3cfd4ad6cb) - + git-status.txt: render tables correctly under Asciidoctor - + Documentation: do not nest open blocks - + git-column.txt: fix section header +* cc/parial-clone-doc-typofix (2019-01-14) 1 commit + (merged to 'next' on 2019-01-14 at 0395de767e) + + partial-clone: add missing 'is' in doc - Some of the documentation pages formatted incorrectly with - Asciidoctor, which have been fixed. + Doc fix. Will merge to 'master'. -* nd/worktree-remove-with-uninitialized-submodules (2019-01-07) 1 commit - (merged to 'next' on 2019-01-08 at e19cfe8741) - + worktree: allow to (re)move worktrees with uninitialized submodules +* jk/remote-insteadof-cleanup (2019-01-11) 1 commit + (merged to 'next' on 2019-01-18 at 112c93eef3) + + remote: check config validity before creating rewrite struct - "git worktree remove" and "git worktree move" refused to work when - there is a submodule involved. This has been loosened to ignore - uninitialized submodules. + Code clean-up. Will merge to 'master'. -* sb/submodule-unset-core-worktree-when-worktree-is-lost (2018-12-26) 4 commits - (merged to 'next' on 2019-01-08 at 38f3175a2b) - + submodule deinit: unset core.worktree - + submodule--helper: fix BUG message in ensure_core_worktree - + submodule: unset core.worktree if no working tree is present - + submodule update: add regression test with old style setups +* jk/save-getenv-result (2019-01-11) 6 commits + (merged to 'next' on 2019-01-18 at 429c77402a) + + builtin_diff(): read $GIT_DIFF_OPTS closer to use + + merge-recursive: copy $GITHEAD strings + + init: make a copy of $GIT_DIR string + + config: make a copy of $GIT_CONFIG string + + commit: copy saved getenv() result + + get_super_prefix(): copy getenv() result - The core.worktree setting in a submodule repository should not be - pointing at a directory when the submodule loses its working tree - (e.g. getting deinit'ed), but the code did not properly maintain - this invariant. + There were many places the code relied on the string returned from + getenv() to be non-volatile, which is not true, that have been + corrected. Will merge to 'master'. -* so/cherry-pick-always-allow-m1 (2019-01-07) 4 commits - (merged to 'next' on 2019-01-08 at 2b790fec25) - + t3506: validate '-m 1 -ff' is now accepted for non-merge commits - + t3502: validate '-m 1' argument is now accepted for non-merge commits - + cherry-pick: do not error on non-merge commits when '-m 1' is specified - + t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks - - "git cherry-pick -m1" was forbidden when picking a non-merge - commit, even though there _is_ parent number 1 for such a commit. - This was done to avoid mistakes back when "cherry-pick" was about - picking a single commit, but is no longer useful with "cherry-pick" - that can pick a range of commits. Now the "-m$num" option is - allowed when picking any commit, as long as $num names an existing - parent of the commit. +* jt/fetch-v2-sideband (2019-01-17) 5 commits + - tests: define GIT_TEST_SIDEBAND_ALL + - {fetch,upload}-pack: sideband v2 fetch response + - sideband: reverse its dependency on pkt-line + - pkt-line: introduce struct packet_writer + - Merge branch 'ms/packet-err-check' into jt/fetch-v2-sideband + (this branch uses ms/packet-err-check.) - Technically this is a backward incompatible change; hopefully - nobody is relying on the error-checking behaviour. + "git fetch" and "git upload-pack" learned to send all exchange over + the sideband channel while talking the v2 protocol. - Will merge to 'master'. + Will merge to 'next'. -* cy/completion-typofix (2019-01-03) 1 commit - (merged to 'next' on 2019-01-08 at 6c6f01a07d) - + completion: fix typo in git-completion.bash +* kg/external-diff-save-env (2019-01-11) 1 commit + (merged to 'next' on 2019-01-14 at 8281bbd48b) + + diff: ensure correct lifetime of external_diff_cmd - Typofix. + The code to drive GIT_EXTERNAL_DIFF command relied on the string + returned from getenv() to be non-volatile, which is not true, that + has been corrected. Will merge to 'master'. -* cy/zsh-completion-SP-in-path (2019-01-03) 2 commits - (merged to 'next' on 2019-01-08 at fee27de30b) - + completion: treat results of git ls-tree as file paths - + zsh: complete unquoted paths with spaces correctly +* ld/git-p4-shelve-update-fix (2019-01-18) 2 commits + - git-p4: handle update of moved/copied files when updating a shelve + - git-p4: add failing test for shelved CL update involving move/copy - With zsh, "git cmd path" was completed to "git cmd path name" - when the completed path has a special character like SP in it, - without any attempt to keep "path name" a single filename. This - has been fixed to complete it to "git cmd path\ name" just like - Bash completion does. + "git p4" failed to update a shelved change when there were moved + files, which has been corrected. - Will merge to 'master'. + Will merge to 'next'. -* ds/commit-graph-assert-missing-parents (2019-01-02) 1 commit - (merged to 'next' on 2019-01-08 at d141f063e0) - + commit-graph: writing missing parents is a BUG +* ma/clear-repository-format (2019-01-14) 3 commits + - setup: add `clear_repository_format()` + - setup: do not use invalid `repository_format` + - setup: free old value before setting `work_tree` - Tightening error checking in commit-graph writer. + The setup code has been cleaned up to avoid leaks around the + repository_format structure. - Will merge to 'master'. + cf. <20190115193112.GE4886@sigill.intra.peff.net> -* ed/simplify-setup-git-dir (2019-01-03) 1 commit - (merged to 'next' on 2019-01-08 at 8722c7c2ef) - + Simplify handling of setup_git_directory_gently() failure cases. +* nd/the-index-final (2019-01-14) 11 commits + - cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch + - read-cache.c: remove the_* from index_has_changes() + - merge-recursive.c: remove implicit dependency on the_repository + - merge-recursive.c: remove implicit dependency on the_index + - sha1-name.c: remove implicit dependency on the_index + - read-cache.c: replace update_index_if_able with repo_& + - read-cache.c: kill read_index() + - checkout: avoid the_index when possible + - repository.c: replace hold_locked_index() with repo_hold_locked_index() + - notes-utils.c: remove the_repository references + - grep: use grep_opt->repo instead of explict repo argument - Code simplification. + The assumption to work on the single "in-core index" instance has + been reduced from the library-ish part of the codebase. - Will merge to 'master'. + This obviously has fallouts with a few topics in flight, but + otherwise it seemed to be in good enough shape. -* es/doc-worktree-guessremote-config (2018-12-28) 1 commit - (merged to 'next' on 2019-01-08 at f1dc5e39a6) - + doc/config: do a better job of introducing 'worktree.guessRemote' +* bc/tree-walk-oid (2019-01-15) 5 commits + (merged to 'next' on 2019-01-18 at 60c38b9e4a) + + cache: make oidcpy always copy GIT_MAX_RAWSZ bytes + + tree-walk: store object_id in a separate member + + match-trees: use hashcpy to splice trees + + match-trees: compute buffer offset correctly when splicing + + tree-walk: copy object ID before use - Doc clarification. + The code to walk tree objects has been taught that we may be + working with object names that are not computed with SHA-1. Will merge to 'master'. -* ew/ban-strncat (2019-01-02) 1 commit - (merged to 'next' on 2019-01-08 at 3bba2ae2bb) - + banned.h: mark strncat() as banned +* js/add-e-clear-patch-before-stating (2019-01-15) 1 commit + (merged to 'next' on 2019-01-18 at 9ea7fc4b49) + + add --edit: truncate the patch file - The "strncat()" function is now among the banned functions. + "git add -e" got confused when the change it wants to let the user + edit is smaller than the previous change that was left over in a + temporary file. Will merge to 'master'. -* jk/dev-build-format-security (2019-01-07) 1 commit - (merged to 'next' on 2019-01-08 at 3761ab7026) - + config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users +* jt/fetch-pack-v2 (2019-01-10) 1 commit + (merged to 'next' on 2019-01-18 at 75ceb55ff8) + + fetch-pack: support protocol version 2 - Earlier we added "-Wformat-security" to developer builds, assuming - that "-Wall" (which includes "-Wformat" which in turn is required - to use "-Wformat-security") is always in effect. This is not true - when config.mak.autogen is in use, unfortunately. This has been - fixed by unconditionally adding "-Wall" to developer builds. + "git fetch-pack" now can talk the version 2 protocol. Will merge to 'master'. @@ -598,7 +731,7 @@ of the repositories listed at cf. -* js/rebase-am (2019-01-03) 4 commits +* js/rebase-am (2019-01-18) 4 commits - built-in rebase: call `git am` directly - rebase: teach `reset_head()` to optionally skip the worktree - rebase: avoid double reflog entry when switching branches @@ -624,62 +757,27 @@ of the repositories listed at * os/rebase-runs-post-checkout-hook (2019-01-02) 2 commits - - rebase: run post-checkout hook on checkout - - t5403: simplify by using a single repository + (merged to 'next' on 2019-01-18 at a03d536318) + + rebase: run post-checkout hook on checkout + + t5403: simplify by using a single repository "git rebase" internally runs "checkout" to switch between branches, and the command used to call the post-checkout hook, but the reimplementation stopped doing so, which is getting fixed. - Will merge to 'next'. - - -* rb/hpe (2019-01-03) 5 commits - (merged to 'next' on 2019-01-08 at 52d6995399) - + compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop - + git-compat-util.h: add FLOSS headers for HPE NonStop - + config.mak.uname: support for modern HPE NonStop config. - + transport-helper: drop read/write errno checks - + transport-helper: use xread instead of read - - Portability updates for the HPE NonStop platform. - - Will merge to 'master'. - - -* sg/test-bash-version-fix (2019-01-03) 2 commits - (merged to 'next' on 2019-01-08 at f83a0628a0) - + Merge branch 'sg/test-bash-version-fix' - + test-lib: check Bash version for '-x' without using shell arrays - (this branch is used by sg/stress-test.) - - The test suite tried to see if it is run under bash, but the check - itself failed under some other implementations of shell (notably - under NetBSD). This has been corrected. - Will merge to 'master'. * ms/http-no-more-failonerror (2019-01-10) 5 commits - - test: test GIT_CURL_VERBOSE=1 shows an error - - remote-curl: unset CURLOPT_FAILONERROR - - remote-curl: define struct for CURLOPT_WRITEFUNCTION - - http: enable keep_error for HTTP requests - - http: support file handles for HTTP_KEEP_ERROR + (merged to 'next' on 2019-01-18 at 8938d70b6d) + + test: test GIT_CURL_VERBOSE=1 shows an error + + remote-curl: unset CURLOPT_FAILONERROR + + remote-curl: define struct for CURLOPT_WRITEFUNCTION + + http: enable keep_error for HTTP requests + + http: support file handles for HTTP_KEEP_ERROR Debugging help for http transport. - Will merge to 'next'. - - -* tg/t5570-drop-racy-test (2019-01-07) 2 commits - (merged to 'next' on 2019-01-08 at 9fc753bbdc) - + Revert "t/lib-git-daemon: record daemon log" - + t5570: drop racy test - - An inherently racy test that caused intermittent failures has been - removed. - Will merge to 'master'. @@ -698,12 +796,13 @@ of the repositories listed at * ja/doc-build-l10n (2019-01-07) 1 commit - - Documentation/Makefile add optional targets for l10n + (merged to 'next' on 2019-01-18 at 5dbe5ad3d7) + + Documentation/Makefile add optional targets for l10n Prepare Documentation/Makefile so that manpage localization can reuse it by overriding and tweaking the list of build products. - Will merge to 'next'. + Will merge to 'master'. * jk/loose-object-cache-oid (2019-01-08) 11 commits @@ -718,7 +817,6 @@ of the repositories listed at - http: use struct object_id instead of bare sha1 - update comment references to sha1_object_info() - sha1-file: fix outdated sha1 comment references - (this branch uses rs/loose-object-cache-perffix.) Code clean-up. @@ -728,50 +826,11 @@ of the repositories listed at which is probably more clear. -* mm/multimail-1.5 (2019-01-07) 1 commit - (merged to 'next' on 2019-01-08 at 8c872af48e) - + git-multimail: update to release 1.5.0 - - Update "git multimail" from the upstream. - - Will merge to 'master'. - - -* po/git-p4-wo-login (2019-01-07) 1 commit - (merged to 'next' on 2019-01-08 at a7cc58d6b9) - + git-p4: fix problem when p4 login is not necessary - - "git p4" update. - - Will merge to 'master'. - - -* rs/loose-object-cache-perffix (2019-01-08) 4 commits - (merged to 'next' on 2019-01-08 at 36e355e099) - + object-store: retire odb_load_loose_cache() - + object-store: use one oid_array per subdirectory for loose cache - + object-store: factor out odb_clear_loose_cache() - + object-store: factor out odb_loose_cache() - (this branch is used by jk/loose-object-cache-oid.) - - The loose object cache used to optimize existence look-up has been - updated. - - Will merge to 'master'. - - -* rs/sha1-file-close-mapped-file-on-error (2019-01-07) 1 commit - (merged to 'next' on 2019-01-08 at 5841cbc153) - + sha1-file: close fd of empty file in map_sha1_file_1() - - Code clean-up. - - Will merge to 'master'. - - -* lt/date-human (2019-01-02) 3 commits - - t0006-date.sh: add `human` date format tests. +* lt/date-human (2019-01-18) 5 commits + - Add `human` date format tests. + - Add `human` format to test-tool - Add 'human' date format documentation + - Remove the proposed use of auto as secondary way to specify human - Add 'human' date format A new date format "--date=human" that morphs its output depending @@ -804,12 +863,10 @@ of the repositories listed at Comments? -* ds/push-sparse-tree-walk (2019-01-14) 7 commits - - revision.c: fix sparse warnings (sparse algorithm) +* ds/push-sparse-tree-walk (2019-01-17) 5 commits - pack-objects: create GIT_TEST_PACK_SPARSE - pack-objects: create pack.useSparse setting - revision: implement sparse algorithm - - pack-objects: add --sparse option - list-objects: consume sparse tree walk - revision: add mark_tree_uninteresting_sparse @@ -817,27 +874,27 @@ of the repositories listed at objects to send, that trades the resulting packfile off to save traversal cost to favor small pushes. - May need a further update, including squashing the tip commit to a - releavant place. + Will merge to 'next'. * js/rebase-i-redo-exec (2018-12-11) 3 commits - - rebase: introduce a shortcut for --reschedule-failed-exec - - rebase: add a config option to default to --reschedule-failed-exec - - rebase: introduce --reschedule-failed-exec + (merged to 'next' on 2019-01-18 at 71be3fedb7) + + rebase: introduce a shortcut for --reschedule-failed-exec + + rebase: add a config option to default to --reschedule-failed-exec + + rebase: introduce --reschedule-failed-exec "git rebase -i" learned to re-execute a command given with 'exec' to run after it failed the last time. - Will merge to 'next'. + Will merge to 'master'. -* md/list-objects-filter-by-depth (2019-01-10) 4 commits - - tree:: skip some trees even when collecting omits - - list-objects-filter: teach tree:# how to handle >0 - - Merge branch 'nd/the-index' into md/list-objects-filter-by-depth - - Merge branch 'sb/more-repo-in-api' into md/list-objects-filter-by-depth - (this branch uses sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.) +* md/list-objects-filter-by-depth (2019-01-15) 4 commits + + tree:: skip some trees even when collecting omits + + list-objects-filter: teach tree:# how to handle >0 + + Merge branch 'nd/the-index' into md/list-objects-filter-by-depth + + Merge branch 'sb/more-repo-in-api' into md/list-objects-filter-by-depth + (this branch is used by js/filter-options-should-use-plain-int; uses sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.) The objects-filter machinery learned "tree:" to filter objects up to a given depth; earlier it only supported depth=0, @@ -846,81 +903,37 @@ of the repositories listed at Will merge to 'next'. -* nd/style-opening-brace (2018-12-10) 1 commit - (merged to 'next' on 2019-01-08 at 80de026e14) - + style: the opening '{' of a function is in a separate line - - Code clean-up. - - Will merge to 'master'. - - -* sg/stress-test (2019-01-07) 8 commits - (merged to 'next' on 2019-01-08 at 2a65cea5f9) - + test-lib: add the '--stress' option to run a test repeatedly under load - + test-lib-functions: introduce the 'test_set_port' helper function - + test-lib: set $TRASH_DIRECTORY earlier - + test-lib: consolidate naming of test-results paths - + test-lib: parse command line options earlier - + test-lib: parse options in a for loop to keep $@ intact - + test-lib: extract Bash version check for '-x' tracing - + test-lib: translate SIGTERM and SIGHUP to an exit - (this branch uses sg/test-bash-version-fix.) - - Flaky tests can now be repeatedly run under load with the - "--stress" option. - - Will merge to 'master'. - - * tg/checkout-no-overlay (2019-01-08) 8 commits - - checkout: introduce checkout.overlayMode config - - checkout: introduce --{,no-}overlay option - - checkout: factor out mark_cache_entry_for_checkout function - - checkout: clarify comment - - read-cache: add invalidate parameter to remove_marked_cache_entries - - entry: support CE_WT_REMOVE flag in checkout_entry - - entry: factor out unlink_entry function - - move worktree tests to t24* + (merged to 'next' on 2019-01-18 at 1e2a79ba5c) + + checkout: introduce checkout.overlayMode config + + checkout: introduce --{,no-}overlay option + + checkout: factor out mark_cache_entry_for_checkout function + + checkout: clarify comment + + read-cache: add invalidate parameter to remove_marked_cache_entries + + entry: support CE_WT_REMOVE flag in checkout_entry + + entry: factor out unlink_entry function + + move worktree tests to t24* "git checkout --no-overlay" can be used to trigger a new mode of checking out paths out of the tree-ish, that allows paths that match the pathspec that are in the current index and working tree and are not in the tree-ish. - Will merge to 'next'. + Will merge to 'master'. * jk/proto-v2-hidden-refs-fix (2019-01-10) 1 commit - - upload-pack: support hidden refs with protocol v2 + (merged to 'next' on 2019-01-18 at 875dbbc71f) + + upload-pack: support hidden refs with protocol v2 The v2 upload-pack protocol implementation failed to honor hidden-ref configuration, which has been corrected. - Will merge to 'next'. - An earlier attempt reverted out of 'next'. - - -* la/quiltimport-keep-non-patch (2019-01-07) 1 commit - (merged to 'next' on 2019-01-08 at 37cb490792) - + git-quiltimport: add --keep-non-patch option - - "git quiltimport" learned "--keep-non-patch" option. - - Will merge to 'master'. - - -* sb/submodule-fetchjobs-default-to-one (2018-12-14) 1 commit - (merged to 'next' on 2019-01-08 at 97a522ef5e) - + submodule update: run at most one fetch job unless otherwise set - - "git submodule update" ought to use a single job unless asked, but - by mistake used multiple jobs, which has been fixed. - Will merge to 'master'. + An earlier attempt reverted out of 'next'. -* js/commit-graph-chunk-table-fix (2018-12-14) 3 commits +* js/commit-graph-chunk-table-fix (2019-01-15) 3 commits - Makefile: correct example fuzz build - commit-graph: fix buffer read-overflow - commit-graph, fuzz: add fuzzer for commit-graph @@ -928,15 +941,18 @@ of the repositories listed at The codepath to read from the commit-graph file attempted to read past the end of it when the file's table-of-contents was corrupt. + Will merge to 'next'. + * jt/get-reference-with-commit-graph (2018-12-28) 1 commit - - revision: use commit graph in get_reference() - (this branch uses sb/more-repo-in-api; is tangled with md/list-objects-filter-by-depth.) + (merged to 'next' on 2019-01-18 at bfc4eb9411) + + revision: use commit graph in get_reference() + (this branch uses sb/more-repo-in-api; is tangled with js/filter-options-should-use-plain-int and md/list-objects-filter-by-depth.) Micro-optimize the code that prepares commit objects to be walked by "git rev-list" when the commit-graph is available. - Will merge to 'next'. + Will merge to 'master'. * dl/merge-cleanup-scissors-fix (2018-11-21) 2 commits @@ -1025,7 +1041,7 @@ of the repositories listed at Will merge to 'next'. -* nb/branch-show-other-worktrees-head (2019-01-07) 4 commits +* nb/branch-show-other-worktrees-head (2019-01-15) 3 commits - branch: add an extra verbose output displaying worktree path for checked out branch - branch: mark and color a branch that is checked out in a linked worktree differently - ref-filter: add worktreepath atom @@ -1041,49 +1057,31 @@ of the repositories listed at sign-off. -* ot/ref-filter-object-info (2019-01-10) 7 commits - (merged to 'next' on 2019-01-10 at 9e740568ce) - + ref-filter: give uintmax_t to format with %PRIuMAX - (merged to 'next' on 2019-01-08 at 0a4d4ed36a) - + ref-filter: add docs for new options - + ref-filter: add tests for deltabase - + ref-filter: add deltabase option - + ref-filter: add tests for objectsize:disk - + ref-filter: add check for negative file size - + ref-filter: add objectsize:disk option - - The "--format=" option of for-each-ref, branch and tag - learned to show a few more traits of objects that can be learned by - the object_info API. - - Will merge to 'master'. - - * sb/more-repo-in-api (2018-12-28) 23 commits - - t/helper/test-repository: celebrate independence from the_repository - - path.h: make REPO_GIT_PATH_FUNC repository agnostic - - commit: prepare free_commit_buffer and release_commit_memory for any repo - - commit-graph: convert remaining functions to handle any repo - - submodule: don't add submodule as odb for push - - submodule: use submodule repos for object lookup - - pretty: prepare format_commit_message to handle arbitrary repositories - - commit: prepare logmsg_reencode to handle arbitrary repositories - - commit: prepare repo_unuse_commit_buffer to handle any repo - - commit: prepare get_commit_buffer to handle any repo - - commit-reach: prepare in_merge_bases[_many] to handle any repo - - commit-reach: prepare get_merge_bases to handle any repo - - commit-reach.c: allow get_merge_bases_many_0 to handle any repo - - commit-reach.c: allow remove_redundant to handle any repo - - commit-reach.c: allow merge_bases_many to handle any repo - - commit-reach.c: allow paint_down_to_common to handle any repo - - commit: allow parse_commit* to handle any repo - - object: parse_object to honor its repository argument - - object-store: prepare has_{sha1, object}_file to handle any repo - - object-store: prepare read_object_file to deal with any repo - - object-store: allow read_object_file_extended to read from any repo - - packfile: allow has_packed_and_bad to handle arbitrary repositories - - sha1_file: allow read_object to read objects in arbitrary repositories - (this branch is used by jt/get-reference-with-commit-graph and md/list-objects-filter-by-depth.) + + t/helper/test-repository: celebrate independence from the_repository + + path.h: make REPO_GIT_PATH_FUNC repository agnostic + + commit: prepare free_commit_buffer and release_commit_memory for any repo + + commit-graph: convert remaining functions to handle any repo + + submodule: don't add submodule as odb for push + + submodule: use submodule repos for object lookup + + pretty: prepare format_commit_message to handle arbitrary repositories + + commit: prepare logmsg_reencode to handle arbitrary repositories + + commit: prepare repo_unuse_commit_buffer to handle any repo + + commit: prepare get_commit_buffer to handle any repo + + commit-reach: prepare in_merge_bases[_many] to handle any repo + + commit-reach: prepare get_merge_bases to handle any repo + + commit-reach.c: allow get_merge_bases_many_0 to handle any repo + + commit-reach.c: allow remove_redundant to handle any repo + + commit-reach.c: allow merge_bases_many to handle any repo + + commit-reach.c: allow paint_down_to_common to handle any repo + + commit: allow parse_commit* to handle any repo + + object: parse_object to honor its repository argument + + object-store: prepare has_{sha1, object}_file to handle any repo + + object-store: prepare read_object_file to deal with any repo + + object-store: allow read_object_file_extended to read from any repo + + packfile: allow has_packed_and_bad to handle arbitrary repositories + + sha1_file: allow read_object to read objects in arbitrary repositories + (this branch is used by js/filter-options-should-use-plain-int, jt/get-reference-with-commit-graph and md/list-objects-filter-by-depth.) The in-core repository instances are passed through more codepaths. @@ -1091,23 +1089,24 @@ of the repositories listed at * bc/sha-256 (2018-11-14) 12 commits - - hash: add an SHA-256 implementation using OpenSSL - - sha256: add an SHA-256 implementation using libgcrypt - - Add a base implementation of SHA-256 support - - commit-graph: convert to using the_hash_algo - - t/helper: add a test helper to compute hash speed - - sha1-file: add a constant for hash block size - - t: make the sha1 test-tool helper generic - - t: add basic tests for our SHA-1 implementation - - cache: make hashcmp and hasheq work with larger hashes - - hex: introduce functions to print arbitrary hashes - - sha1-file: provide functions to look up hash algorithms - - sha1-file: rename algorithm to "sha1" + (merged to 'next' on 2019-01-18 at 3f161d31bb) + + hash: add an SHA-256 implementation using OpenSSL + + sha256: add an SHA-256 implementation using libgcrypt + + Add a base implementation of SHA-256 support + + commit-graph: convert to using the_hash_algo + + t/helper: add a test helper to compute hash speed + + sha1-file: add a constant for hash block size + + t: make the sha1 test-tool helper generic + + t: add basic tests for our SHA-1 implementation + + cache: make hashcmp and hasheq work with larger hashes + + hex: introduce functions to print arbitrary hashes + + sha1-file: provide functions to look up hash algorithms + + sha1-file: rename algorithm to "sha1" Add sha-256 hash and plug it through the code to allow building Git with the "NewHash". - Will merge to 'next'. + Will merge to 'master'. * js/vsts-ci (2018-10-16) 13 commits @@ -1185,20 +1184,21 @@ of the repositories listed at * sb/submodule-recursive-fetch-gets-the-tip (2018-12-09) 9 commits - - fetch: ensure submodule objects fetched - - submodule.c: fetch in submodules git directory instead of in worktree - - submodule: migrate get_next_submodule to use repository structs - - repository: repo_submodule_init to take a submodule struct - - submodule: store OIDs in changed_submodule_names - - submodule.c: tighten scope of changed_submodule_names struct - - submodule.c: sort changed_submodule_names before searching it - - submodule.c: fix indentation - - sha1-array: provide oid_array_filter + (merged to 'next' on 2019-01-18 at 79a2809fbc) + + fetch: ensure submodule objects fetched + + submodule.c: fetch in submodules git directory instead of in worktree + + submodule: migrate get_next_submodule to use repository structs + + repository: repo_submodule_init to take a submodule struct + + submodule: store OIDs in changed_submodule_names + + submodule.c: tighten scope of changed_submodule_names struct + + submodule.c: sort changed_submodule_names before searching it + + submodule.c: fix indentation + + sha1-array: provide oid_array_filter "git fetch --recurse-submodules" may not fetch the necessary commit that is bound to the superproject, which is getting corrected. - Will merge to 'next'. + Will merge to 'master'. * js/add-i-coalesce-after-editing-hunk (2018-08-28) 1 commit @@ -1211,7 +1211,8 @@ of the repositories listed at cf. -* ps/stash-in-c (2019-01-04) 27 commits +* ps/stash-in-c (2019-01-18) 28 commits + - stash: fix segmentation fault when files were added with intent - tests: add a special setup where stash.useBuiltin is off - stash: optionally use the scripted version again - stash: add back the original, scripted `git stash` @@ -1242,7 +1243,7 @@ of the repositories listed at "git stash" rewritten in C. - Comments? + Will merge to 'next'. * pw/add-p-select (2018-07-26) 4 commits @@ -1261,32 +1262,3 @@ of the repositories listed at cf. I found the feature to be hard to explain, and may result in more end-user complaints, but let's see. - --------------------------------------------------- -[Discarded] - -* nd/backup-log (2018-12-10) 24 commits - . FIXME - . rebase: keep backup of overwritten files on --skip or --abort - . am: keep backup of overwritten files on --skip or --abort - . checkout -f: keep backup of overwritten files - . reset --hard: keep backup of overwritten files - . unpack-trees.c: keep backup of ignored files being overwritten - . refs: keep backup of deleted reflog - . config --edit: support backup log - . sha1-file.c: let index_path() accept NULL istate - . backup-log: keep all blob references around - . gc: prune backup logs - . backup-log: add prune command - . backup-log: add log command - . backup-log: add diff command - . backup-log: add cat command - . backup-log.c: add API for walking backup log - . add--interactive: support backup log - . apply: support backup log with --keep-backup - . commit: support backup log - . update-index: support backup log with --keep-backup - . add: support backup log - . read-cache.c: new flag for add_index_entry() to write to backup log - . backup-log: add "update" subcommand - . doc: introduce new "backup log" concept