From c9fe5cff81b898895be0ddc9740dbfc4a20bbbf4 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 17 Mar 2017 14:06:50 -0700 Subject: [PATCH] What's cooking (2017/03 #07) --- whats-cooking.txt | 740 +++++++++++++++++++++------------------------- 1 file changed, 343 insertions(+), 397 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index f3b8cf9570..e8b55813fd 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 (Mar 2017, #06; Tue, 14) -X-master-at: 4a9b9b32d47212e4ea43cd1fa3c11afef6d4c491 -X-next-at: 48829862c7ec047bdce13a3e5d758eb4d703d5b8 +Subject: What's cooking in git.git (Mar 2017, #07; Fri, 17) +X-master-at: 9d77b0405ce6b471cb5ce3a904368fc25e55643d +X-next-at: ad415229794d1880faab8b9fdd535ab7cc736444 -What's cooking in git.git (Mar 2017, #06; Tue, 14) +What's cooking in git.git (Mar 2017, #07; Fri, 17) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,29 +12,6 @@ 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. -Among the topics merged to 'master' since v2.12 was tagged, 40+ of -them could be also merged to 'maint' (some of these are new features -and by default should not be, though). Among them two are fixes for -regressions found in v2.12: - - * The patch subcommand of "git add -i" was meant to have paths - selection prompt just like other subcommand, unlike "git add -p" - directly jumps to hunk selection. Recently, this was broken and - "add -i" lost the paths selection dialog, but it now has been - fixed. - (merge c852bd54bd jk/add-i-patch-do-prompt later to maint). - - * Git v2.12 was shipped with an embarrassing breakage where various - operations that verify paths given from the user stopped dying when - seeing an issue, and instead later triggering segfault. - (merge ce83eadd9a js/realpath-pathdup-fix later to maint). - -These two have been merged to 'master' only a few days ago; -additional tests on 'master' to make sure they fix the issues, and -more importantly they do not introduce new regressions, are greatly -appreciated. I am hoping we can merge them (and probably others) -to 'maint' to cut v2.12.1 by early next week. - You can find the changes described here in the integration branches of the repositories listed at @@ -43,160 +20,352 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ab/cond-skip-tests (2017-03-01) 3 commits - (merged to 'next' on 2017-03-10 at 38124fb5ce) - + gitweb tests: skip tests when we don't have Time::HiRes - + gitweb tests: change confusing "skip_all" phrasing - + cvs tests: skip tests that call "cvs commit" when running as root +* bc/object-id (2017-02-22) 19 commits + (merged to 'next' on 2017-03-14 at 0b3ec5a05e) + + wt-status: convert to struct object_id + + builtin/merge-base: convert to struct object_id + + Convert object iteration callbacks to struct object_id + + sha1_file: introduce an nth_packed_object_oid function + + refs: simplify parsing of reflog entries + + refs: convert each_reflog_ent_fn to struct object_id + + reflog-walk: convert struct reflog_info to struct object_id + + builtin/replace: convert to struct object_id + + Convert remaining callers of resolve_refdup to object_id + + builtin/merge: convert to struct object_id + + builtin/clone: convert to struct object_id + + builtin/branch: convert to struct object_id + + builtin/grep: convert to struct object_id + + builtin/fmt-merge-message: convert to struct object_id + + builtin/fast-export: convert to struct object_id + + builtin/describe: convert to struct object_id + + builtin/diff-tree: convert to struct object_id + + builtin/commit: convert to struct object_id + + hex: introduce parse_oid_hex + + "uchar [40]" to "struct object_id" conversion continues. + + +* bc/sha1-header-selection-with-cpp-macros (2017-03-15) 1 commit + (merged to 'next' on 2017-03-15 at 71c3a4f4ba) + + hash.h: move SHA-1 implementation selection into a header file + (this branch is used by jk/sha1dc.) + + Our source code has used the SHA1_HEADER cpp macro after "#include" + in the C code to switch among the SHA-1 implementations. Instead, + list the exact header file names and switch among implementations + using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif"; + this helps some IDE tools. + + +* bw/attr-pathspec (2017-03-13) 2 commits + (merged to 'next' on 2017-03-14 at 3af5d6c1fc) + + pathspec: allow escaped query values + + pathspec: allow querying for attributes + + The pathspec mechanism learned to further limit the paths that + match the pattern to those that have specified attributes attached + via the gitattributes mechanism. + + +* cc/split-index-config (2017-03-06) 22 commits + (merged to 'next' on 2017-03-12 at 53cdc2016d) + + Documentation/git-update-index: explain splitIndex.* + + Documentation/config: add splitIndex.sharedIndexExpire + + read-cache: use freshen_shared_index() in read_index_from() + + read-cache: refactor read_index_from() + + t1700: test shared index file expiration + + read-cache: unlink old sharedindex files + + config: add git_config_get_expiry() from gc.c + + read-cache: touch shared index files when used + + sha1_file: make check_and_freshen_file() non static + + Documentation/config: add splitIndex.maxPercentChange + + t1700: add tests for splitIndex.maxPercentChange + + read-cache: regenerate shared index if necessary + + config: add git_config_get_max_percent_split_change() + + Documentation/git-update-index: talk about core.splitIndex config var + + Documentation/config: add information for core.splitIndex + + t1700: add tests for core.splitIndex + + update-index: warn in case of split-index incoherency + + read-cache: add and then use tweak_split_index() + + split-index: add {add,remove}_split_index() functions + + config: add git_config_get_split_index() + + t1700: change here document style + + config: mark an error message up for translation + + The experimental "split index" feature has gained a few + configuration variables to make it easier to use. - A few tests were run conditionally under (rare) conditions where - they cannot be run (like running cvs tests under 'root' account). +* jk/add-i-use-pathspecs (2017-03-14) 1 commit + (merged to 'next' on 2017-03-14 at 13ce4d91e1) + + add--interactive: do not expand pathspecs with ls-files -* dp/filter-branch-prune-empty (2017-03-03) 4 commits - (merged to 'next' on 2017-03-10 at 9317e24cd3) - + p7000: add test for filter-branch with --prune-empty - + filter-branch: fix --prune-empty on parentless commits - + t7003: ensure --prune-empty removes entire branch when applicable - + t7003: ensure --prune-empty can prune root commit + "git add -p " unnecessarily expanded the pathspec to a + list of individual files that matches the pathspec by running "git + ls-files ", before feeding it to "git diff-index" to see + which paths have changes, because historically the pathspec + language supported by "diff-index" was weaker. These days they are + equivalent and there is no reason to internally expand it. This + helps both performance and avoids command line argument limit on + some platforms. - "git filter-branch --prune-empty" drops a single-parent commit that - becomes a no-op, but did not drop a root commit whose tree is empty. +* jk/cherry-pick-0-mainline (2017-03-15) 1 commit + (merged to 'next' on 2017-03-16 at e9a888e5c4) + + cherry-pick: detect bogus arguments to --mainline -* ew/http-alternates-as-redirects-warning (2017-03-06) 2 commits - (merged to 'next' on 2017-03-10 at 23be072a07) - + http: release strbuf on disabled alternates - + http: inform about alternates-as-redirects behavior + "git revert -m 0 $merge_commit" complained that reverting a merge + needs to say relative to which parent the reversion needs to + happen, as if "-m 0" weren't given. The correct diagnosis is that + "-m 0" does not refer to the first parent ("-m 1" does). This has + been fixed. - Recent versions of Git treats http alternates (used in dumb http - transport) just like HTTP redirects and requires the client to - enable following it, due to security concerns. But we forgot to - give a warning when we decide not to honor the alternates. +* jk/http-walker-buffer-underflow-fix (2017-03-13) 1 commit + (merged to 'next' on 2017-03-14 at 02020b475d) + + http-walker: fix buffer underflow processing remote alternates -* jk/interpret-branch-name (2017-03-02) 9 commits - (merged to 'next' on 2017-03-10 at 95cc55f9a3) - + checkout: restrict @-expansions when finding branch - + strbuf_check_ref_format(): expand only local branches - + branch: restrict @-expansions when deleting - + t3204: test git-branch @-expansion corner cases - + interpret_branch_name: allow callers to restrict expansions - + strbuf_branchname: add docstring - + strbuf_branchname: drop return value - + interpret_branch_name: move docstring to header file - + interpret_branch_name(): handle auto-namelen for @{-1} + "Dumb http" transport used to misparse a nonsense http-alternates + response, which has been fixed. + + +* jk/interop-test (2017-03-10) 2 commits + (merged to 'next' on 2017-03-12 at 704b328022) + + t/interop: add test of old clients against modern git-daemon + + t: add an interoperability test harness - "git branch @" created refs/heads/@ as a branch, and in general the - code that handled @{-1} and @{upstream} was a bit too loose in - disambiguating. + Picking two versions of Git and running tests to make sure the + older one and the newer one interoperate happily has now become + possible. -* jk/push-deadlock-regression-fix (2017-03-07) 6 commits - (merged to 'next' on 2017-03-10 at ceb0b819bf) - + send-pack: report signal death of pack-objects - + send-pack: read "unpack" status even on pack-objects failure - + send-pack: improve unpack-status error messages - + send-pack: use skip_prefix for parsing unpack status - + send-pack: extract parsing of "unpack" response - + receive-pack: fix deadlock when we cannot create tmpdir +* jk/ref-filter-flags-cleanup (2017-03-10) 4 commits + (merged to 'next' on 2017-03-14 at c335c9cf6e) + + ref-filter: use separate cache for contains_tag_algo + + ref-filter: die on parse_commit errors + + ref-filter: use contains_result enum consistently + + ref-filter: move ref_cbdata definition into ref-filter.c + (this branch is used by ab/ref-filter-no-contains.) - "git push" had a handful of codepaths that could lead to a deadlock - when unexpected error happened, which has been fixed. + "git tag --contains" used to (ab)use the object bits to keep track + of the state of object reachability without clearing them after + use; this has been cleaned up and made to use the newer commit-slab + facility. -* js/travis-32bit-linux (2017-03-06) 1 commit - (merged to 'next' on 2017-03-10 at 4cb69d0f77) - + Travis: also test on 32-bit Linux +* js/early-config (2017-03-14) 12 commits + (merged to 'next' on 2017-03-14 at ce43b4a309) + + setup.c: mention unresolved problems + + t1309: document cases where we would want early config not to die() + + setup_git_directory_gently_1(): avoid die()ing + + t1309: test read_early_config() + + read_early_config(): really discover .git/ + + read_early_config(): avoid .git/config hack when unneeded + + setup: make read_early_config() reusable + + setup: introduce the discover_git_directory() function + + setup_git_directory_1(): avoid changing global state + + setup: prepare setup_discovered_git_dir() for the root directory + + setup_git_directory(): use is_dir_sep() helper + + t7006: replace dubious test - Add 32-bit Linux variant to the set of platforms to be tested with - Travis CI. + The start-up sequence of "git" needs to figure out some configured + settings before it finds and set itself up in the location of the + repository and was quite messy due to its "chicken-and-egg" nature. + The code has been restructured. -* jt/perf-updates (2017-03-03) 3 commits - (merged to 'next' on 2017-03-10 at 0c0b124ed4) - + t/perf: add fallback for pre-bin-wrappers versions of git - + t/perf: use $MODERN_GIT for all repo-copying steps - + t/perf: export variable used in other blocks +* mg/status-porcelain-no-i18n (2017-03-14) 1 commit + (merged to 'next' on 2017-03-14 at 0955895825) + + git-status: make porcelain more robust - The t/perf performance test suite was not prepared to test not so - old versions of Git, but now it covers versions of Git that are not - so ancient. + "git status --porcelain" is supposed to give a stable output, but a + few strings were left as translatable by mistake. -* kn/ref-filter-branch-list (2017-03-10) 1 commit - (merged to 'next' on 2017-03-10 at 73b43443f1) - + branch: honor --abbrev/--no-abbrev in --list mode +* rs/blame-code-cleanup (2017-03-11) 1 commit + (merged to 'next' on 2017-03-12 at 8fd4bf325a) + + blame: move blame_entry duplication to add_blame_entry() - "git branch --list" takes the "--abbrev" and "--no-abbrev" options - to control the output of the object name in its "-v"(erbose) - output, but a recent update started ignoring them; this fixes it - before the breakage reaches to any released version. + Code clean-up. -* mm/fetch-show-error-message-on-unadvertised-object (2017-03-02) 3 commits - (merged to 'next' on 2017-03-10 at 69e2023804) - + fetch-pack: add specific error for fetching an unadvertised object - + fetch_refs_via_pack: call report_unmatched_refs - + fetch-pack: move code to report unmatched refs to a function +* sb/rev-parse-show-superproject-root (2017-03-08) 1 commit + (merged to 'next' on 2017-03-14 at 537c299db6) + + rev-parse: add --show-superproject-working-tree - "git fetch" that requests a commit by object name, when the other - side does not allow such an request, failed without much - explanation. + From a working tree of a repository, a new option of "rev-parse" + lets you ask if the repository is used as a submodule of another + project, and where the root level of the working tree of that + project (i.e. your superproject) is. -------------------------------------------------- [New Topics] -* bw/submodule-is-active (2017-03-14) 10 commits - - submodule add: respect submodule.active and submodule..active - - submodule--helper init: set submodule..active - - completion: clone can initialize specific submodules - - clone: add --submodule-spec= switch - - submodule update: add `--init-active` switch - - submodule: decouple url and submodule existence - - submodule--helper clone: check for configured submodules using helper - - submodule sync: use submodule--helper is-active - - submodule status: use submodule--helper is-active - - submodule--helper: add is-active command +* jc/name-rev (2017-03-16) 2 commits + - name-rev: favor describing with tags and use committer date to tiebreak + - name-rev: refactor logic to see if a new candidate is a better name - "what URL do we want to update this submodule?" and "are we - interested in this submodule?" are split into two distinct - concepts, and then the way used to express the latter got extended, - paving a way to make it easier to manage a project with many - submodules and make it possible to later extend use of multiple - worktrees for a project with submodules. + "git name-rev" penalized lightweight tags too much, making them + almost useless especially when the command is run with "--tags". + Give the same precedence to lightweight tags as annotated tags as + the base for naming a commit. - This looks like almost ready for 'next' modulo minor niggles. +* jk/pack-name-cleanups (2017-03-16) 5 commits + (merged to 'next' on 2017-03-16 at 6aa72195f5) + + index-pack: make pointer-alias fallbacks safer + + replace snprintf with odb_pack_name() + + odb_pack_keep(): stop generating keepfile name + + sha1_file.c: make pack-name helper globally accessible + + move odb_* declarations out of git-compat-util.h -* jk/add-i-use-pathspecs (2017-03-14) 1 commit - (merged to 'next' on 2017-03-14 at 13ce4d91e1) - + add--interactive: do not expand pathspecs with ls-files + Code clean-up. + + Will merge to 'master'. - "git add -p " unnecessarily expanded the pathspec to a - list of individual files that matches the pathspec by running "git - ls-files ", before feeding it to "git diff-index" to see - which paths have changes, because historically the pathspec - language supported by "diff-index" was weaker. These days they are - equivalent and there is no reason to internally expand it. This - helps both performance and avoids command line argument limit on - some platforms. + +* jk/rev-parse-cleanup (2017-03-15) 3 commits + (merged to 'next' on 2017-03-16 at 2799b37404) + + rev-parse: simplify parsing of ref options + + rev-parse: add helper for parsing "--foo/--foo=" + + rev-parse: use skip_prefix when parsing options + + Code clean-up. Will merge to 'master'. -* mg/status-porcelain-no-i18n (2017-03-14) 1 commit - (merged to 'next' on 2017-03-14 at 0955895825) - + git-status: make porcelain more robust +* js/difftool-builtin (2017-03-15) 3 commits + (merged to 'next' on 2017-03-16 at 3fccb60a07) + + difftool: handle modified symlinks in dir-diff mode + + t7800: cleanup cruft left behind by tests + + t7800: remove whitespace before redirect - "git status --porcelain" is supposed to give a stable output, but a - few strings were left as translatable by mistake. + "git difftool --dir-diff" used to die a controlled death giving a + "fatal" message when encountering a locally modified symbolic link, + but it started segfaulting since v2.12. This has been fixed. Will merge to 'master'. + +* mg/prompt-describe-tags (2017-03-15) 1 commit + (merged to 'next' on 2017-03-16 at 4de192caf4) + + git-prompt: add a describe style for any tags + + The command line prompt (in contrib/) learned a new 'tag' style + that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a + detached HEAD with "git describe --tags". + + Will merge to 'master'. + + +* sb/submodule-config-parse-ignore-fix (2017-03-15) 1 commit + (merged to 'next' on 2017-03-16 at 99d2524abd) + + submodule-config: correct error reporting for invalid ignore value + + Code to read submodule..ignore config did not state the + variable name correctly when giving an error message diagnosing + misconfiguration. + + Will merge to 'master'. + + +* bw/recurse-submodules-relative-fix (2017-03-17) 5 commits + - ls-files: fix bug when recursing with relative pathspec + - ls-files: fix typo in variable name + - grep: fix bug when recursing with relative pathspec + - setup: allow for prefix to be passed to git commands + - grep: fix help text typo + + A few commands that recently learned the "--recurse-submodule" + option misbehaved when started from a subdirectory of the + superproject. + + +* jc/p4-current-branch-fix (2017-03-17) 1 commit + - DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch + + "git p4" used "name-rev HEAD" when it wants to learn what branch is + checked out; it should use "symbolic-ref HEAD". + + Waiting for git-p4 folks to send a finished patch. + + +* js/rebase-helper (2017-03-17) 1 commit + - sequencer: drop "warning:" when stopping for edit + + Recent update to "rebase -i" started showing a message that is not + a warning with "warning:" prefix by mistake. This has been fixed. + + Will merge to 'next'. + + +* sb/wt-status-cleanup (2017-03-17) 1 commit + - wt-status: simplify by using for_each_string_list_item + + Code clean-up. + + Will merge to 'next'. + -------------------------------------------------- [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. + + +* 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> + + +* jh/memihash-opt (2017-02-17) 5 commits + - name-hash: remember previous dir_entry during lazy_init_name_hash + - name-hash: specify initial size for istate.dir_hash table + - name-hash: precompute hash values during preload-index + - hashmap: allow memihash computation to be continued + - name-hash: eliminate duplicate memihash call + + Expecting an update for perf. + cf. + + +* 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. + + +* ab/ref-filter-no-contains (2017-03-11) 1 commit + - ref-filter: add --no-contains option to tag/branch/for-each-ref + + "git tag/branch/for-each-ref" family of commands long allowed to + filter the refs by "--contains X" (show only the refs that are + descendants of X), "--merged X" (show only the refs that are + ancestors of X), "--no-merged X" (show only the refs that are not + ancestors of X). One curious omission, "--no-contains X" (show + only the refs that are not descendants of X) has been added to + them. + + Expecting a reroll. + cf. + The topic is almost there. + + * sg/completion-refs-speedup (2017-02-13) 13 commits - squash! completion: fill COMPREPLY directly when completing refs - completion: fill COMPREPLY directly when completing refs @@ -402,291 +571,92 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* ab/ref-filter-no-contains (2017-03-11) 1 commit - - ref-filter: add --no-contains option to tag/branch/for-each-ref - (this branch uses jk/ref-filter-flags-cleanup.) - - "git tag/branch/for-each-ref" family of commands long allowed to - filter the refs by "--contains X" (show only the refs that are - descendants of X), "--merged X" (show only the refs that are - ancestors of X), "--no-merged X" (show only the refs that are not - ancestors of X). One curious omission, "--no-contains X" (show - only the refs that are not descendants of X) has been added to - them. - - Expecting a reroll. - cf. - The topic is almost there. - - -* bc/sha1-header-selection-with-cpp-macros (2017-03-14) 1 commit - (merged to 'next' on 2017-03-14 at 60bf8c5822) - + hash.h: move SHA-1 implementation selection into a header file - - Our source code has used the SHA1_HEADER cpp macro after "#include" - in the C code to switch among the SHA-1 implementations. Instead, - list the exact header file names and switch among implementations - using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif"; - this helps some IDE tools. - - Will merge to 'master'. - - -* bw/attr-pathspec (2017-03-13) 2 commits - (merged to 'next' on 2017-03-14 at 3af5d6c1fc) - + pathspec: allow escaped query values - + pathspec: allow querying for attributes - - The pathspec mechanism learned to further limit the paths that - match the pattern to those that have specified attributes attached - via the gitattributes mechanism. - - Will merge to 'master'. - - -* jk/http-walker-buffer-underflow-fix (2017-03-13) 1 commit - (merged to 'next' on 2017-03-14 at 02020b475d) - + http-walker: fix buffer underflow processing remote alternates - - "Dumb http" transport used to misparse a nonsense http-alternates - response, which has been fixed. - - Will merge to 'master'. - - -* rs/blame-code-cleanup (2017-03-11) 1 commit - (merged to 'next' on 2017-03-12 at 8fd4bf325a) - + blame: move blame_entry duplication to add_blame_entry() +* bw/submodule-is-active (2017-03-17) 10 commits + - submodule add: respect submodule.active and submodule..active + - submodule--helper init: set submodule..active + - clone: teach --recurse-submodules to optionally take a pathspec + - submodule init: initialize active submodules + - submodule: decouple url and submodule interest + - submodule--helper clone: check for configured submodules using helper + - submodule sync: use submodule--helper is-active + - submodule sync: skip work for inactive submodules + - submodule status: use submodule--helper is-active + - submodule--helper: add is-active subcommand - Code clean-up. + "what URL do we want to update this submodule?" and "are we + interested in this submodule?" are split into two distinct + concepts, and then the way used to express the latter got extended, + paving a way to make it easier to manage a project with many + submodules and make it possible to later extend use of multiple + worktrees for a project with submodules. - Will merge to 'master'. + This looks almost ready for 'next'. Any more comments? -* dl/credential-cache-socket-in-xdg-cache (2017-03-13) 1 commit +* dl/credential-cache-socket-in-xdg-cache (2017-03-17) 3 commits + - credential-cache: add tests for XDG functionality + - credential-cache: use XDG_CACHE_HOME for socket - path.c: add xdg_cache_home The default location "~/.git-credential-cache/socket" for the socket used to communicate with the credential-cache daemon has been moved to "~/.cache/git/credential/socket". - Waiting for a reroll. - The patches do not yet match the above description without - the second one that is not queued here. - - -* jk/ref-filter-flags-cleanup (2017-03-10) 4 commits - (merged to 'next' on 2017-03-14 at c335c9cf6e) - + ref-filter: use separate cache for contains_tag_algo - + ref-filter: die on parse_commit errors - + ref-filter: use contains_result enum consistently - + ref-filter: move ref_cbdata definition into ref-filter.c - (this branch is used by ab/ref-filter-no-contains.) - - "git tag --contains" used to (ab)use the object bits to keep track - of the state of object reachability without clearing them after - use; this has been cleaned up and made to use the newer commit-slab - facility. - - Will merge to 'master'. - - -* sb/rev-parse-show-superproject-root (2017-03-08) 1 commit - (merged to 'next' on 2017-03-14 at 537c299db6) - + rev-parse: add --show-superproject-working-tree - - From a working tree of a repository, a new option of "rev-parse" - lets you ask if the repository is used as a submodule of another - project, and where the root level of the working tree of that - project (i.e. your superproject) is. - - Will merge to 'master'. - - -* ls/filter-process-delayed (2017-03-06) 1 commit - - convert: add "status=delayed" to filter process protocol - - What's the status of this one??? + Will merge to 'next'. - cf. - -* js/early-config (2017-03-14) 12 commits - (merged to 'next' on 2017-03-14 at ce43b4a309) - + setup.c: mention unresolved problems - + t1309: document cases where we would want early config not to die() - + setup_git_directory_gently_1(): avoid die()ing - + t1309: test read_early_config() - + read_early_config(): really discover .git/ - + read_early_config(): avoid .git/config hack when unneeded - + setup: make read_early_config() reusable - + setup: introduce the discover_git_directory() function - + setup_git_directory_1(): avoid changing global state - + setup: prepare setup_discovered_git_dir() for the root directory - + setup_git_directory(): use is_dir_sep() helper - + t7006: replace dubious test - - The start-up sequence of "git" needs to figure out some configured - settings before it finds and set itself up in the location of the - repository and was quite messy due to its "chicken-and-egg" nature. - The code has been restructured. - - Will merge to 'master'. - - -* jk/sha1dc (2017-03-01) 7 commits - - Put sha1dc on a diet - - sha1dc: avoid 'for' loop initial decl - - sha1dc: resurrect LICENSE file - - sha1dc: avoid c99 declaration-after-statement - - Makefile: add USE_SHA1DC knob +* jk/sha1dc (2017-03-17) 6 commits + - Makefile: make DC_SHA1 the default + - t0013: add a basic sha1 collision detection test + - Makefile: add DC_SHA1 knob + - sha1dc: disable safe_hash feature - sha1dc: adjust header includes for git - - add collision-detecting sha1 implementation + - sha1dc: add collision-detecting sha1 implementation Borrow "detect attempt to create collisions" variant of SHA-1 implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft). - Expecting a cleaned-up reroll after discussion settles. - cf. + This looks almost ready for 'next'. Any more comments? * nd/conditional-config-include (2017-03-11) 3 commits - - config: add conditional include - - config.txt: reflow the second include.path paragraph - - config.txt: clarify multiple key values in include.path + (merged to 'next' on 2017-03-17 at 788a931e39) + + config: add conditional include + + config.txt: reflow the second include.path paragraph + + config.txt: clarify multiple key values in include.path The configuration file learned a new "includeIf..path" that includes the contents of the given path only when the condition holds. This allows you to say "include this work-related bit only in the repositories under my ~/work/ directory". - Will merge to 'next' after squashing niggle-fixes in. - - -* cc/split-index-config (2017-03-06) 22 commits - (merged to 'next' on 2017-03-12 at 53cdc2016d) - + Documentation/git-update-index: explain splitIndex.* - + Documentation/config: add splitIndex.sharedIndexExpire - + read-cache: use freshen_shared_index() in read_index_from() - + read-cache: refactor read_index_from() - + t1700: test shared index file expiration - + read-cache: unlink old sharedindex files - + config: add git_config_get_expiry() from gc.c - + read-cache: touch shared index files when used - + sha1_file: make check_and_freshen_file() non static - + Documentation/config: add splitIndex.maxPercentChange - + t1700: add tests for splitIndex.maxPercentChange - + read-cache: regenerate shared index if necessary - + config: add git_config_get_max_percent_split_change() - + Documentation/git-update-index: talk about core.splitIndex config var - + Documentation/config: add information for core.splitIndex - + t1700: add tests for core.splitIndex - + update-index: warn in case of split-index incoherency - + read-cache: add and then use tweak_split_index() - + split-index: add {add,remove}_split_index() functions - + config: add git_config_get_split_index() - + t1700: change here document style - + config: mark an error message up for translation - - The experimental "split index" feature has gained a few - configuration variables to make it easier to use. - Will merge to 'master'. -* jk/interop-test (2017-03-10) 2 commits - (merged to 'next' on 2017-03-12 at 704b328022) - + t/interop: add test of old clients against modern git-daemon - + t: add an interoperability test harness - - Picking two versions of Git and running tests to make sure the - older one and the newer one interoperate happily has now become - possible. - - Will merge to 'master'. - - -* 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. - - -* 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> - - -* jh/memihash-opt (2017-02-17) 5 commits - - name-hash: remember previous dir_entry during lazy_init_name_hash - - name-hash: specify initial size for istate.dir_hash table - - name-hash: precompute hash values during preload-index - - hashmap: allow memihash computation to be continued - - name-hash: eliminate duplicate memihash call - - Expecting an update for perf. - cf. - - -* sb/checkout-recurse-submodules (2017-03-11) 18 commits - - submodule--helper.c: remove duplicate code +* sb/checkout-recurse-submodules (2017-03-16) 19 commits - builtin/read-tree: add --recurse-submodules switch - builtin/checkout: add --recurse-submodules switch - entry.c: create submodules when interesting - unpack-trees: check if we can perform the operation for submodules - unpack-trees: pass old oid to verify_clean_submodule - update submodules: add submodule_move_head + - submodule.c: get_super_prefix_or_empty - update submodules: move up prepare_submodule_repo_env - submodules: introduce check to see whether to touch a submodule - update submodules: add a config option to determine if submodules are updated - update submodules: add submodule config parsing - - connect_work_tree_and_git_dir: safely create leading directories - make is_submodule_populated gently - lib-submodule-update.sh: define tests for recursing into submodules - lib-submodule-update.sh: replace sha1 by hash - lib-submodule-update: teach test_submodule_content the -C flag - lib-submodule-update.sh: do not use ./. as submodule remote - lib-submodule-update.sh: reorder create_lib_submodule_repo + - submodule--helper.c: remove duplicate code + - connect_work_tree_and_git_dir: safely create leading directories "git checkout" is taught --recurse-submodules option. - -* bc/object-id (2017-02-22) 19 commits - (merged to 'next' on 2017-03-14 at 0b3ec5a05e) - + wt-status: convert to struct object_id - + builtin/merge-base: convert to struct object_id - + Convert object iteration callbacks to struct object_id - + sha1_file: introduce an nth_packed_object_oid function - + refs: simplify parsing of reflog entries - + refs: convert each_reflog_ent_fn to struct object_id - + reflog-walk: convert struct reflog_info to struct object_id - + builtin/replace: convert to struct object_id - + Convert remaining callers of resolve_refdup to object_id - + builtin/merge: convert to struct object_id - + builtin/clone: convert to struct object_id - + builtin/branch: convert to struct object_id - + builtin/grep: convert to struct object_id - + builtin/fmt-merge-message: convert to struct object_id - + builtin/fast-export: convert to struct object_id - + builtin/describe: convert to struct object_id - + builtin/diff-tree: convert to struct object_id - + builtin/commit: convert to struct object_id - + hex: introduce parse_oid_hex - - "uchar [40]" to "struct object_id" conversion continues. - - Will merge to 'master'. + This looks almost ready for 'next'. Any more comments? * jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit @@ -723,27 +693,3 @@ of the repositories listed at The beginning of "split bundle", which could be one of the ingredients to allow "git clone" traffic off of the core server network to CDN. - --------------------------------------------------- -[Discarded] - -* jk/auto-namelen-in-interpret-branch-name (2017-02-27) 1 commit - . interpret_branch_name(): handle auto-namelen for @{-1} - - A small bug in the code that parses @{...} has been fixed. - - This is now a part of jk/interpret-branch-name topic. - - -* jt/mark-tree-uninteresting-for-uninteresting-commit (2017-02-28) 3 commits - . upload-pack: compute blob reachability correctly - . revision: exclude trees/blobs given commit - . revision: unify {tree,blob}_objects in rev_info - - The revision/object traversal machinery did not mark all tree and - blob objects that are contained in an uninteresting commit as - uninteresting, because that is quite costly. Instead, it only - marked those that are contained in an uninteresting boundary commit - as uninteresting. - - Retracted. -- 2.47.3