From 8f3c0e7789bee99a10b9aadebe55e8bb62620a03 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 27 Apr 2017 11:46:00 +0900 Subject: [PATCH] What's cooking (2017/04 #06) --- whats-cooking.txt | 824 ++++++++++++++++++++-------------------------- 1 file changed, 349 insertions(+), 475 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 25cc1da873..6f434e156e 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, #05; Tue, 25) -X-master-at: e2cb6ab84c94f147f1259260961513b40c36108a -X-next-at: 87b477812d19226f71786936237a1aa4e7df378e +Subject: What's cooking in git.git (Apr 2017, #06; Wed, 26) +X-master-at: 027a3b943b444a3e3a76f9a89803fc10245b858f +X-next-at: 01180b72fb0ab3645b79bab9296e451329296545 -What's cooking in git.git (Apr 2017, #05; Tue, 25) +What's cooking in git.git (Apr 2017, #06; Wed, 26) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,6 +12,12 @@ 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. +2.13-rc1 was tagged and we are now in a pre-release freeze. The +topics marked to be merged to 'next' in the list below may be merged +to 'next' as usual, but the ones marked for 'master' may stay in +'next' until the final release, unless they are small bug/doc fixes +or hotfixes to topics that are already in -rc1 from now on. + You can find the changes described here in the integration branches of the repositories listed at @@ -20,165 +26,314 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* jh/verify-index-checksum-only-in-fsck (2017-04-15) 1 commit - (merged to 'next' on 2017-04-19 at a089b97d34) - + read-cache: force_verify_index_checksum +* ab/completion-push-delete-ref (2017-04-23) 1 commit + (merged to 'next' on 2017-04-23 at e227df80bf) + + completion: expand "push --delete " for refs on that - 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". + The completion script (in contrib/) learned to complete "git push + --delete b" to complete branch name to be deleted. - There is an update to the test script as a follow-up. +* ab/push-cas-doc-n-test (2017-04-19) 1 commit + (merged to 'next' on 2017-04-23 at 0ef31ab624) + + push: document & test --force-with-lease with multiple remotes -* bw/submodule-with-bs-path (2017-04-16) 1 commit - (merged to 'next' on 2017-04-19 at 692775477b) - + submodule: prevent backslash expantion in submodule names + Doc update. - "git submodule" script does not work well with strange pathnames. - Protect it from a path with slashes in them, at least. +* cc/split-index-config (2017-04-20) 1 commit + (merged to 'next' on 2017-04-23 at 5996ddc3f2) + + read-cache: avoid using git_path() in freshen_shared_index() -* dt/http-postbuffer-can-be-large (2017-04-13) 1 commit - (merged to 'next' on 2017-04-19 at dc9de26fc9) - + http.postbuffer: allow full range of ssize_t values + The split-index code configuration code used an unsafe git_path() + function without copying its result out. - 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. +* gb/rebase-signoff (2017-04-18) 3 commits + (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 -* dt/xgethostname-nul-termination (2017-04-18) 2 commits - (merged to 'next' on 2017-04-19 at 4035f442cc) - + xgethostname: handle long hostnames - + use HOST_NAME_MAX to size buffers for gethostname(2) + "git rebase" learns "--signoff" option. - 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. +* jh/add-index-entry-optim (2017-04-19) 5 commits + (merged to 'next' on 2017-04-23 at 295d4066a8) + + 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 + + p0006-read-tree-checkout: perf test to time read-tree + + read-cache: add strcmp_offset function -* jh/string-list-micro-optim (2017-04-15) 1 commit - (merged to 'next' on 2017-04-19 at 2a5e339df9) - + string-list: use ALLOC_GROW macro when reallocing string_list + "git checkout" that handles a lot of paths has been optimized by + reducing the number of unnecessary checks of paths in the + has_dir_name() function. - 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. +* jk/update-links-in-docs (2017-04-20) 6 commits + (merged to 'next' on 2017-04-23 at f64249bbdf) + + docs/bisect-lk2009: update java code conventions link + + docs/bisect-lk2009: update nist report link + + docs/archimport: quote sourcecontrol.net reference + + gitcore-tutorial: update broken link + + doc: replace or.cz gitwiki link with git.wiki.kernel.org + + doc: use https links to avoid http redirect -* jh/unpack-trees-micro-optim (2017-04-15) 1 commit - (merged to 'next' on 2017-04-19 at 970c47a2f9) - + unpack-trees: avoid duplicate ODB lookups during checkout + Many stale HTTP(s) links have been updated in our documentation. - 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. +* jk/war-on-git-path (2017-04-20) 6 commits + (merged to 'next' on 2017-04-23 at 212e0a58ff) + + am: drop "dir" parameter from am_state_init + + replace strbuf_addstr(git_path()) with git_path_buf() + + replace xstrdup(git_path(...)) with git_pathdup(...) + + use git_path_* helper functions + + branch: add edit_description() helper + + bisect: add git_path_bisect_terms helper -* jk/loose-object-fsck (2017-04-16) 1 commit - (merged to 'next' on 2017-04-19 at 0cc7810018) - + sha1_file: remove an used fd variable + While handy, "git_path()" is a dangerous function to use as a + callsite that uses it safely one day can be broken by changes + to other code that calls it. Reduction of its use continues. - Code cleanup. +* ls/travis-coccicheck (2017-04-16) 1 commit + (merged to 'next' on 2017-04-23 at fa42ffe6b2) + + travis-ci: add static analysis build job to run coccicheck -* 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 + Travis CI learns to run coccicheck. - "ls-files --recurse-submodules" did not quite work well in a - project with nested submodules. +* mh/separate-ref-cache (2017-04-16) 20 commits + (merged to 'next' on 2017-04-23 at bd74983456) + + do_for_each_entry_in_dir(): delete function + + files_pack_refs(): use reference iteration + + commit_packed_refs(): use reference iteration + + cache_ref_iterator_begin(): make function smarter + + get_loose_ref_cache(): new function + + get_loose_ref_dir(): function renamed from get_loose_refs() + + do_for_each_entry_in_dir(): eliminate `offset` argument + + refs: handle "refs/bisect/" in `loose_fill_ref_dir()` + + ref-cache: use a callback function to fill the cache + + refs: record the ref_store in ref_cache, not ref_dir + + ref-cache: introduce a new type, ref_cache + + refs: split `ref_cache` code into separate files + + ref-cache: rename `remove_entry()` to `remove_entry_from_dir()` + + ref-cache: rename `find_ref()` to `find_ref_entry()` + + ref-cache: rename `add_ref()` to `add_ref_entry()` + + refs_verify_refname_available(): use function in more places + + refs_verify_refname_available(): implement once for all backends + + refs_ref_iterator_begin(): new function + + refs_read_raw_ref(): new function + + get_ref_dir(): don't call read_loose_refs() for "refs/bisect" -* jk/quarantine-received-objects (2017-04-16) 3 commits - (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 + The internals of the refs API around the cached refs has been + streamlined. - Add finishing touches to a recent topic. +* nd/conditional-config-in-early-config (2017-04-19) 3 commits + (merged to 'next' on 2017-04-23 at 1803ee72a9) + + 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() -* jk/snprintf-cleanups (2017-04-17) 1 commit - (merged to 'next' on 2017-04-19 at 4a18ea9971) - + replace: plug a memory leak + The recently introduced conditional inclusion of configuration did + not work well when early-config mechanism was involved. - Hotfix for a topic that is already in 'master'. +* nd/worktree-add-lock (2017-04-20) 1 commit + (merged to 'next' on 2017-04-23 at 160b955fbb) + + worktree add: add --lock option -* 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 + Allow to lock a worktree immediately after it's created. This helps + prevent a race between "git worktree add; git worktree lock" and + "git worktree prune". - "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. +* pc/t2027-git-to-pipe-cleanup (2017-04-14) 1 commit + (merged to 'next' on 2017-04-23 at b5c28345a9) + + t2027: avoid using pipes -* km/t1400-modernization (2017-04-16) 1 commit - (merged to 'next' on 2017-04-19 at 7490be39bf) - + t1400: use consistent style for test_expect_success calls + Having a git command on the upstream side of a pipe in a test + script will hide the exit status from the command, which may cause + us to fail to notice a breakage; rewrite tests in a script to avoid + this issue. - Code cleanup. +* ps/pathspec-empty-prefix-origin (2017-04-14) 1 commit + (merged to 'next' on 2017-04-23 at b91098d1f7) + + pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix -* nd/conditional-config-include (2017-04-14) 2 commits - (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() + A recent update broke "git add -p ../foo" from a subdirectory. - $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. +* sf/putty-w-args (2017-04-20) 1 commit + (merged to 'next' on 2017-04-23 at fdafbe6b73) + + connect.c: fix leak in handle_ssh_variant -* rs/misc-cppcheck-fixes (2017-04-17) 3 commits - (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 + Plug a memleak. - Various small fixes. +* ss/gitmodules-ignore-doc (2017-04-19) 1 commit + (merged to 'next' on 2017-04-23 at 3963ab5013) + + gitmodules: clarify the ignore option values -* 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 + Doc update. - Code cleanup. +* ss/submodule-shallow-doc (2017-04-19) 1 commit + (merged to 'next' on 2017-04-23 at 56a80f913d) + + gitmodules: clarify what history depth a shallow clone has -* sr/http-proxy-configuration-fix (2017-04-13) 2 commits - (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 + Doc update. - "http.proxy" set to an empty string is used to disable the usage of - proxy. We broke this early last year. +-------------------------------------------------- +[New Topics] +* jc/repack-threads (2017-04-27) 1 commit + - repack: accept --threads= and pass it down to pack-objects -* tb/doc-eol-normalization (2017-04-13) 1 commit - (merged to 'next' on 2017-04-19 at fe15d04d0a) - + gitattributes.txt: document how to normalize the line endings + "git repack" learned to accept the --threads= option and pass it + to pack-objects. - Doc update. + +* ls/travis-stricter-linux32-builds (2017-04-27) 1 commit + - travis-ci: set DEVELOPER knob for Linux32 build + + 32-bit Linux build on Travis CI uses stricter compilation options. + + Will merge to 'next'. + + +* ls/travis-win-fix-status (2017-04-26) 1 commit + - travis-ci: printf $STATUS as string + + Relaying status from Windows build by Travis CI was done with an + unsafe invocation of printf. + + Will merge to 'next'. -* 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 +* sh/rebase-i-reread-todo-after-exec (2017-04-27) 1 commit + - rebase -i: reread the todo list if `exec` touched it - Doc cleanup. + "git rebase -i" failed to re-read the todo list file when the + command specified with the `exec` instruction updated it. + + Will merge to 'next'. -------------------------------------------------- -[New Topics] +[Stalled] -* jh/verify-index-checksum-only-in-fsck (2017-04-25) 1 commit +* sg/clone-refspec-from-command-line-config (2017-02-27) 1 commit + - clone: respect configured fetch respecs during initial fetch + + Expecting a reroll. + cf. <20170227211217.73gydlxb2qu2sp3m@sigill.intra.peff.net> + cf. + Some nits but looks ok. + + +* sk/dash-is-previous (2017-03-01) 5 commits + - revert.c: delegate handling of "-" shorthand to setup_revisions + - sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}" + - revision.c: args starting with "-" might be a revision + - revision.c: swap if/else blocks + - revision.c: do not update argv with unknown option + + A dash "-" can be written to mean "the branch that was previously + checked out" in more places. + + Needs review. + cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com> + + +* ls/filter-process-delayed (2017-03-06) 1 commit + - convert: add "status=delayed" to filter process protocol + + What's the status of this one??? + cf. + + +* pb/bisect (2017-02-18) 28 commits + . fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C + . bisect--helper: remove the dequote in bisect_start() + . bisect--helper: retire `--bisect-auto-next` subcommand + . bisect--helper: retire `--bisect-autostart` subcommand + . bisect--helper: retire `--bisect-write` subcommand + . bisect--helper: `bisect_replay` shell function in C + . bisect--helper: `bisect_log` shell function in C + . bisect--helper: retire `--write-terms` subcommand + . bisect--helper: retire `--check-expected-revs` subcommand + . bisect--helper: `bisect_state` & `bisect_head` shell function in C + . bisect--helper: `bisect_autostart` shell function in C + . bisect--helper: retire `--next-all` subcommand + . bisect--helper: retire `--bisect-clean-state` subcommand + . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C + . t6030: no cleanup with bad merge base + . bisect--helper: `bisect_start` shell function partially in C + . bisect--helper: `get_terms` & `bisect_terms` shell function in C + . bisect--helper: `bisect_next_check` & bisect_voc shell function in C + . bisect--helper: `check_and_set_terms` shell function in C + . bisect--helper: `bisect_write` shell function in C + . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C + . bisect--helper: `bisect_reset` shell function in C + . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file() + . t6030: explicitly test for bisection cleanup + . bisect--helper: `bisect_clean_state` shell function in C + . bisect--helper: `write_terms` shell function in C + . bisect: rewrite `check_term_format` shell function in C + . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL + + Move more parts of "git bisect" to C. + + Ejected from 'pu', as it overlaps and gets in the way of bc/object-id topic. + Expecting a reroll. + cf. + cf. + cf. + + +* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits + - grep: use '/' delimiter for paths + - grep: only add delimiter if there isn't one already + + "git grep", when fed a tree-ish as an input, shows each hit + prefixed with ":::". As is + almost always either a commit or a tag that points at a commit, the + early part of the output ":" can be used as the + name of the blob and given to "git show". When is a + tree given in the extended SHA-1 syntax (e.g. ":", or + ":"), however, this results in a string that does not + name a blob (e.g. "::" or "::"). + "git grep" has been taught to be a bit more intelligent about these + cases and omit a colon (in the former case) or use slash (in the + latter case) to produce ":" and + ":/" that can be used as the name of a blob. + + Expecting a reroll? Is this good enough with known limitations? + + +* jc/diff-b-m (2015-02-23) 5 commits + . WIPWIP + . WIP: diff-b-m + - diffcore-rename: allow easier debugging + - diffcore-rename.c: add locate_rename_src() + - diffcore-break: allow debugging + + "git diff -B -M" produced incorrect patch when the postimage of a + completely rewritten file is similar to the preimage of a removed + file; such a resulting file must not be expressed as a rename from + other place. + + The fix in this patch is broken, unfortunately. + + Will discard. + +-------------------------------------------------- +[Cooking] + +* jh/verify-index-checksum-only-in-fsck (2017-04-27) 1 commit - t1450: avoid use of "sed" on the index, which is a binary file Update an unportable constructin a new test. @@ -187,29 +342,14 @@ of the repositories listed at * dt/gc-ignore-old-gc-logs (2017-04-24) 3 commits - - test-lib: retire $remove_trash variable - - test-lib.sh: do not barf under --debug at the end of the test - - test-lib: abort when can't remove trash directory + (merged to 'next' on 2017-04-26 at 4f4cab8368) + + test-lib: retire $remove_trash variable + + test-lib.sh: do not barf under --debug at the end of the test + + test-lib: abort when can't remove trash directory An attempt to allow us notice "fishy" situation where we fail to remove the temporary directory used during the test. - Will merge to 'next'. - - -* jk/war-on-git-path (2017-04-20) 6 commits - (merged to 'next' on 2017-04-23 at 212e0a58ff) - + am: drop "dir" parameter from am_state_init - + replace strbuf_addstr(git_path()) with git_path_buf() - + replace xstrdup(git_path(...)) with git_pathdup(...) - + use git_path_* helper functions - + branch: add edit_description() helper - + bisect: add git_path_bisect_terms helper - - While handy, "git_path()" is a dangerous function to use as a - callsite that uses it safely one day can be broken by changes - to other code that calls it. Reduction of its use continues. - Will merge to 'master'. @@ -244,17 +384,19 @@ of the repositories listed at * dt/raise-core-packed-git-limit (2017-04-20) 1 commit - - Increase core.packedGitLimit + (merged to 'next' on 2017-04-26 at c72dd8c62f) + + Increase core.packedGitLimit Raise the default packed-git limit value on larger platforms to avoid "git fetch" from a (recoverable) failure while "gc" is running in parallel. - Will merge to 'next'. + Will merge to 'master'. * jk/complete-checkout-sans-dwim-remote (2017-04-23) 1 commit - - completion: optionally disable checkout DWIM + (merged to 'next' on 2017-04-26 at 0c69cff69f) + + completion: optionally disable checkout DWIM Completion for "git checkout " that auto-creates the branch out of a remote tracking branch can now be disabled, as this @@ -262,21 +404,7 @@ of the repositories listed at existing local branch that happens to share the same prefix with bunch of remote tracking branches. - Will merge to 'next'. - - -* jk/update-links-in-docs (2017-04-20) 6 commits - (merged to 'next' on 2017-04-23 at f64249bbdf) - + docs/bisect-lk2009: update java code conventions link - + docs/bisect-lk2009: update nist report link - + docs/archimport: quote sourcecontrol.net reference - + gitcore-tutorial: update broken link - + doc: replace or.cz gitwiki link with git.wiki.kernel.org - + doc: use https links to avoid http redirect - - Many stale HTTP(s) links have been updated in our documentation. - - Will merge to 'next'. + Will merge to 'master'. * js/larger-timestamps (2017-04-24) 8 commits @@ -297,28 +425,20 @@ of the repositories listed at move), and then declare uintmax_t is the type to be used as the timestamp_t - At v5. - cf. - - -* sf/putty-w-args (2017-04-20) 1 commit - (merged to 'next' on 2017-04-23 at fdafbe6b73) - + connect.c: fix leak in handle_ssh_variant - - Plug a memleak. - Will merge to 'next'. * ab/align-perf-descriptions (2017-04-23) 1 commit - - t/perf: correctly align non-ASCII descriptions in output + (merged to 'next' on 2017-04-26 at 7d66e7019e) + + t/perf: correctly align non-ASCII descriptions in output Output from perf tests have been updated to align their titles. - Will merge to 'next'. + Will merge to 'master'. -* ab/grep-pcre-v2 (2017-04-25) 19 commits +* ab/grep-pcre-v2 (2017-04-25) 20 commits + - SQUASH??? - Makefile & configure: make PCRE v2 the default PCRE implementation - grep: remove support for concurrent use of both PCRE v1 & v2 - grep: add support for PCRE v2 @@ -400,13 +520,18 @@ of the repositories listed at Conversion from uchar[20] to struct object_id continues. + Needs review. + * jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit - - cache-tree: reject entries with null sha1 + (merged to 'next' on 2017-04-26 at 45fbe9d57d) + + cache-tree: reject entries with null sha1 Tighten code to update cache-tree so that we won't accidentally write out any 0{40} entry in the tree object. + Will merge to 'master'. + * rg/a-the-typo (2017-04-23) 1 commit - NEEDSSIGNOFF: fix minor typing mistakes @@ -417,176 +542,71 @@ of the repositories listed at * jk/prio-queue-avoid-swap-with-self (2017-04-24) 1 commit - - prio_queue_reverse: don't swap elements with themselves + (merged to 'next' on 2017-04-26 at 6a55996734) + + prio_queue_reverse: don't swap elements with themselves Code clean-up. - Will merge to 'next'. + Will merge to 'master'. * jk/submodule-init-segv-fix (2017-04-24) 1 commit - - submodule_init: die cleanly on submodules without url defined - - Fix a segv in 'submodule init' when url is not given for a submodule. - - Will merge to 'next'. - - -* rs/large-zip (2017-04-24) 5 commits - - archive-zip: support files bigger than 4GB - - archive-zip: support archives bigger than 4GB - - archive-zip: write ZIP dir entry directly to strbuf - - archive-zip: use strbuf for ZIP directory - - archive-zip: add tests for big ZIP archives - - "git archive --format=zip" learned to use zip64 extension when - necessary to go beyond the 4GB limit. - - Will merge to 'next'. - - -* jc/checkout-working-tree-only (2017-04-25) 1 commit - - checkout: add --working-tree-only option - - "git checkout " learned a variant that does - not update the index when doing its thing. - - -* js/rebase-i-final (2017-04-25) 9 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 - - The final batch to "git rebase -i" updates to move more code from - the shell script to C. - - -* jt/use-trailer-api-in-commands (2017-04-25) 2 commits - - SQUASH??? suggested by jrnieder - - sequencer: require trailing NL in footers - - "git cherry-pick" and other uses of the sequencer machinery - mishandled a trailer block whose last line is an incomplete line. - This has been fixed so that an additional sign-off etc. are added - after completing the existing incomplete line. - - --------------------------------------------------- -[Stalled] - -* sg/clone-refspec-from-command-line-config (2017-02-27) 1 commit - - clone: respect configured fetch respecs during initial fetch - - Expecting a reroll. - cf. <20170227211217.73gydlxb2qu2sp3m@sigill.intra.peff.net> - cf. - Some nits but looks ok. - - -* sk/dash-is-previous (2017-03-01) 5 commits - - revert.c: delegate handling of "-" shorthand to setup_revisions - - sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}" - - revision.c: args starting with "-" might be a revision - - revision.c: swap if/else blocks - - revision.c: do not update argv with unknown option - - A dash "-" can be written to mean "the branch that was previously - checked out" in more places. - - Needs review. - cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com> + (merged to 'next' on 2017-04-26 at 9a6eaaff89) + + submodule_init: die cleanly on submodules without url defined + Fix a segv in 'submodule init' when url is not given for a submodule. -* ls/filter-process-delayed (2017-03-06) 1 commit - - convert: add "status=delayed" to filter process protocol + Will merge to 'master'. - What's the status of this one??? - cf. +* rs/large-zip (2017-04-24) 5 commits + (merged to 'next' on 2017-04-26 at a6beab60f2) + + archive-zip: support files bigger than 4GB + + archive-zip: support archives bigger than 4GB + + archive-zip: write ZIP dir entry directly to strbuf + + archive-zip: use strbuf for ZIP directory + + archive-zip: add tests for big ZIP archives -* pb/bisect (2017-02-18) 28 commits - . fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C - . bisect--helper: remove the dequote in bisect_start() - . bisect--helper: retire `--bisect-auto-next` subcommand - . bisect--helper: retire `--bisect-autostart` subcommand - . bisect--helper: retire `--bisect-write` subcommand - . bisect--helper: `bisect_replay` shell function in C - . bisect--helper: `bisect_log` shell function in C - . bisect--helper: retire `--write-terms` subcommand - . bisect--helper: retire `--check-expected-revs` subcommand - . bisect--helper: `bisect_state` & `bisect_head` shell function in C - . bisect--helper: `bisect_autostart` shell function in C - . bisect--helper: retire `--next-all` subcommand - . bisect--helper: retire `--bisect-clean-state` subcommand - . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C - . t6030: no cleanup with bad merge base - . bisect--helper: `bisect_start` shell function partially in C - . bisect--helper: `get_terms` & `bisect_terms` shell function in C - . bisect--helper: `bisect_next_check` & bisect_voc shell function in C - . bisect--helper: `check_and_set_terms` shell function in C - . bisect--helper: `bisect_write` shell function in C - . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C - . bisect--helper: `bisect_reset` shell function in C - . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file() - . t6030: explicitly test for bisection cleanup - . bisect--helper: `bisect_clean_state` shell function in C - . bisect--helper: `write_terms` shell function in C - . bisect: rewrite `check_term_format` shell function in C - . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL + "git archive --format=zip" learned to use zip64 extension when + necessary to go beyond the 4GB limit. - Move more parts of "git bisect" to C. + Will merge to 'master'. - Ejected from 'pu', as it overlaps and gets in the way of bc/object-id topic. - Expecting a reroll. - cf. - cf. - cf. +* jc/checkout-working-tree-only (2017-04-27) 1 commit + - checkout: add --working-tree-only option -* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits - - grep: use '/' delimiter for paths - - grep: only add delimiter if there isn't one already + "git checkout " learned a variant that does + not update the index when doing its thing. - "git grep", when fed a tree-ish as an input, shows each hit - prefixed with ":::". As is - almost always either a commit or a tag that points at a commit, the - early part of the output ":" can be used as the - name of the blob and given to "git show". When is a - tree given in the extended SHA-1 syntax (e.g. ":", or - ":"), however, this results in a string that does not - name a blob (e.g. "::" or "::"). - "git grep" has been taught to be a bit more intelligent about these - cases and omit a colon (in the former case) or use slash (in the - latter case) to produce ":" and - ":/" that can be used as the name of a blob. - Expecting a reroll? Is this good enough with known limitations? +* js/rebase-i-final (2017-04-27) 9 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 + The final batch to "git rebase -i" updates to move more code from + the shell script to C. -* jc/diff-b-m (2015-02-23) 5 commits - . WIPWIP - . WIP: diff-b-m - - diffcore-rename: allow easier debugging - - diffcore-rename.c: add locate_rename_src() - - diffcore-break: allow debugging + Needs review. - "git diff -B -M" produced incorrect patch when the postimage of a - completely rewritten file is similar to the preimage of a removed - file; such a resulting file must not be expressed as a rename from - other place. - The fix in this patch is broken, unfortunately. +* jt/use-trailer-api-in-commands (2017-04-26) 1 commit + - sequencer: add newline before adding footers - Will discard. + "git cherry-pick" and other uses of the sequencer machinery + mishandled a trailer block whose last line is an incomplete line. + This has been fixed so that an additional sign-off etc. are added + after completing the existing incomplete line. + + Will merge to 'next'. --------------------------------------------------- -[Cooking] * nd/worktree-move (2017-04-20) 6 commits - worktree remove: new command @@ -598,21 +618,13 @@ of the repositories listed at "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. -* ab/push-cas-doc-n-test (2017-04-19) 1 commit - (merged to 'next' on 2017-04-23 at 0ef31ab624) - + push: document & test --force-with-lease with multiple remotes - - Doc update. - - Will merge to 'master'. - - -* jk/parse-options-no-no-no (2017-04-19) 2 commits +* jk/parse-options-no-no-no (2017-04-25) 2 commits - SQUASH??? - parse-options: disallow double-negations of options starting with no- @@ -627,24 +639,6 @@ of the repositories listed at use it". Perhaps we can drop it? -* ss/gitmodules-ignore-doc (2017-04-19) 1 commit - (merged to 'next' on 2017-04-23 at 3963ab5013) - + gitmodules: clarify the ignore option values - - Doc update. - - Will merge to 'master'. - - -* ss/submodule-shallow-doc (2017-04-19) 1 commit - (merged to 'next' on 2017-04-23 at 56a80f913d) - + gitmodules: clarify what history depth a shallow clone has - - Doc update. - - Will merge to 'master'. - - * df/dir-iter-remove-subtree (2017-04-19) 5 commits - remove_subtree(): reimplement using iterators - dir_iterator: rewrite state machine model @@ -655,22 +649,12 @@ of the repositories listed at Update the dir-iterator API and use it to reimplement remove_subtree(). - Almost there except for a minor nit. + A reroll exists that is based on the updated 'master', but I ran + out of time trying to get it to work with other topics in flight + in 'pu'. GSoC microproject. -* nd/conditional-config-in-early-config (2017-04-19) 3 commits - (merged to 'next' on 2017-04-23 at 1803ee72a9) - + 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 'master'. - - * ab/clone-no-tags (2017-04-19) 1 commit (merged to 'next' on 2017-04-23 at c6329b0f7c) + clone: add a --no-tags option to clone without tags @@ -682,19 +666,10 @@ of the repositories listed at Will merge to 'master'. -* ab/completion-push-delete-ref (2017-04-23) 1 commit - (merged to 'next' on 2017-04-23 at e227df80bf) - + 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 'master'. - - * bw/forking-and-threading (2017-04-25) 13 commits - - run-command: restrict PATH search to executable files - - run-command: expose is_executable function + (merged to 'next' on 2017-04-26 at 89c495e37f) + + run-command: restrict PATH search to executable files + + run-command: expose is_executable function (merged to 'next' on 2017-04-23 at 7754b5ebc3) + run-command: block signals between fork and execve + run-command: add note about forking and threading @@ -708,10 +683,10 @@ of the repositories listed at + 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 + The "run-command" API implementation has been made more robust against dead-locking in a threaded environment. - Will merge to 'next'. + Will merge to 'master'. * sb/reset-recurse-submodules (2017-04-23) 4 commits @@ -723,7 +698,8 @@ of the repositories listed at "git reset" learned "--recurse-submodules" option. -* ls/travis-doc-asciidoctor (2017-04-16) 3 commits +* ls/travis-doc-asciidoctor (2017-04-26) 4 commits + - travis-ci: check AsciiDoc/AsciiDoctor stderr output (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 @@ -732,8 +708,7 @@ of the repositories listed at Have Travis CI format the documentation with both AsciiDoc and AsciiDoctor. - Will hold in 'next' waiting for a small update. - cf. <25191991-F4EA-4D91-B291-854F46A34DC2@gmail.com> + Will merge to 'next' after a few CI run in 'pu'. * mg/status-in-progress-info (2017-04-14) 1 commit @@ -746,52 +721,6 @@ of the repositories listed at cf. -* nd/worktree-add-lock (2017-04-20) 1 commit - (merged to 'next' on 2017-04-23 at 160b955fbb) - + worktree add: add --lock option - - Allow to lock a worktree immediately after it's created. This helps - prevent a race between "git worktree add; git worktree lock" and - "git worktree prune". - - Will merge to 'master'. - - -* ps/pathspec-empty-prefix-origin (2017-04-14) 1 commit - (merged to 'next' on 2017-04-23 at b91098d1f7) - + pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix - - A recent update broke "git add -p ../foo" from a subdirectory. - - Will merge to 'master'. - - -* gb/rebase-signoff (2017-04-18) 3 commits - (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 'master'. - - -* jh/add-index-entry-optim (2017-04-19) 5 commits - (merged to 'next' on 2017-04-23 at 295d4066a8) - + 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 - + p0006-read-tree-checkout: perf test to time read-tree - + read-cache: add strcmp_offset function - - "git checkout" that handles a lot of paths has been optimized by - reducing the number of unnecessary checks of paths in the - has_dir_name() function. - - 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 @@ -802,26 +731,9 @@ of the repositories listed at - grep: add tests for --threads=N and grep.threads - grep: assert that threading is enabled when calling grep_{lock,unlock} + Code cleanup. -* ls/travis-coccicheck (2017-04-16) 1 commit - (merged to 'next' on 2017-04-23 at fa42ffe6b2) - + travis-ci: add static analysis build job to run coccicheck - - Travis CI learns to run coccicheck. - - Will merge to 'master'. - - -* pc/t2027-git-to-pipe-cleanup (2017-04-14) 1 commit - (merged to 'next' on 2017-04-23 at b5c28345a9) - + t2027: avoid using pipes - - Having a git command on the upstream side of a pipe in a test - script will hide the exit status from the command, which may cause - us to fail to notice a breakage; rewrite tests in a script to avoid - this issue. - - Will merge to 'master'. + Needs review. * bp/sub-process-convert-filter (2017-04-23) 8 commits @@ -837,20 +749,10 @@ of the repositories listed at Code from "conversion using external process" codepath has been extracted to a separate sub-process.[ch] module. - Reroll exists but needs more work. + Reroll exists but needs a bit more work. cf. <20170407120354.17736-1-benpeart@microsoft.com> -* cc/split-index-config (2017-04-20) 1 commit - (merged to 'next' on 2017-04-23 at 5996ddc3f2) - + read-cache: avoid using git_path() in freshen_shared_index() - - The split-index code configuration code used an unsafe git_path() - function without copying its result out. - - Will merge to 'master'. - - * mg/name-rev-debug (2017-03-31) 4 commits - describe: pass --debug down to name-rev - name-rev: provide debug output @@ -864,35 +766,6 @@ of the repositories listed at cf. -* mh/separate-ref-cache (2017-04-16) 20 commits - (merged to 'next' on 2017-04-23 at bd74983456) - + do_for_each_entry_in_dir(): delete function - + files_pack_refs(): use reference iteration - + commit_packed_refs(): use reference iteration - + cache_ref_iterator_begin(): make function smarter - + get_loose_ref_cache(): new function - + get_loose_ref_dir(): function renamed from get_loose_refs() - + do_for_each_entry_in_dir(): eliminate `offset` argument - + refs: handle "refs/bisect/" in `loose_fill_ref_dir()` - + ref-cache: use a callback function to fill the cache - + refs: record the ref_store in ref_cache, not ref_dir - + ref-cache: introduce a new type, ref_cache - + refs: split `ref_cache` code into separate files - + ref-cache: rename `remove_entry()` to `remove_entry_from_dir()` - + ref-cache: rename `find_ref()` to `find_ref_entry()` - + ref-cache: rename `add_ref()` to `add_ref_entry()` - + refs_verify_refname_available(): use function in more places - + refs_verify_refname_available(): implement once for all backends - + refs_ref_iterator_begin(): new function - + refs_read_raw_ref(): new function - + get_ref_dir(): don't call read_loose_refs() for "refs/bisect" - - The internals of the refs API around the cached refs has been - streamlined. - - Will merge to 'master'. - - * ja/doc-l10n (2017-03-20) 3 commits - SQUASH??? - l10n: add git-add.txt to localized man pages @@ -928,18 +801,19 @@ of the repositories listed at * nd/worktree-kill-parse-ref (2017-04-24) 6 commits - - refs: kill set_worktree_head_symref() - - worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe() - - refs: introduce get_worktree_ref_store() - - refs: add REFS_STORE_ALL_CAPS - - refs.c: make submodule ref store hashmap generic - - environment.c: fix potential segfault by get_git_common_dir() + (merged to 'next' on 2017-04-26 at b8e40da709) + + refs: kill set_worktree_head_symref() + + worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe() + + refs: introduce get_worktree_ref_store() + + refs: add REFS_STORE_ALL_CAPS + + 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.) "git gc" did not interact well with "git worktree"-managed per-worktree refs. - Will merge to 'next'. + Will merge to 'master'. * jc/bundle (2016-03-03) 6 commits -- 2.47.3