From 05a9aaeb4d32405fb2cbb72206c9bf8c73efe318 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 18 Sep 2019 15:28:34 -0700 Subject: What's cooking (2019/09 #02) diff --git a/whats-cooking.txt b/whats-cooking.txt index 85ec33f..c6f96eb 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 (Sep 2019, #01; Sat, 7) -X-master-at: 745f6812895b31c02b29bdfe4ae8e5498f776c26 -X-next-at: c6a4ce50a0d24c7b512b564eacb00d0bf92b22e4 +Subject: What's cooking in git.git (Sep 2019, #02; Wed, 18) +X-master-at: 4c86140027f4a0d2caaa3ab4bd8bfc5ce3c11c8a +X-next-at: 18eeb5a2650ef4d662f5c9bb888cac8694753ba5 -What's cooking in git.git (Sep 2019, #01; Sat, 7) +What's cooking in git.git (Sep 2019, #02; Wed, 18) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,11 +12,8 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The tip of 'next' has been rewound. A handful of topics that have -been in the stalled state need to be woken up, now the release is -over (or they can be dropped without prejudice, just to unclutter -the tree). As I said in an earlier message somewhere, I'd prefer to -see the PCRE/JIT topics sorted out soonish. Ævar? Carlo? +We have a new maintainer for git-gui now. Thanks Pratyush for +volunteering. You can find the changes described here in the integration branches of the repositories listed at @@ -24,339 +21,571 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[New Topics] +[Graduated to "master"] -* ar/mingw-run-external-with-non-ascii-path (2019-08-26) 1 commit - - mingw: fix launching of externals from Unicode paths +* bc/reread-attributes-during-rebase (2019-09-03) 2 commits + (merged to 'next' on 2019-09-07 at 9f5e5db0b0) + + am: reload .gitattributes after patching it + + path: add a function to check for path suffix - Windows update. + The "git am" based backend of "git rebase" ignored the result of + updating ".gitattributes" done in one step when replaying + subsequent steps. - Will merge to 'next'. +* bm/repository-layout-typofix (2019-08-19) 1 commit + (merged to 'next' on 2019-08-23 at 7b1fffbaea) + + repository-layout.txt: correct pluralization of 'object' -* cb/pcre1-cleanup (2019-08-26) 2 commits - - grep: refactor and simplify PCRE1 support - - grep: make sure NO_LIBPCRE1_JIT disable JIT in PCRE1 - (this branch uses ab/pcre-jit-fixes.) + Typofix. - PCRE fixes. +* cb/curl-use-xmalloc (2019-08-15) 1 commit + (merged to 'next' on 2019-09-07 at 07da24f51c) + + http: use xmalloc with cURL + (this branch uses jk/drop-release-pack-memory.) -* dl/complete-cherry-pick-revert-skip (2019-08-27) 3 commits - - status: mention --skip for revert and cherry-pick - - completion: add --skip for cherry-pick and revert - - completion: merge options for cherry-pick and revert + Tell cURL library to use the same malloc() implementation, with the + xmalloc() wrapper, as the rest of the system, for consistency. - The command line completion support (in contrib/) learned about the - "--skip" option of "git revert" and "git cherry-pick". - Will merge to 'next'. +* cb/fetch-set-upstream (2019-08-19) 1 commit + (merged to 'next' on 2019-08-23 at cf8c2ea0a0) + + pull, fetch: add --set-upstream option + "git fetch" learned "--set-upstream" option to help those who first + clone from their private fork they intend to push to, add the true + upstream via "git remote add" and then "git fetch" from it. -* ew/hashmap (2019-08-26) 11 commits - - hashmap_get_next returns "struct hashmap_entry *" - - introduce container_of macro - - hashmap_put takes "struct hashmap_entry *" - - hashmap_remove takes "const struct hashmap_entry *" - - hashmap_get takes "const struct hashmap_entry *" - - hashmap_add takes "struct hashmap_entry *" - - hashmap_get_next takes "const struct hashmap_entry *" - - hashmap_entry: detect improper initialization - - hashmap_entry_init takes "struct hashmap_entry *" - - packfile: use hashmap_entry in delta_base_cache_entry - - diff: use hashmap_entry_init on moved_entry.ent - Code clean-up of the hashmap API, both users and implementation. +* cc/multi-promisor (2019-06-25) 15 commits + (merged to 'next' on 2019-09-07 at 46faa86955) + + Move core_partial_clone_filter_default to promisor-remote.c + + Move repository_format_partial_clone to promisor-remote.c + + Remove fetch-object.{c,h} in favor of promisor-remote.{c,h} + + remote: add promisor and partial clone config to the doc + + partial-clone: add multiple remotes in the doc + + t0410: test fetching from many promisor remotes + + builtin/fetch: remove unique promisor remote limitation + + promisor-remote: parse remote.*.partialclonefilter + + Use promisor_remote_get_direct() and has_promisor_remote() + + promisor-remote: use repository_format_partial_clone + + promisor-remote: add promisor_remote_reinit() + + promisor-remote: implement promisor_remote_get_direct() + + Add initial support for many promisor remotes + + fetch-object: make functions return an error code + + t0410: remove pipes after git commands - Will merge to 'next'. + Teach the lazy clone machinery that there can be more than one + promisor remote and consult them in order when downloading missing + objects on demand. -* jk/fast-import-history-bugfix (2019-08-27) 2 commits - - fast-import: duplicate into history rather than passing ownership - - fast-import: duplicate parsed encoding string +* ds/feature-macros (2019-08-13) 6 commits + (merged to 'next' on 2019-08-23 at 115f0c8df9) + + repo-settings: create feature.experimental setting + + repo-settings: create feature.manyFiles setting + + repo-settings: parse core.untrackedCache + + commit-graph: turn on commit-graph by default + + t6501: use 'git gc' in quiet mode + + repo-settings: consolidate some config settings + (this branch is used by ds/commit-graph-on-fetch.) - The memory ownership model of the "git fast-import" got - straightened out. + A mechanism to affect the default setting for a (related) group of + configuration variables is introduced. - Will merge to 'next'. +* ds/midx-expire-repack (2019-08-20) 1 commit + (merged to 'next' on 2019-08-23 at a998356b3b) + + packfile.h: drop extern from function declaration -* js/gitdir-at-unc-root (2019-08-26) 3 commits - - setup_git_directory(): handle UNC root paths correctly - - Fix .git/ discovery at the root of UNC shares - - setup_git_directory(): handle UNC paths correctly + Code cleanup. - On Windows, the root level of UNC share is now allowed to be used - just like any other directory. - Will merge to 'next'. +* en/checkout-mismerge-fix (2019-08-16) 1 commit + (merged to 'next' on 2019-08-23 at 8ecb69414a) + + checkout: remove duplicate code + Fix a mismerge that happened in 2.22 timeframe. -* js/honor-cflags-in-hdr-check (2019-08-26) 1 commit - - hdr-check: make it work on Windows - Build fix to make sure hdr-check is run with the same preprocessor - macros predefined by the $(MAKE) procedure. +* jk/drop-release-pack-memory (2019-08-13) 1 commit + (merged to 'next' on 2019-09-07 at 30f841c42d) + + packfile: drop release_pack_memory() + (this branch is used by cb/curl-use-xmalloc.) - Will merge to 'next'. + xmalloc() used to have a mechanism to ditch memory and address + space resources as the last resort upon seeing an allocation + failure from the underlying malloc(), which made the code complex + and thread-unsafe with dubious benefit, as major memory resource + users already do limit their uses with various other mechanisms. + It has been simplified away. -* mh/http-urlmatch-cleanup (2019-08-26) 1 commit - - http: don't leak urlmatch_config.vars +* jk/eoo (2019-08-06) 3 commits + (merged to 'next' on 2019-08-23 at 217e97127a) + + gitcli: document --end-of-options + + parse-options: allow --end-of-options as a synonym for "--" + + revision: allow --end-of-options to end option parsing - Leakfix. + The command line parser learned "--end-of-options" notation; the + standard convention for scripters to have hardcoded set of options + first on the command line, and force the command to treat end-user + input as non-options, has been to use "--" as the delimiter, but + that would not work for commands that use "--" as a delimiter + between revs and pathspec. - Will merge to 'next'. +* jk/repo-init-cleanup (2019-08-06) 3 commits + (merged to 'next' on 2019-08-23 at 1a5e4c4f06) + + config: stop checking whether the_repository is NULL + + common-main: delay trace2 initialization + + t1309: use short branch name in includeIf.onbranch test -* mh/notes-duplicate-entries (2019-08-26) 2 commits - - notes: avoid potential use-after-free during insertion - - notes: avoid leaking duplicate entries + Further clean-up of the initialization code. - A few implementation fixes in the notes API. - Will merge to 'next'. +* js/partial-clone-sparse-blob (2019-08-30) 2 commits + - list-objects-filter: handle unresolved sparse filter OID + - list-objects-filter: only parse sparse OID when 'have_git_dir' + Band-aid on "git clone --sparse:oid=X" that would hit BUG(). -* mh/release-commit-memory-fix (2019-08-26) 1 commit - - commit: free the right buffer in release_commit_memory - Leakfix. +* js/pre-merge-commit-hook (2019-08-07) 4 commits + (merged to 'next' on 2019-09-07 at 0c9f25399c) + + merge: --no-verify to bypass pre-merge-commit hook + + git-merge: honor pre-merge-commit hook + + merge: do no-verify like commit + + t7503: verify proper hook execution - Will merge to 'next'. + A new "pre-merge-commit" hook has been introduced. -* rs/strbuf-detach (2019-08-26) 2 commits - - grep: use return value of strbuf_detach() - - log-tree: always use return value of strbuf_detach() +* js/rebase-r-strategy (2019-09-05) 17 commits + (merged to 'next' on 2019-09-07 at 71e2451f6c) + + t3427: accelerate this test by using fast-export and fast-import + + rebase -r: do not (re-)generate root commits with `--root` *and* `--onto` + + t3418: test `rebase -r` with merge strategies + + t/lib-rebase: prepare for testing `git rebase --rebase-merges` + + rebase -r: support merge strategies other than `recursive` + + t3427: fix another incorrect assumption + + t3427: accommodate for the `rebase --merge` backend having been replaced + + t3427: fix erroneous assumption + + t3427: condense the unnecessarily repetitive test cases into three + + t3427: move the `filter-branch` invocation into the `setup` case + + t3427: simplify the `setup` test case significantly + + t3427: add a clarifying comment + + rebase: fold git-rebase--common into the -p backend + + sequencer: the `am` and `rebase--interactive` scripts are gone + + .gitignore: there is no longer a built-in `git-rebase--interactive` + + t3400: stop referring to the scripted rebase + + Drop unused git-rebase--am.sh - Straighten out the use of strbuf_detach() API function. + "git rebase --rebase-merges" learned to drive different merge + strategies and pass strategy specific options to them. - Will merge to 'next'. +* jt/avoid-ls-refs-with-http (2019-08-22) 2 commits + (merged to 'next' on 2019-09-07 at c6a4ce50a0) + + transport: teach all vtables to allow fetch first + + transport-helper: skip ls-refs if unnecessary -* rs/trace2-dst-warning (2019-08-26) 1 commit - - trace2: use warning() directly in tr2_dst_malformed_warning() + The http transport lacked some optimization the native transports + learned to avoid unnecessary ref advertisement, which has been + corrected. - Code cleanup. + +* jt/diff-lazy-fetch-submodule-fix (2019-08-20) 1 commit + (merged to 'next' on 2019-08-23 at 16997cac26) + + diff: skip GITLINK when lazy fetching missing objs + + On-demand object fetching in lazy clone incorrectly tried to fetch + commits from submodule projects, while still working in the + superproject, which has been corrected. + + +* md/list-objects-filter-combo (2019-06-28) 10 commits + (merged to 'next' on 2019-09-07 at 076a48aa57) + + list-objects-filter-options: make parser void + + list-objects-filter-options: clean up use of ALLOC_GROW + + list-objects-filter-options: allow mult. --filter + + strbuf: give URL-encoding API a char predicate fn + + list-objects-filter-options: make filter_spec a string_list + + list-objects-filter-options: move error check up + + list-objects-filter: implement composite filters + + list-objects-filter-options: always supply *errbuf + + list-objects-filter: put omits set in filter struct + + list-objects-filter: encapsulate filter components + (this branch is used by ds/include-exclude.) + + The list-objects-filter API (used to create a sparse/lazy clone) + learned to take a combined filter specification. + + +* mp/for-each-ref-missing-name-or-email (2019-08-22) 1 commit + (merged to 'next' on 2019-08-23 at d257cb2138) + + ref-filter: initialize empty name or email fields + + "for-each-ref" and friends that shows refs did not protect themselves + against ancient tags that did not record tagger names when asked to + show "%(taggername)", which have been corrected. + + +* nd/diff-parseopt (2019-08-20) 1 commit + (merged to 'next' on 2019-08-23 at d80a83b1e4) + + parseopt: move definition of enum parse_opt_result up + + Compilation fix. + + +* py/git-gui-do-quit (2019-08-07) 2 commits + (merged to 'next' on 2019-08-23 at 6544c9dbb3) + + Merge branch 'py/call-do-quit-before-exit' of github.com:gitster/git-gui into py/git-gui-do-quit + + git-gui: call do_quit before destroying the main window + + "git gui" learned to call the clean-up procedure before exiting. + + +* rs/pax-extended-header-length-fix (2019-08-19) 4 commits + (merged to 'next' on 2019-08-23 at de88e8e58a) + + archive-tar: turn length miscalculation warning into BUG + + archive-tar: use size_t in strbuf_append_ext_header() + + archive-tar: fix pax extended header length calculation + + archive-tar: report wrong pax extended header length + + "git archive" recorded incorrect length in extended pax header in + some corner cases, which has been corrected. + + +* rs/sort-oid-array-thread-safe (2019-08-20) 1 commit + (merged to 'next' on 2019-08-23 at 5ce3126af2) + + sha1-name: make sort_ambiguous_oid_array() thread-safe + + Prepare get_short_oid() codepath to be thread-safe. + + +* sb/userdiff-dts (2019-08-21) 1 commit + (merged to 'next' on 2019-08-23 at 2bce0b8f91) + + userdiff: add a builtin pattern for dts files + + Device-tree files learned their own userdiff patterns. + + +* sg/complete-configuration-variables (2019-08-13) 11 commits + (merged to 'next' on 2019-09-07 at 9921f0e536) + + completion: complete config variables and values for 'git clone --config=' + + completion: complete config variables names and values for 'git clone -c' + + completion: complete values of configuration variables after 'git -c var=' + + completion: complete configuration sections and variable names for 'git -c' + + completion: split _git_config() + + completion: simplify inner 'case' pattern in __gitcomp() + + completion: use 'sort -u' to deduplicate config variable names + + completion: deduplicate configuration sections + + completion: add tests for 'git config' completion + + completion: complete more values of more 'color.*' configuration variables + + completion: fix a typo in a comment + + Command line completion updates for "git -c var.name=val" + + +* sg/diff-indent-heuristic-non-experimental (2019-08-15) 1 commit + (merged to 'next' on 2019-08-23 at faab5e2a1e) + + diff: 'diff.indentHeuristic' is no longer experimental + + We promoted the "indent heuristics" that decides where to split + diff hunks from experimental to the default a few years ago, but + some stale documentation still marked it as experimental, which has + been corrected. + + +* sg/line-log-tree-diff-optim (2019-08-21) 2 commits + (merged to 'next' on 2019-09-07 at 8d5b7053fd) + + line-log: avoid unnecessary full tree diffs + + line-log: extract pathspec parsing from line ranges into a helper function + + Optimize unnecessary full-tree diff away from "git log -L" machinery. + + +* tg/t0021-racefix (2019-08-22) 1 commit + (merged to 'next' on 2019-08-23 at 0a3290393f) + + t0021: make sure clean filter runs + + A test fix. + +-------------------------------------------------- +[New Topics] + +* cb/skip-utf8-check-with-pcre1 (2019-09-09) 1 commit + - grep: skip UTF8 checks explicitly + + Make sure the grep machinery does not abort when seeing a payload + that is not UTF-8 even when JIT is not in use with PCRE1. Will merge to 'next'. -* sg/clean-nested-repo-with-ignored (2019-08-26) 1 commit - - t7300-clean: demonstrate deleting nested repo with an ignored file breakage +* jk/commit-graph-cleanup (2019-09-09) 2 commits + - commit-graph: turn off save_commit_buffer + - commit-graph: don't show progress percentages while expanding reachable commits - A bug documentation. + A pair of small fixups to "git commit-graph" have been applied. Will merge to 'next'. -* tb/banned-vsprintf-namefix (2019-08-26) 1 commit - - banned.h: fix vsprintf()'s ban message +* ma/asciidoctor-more-fixes (2019-09-09) 7 commits + - gitweb.conf.txt: switch pluses to backticks to help Asciidoctor + - git-merge-index.txt: wrap shell listing in "----" + - git-receive-pack.txt: wrap shell [script] listing in "----" + - git-ls-remote.txt: wrap shell listing in "----" + - Documentation: wrap config listings in "----" + - git-merge-base.txt: render indentations correctly under Asciidoctor + - Documentation: wrap blocks with "--" - Error message fix. + Doc formatting updates. Will merge to 'next'. -* tb/file-url-to-unc-path (2019-08-26) 1 commit - - mingw: support UNC in git clone file://server/share/repo +* rs/simplify-by-deco-with-deco-refs-exclude (2019-09-09) 2 commits + - log-tree: call load_ref_decorations() in get_name_decoration() + - log: test --decorate-refs-exclude with --simplify-by-decoration - Windows update. + "git log --decorate-refs-exclude=" was incorrectly + overruled when the "--simplify-by-decoration" option is used, which + has been corrected. Will merge to 'next'. -* dl/compat-cleanup (2019-09-05) 2 commits - - compat/*.[ch]: remove extern from function declarations using spatch - - mingw: apply array.cocci rule +* ss/get-time-cleanup (2019-09-18) 2 commits + - test_date.c: remove reference to GIT_TEST_DATE_NOW + - Quit passing 'now' to date code - Code cleanup. + Code simplification. Will merge to 'next'. -* dl/use-sq-from-test-lib (2019-09-06) 1 commit - - t: use common $SQ variable +* tb/commit-graph-harden (2019-09-09) 3 commits + - commit-graph.c: handle corrupt/missing trees + - commit-graph.c: handle commit parsing errors + - t/t5318: introduce failing 'git commit-graph write' tests - Code cleanup. + The code to parse and use the commit-graph file has been made more + robust against corrupted input. Will merge to 'next'. -* ds/commit-graph-on-fetch (2019-09-03) 1 commit - - fetch: add fetch.writeCommitGraph config setting - (this branch uses ds/feature-macros.) +* cs/pretty-formats-doc-typofix (2019-09-12) 1 commit + - doc: minor formatting fix - A configuration variable tells "git fetch" to write the commit - graph after finishing. + Doc fix. Will merge to 'next'. -* ds/include-exclude (2019-09-05) 5 commits - - unpack-trees: rename 'is_excluded_from_list()' - - treewide: rename 'exclude' methods to 'pattern' - - treewide: rename 'EXCL_FLAG_' to 'PATTERN_FLAG_' - - treewide: rename 'struct exclude_list' to 'struct pattern_list' - - treewide: rename 'struct exclude' to 'struct path_pattern' - (this branch uses md/list-objects-filter-combo.) +* dl/cocci-everywhere (2019-09-17) 4 commits + - Makefile: run coccicheck on more source files + - Makefile: strip leading ./ in $(FIND_SOURCE_FILES) + - Makefile: define THIRD_PARTY_SOURCES + - Makefile: strip leading ./ in $(LIB_H) + (this branch uses dl/compat-cleanup.) - The internal code originally invented for ".gitignore" processing - got reshuffled and renamed to make it less tied to "excluding" and - stress more that it is about "matching", as it has been reused for - things like sparse checkout specification that want to check if a - path is "included". + Coccinelle checks are done on more source files than before now. Will merge to 'next'. -* dt/remote-helper-doc-re-lock-option (2019-08-30) 1 commit - - clarify documentation for remote helpers +* dl/complete-rebase-and-archive (2019-09-12) 2 commits + - completion: teach archive to use __gitcomp_builtin + - completion: teach rebase to use __gitcomp_builtin - Doc update. + The command line completion for "git archive" and "git rebase" are + now made less prone to go out of sync with the binary. Will merge to 'next'. -* en/filter-branch-deprecation (2019-09-05) 3 commits - - t9902: use a non-deprecated command for testing - - Recommend git-filter-repo instead of git-filter-branch - - t6006: simplify, fix, and optimize empty message test +* gs/commit-graph-progress (2019-09-18) 1 commit + - commit-graph: add --[no-]progress to write and verify - Start discouraging the use of "git filter-branch". + Will merge to 'next'. + + +* jk/disable-commit-graph-during-upload-pack (2019-09-12) 2 commits + - upload-pack: disable commit graph more gently for shallow traversal + - commit-graph: bump DIE_ON_LOAD check to actual load-time + + The "upload-pack" (the counterpart of "git fetch") needs to disable + commit-graph when responding to a shallow clone/fetch request, but + the way this was done made Git panic, which has been corrected. Will merge to 'next'. -* en/merge-options-ff-and-friends (2019-09-01) 1 commit - - merge-options.txt: clarify meaning of various ff-related options +* jk/list-objects-optim-wo-trees (2019-09-12) 1 commit + - list-objects: don't queue root trees unless revs->tree_objects is set - Doc update. + The object traversal machinery has been optimized not to load tree + objects when we are only interested in commit history. Will merge to 'next'. -* jc/test-cleanup (2019-09-05) 2 commits - - t3005: remove unused variable - - t: use LF variable defined in the test harness +* mr/complete-more-for-log-etc (2019-09-12) 1 commit + - completion: add missing completions for log, diff, show - Code cleanup. + Completion updates. Will merge to 'next'. -* jk/misc-uninitialized-fixes (2019-09-06) 6 commits - - pack-objects: drop packlist index_pos optimization - - test-read-cache: drop namelen variable - - diff-delta: set size out-parameter to 0 for NULL delta - - bulk-checkin: zero-initialize hashfile_checkpoint - - pack-objects: use object_id in packlist_alloc() - - git-am: handle missing "author" when parsing commit +* ah/doc-submodule-ignore-submodules (2019-09-18) 1 commit + - doc: fix reference to --ignore-submodules - Various fixes to codepaths gcc 9 had trouble following dataflow. + Docfix. Will merge to 'next'. -* js/partial-clone-sparse-blob (2019-08-30) 2 commits - - list-objects-filter: handle unresolved sparse filter OID - - list-objects-filter: only parse sparse OID when 'have_git_dir' +* bc/doc-use-docbook-5 (2019-09-16) 1 commit + - Documentation: fix build with Asciidoctor 2 - Band-aid on "git clone --sparse:oid=X" that would hit BUG(). + Start using DocBook 5 (instead of DocBook 4.5) as Asciidoctor 2.0 + no longer works with the older one. Will merge to 'next'. -* js/visual-studio (2019-09-05) 1 commit - - .gitignore: stop ignoring `.manifest` files +* cc/svn-fe-py-shebang (2019-09-18) 1 commit + - contrib/svn-fe: fix shebang for svnrdump_sim.py - Adjust .gitignore to unignore a path that we started to track. + Will merge to 'next'. + + +* dl/submodule-set-branch (2019-09-16) 1 commit + - git-submodule.txt: fix AsciiDoc formatting error + + Docfix. Will merge to 'next'. -* jt/cache-tree-avoid-lazy-fetch-during-merge (2019-09-03) 1 commit - - cache-tree: do not lazy-fetch merge tree +* en/clean-nested-with-ignored (2019-09-17) 12 commits + - clean: fix theoretical path corruption + - clean: rewrap overly long line + - clean: avoid removing untracked files in a nested git repository + - clean: disambiguate the definition of -d + - git-clean.txt: do not claim we will delete files with -n/--dry-run + - dir: add commentary explaining match_pathspec_item's return value + - dir: if our pathspec might match files under a dir, recurse into it + - dir: make the DO_MATCH_SUBMODULE code reusable for a non-submodule case + - dir: also check directories for matching pathspecs + - dir: fix off-by-one error in match_pathspec_item + - dir: fix typo in comment + - t7300: add testcases showing failure to clean specified pathspecs + (this branch uses sg/clean-nested-repo-with-ignored.) - The cache-tree code has been taught to be less aggressive in - attempting to see if a tree object it computed already exists in - the repository. + "git clean" fixes. - Expecting a clearified log message. + Will merge to 'next'. -* ma/asciidoctor-refmiscinfo (2019-09-03) 2 commits - - doc-diff: replace --cut-header-footer with --cut-footer - - asciidoctor-extensions: provide `` +* hb/hg-to-git-py3 (2019-09-18) 1 commit + - hg-to-git: make it compatible with both python3 and python2 - Update support for Asciidoctor documentation toolchain. + The hg-to-git script (in contrib/) has been updated to work with + Python 3. Will merge to 'next'. -* nd/switch-and-restore (2019-08-30) 1 commit - - checkout: add simple check for 'git checkout -b' +* jk/packfile-reuse-cleanup (2019-09-13) 10 commits + - pack-objects: improve partial packfile reuse + - builtin/pack-objects: introduce obj_is_packed() + - pack-objects: introduce pack.allowPackReuse + - csum-file: introduce hashfile_total() + - pack-bitmap: introduce bitmap_walk_contains() + - pack-bitmap: don't rely on bitmap_git->reuse_objects + - ewah/bitmap: always allocate 2 more words + - ewah/bitmap: introduce bitmap_word_alloc() + - packfile: expose get_delta_base() + - builtin/pack-objects: report reused packfile objects - Resurrect a performance hack. + The way "git pack-objects" reuses objects stored in existing pack + to generate its result has been improved. + + +* jk/partial-clone-sparse-blob (2019-09-16) 4 commits + - list-objects-filter: use empty string instead of NULL for sparse "base" + - list-objects-filter: give a more specific error sparse parsing error + - list-objects-filter: delay parsing of sparse oid + - t5616: test cloning/fetching with sparse:oid= filter + + The name of the blob object that stores the filter specification + for sparse cloning/fetching was interpreted in a wrong place in the + code, causing Git to abort. Will merge to 'next'. -* rs/get-tagged-oid (2019-09-05) 2 commits - - use get_tagged_oid() - - tag: factor out get_tagged_oid() +* rs/commit-graph-use-list-count (2019-09-16) 1 commit + - commit-graph: use commit_list_count() Code cleanup. Will merge to 'next'. -* rs/help-unknown-ref-does-not-return (2019-08-30) 1 commit - - help: make help_unknown_ref() NORETURN +* js/doc-patch-text (2019-09-17) 2 commits + - diff, log doc: small grammer, format, and language fixes + - diff, log doc: say "patch text" instead of "patches" - Code cleanup. + Docfix. Will merge to 'next'. -* rs/parse-tree-indirect (2019-09-03) 1 commit - - tree: simplify parse_tree_indirect() +* ms/fetch-follow-tag-optim (2019-09-16) 1 commit + - fetch: use oidset to keep the want OIDs for faster lookup - Code cleanup. + The code used in following tags in "git fetch" has been optimized. Will merge to 'next'. -* sg/git-test-boolean (2019-09-06) 2 commits - - ci: restore running httpd tests - - t/lib-git-svn.sh: check GIT_TEST_SVN_HTTPD when running SVN HTTP tests +* rs/nth-parent-parse (2019-09-16) 2 commits + - sha1-name: check for overflow of N in "foo^N" and "foo~N" + - rev-parse: demonstrate overflow of N for "foo^N" and "foo~N" - Fix an earlier regression in the test suite, which mistakenly - stopped running HTTPD tests. + The object name parser for "Nth parent" syntax has been made more + robust against integer overflows. Will merge to 'next'. -* tg/push-all-in-mirror-forbidden (2019-09-03) 1 commit - - push: disallow --all and refspecs when remote..mirror is set +* rs/nth-switch-code-simplification (2019-09-18) 1 commit + - sha1_name: simplify strbuf handling in interpret_nth_prior_checkout() - Fix an earlier regression to "git push --all" which should have - been forbidden when the target remote repository is set to be a - mirror. + Code simplification. Will merge to 'next'. -* tg/stash-refresh-index (2019-09-05) 3 commits - - stash: make sure to write refreshed cache - - merge: use refresh_and_write_cache - - factor out refresh_and_write_cache function +* sg/progress-fix (2019-09-17) 2 commits + - Test the progress display + - Revert "progress: use term_clear_line()" - "git stash" learned to write refreshed index back to disk. + Regression fix for progress output. + + Will merge to 'next'. - Needs coordination with js/builtin-add-i topic, as they both wants - the same kind of enhancement to the same API function. + +* jc/git-gui-has-maintainer (2019-09-18) 1 commit + - SubmittingPatches: git-gui has a new maintainer -------------------------------------------------- [Stalled] @@ -419,41 +648,15 @@ of the repositories listed at * mt/threaded-grep-in-object-store (2019-08-13) 4 commits - grep: re-enable threads in some non-worktree cases - grep: disable grep_read_mutex when possible - - grep: allow locks to be enabled individually - - object-store: add lock to read_object_file_extended() - - Traditionally, we avoided threaded grep while searching in objects - (as opposed to files in the working tree) as accesses to the object - layer is not thread-safe. This limitation is getting lifted. - - Comments? - cf. - - - - -* pd/fetch-jobs (2019-08-13) 5 commits - . fetch: make --jobs control submodules and remotes - . fetch: add the --submodule-fetch-jobs option - . fetch: add the fetch.jobs config key - . fetch: add the "--fetch-jobs" option - . fetch: rename max_children to max_children_for_submodules - - "git fetch --jobs" is getting taught to also run fetch jobs in - parallel when fetching from multiple remote repositories. - - Comments? - - -* js/trace2-json-schema (2019-07-25) 3 commits - . ci: run trace2 schema validation in the CI suite - . trace2: add a schema validator for trace2 events - . trace2: add a JSON schema for trace2 events + - grep: allow locks to be enabled individually + - object-store: add lock to read_object_file_extended() - The JSON output produced by "trace2" subsystem now has JSON schema - defined on it, to allow us validate the output and catch deviation. + Traditionally, we avoided threaded grep while searching in objects + (as opposed to files in the working tree) as accesses to the object + layer is not thread-safe. This limitation is getting lifted. - The CI integration may be a bit too heavy-handed. + Expecting a reroll. + cf. * jn/unknown-index-extensions (2018-11-21) 2 commits @@ -512,383 +715,484 @@ of the repositories listed at "unsigned long" for sizes of regions in memory, which have been updated to use "size_t". +-------------------------------------------------- +[Cooking] -* dl/remote-save-to-push (2018-12-11) 1 commit - - remote: add --save-to-push option to git remote set-url +* ar/mingw-run-external-with-non-ascii-path (2019-08-26) 1 commit + (merged to 'next' on 2019-09-09 at 1973826628) + + mingw: fix launching of externals from Unicode paths - "git remote set-url" learned a new option that moves existing value - of the URL field to pushURL field of the remote before replacing - the URL field with a new value. + Windows update. - Anybody who wants to champion this topic? - I am personally not yet quite convinced if this is worth pursuing. + Will merge to 'master'. --------------------------------------------------- -[Cooking] -* js/builtin-add-i (2019-08-30) 11 commits - . built-in add -i: implement the `help` command - . built-in add -i: use color in the main loop - . built-in add -i: support `?` (prompt help) - . built-in add -i: show unique prefixes of the commands - . Add a function to determine unique prefixes for a list of strings - . built-in add -i: implement the main loop - . built-in add -i: color the header in the `status` command - . built-in add -i: refresh the index before running `status` - . built-in add -i: implement the `status` command - . diff: export diffstat interface - . Start to implement a built-in version of `git add --interactive` +* cb/pcre1-cleanup (2019-08-26) 2 commits + - grep: refactor and simplify PCRE1 support + - grep: make sure NO_LIBPCRE1_JIT disable JIT in PCRE1 + (this branch uses ab/pcre-jit-fixes.) - The beginning of rewriting "git add -i" in C. + PCRE fixes. - On hold, waiting for tg/stash-refresh-index to work well with this. +* dl/complete-cherry-pick-revert-skip (2019-08-27) 3 commits + (merged to 'next' on 2019-09-18 at 7dd173f824) + + status: mention --skip for revert and cherry-pick + + completion: add --skip for cherry-pick and revert + + completion: merge options for cherry-pick and revert -* jt/avoid-ls-refs-with-http (2019-08-22) 2 commits - (merged to 'next' on 2019-09-07 at c6a4ce50a0) - + transport: teach all vtables to allow fetch first - + transport-helper: skip ls-refs if unnecessary + The command line completion support (in contrib/) learned about the + "--skip" option of "git revert" and "git cherry-pick". - The http transport lacked some optimization the native transports - learned to avoid unnecessary ref advertisement, which has been - corrected. + Will merge to 'master'. + + +* ew/hashmap (2019-08-26) 11 commits + - hashmap_get_next returns "struct hashmap_entry *" + - introduce container_of macro + - hashmap_put takes "struct hashmap_entry *" + - hashmap_remove takes "const struct hashmap_entry *" + - hashmap_get takes "const struct hashmap_entry *" + - hashmap_add takes "struct hashmap_entry *" + - hashmap_get_next takes "const struct hashmap_entry *" + - hashmap_entry: detect improper initialization + - hashmap_entry_init takes "struct hashmap_entry *" + - packfile: use hashmap_entry in delta_base_cache_entry + - diff: use hashmap_entry_init on moved_entry.ent + + Code clean-up of the hashmap API, both users and implementation. + + Expecting a reroll. + cf. <20190908074953.kux7zz4y7iolqko4@whir> + + +* jk/fast-import-history-bugfix (2019-08-27) 2 commits + (merged to 'next' on 2019-09-09 at eeef864077) + + fast-import: duplicate into history rather than passing ownership + + fast-import: duplicate parsed encoding string + + The memory ownership model of the "git fast-import" got + straightened out. Will merge to 'master'. -* cb/curl-use-xmalloc (2019-08-15) 1 commit - (merged to 'next' on 2019-09-07 at 07da24f51c) - + http: use xmalloc with cURL - (this branch uses jk/drop-release-pack-memory.) +* js/gitdir-at-unc-root (2019-08-26) 3 commits + (merged to 'next' on 2019-09-09 at 70ccc59b4b) + + setup_git_directory(): handle UNC root paths correctly + + Fix .git/ discovery at the root of UNC shares + + setup_git_directory(): handle UNC paths correctly - Tell cURL library to use the same malloc() implementation, with the - xmalloc() wrapper, as the rest of the system, for consistency. + On Windows, the root level of UNC share is now allowed to be used + just like any other directory. Will merge to 'master'. -* sg/diff-indent-heuristic-non-experimental (2019-08-15) 1 commit - (merged to 'next' on 2019-08-23 at faab5e2a1e) - + diff: 'diff.indentHeuristic' is no longer experimental +* js/honor-cflags-in-hdr-check (2019-08-26) 1 commit + (merged to 'next' on 2019-09-09 at fcd9ee9f1b) + + hdr-check: make it work on Windows - We promoted the "indent heuristics" that decides where to split - diff hunks from experimental to the default a few years ago, but - some stale documentation still marked it as experimental, which has - been corrected. + Build fix to make sure hdr-check is run with the same preprocessor + macros predefined by the $(MAKE) procedure. Will merge to 'master'. -* en/checkout-mismerge-fix (2019-08-16) 1 commit - (merged to 'next' on 2019-08-23 at 8ecb69414a) - + checkout: remove duplicate code +* mh/http-urlmatch-cleanup (2019-08-26) 1 commit + (merged to 'next' on 2019-09-09 at 9971b626f1) + + http: don't leak urlmatch_config.vars - Fix a mismerge that happened in 2.22 timeframe. + Leakfix. Will merge to 'master'. -* en/merge-recursive-cleanup (2019-08-19) 24 commits - - merge-recursive: alphabetize include list - - merge-recursive: add sanity checks for relevant merge_options - - merge-recursive: rename MERGE_RECURSIVE_* to MERGE_VARIANT_* - - merge-recursive: split internal fields into a separate struct - - merge-recursive: avoid losing output and leaking memory holding that output - - merge-recursive: comment and reorder the merge_options fields - - merge-recursive: consolidate unnecessary fields in merge_options - - merge-recursive: move some definitions around to clean up the header - - merge-recursive: rename merge_options argument to opt in header - - merge-recursive: rename 'mrtree' to 'result_tree', for clarity - - merge-recursive: use common name for ancestors/common/base_list - - merge-recursive: fix some overly long lines - - cache-tree: share code between functions writing an index as a tree - - merge-recursive: don't force external callers to do our logging - - merge-recursive: remove useless parameter in merge_trees() - - merge-recursive: exit early if index != head - - Ensure index matches head before invoking merge machinery, round N - - merge-recursive: remove another implicit dependency on the_repository - - merge-recursive: future-proof update_file_flags() against memory leaks - - merge-recursive: introduce an enum for detect_directory_renames values - - merge-recursive: provide a better label for diff3 common ancestor - - merge-recursive: enforce opt->ancestor != NULL when calling merge_trees() - - checkout: provide better conflict hunk description with detached HEAD - - merge-recursive: be consistent with assert +* mh/notes-duplicate-entries (2019-08-26) 2 commits + (merged to 'next' on 2019-09-09 at 6c44967c97) + + notes: avoid potential use-after-free during insertion + + notes: avoid leaking duplicate entries - The merge-recursive machiery is one of the most complex parts of - the system that accumulated cruft over time. This large series - cleans up the implementation quite a bit. + A few implementation fixes in the notes API. - Will merge to 'next'. + Will merge to 'master'. -* bc/hash-independent-tests-part-5 (2019-08-26) 14 commits - - t4009: make hash size independent - - t4002: make hash independent - - t4000: make hash size independent - - t3903: abstract away SHA-1-specific constants - - t3800: make hash-size independent - - t3600: make hash size independent - - t3506: make hash independent - - t3430: avoid hard-coded object IDs - - t3404: abstract away SHA-1-specific constants - - t3306: abstract away SHA-1-specific constants - - t3305: make hash size independent - - t3301: abstract away SHA-1-specific constants - - t3206: abstract away hash size constants - - t3201: abstract away SHA-1-specific constants +* mh/release-commit-memory-fix (2019-08-26) 1 commit + (merged to 'next' on 2019-09-09 at 9fb7485032) + + commit: free the right buffer in release_commit_memory - Preparation for SHA-256 upgrade continues in the test department. + Leakfix. - Will merge to 'next'. + Will merge to 'master'. -* bm/repository-layout-typofix (2019-08-19) 1 commit - (merged to 'next' on 2019-08-23 at 7b1fffbaea) - + repository-layout.txt: correct pluralization of 'object' +* rs/strbuf-detach (2019-08-26) 2 commits + (merged to 'next' on 2019-09-09 at f6bba7d52f) + + grep: use return value of strbuf_detach() + + log-tree: always use return value of strbuf_detach() - Typofix. + Straighten out the use of strbuf_detach() API function. Will merge to 'master'. -* bw/rebase-autostash-keep-current-branch (2019-09-07) 2 commits - - builtin/rebase.c: Remove pointless message - - builtin/rebase.c: make sure the active branch isn't moved when autostashing +* rs/trace2-dst-warning (2019-08-26) 1 commit + (merged to 'next' on 2019-09-09 at 13893cdf8c) + + trace2: use warning() directly in tr2_dst_malformed_warning() - "git rebase --autostash ", when is - different from the current branch, incorrectly moved the tip of the - current branch, which has been corrected. + Code cleanup. - Will merge to 'next'. + Will merge to 'master'. -* dl/format-patch-doc-test-cleanup (2019-09-05) 13 commits - - config/format.txt: specify default value of format.coverLetter - - Doc: add more detail for git-format-patch - - t4014: stop losing return codes of git commands - - t4014: remove confusing pipe in check_threading() - - t4014: use test_line_count() where possible - - t4014: let sed open its own files - - t4014: drop redirections to /dev/null - - t4014: use indentable here-docs - - t4014: remove spaces after redirect operators - - t4014: use sq for test case names - - t4014: move closing sq onto its own line - - t4014: s/expected/expect/ - - t4014: drop unnecessary blank lines from test cases - (this branch is used by dl/format-patch-cover-letter-subject.) +* sg/clean-nested-repo-with-ignored (2019-08-26) 1 commit + (merged to 'next' on 2019-09-18 at 0da1269f07) + + t7300-clean: demonstrate deleting nested repo with an ignored file breakage + (this branch is used by en/clean-nested-with-ignored.) - The documentation and tests for "git format-patch" have been - cleaned up. + A bug documentation. - Will merge to 'next'. + Will merge to 'master'. -* ds/midx-expire-repack (2019-08-20) 1 commit - (merged to 'next' on 2019-08-23 at a998356b3b) - + packfile.h: drop extern from function declaration +* tb/banned-vsprintf-namefix (2019-08-26) 1 commit + (merged to 'next' on 2019-09-09 at e0f6d18a10) + + banned.h: fix vsprintf()'s ban message + + Error message fix. + + Will merge to 'master'. + + +* tb/file-url-to-unc-path (2019-08-26) 1 commit + (merged to 'next' on 2019-09-09 at 13d9c4000e) + + mingw: support UNC in git clone file://server/share/repo + + Windows update. + + Will merge to 'master'. + + +* dl/compat-cleanup (2019-09-05) 2 commits + (merged to 'next' on 2019-09-09 at e33c896e16) + + compat/*.[ch]: remove extern from function declarations using spatch + + mingw: apply array.cocci rule + (this branch is used by dl/cocci-everywhere.) Code cleanup. Will merge to 'master'. -* jt/diff-lazy-fetch-submodule-fix (2019-08-20) 1 commit - (merged to 'next' on 2019-08-23 at 16997cac26) - + diff: skip GITLINK when lazy fetching missing objs +* dl/use-sq-from-test-lib (2019-09-06) 1 commit + (merged to 'next' on 2019-09-09 at 9a6619ddab) + + t: use common $SQ variable - On-demand object fetching in lazy clone incorrectly tried to fetch - commits from submodule projects, while still working in the - superproject, which has been corrected. + Code cleanup. Will merge to 'master'. -* mp/for-each-ref-missing-name-or-email (2019-08-22) 1 commit - (merged to 'next' on 2019-08-23 at d257cb2138) - + ref-filter: initialize empty name or email fields +* ds/commit-graph-on-fetch (2019-09-03) 1 commit + (merged to 'next' on 2019-09-18 at 10702dd989) + + fetch: add fetch.writeCommitGraph config setting - "for-each-ref" and friends that shows refs did not protect themselves - against ancient tags that did not record tagger names when asked to - show "%(taggername)", which have been corrected. + A configuration variable tells "git fetch" to write the commit + graph after finishing. Will merge to 'master'. -* nd/diff-parseopt (2019-08-20) 1 commit - (merged to 'next' on 2019-08-23 at d80a83b1e4) - + parseopt: move definition of enum parse_opt_result up +* ds/include-exclude (2019-09-05) 5 commits + (merged to 'next' on 2019-09-18 at 1a3655a089) + + unpack-trees: rename 'is_excluded_from_list()' + + treewide: rename 'exclude' methods to 'pattern' + + treewide: rename 'EXCL_FLAG_' to 'PATTERN_FLAG_' + + treewide: rename 'struct exclude_list' to 'struct pattern_list' + + treewide: rename 'struct exclude' to 'struct path_pattern' - Compilation fix. + The internal code originally invented for ".gitignore" processing + got reshuffled and renamed to make it less tied to "excluding" and + stress more that it is about "matching", as it has been reused for + things like sparse checkout specification that want to check if a + path is "included". Will merge to 'master'. -* pw/rebase-i-show-HEAD-to-reword (2019-08-19) 3 commits - - sequencer: simplify root commit creation - - rebase -i: check for updated todo after squash and reword - - rebase -i: always update HEAD before rewording +* dt/remote-helper-doc-re-lock-option (2019-08-30) 1 commit + (merged to 'next' on 2019-09-09 at 970488992a) + + clarify documentation for remote helpers - "git rebase -i" showed a wrong HEAD while "reword" open the editor. + Doc update. - May want to split out the last one into a separate topic. - Will merge to 'next'. + Will merge to 'master'. -* rs/pax-extended-header-length-fix (2019-08-19) 4 commits - (merged to 'next' on 2019-08-23 at de88e8e58a) - + archive-tar: turn length miscalculation warning into BUG - + archive-tar: use size_t in strbuf_append_ext_header() - + archive-tar: fix pax extended header length calculation - + archive-tar: report wrong pax extended header length +* en/filter-branch-deprecation (2019-09-05) 3 commits + (merged to 'next' on 2019-09-09 at 311ed09ba8) + + t9902: use a non-deprecated command for testing + + Recommend git-filter-repo instead of git-filter-branch + + t6006: simplify, fix, and optimize empty message test - "git archive" recorded incorrect length in extended pax header in - some corner cases, which has been corrected. + Start discouraging the use of "git filter-branch". Will merge to 'master'. -* rs/sort-oid-array-thread-safe (2019-08-20) 1 commit - (merged to 'next' on 2019-08-23 at 5ce3126af2) - + sha1-name: make sort_ambiguous_oid_array() thread-safe +* en/merge-options-ff-and-friends (2019-09-01) 1 commit + (merged to 'next' on 2019-09-09 at b3bcc2cbc7) + + merge-options.txt: clarify meaning of various ff-related options - Prepare get_short_oid() codepath to be thread-safe. + Doc update. + + Will merge to 'master'. + + +* jc/test-cleanup (2019-09-05) 2 commits + (merged to 'next' on 2019-09-09 at 41ced23598) + + t3005: remove unused variable + + t: use LF variable defined in the test harness + + Code cleanup. + + Will merge to 'master'. + + +* jk/misc-uninitialized-fixes (2019-09-06) 6 commits + (merged to 'next' on 2019-09-09 at 39ccd21475) + + pack-objects: drop packlist index_pos optimization + + test-read-cache: drop namelen variable + + diff-delta: set size out-parameter to 0 for NULL delta + + bulk-checkin: zero-initialize hashfile_checkpoint + + pack-objects: use object_id in packlist_alloc() + + git-am: handle missing "author" when parsing commit + + Various fixes to codepaths gcc 9 had trouble following dataflow. + + Will merge to 'master'. + + +* js/visual-studio (2019-09-05) 1 commit + (merged to 'next' on 2019-09-09 at 5493ee9474) + + .gitignore: stop ignoring `.manifest` files + + Adjust .gitignore to unignore a path that we started to track. + + Will merge to 'master'. + + +* jt/cache-tree-avoid-lazy-fetch-during-merge (2019-09-09) 1 commit + - cache-tree: do not lazy-fetch tentative tree + + The cache-tree code has been taught to be less aggressive in + attempting to see if a tree object it computed already exists in + the repository. + + Waiting for a response to an updated log message. + + +* ma/asciidoctor-refmiscinfo (2019-09-16) 3 commits + - doc-diff: replace --cut-header-footer with --cut-footer + - asciidoctor-extensions: provide `` + - Doc/Makefile: give mansource/-version/-manual attributes + + Update support for Asciidoctor documentation toolchain. + + Expecting a reroll. + cf. + + +* nd/switch-and-restore (2019-08-30) 1 commit + (merged to 'next' on 2019-09-09 at 97e7e06801) + + checkout: add simple check for 'git checkout -b' + + Resurrect a performance hack. + + Will merge to 'master'. + + +* rs/get-tagged-oid (2019-09-05) 2 commits + (merged to 'next' on 2019-09-09 at 0e9489a835) + + use get_tagged_oid() + + tag: factor out get_tagged_oid() + + Code cleanup. Will merge to 'master'. -* sb/userdiff-dts (2019-08-21) 1 commit - (merged to 'next' on 2019-08-23 at 2bce0b8f91) - + userdiff: add a builtin pattern for dts files +* rs/help-unknown-ref-does-not-return (2019-08-30) 1 commit + (merged to 'next' on 2019-09-09 at 4b00ea1ac9) + + help: make help_unknown_ref() NORETURN - Device-tree files learned their own userdiff patterns. + Code cleanup. Will merge to 'master'. -* sg/line-log-tree-diff-optim (2019-08-21) 2 commits - (merged to 'next' on 2019-09-07 at 8d5b7053fd) - + line-log: avoid unnecessary full tree diffs - + line-log: extract pathspec parsing from line ranges into a helper function +* rs/parse-tree-indirect (2019-09-03) 1 commit + (merged to 'next' on 2019-09-09 at 157e836dba) + + tree: simplify parse_tree_indirect() - Optimize unnecessary full-tree diff away from "git log -L" machinery. + Code cleanup. Will merge to 'master'. -* tg/t0021-racefix (2019-08-22) 1 commit - (merged to 'next' on 2019-08-23 at 0a3290393f) - + t0021: make sure clean filter runs +* sg/git-test-boolean (2019-09-06) 2 commits + (merged to 'next' on 2019-09-09 at 90406d6375) + + ci: restore running httpd tests + + t/lib-git-svn.sh: check GIT_TEST_SVN_HTTPD when running SVN HTTP tests - A test fix. + Fix an earlier regression in the test suite, which mistakenly + stopped running HTTPD tests. Will merge to 'master'. -* py/git-gui-do-quit (2019-08-07) 2 commits - (merged to 'next' on 2019-08-23 at 6544c9dbb3) - + Merge branch 'py/call-do-quit-before-exit' of github.com:gitster/git-gui into py/git-gui-do-quit - + git-gui: call do_quit before destroying the main window +* tg/push-all-in-mirror-forbidden (2019-09-03) 1 commit + (merged to 'next' on 2019-09-09 at 9db61400c8) + + push: disallow --all and refspecs when remote..mirror is set - "git gui" learned to call the clean-up procedure before exiting. + Fix an earlier regression to "git push --all" which should have + been forbidden when the target remote repository is set to be a + mirror. Will merge to 'master'. -* bc/reread-attributes-during-rebase (2019-09-03) 2 commits - (merged to 'next' on 2019-09-07 at 9f5e5db0b0) - + am: reload .gitattributes after patching it - + path: add a function to check for path suffix +* tg/stash-refresh-index (2019-09-05) 3 commits + - stash: make sure to write refreshed cache + - merge: use refresh_and_write_cache + - factor out refresh_and_write_cache function - The "git am" based backend of "git rebase" ignored the result of - updating ".gitattributes" done in one step when replaying - subsequent steps. + "git stash" learned to write refreshed index back to disk. - Will merge to 'master'. + Needs coordination with js/builtin-add-i topic, as they both wants + the same kind of enhancement to the same API function. -* jk/drop-release-pack-memory (2019-08-13) 1 commit - (merged to 'next' on 2019-09-07 at 30f841c42d) - + packfile: drop release_pack_memory() - (this branch is used by cb/curl-use-xmalloc.) +* js/builtin-add-i (2019-08-30) 11 commits + . built-in add -i: implement the `help` command + . built-in add -i: use color in the main loop + . built-in add -i: support `?` (prompt help) + . built-in add -i: show unique prefixes of the commands + . Add a function to determine unique prefixes for a list of strings + . built-in add -i: implement the main loop + . built-in add -i: color the header in the `status` command + . built-in add -i: refresh the index before running `status` + . built-in add -i: implement the `status` command + . diff: export diffstat interface + . Start to implement a built-in version of `git add --interactive` - xmalloc() used to have a mechanism to ditch memory and address - space resources as the last resort upon seeing an allocation - failure from the underlying malloc(), which made the code complex - and thread-unsafe with dubious benefit, as major memory resource - users already do limit their uses with various other mechanisms. - It has been simplified away. + The beginning of rewriting "git add -i" in C. - Will merge to 'master'. + On hold, waiting for tg/stash-refresh-index to work well with this. -* sg/complete-configuration-variables (2019-08-13) 11 commits - (merged to 'next' on 2019-09-07 at 9921f0e536) - + completion: complete config variables and values for 'git clone --config=' - + completion: complete config variables names and values for 'git clone -c' - + completion: complete values of configuration variables after 'git -c var=' - + completion: complete configuration sections and variable names for 'git -c' - + completion: split _git_config() - + completion: simplify inner 'case' pattern in __gitcomp() - + completion: use 'sort -u' to deduplicate config variable names - + completion: deduplicate configuration sections - + completion: add tests for 'git config' completion - + completion: complete more values of more 'color.*' configuration variables - + completion: fix a typo in a comment +* en/merge-recursive-cleanup (2019-08-19) 24 commits + (merged to 'next' on 2019-09-18 at f52cb08a14) + + merge-recursive: alphabetize include list + + merge-recursive: add sanity checks for relevant merge_options + + merge-recursive: rename MERGE_RECURSIVE_* to MERGE_VARIANT_* + + merge-recursive: split internal fields into a separate struct + + merge-recursive: avoid losing output and leaking memory holding that output + + merge-recursive: comment and reorder the merge_options fields + + merge-recursive: consolidate unnecessary fields in merge_options + + merge-recursive: move some definitions around to clean up the header + + merge-recursive: rename merge_options argument to opt in header + + merge-recursive: rename 'mrtree' to 'result_tree', for clarity + + merge-recursive: use common name for ancestors/common/base_list + + merge-recursive: fix some overly long lines + + cache-tree: share code between functions writing an index as a tree + + merge-recursive: don't force external callers to do our logging + + merge-recursive: remove useless parameter in merge_trees() + + merge-recursive: exit early if index != head + + Ensure index matches head before invoking merge machinery, round N + + merge-recursive: remove another implicit dependency on the_repository + + merge-recursive: future-proof update_file_flags() against memory leaks + + merge-recursive: introduce an enum for detect_directory_renames values + + merge-recursive: provide a better label for diff3 common ancestor + + merge-recursive: enforce opt->ancestor != NULL when calling merge_trees() + + checkout: provide better conflict hunk description with detached HEAD + + merge-recursive: be consistent with assert - Command line completion updates for "git -c var.name=val" + The merge-recursive machiery is one of the most complex parts of + the system that accumulated cruft over time. This large series + cleans up the implementation quite a bit. Will merge to 'master'. -* cb/fetch-set-upstream (2019-08-19) 1 commit - (merged to 'next' on 2019-08-23 at cf8c2ea0a0) - + pull, fetch: add --set-upstream option +* bc/hash-independent-tests-part-5 (2019-08-26) 14 commits + (merged to 'next' on 2019-09-09 at 49defc07af) + + t4009: make hash size independent + + t4002: make hash independent + + t4000: make hash size independent + + t3903: abstract away SHA-1-specific constants + + t3800: make hash-size independent + + t3600: make hash size independent + + t3506: make hash independent + + t3430: avoid hard-coded object IDs + + t3404: abstract away SHA-1-specific constants + + t3306: abstract away SHA-1-specific constants + + t3305: make hash size independent + + t3301: abstract away SHA-1-specific constants + + t3206: abstract away hash size constants + + t3201: abstract away SHA-1-specific constants - "git fetch" learned "--set-upstream" option to help those who first - clone from their private fork they intend to push to, add the true - upstream via "git remote add" and then "git fetch" from it. + Preparation for SHA-256 upgrade continues in the test department. Will merge to 'master'. -* js/pre-merge-commit-hook (2019-08-07) 4 commits - (merged to 'next' on 2019-09-07 at 0c9f25399c) - + merge: --no-verify to bypass pre-merge-commit hook - + git-merge: honor pre-merge-commit hook - + merge: do no-verify like commit - + t7503: verify proper hook execution +* bw/rebase-autostash-keep-current-branch (2019-09-07) 2 commits + (merged to 'next' on 2019-09-18 at 6d8ed846ed) + + builtin/rebase.c: Remove pointless message + + builtin/rebase.c: make sure the active branch isn't moved when autostashing - A new "pre-merge-commit" hook has been introduced. + "git rebase --autostash ", when is + different from the current branch, incorrectly moved the tip of the + current branch, which has been corrected. Will merge to 'master'. -* jk/eoo (2019-08-06) 3 commits - (merged to 'next' on 2019-08-23 at 217e97127a) - + gitcli: document --end-of-options - + parse-options: allow --end-of-options as a synonym for "--" - + revision: allow --end-of-options to end option parsing +* dl/format-patch-doc-test-cleanup (2019-09-05) 13 commits + (merged to 'next' on 2019-09-09 at b3022b4002) + + config/format.txt: specify default value of format.coverLetter + + Doc: add more detail for git-format-patch + + t4014: stop losing return codes of git commands + + t4014: remove confusing pipe in check_threading() + + t4014: use test_line_count() where possible + + t4014: let sed open its own files + + t4014: drop redirections to /dev/null + + t4014: use indentable here-docs + + t4014: remove spaces after redirect operators + + t4014: use sq for test case names + + t4014: move closing sq onto its own line + + t4014: s/expected/expect/ + + t4014: drop unnecessary blank lines from test cases + (this branch is used by dl/format-patch-cover-letter-subject.) - The command line parser learned "--end-of-options" notation; the - standard convention for scripters to have hardcoded set of options - first on the command line, and force the command to treat end-user - input as non-options, has been to use "--" as the delimiter, but - that would not work for commands that use "--" as a delimiter - between revs and pathspec. + The documentation and tests for "git format-patch" have been + cleaned up. Will merge to 'master'. -* jk/repo-init-cleanup (2019-08-06) 3 commits - (merged to 'next' on 2019-08-23 at 1a5e4c4f06) - + config: stop checking whether the_repository is NULL - + common-main: delay trace2 initialization - + t1309: use short branch name in includeIf.onbranch test +* pw/rebase-i-show-HEAD-to-reword (2019-08-19) 3 commits + - sequencer: simplify root commit creation + - rebase -i: check for updated todo after squash and reword + - rebase -i: always update HEAD before rewording + (this branch is used by ra/rebase-i-more-options.) - Further clean-up of the initialization code. + "git rebase -i" showed a wrong HEAD while "reword" open the editor. - Will merge to 'master'. + May want to split out the last one into a separate topic. + Will merge to 'next'. * cb/pcre2-chartables-leakfix (2019-08-06) 3 commits @@ -900,32 +1204,17 @@ of the repositories listed at * jh/trace2-pretty-output (2019-08-09) 7 commits - - trace2: cleanup whitespace in perf format - - trace2: cleanup whitespace in normal format - - quote: add sq_append_quote_argv_pretty() - - trace2: trim trailing whitespace in normal format error message - - trace2: remove dead code in maybe_add_string_va() - - trace2: trim whitespace in region messages in perf target format - - trace2: cleanup column alignment in perf target format + (merged to 'next' on 2019-09-18 at 503974aa46) + + trace2: cleanup whitespace in perf format + + trace2: cleanup whitespace in normal format + + quote: add sq_append_quote_argv_pretty() + + trace2: trim trailing whitespace in normal format error message + + trace2: remove dead code in maybe_add_string_va() + + trace2: trim whitespace in region messages in perf target format + + trace2: cleanup column alignment in perf target format Output from trace2 subsystem is formatted more prettily now. - Will merge to 'next'. - - -* ds/feature-macros (2019-08-13) 6 commits - (merged to 'next' on 2019-08-23 at 115f0c8df9) - + repo-settings: create feature.experimental setting - + repo-settings: create feature.manyFiles setting - + repo-settings: parse core.untrackedCache - + commit-graph: turn on commit-graph by default - + t6501: use 'git gc' in quiet mode - + repo-settings: consolidate some config settings - (this branch is used by ds/commit-graph-on-fetch.) - - A mechanism to affect the default setting for a (related) group of - configuration variables is introduced. - Will merge to 'master'. @@ -938,13 +1227,14 @@ of the repositories listed at Expecting a reroll. -* ra/rebase-i-more-options (2019-08-20) 6 commits +* ra/rebase-i-more-options (2019-09-09) 6 commits - rebase: add --reset-author-date - rebase -i: support --ignore-date - sequencer: rename amend_author to author_to_rename - rebase -i: support --committer-date-is-author-date - - sequencer: add NULL checks under read_author_script + - sequencer: allow callers of read_author_script() to ignore fields - rebase -i: add --ignore-whitespace flag + (this branch uses pw/rebase-i-show-HEAD-to-reword.) "git rebase -i" learned a few options that are known by "git rebase" proper. @@ -952,32 +1242,6 @@ of the repositories listed at Looking good. -* js/rebase-r-strategy (2019-09-05) 17 commits - (merged to 'next' on 2019-09-07 at 71e2451f6c) - + t3427: accelerate this test by using fast-export and fast-import - + rebase -r: do not (re-)generate root commits with `--root` *and* `--onto` - + t3418: test `rebase -r` with merge strategies - + t/lib-rebase: prepare for testing `git rebase --rebase-merges` - + rebase -r: support merge strategies other than `recursive` - + t3427: fix another incorrect assumption - + t3427: accommodate for the `rebase --merge` backend having been replaced - + t3427: fix erroneous assumption - + t3427: condense the unnecessarily repetitive test cases into three - + t3427: move the `filter-branch` invocation into the `setup` case - + t3427: simplify the `setup` test case significantly - + t3427: add a clarifying comment - + rebase: fold git-rebase--common into the -p backend - + sequencer: the `am` and `rebase--interactive` scripts are gone - + .gitignore: there is no longer a built-in `git-rebase--interactive` - + t3400: stop referring to the scripted rebase - + Drop unused git-rebase--am.sh - - "git rebase --rebase-merges" learned to drive different merge - strategies and pass strategy specific options to them. - - Will merge to 'master'. - - * ab/pcre-jit-fixes (2019-08-19) 18 commits - grep: under --debug, show whether PCRE JIT is enabled - grep: do not enter PCRE2_UTF mode on fixed matching @@ -1002,61 +1266,17 @@ of the repositories listed at A few simplification and bugfixes to PCRE interface. -* md/list-objects-filter-combo (2019-06-28) 10 commits - (merged to 'next' on 2019-09-07 at 076a48aa57) - + list-objects-filter-options: make parser void - + list-objects-filter-options: clean up use of ALLOC_GROW - + list-objects-filter-options: allow mult. --filter - + strbuf: give URL-encoding API a char predicate fn - + list-objects-filter-options: make filter_spec a string_list - + list-objects-filter-options: move error check up - + list-objects-filter: implement composite filters - + list-objects-filter-options: always supply *errbuf - + list-objects-filter: put omits set in filter struct - + list-objects-filter: encapsulate filter components - (this branch is used by ds/include-exclude.) - - The list-objects-filter API (used to create a sparse/lazy clone) - learned to take a combined filter specification. - - Will merge to 'master'. - - -* cc/multi-promisor (2019-06-25) 15 commits - (merged to 'next' on 2019-09-07 at 46faa86955) - + Move core_partial_clone_filter_default to promisor-remote.c - + Move repository_format_partial_clone to promisor-remote.c - + Remove fetch-object.{c,h} in favor of promisor-remote.{c,h} - + remote: add promisor and partial clone config to the doc - + partial-clone: add multiple remotes in the doc - + t0410: test fetching from many promisor remotes - + builtin/fetch: remove unique promisor remote limitation - + promisor-remote: parse remote.*.partialclonefilter - + Use promisor_remote_get_direct() and has_promisor_remote() - + promisor-remote: use repository_format_partial_clone - + promisor-remote: add promisor_remote_reinit() - + promisor-remote: implement promisor_remote_get_direct() - + Add initial support for many promisor remotes - + fetch-object: make functions return an error code - + t0410: remove pipes after git commands - - Teach the lazy clone machinery that there can be more than one - promisor remote and consult them in order when downloading missing - objects on demand. - - Will merge to 'master'. - - * dl/rebase-i-keep-base (2019-08-27) 9 commits - - rebase: teach rebase --keep-base - - rebase tests: test linear branch topology - - rebase: fast-forward --fork-point in more cases - - rebase: fast-forward --onto in more cases - - rebase: refactor can_fast_forward into goto tower - - t3432: test for --no-ff's interaction with fast-forward - - t3432: distinguish "noop-same" v.s. "work-same" in "same head" tests - - t3432: test rebase fast-forward behavior - - t3431: add rebase --fork-point tests + (merged to 'next' on 2019-09-18 at f94f486724) + + rebase: teach rebase --keep-base + + rebase tests: test linear branch topology + + rebase: fast-forward --fork-point in more cases + + rebase: fast-forward --onto in more cases + + rebase: refactor can_fast_forward into goto tower + + t3432: test for --no-ff's interaction with fast-forward + + t3432: distinguish "noop-same" v.s. "work-same" in "same head" tests + + t3432: test rebase fast-forward behavior + + t3431: add rebase --fork-point tests "git rebase --keep-base " tries to find the original base of the topic being rebased and rebase on top of that same base, @@ -1066,7 +1286,7 @@ of the repositories listed at The command also has learned to fast-forward in more cases where it can instead of replaying to recreate identical commits. - Will merge to 'next'. + Will merge to 'master'. * jc/format-patch-noclobber (2019-02-22) 1 commit @@ -1077,4 +1297,40 @@ of the repositories listed at Will discard. +-------------------------------------------------- +[Discarded] + +* dl/remote-save-to-push (2018-12-11) 1 commit + . remote: add --save-to-push option to git remote set-url + + "git remote set-url" learned a new option that moves existing value + of the URL field to pushURL field of the remote before replacing + the URL field with a new value. + + Anybody who wants to champion this topic? + I am personally not yet quite convinced if this is worth pursuing. + + +* js/trace2-json-schema (2019-07-25) 3 commits + . ci: run trace2 schema validation in the CI suite + . trace2: add a schema validator for trace2 events + . trace2: add a JSON schema for trace2 events + + The JSON output produced by "trace2" subsystem now has JSON schema + defined on it, to allow us validate the output and catch deviation. + + Abandoned, at least for now. + cf. <20190910182305.GA11186@google.com> + + +* pd/fetch-jobs (2019-08-13) 5 commits + . fetch: make --jobs control submodules and remotes + . fetch: add the --submodule-fetch-jobs option + . fetch: add the fetch.jobs config key + . fetch: add the "--fetch-jobs" option + . fetch: rename max_children to max_children_for_submodules + + "git fetch --jobs" is getting taught to also run fetch jobs in + parallel when fetching from multiple remote repositories. + cf. -- cgit v0.10.2-6-g49f6