From: Junio C Hamano Date: Mon, 25 Sep 2017 07:20:14 +0000 (+0900) Subject: What's cooking (2017/09 #04) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78e4e40cfad95d4f18011a6bafca9857a7b60a1f;p=thirdparty%2Fgit.git What's cooking (2017/09 #04) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index dd65f19962..204fe9a772 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 2017, #03; Fri, 15) -X-master-at: 6867272d5b5615bd74ec97bf35b4c4a8d9fe3a51 -X-next-at: 8fa685d3b7c93b129c2017f1ba5db82ebb76a715 +Subject: What's cooking in git.git (Sep 2017, #04; Mon, 25) +X-master-at: 28996cec80690d2322359d3650a57e8de6e01eb6 +X-next-at: 2c7b836f3ab9b78a2baeee97e329e4c1a1e4c005 -What's cooking in git.git (Sep 2017, #03; Fri, 15) +What's cooking in git.git (Sep 2017, #04; Mon, 25) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,10 +12,9 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -We are at week #6 of this cycle. It seems that people had a -productive week while I was away, which I am reasonably happy about -;-) Quite a many topics that have been in 'master' are now also -merged to 'maint', so perhaps I should tag 2.14.2 soonish. +We are at week #8 of this cycle. Quite a many topics that have been +in 'master' are now also merged to 'maint', so perhaps I should tag +2.14.2 soonish. You can find the changes described here in the integration branches of the repositories listed at @@ -23,243 +22,70 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[New Topics] - -* cc/subprocess-handshake-missing-capabilities (2017-09-11) 1 commit - - subprocess: loudly die when subprocess asks for an unsupported capability - - Finishing touches to a topic already in 'master'. - - Will merge to 'next'. - - -* bw/protocol-v1 (2017-09-14) 8 commits - - i5700: add interop test for protocol transition - - http: tell server that the client understands v1 - - connect: tell server that the client understands v1 - - connect: teach client to recognize v1 server response - - upload-pack, receive-pack: introduce protocol version 1 - - daemon: recognize hidden request arguments - - protocol: introduce protocol extention mechanisms - - pkt-line: add packet_write function - - A new mechanism to upgrade the wire protocol in place is proposed - and demonstrated that it works with the older versions of Git - without harming them. - - -* ez/doc-duplicated-words-fix (2017-09-14) 1 commit - - doc: fix minor typos (extra/duplicated words) - - Typofix. - - Will merge to 'next'. - - -* jk/write-in-full-fix (2017-09-14) 8 commits - - read_pack_header: handle signed/unsigned comparison in read result - - config: flip return value of store_write_*() - - notes-merge: use ssize_t for write_in_full() return value - - pkt-line: check write_in_full() errors against "< 0" - - convert less-trivial versions of "write_in_full() != len" - - avoid "write_in_full(fd, buf, len) != len" pattern - - get-tar-commit-id: check write_in_full() return against 0 - - config: avoid "write_in_full(fd, buf, len) < len" pattern - - Many codepaths did not diagnose write failures correctly when disks - go full, due to their misuse of write_in_full() helper function, - which have been corrected. - - Will merge to 'next'. - - -* jn/per-repo-object-store-fixes (2017-09-14) 3 commits - - replace-objects: evaluate replacement refs without using the object store - - push, fetch: error out for submodule entries not pointing to commits - - pack: make packed_git_mru global a value instead of a pointer - - Step #0 of a planned & larger series. - - Will merge to 'next'. - - -* ks/commit-do-not-touch-cut-line (2017-09-15) 1 commit - - commit-template: change a message to be more intuitive - - The explanation of the cut-line in the commit log editor has been - slightly tweaked. - - Will merge to 'next'. - - -* ks/help-alias-label (2017-09-14) 1 commit - - help: change a message to be more precise - - "git help co" now says "co is aliased to ...", not "git co is". - - Will merge to 'next'. - - -* mh/mmap-packed-refs (2017-09-14) 20 commits - - packed-backend.c: rename a bunch of things and update comments - - mmapped_ref_iterator: inline into `packed_ref_iterator` - - ref_cache: remove support for storing peeled values - - packed_ref_store: get rid of the `ref_cache` entirely - - ref_store: implement `refs_peel_ref()` generically - - packed_read_raw_ref(): read the reference from the mmapped buffer - - packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator` - - read_packed_refs(): ensure that references are ordered when read - - packed_ref_cache: keep the `packed-refs` file open and mmapped - - mmapped_ref_iterator_advance(): no peeled value for broken refs - - mmapped_ref_iterator: add iterator over a packed-refs file - - packed_ref_cache: remember the file-wide peeling state - - read_packed_refs(): read references with minimal copying - - read_packed_refs(): make parsing of the header line more robust - - read_packed_refs(): only check for a header at the top of the file - - read_packed_refs(): use mmap to read the `packed-refs` file - - die_unterminated_line(), die_invalid_line(): new functions - - packed_ref_cache: add a backlink to the associated `packed_ref_store` - - prefix_ref_iterator: break when we leave the prefix - - ref_iterator: keep track of whether the iterator output is ordered - (this branch uses mh/packed-ref-transactions.) - - Operations that do not touch (majority of) packed refs have been - optimized by making accesses to packed-refs file lazy; we no longer - pre-parse everything, and an access to a single ref in the - packed-refs does not touch majority of irrelevant refs, either. - - Expecting a rework to also work on Windows. - - -* nm/imap-send-with-curl (2017-09-15) 4 commits - - imap-send: use curl by default when possible - - imap_send: setup_curl: retreive credentials if not set in config file - - imap-send: add wrapper to get server credentials if needed - - imap-send: return with error if curl failed - - "git imap-send" has our own implementation of the protocol and also - can use more recent libCurl with the imap protocol support. Update - the latter so that it can use the credential subsystem, and then - make it the default option to use, so that we can eventually - deprecate and remove the former. - - Will merge to 'next'. +[Graduated to "master"] +* sb/merge-commit-msg-hook (2017-09-22) 1 commit + (merged to 'next' on 2017-09-25 at 096e0502a8) + + Documentation/githooks: mention merge in commit-msg hook -* rj/test-ulimit-on-windows (2017-09-15) 1 commit - - test-lib: don't use ulimit in test prerequisites on cygwin - (this branch uses mg/name-rev-tests-with-short-stack.) - - On Cygwin, "ulimit -s" does not report failure but it does not work - at all, which causes an unexpected success of some tests that - expect failures under a limited stack situation. This has been - fixed. - - Will merge to 'next'. - - -* rs/archive-excluded-directory (2017-09-14) 1 commit - - archive: don't add empty directories to archives - - "git archive", especially when used with pathspec, stored an empty - directory in its output, even though Git itself never does so. - This has been fixed. - - Will merge to 'next'. - - -* tg/refs-allowed-flags (2017-09-14) 1 commit - - refs: strip out not allowed flags from ref_transaction_update - - API error-proofing which happens to also squelch warnings from GCC. - - Will merge to 'next'. - --------------------------------------------------- -[Stalled] - -* mg/status-in-progress-info (2017-05-10) 2 commits - - status --short --inprogress: spell it as --in-progress - - status: show in-progress info for short status - - "git status" learns an option to report various operations - (e.g. "merging") that the user is in the middle of. + As "git commit" to conclude a conflicted "git merge" honors the + commit-msg hook, "git merge" that records a merge commit that + cleanly auto-merges should, but it didn't. - cf. +* aw/gc-lockfile-fscanf-fix (2017-09-17) 1 commit + (merged to 'next' on 2017-09-24 at 999ccd41aa) + + gc: call fscanf() with %s, not %c, when reading hostname -* nd/worktree-move (2017-04-20) 6 commits - - worktree remove: new command - - worktree move: refuse to move worktrees with submodules - - worktree move: accept destination as directory - - worktree move: new command - - worktree.c: add update_worktree_location() - - worktree.c: add validate_worktree() + "git gc" tries to avoid running two instances at the same time by + reading and writing pid/host from and to a lock file; it used to + use an incorrect fscanf() format when reading, which has been + corrected. - "git worktree" learned move and remove subcommands. - Expecting a reroll. - cf. <20170420101024.7593-1-pclouds@gmail.com> - cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net> - cf. +* bb/doc-eol-dirty (2017-09-07) 1 commit + (merged to 'next' on 2017-09-14 at 2f0cb688c6) + + Documentation: mention that `eol` can change the dirty status of paths + Doc update. -* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits - - Documentation/clone: document ignored configuration variables - - clone: respect additional configured fetch refspecs during initial fetch - (this branch is used by sg/remote-no-string-refspecs.) - "git clone -c var=val" is a way to set configuration variables in - the resulting repository, but it is more useful to also make these - variables take effect while the initial clone is happening, - e.g. these configuration variables could be fetch refspecs. +* bw/git-clang-format (2017-08-14) 2 commits + (merged to 'next' on 2017-09-24 at ae51a4e81c) + + Makefile: add style build rule + + clang-format: outline the git project's coding style - Waiting for a response. - cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net> - cf. + "make style" runs git-clang-format to help developers by pointing + out coding style issues. -* js/rebase-i-final (2017-07-27) 10 commits - - rebase -i: rearrange fixup/squash lines using the rebase--helper - - t3415: test fixup with wrapped oneline - - rebase -i: skip unnecessary picks using the rebase--helper - - rebase -i: check for missing commits in the rebase--helper - - t3404: relax rebase.missingCommitsCheck tests - - rebase -i: also expand/collapse the SHA-1s via the rebase--helper - - rebase -i: do not invent onelines when expanding/collapsing SHA-1s - - rebase -i: remove useless indentation - - rebase -i: generate the script via rebase--helper - - t3415: verify that an empty instructionFormat is handled as before +* cc/subprocess-handshake-missing-capabilities (2017-09-11) 1 commit + (merged to 'next' on 2017-09-19 at 7d0c272bc8) + + subprocess: loudly die when subprocess asks for an unsupported capability - The final batch to "git rebase -i" updates to move more code from - the shell script to C. + Finishing touches to a topic already in 'master'. - Expecting a reroll. +* dw/diff-highlight-makefile-fix (2017-09-06) 1 commit + (merged to 'next' on 2017-09-10 at 8dfda480ac) + + diff-highlight: add clean target to Makefile -* bp/fsmonitor (2017-06-12) 6 commits - - fsmonitor: add a sample query-fsmonitor hook script for Watchman - - fsmonitor: add documentation for the fsmonitor extension. - - fsmonitor: add test cases for fsmonitor extension - - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files. - - dir: make lookup_untracked() available outside of dir.c - - bswap: add 64 bit endianness helper get_be64 + Build clean-up. - We learned to talk to watchman to speed up "git status". - Expecting a reroll. - cf. +* ez/doc-duplicated-words-fix (2017-09-14) 1 commit + (merged to 'next' on 2017-09-19 at 20781bd866) + + doc: fix minor typos (extra/duplicated words) --------------------------------------------------- -[Cooking] + Typofix. -* bb/doc-eol-dirty (2017-09-07) 1 commit - (merged to 'next' on 2017-09-14 at 2f0cb688c6) - + Documentation: mention that `eol` can change the dirty status of paths - Doc update. +* hv/mv-nested-submodules-test (2017-09-17) 1 commit + (merged to 'next' on 2017-09-24 at d36650bbca) + + add test for bug in git-mv for recursive submodules - Will merge to 'master'. + A test to demonstrate "git mv" failing to adjust nested submodules + has been added. * jh/hashmap-disable-counting (2017-09-07) 1 commit @@ -270,7 +96,12 @@ of the repositories listed at adding a new item needs to expand the hashtable by rehashing; add an API to disable the automatic rehashing to work it around. - Will merge to 'master'. + +* jk/config-lockfile-leak-fix (2017-09-06) 1 commit + (merged to 'next' on 2017-09-10 at 7b91d71749) + + config: use a static lock_file struct + + A leakfix. * jk/incore-lockfile-removal (2017-09-06) 20 commits @@ -301,10 +132,28 @@ of the repositories listed at tempfile APIs have been updated to reduce the chance of programming errors. - Will merge to 'master'. +* jk/info-alternates-fix (2017-09-20) 2 commits + (merged to 'next' on 2017-09-24 at d1594d1397) + + read_info_alternates: warn on non-trivial errors + + Merge branch 'jk/info-alternates-fix-2.11' into jk/info-alternates-fix + (this branch uses jk/info-alternates-fix-2.11.) + + A regression fix for 2.11 that made the code to read the list of + alternate object stores overrun the end of the string. + + +* jk/info-alternates-fix-2.11 (2017-09-20) 1 commit + + read_info_alternates: read contents into strbuf + (this branch is used by jk/info-alternates-fix.) -* jk/leak-checkers (2017-09-08) 10 commits + A regression fix for 2.11 that made the code to read the list of + alternate object stores overrun the end of the string. + + +* jk/leak-checkers (2017-09-08) 11 commits + (merged to 'next' on 2017-09-20 at 5e9ba01461) + + git-compat-util: make UNLEAK less error-prone (merged to 'next' on 2017-09-14 at 906ed9f590) + add UNLEAK annotation for reducing leak false positives + set_git_dir: handle feeding gitdir to itself @@ -324,7 +173,20 @@ of the repositories listed at a mechanism for developers to mark that the region of memory pointed by a pointer is not lost/leaking to help these tools. - Will merge to 'master'. + +* jk/revision-remove-cmdline-pathspec (2017-09-21) 2 commits + (merged to 'next' on 2017-09-24 at 2adfb89370) + + pathspec doc: parse_pathspec does not maintain references to args + + revision: replace "struct cmdline_pathspec" with argv_array + + Code clean-up that also plugs memory leaks. + + +* jk/shortlog-ident-cleanup (2017-09-09) 1 commit + (merged to 'next' on 2017-09-14 at 09695b6c39) + + shortlog: skip format/parse roundtrip for internal traversal + + Code clean-up. * jk/system-path-cleanup (2017-09-07) 2 commits @@ -334,50 +196,175 @@ of the repositories listed at Code clean-up. - Will merge to 'master'. + +* jk/write-in-full-fix (2017-09-14) 8 commits + (merged to 'next' on 2017-09-19 at 7b26691c07) + + read_pack_header: handle signed/unsigned comparison in read result + + config: flip return value of store_write_*() + + notes-merge: use ssize_t for write_in_full() return value + + pkt-line: check write_in_full() errors against "< 0" + + convert less-trivial versions of "write_in_full() != len" + + avoid "write_in_full(fd, buf, len) != len" pattern + + get-tar-commit-id: check write_in_full() return against 0 + + config: avoid "write_in_full(fd, buf, len) < len" pattern + + Many codepaths did not diagnose write failures correctly when disks + go full, due to their misuse of write_in_full() helper function, + which have been corrected. + + +* jn/per-repo-object-store-fixes (2017-09-14) 3 commits + (merged to 'next' on 2017-09-19 at 95aef30d5b) + + replace-objects: evaluate replacement refs without using the object store + + push, fetch: error out for submodule entries not pointing to commits + + pack: make packed_git_mru global a value instead of a pointer + + Step #0 of a planned & larger series to make the in-core object + store per in-core repository object. * jt/packmigrate (2017-09-06) 1 commit (merged to 'next' on 2017-09-14 at 169e9573a0) + Remove inadvertently added outgoing/packfile.h - An oops fix. - - Will merge to 'master'. + Remove unneeded file added by a topic already in 'master'. * kd/doc-for-each-ref (2017-09-12) 2 commits - - doc/for-each-ref: explicitly specify option names - - doc/for-each-ref: consistently use '=' to between argument names and values + (merged to 'next' on 2017-09-19 at 993a2ae375) + + doc/for-each-ref: explicitly specify option names + + doc/for-each-ref: consistently use '=' to between argument names and values Doc update. - Will merge to 'next'. +* ks/commit-do-not-touch-cut-line (2017-09-15) 1 commit + (merged to 'next' on 2017-09-19 at 83891def6b) + + commit-template: change a message to be more intuitive -* kw/write-index-reduce-alloc (2017-09-08) 2 commits - - read-cache: fix index corruption with index v4 - - Add t/helper/test-write-cache to .gitignore + The explanation of the cut-line in the commit log editor has been + slightly tweaked. - Will merge to 'next'. +* ks/help-alias-label (2017-09-14) 1 commit + (merged to 'next' on 2017-09-19 at 7737c853e0) + + help: change a message to be more precise -* ma/remove-config-maybe-bool (2017-09-07) 1 commit - (merged to 'next' on 2017-09-14 at d0c7fb97a9) - + config: remove git_config_maybe_bool + "git help co" now says "co is aliased to ...", not "git co is". - Finishing touches to a recent topic. - Will merge to 'master'. +* ks/test-readme-phrasofix (2017-09-19) 1 commit + (merged to 'next' on 2017-09-24 at 3a721d05f5) + + t/README: fix typo and grammatically improve a sentence + Doc updates. -* mh/packed-ref-store-prep (2017-09-07) 1 commit - (merged to 'next' on 2017-09-14 at e3ef821847) - + rev-parse: don't trim bisect refnames - Finishing touches to a recent topic. +* kw/merge-recursive-cleanup (2017-09-08) 3 commits + (merged to 'next' on 2017-09-14 at 9f20025e6b) + + merge-recursive: change current file dir string_lists to hashmap + + merge-recursive: remove return value from get_files_dirs + + merge-recursive: fix memory leak - Will merge to 'master'. + A leakfix and code clean-up. + + +* kw/write-index-reduce-alloc (2017-09-08) 2 commits + (merged to 'next' on 2017-09-19 at d0e32c567a) + + read-cache: fix index corruption with index v4 + + Add t/helper/test-write-cache to .gitignore + + A hotfix to a topic already in 'master'. + + +* ls/travis-scriptify (2017-09-22) 4 commits + (merged to 'next' on 2017-09-24 at 6e808f0472) + + travis-ci: fix "skip_branch_tip_with_tag()" string comparison + (merged to 'next' on 2017-09-14 at 8fa685d3b7) + + travis: dedent a few scripts that are indented overly deeply + + travis-ci: skip a branch build if equal tag is present + + travis-ci: move Travis CI code into dedicated scripts + + The scripts to drive TravisCI has been reorganized and then an + optimization to avoid spending cycles on a branch whose tip is + tagged has been implemented. + + +* ma/pkt-line-leakfix (2017-09-06) 1 commit + (merged to 'next' on 2017-09-10 at f0d9994319) + + pkt-line: re-'static'-ify buffer in packet_write_fmt_1() + + A leakfix. + + +* ma/remove-config-maybe-bool (2017-09-07) 1 commit + (merged to 'next' on 2017-09-14 at d0c7fb97a9) + + config: remove git_config_maybe_bool + + Finishing touches to a recent topic. + + +* ma/split-symref-update-fix (2017-09-10) 4 commits + (merged to 'next' on 2017-09-10 at 96c403fca7) + + refs/files-backend: add `refname`, not "HEAD", to list + + refs/files-backend: correct return value in lock_ref_for_update + + refs/files-backend: fix memory leak in lock_ref_for_update + + refs/files-backend: add longer-scoped copy of string to list + + A leakfix. + + +* mg/name-rev-tests-with-short-stack (2017-09-08) 4 commits + (merged to 'next' on 2017-09-14 at 1e4a0fe206) + + t6120: test describe and name-rev with deep repos + + t6120: clean up state after breaking repo + + t6120: test name-rev --all and --stdin + + t7004: move limited stack prereq to test-lib + (this branch is used by rj/test-ulimit-on-windows.) + + A handful of tests to demonstrates a recursive implementation of + "name-rev" hurts. + + +* mg/timestamp-t-fix (2017-09-06) 1 commit + (merged to 'next' on 2017-09-10 at a5df4d5b3e) + + name-rev: change ULONG_MAX to TIME_MAX + + A mismerge fix. + + +* mh/for-each-string-list-item-empty-fix (2017-09-20) 1 commit + (merged to 'next' on 2017-09-24 at 7ca1782f86) + + for_each_string_list_item: avoid undefined behavior for empty list + + Code cmp.std.c nitpick. + + +* mh/notes-cleanup (2017-09-09) 13 commits + (merged to 'next' on 2017-09-10 at cb1d725504) + + load_subtree(): check that `prefix_len` is in the expected range + (merged to 'next' on 2017-08-26 at 2d6df46966) + + load_subtree(): declare some variables to be `size_t` + + hex_to_bytes(): simpler replacement for `get_oid_hex_segment()` + + get_oid_hex_segment(): don't pad the rest of `oid` + + load_subtree(): combine some common code + + get_oid_hex_segment(): return 0 on success + + load_subtree(): only consider blobs to be potential notes + + load_subtree(): check earlier whether an internal node is a tree entry + + load_subtree(): separate logic for internal vs. terminal entries + + load_subtree(): fix incorrect comment + + load_subtree(): reduce the scope of some local variables + + load_subtree(): remove unnecessary conditional + + notes: make GET_NIBBLE macro more robust + + Code clean-up. + + +* mh/packed-ref-store-prep (2017-09-07) 1 commit + (merged to 'next' on 2017-09-14 at e3ef821847) + + rev-parse: don't trim bisect refnames + + Fix regression to "gitk --bisect" by a recent update. * mh/packed-ref-transactions (2017-09-09) 11 commits @@ -398,7 +385,45 @@ of the repositories listed at Implement transactional update to the packed-ref representation of references. - Will merge to 'master'. + +* nd/prune-in-worktree (2017-08-24) 16 commits + (merged to 'next' on 2017-09-14 at 3efe283118) + + refs.c: reindent get_submodule_ref_store() + + refs.c: remove fallback-to-main-store code get_submodule_ref_store() + + rev-list: expose and document --single-worktree + + revision.c: --reflog add HEAD reflog from all worktrees + + files-backend: make reflog iterator go through per-worktree reflog + + revision.c: --all adds HEAD from all worktrees + + refs: remove dead for_each_*_submodule() + + refs.c: move for_each_remote_ref_submodule() to submodule.c + + revision.c: use refs_for_each*() instead of for_each_*_submodule() + + refs: add refs_head_ref() + + refs: move submodule slash stripping code to get_submodule_ref_store + + refs.c: refactor get_submodule_ref_store(), share common free block + + revision.c: --indexed-objects add objects from all worktrees + + revision.c: refactor add_index_objects_to_pending() + + refs.c: use is_dir_sep() in resolve_gitlink_ref() + + revision.h: new flag in struct rev_info wrt. worktree-related refs + + "git gc" and friends when multiple worktrees are used off of a + single repository did not consider the index and per-worktree refs + of other worktrees as the root for reachability traversal, making + objects that are in use only in other worktrees to be subject to + garbage collection. + + +* nm/imap-send-with-curl (2017-09-15) 4 commits + (merged to 'next' on 2017-09-19 at d07debeb6c) + + imap-send: use curl by default when possible + + imap_send: setup_curl: retreive credentials if not set in config file + + imap-send: add wrapper to get server credentials if needed + + imap-send: return with error if curl failed + + "git imap-send" has our own implementation of the protocol and also + can use more recent libCurl with the imap protocol support. Update + the latter so that it can use the credential subsystem, and then + make it the default option to use, so that we can eventually + deprecate and remove the former. * nm/pull-submodule-recurse-config (2017-09-07) 2 commits @@ -410,7 +435,46 @@ of the repositories listed at "--recurse-submodules" option was given from the command line. This has been corrected. - Will merge to 'master'. + +* ow/rev-parse-is-shallow-repo (2017-09-19) 1 commit + (merged to 'next' on 2017-09-24 at 8f1b915908) + + rev-parse: rev-parse: add --is-shallow-repository + + "git rev-parse" learned "--is-shallow-repository", that is to be + used in a way similar to existing "--is-bare-repository" and + friends. + + +* rj/test-ulimit-on-windows (2017-09-19) 3 commits + (merged to 'next' on 2017-09-24 at b01a595c05) + + t9010-*.sh: skip all tests if the PIPE prereq is missing + + test-lib: use more compact expression in PIPE prerequisite + + test-lib: don't use ulimit in test prerequisites on cygwin + (this branch uses mg/name-rev-tests-with-short-stack.) + + On Cygwin, "ulimit -s" does not report failure but it does not work + at all, which causes an unexpected success of some tests that + expect failures under a limited stack situation. This has been + fixed. + + +* rk/commit-tree-make-F-verbatim (2017-09-10) 1 commit + (merged to 'next' on 2017-09-14 at 3d40c900f3) + + commit-tree: do not complete line in -F input + + Unlike "git commit-tree < file", "git commit-tree -F file" did not + pass the contents of the file verbatim and instead completed an + incomplete line at the end, if exists. The latter has been updated + to match the behaviour of the former. + + +* rs/archive-excluded-directory (2017-09-14) 1 commit + (merged to 'next' on 2017-09-19 at c695db3039) + + archive: don't add empty directories to archives + + "git archive", especially when used with pathspec, stored an empty + directory in its output, even though Git itself never does so. + This has been fixed. * rs/strbuf-leakfix (2017-09-10) 34 commits @@ -452,128 +516,490 @@ of the repositories listed at Many leaks of strbuf have been fixed. + +* tb/test-lint-echo-e (2017-09-21) 1 commit + (merged to 'next' on 2017-09-24 at dfa5caa4ce) + + test-lint: echo -e (or -E) is not portable + + The test linter has been taught that we do not like "echo -e". + + +* tg/refs-allowed-flags (2017-09-14) 1 commit + (merged to 'next' on 2017-09-19 at 407066a925) + + refs: strip out not allowed flags from ref_transaction_update + + API error-proofing which happens to also squelch warnings from GCC. + + +* ti/external-sha1dc (2017-08-16) 2 commits + (merged to 'next' on 2017-08-26 at a0fb4e91a5) + + sha1dc: allow building with the external sha1dc library + + sha1dc: build git plumbing code more explicitly + + Platforms that ship with a separate sha1 with collision detection + library can link to it instead of using the copy we ship as part of + our source tree. + +-------------------------------------------------- +[New Topics] + +* sb/merge-commit-msg-hook (2017-09-22) 1 commit + (merged to 'next' on 2017-09-25 at 096e0502a8) + + Documentation/githooks: mention merge in commit-msg hook + + Add documentation for a topic that has recently graduated to the + 'master' branch. + Will merge to 'master'. -* jk/shortlog-ident-cleanup (2017-09-09) 1 commit - (merged to 'next' on 2017-09-14 at 09695b6c39) - + shortlog: skip format/parse roundtrip for internal traversal +* jk/describe-omit-some-refs (2017-09-17) 1 commit + (merged to 'next' on 2017-09-24 at c373c71279) + + describe: fix matching to actually match all patterns + (this branch is used by mk/describe-match-with-all.) + + "git describe --match" learned to take multiple patterns in v2.13 + series, but the feature ignored the patterns after the first one + and did not work at all. This has been fixed. + + Will merge to 'master'. + + +* jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit + - git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames. + + "git svn dcommit" did not take into account the fact that a + svn+ssh:// URL with a username@ (typically used for pushing) refers + to the same SVN repository without the username@ and failed when + svn.pushmergeinfo option is set. + + Needs a test, perhaps as a follow-up patch. + + +* mg/merge-base-fork-point (2017-09-17) 3 commits + - merge-base: find fork-point outside partial reflog + - merge-base: return fork-point outside reflog + - t6010: test actual test output + + "merge-base --fork-point $branch $commit" is used to guess on which + commit among the commits that were once at the tip of the $branch the + $commit was built on top of, and it learns these historical tips from + the reflog of the $branch. When the true fork-point is lost due to + pruning of old reflog entries, the command does not give any output, + because it has no way to guess correctly and does not want to mislead + the user with a wrong guess. + + The command has been updated to give the best but not known to be + correct guess, based on a hope that a merge-base between $commit and a + virtual merge across all the reflog entries that still are available + for $branch may still be a closer to the true fork-point than the + merge-base between $commit and the current tip of the $branch. + + This may have to be offered by an additional option, to allow the + users that are prepared to see a potentially incorrect guess to opt + into the feature, without affecting the current callers that may not + be prepared to accept a guess that is not known to be correct. + + +* bc/rev-parse-parseopt-fix (2017-09-25) 7 commits + - parse-options: only insert newline in help text if needed + - parse-options: write blank line to correct output stream + - t0040,t1502: Demonstrate parse_options bugs + (merged to 'next' on 2017-09-24 at e479bce0ff) + + git-rebase: don't ignore unexpected command line arguments + + rev-parse parseopt: interpret any whitespace as start of help text + + rev-parse parseopt: do not search help text for flag chars + + t1502: demonstrate rev-parse --parseopt option mis-parsing + + Recent versions of "git rev-parse --parseopt" did not parse the + option specification that does not have the optional flags (*=?!) + correctly, which has been corrected. + + Will merge to 'next'. + + +* ds/find-unique-abbrev-optim (2017-09-19) 4 commits + - SQUASH??? + - sha1_name: parse less while finding common prefix + - sha1_name: unroll len loop in find_unique_abbrev_r() + - sha1_name: create perf test for find_unique_abbrev() + + +* ic/fix-filter-branch-to-handle-tag-without-tagger (2017-09-22) 4 commits + (merged to 'next' on 2017-09-25 at c7550033df) + + filter-branch: use hash-object instead of mktag + + filter-branch: stash away ref map in a branch + + filter-branch: preserve and restore $GIT_AUTHOR_* and $GIT_COMMITTER_* + + filter-branch: reset $GIT_* before cleaning up + + "git filter-branch" cannot reproduce a history with a tag without + the tagger field, which only ancient versions of Git allowed to be + created. This has been corrected. + + Will merge to 'master'. + + +* jm/status-ignored-directory-optim (2017-09-19) 1 commit + (merged to 'next' on 2017-09-24 at ca50f5ed41) + + Improve performance of git status --ignored + + "git status --ignored", when noticing that a directory without any + tracked path is ignored, still enumerated all the ignored paths in + the directory, which is unnecessary. The codepath has been + optimized to avoid this overhead. + + Will merge to 'master'. + + +* js/win32-lazyload-dll (2017-09-20) 1 commit + - Win32: simplify loading of DLL functions + + Add a helper in anticipation for its need in a future topic RSN. + + Expecting a reroll. + cf. + + +* ks/doc-use-camelcase-for-config-name (2017-09-25) 1 commit + - doc: camelCase the config variables to improve readability + + Doc update. + + Will merge to 'next'. + + +* mk/describe-match-with-all (2017-09-20) 2 commits + (merged to 'next' on 2017-09-24 at f96d58dd83) + + describe: teach --match to handle branches and remotes + + Merge branch 'jk/describe-omit-some-refs' into mk/describe-match-with-all + (this branch uses jk/describe-omit-some-refs.) + + "git describe --match " has been taught to play well with + the "--all" option. + + Will merge to 'master'. + + +* jt/fast-export-copy-modify-fix (2017-09-21) 1 commit + (merged to 'next' on 2017-09-24 at c02bfe1902) + + fast-export: do not copy from modified file + + "git fast-export" with -M/-C option issued "copy" instruction on a + path that is simultaneously modified, which was incorrect. + + Will merge to 'master'. + + +* ma/leakplugs (2017-09-24) 6 commits + (merged to 'next' on 2017-09-25 at 69d381a96a) + + pack-bitmap[-write]: use `object_array_clear()`, don't leak + + object_array: add and use `object_array_pop()` + + object_array: use `object_array_clear()`, not `free()` + + leak_pending: use `object_array_clear()`, not `free()` + + commit: fix memory leak in `reduce_heads()` + + builtin/commit: fix memory leak in `prepare_index()` + + Memory leaks in various codepaths have been plugged. + + Will merge to 'master'. + + +* hn/typofix (2017-09-22) 1 commit + (merged to 'next' on 2017-09-25 at 489ad60f5b) + + submodule.h: typofix + + Will merge to 'master'. + + +* jk/diff-blob (2017-09-22) 1 commit + (merged to 'next' on 2017-09-25 at 38286c8ff5) + + cat-file: handle NULL object_context.path + + "git cat-file --textconv" started segfaulting recently, which + has been corrected. + + Will merge to 'master'. + + +* jk/fallthrough (2017-09-22) 3 commits + (merged to 'next' on 2017-09-25 at ad96c37620) + + consistently use "fallthrough" comments in switches + + curl_trace(): eliminate switch fallthrough + + test-line-buffer: simplify command parsing + + Many codepaths have been updated to squelch -Wimplicit-fallthrough + warnings from Gcc 7 (which is a good code hygiene). + + Will merge to 'master'. + + +* rj/no-sign-compare (2017-09-22) 4 commits + (merged to 'next' on 2017-09-25 at 71ee264ce6) + + ALLOC_GROW: avoid -Wsign-compare warnings + + cache.h: hex2chr() - avoid -Wsign-compare warnings + + commit-slab.h: avoid -Wsign-compare warnings + + git-compat-util.h: xsize_t() - avoid -Wsign-compare warnings + + Many codepaths have been updated to squelch -Wsign-compare + warnings. + + Will merge to 'master'. + + +* cc/perf-run-config (2017-09-24) 9 commits + - perf: store subsection results in "test-results/$GIT_PERF_SUBSECTION/" + - perf/run: show name of rev being built + - perf/run: add run_subsection() + - perf/run: update get_var_from_env_or_config() for subsections + - perf/run: add get_subsections() + - perf/run: add calls to get_var_from_env_or_config() + - perf/run: add GIT_PERF_DIRS_OR_REVS + - perf/run: add get_var_from_env_or_config() + - perf/run: add '--config' option to the 'run' script + + Needs review. + + +* ik/userdiff-html-h-element-fix (2017-09-24) 1 commit + (merged to 'next' on 2017-09-25 at e3cbe89672) + + userdiff: fix HTML hunk header regexp + + The built-in pattern to detect the "function header" for HTML did + not match

..

elements without any attributes, which has + been fixed. + + Will merge to 'master'. + + +* jk/doc-read-tree-table-asciidoctor-fix (2017-09-24) 1 commit + (merged to 'next' on 2017-09-25 at 070163b964) + + doc: put literal block delimiter around table + + A docfix. + + Will merge to 'master'. + + +* mg/merge-pre-merge-hook (2017-09-24) 4 commits + - t7503: add tests for pre-merge-hook + - merge: --no-verify to bypass pre-merge hook + - merge: do no-verify like commit + - git-merge: honor pre-merge hook + + "git merge" learned a 'pre-merge' hook, that would be triggered + before the merge commit is created by a clean auto-merge. + + Waiting for review to conclude. + + +* rs/mailinfo-qp-decode-fix (2017-09-24) 1 commit + (merged to 'next' on 2017-09-25 at d48c594041) + + mailinfo: don't decode invalid =XY quoted-printable sequences + + "git mailinfo" was loose in decoding quoted printable and produced + garbage when the two letters after the equal sign are not + hexadecimal. This has been fixed. + + Will merge to 'master'. + + +* rs/resolve-ref-optional-result (2017-09-24) 3 commits + (merged to 'next' on 2017-09-25 at b0f31228bb) + + refs: pass NULL to resolve_ref_unsafe() if hash is not needed + + refs: pass NULL to refs_resolve_ref_unsafe() if hash is not needed + + refs: make sha1 output parameter of refs_resolve_ref_unsafe() optional Code clean-up. Will merge to 'master'. -* mg/name-rev-tests-with-short-stack (2017-09-08) 4 commits - (merged to 'next' on 2017-09-14 at 1e4a0fe206) - + t6120: test describe and name-rev with deep repos - + t6120: clean up state after breaking repo - + t6120: test name-rev --all and --stdin - + t7004: move limited stack prereq to test-lib - (this branch is used by rj/test-ulimit-on-windows.) +* sb/doc-config-submodule-update (2017-09-24) 1 commit + (merged to 'next' on 2017-09-25 at 447014b4ce) + + Documentation/config: clarify the meaning of submodule..update + + Will merge to 'master'. + + +* jc/merge-x-theirs-docfix (2017-09-25) 1 commit + - merge-strategies: avoid implying that "-s theirs" exists + + The documentation for '-X