From 810f4b4ba8e7a50dd9a178228e6fac987e718ffc Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 17 Oct 2016 15:20:43 -0700 Subject: [PATCH] What's cooking (2016/10 #04) --- whats-cooking.txt | 907 ++++++++++++++++++++-------------------------- 1 file changed, 390 insertions(+), 517 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 4822c338fb..0004c3ace1 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 (Oct 2016, #03; Tue, 11) -X-master-at: 8a36cd87b7c85a651ab388d403629865ffa3ba0d -X-next-at: 28fc3e53f99219d01faa8a76452eac5ca9d631c2 +Subject: What's cooking in git.git (Oct 2016, #04; Mon, 17) +X-master-at: 659889482ac63411daea38b2c3d127842ea04e4d +X-next-at: 6021889cc14df07d4366829367d2c4a11d1eaa56 -What's cooking in git.git (Oct 2016, #03; Tue, 11) +What's cooking in git.git (Oct 2016, #04; Mon, 17) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,12 +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. -A handful of topics have been merged to 'master' and the upcoming -release started to take shape. Quite a few topics that no longer -merge cleanly to 'pu' and have been excluded from 'pu' for some time -have finally been moved to the Discarded section (many of them are -expected to be updated and return). - You can find the changes described here in the integration branches of the repositories listed at @@ -26,126 +20,6 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit - (merged to 'next' on 2016-09-22 at 4449584c26) - + imap-send: Tell cURL to use imap:// or imaps:// - - When we started cURL to talk to imap server when a new enough - version of cURL library is available, we forgot to explicitly add - imap(s):// before the destination. To some folks, that didn't work - and the library tried to make HTTP(s) requests instead. - - -* cp/completion-negative-refs (2016-08-24) 1 commit - (merged to 'next' on 2016-09-22 at abd1585aa6) - + completion: support excluding refs - - The command-line completion script (in contrib/) learned to - complete "git cmd ^mas" to complete the negative end of - reference to "git cmd ^master". - - -* dp/autoconf-curl-ssl (2016-06-28) 1 commit - (merged to 'next' on 2016-09-22 at 9c5aeeced9) - + ./configure.ac: detect SSL in libcurl using curl-config - - The ./configure script generated from configure.ac was taught how - to detect support of SSL by libcurl better. - - -* jc/blame-reverse (2016-06-14) 2 commits - (merged to 'next' on 2016-09-22 at d1a8e9ce99) - + blame: dwim "blame --reverse OLD" as "blame --reverse OLD.." - + blame: improve diagnosis for "--reverse NEW" - - It is a common mistake to say "git blame --reverse OLD path", - expecting that the command line is dwimmed as if asking how lines - in path in an old revision OLD have survived up to the current - commit. - - -* jk/pack-objects-optim-mru (2016-08-11) 4 commits - (merged to 'next' on 2016-09-21 at 97b919bdbd) - + pack-objects: use mru list when iterating over packs - + pack-objects: break delta cycles before delta-search phase - + sha1_file: make packed_object_info public - + provide an initializer for "struct object_info" - - Originally merged to 'next' on 2016-08-11 - - "git pack-objects" in a repository with many packfiles used to - spend a lot of time looking for/at objects in them; the accesses to - the packfiles are now optimized by checking the most-recently-used - packfile first. - - -* nd/shallow-deepen (2016-06-13) 27 commits - (merged to 'next' on 2016-09-22 at f0cf3e3385) - + 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.c: mark strings for translating - + 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: make check_non_tip() clean things up on error - + 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". - - -* rs/qsort (2016-10-03) 6 commits - (merged to 'next' on 2016-10-06 at 32a5bd3c88) - + show-branch: use QSORT - + use QSORT, part 2 - + coccicheck: use --all-includes by default - + remove unnecessary check before QSORT - + use QSORT - + add QSORT - - We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of - the time third parameter is redundant. A new QSORT() macro lets us - omit it. - --------------------------------------------------- -[New Topics] - -* ab/gitweb-abbrev-links (2016-10-06) 3 commits - - gitweb: link to "git describe"'d commits in log messages - - gitweb: link to 7-char+ SHA-1s, not only 8-char+ - - gitweb: fix a typo in a comment - - In addition to purely abbreviated commit object names, "gitweb" - learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787) - into clickable links in its output. - - Waiting for review. - - * da/mergetool-diff-order (2016-10-11) 4 commits (merged to 'next' on 2016-10-11 at 3d1b98c16d) + mergetool: honor -O @@ -156,7 +30,72 @@ of the repositories listed at "git mergetool" learned to honor "-O" to control the order of paths to present to the end user. - Will merge to 'master'. + +* dt/http-empty-auth (2016-10-04) 1 commit + (merged to 'next' on 2016-10-10 at 10b7b0a6a5) + + http: http.emptyauth should allow empty (not just NULL) usernames + + http.emptyauth configuration is a way to allow an empty username to + pass when attempting to authenticate using mechanisms like + Kerberos. We took an unspecified (NULL) username and sent ":" + (i.e. no username, no password) to CURLOPT_USERPWD, but did not do + the same when the username is explicitly set to an empty string. + + +* jk/alt-odb-cleanup (2016-10-10) 18 commits + (merged to 'next' on 2016-10-10 at d2ed6b6d21) + + alternates: use fspathcmp to detect duplicates + + sha1_file: always allow relative paths to alternates + + count-objects: report alternates via verbose mode + + fill_sha1_file: write into a strbuf + + alternates: store scratch buffer as strbuf + + fill_sha1_file: write "boring" characters + + alternates: use a separate scratch space + + alternates: encapsulate alt->base munging + + alternates: provide helper for allocating alternate + + alternates: provide helper for adding to alternates list + + link_alt_odb_entry: refactor string handling + + link_alt_odb_entry: handle normalize_path errors + + t5613: clarify "too deep" recursion tests + + t5613: do not chdir in main process + + t5613: whitespace/style cleanups + + t5613: use test_must_fail + + t5613: drop test_valid_repo function + + t5613: drop reachable_via function + (this branch is used by jk/quarantine-received-objects.) + + Codepaths involved in interacting alternate object store have + been cleaned up. + + +* jk/clone-copy-alternates-fix (2016-10-05) 1 commit + (merged to 'next' on 2016-10-10 at 8154134c8c) + + clone: detect errors in normalize_path_copy + + "git clone" of a local repository can be done at the filesystem + level, but the codepath did not check errors while copying and + adjusting the file that lists alternate object stores. + + +* jk/quarantine-received-objects (2016-10-10) 5 commits + (merged to 'next' on 2016-10-10 at 0fd3e3b2ef) + + tmp-objdir: do not migrate files starting with '.' + + tmp-objdir: put quarantine information in the environment + + receive-pack: quarantine objects until pre-receive accepts + + tmp-objdir: introduce API for temporary object directories + + check_connected: accept an env argument + (this branch uses jk/alt-odb-cleanup.) + + In order for the receiving end of "git push" to inspect the + received history and decide to reject the push, the objects sent + from the sending end need to be made available to the hook and + the mechanism for the connectivity check, and this was done + traditionally by storing the objects in the receiving repository + and letting "git gc" to expire it. Instead, store the newly + received objects in a temporary area, and make them available by + reusing the alternate object store mechanism to them only while we + decide if we accept the check, and once we decide, either migrate + them to the repository or purge them immediately. * jk/ref-symlink-loop (2016-10-10) 2 commits @@ -167,48 +106,28 @@ of the repositories listed at A stray symbolic link in $GIT_DIR/refs/ directory could make name resolution loop forever, which has been corrected. - Will merge to 'master'. +* js/regexec-buf (2016-10-10) 1 commit + (merged to 'next' on 2016-10-11 at 466a26548c) + + configure.ac: improve description of NO_REGEX test -* js/prepare-sequencer (2016-10-10) 26 commits - - SQUASH: nobody uses this function yet - - sequencer: mark all error messages for translation - - sequencer: start error messages consistently with lower case - - sequencer: quote filenames in error messages - - sequencer: mark action_name() for translation - - sequencer: remove overzealous assumption in rebase -i mode - - sequencer: refactor write_message() - - sequencer: left-trim lines read from the script - - sequencer: do not try to commit when there were merge conflicts - - sequencer: support cleaning up commit messages - - sequencer: support amending commits - - sequencer: allow editing the commit message on a case-by-case basis - - sequencer: introduce a helper to read files written by scripts - - sequencer: prepare for rebase -i's commit functionality - - sequencer: remember the onelines when parsing the todo file - - sequencer: refactor the code to obtain a short commit name - - sequencer: get rid of the subcommand field - - sequencer: avoid completely different messages for different actions - - sequencer: strip CR from the todo script - - sequencer: completely revamp the "todo" script parsing - - sequencer: future-proof read_populate_todo() - - sequencer: eventually release memory allocated for the option values - - sequencer: future-proof remove_sequencer_state() - - sequencer: avoid unnecessary indirection - - sequencer: use memoized sequencer directory path - - sequencer: use static initializers for replay_opts + A follow-up to an already graduated topic. - Update of the sequencer codebase to make it reusable to reimplement - "rebase -i" continues. - Waiting for review. +* js/reset-usage (2016-10-11) 1 commit + (merged to 'next' on 2016-10-11 at 61ad4a7c0e) + + reset: fix usage + Message fix-up. -* js/regexec-buf (2016-10-10) 1 commit - (merged to 'next' on 2016-10-11 at 466a26548c) - + configure.ac: improve description of NO_REGEX test - Will merge to 'master'. +* nd/commit-p-doc (2016-10-05) 1 commit + (merged to 'next' on 2016-10-10 at 5a9996dd7b) + + git-commit.txt: clarify --patch mode with pathspec + + Documentation for "git commit" was updated to clarify that "commit + -p " adds to the current contents of the index to come up + with what to commit. * rs/cocci (2016-10-10) 2 commits @@ -218,98 +137,158 @@ of the repositories listed at Code cleanup. + +* rs/pretty-format-color-doc-fix (2016-10-11) 1 commit + (merged to 'next' on 2016-10-11 at f0ae64bcbd) + + pretty: fix document link for color specification + + Small doc update. + + +* sb/submodule-config-doc-drop-path (2016-10-11) 1 commit + (merged to 'next' on 2016-10-11 at 28fc3e53f9) + + documentation: improve submodule..{url, path} description + + The "submodule..path" stored in .gitmodules is never copied + to .git/config and such a key in .git/config has no meaning, but + the documentation described it and submodule..url next to + each other as if both belong to .git/config. This has been fixed. + +-------------------------------------------------- +[New Topics] + +* dk/worktree-dup-checkout-with-bare-is-ok (2016-10-14) 1 commit + (merged to 'next' on 2016-10-17 at 24594d3e56) + + worktree: allow the main brach of a bare repository to be checked out + + In a worktree connected to a repository elsewhere, created via "git + worktree", "git checkout" attempts to protect users from confusion + by refusing to check out a branch that is already checked out in + another worktree. However, this also prevented checking out a + branch, which is designated as the primary branch of a bare + reopsitory, in a worktree that is connected to the bare + repository. The check has been corrected to allow it. + Will merge to 'master'. -* sb/submodule-ignore-trailing-slash (2016-10-10) 2 commits - (merged to 'next' on 2016-10-11 at e37425ed17) - + submodule: ignore trailing slash in relative url - + submodule: ignore trailing slash on superproject URL +* jc/cocci-xstrdup-or-null (2016-10-12) 1 commit + (merged to 'next' on 2016-10-17 at 55ceaa465a) + + cocci: refactor common patterns to use xstrdup_or_null() - A minor regression fix for "git submodule". + Code cleanup. Will merge to 'master'. -* st/verify-tag (2016-10-10) 7 commits - - t/t7004-tag: Add --format specifier tests - - t/t7030-verify-tag: Add --format specifier tests - - builtin/tag: add --format argument for tag -v - - builtin/verify-tag: add --format to verify-tag - - tag: add format specifier to gpg_verify_tag - - ref-filter: add function to print single ref_array_item - - gpg-interface, tag: add GPG_VERIFY_QUIET flag +* tb/convert-stream-check (2016-10-12) 2 commits + - convert.c: stream and fast search for binary + - read-cache: factor out get_sha1_from_index() helper - "git tag" and "git verify-tag" learned to put GPG verification - status in their "--format=" output format. + End-of-line conversion sometimes needs to see if the current blob + in the index has NULs and CRs to base its decision. We used to + always get a full statistics over the blob, but in many cases we + can return early when we have seen "enough" (e.g. if we see a + single NUL, the blob will be handled as binary). The codepaths + have been optimized by using streaming interface. - Is this ready for 'next'? + Waiting for review. -* js/reset-usage (2016-10-11) 1 commit - (merged to 'next' on 2016-10-11 at 61ad4a7c0e) - + reset: fix usage +* jk/ambiguous-short-object-names (2016-10-12) 1 commit + - t1512: become resilient to GETTEXT_POISON build - Will merge to 'master'. + A test fixup to recently graduated topic. + Will merge to 'next'. -* mm/credential-libsecret (2016-10-11) 1 commit - - contrib: add credential helper for libsecret + +* jk/merge-base-fork-point-without-reflog (2016-10-12) 1 commit + - merge-base: handle --fork-point without reflog + + "git rebase" immediately after "git clone" failed to find the fork + point from the upstream. Will merge to 'next'. -* rs/pretty-format-color-doc-fix (2016-10-11) 1 commit - (merged to 'next' on 2016-10-11 at f0ae64bcbd) - + pretty: fix document link for color specification +* jk/upload-pack-use-prio-queue (2016-10-11) 1 commit + - upload-pack: use priority queue in reachable() check - Will merge to 'master'. + Code clean-up and performance improvement to reduce use of + timestamp-ordered commit-list by replacing it with a priority + queue. + Will merge to 'next'. -* sb/attr (2016-10-11) 28 commits - - attr: convert to new threadsafe API - - attr: make git_check_attr_counted static - - attr: make git_attr_counted static - - attr.c: outline the future plans by heavily commenting - - attr.c: always pass check[] to collect_some_attrs() - - attr.c: introduce empty_attr_check_elems() - - attr.c: correct ugly hack for git_all_attrs() - - attr.c: rename a local variable check - - attr.c: pass struct git_attr_check down the callchain - - attr.c: add push_stack() helper - - attr: support quoting pathname patterns in C style - - attr: expose validity check for attribute names - - attr: add counted string version of git_attr() - - attr: add counted string version of git_check_attr() - - attr: retire git_check_attrs() API - - attr: convert git_check_attrs() callers to use the new API - - attr: convert git_all_attrs() to use "struct git_attr_check" - - attr: (re)introduce git_check_attr() and struct git_attr_check - - attr: rename function and struct related to checking attributes - - attr.c: plug small leak in parse_attr_line() - - attr.c: tighten constness around "git_attr" structure - - attr.c: simplify macroexpand_one() - - attr.c: mark where #if DEBUG ends more clearly - - attr.c: complete a sentence in a comment - - attr.c: explain the lack of attr-name syntax check in parse_attr() - - attr.c: update a stale comment on "struct match_attr" - - attr.c: use strchrnul() to scan for one line - - commit.c: use strchrnul() to scan for one line - The attributes API has been updated so that it can later be - optimized using the knowledge of which attributes are queried. +* jk/fetch-quick-tag-following (2016-10-14) 1 commit + - fetch: use "quick" has_sha1_file for tag following + When fetching from a remote that has many tags that are irrelevant + to branches we are following, we used to waste way too many cycles + when checking if the object pointed at by a tag (that we are not + going to fetch!) exists in our repository too carefully. -* sb/submodule-config-doc-drop-path (2016-10-11) 1 commit - (merged to 'next' on 2016-10-11 at 28fc3e53f9) - + documentation: improve submodule..{url, path} description + Will merge to 'next'. - The "submodule..path" stored in .gitmodules is never copied - to .git/config and such a key in .git/config has no meaning, but - the documentation described it and submodule..url next to - each other as if both belong to .git/config. This has been fixed. - Will merge to 'master'. +* jt/trailer-with-cruft (2016-10-14) 6 commits + - trailer: support values folded to multiple lines + - trailer: allow non-trailers in trailer block + - trailer: make args have their own struct + - trailer: streamline trailer item create and add + - trailer: use list.h for doubly-linked list + - trailer: improve const correctness + + Update "interpret-trailers" machinery and teaches it that people in + real world write all sorts of crufts in the "trailer" that was + originally designed to have the neat-o "Mail-Header: like thing" + and nothing else. + + Waiting for review. + + +* mm/send-email-cc-cruft-after-address (2016-10-14) 1 commit + - parse_mailboxes: accept extra text after <...> address + + "git send-email" attempts to pick up valid e-mails from the + trailers, but people in real world write non-addresses there, like + "Cc: Stable # 4.8+", which broke the output depending + on the availability and vintage of Mail::Address perl module. + + Will merge to 'next'. + + +* va/i18n (2016-10-17) 7 commits + - i18n: diff: mark warnings for translation + - i18n: credential-cache--daemon: mark advice for translation + - i18n: convert mark error messages for translation + - i18n: apply: mark error message for translation + - i18n: apply: mark error messages for translation + - i18n: apply: mark info messages for translation + - i18n: apply: mark plural string for translation + + More i18n. + + Will merge to 'next'. + + +* jk/tighten-alloc (2016-10-17) 2 commits + - inline xalloc_flex() into FLEXPTR_ALLOC_MEM + - avoid pointer arithmetic involving NULL in FLEX_ALLOC_MEM + + Protect our code from over-eager compilers. + + Will merge to 'next'. + + +* pb/test-parse-options-expect (2016-10-17) 1 commit + - t0040: convert all possible tests to use `test-parse-options --expect` + + Test clean-up. + + Will merge to 'next'. -------------------------------------------------- [Stalled] @@ -427,16 +406,170 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* pb/bisect (2016-10-14) 28 commits + - SQUASH??? + - 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 + + GSoC "bisect" topic. + + +* ab/gitweb-abbrev-links (2016-10-14) 3 commits + (merged to 'next' on 2016-10-17 at 4868def05e) + + gitweb: link to "git describe"'d commits in log messages + + gitweb: link to 7-char+ SHA-1s, not only 8-char+ + + gitweb: fix a typo in a comment + + In addition to purely abbreviated commit object names, "gitweb" + learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787) + into clickable links in its output. + + Will merge to 'master'. + + +* js/prepare-sequencer (2016-10-17) 25 commits + - sequencer: mark all error messages for translation + - sequencer: start error messages consistently with lower case + - sequencer: quote filenames in error messages + - sequencer: mark action_name() for translation + - sequencer: remove overzealous assumption in rebase -i mode + - sequencer: refactor write_message() + - sequencer: left-trim lines read from the script + - sequencer: do not try to commit when there were merge conflicts + - sequencer: support cleaning up commit messages + - sequencer: support amending commits + - sequencer: allow editing the commit message on a case-by-case basis + - sequencer: introduce a helper to read files written by scripts + - sequencer: prepare for rebase -i's commit functionality + - sequencer: remember the onelines when parsing the todo file + - sequencer: get rid of the subcommand field + - sequencer: avoid completely different messages for different actions + - sequencer: strip CR from the todo script + - sequencer: completely revamp the "todo" script parsing + - sequencer: refactor the code to obtain a short commit name + - sequencer: future-proof read_populate_todo() + - sequencer: eventually release memory allocated for the option values + - sequencer: future-proof remove_sequencer_state() + - sequencer: avoid unnecessary indirection + - sequencer: use memoized sequencer directory path + - sequencer: use static initializers for replay_opts + + Update of the sequencer codebase to make it reusable to reimplement + "rebase -i" continues. + + Waiting for review. + + +* sb/submodule-ignore-trailing-slash (2016-10-10) 2 commits + (merged to 'next' on 2016-10-11 at e37425ed17) + + submodule: ignore trailing slash in relative url + + submodule: ignore trailing slash on superproject URL + + A minor regression fix for "git submodule". + + It seems that POSIX emulation layer of Windows is not cooperating; + this may have to wait (or tentatively reverted in Windows port) for + the resolution of the issue. + + cf. + + +* st/verify-tag (2016-10-10) 7 commits + - t/t7004-tag: Add --format specifier tests + - t/t7030-verify-tag: Add --format specifier tests + - builtin/tag: add --format argument for tag -v + - builtin/verify-tag: add --format to verify-tag + - tag: add format specifier to gpg_verify_tag + - ref-filter: add function to print single ref_array_item + - gpg-interface, tag: add GPG_VERIFY_QUIET flag + + "git tag" and "git verify-tag" learned to put GPG verification + status in their "--format=" output format. + + Is this ready for 'next'? + + +* mm/credential-libsecret (2016-10-11) 1 commit + (merged to 'next' on 2016-10-17 at 1b4af03ba4) + + contrib: add credential helper for libsecret + + A new credential helper that talks via "libsecret" with + implementations of XDG Secret Service API has been added to + contrib/credential/. + + Will merge to 'master'. + + +* sb/attr (2016-10-11) 28 commits + - attr: convert to new threadsafe API + - attr: make git_check_attr_counted static + - attr: make git_attr_counted static + - attr.c: outline the future plans by heavily commenting + - attr.c: always pass check[] to collect_some_attrs() + - attr.c: introduce empty_attr_check_elems() + - attr.c: correct ugly hack for git_all_attrs() + - attr.c: rename a local variable check + - attr.c: pass struct git_attr_check down the callchain + - attr.c: add push_stack() helper + - attr: support quoting pathname patterns in C style + - attr: expose validity check for attribute names + - attr: add counted string version of git_attr() + - attr: add counted string version of git_check_attr() + - attr: retire git_check_attrs() API + - attr: convert git_check_attrs() callers to use the new API + - attr: convert git_all_attrs() to use "struct git_attr_check" + - attr: (re)introduce git_check_attr() and struct git_attr_check + - attr: rename function and struct related to checking attributes + - attr.c: plug small leak in parse_attr_line() + - attr.c: tighten constness around "git_attr" structure + - attr.c: simplify macroexpand_one() + - attr.c: mark where #if DEBUG ends more clearly + - attr.c: complete a sentence in a comment + - attr.c: explain the lack of attr-name syntax check in parse_attr() + - attr.c: update a stale comment on "struct match_attr" + - attr.c: use strchrnul() to scan for one line + - commit.c: use strchrnul() to scan for one line + + The attributes API has been updated so that it can later be + optimized using the knowledge of which attributes are queried. + + * jc/ws-error-highlight (2016-10-04) 4 commits - - diff: introduce diff.wsErrorHighlight option - - diff.c: move ws-error-highlight parsing helpers up - - diff.c: refactor parse_ws_error_highlight() - - t4015: split out the "setup" part of ws-error-highlight test + (merged to 'next' on 2016-10-17 at ecbdc57d77) + + diff: introduce diff.wsErrorHighlight option + + diff.c: move ws-error-highlight parsing helpers up + + diff.c: refactor parse_ws_error_highlight() + + t4015: split out the "setup" part of ws-error-highlight test "git diff/log --ws-error-highlight=" lacked the corresponding configuration variable to set it by default. - Will merge to 'next'. + Will merge to 'master'. * jk/abbrev-auto (2016-10-03) 1 commit @@ -451,28 +584,6 @@ of the repositories listed at Undecided. -* jk/clone-copy-alternates-fix (2016-10-05) 1 commit - (merged to 'next' on 2016-10-10 at 8154134c8c) - + clone: detect errors in normalize_path_copy - - "git clone" of a local repository can be done at the filesystem - level, but the codepath did not check errors while copying and - adjusting the file that lists alternate object stores. - - Will merge to 'master'. - - -* nd/commit-p-doc (2016-10-05) 1 commit - (merged to 'next' on 2016-10-10 at 5a9996dd7b) - + git-commit.txt: clarify --patch mode with pathspec - - Documentation for "git commit" was updated to clarify that "commit - -p " adds to the current contents of the index to come up - with what to commit. - - Will merge to 'master'. - - * nd/ita-empty-commit (2016-09-28) 3 commits - commit: don't be fooled by ita entries when creating initial commit - diff-lib.c: enable --shift-ita in index_differs_from() @@ -503,75 +614,12 @@ of the repositories listed at Will hold to see if people scream. -* dt/http-empty-auth (2016-10-04) 1 commit - (merged to 'next' on 2016-10-10 at 10b7b0a6a5) - + http: http.emptyauth should allow empty (not just NULL) usernames - - http.emptyauth configuration is a way to allow an empty username to - pass when attempting to authenticate using mechanisms like - Kerberos. We took an unspecified (NULL) username and sent ":" - (i.e. no username, no password) to CURLOPT_USERPWD, but did not do - the same when the username is explicitly set to an empty string. - - Will merge to 'master'. - - * jc/diff-unique-abbrev-comments (2016-09-30) 1 commit - - diff_unique_abbrev(): document its assumption and limitation + (merged to 'next' on 2016-10-17 at c7fb286102) + + diff_unique_abbrev(): document its assumption and limitation A bit more comments in a tricky code. - Will merge to 'next'. - - -* jk/quarantine-received-objects (2016-10-10) 5 commits - (merged to 'next' on 2016-10-10 at 0fd3e3b2ef) - + tmp-objdir: do not migrate files starting with '.' - + tmp-objdir: put quarantine information in the environment - + receive-pack: quarantine objects until pre-receive accepts - + tmp-objdir: introduce API for temporary object directories - + check_connected: accept an env argument - (this branch uses jk/alt-odb-cleanup.) - - In order for the receiving end of "git push" to inspect the - received history and decide to reject the push, the objects sent - from the sending end need to be made available to the hook and - the mechanism for the connectivity check, and this was done - traditionally by storing the objects in the receiving repository - and letting "git gc" to expire it. Instead, store the newly - received objects in a temporary area, and make them available by - reusing the alternate object store mechanism to them only while we - decide if we accept the check, and once we decide, either migrate - them to the repository or purge them immediately. - - Will merge to 'master'. - - -* jk/alt-odb-cleanup (2016-10-10) 18 commits - (merged to 'next' on 2016-10-10 at d2ed6b6d21) - + alternates: use fspathcmp to detect duplicates - + sha1_file: always allow relative paths to alternates - + count-objects: report alternates via verbose mode - + fill_sha1_file: write into a strbuf - + alternates: store scratch buffer as strbuf - + fill_sha1_file: write "boring" characters - + alternates: use a separate scratch space - + alternates: encapsulate alt->base munging - + alternates: provide helper for allocating alternate - + alternates: provide helper for adding to alternates list - + link_alt_odb_entry: refactor string handling - + link_alt_odb_entry: handle normalize_path errors - + t5613: clarify "too deep" recursion tests - + t5613: do not chdir in main process - + t5613: whitespace/style cleanups - + t5613: use test_must_fail - + t5613: drop test_valid_repo function - + t5613: drop reachable_via function - (this branch is used by jk/quarantine-received-objects.) - - Codepaths involved in interacting alternate object store have - been cleaned up. - Will merge to 'master'. @@ -609,38 +657,40 @@ of the repositories listed at Will hold to see if people scream. -* mg/gpg-richer-status (2016-10-06) 2 commits - - SQUASH: gpg-interface: use more status letters - - gpg-interface: use more status letters +* mg/gpg-richer-status (2016-10-12) 1 commit + (merged to 'next' on 2016-10-17 at 8843a6a8be) + + gpg-interface: use more status letters The GPG verification status shown in "%G?" pretty format specifier was not rich enough to differentiate a signature made by an expired key, a signature made by a revoked key, etc. New output letters have been assigned to express them. - Waiting for a response to ping/squash. + Will merge to 'master'. * js/libify-require-clean-work-tree (2016-10-07) 6 commits - - wt-status: begin error messages with lower-case - - wt-status: teach has_{unstaged,uncommitted}_changes() about submodules - - wt-status: export also the has_un{staged,committed}_changes() functions - - wt-status: make the require_clean_work_tree() function reusable - - pull: make code more similar to the shell script again - - pull: drop confusing prefix parameter of die_on_unclean_work_tree() + (merged to 'next' on 2016-10-17 at f5c20df38b) + + wt-status: begin error messages with lower-case + + wt-status: teach has_{unstaged,uncommitted}_changes() about submodules + + wt-status: export also the has_un{staged,committed}_changes() functions + + wt-status: make the require_clean_work_tree() function reusable + + pull: make code more similar to the shell script again + + pull: drop confusing prefix parameter of die_on_unclean_work_tree() The require_clean_work_tree() helper was recreated in C when "git pull" was rewritten from shell; the helper is now made available to other callers in preparation for upcoming "rebase -i" work. - Will merge to 'next'. + Will merge to 'master'. * bw/ls-files-recurse-submodules (2016-10-10) 4 commits - - ls-files: add pathspec matching for submodules - - ls-files: pass through safe options for --recurse-submodules - - ls-files: optionally recurse into submodules - - git: make super-prefix option + (merged to 'next' on 2016-10-17 at f0e398946a) + + ls-files: add pathspec matching for submodules + + ls-files: pass through safe options for --recurse-submodules + + ls-files: optionally recurse into submodules + + git: make super-prefix option "git ls-files" learned "--recurse-submodules" option that can be used to get a listing of tracked files across submodules (i.e. this @@ -649,10 +699,10 @@ of the repositories listed at side of a pipe that is read with xargs to work on all working tree files from the top-level superproject. - Will merge to 'next'. + Will merge to 'master'. -* ls/filter-process (2016-10-10) 14 commits +* ls/filter-process (2016-10-17) 14 commits - contrib/long-running-filter: add long running filter example - convert: add filter..process option - convert: prepare filter..process option @@ -760,180 +810,3 @@ of the repositories listed at cf. <5671DB28.8020901@kdbg.org> Will merge to 'master'. - --------------------------------------------------- -[Discarded] - -* jc/attr (2016-05-25) 18 commits - . attr: support quoting pathname patterns in C style - . attr: expose validity check for attribute names - . attr: add counted string version of git_attr() - . attr: add counted string version of git_check_attr() - . attr: retire git_check_attrs() API - . attr: convert git_check_attrs() callers to use the new API - . attr: convert git_all_attrs() to use "struct git_attr_check" - . attr: (re)introduce git_check_attr() and struct git_attr_check - . attr: rename function and struct related to checking attributes - . attr.c: plug small leak in parse_attr_line() - . attr.c: tighten constness around "git_attr" structure - . attr.c: simplify macroexpand_one() - . attr.c: mark where #if DEBUG ends more clearly - . attr.c: complete a sentence in a comment - . attr.c: explain the lack of attr-name syntax check in parse_attr() - . attr.c: update a stale comment on "struct match_attr" - . attr.c: use strchrnul() to scan for one line - . commit.c: use strchrnul() to scan for one line - (this branch is used by jc/attr-more, sb/pathspec-label and sb/submodule-default-paths.) - - The attributes API has been updated so that it can later be - optimized using the knowledge of which attributes are queried. - - I wanted to polish this topic further to make the attribute - subsystem thread-ready, but because other topics depend on this - topic and they do not (yet) need it to be thread-ready. - - As the authors of topics that depend on this seem not in a hurry, - let's discard this and dependent topics and restart them some other - day. - - -* jc/attr-more (2016-06-09) 8 commits - . attr.c: outline the future plans by heavily commenting - . attr.c: always pass check[] to collect_some_attrs() - . attr.c: introduce empty_attr_check_elems() - . attr.c: correct ugly hack for git_all_attrs() - . attr.c: rename a local variable check - . fixup! d5ad6c13 - . attr.c: pass struct git_attr_check down the callchain - . attr.c: add push_stack() helper - (this branch uses jc/attr; is tangled with sb/pathspec-label and sb/submodule-default-paths.) - - The beginning of long and tortuous journey to clean-up attribute - subsystem implementation. - - Needs to be redone. - - -* sb/submodule-default-paths (2016-06-20) 5 commits - . completion: clone can recurse into submodules - . clone: add --init-submodule= switch - . submodule update: add `--init-default-path` switch - . Merge branch 'sb/pathspec-label' into sb/submodule-default-paths - . Merge branch 'jc/attr' into sb/submodule-default-paths - (this branch uses jc/attr and sb/pathspec-label; is tangled with jc/attr-more.) - - Allow specifying the set of submodules the user is interested in on - the command line of "git clone" that clones the superproject. - - -* sb/pathspec-label (2016-06-03) 6 commits - . pathspec: disable preload-index when attribute pathspec magic is in use - . pathspec: allow escaped query values - . pathspec: allow querying for attributes - . pathspec: move prefix check out of the inner loop - . pathspec: move long magic parsing out of prefix_pathspec - . Documentation: fix a typo - (this branch is used by sb/submodule-default-paths; uses jc/attr; is tangled with jc/attr-more.) - - The pathspec mechanism learned ":(attr:X)$pattern" pathspec magic - to limit paths that match $pattern further by attribute settings. - The preload-index mechanism is disabled when the new pathspec magic - is in use (at least for now), because the attribute subsystem is - not thread-ready. - - -* sb/bisect (2016-04-15) 22 commits - . SQUASH??? - . bisect: get back halfway shortcut - . bisect: compute best bisection in compute_relevant_weights() - . bisect: use a bottom-up traversal to find relevant weights - . bisect: prepare for different algorithms based on find_all - . bisect: rename count_distance() to compute_weight() - . bisect: make total number of commits global - . bisect: introduce distance_direction() - . bisect: extract get_distance() function from code duplication - . bisect: use commit instead of commit list as arguments when appropriate - . bisect: replace clear_distance() by unique markers - . bisect: use struct node_data array instead of int array - . bisect: get rid of recursion in count_distance() - . bisect: make algorithm behavior independent of DEBUG_BISECT - . bisect: make bisect compile if DEBUG_BISECT is set - . bisect: plug the biggest memory leak - . bisect: add test for the bisect algorithm - . t6030: generalize test to not rely on current implementation - . t: use test_cmp_rev() where appropriate - . t/test-lib-functions.sh: generalize test_cmp_rev - . bisect: allow 'bisect run' if no good commit is known - . bisect: write about `bisect next` in documentation - - The internal algorithm used in "git bisect" to find the next commit - to check has been optimized greatly. - - Was expecting a reroll, but now pb/bisect topic starts removinging - more and more parts from git-bisect.sh, this needs to see a fresh - reroll. - - cf. <1460294354-7031-1-git-send-email-s-beyer@gmx.net> - - -* sg/completion-updates (2016-02-28) 21 commits - . completion: cache the path to the repository - . completion: extract repository discovery from __gitdir() - . completion: don't guard git executions with __gitdir() - . completion: consolidate silencing errors from git commands - . completion: don't use __gitdir() for git commands - . completion: respect 'git -C ' - . completion: fix completion after 'git -C ' - . completion: don't offer commands when 'git --opt' needs an argument - . rev-parse: add '--absolute-git-dir' option - . completion: list short refs from a remote given as a URL - . completion: don't list 'HEAD' when trying refs completion outside of a repo - . completion: list refs from remote when remote's name matches a directory - . completion: respect 'git --git-dir=' when listing remote refs - . completion: fix most spots not respecting 'git --git-dir=' - . completion: ensure that the repository path given on the command line exists - . completion tests: add tests for the __git_refs() helper function - . completion tests: check __gitdir()'s output in the error cases - . completion tests: consolidate getting path of current working directory - . completion tests: make the $cur variable local to the test helper functions - . completion tests: don't add test cruft to the test repository - . completion: improve __git_refs()'s in-code documentation - - Has been waiting for a reroll for too long. - cf. <1456754714-25237-1-git-send-email-szeder@ira.uka.de> - - -* pb/bisect (2016-08-23) 27 commits - . bisect--helper: remove the dequote in bisect_start() - . bisect--helper: retire `--bisect-auto-next` subcommand - . bisect--helper: retire `--bisect-autostart` subcommand - . bisect--helper: retire `--check-and-set-terms` 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 - . 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 - - GSoC "bisect" topic. - - I'd prefer to see early part solidified so that reviews can focus - on the later part that is still in flux. We are almost there but - not quite yet. -- 2.47.3