From: Junio C Hamano Date: Thu, 25 Feb 2016 23:13:07 +0000 (-0800) Subject: What's cooking (2016/02 #07) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f97dbcdc8e34a037736bba4c9d352f884142d0ce;p=thirdparty%2Fgit.git What's cooking (2016/02 #07) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index c8078b8197..7107558997 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 (Feb 2016, #06; Mon, 22) -X-master-at: 70bd996071bf724a7b151c81a165e8837179d6d7 -X-next-at: 5fe9e24d37736b932d9f6fc17afbc616cde818a3 +Subject: What's cooking in git.git (Feb 2016, #07; Thu, 25) +X-master-at: 56f37fda511e1615dc6df86c68f3b841711a7828 +X-next-at: 947c399e45ebc1a76d1e80d7152aa630726ed7e6 -What's cooking in git.git (Feb 2016, #06; Mon, 22) +What's cooking in git.git (Feb 2016, #07; Thu, 25) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,11 +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. -I originally penciled in -rc0 for today, but let's give a handful of -topics that are cooking in 'next' a few more time and merge them to -'master' before doing so. On the 'maint' front, there is 2.7.2 out, -that merges the fixes accumulated on 'master' so far. - You can find the changes described here in the integration branches of the repositories listed at @@ -25,86 +20,324 @@ repositories listed at -------------------------------------------------- [Graduated to "master"] -* ew/connect-verbose (2016-02-15) 1 commit - (merged to 'next' on 2016-02-18 at 5555b13) - + t5570: add tests for "git {clone,fetch,pull} -v" +* bc/http-empty-auth (2016-02-15) 1 commit + (merged to 'next' on 2016-02-18 at 6d2fc88) + + http: add option to try authentication without username + + Some authentication methods do not need username or password, but + libcurl needs some hint that it needs to perform authentication. + Supplying an empty username and password string is a valid way to + do so, but you can set the http.[.]emptyAuth configuration + variable to achieve the same, if you find it cleaner. + + +* ce/https-public-key-pinning (2016-02-15) 1 commit + (merged to 'next' on 2016-02-18 at f382cf0) + + http: implement public key pinning + + You can now set http.[.]pinnedpubkey to specify the pinned + public key when building with recent enough versions of libcURL. + + +* ew/force-ipv4 (2016-02-12) 1 commit + (merged to 'next' on 2016-02-18 at d0211b0) + + connect & http: support -4 and -6 switches for remote operations + + "git fetch" and friends that make network connections can now be + told to only use ipv4 (or ipv6). + + +* jc/am-i-v-fix (2016-02-17) 3 commits + (merged to 'next' on 2016-02-18 at 331e518) + + am -i: fix "v"iew + + pager: factor out a helper to prepare a child process to run the pager + + pager: lose a separate argv[] + + The "v(iew)" subcommand of the interactive "git am -i" command was + broken in 2.6.0 timeframe when the command was rewritten in C. + + +* jk/lose-name-path (2016-02-12) 5 commits + (merged to 'next' on 2016-02-18 at 85831a6) + + list-objects: pass full pathname to callbacks + + list-objects: drop name_path entirely + + list-objects: convert name_path to a strbuf + + show_object_with_name: simplify by using path_name() + + http-push: stop using name_path + + The "name_path" API was an attempt to reduce the need to construct + the full path out of a series of path components while walking a + tree hierarchy, but over time made less efficient because the path + needs to be flattened, e.g. to be compared with another path that + is already flat. The API has been removed and its users have been + rewritten to simplify the overall code complexity. - A missing test for a recent feature has been added. + +* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits + (merged to 'next' on 2016-02-18 at fc7caf4) + + get_sha1: don't die() on bogus search strings + + check_filename: tighten dwim-wildcard ambiguity + + checkout: reorder check_filename conditional + + "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a + rev, i.e. the object named by the the pathname with wildcard + characters in a tree object. + + +* nd/exclusion-regression-fix (2016-02-15) 4 commits + (merged to 'next' on 2016-02-18 at 85412ab) + + dir.c: don't exclude whole dir prematurely + + dir.c: support marking some patterns already matched + + dir.c: support tracing exclude + + dir.c: fix match_pathname() + + Another try to add support to the ignore mechanism that lets you + say "this is excluded" and then later say "oh, no, this part (that + is a subset of the previous part) is not excluded". + + +* nd/git-common-dir-fix (2016-02-12) 1 commit + (merged to 'next' on 2016-02-18 at 957afc5) + + rev-parse: take prefix into account in --git-common-dir + + "git rev-parse --git-common-dir" used in the worktree feature + misbehaved when run from a subdirectory. -* jk/config-include (2016-02-13) 1 commit - (merged to 'next' on 2016-02-18 at 8491d55) - + git-config: better document default behavior for `--include` +* nd/worktree-add-B (2016-02-15) 2 commits + (merged to 'next' on 2016-02-18 at bf77016) + + worktree add -B: do the checkout test before update branch + + worktree: fix "add -B" - A belated documentation update clarifies the interaction between - "--file", "--include" and "[include] path = $over_there". + "git worktree add -B " did not work. -* js/git-remote-add-url-insteadof-test (2016-02-17) 1 commit - (merged to 'next' on 2016-02-18 at ef1d82e) - + t5505: 'remote add x y' should work when url.y.insteadOf = x +* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit + (merged to 'next' on 2016-02-18 at 1339fe4) + + remote-curl: include curl_errorstr on SSL setup failures - A missing test for a rather old change has been added. + Help those who debug http(s) part of the system. -------------------------------------------------- [New Topics] -* sb/submodule-init (2016-02-19) 2 commits - - submodule: port init from shell to C - - submodule: port resolve_relative_url from shell to C - (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.) +* jg/credential-cache-chdir-to-sockdir (2016-02-23) 3 commits + (merged to 'next' on 2016-02-25 at ad35811) + + credential-cache--daemon: change to the socket dir on startup + + credential-cache--daemon: disallow relative socket path + + credential-cache--daemon: refactor check_socket_directory + The "credential-cache" daemon process used to run in whatever + directory it happened to start in, but this made umount(2)ing the + filesystem that houses the repository harder; now the process + chdir()s to the directory that house its own socket on startup. -* ak/extract-argv0-last-dir-sep (2016-02-19) 1 commit - - exec_cmd.c: use find_last_dir_sep() for code simplification + Will merge to 'master'. - Code simplification. - Will merge to 'next'. +* jk/no-diff-emit-common (2016-02-22) 3 commits + (merged to 'next' on 2016-02-24 at 72626ea) + + xdiff: drop XDL_EMIT_COMMON + + merge-tree: drop generate_common strategy + + merge-one-file: use empty blob for add/add base + "git merge-tree" used to mishandle "both sides added" conflict with + its own "create a fake ancestor file that has the common parts of + what both sides have added and do a 3-way merge" logic; this has + been updated to use the usual "3-way merge with an empty blob as + the fake common ancestore file" approach used in the rest of the + system. -* az/p4-bare-no-rebase (2016-02-19) 1 commit - - git-p4.py: Don't try to rebase on submit from bare repository + Will merge to 'master'. - "git p4 submit" attempts to do a rebase, which would fail if done - in a bare repository. Not doing this rebase would paper over the - failure, which is what this patch does, but it is unclear what the - side effect of not rebasing is. - Needs a better explanation. +* mm/push-default-warning (2016-02-25) 1 commit + (merged to 'next' on 2016-02-25 at 753352f) + + push: remove "push.default is unset" warning message + Across the transition at around Git version 2.0, the user used to + get a pretty loud warning when running "git push" without setting + push.default configuration variable. We started to tone down the + warning message, given that the transition is over long time ago. -* ak/git-strip-extension-from-dashed-command (2016-02-21) 1 commit - - git.c: simplify stripping extension of a file in handle_builtin() + Will merge to 'master'. - Code simplification. + +* mm/push-simple-doc (2016-02-23) 1 commit + (merged to 'next' on 2016-02-25 at dc4f57c) + + Documentation/git-push: document that 'simple' is the default + + The documentation did not clearly state that the 'simple' mode is + now the default for "git push" when push.default configuration is + not set. + + Will merge to 'master'. + + +* nd/shallow-deepen (2016-02-23) 25 commits + - fetch, upload-pack: --deepen=N extends shallow boundary by N commits + - upload-pack: add get_reachable_list() + - upload-pack: split check_unreachable() in two, prep for get_reachable_list() + - t5500, t5539: tests for shallow depth excluding a ref + - clone: define shallow clone boundary with --shallow-exclude + - fetch: define shallow boundary with --shallow-exclude + - upload-pack: support define shallow boundary by excluding revisions + - refs: add expand_ref() + - t5500, t5539: tests for shallow depth since a specific date + - clone: define shallow clone boundary based on time with --shallow-since + - fetch: define shallow boundary with --shallow-since + - upload-pack: add deepen-since to cut shallow repos based on time + - shallow.c: implement a generic shallow boundary finder based on rev-list + - fetch-pack: use a separate flag for fetch in deepening mode + - fetch-pack: use a common function for verbose printing + - fetch-pack: use skip_prefix() instead of starts_with() + - upload-pack: move rev-list code out of check_non_tip() + - upload-pack: tighten number parsing at "deepen" lines + - upload-pack: use skip_prefix() instead of starts_with() + - upload-pack: move "unshallow" sending code out of deepen() + - upload-pack: remove unused variable "backup" + - upload-pack: move "shallow" sending code out of deepen() + - upload-pack: move shallow deepen code out of receive_needs() + - transport-helper.c: refactor set_helper_option() + - remote-curl.c: convert fetch_git() to use argv_array + + The existing "git fetch --depth=" option was hard to use + correctly when making the history of an existing shallow clone + deeper. A new option, "--deepen=", has been added to make this + easier to use. "git clone" also learned "--shallow-since=" + and "--shallow-exclude=" options to make it easier to specify + "I am interested only in the recent N months worth of history" and + "Give me only the history since that version". + + Needs review. + + +* ps/plug-xdl-merge-leak (2016-02-23) 1 commit + (merged to 'next' on 2016-02-25 at 523609e) + + xdiff/xmerge: fix memory leak in xdl_merge + + Will merge to 'master'. + + +* jk/epipe-in-async (2016-02-25) 4 commits + (merged to 'next' on 2016-02-25 at 4482ddf) + + t5504: handle expected output from SIGPIPE death + + test_must_fail: report number of unexpected signal + + fetch-pack: ignore SIGPIPE in sideband demuxer + + write_or_die: handle EPIPE in async threads + + Handling of errors while writing into our internal asynchronous + process has been made more robust, which reduces flakiness in our + tests. + + Will merge to 'master'. + + +* js/config-set-in-non-repository (2016-02-25) 1 commit + (merged to 'next' on 2016-02-25 at a675267) + + git config: report when trying to modify a non-existing repo config + + "git config section.var value" to set a value in per-repository + configuration file should have failed when it was run outside any + repository, but didn't. + + Will merge to 'master'. + + +* sb/submodule-module-list-fix (2016-02-24) 1 commit + (merged to 'next' on 2016-02-25 at 21be607) + + submodule helper list: respect correct path prefix + + A helper function "git submodule" uses since v2.7.0 to list the + modules that match the pathspec argument given to its subcommands + (e.g. "submodule add ") has been fixed. + + Will merge to 'master'. + + +* sb/submodule-fetch-nontip (2016-02-24) 1 commit + (merged to 'next' on 2016-02-25 at 1e412f0) + + submodule: try harder to fetch needed sha1 by direct fetching sha1 + + When "git submodule update" did not result in fetching the commit + object in the submodule that is referenced by the superproject, the + command learned to retry another fetch, specifically asking for + that commit that may not be connected to the refs it usually + fetches. + + Will merge to 'master'. + + +* dt/initial-ref-xn-commit-doc (2016-02-25) 1 commit + (merged to 'next' on 2016-02-25 at e32d0f6) + + refs: document transaction semantics + + Will merge to 'master'. + + +* jk/pack-idx-corruption-safety (2016-02-25) 3 commits + - use_pack: handle signed off_t overflow + - nth_packed_object_offset: bounds-check extended offset + - t5313: test bounds-checks of corrupted/malicious pack/idx files + + The code to read the pack data using the offsets stored in the pack + idx file has been made more carefully check the validity of the + data in the idx. Will merge to 'next'. -* jk/grep-binary-workaround-in-test (2016-02-21) 2 commits - - t9200: avoid grep on non-ASCII data - - t8005: avoid grep on non-ASCII data +* ls/makefile-cflags-developer-tweak (2016-02-25) 1 commit + (merged to 'next' on 2016-02-25 at 14bb065) + + add DEVELOPER makefile knob to check for acknowledged warnings - Will see a reroll. + There is a new DEVELOPER knob that enables many compiler warning + options in the Makefile. + Will merge to 'master'. -* mg/work-tree-tests (2016-02-20) 1 commit - - tests: rename work-tree tests to *work-tree* - Traditionally, the tests that try commands that work on the - contents in the working tree were named with "worktree" in their - filenames, but with the recent addition of "git worktree" - subcommand, whose tests are also named similarly, it has become - harder to tell them apart. The traditional tests have been renamed - to use "work-tree" instead in an attempt to differentiate them. +* ma/update-hooks-sample-typofix (2016-02-25) 1 commit + (merged to 'next' on 2016-02-25 at be49c79) + + templates/hooks: fix minor typo in the sample update-hook + Will merge to 'master'. -* jk/more-comments-on-textconv (2016-02-22) 1 commit - - diff: clarify textconv interface - The memory ownership rule of fill_textconv() API, which was a bit - tricky, has been documented a bit better. +* mm/diff-renames-default (2016-02-25) 5 commits + (merged to 'next' on 2016-02-25 at 947c399) + + diff: activate diff.renames by default + + log: introduce init_log_defaults() + + t: add tests for diff.renames (true/false/unset) + + t4001-diff-rename: wrap file creations in a test + + Documentation/diff-config: fix description of diff.renames + + The end-user facing Porcelain level commands like "diff" and "log" + now enables the rename detection by default. + + Will merge to 'master'. + + +* mm/readme-markdown (2016-02-25) 5 commits + (merged to 'next' on 2016-02-25 at b8bda29) + + README.md: move down historical explanation about the name + + README.md: don't call git stupid in the title + + README.md: move the link to git-scm.com up + + README.md: add hyperlinks on filenames + + README: use markdown syntax + + Move README to README.md and tweak its contents slightly to make it + easier on the eyes. + + Will merge to 'master'. + + +* mp/upload-pack-use-embedded-args (2016-02-25) 1 commit + - upload-pack: use argv_array for pack_objects + + The embedded args argv-array in the child process is used to build + the command line to run pack-objects instead of using a separate + array of strings. Will merge to 'next'. @@ -193,174 +426,160 @@ repositories listed at -------------------------------------------------- [Cooking] -* cn/deprecate-ssh-git-url (2016-02-15) 1 commit - - Disown ssh+git and git+ssh +* sb/submodule-init (2016-02-25) 2 commits + - submodule: port init from shell to C + - submodule: port resolve_relative_url from shell to C + (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.) - Needs toning down by replacing the condescendence with an - explanation and enlightenment. - ($gmane/286222) + Update of "git submodule" to move pieces of logic to C continues. + Comments? + ($gmane/286092) -* nd/git-common-dir-fix (2016-02-12) 1 commit - (merged to 'next' on 2016-02-18 at 957afc5) - + rev-parse: take prefix into account in --git-common-dir - "git rev-parse --git-common-dir" used in the worktree feature - misbehaved when run from a subdirectory. +* ak/extract-argv0-last-dir-sep (2016-02-19) 1 commit + (merged to 'next' on 2016-02-24 at f590eb0) + + exec_cmd.c: use find_last_dir_sep() for code simplification + + Code simplification. Will merge to 'master'. -* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit - (merged to 'next' on 2016-02-18 at 1339fe4) - + remote-curl: include curl_errorstr on SSL setup failures +* az/p4-bare-no-rebase (2016-02-19) 1 commit + - git-p4.py: Don't try to rebase on submit from bare repository - Help those who debug http(s) part of the system. + "git p4 submit" attempts to do a rebase, which would fail if done + in a bare repository. Not doing this rebase would paper over the + failure, which is what this patch does, but it is unclear what the + side effect of not rebasing is. - Will merge to 'master'. + Needs a better explanation. -* bc/http-empty-auth (2016-02-15) 1 commit - (merged to 'next' on 2016-02-18 at 6d2fc88) - + http: add option to try authentication without username +* ak/git-strip-extension-from-dashed-command (2016-02-21) 1 commit + (merged to 'next' on 2016-02-24 at 8a84f91) + + git.c: simplify stripping extension of a file in handle_builtin() - Some authentication methods do not need username or password, but - libcurl needs some hint that it needs to perform authentication. - Supplying an empty username and password string is a valid way to - do so, but you can set the http.[.]emptyAuth configuration - variable to achieve the same, if you find it cleaner. + Code simplification. Will merge to 'master'. -* ce/https-public-key-pinning (2016-02-15) 1 commit - (merged to 'next' on 2016-02-18 at f382cf0) - + http: implement public key pinning +* jk/grep-binary-workaround-in-test (2016-02-23) 2 commits + (merged to 'next' on 2016-02-25 at 0e96ae8) + + t9200: avoid grep on non-ASCII data + + t8005: avoid grep on non-ASCII data - You can now set http.[.]pinnedpubkey to specify the pinned - public key when building with recent enough versions of libcURL. + Recent versions of GNU grep are pickier when their input contains + arbitrary binary data, which some of our tests uses. Rewrite the + tests to sidestep the problem. Will merge to 'master'. -* fa/merge-recursive-no-rename (2016-02-22) 4 commits - - merge-recursive: find-renames resets threshold - - merge-strategies.txt: fix typo - (merged to 'next' on 2016-02-18 at dd6125b) - + merge-recursive: more consistent interface - + merge-recursive: option to disable renames - - "git merge-recursive" learned "--no-renames" option to disable its - rename detection logic. - - -* jc/am-i-v-fix (2016-02-17) 3 commits - (merged to 'next' on 2016-02-18 at 331e518) - + am -i: fix "v"iew - + pager: factor out a helper to prepare a child process to run the pager - + pager: lose a separate argv[] +* mg/work-tree-tests (2016-02-20) 1 commit + (merged to 'next' on 2016-02-25 at ca8cbb0) + + tests: rename work-tree tests to *work-tree* - The "v(iew)" subcommand of the interactive "git am -i" command was - broken in 2.6.0 timeframe when the command was rewritten in C. + Traditionally, the tests that try commands that work on the + contents in the working tree were named with "worktree" in their + filenames, but with the recent addition of "git worktree" + subcommand, whose tests are also named similarly, it has become + harder to tell them apart. The traditional tests have been renamed + to use "work-tree" instead in an attempt to differentiate them. Will merge to 'master'. -* jk/merge-tree-merge-blobs (2016-02-16) 1 commit - - merge_blobs: use strbuf instead of manually-sized mmfile_t - - "git merge-tree" (a throw-away demonstration) did not work very - well when merging "both sides added a new file at the same path" - case. - - Undecided; we might be better off deleting it altogether. - - -* jk/tighten-alloc (2016-02-19) 21 commits - - ewah: convert to REALLOC_ARRAY, etc - - convert ewah/bitmap code to use xmalloc - - diff_populate_gitlink: use a strbuf - - transport_anonymize_url: use xstrfmt - - git-compat-util: drop mempcpy compat code - - sequencer: simplify memory allocation of get_message - - test-path-utils: fix normalize_path_copy output buffer size - - fetch-pack: simplify add_sought_entry - - fast-import: simplify allocation in start_packfile - - write_untracked_extension: use FLEX_ALLOC helper - - prepare_{git,shell}_cmd: use argv_array - - use st_add and st_mult for allocation size computation - - convert trivial cases to FLEX_ARRAY macros - - use xmallocz to avoid size arithmetic - - convert trivial cases to ALLOC_ARRAY - - convert manual allocations to argv_array - - add helpers for allocating flex-array structs - - harden REALLOC_ARRAY and xcalloc against size_t overflow - - tree-diff: catch integer overflow in combine_diff_path allocation - - add helpers for detecting size_t overflow - - reflog_expire_cfg: NUL-terminate pattern field +* jk/more-comments-on-textconv (2016-02-22) 1 commit + (merged to 'next' on 2016-02-24 at 4ccfdc5) + + diff: clarify textconv interface - Update various codepaths to avoid manually-counted malloc(). + The memory ownership rule of fill_textconv() API, which was a bit + tricky, has been documented a bit better. + Will merge to 'master'. -* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits - (merged to 'next' on 2016-02-18 at fc7caf4) - + get_sha1: don't die() on bogus search strings - + check_filename: tighten dwim-wildcard ambiguity - + checkout: reorder check_filename conditional - "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a - rev, i.e. the object named by the the pathname with wildcard - characters in a tree object. +* cn/deprecate-ssh-git-url (2016-02-15) 1 commit + - Disown ssh+git and git+ssh - Will merge to 'master'. + Needs toning down by replacing the condescendence with an + explanation and enlightenment. + ($gmane/286222) -* nd/exclusion-regression-fix (2016-02-15) 4 commits - (merged to 'next' on 2016-02-18 at 85412ab) - + dir.c: don't exclude whole dir prematurely - + dir.c: support marking some patterns already matched - + dir.c: support tracing exclude - + dir.c: fix match_pathname() +* fa/merge-recursive-no-rename (2016-02-24) 7 commits + (merged to 'next' on 2016-02-25 at 8f18cc1) + + t3034: test deprecated interface + + t3034: test option to disable renames + + t3034: add rename threshold tests + + merge-recursive: find-renames resets threshold + + merge-strategies.txt: fix typo + (merged to 'next' on 2016-02-18 at dd6125b) + + merge-recursive: more consistent interface + + merge-recursive: option to disable renames - Another try to add support to the ignore mechanism that lets you - say "this is excluded" and then later say "oh, no, this part (that - is a subset of the previous part) is not excluded". + "git merge-recursive" learned "--no-renames" option to disable its + rename detection logic. Will merge to 'master'. -* nd/worktree-add-B (2016-02-15) 2 commits - (merged to 'next' on 2016-02-18 at bf77016) - + worktree add -B: do the checkout test before update branch - + worktree: fix "add -B" +* jk/tighten-alloc (2016-02-22) 22 commits + (merged to 'next' on 2016-02-24 at 78b3251) + + ewah: convert to REALLOC_ARRAY, etc + + convert ewah/bitmap code to use xmalloc + + diff_populate_gitlink: use a strbuf + + transport_anonymize_url: use xstrfmt + + git-compat-util: drop mempcpy compat code + + sequencer: simplify memory allocation of get_message + + test-path-utils: fix normalize_path_copy output buffer size + + fetch-pack: simplify add_sought_entry + + fast-import: simplify allocation in start_packfile + + write_untracked_extension: use FLEX_ALLOC helper + + prepare_{git,shell}_cmd: use argv_array + + use st_add and st_mult for allocation size computation + + convert trivial cases to FLEX_ARRAY macros + + use xmallocz to avoid size arithmetic + + convert trivial cases to ALLOC_ARRAY + + convert manual allocations to argv_array + + argv-array: add detach function + + add helpers for allocating flex-array structs + + harden REALLOC_ARRAY and xcalloc against size_t overflow + + tree-diff: catch integer overflow in combine_diff_path allocation + + add helpers for detecting size_t overflow + + reflog_expire_cfg: NUL-terminate pattern field - "git worktree add -B " did not work. + Update various codepaths to avoid manually-counted malloc(). Will merge to 'master'. * ps/config-error (2016-02-22) 15 commits - - config: rename git_config_set_or_die to git_config_set - - config: rename git_config_set to git_config_set_gently - - compat: die when unable to set core.precomposeunicode - - sequencer: die on config error when saving replay opts - - init-db: die on config errors when initializing empty repo - - clone: die on config error in cmd_clone - - remote: die on config error when manipulating remotes - - remote: die on config error when setting/adding branches - - remote: die on config error when setting URL - - submodule--helper: die on config error when cloning module - - submodule: die on config error when linking modules - - branch: die on config error when editing branch description - - branch: die on config error when unsetting upstream - - branch: report errors in tracking branch setup - - config: introduce set_or_die wrappers + (merged to 'next' on 2016-02-25 at b378629) + + config: rename git_config_set_or_die to git_config_set + + config: rename git_config_set to git_config_set_gently + + compat: die when unable to set core.precomposeunicode + + sequencer: die on config error when saving replay opts + + init-db: die on config errors when initializing empty repo + + clone: die on config error in cmd_clone + + remote: die on config error when manipulating remotes + + remote: die on config error when setting/adding branches + + remote: die on config error when setting URL + + submodule--helper: die on config error when cloning module + + submodule: die on config error when linking modules + + branch: die on config error when editing branch description + + branch: die on config error when unsetting upstream + + branch: report errors in tracking branch setup + + config: introduce set_or_die wrappers Many codepaths forget to check return value from git_config_set(); the function is made to die() to make sure we do not proceed when setting a configuration variable failed. - Will merge to 'next'. + Will merge to 'master'. * ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit @@ -386,44 +605,17 @@ repositories listed at * ls/config-origin (2016-02-22) 4 commits - - config: add '--show-origin' option to print the origin of a config value - - config: add 'origin_type' to config_source struct - - rename git_config_from_buf to git_config_from_mem - - t: do not hide Git's exit code in tests using 'nul_to_q' + (merged to 'next' on 2016-02-24 at 239fcc2) + + config: add '--show-origin' option to print the origin of a config value + + config: add 'origin_type' to config_source struct + + rename git_config_from_buf to git_config_from_mem + + t: do not hide Git's exit code in tests using 'nul_to_q' The configuration system has been taught to phrase where it found a bad configuration variable in a better way in its error messages. "git config" learnt a new "--show-origin" option to indicate where the values come from. - Will merge to 'next'. - - -* ew/force-ipv4 (2016-02-12) 1 commit - (merged to 'next' on 2016-02-18 at d0211b0) - + connect & http: support -4 and -6 switches for remote operations - - "git fetch" and friends that make network connections can now be - told to only use ipv4 (or ipv6). - - Will merge to 'master'. - - -* jk/lose-name-path (2016-02-12) 5 commits - (merged to 'next' on 2016-02-18 at 85831a6) - + list-objects: pass full pathname to callbacks - + list-objects: drop name_path entirely - + list-objects: convert name_path to a strbuf - + show_object_with_name: simplify by using path_name() - + http-push: stop using name_path - - The "name_path" API was an attempt to reduce the need to construct - the full path out of a series of path components while walking a - tree hierarchy, but over time made less efficient because the path - needs to be flattened, e.g. to be compared with another path that - is already flat. The API has been removed and its users have been - rewritten to simplify the overall code complexity. - Will merge to 'master'. @@ -443,12 +635,13 @@ repositories listed at "git grep -i" has been taught to fold case in non-ascii locales. - Comments? + Needs review. ($gmane/286137) -* tb/conversion (2016-02-21) 7 commits - - convert.c: correct attr_action() +* tb/conversion (2016-02-23) 7 commits + (merged to 'next' on 2016-02-25 at 1bb466d) + + convert.c: correct attr_action() (merged to 'next' on 2016-02-12 at 6faf27b) + convert.c: simplify text_stat + convert.c: refactor crlf_action @@ -457,11 +650,19 @@ repositories listed at + convert.c: remove unused parameter 'path' + t0027: add tests for get_stream_filter() + Code simplification. + + Will merge to 'master'. + -* sb/submodule-parallel-update (2016-02-19) 7 commits +* sb/submodule-parallel-update (2016-02-25) 11 commits - clone: allow an explicit argument for parallel submodule clones - submodule update: expose parallelism to the user - git submodule update: have a dedicated helper for cloning + - run_processes_parallel: correctly terminate callbacks with an LF + - run_processes_parallel: rename parameters for the callbacks + - run-command: expose default_{start_failure, task_finished} + - run_processes_parallel: treat output of children as byte array - submodule update: direct error message to stderr - fetching submodules: respect `submodule.fetchJobs` config option - submodule-config: drop check against NULL @@ -472,12 +673,17 @@ repositories listed at advantage of the recently added framework to run download tasks in parallel. + Seems to break tests when merged to the tip of 'pu'. + -* dt/refs-backend-lmdb (2016-02-19) 28 commits +* dt/refs-backend-lmdb (2016-02-25) 34 commits + - SQUASH??? Minimum compilation band-aid - tests: add ref-storage argument - refs: tests for lmdb backend - refs: add LMDB refs storage backend - - refs: add register_ref_storage_backends() + - refs: break out resolve_ref_unsafe_submodule + - config: read ref storage config on startup + - refs: register ref storage backends - svn: learn ref-storage argument - clone: allow ref storage backend to be set for clone - refs: check submodules' ref storage config @@ -489,16 +695,19 @@ repositories listed at - refs: allow log-only updates - refs: move duplicate check to common code - refs: make lock generic - - refs: forbid cross-backend ref renames + - refs: handle non-normal ref renames - refs: add method to rename refs - refs: add methods to init refs db - refs: add method for delete_refs - refs: add method for initial ref transaction commit - refs: add methods for reflog - refs: add do_for_each_per_worktree_ref + - refs: reduce the visibility of do_for_each_ref() - refs: add method for do_for_each_ref - refs: add methods for misc ref operations - refs: add a backend method structure with transaction functions + - refs: move resolve_ref_unsafe into common code + - files-backend: break out ref reading - refs: move for_each_*ref* functions into common code - refs: move head_ref{,_submodule} to the common code - Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb @@ -605,3 +814,13 @@ repositories listed at but because we do not have such a compiler supported, this change is a net negative, churning the code without buying us anything (yet). + + +* jk/merge-tree-merge-blobs (2016-02-16) 1 commit + . merge_blobs: use strbuf instead of manually-sized mmfile_t + + "git merge-tree" (a throw-away demonstration) did not work very + well when merging "both sides added a new file at the same path" + case. + + Solved differently by jk/no-diff-emit-common topic.