From: Junio C Hamano Date: Wed, 26 Apr 2017 05:14:49 +0000 (-0700) Subject: What's cooking (2017/04 #05) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=563ff008742d989b3577bc41f434313c4e2a77bd;p=thirdparty%2Fgit.git What's cooking (2017/04 #05) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 0685188e51..25cc1da873 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, #04; Wed, 19) -X-master-at: 6a2c2f8d34fa1e8f3bb85d159d354810ed63692e -X-next-at: b4426549316a3855d2b022fb331e7173b26879d0 +Subject: What's cooking in git.git (Apr 2017, #05; Tue, 25) +X-master-at: e2cb6ab84c94f147f1259260961513b40c36108a +X-next-at: 87b477812d19226f71786936237a1aa4e7df378e -What's cooking in git.git (Apr 2017, #04; Wed, 19) +What's cooking in git.git (Apr 2017, #05; Tue, 25) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -20,246 +20,463 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* 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 +* 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 - Call clear_pathspec() to release resources immediately before the - cmd_grep() function returns. + 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". + There is an update to the test script as a follow-up. -* 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. - The diff options "--ours", "--theirs" exist for quite some time. - But so far they were not documented. Now they are. +* 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 + "git submodule" script does not work well with strange pathnames. + Protect it from a path with slashes in them, at least. -* 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. +* 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 + 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. + + +* 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) + + 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. -* bw/attr-pathspec (2017-04-16) 1 commit - (merged to 'next' on 2017-04-18 at 2644ca1269) - + pathspec: fix segfault in clear_pathspec - Hotfix for a topic already in 'master'. +* 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 + 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. -* 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. +* 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 + 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. -* 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. +* 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 + Code cleanup. -* 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'. +* 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. -* 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 + +* 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 + + Add finishing touches to a recent topic. + + +* 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'. -* 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. - - -* 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 +* 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. + + +* 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 + + Code cleanup. + + +* 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() + + $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. + + +* 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 + + Various small fixes. + + +* 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. + + +* 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 + + "http.proxy" set to an empty string is used to disable the usage of + proxy. We broke this early last year. + + +* 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 + + Doc update. + + +* 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. -------------------------------------------------- [New Topics] -* ab/push-cas-doc-n-test (2017-04-19) 1 commit - - push: document & test --force-with-lease with multiple remotes +* jh/verify-index-checksum-only-in-fsck (2017-04-25) 1 commit + - t1450: avoid use of "sed" on the index, which is a binary file - Doc update. + Update an unportable constructin a new test. + + Will merge to 'next' and then to 'master'. + + +* 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 + + 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/parse-options-no-no-no (2017-04-19) 2 commits - - SQUASH??? - - parse-options: disallow double-negations of options starting with no- +* 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 - 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 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. - 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? + Will merge to 'master'. -* ss/gitmodules-ignore-doc (2017-04-19) 1 commit - - gitmodules: clarify the ignore option values +* nd/fopen-errors (2017-04-23) 17 commits + - warn_failure_to_open_read_optional_path(): a new helper + - t1308: add a test case on open a config directory + - config.c: handle error on failing to fopen() + - xdiff-interface.c: report errno on failure to stat() or fopen() + - wt-status.c: report error on failure to fopen() + - server-info: report error on failure to fopen() + - sequencer.c: report error on failure to fopen() + - rerere.c: report correct errno + - rerere.c: report error on failure to fopen() + - remote.c: report error on failure to fopen() + - commit.c: report error on failure to fopen() the graft file + - log: report errno on failure to fopen() a file + - clone: use xfopen() instead of fopen() + - blame: report error on open if graft_file is a directory + - bisect: report on fopen() error + - config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD + - git_fopen: fix a sparse 'not declared' warning - Doc update. + We often try to open a file for reading whose existence is + optional, and silently ignore errors from open/fopen; report such + errors if they are not due to missing files. + + Expecting a reroll that would be much simplified thanks to a higher + level helper. + + cf. + cf. + + +* dt/raise-core-packed-git-limit (2017-04-20) 1 commit + - 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'. -* ss/submodule-shallow-doc (2017-04-19) 1 commit - - gitmodules: clarify what history depth a shallow clone has +* jk/complete-checkout-sans-dwim-remote (2017-04-23) 1 commit + - completion: optionally disable checkout DWIM - Doc update. + Completion for "git checkout " that auto-creates the branch + out of a remote tracking branch can now be disabled, as this + completion often gets in the way when completing to checkout an + 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'. + + +* js/larger-timestamps (2017-04-24) 8 commits + - use uintmax_t for timestamps + - date.c: abort if the system time cannot handle one of our timestamps + - timestamp_t: introduce a new data type for timestamps + - PRItime: introduce a new "printf format" for timestamps + - parse_timestamp(): specify explicitly where we parse timestamps + - t0006 & t5000: skip "far in the future" test when time_t is too limited + - t0006 & t5000: prepare for 64-bit timestamps + - ref-filter: avoid using `unsigned long` for catch-all data type + + Some platforms have ulong that is smaller than time_t, and our + historical use of ulong for timestamp would mean they cannot + represent some timestamp that the platform allows. Invent a + separate and dedicated timestamp_t (so that we can distingiuish + timestamps and a vanilla ulongs, which along is already a good + 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 + + Output from perf tests have been updated to align their titles. + + Will merge to 'next'. + + +* ab/grep-pcre-v2 (2017-04-25) 19 commits + - 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 + - grep: add support for the PCRE v1 JIT API + - perf: add a performance comparison test of grep -E and -P + - grep: change the internal PCRE code & header names to be PCRE1 + - grep: change the internal PCRE macro names to be PCRE1 + - test-lib: rename the LIBPCRE prerequisite to PCRE + - grep: make grep.patternType=[pcre|pcre1] a synonym for "perl" + - grep & rev-list doc: stop promising libpcre for --perl-regexp + - log: add -P as a synonym for --perl-regexp + - log: add exhaustive tests for pattern style options & config + - grep: add a test for backreferences in PCRE patterns + - Makefile & configure: reword outdated comment about PCRE + - grep: remove redundant `regflags &= ~REG_EXTENDED` assignments + - grep: remove redundant regflags assignment under PCRE + - grep: submodule-related case statements should die if new fields are added + - grep: add tests for grep pattern types being passed to submodules + - grep: amend submodule recursion test in preparation for rx engine testing + + PCRE2, which has an API different from and incompatible with PCRE, + can now be chosen to support "grep -P -e ''" and friends. + + +* bc/object-id (2017-04-23) 53 commits + - object: convert parse_object* to take struct object_id + - tree: convert parse_tree_indirect to struct object_id + - sequencer: convert do_recursive_merge to struct object_id + - diff-lib: convert do_diff_cache to struct object_id + - builtin/ls-tree: convert to struct object_id + - merge: convert checkout_fast_forward to struct object_id + - sequencer: convert fast_forward_to to struct object_id + - builtin/ls-files: convert overlay_tree_on_cache to object_id + - builtin/read-tree: convert to struct object_id + - sha1_name: convert internals of peel_onion to object_id + - upload-pack: convert remaining parse_object callers to object_id + - revision: convert remaining parse_object callers to object_id + - revision: rename add_pending_sha1 to add_pending_oid + - http-push: convert process_ls_object and descendants to object_id + - refs/files-backend: convert many internals to struct object_id + - refs: convert struct ref_update to use struct object_id + - ref-filter: convert some static functions to struct object_id + - Convert struct ref_array_item to struct object_id + - Convert the verify_pack callback to struct object_id + - Convert lookup_tag to struct object_id + - log-tree: convert to struct object_id + - Convert lookup_tree to struct object_id + - builtin/reflog: convert tree_is_complete to take struct object_id + - tree: convert read_tree_1 to use struct object_id internally + - Convert lookup_blob to struct object_id + - Convert remaining callers of lookup_blob to object_id + - builtin/unpack-objects: convert to struct object_id + - pack: convert struct pack_idx_entry to struct object_id + - Convert lookup_commit* to struct object_id + - Convert remaining callers of lookup_commit_reference* to object_id + - builtin/tag: convert to struct object_id + - sequencer: convert some functions to struct object_id + - shallow: convert shallow registration functions to object_id + - revision: convert prepare_show_merge to struct object_id + - notes-utils: convert internals to struct object_id + - http-push: convert some static functions to struct object_id + - tag: convert parse_tag_buffer to struct object_id + - builtin/verify-commit: convert to struct object_id + - reflog_expire: convert to struct object_id + - parse-options-cb: convert to struct object_id + - notes-cache: convert to struct object_id + - submodule: convert merge_submodule to use struct object_id + - fast-import: convert to struct object_id + - fast-import: convert internal structs to struct object_id + - builtin/rev-parse: convert to struct object_id + - builtin/blame: convert static function to struct object_id + - branch: convert to struct object_id + - bundle: convert to struct object_id + - builtin/prune: convert to struct object_id + - builtin/name-rev: convert to struct object_id + - Convert struct cache_tree to use struct object_id + - Clean up outstanding object_id transforms. + - fetch-pack: convert to struct object_id + + Conversion from uchar[20] to struct object_id continues. + + +* jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit + - 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. + + +* rg/a-the-typo (2017-04-23) 1 commit + - NEEDSSIGNOFF: fix minor typing mistakes + + Typofix. + + Needs sign-off. + + +* jk/prio-queue-avoid-swap-with-self (2017-04-24) 1 commit + - prio_queue_reverse: don't swap elements with themselves + + Code clean-up. + + Will merge to 'next'. + + +* 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] @@ -293,52 +510,39 @@ of the repositories listed at cf. -* nd/worktree-move (2017-01-27) 7 commits - . fixup! worktree move: new command - . 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 worktree" learned move and remove subcommands. - - Tentatively ejected as it seems to break 'pu' when merged. - - * 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 + . 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. @@ -384,112 +588,125 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* 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 +* 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() - Update the dir-iterator API and use it to reimplement - remove_subtree(). + "git worktree" learned move and remove subcommands. - Almost there except for a minor nit. - GSoC microproject. + cf. <20170420101024.7593-1-pclouds@gmail.com> + cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net> + cf. -* 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 +* 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 - "ls-files --recurse-submodules" did not quite work well in a - project with nested submodules. + Doc update. 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 +* jk/parse-options-no-no-no (2017-04-19) 2 commits + - SQUASH??? + - parse-options: disallow double-negations of options starting with no- - "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. + 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. - Will merge to 'master'. + 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? -* 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() +* ss/gitmodules-ignore-doc (2017-04-19) 1 commit + (merged to 'next' on 2017-04-23 at 3963ab5013) + + gitmodules: clarify the ignore option values - The recently introduced conditional inclusion of configuration did - not work well when early-config mechanism was involved. + Doc update. - Will merge to 'next'. + Will merge to 'master'. -* 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 +* 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 - Code cleanup. + Doc update. 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 +* 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 - Doc cleanup. + Update the dir-iterator API and use it to reimplement + remove_subtree(). - Will merge to 'master'. + Almost there except for a minor nit. + GSoC microproject. -* jk/snprintf-cleanups (2017-04-17) 1 commit - (merged to 'next' on 2017-04-19 at 4a18ea9971) - + replace: plug a memory leak +* 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() - Hotfix for a topic that is already in 'master'. + 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 - - clone: add a --no-tags option to clone without tags + (merged to 'next' on 2017-04-23 at c6329b0f7c) + + 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'. + Will merge to 'master'. -* ab/completion-push-delete-ref (2017-04-18) 1 commit - - completion: expand "push --delete " for refs on that +* 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 'next'. + Will merge to 'master'. -* 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 +* 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-23 at 7754b5ebc3) + + 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. @@ -497,7 +714,7 @@ of the repositories listed at Will merge to 'next'. -* sb/reset-recurse-submodules (2017-04-18) 4 commits +* sb/reset-recurse-submodules (2017-04-23) 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 @@ -506,53 +723,6 @@ of the repositories listed at "git reset" learned "--recurse-submodules" option. -* 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) - - 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 'master'. - - -* 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 - - 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 'master'. - - -* 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 - - 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 '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 - - 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 'master'. - - * ls/travis-doc-asciidoctor (2017-04-16) 3 commits (merged to 'next' on 2017-04-19 at 359c32953b) + travis-ci: unset compiler for jobs that do not need one @@ -562,7 +732,8 @@ of the repositories listed at Have Travis CI format the documentation with both AsciiDoc and AsciiDoctor. - Will merge to 'master'. + Will hold in 'next' waiting for a small update. + cf. <25191991-F4EA-4D91-B291-854F46A34DC2@gmail.com> * mg/status-in-progress-info (2017-04-14) 1 commit @@ -575,54 +746,23 @@ of the repositories listed at cf. -* 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() - - $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 'master'. - - -* nd/worktree-add-lock (2017-04-16) 2 commits - - SQUASH??? - - worktree add: add --lock option +* 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". - Waiting for a response to SQUASH??? + Will merge to 'master'. * ps/pathspec-empty-prefix-origin (2017-04-14) 1 commit - - pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix + (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 'next'. - - -* 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 - - "http.proxy" set to an empty string is used to disable the usage of - proxy. We broke this early last year. - - Will merge to 'master'. - - -* 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 - - Doc update. - Will merge to 'master'. @@ -638,17 +778,18 @@ of the repositories listed at * 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 - - p0006-read-tree-checkout: perf test to time read-tree - - read-cache: add strcmp_offset function + (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 'next'. + Will merge to 'master'. * ab/grep-threading-cleanup (2017-04-16) 8 commits @@ -662,94 +803,35 @@ of the repositories listed at - grep: assert that threading is enabled when calling grep_{lock,unlock} -* 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 - - "git submodule" script does not work well with strange pathnames. - Protect it from a path with slashes in them, at least. - - Will merge to 'master'. - - -* 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 - - Code cleanup. - - Will merge to 'master'. - - -* 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 - - Add finishing touches to a recent topic. - - Will merge to 'master'. - - * ls/travis-coccicheck (2017-04-16) 1 commit - - travis-ci: add static analysis build job to run coccicheck + (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 'next'. - - -* 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 - - Various small fixes. - - Will merge to 'master'. - - -* 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 - - Code cleanup. - - Will merge to 'master'. - - -* 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 - - 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 'master'. * pc/t2027-git-to-pipe-cleanup (2017-04-14) 1 commit - - t2027: avoid using pipes + (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 'next'. + Will merge to 'master'. -* bp/sub-process-convert-filter (2017-03-30) 8 commits - - convert: update subprocess_read_status to not die on EOF +* bp/sub-process-convert-filter (2017-04-23) 8 commits + - convert: update subprocess_read_status() to not die on EOF - sub-process: move sub-process functions into separate files - convert: rename reusable sub-process functions - convert: update generic functions to only use generic data structures - convert: separate generic structures and variables from the filter specific ones - - convert: split start_multi_file_filter() into two separate functions - - convert: move packet_write_list() into pkt-line.c as packet_writel() + - convert: split start_multi_file_filter into two separate functions + - convert: move packet_write_list() into pkt-line as packet_writel() - pkt-line: add packet_read_line_gently() Code from "conversion using external process" codepath has been @@ -759,14 +841,14 @@ of the repositories listed at cf. <20170407120354.17736-1-benpeart@microsoft.com> -* cc/split-index-config (2017-03-30) 1 commit - - read-cache: avoid using git_path() in freshen_shared_index() +* 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. - Needs to be explained better. - The code looked OK, though. + Will merge to 'master'. * mg/name-rev-debug (2017-03-31) 4 commits @@ -783,31 +865,32 @@ of the repositories listed at * mh/separate-ref-cache (2017-04-16) 20 commits - - 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" + (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 'next'. + Will merge to 'master'. * ja/doc-l10n (2017-03-20) 3 commits @@ -818,7 +901,7 @@ of the repositories listed at A proposal to use po4a to localize our manual pages. -* nd/prune-in-worktree (2017-04-19) 12 commits +* nd/prune-in-worktree (2017-04-24) 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 @@ -839,13 +922,16 @@ of the repositories listed at objects that are in use only in other worktrees to be subject to garbage collection. + Expecting a reroll. Waiting for nd/worktree-kill-parse-ref to settle. + cf. -* nd/worktree-kill-parse-ref (2017-04-16) 5 commits +* 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() (this branch is used by nd/prune-in-worktree.)