summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-09-18 22:28:34 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-09-18 22:28:34 (GMT)
commit05a9aaeb4d32405fb2cbb72206c9bf8c73efe318 (patch)
tree935f9aee20f7cabb0449788b88378d017feb85ba
parent1163f0da0e6fb6c659dffed204ed362ac656eb20 (diff)
downloadgit-05a9aaeb4d32405fb2cbb72206c9bf8c73efe318.zip
git-05a9aaeb4d32405fb2cbb72206c9bf8c73efe318.tar.gz
git-05a9aaeb4d32405fb2cbb72206c9bf8c73efe318.tar.bz2
What's cooking (2019/09 #02)
-rw-r--r--whats-cooking.txt1364
1 files changed, 810 insertions, 554 deletions
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=<pattern>" 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 `<refmiscinfo/>`
+* 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=<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.<name>.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]
@@ -426,34 +655,8 @@ of the repositories listed at
(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. <cover.1565468806.git.matheus.bernardino@usp.br>
-
-
-
-
-* 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
-
- The JSON output produced by "trace2" subsystem now has JSON schema
- defined on it, to allow us validate the output and catch deviation.
-
- The CI integration may be a bit too heavy-handed.
+ Expecting a reroll.
+ cf. <CAHd-oW4LZTFcoPvqd+FU03+64y7MzesMurCT7tUFQrF_z9ocnQ@mail.gmail.com>
* jn/unknown-index-extensions (2018-11-21) 2 commits
@@ -512,385 +715,486 @@ 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
+
+ The command line completion support (in contrib/) learned about the
+ "--skip" option of "git revert" and "git cherry-pick".
-* 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
+ Will merge to 'master'.
- The http transport lacked some optimization the native transports
- learned to avoid unnecessary ref advertisement, which has been
- corrected.
+
+* 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 <upstream> <branch>", when <branch> 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'.
-* 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
+* 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
- 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
+* 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
- Optimize unnecessary full-tree diff away from "git log -L" machinery.
+ Various fixes to codepaths gcc 9 had trouble following dataflow.
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
+* js/visual-studio (2019-09-05) 1 commit
+ (merged to 'next' on 2019-09-09 at 5493ee9474)
+ + .gitignore: stop ignoring `.manifest` files
- A test fix.
+ Adjust .gitignore to unignore a path that we started to track.
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
+* jt/cache-tree-avoid-lazy-fetch-during-merge (2019-09-09) 1 commit
+ - cache-tree: do not lazy-fetch tentative tree
- "git gui" learned to call the clean-up procedure before exiting.
+ 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 `<refmiscinfo/>`
+ - Doc/Makefile: give mansource/-version/-manual attributes
+
+ Update support for Asciidoctor documentation toolchain.
+
+ Expecting a reroll.
+ cf. <CAN0heSq9B8NSr7-Bcqpiags6wyMm_3KUGeo+7GZA85nd7GnG=w@mail.gmail.com>
+
+
+* 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'.
-* 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
+* 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()
- The "git am" based backend of "git rebase" ignored the result of
- updating ".gitattributes" done in one step when replaying
- subsequent steps.
+ Code cleanup.
Will merge to 'master'.
-* 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.)
+* 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
- 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.
+ Code cleanup.
Will merge to 'master'.
-* 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
+* rs/parse-tree-indirect (2019-09-03) 1 commit
+ (merged to 'next' on 2019-09-09 at 157e836dba)
+ + tree: simplify parse_tree_indirect()
- Command line completion updates for "git -c var.name=val"
+ Code cleanup.
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
+* 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
- "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.
+ Fix an earlier regression in the test suite, which mistakenly
+ stopped running HTTPD tests.
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
+* 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.<name>.mirror is set
- A new "pre-merge-commit" hook has been introduced.
+ 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'.
-* 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
+* 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 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.
+ "git stash" learned to write refreshed index back to disk.
+
+ Needs coordination with js/builtin-add-i topic, as they both wants
+ the same kind of enhancement to the same API function.
+
+
+* 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`
+
+ The beginning of rewriting "git add -i" in C.
+
+ On hold, waiting for tg/stash-refresh-index to work well with this.
+
+
+* 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
+
+ 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'.
-* 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
+* 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
- Further clean-up of the initialization code.
+ Preparation for SHA-256 upgrade continues in the test department.
+
+ Will merge to 'master'.
+
+
+* 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
+
+ "git rebase --autostash <upstream> <branch>", when <branch> is
+ different from the current branch, incorrectly moved the tip of the
+ current branch, which has been corrected.
Will merge to 'master'.
+* 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 documentation and tests for "git format-patch" have been
+ cleaned up.
+
+ 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
+ (this branch is used by ra/rebase-i-more-options.)
+
+ "git rebase -i" showed a wrong HEAD while "reword" open the editor.
+
+ 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
- grep: avoid leak of chartables in PCRE2
- grep: make PCRE2 aware of custom allocator
@@ -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 <upstream>" 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. <nycvar.QRO.7.76.6.1909111359150.5377@tvgsbejvaqbjf.bet>