From 9749f7aaf8bd309698a449fba6bb57faff118396 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 20 Apr 2017 15:52:30 -0700 Subject: [PATCH] What's cooking (2017/04 #04) --- whats-cooking.txt | 754 ++++++++++++++++++++++++---------------------- 1 file changed, 390 insertions(+), 364 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index c81fb074d5..0685188e51 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 (Apr 2017, #03; Tue, 18) -X-master-at: 584f8975d2d9530a34bd0b936ae774f82fe30fed -X-next-at: 79292aac69b6a4563ffbc4589a70ae46f7eb15cb +Subject: What's cooking in git.git (Apr 2017, #04; Wed, 19) +X-master-at: 6a2c2f8d34fa1e8f3bb85d159d354810ed63692e +X-next-at: b4426549316a3855d2b022fb331e7173b26879d0 -What's cooking in git.git (Apr 2017, #03; Tue, 18) +What's cooking in git.git (Apr 2017, #04; Wed, 19) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -18,114 +18,247 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[New Topics] +[Graduated to "master"] -* df/dir-iter-remove-subtree (2017-04-17) 5 commits - - remove_subtree(): reimplement using iterators - - dir_iterator: refactor state machine model - - dir_iterator: add helpers to dir_iterator_advance - - remove_subtree(): test removing nested directories - - dir_iterator: add tests for dir_iterator API +* ab/grep-plug-pathspec-leak (2017-04-16) 1 commit + (merged to 'next' on 2017-04-18 at d8f00b5e44) + + grep: plug a trivial memory leak - Update the dir-iterator API and use it to reimplement - remove_subtree(). + Call clear_pathspec() to release resources immediately before the + cmd_grep() function returns. - Waiting for response to review. - GSoC microproject. +* ah/diff-files-ours-theirs-doc (2017-04-13) 1 commit + (merged to 'next' on 2017-04-18 at a4f80f0c3f) + + diff-files: document --ours etc. -* jk/ls-files-recurse-submodules-fix (2017-04-18) 2 commits - - ls-files: fix path used when recursing into submodules - - ls-files: fix recurse-submodules with nested submodules + The diff options "--ours", "--theirs" exist for quite some time. + But so far they were not documented. Now they are. - "ls-files --recurse-submodules" did not quite work well in a - project with nested submodules. - Will merge to 'next'. +* bc/object-id (2017-03-31) 20 commits + (merged to 'next' on 2017-04-16 at b16f1899dd) + + Documentation: update and rename api-sha1-array.txt + + Rename sha1_array to oid_array + + Convert sha1_array_for_each_unique and for_each_abbrev to object_id + + Convert sha1_array_lookup to take struct object_id + + Convert remaining callers of sha1_array_lookup to object_id + + Make sha1_array_append take a struct object_id * + + sha1-array: convert internal storage for struct sha1_array to object_id + + builtin/pull: convert to struct object_id + + submodule: convert check_for_new_submodule_commits to object_id + + sha1_name: convert disambiguate_hint_fn to take object_id + + sha1_name: convert struct disambiguate_state to object_id + + test-sha1-array: convert most code to struct object_id + + parse-options-cb: convert sha1_array_append caller to struct object_id + + fsck: convert init_skiplist to struct object_id + + builtin/receive-pack: convert portions to struct object_id + + builtin/pull: convert portions to struct object_id + + builtin/diff: convert to struct object_id + + Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ + + Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ + + Define new hash-size constants for allocating memory + Conversion from unsigned char [40] to struct object_id continues. -* jt/fetch-pack-error-reporting (2017-04-17) 1 commit - - fetch-pack: show clearer error message upon ERR - "git fetch-pack" was not prepared to accept ERR packet that the - upload-pack can send with a human-readable error message. It - showed the packet contents with ERR prefix, so there was no data - loss, but it was redundant to say "ERR" in an error message. +* bw/attr-pathspec (2017-04-16) 1 commit + (merged to 'next' on 2017-04-18 at 2644ca1269) + + pathspec: fix segfault in clear_pathspec - Will merge to 'next'. + Hotfix for a topic already in 'master'. -* nd/conditional-config-in-early-config (2017-04-17) 3 commits - - config: correct file reading order in read_early_config() - - config: handle conditional include when $GIT_DIR is not set up - - config: prepare to pass more info in git_config_with_options() +* bw/push-options-recursively-to-submodules (2017-04-11) 5 commits + (merged to 'next' on 2017-04-16 at d4d657724b) + + push: propagate remote and refspec with --recurse-submodules + + submodule--helper: add push-check subcommand + + remote: expose parse_push_refspec function + + push: propagate push-options with --recurse-submodules + + push: unmark a local variable as static - The recently introduced conditional inclusion of configuration did - not work well when early-config mechanism was involved. + "git push --recurse-submodules --push-option=" learned to + propagate the push option recursively down to pushes in submodules. - Will merge to 'next'. +* bw/submodule-is-active (2017-04-13) 1 commit + (merged to 'next' on 2017-04-18 at 25b05ec29e) + + submodule--helper: fix typo in is_active error message -* sb/checkout-recurse-submodules (2017-04-17) 1 commit - - submodule: remove a superfluous second check for the "new" variable + Error message fix. - Code cleanup. - Will merge to 'next'. +* dt/gc-ignore-old-gc-logs (2017-04-16) 1 commit + (merged to 'next' on 2017-04-18 at caadf4ff66) + + t6500: wait for detached auto gc at the end of the test script + Hotfix for a topic already in 'master'. -* xy/format-patch-base (2017-04-17) 1 commit - - doc: trivial typo in git-format-patch.txt - Doc cleanup. +* jh/memihash-opt (2017-04-18) 4 commits + (merged to 'next' on 2017-04-18 at 6555be6bab) + + p0004: make perf test executable + (merged to 'next' on 2017-04-15 at 6bfc58e19a) + + t3008: skip lazy-init test on a single-core box + + test-online-cpus: helper to return cpu count + (merged to 'next' on 2017-04-11 at ec5a6f2818) + + name-hash: fix buffer overrun - Will merge to 'next'. + Hotfix for a topic that is already in 'master'. -* jk/snprintf-cleanups (2017-04-17) 1 commit - - replace: plug a memory leak +* jk/no-looking-at-dotgit-outside-repo (2017-04-16) 2 commits + (merged to 'next' on 2017-04-18 at 68260787ad) + + test-read-cache: setup git dir + + has_sha1_file: don't bother if we are not in a repository + + Clean up fallouts from recent tightening of the set-up sequence, + where Git barfs when repository information is accessed without + first ensuring that it was started in a repository. + + +* ld/p4-current-branch-fix (2017-04-16) 3 commits + (merged to 'next' on 2017-04-18 at 9e74a2609e) + + git-p4: don't use name-rev to get current branch + + git-p4: add read_pipe_text() internal function + + git-p4: add failing test for name-rev rather than symbolic-ref + + "git p4" used "name-rev HEAD" when it wants to learn what branch is + checked out; it should use "symbolic-ref HEAD". + + +* lt/mailinfo-in-body-header-continuation (2017-04-11) 1 commit + (merged to 'next' on 2017-04-16 at b2f51f0780) + + mailinfo: fix in-body header continuations + + If a patch e-mail had its first paragraph after an in-body header + indented (even after a blank line after the in-body header line), + the indented line was mistook as a continuation of the in-body + header. This has been fixed. + + +* nd/files-backend-git-dir (2017-04-14) 28 commits + (merged to 'next' on 2017-04-18 at 79292aac69) + + refs.h: add a note about sorting order of for_each_ref_* + + t1406: new tests for submodule ref store + + t1405: some basic tests on main ref store + + t/helper: add test-ref-store to test ref-store functions + + refs: delete pack_refs() in favor of refs_pack_refs() + + files-backend: avoid ref api targeting main ref store + + refs: new transaction related ref-store api + + refs: add new ref-store api + + refs: rename get_ref_store() to get_submodule_ref_store() and make it public + + files-backend: replace submodule_allowed check in files_downcast() + + refs: move submodule code out of files-backend.c + + path.c: move some code out of strbuf_git_path_submodule() + + refs.c: make get_main_ref_store() public and use it + + refs.c: kill register_ref_store(), add register_submodule_ref_store() + + refs.c: flatten get_ref_store() a bit + + refs: rename lookup_ref_store() to lookup_submodule_ref_store() + + refs.c: introduce get_main_ref_store() + + files-backend: remove the use of git_path() + + files-backend: add and use files_ref_path() + + files-backend: add and use files_reflog_path() + + files-backend: move "logs/" out of TMP_RENAMED_LOG + + files-backend: convert git_path() to strbuf_git_path() + + files-backend: make sure files_rename_ref() always reach the end + + files-backend: add and use files_packed_refs_path() + + files-backend: delete dead code in files_init_db() + + files-backend.c: delete dead code in files_ref_iterator_begin() + + files-backend: make files_log_ref_write() static + + refs.h: add forward declaration for structs used in this file + (this branch is used by mh/separate-ref-cache, nd/prune-in-worktree and nd/worktree-kill-parse-ref.) + + The "submodule" specific field in the ref_store structure is + replaced with a more generic "gitdir" that can later be used also + when dealing with ref_store that represents the set of refs visible + from the other worktrees. + + +* sb/submodule-rm-absorb (2017-04-13) 1 commit + (merged to 'next' on 2017-04-18 at 179081f848) + + submodule.c: add missing ' in error messages + + Error message fix. + + +* sb/submodule-short-status (2017-03-29) 7 commits + (merged to 'next' on 2017-04-16 at 24e18f4a4a) + + submodule.c: correctly handle nested submodules in is_submodule_modified + + short status: improve reporting for submodule changes + + submodule.c: stricter checking for submodules in is_submodule_modified + + submodule.c: port is_submodule_modified to use porcelain 2 + + submodule.c: convert is_submodule_modified to use strbuf_getwholeline + + submodule.c: factor out early loop termination in is_submodule_modified + + submodule.c: use argv_array in is_submodule_modified + + The output from "git status --short" has been extended to show + various kinds of dirtyness in submodules differently; instead of to + "M" for modified, 'm' and '?' can be shown to signal changes only + to the working tree of the submodule but not the commit that is + checked out. - Hotfix for a topic that is already in 'master'. + +* sf/putty-w-args (2017-04-16) 1 commit + (merged to 'next' on 2017-04-18 at cbf042088c) + + connect.c: handle errors from split_cmdline + + Hotfix for a topic already in 'master'. + + +* va/i18n-perl-scripts (2017-04-13) 1 commit + (merged to 'next' on 2017-04-18 at 89f1c77091) + + git-add--interactive.perl: add missing dot in a message + + Message fix. + + +* vn/revision-shorthand-for-side-branch-log (2017-04-16) 1 commit + (merged to 'next' on 2017-04-18 at 9fbe55bfef) + + doc/revisions: remove brackets from rev^-n shorthand + + Doc cleanup. + +-------------------------------------------------- +[New Topics] + +* ab/push-cas-doc-n-test (2017-04-19) 1 commit + - push: document & test --force-with-lease with multiple remotes + + Doc update. Will merge to 'next'. -* ab/clone-no-tags (2017-04-18) 1 commit - - clone: add a --no-tags option to clone without tags +* jk/parse-options-no-no-no (2017-04-19) 2 commits + - SQUASH??? + - parse-options: disallow double-negations of options starting with no- - "git clone" learned the "--no-tags" option not to fetch all tags - initially, and also set up the tagopt not to follow any tags in - subsequent fetches. + Command line options that begin with "--no-" (e.g. "--no-checkout" + option of "git clone") can be negated by removing "--no-"; we + historically also allowed prefixing an extra "no" to the option + (e.g. "--no-no-checkout"), which made the command line look ugly + and unusual. This proposes to forbid it. + While I agree there is no need to support "--no-no-checkout", this + looks more like "if it looks ugly and unusual, you do not have to + use it". Perhaps we can drop it? -* ab/completion-push-delete-ref (2017-04-18) 1 commit - - completion: expand "push --delete " for refs on that - The completion script (in contrib/) learned to complete "git push - --delete b" to complete branch name to be deleted. +* ss/gitmodules-ignore-doc (2017-04-19) 1 commit + - gitmodules: clarify the ignore option values + Doc update. -* bw/forking-and-threading (2017-04-18) 11 commits - - run-command: block signals between fork and execve - - run-command: add note about forking and threading - - run-command: handle dup2 and close errors in child - - run-command: eliminate calls to error handling functions in child - - run-command: don't die in child when duping /dev/null - - run-command: prepare child environment before forking - - string-list: add string_list_remove function - - run-command: use the async-signal-safe execv instead of execvp - - run-command: prepare command before forking - - t0061: run_command executes scripts without a #! line - - t5550: use write_script to generate post-update hook + Will merge to 'next'. -* sb/reset-recurse-submodules (2017-04-18) 4 commits - - builtin/reset: add --recurse-submodules switch - - submodule.c: submodule_move_head works with broken submodules - - submodule.c: uninitialized submodules are ignored in recursive commands - - entry.c: submodule recursing: respect force flag correctly +* ss/submodule-shallow-doc (2017-04-19) 1 commit + - gitmodules: clarify what history depth a shallow clone has - "git reset" learned "--recurse-submodules" option. + Doc update. + + Will merge to 'next'. -------------------------------------------------- [Stalled] @@ -251,80 +384,185 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* ah/diff-files-ours-theirs-doc (2017-04-13) 1 commit - (merged to 'next' on 2017-04-18 at a4f80f0c3f) - + diff-files: document --ours etc. +* df/dir-iter-remove-subtree (2017-04-19) 5 commits + - remove_subtree(): reimplement using iterators + - dir_iterator: rewrite state machine model + - dir_iterator: refactor dir_iterator_advance + - remove_subtree(): test removing nested directories + - dir_iterator: add tests for dir_iterator API - The diff options "--ours", "--theirs" exist for quite some time. - But so far they were not documented. Now they are. + Update the dir-iterator API and use it to reimplement + remove_subtree(). + + Almost there except for a minor nit. + GSoC microproject. + + +* jk/ls-files-recurse-submodules-fix (2017-04-18) 2 commits + (merged to 'next' on 2017-04-19 at d4682ceaae) + + ls-files: fix path used when recursing into submodules + + ls-files: fix recurse-submodules with nested submodules + + "ls-files --recurse-submodules" did not quite work well in a + project with nested submodules. + + Will merge to 'master'. + + +* jt/fetch-pack-error-reporting (2017-04-17) 1 commit + (merged to 'next' on 2017-04-19 at 6da61f7236) + + fetch-pack: show clearer error message upon ERR + + "git fetch-pack" was not prepared to accept ERR packet that the + upload-pack can send with a human-readable error message. It + showed the packet contents with ERR prefix, so there was no data + loss, but it was redundant to say "ERR" in an error message. + + Will merge to 'master'. + + +* nd/conditional-config-in-early-config (2017-04-19) 3 commits + - config: correct file reading order in read_early_config() + - config: handle conditional include when $GIT_DIR is not set up + - config: prepare to pass more info in git_config_with_options() + + The recently introduced conditional inclusion of configuration did + not work well when early-config mechanism was involved. + + Will merge to 'next'. + + +* sb/checkout-recurse-submodules (2017-04-17) 1 commit + (merged to 'next' on 2017-04-19 at 414e18fd9b) + + submodule: remove a superfluous second check for the "new" variable + + Code cleanup. + + Will merge to 'master'. + + +* xy/format-patch-base (2017-04-17) 1 commit + (merged to 'next' on 2017-04-19 at c10723d486) + + doc: trivial typo in git-format-patch.txt + + Doc cleanup. + + Will merge to 'master'. + + +* jk/snprintf-cleanups (2017-04-17) 1 commit + (merged to 'next' on 2017-04-19 at 4a18ea9971) + + replace: plug a memory leak + + Hotfix for a topic that is already in 'master'. + + Will merge to 'master'. + + +* ab/clone-no-tags (2017-04-19) 1 commit + - clone: add a --no-tags option to clone without tags + + "git clone" learned the "--no-tags" option not to fetch all tags + initially, and also set up the tagopt not to follow any tags in + subsequent fetches. + + Will merge to 'next'. + + +* ab/completion-push-delete-ref (2017-04-18) 1 commit + - completion: expand "push --delete " for refs on that + + The completion script (in contrib/) learned to complete "git push + --delete b" to complete branch name to be deleted. + + Will merge to 'next'. + + +* bw/forking-and-threading (2017-04-19) 11 commits + - run-command: block signals between fork and execve + - run-command: add note about forking and threading + - run-command: handle dup2 and close errors in child + - run-command: eliminate calls to error handling functions in child + - run-command: don't die in child when duping /dev/null + - run-command: prepare child environment before forking + - string-list: add string_list_remove function + - run-command: use the async-signal-safe execv instead of execvp + - run-command: prepare command before forking + - t0061: run_command executes scripts without a #! line + - t5550: use write_script to generate post-update hook + + The "run-command" APIimplementation has been made more robust + against dead-locking in a threaded environment. + + Will merge to 'next'. + + +* sb/reset-recurse-submodules (2017-04-18) 4 commits + - builtin/reset: add --recurse-submodules switch + - submodule.c: submodule_move_head works with broken submodules + - submodule.c: uninitialized submodules are ignored in recursive commands + - entry.c: submodule recursing: respect force flag correctly - Will merge to 'master'. + "git reset" learned "--recurse-submodules" option. * dt/xgethostname-nul-termination (2017-04-18) 2 commits - - xgethostname: handle long hostnames - - use HOST_NAME_MAX to size buffers for gethostname(2) + (merged to 'next' on 2017-04-19 at 4035f442cc) + + xgethostname: handle long hostnames + + use HOST_NAME_MAX to size buffers for gethostname(2) gethostname(2) may not NUL terminate the buffer if hostname does not fit; unfortunately there is no easy way to see if our buffer was too small, but at least this will make sure we will not end up using garbage past the end of the buffer. - Will merge to 'next'. + Will merge to 'master'. * jh/string-list-micro-optim (2017-04-15) 1 commit - - string-list: use ALLOC_GROW macro when reallocing string_list + (merged to 'next' on 2017-04-19 at 2a5e339df9) + + string-list: use ALLOC_GROW macro when reallocing string_list The string-list API used a custom reallocation strategy that was very inefficient, instead of using the usual ALLOC_GROW() macro, which has been fixed. - Will merge to 'next'. + Will merge to 'master'. * jh/unpack-trees-micro-optim (2017-04-15) 1 commit - - unpack-trees: avoid duplicate ODB lookups during checkout + (merged to 'next' on 2017-04-19 at 970c47a2f9) + + unpack-trees: avoid duplicate ODB lookups during checkout In a 2- and 3-way merge of trees, more than one source trees often end up sharing an identical subtree; optimize by not reading the same tree multiple times in such a case. - Will merge to 'next'. + Will merge to 'master'. * jh/verify-index-checksum-only-in-fsck (2017-04-15) 1 commit - - read-cache: force_verify_index_checksum + (merged to 'next' on 2017-04-19 at a089b97d34) + + read-cache: force_verify_index_checksum The index file has a trailing SHA-1 checksum to detect file corruption, and historically we checked it every time the index file is used. Omit the validation during normal use, and instead verify only in "git fsck". - Will merge to 'next'. - - -* jk/no-looking-at-dotgit-outside-repo (2017-04-16) 2 commits - (merged to 'next' on 2017-04-18 at 68260787ad) - + test-read-cache: setup git dir - + has_sha1_file: don't bother if we are not in a repository - - Clean up fallouts from recent tightening of the set-up sequence, - where Git barfs when repository information is accessed without - first ensuring that it was started in a repository. - Will merge to 'master'. * ls/travis-doc-asciidoctor (2017-04-16) 3 commits - - travis-ci: unset compiler for jobs that do not need one - - travis-ci: parallelize documentation build - - travis-ci: build documentation with AsciiDoc and Asciidoctor + (merged to 'next' on 2017-04-19 at 359c32953b) + + travis-ci: unset compiler for jobs that do not need one + + travis-ci: parallelize documentation build + + travis-ci: build documentation with AsciiDoc and Asciidoctor Have Travis CI format the documentation with both AsciiDoc and AsciiDoctor. - Will merge to 'next'. + Will merge to 'master'. * mg/status-in-progress-info (2017-04-14) 1 commit @@ -333,16 +571,20 @@ of the repositories listed at "git status" learns an option to report various operations (e.g. "merging") that the user is in the middle of. + Waiting for final confirmation. + cf. + * nd/conditional-config-include (2017-04-14) 2 commits - - config: resolve symlinks in conditional include's patterns - - path.c: and an option to call real_path() in expand_user_path() + (merged to 'next' on 2017-04-19 at 2e94c40b46) + + config: resolve symlinks in conditional include's patterns + + path.c: and an option to call real_path() in expand_user_path() $GIT_DIR may in some cases be normalized with all symlinks resolved while "gitdir" path expansion in the pattern does not receive the same treatment, leading to incorrect mismatch. This has been fixed. - Will merge to 'next'. + Will merge to 'master'. * nd/worktree-add-lock (2017-04-16) 2 commits @@ -359,63 +601,43 @@ of the repositories listed at * ps/pathspec-empty-prefix-origin (2017-04-14) 1 commit - pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix + A recent update broke "git add -p ../foo" from a subdirectory. -* sb/submodule-rm-absorb (2017-04-13) 1 commit - (merged to 'next' on 2017-04-18 at 179081f848) - + submodule.c: add missing ' in error messages - - Error message fix. - - Will merge to 'master'. + Will merge to 'next'. * sr/http-proxy-configuration-fix (2017-04-13) 2 commits - - http: fix the silent ignoring of proxy misconfiguraion - - http: honor empty http.proxy option to bypass proxy + (merged to 'next' on 2017-04-19 at d8f507e951) + + http: fix the silent ignoring of proxy misconfiguraion + + http: honor empty http.proxy option to bypass proxy "http.proxy" set to an empty string is used to disable the usage of proxy. We broke this early last year. - Will merge to 'next'. + Will merge to 'master'. * tb/doc-eol-normalization (2017-04-13) 1 commit - - gitattributes.txt: document how to normalize the line endings + (merged to 'next' on 2017-04-19 at fe15d04d0a) + + gitattributes.txt: document how to normalize the line endings Doc update. - Will merge to 'next'. - - -* va/i18n-perl-scripts (2017-04-13) 1 commit - (merged to 'next' on 2017-04-18 at 89f1c77091) - + git-add--interactive.perl: add missing dot in a message - - Message fix. - - Will merge to 'master'. - - -* bw/submodule-is-active (2017-04-13) 1 commit - (merged to 'next' on 2017-04-18 at 25b05ec29e) - + submodule--helper: fix typo in is_active error message - - Error message fix. - Will merge to 'master'. * gb/rebase-signoff (2017-04-18) 3 commits - - rebase: pass --[no-]signoff option to git am - - builtin/am: fold am_signoff() into am_append_signoff() - - builtin/am: honor --signoff also when --rebasing + (merged to 'next' on 2017-04-19 at c3c04e6a71) + + rebase: pass --[no-]signoff option to git am + + builtin/am: fold am_signoff() into am_append_signoff() + + builtin/am: honor --signoff also when --rebasing "git rebase" learns "--signoff" option. - Will merge to 'next'. + Will merge to 'master'. -* jh/add-index-entry-optim (2017-04-17) 5 commits +* jh/add-index-entry-optim (2017-04-19) 5 commits - read-cache: speed up has_dir_name (part 2) - read-cache: speed up has_dir_name (part 1) - read-cache: speed up add_index_entry during checkout @@ -429,16 +651,6 @@ of the repositories listed at Will merge to 'next'. -* ab/grep-plug-pathspec-leak (2017-04-16) 1 commit - (merged to 'next' on 2017-04-18 at d8f00b5e44) - + grep: plug a trivial memory leak - - Call clear_pathspec() to release resources immediately before the - cmd_grep() function returns. - - Will merge to 'master'. - - * ab/grep-threading-cleanup (2017-04-16) 8 commits - grep: given --threads with NO_PTHREADS=YesPlease, warn - pack-objects: fix buggy warning about threads under NO_PTHREADS=YesPlease @@ -450,58 +662,33 @@ of the repositories listed at - grep: assert that threading is enabled when calling grep_{lock,unlock} -* bw/attr-pathspec (2017-04-16) 1 commit - (merged to 'next' on 2017-04-18 at 2644ca1269) - + pathspec: fix segfault in clear_pathspec - - Will merge to 'master'. - Hotfix for a topic already in 'master'. - - * bw/submodule-with-bs-path (2017-04-16) 1 commit - - submodule: prevent backslash expantion in submodule names + (merged to 'next' on 2017-04-19 at 692775477b) + + submodule: prevent backslash expantion in submodule names "git submodule" script does not work well with strange pathnames. Protect it from a path with slashes in them, at least. - Will merge to 'next'. - - -* dt/gc-ignore-old-gc-logs (2017-04-16) 1 commit - (merged to 'next' on 2017-04-18 at caadf4ff66) - + t6500: wait for detached auto gc at the end of the test script - Will merge to 'master'. - Hotfix for a topic already in 'master'. * jk/loose-object-fsck (2017-04-16) 1 commit - - sha1_file: remove an used fd variable + (merged to 'next' on 2017-04-19 at 0cc7810018) + + sha1_file: remove an used fd variable Code cleanup. - Will merge to 'next'. + Will merge to 'master'. * jk/quarantine-received-objects (2017-04-16) 3 commits - - refs: reject ref updates while GIT_QUARANTINE_PATH is set - - receive-pack: document user-visible quarantine effects - - receive-pack: drop tmp_objdir_env from run_update_hook + (merged to 'next' on 2017-04-19 at 2c6fcf1d6d) + + refs: reject ref updates while GIT_QUARANTINE_PATH is set + + receive-pack: document user-visible quarantine effects + + receive-pack: drop tmp_objdir_env from run_update_hook Add finishing touches to a recent topic. - Will merge to 'next'. - - -* ld/p4-current-branch-fix (2017-04-16) 3 commits - (merged to 'next' on 2017-04-18 at 9e74a2609e) - + git-p4: don't use name-rev to get current branch - + git-p4: add read_pipe_text() internal function - + git-p4: add failing test for name-rev rather than symbolic-ref - - "git p4" used "name-rev HEAD" when it wants to learn what branch is - checked out; it should use "symbolic-ref HEAD". - Will merge to 'master'. @@ -510,76 +697,37 @@ of the repositories listed at Travis CI learns to run coccicheck. + Will merge to 'next'. + * rs/misc-cppcheck-fixes (2017-04-17) 3 commits - - server-info: avoid calling fclose(3) twice in update_info_file() - - files_for_each_reflog_ent_reverse(): close stream and free strbuf on error - - am: close stream on error, but not stdin + (merged to 'next' on 2017-04-19 at e8fca7f593) + + server-info: avoid calling fclose(3) twice in update_info_file() + + files_for_each_reflog_ent_reverse(): close stream and free strbuf on error + + am: close stream on error, but not stdin - Will merge to 'next'. Various small fixes. - -* sf/putty-w-args (2017-04-16) 1 commit - (merged to 'next' on 2017-04-18 at cbf042088c) - + connect.c: handle errors from split_cmdline - Will merge to 'master'. - Hotfix for a topic already in 'master'. * km/t1400-modernization (2017-04-16) 1 commit - - t1400: use consistent style for test_expect_success calls + (merged to 'next' on 2017-04-19 at 7490be39bf) + + t1400: use consistent style for test_expect_success calls Code cleanup. - Will merge to 'next'. - - -* vn/revision-shorthand-for-side-branch-log (2017-04-16) 1 commit - (merged to 'next' on 2017-04-18 at 9fbe55bfef) - + doc/revisions: remove brackets from rev^-n shorthand - - Doc cleanup. - Will merge to 'master'. * dt/http-postbuffer-can-be-large (2017-04-13) 1 commit - - http.postbuffer: allow full range of ssize_t values + (merged to 'next' on 2017-04-19 at dc9de26fc9) + + http.postbuffer: allow full range of ssize_t values Allow the http.postbuffer configuration variable to be set to a size that can be expressed in size_t, which can be larger than ulong on some platforms. - Will merge to 'next'. - - -* jh/memihash-opt (2017-04-18) 4 commits - (merged to 'next' on 2017-04-18 at 6555be6bab) - + p0004: make perf test executable - (merged to 'next' on 2017-04-15 at 6bfc58e19a) - + t3008: skip lazy-init test on a single-core box - + test-online-cpus: helper to return cpu count - (merged to 'next' on 2017-04-11 at ec5a6f2818) - + name-hash: fix buffer overrun - - Hotfix for a topic that is already in 'master'. - - Will merge to 'master'. - - -* bw/push-options-recursively-to-submodules (2017-04-11) 5 commits - (merged to 'next' on 2017-04-16 at d4d657724b) - + push: propagate remote and refspec with --recurse-submodules - + submodule--helper: add push-check subcommand - + remote: expose parse_push_refspec function - + push: propagate push-options with --recurse-submodules - + push: unmark a local variable as static - - "git push --recurse-submodules --push-option=" learned to - propagate the push option recursively down to pushes in submodules. - Will merge to 'master'. @@ -591,17 +739,7 @@ of the repositories listed at us to fail to notice a breakage; rewrite tests in a script to avoid this issue. - -* lt/mailinfo-in-body-header-continuation (2017-04-11) 1 commit - (merged to 'next' on 2017-04-16 at b2f51f0780) - + mailinfo: fix in-body header continuations - - If a patch e-mail had its first paragraph after an in-body header - indented (even after a blank line after the in-body header line), - the indented line was mistook as a continuation of the in-body - header. This has been fixed. - - Will merge to 'master'. + Will merge to 'next'. * bp/sub-process-convert-filter (2017-03-30) 8 commits @@ -644,53 +782,6 @@ of the repositories listed at cf. -* bc/object-id (2017-03-31) 20 commits - (merged to 'next' on 2017-04-16 at b16f1899dd) - + Documentation: update and rename api-sha1-array.txt - + Rename sha1_array to oid_array - + Convert sha1_array_for_each_unique and for_each_abbrev to object_id - + Convert sha1_array_lookup to take struct object_id - + Convert remaining callers of sha1_array_lookup to object_id - + Make sha1_array_append take a struct object_id * - + sha1-array: convert internal storage for struct sha1_array to object_id - + builtin/pull: convert to struct object_id - + submodule: convert check_for_new_submodule_commits to object_id - + sha1_name: convert disambiguate_hint_fn to take object_id - + sha1_name: convert struct disambiguate_state to object_id - + test-sha1-array: convert most code to struct object_id - + parse-options-cb: convert sha1_array_append caller to struct object_id - + fsck: convert init_skiplist to struct object_id - + builtin/receive-pack: convert portions to struct object_id - + builtin/pull: convert portions to struct object_id - + builtin/diff: convert to struct object_id - + Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ - + Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ - + Define new hash-size constants for allocating memory - - Conversion from unsigned char [40] to struct object_id continues. - - Will merge to 'master'. - - -* sb/submodule-short-status (2017-03-29) 7 commits - (merged to 'next' on 2017-04-16 at 24e18f4a4a) - + submodule.c: correctly handle nested submodules in is_submodule_modified - + short status: improve reporting for submodule changes - + submodule.c: stricter checking for submodules in is_submodule_modified - + submodule.c: port is_submodule_modified to use porcelain 2 - + submodule.c: convert is_submodule_modified to use strbuf_getwholeline - + submodule.c: factor out early loop termination in is_submodule_modified - + submodule.c: use argv_array in is_submodule_modified - - The output from "git status --short" has been extended to show - various kinds of dirtyness in submodules differently; instead of to - "M" for modified, 'm' and '?' can be shown to signal changes only - to the working tree of the submodule but not the commit that is - checked out. - - Will merge to 'master'. - - * mh/separate-ref-cache (2017-04-16) 20 commits - do_for_each_entry_in_dir(): delete function - files_pack_refs(): use reference iteration @@ -712,12 +803,11 @@ of the repositories listed at - refs_ref_iterator_begin(): new function - refs_read_raw_ref(): new function - get_ref_dir(): don't call read_loose_refs() for "refs/bisect" - (this branch uses nd/files-backend-git-dir; is tangled with nd/prune-in-worktree and nd/worktree-kill-parse-ref.) The internals of the refs API around the cached refs has been streamlined. - Waiting for nd/files-backend-git-dir to settle. + Will merge to 'next'. * ja/doc-l10n (2017-03-20) 3 commits @@ -728,7 +818,7 @@ of the repositories listed at A proposal to use po4a to localize our manual pages. -* nd/prune-in-worktree (2017-04-16) 12 commits +* nd/prune-in-worktree (2017-04-19) 12 commits - 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 @@ -741,7 +831,7 @@ of the repositories listed at - revision.c: --indexed-objects add objects from all worktrees - revision.c: refactor add_index_objects_to_pending() - revision.h: new flag in struct rev_info wrt. worktree-related refs - (this branch uses nd/files-backend-git-dir and nd/worktree-kill-parse-ref; is tangled with mh/separate-ref-cache.) + (this branch uses nd/worktree-kill-parse-ref.) "git gc" and friends when multiple worktrees are used off of a single repository did not consider the index and per-worktree refs @@ -749,7 +839,7 @@ of the repositories listed at objects that are in use only in other worktrees to be subject to garbage collection. - Waiting for nd/files-backend-git-dir to settle. + Waiting for nd/worktree-kill-parse-ref to settle. * nd/worktree-kill-parse-ref (2017-04-16) 5 commits @@ -758,52 +848,12 @@ of the repositories listed at - refs: introduce get_worktree_ref_store() - refs.c: make submodule ref store hashmap generic - environment.c: fix potential segfault by get_git_common_dir() - (this branch is used by nd/prune-in-worktree; uses nd/files-backend-git-dir; is tangled with mh/separate-ref-cache.) - - (hopefully) a beginning of safer "git worktree" that is resistant - to "gc". - - Waiting for nd/files-backend-git-dir to settle. - - -* nd/files-backend-git-dir (2017-04-14) 28 commits - (merged to 'next' on 2017-04-18 at 79292aac69) - + refs.h: add a note about sorting order of for_each_ref_* - + t1406: new tests for submodule ref store - + t1405: some basic tests on main ref store - + t/helper: add test-ref-store to test ref-store functions - + refs: delete pack_refs() in favor of refs_pack_refs() - + files-backend: avoid ref api targeting main ref store - + refs: new transaction related ref-store api - + refs: add new ref-store api - + refs: rename get_ref_store() to get_submodule_ref_store() and make it public - + files-backend: replace submodule_allowed check in files_downcast() - + refs: move submodule code out of files-backend.c - + path.c: move some code out of strbuf_git_path_submodule() - + refs.c: make get_main_ref_store() public and use it - + refs.c: kill register_ref_store(), add register_submodule_ref_store() - + refs.c: flatten get_ref_store() a bit - + refs: rename lookup_ref_store() to lookup_submodule_ref_store() - + refs.c: introduce get_main_ref_store() - + files-backend: remove the use of git_path() - + files-backend: add and use files_ref_path() - + files-backend: add and use files_reflog_path() - + files-backend: move "logs/" out of TMP_RENAMED_LOG - + files-backend: convert git_path() to strbuf_git_path() - + files-backend: make sure files_rename_ref() always reach the end - + files-backend: add and use files_packed_refs_path() - + files-backend: delete dead code in files_init_db() - + files-backend.c: delete dead code in files_ref_iterator_begin() - + files-backend: make files_log_ref_write() static - + refs.h: add forward declaration for structs used in this file - (this branch is used by mh/separate-ref-cache, nd/prune-in-worktree and nd/worktree-kill-parse-ref.) + (this branch is used by nd/prune-in-worktree.) - The "submodule" specific field in the ref_store structure is - replaced with a more generic "gitdir" that can later be used also - when dealing with ref_store that represents the set of refs visible - from the other worktrees. + "git gc" did not interact well with "git worktree"-managed + per-worktree refs. - Will merge to 'master'. + Will merge to 'next'. * jc/bundle (2016-03-03) 6 commits @@ -817,27 +867,3 @@ of the repositories listed at The beginning of "split bundle", which could be one of the ingredients to allow "git clone" traffic off of the core server network to CDN. - --------------------------------------------------- -[Discarded] - -* jc/name-rev (2017-03-16) 2 commits - . name-rev: favor describing with tags and use committer date to tiebreak - . name-rev: refactor logic to see if a new candidate is a better name - - "git name-rev" penalized lightweight tags too much, making them - almost useless especially when the command is run with "--tags". - Give the same precedence to lightweight tags as annotated tags as - the base for naming a commit. - - Now part of mg/name-rev-debug topic. - - -* jc/p4-current-branch-fix (2017-03-27) 2 commits - . DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch - . git-p4: add failing test for name-rev rather than symbolic-ref - - "git p4" used "name-rev HEAD" when it wants to learn what branch is - checked out; it should use "symbolic-ref HEAD". - - Superseded by the ld/p4-current-branch-fix topic. -- 2.47.3