From 517a1bb65de527fafbb82e9b582a4f551590c348 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 28 Aug 2015 14:04:23 -0700 Subject: [PATCH] What's cooking (2015/08 #05) --- whats-cooking.txt | 686 ++++++++++++++++++++++-------------------------------- 1 file changed, 276 insertions(+), 410 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 29030af3b9..98ea23b1d4 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 (Aug 2015, #04; Tue, 25) -X-master-at: 33f2c4ff7b9ac02cd9010d504e847b912b35baf6 -X-next-at: f2c83a76d16e5fd4c4f2e37c6ad65b3ba13dc31e +Subject: What's cooking in git.git (Aug 2015, #05; Fri, 28) +X-master-at: aecce6d0eff68a7144e32247d2e02d9974772ab1 +X-next-at: bcd55f746af0c6584187e548b53df1562e68a14d -What's cooking in git.git (Aug 2015, #04; Tue, 25) +What's cooking in git.git (Aug 2015, #05; Fri, 28) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -19,393 +19,196 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* cb/open-noatime-clear-errno (2015-08-12) 1 commit - (merged to 'next' on 2015-08-17 at 6aa43a1) - + git_open_noatime: return with errno=0 on success - - When trying to see that an object does not exist, a state errno - leaked from our "first try to open a packfile with O_NOATIME and - then if it fails retry without it" logic on a system that refuses - O_NOATIME. This confused us and caused us to die, saying that the - packfile is unreadable, when we should have just reported that the - object does not exist in that packfile to the caller. - - -* dt/notes-multiple (2015-08-11) 2 commits - (merged to 'next' on 2015-08-12 at 0052055) - + notes: handle multiple worktrees - + worktrees: add find_shared_symref - - When linked worktree is used, simultaneous "notes merge" instances - for the same ref in refs/notes/* are prevented from stomping on - each other. - - -* dt/refs-pseudo (2015-08-11) 6 commits - (merged to 'next' on 2015-08-12 at 7078eb6) - + pseudoref: check return values from read_ref() - (merged to 'next' on 2015-08-03 at 3eafd33) - + sequencer: replace write_cherry_pick_head with update_ref - + bisect: use update_ref - + pseudorefs: create and use pseudoref update and delete functions - + refs: add ref_type function - + refs: introduce pseudoref and per-worktree ref concepts - - To prepare for allowing a different "ref" backend to be plugged in - to the system, update_ref()/delete_ref() have been taught about - ref-like things like MERGE_HEAD that are per-worktree (they will - always be written to the filesystem inside $GIT_DIR). - - -* ee/clean-remove-dirs (2015-08-11) 1 commit - (merged to 'next' on 2015-08-12 at fc41b09) - + t7300-clean: require POSIXPERM for chmod 0 test - - Test updates for Windows. - - -* jc/finalize-temp-file (2015-08-10) 1 commit - (merged to 'next' on 2015-08-12 at 6fe62fe) - + sha1_file.c: rename move_temp_to_file() to finalize_object_file() - - Long overdue micro clean-up. - - -* jh/strbuf-read-use-read-in-full (2015-08-10) 1 commit - (merged to 'next' on 2015-08-12 at db16247) - + strbuf_read(): skip unnecessary strbuf_grow() at eof - - strbuf_read() used to have one extra iteration (and an unnecessary - strbuf_grow() of 8kB), which was eliminated. - - -* jk/git-path (2015-08-10) 16 commits - (merged to 'next' on 2015-08-12 at 7ebe864) - + memoize common git-path "constant" files - + get_repo_path: refactor path-allocation - + find_hook: keep our own static buffer - + refs.c: remove_empty_directories can take a strbuf - + refs.c: avoid git_path assignment in lock_ref_sha1_basic - + refs.c: avoid repeated git_path calls in rename_tmp_log - + refs.c: simplify strbufs in reflog setup and writing - + path.c: drop git_path_submodule - + refs.c: remove extra git_path calls from read_loose_refs - + remote.c: drop extraneous local variable from migrate_file - + prefer mkpathdup to mkpath in assignments - + prefer git_pathdup to git_path in some possibly-dangerous cases - + add_to_alternates_file: don't add duplicate entries - + t5700: modernize style - + cache.h: complete set of git_path_submodule helpers - + cache.h: clarify documentation for git_path, et al - (this branch is used by sb/submodule-helper.) - - git_path() and mkpath() are handy helper functions but it is easy - to misuse, as the callers need to be careful to keep the number of - active results below 4. Their uses have been reduced. - - -* jk/guess-repo-name-regression-fix (2015-08-10) 2 commits - (merged to 'next' on 2015-08-12 at 4cba33c) - + clone: use computed length in guess_dir_name - + clone: add tests for output directory - (this branch is used by ps/guess-repo-name-at-root.) +* as/docfix-reflog-expire-unreachable (2015-08-21) 1 commit + (merged to 'next' on 2015-08-25 at eb75d55) + + Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable - "git clone $URL" in recent releases of Git contains a regression in - the code that invents a new repository name incorrectly based on - the $URL. This has been corrected. + Docfix. -* jk/long-error-messages (2015-08-11) 2 commits - (merged to 'next' on 2015-08-12 at 36303cd) - + vreportf: avoid intermediate buffer - + vreportf: report to arbitrary filehandles +* cc/trailers-corner-case-fix (2015-08-21) 1 commit + (merged to 'next' on 2015-08-25 at ac25d80) + + trailer: ignore first line of message - The codepath to produce error messages had a hard-coded limit to - the size of the message, primarily to avoid memory allocation while - calling die(). + "interpret-trailers" helper mistook a single-liner log message that + has a colon as the end of existing trailer. -* jk/negative-hiderefs (2015-08-07) 2 commits - (merged to 'next' on 2015-08-12 at bdc478d) - + refs: support negative transfer.hideRefs - + docs/config.txt: reorder hideRefs config +* dt/untracked-sparse (2015-08-19) 1 commit + (merged to 'next' on 2015-08-25 at 2501a7e) + + t7063: use --force-untracked-cache to speed up a bit + (this branch is used by dt/untracked-subdir.) - A negative !ref entry in multi-value transfer.hideRefs - configuration can be used to say "don't hide this one". + Test update. -* jk/test-with-x (2015-08-07) 2 commits - (merged to 'next' on 2015-08-12 at 06576a1) - + test-lib: disable trace when test is not verbose - + test-lib: turn off "-x" tracing during chain-lint check +* dt/untracked-subdir (2015-08-19) 2 commits + (merged to 'next' on 2015-08-25 at ab4fd04) + + untracked cache: fix entry invalidation + + untracked-cache: fix subdirectory handling + (this branch uses dt/untracked-sparse.) - Running tests with the "-x" option to make them verbose had some - unpleasant interactions with other features of the test suite. + The experimental untracked-cache feature were buggy when paths with + a few levels of subdirectories are involved. -* mh/tempfile (2015-08-12) 16 commits - (merged to 'next' on 2015-08-12 at 80efcb7) - + credential-cache--daemon: use tempfile module - + credential-cache--daemon: delete socket from main() - + gc: use tempfile module to handle gc.pid file - + lock_repo_for_gc(): compute the path to "gc.pid" only once - + diff: use tempfile module - + setup_temporary_shallow(): use tempfile module - + write_shared_index(): use tempfile module - + register_tempfile(): new function to handle an existing temporary file - + tempfile: add several functions for creating temporary files - + prepare_tempfile_object(): new function, extracted from create_tempfile() - + tempfile: a new module for handling temporary files - + commit_lock_file(): use get_locked_file_path() - + lockfile: add accessor get_lock_file_path() - + lockfile: add accessors get_lock_file_fd() and get_lock_file_fp() - + create_bundle(): duplicate file descriptor to avoid closing it twice - + lockfile: move documentation to lockfile.h and lockfile.c +* ep/http-configure-ssl-version (2015-08-17) 1 commit + (merged to 'next' on 2015-08-19 at aab726b) + + http: add support for specifying the SSL version - The "lockfile" API has been rebuilt on top of a new "tempfile" API. + A new configuration variable http.sslVersion can be used to specify + what specific version of SSL/TLS to use to make a connection. -* mm/pull-upload-pack (2015-07-30) 1 commit - (merged to 'next' on 2015-08-12 at 14d2a52) - + pull.sh: quote $upload_pack when passing it to git-fetch +* jc/calloc-pathspec (2015-08-20) 1 commit + (merged to 'next' on 2015-08-25 at 877490c) + + ps_matched: xcalloc() takes nmemb and then element size - "git pull" in recent releases of Git has a regression in the code - that allows custom path to the --upload-pack=. This has - been corrected. + Minor code cleanup. - Note that this is irrelevant for 'master' with "git pull" rewritten - in C. +* jv/send-email-selective-smtp-auth (2015-08-17) 1 commit + (merged to 'next' on 2015-08-19 at 3f0c693) + + send-email: provide whitelist of SMTP AUTH mechanisms -* nd/dwim-wildcards-as-pathspecs (2015-08-11) 1 commit - (merged to 'next' on 2015-08-12 at bb73f4d) - + t2019: skip test requiring '*' in a file name non Windows + "git send-email" learned a new option --smtp-auth to limit the SMTP + AUTH mechanisms to be used to a subset of what the system library + supports. - Test updates for Windows. +* po/po-readme (2015-08-17) 1 commit + (merged to 'next' on 2015-08-19 at 1899e59) + + po/README: Update directions for l10n contributors -* ps/guess-repo-name-at-root (2015-08-10) 3 commits - (merged to 'next' on 2015-08-12 at 088860f) - + clone: abort if no dir name could be guessed - + clone: do not use port number as dir name - + clone: do not include authentication data in guessed dir - (this branch uses jk/guess-repo-name-regression-fix.) + Doc updates for i18n. - "git clone $URL", when cloning from a site whose sole purpose is to - host a single repository (hence, no path after :///), - tried to use the site name as the new repository name, but did not - remove username or password when part was of the form - @:. The code is taught to redact these. +* pt/am-builtin-abort-fix (2015-08-19) 1 commit + (merged to 'next' on 2015-08-19 at 729e682) + + am --skip/--abort: merge HEAD/ORIG_HEAD tree into index -* ps/t1509-chroot-test-fixup (2015-08-05) 2 commits - (merged to 'next' on 2015-08-12 at 6d10ea5) - + tests: fix cleanup after tests in t1509-root-worktree - + tests: fix broken && chains in t1509-root-worktree + "git am" that was recently reimplemented in C had a performance + regression in "git am --abort" that goes back to the version before + an attempted (and failed) patch application. - t1509 test that requires a dedicated VM environment had some - bitrot, which has been corrected. +* sg/help-group (2015-08-25) 1 commit + (merged to 'next' on 2015-08-25 at 907e5a8) + + generate-cmdlist: re-implement as shell script -* pt/am-builtin-options (2015-08-12) 3 commits - (merged to 'next' on 2015-08-12 at e57f754) - + am: let --signoff override --no-signoff - + am: let command-line options override saved options - + test_terminal: redirect child process' stdin to a pty - (this branch is used by jc/am-state-fix.) + We rewrote one of the build scripts in Perl but this reimplements + in Bourne shell. - After "git am --opt1" stops, running "git am --opt2" pays attention - to "--opt2" only for the patch that caused the original invocation - to stop. +* sg/t3020-typofix (2015-08-20) 1 commit + (merged to 'next' on 2015-08-25 at 051d6c0) + + t3020: fix typo in test description -* sb/check-return-from-read-ref (2015-08-03) 1 commit - (merged to 'next' on 2015-08-12 at 4a1c801) - + transport-helper: die on errors reading refs. +* sg/wt-status-header-inclusion (2015-08-21) 1 commit + (merged to 'next' on 2015-08-25 at fa5b2b2) + + wt-status: move #include "pathspec.h" to the header -* tb/complete-rebase-i-edit-todo (2015-08-05) 1 commit - (merged to 'next' on 2015-08-12 at 9606c21) - + completion: offer '--edit-todo' during interactive rebase - The command-line completion script (in contrib/) has been updated. +* ss/fix-config-fd-leak (2015-08-14) 1 commit + (merged to 'next' on 2015-08-19 at 80d4880) + + config: close config file handle in case of error -------------------------------------------------- [New Topics] -* dt/untracked-sparse (2015-08-19) 1 commit - (merged to 'next' on 2015-08-25 at 2501a7e) - + t7063: use --force-untracked-cache to speed up a bit - (this branch is used by dt/untracked-subdir.) +* ah/pack-objects-usage-strings (2015-08-28) 1 commit + - pack-objects: place angle brackets around placeholders in usage strings - Test update. + Usage string fix. - Will merge to 'master'. - - -* as/docfix-reflog-expire-unreachable (2015-08-21) 1 commit - (merged to 'next' on 2015-08-25 at eb75d55) - + Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable - - Will merge to 'master'. - - -* cc/trailers-corner-case-fix (2015-08-21) 1 commit - (merged to 'next' on 2015-08-25 at ac25d80) - + trailer: ignore first line of message + Will merge to 'next'. - "interpret-trailers" helper mistook a single-liner log message that - has a colon as the end of existing trailer. - Will merge to 'master'. +* ah/read-tree-usage-string (2015-08-28) 1 commit + - read-tree: replace bracket set with parentheses to clarify usage + Usage string fix. -* jc/am-state-fix (2015-08-25) 5 commits - (merged to 'next' on 2015-08-25 at 4efcd88) - + write_file(): drop caller-supplied LF from calls to create a one-liner file - + write_file_v(): do not leave incomplete line at the end - + write_file(): drop "fatal" parameter - + builtin/am: make sure state files are text - + builtin/am: introduce write_state_*() helper functions + Will merge to 'next'. - Recent reimplementation of "git am" changed the format of state - files kept in $GIT_DIR/rebase-apply/ without meaning to do so, - primarily because write_file() API was cumbersome to use and it was - easy to mistakenly make text files with incomplete lines. Update - write_file() interface to make it harder to misuse. - Will merge to 'master'. +* ah/reflog-typofix-in-error (2015-08-28) 1 commit + - reflog: add missing single quote to error message + Error string fix. -* jc/calloc-pathspec (2015-08-20) 1 commit - (merged to 'next' on 2015-08-25 at 877490c) - + ps_matched: xcalloc() takes nmemb and then element size + Will merge to 'next'. - Will merge to 'master'. +* ah/submodule-typofix-in-error (2015-08-28) 1 commit + - git-submodule: remove extraneous space from error message -* jc/log-p-cc (2015-08-25) 4 commits - (merged to 'next' on 2015-08-25 at 2d6a6d4) - + builtin/log.c: minor reformat - + log: show merge commit when --cc is given - + log: when --cc is given, default to -p unless told otherwise - + log: rename "tweak" helpers + Error string fix. - "git log --cc" did not show any patch, even though most of the time - the user meant "git log --cc -p -m" to see patch output for commits - with a single parent, and combined diff for merge commits. The - command is taught to DWIM "--cc" (without "--raw" and other forms - of output specification) to "--cc -p -m". + Will merge to 'next'. - Will merge to 'master'. +* br/svn-doc-include-paths-config (2015-08-26) 1 commit + - git-svn doc: mention "svn-remote..include-paths" -* jk/fix-alias-pager-config-key-warnings (2015-08-24) 1 commit - (merged to 'next' on 2015-08-25 at 89eac5a) - + config: silence warnings for command names with invalid keys + Will merge to 'next'. - Because the configuration system does not allow "alias.0foo" and - "pager.0foo" as the configuration key, the user cannot use '0foo' - as a custom command name anyway, but "git 0foo" tried to look these - keys up and emitted useless warnings before saying '0foo is not a - git command'. These warning messages have been squelched. - Will merge to 'master'. +* dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update (2015-08-28) 1 commit + - commit: don't rewrite shared index unnecessarily + When re-priming the cache-tree opportunistically while committing + the in-core index as-is, we mistakenly invalidated the in-core + index too aggressively, causing the experimental split-index code + to unnecessarily rewrite the on-disk index file(s). -* jk/rev-list-has-no-notes (2015-08-24) 1 commit - (merged to 'next' on 2015-08-25 at 73cb2ad) - + rev-list: make it obvious that we do not support notes + Will merge to 'next'. - "git rev-list" does not take "--notes" option, but did not complain - when one is given. - Will merge to 'master'. +* dt/refs-bisection (2015-08-28) 5 commits + - bisect: make bisection refs per-worktree + - refs: make refs/worktree/* per-worktree + - SQUASH??? + - path: optimize common dir checking + - refs: clean up common_list + Move the refs used during a "git bisect" session to per-worktree + hierarchy refs/worktree/* so that independent bisect sessions can + be done in different worktrees. -* kn/for-each-tag (2015-08-25) 15 commits - - SQUASH??? a tag longer than 15 bytes break alignment but keeps SP before the message - - tag.c: implement '--merged' and '--no-merged' options - - tag.c: implement '--format' option - - tag.c: use 'ref-filter' APIs - - tag.c: use 'ref-filter' data structures - - ref-filter: add option to match literal pattern - - ref-filter: add support to sort by version - - ref-filter: support printing N lines from tag annotation - - ref-filter: add option to filter out tags, branches and remotes - - ref-filter: implement an `align` atom - - utf8: add function to align a string into given strbuf - - ref-filter: introduce ref_formatting_state and ref_formatting_stack - - ref-filter: move `struct atom_value` to ref-filter.c - - Merge 'jk/git-path' into kn/for-each-tag - - Merge 'kn/for-each-tag-branch' into kn/for-each-tag - (this branch uses kn/for-each-tag-branch.) + Will merge to 'next' after squashing the update in. - The "ref-filter" code was taught about many parts of what "tag -l" - does and then "tag -l" is reimplemented in terms of "ref-filter". - Almost there... +* ld/p4-import-labels (2015-08-28) 3 commits + - git-p4: fix P4 label import for unprocessed commits + - git-p4: do not terminate creating tag for unknown commit + - git-p4: failing test for ignoring invalid p4 labels -* nd/fixup-linked-gitdir (2015-08-25) 1 commit - - setup: update the right file in multiple checkouts +* ls/p4-fold-case-client-specs (2015-08-28) 1 commit + - git-p4: honor core.ignorecase when using P4 client specs - The code in "multiple-worktree" support that attempted to recover - from an inconsistent state updated an incorrect file. + On case insensitive systems, "git p4" did not work well with client + specs. Will merge to 'next'. +* rs/archive-zip-many (2015-08-28) 3 commits + - archive-zip: support more than 65535 entries + - archive-zip: use a local variable to store the creator version + - t5004: test ZIP archives with many entries -* nd/ita-cleanup (2015-08-25) 6 commits - - grep: make it clear i-t-a entries are ignored - - checkout(-index): do not checkout i-t-a entries - - apply: make sure check_preimage() does not leave empty file on error - - apply: fix adding new files on i-t-a entries - - Add and use convenient macro ce_intent_to_add() - - blame: remove obsolete comment - - Paths that have been told the index about with "add -N" are not yet - in the index, but various commands behaved as if they already are. - - Some commits need better explanation. - - Waiting for a reroll. - - -* sg/describe-contains (2015-08-25) 1 commit - - describe --contains: default to HEAD when no commit-ish is given - - "git describe" without argument defaulted to describe the HEAD - commit, but "git describe --contains" didn't. Arguably, in a - repository used for active development, such defaulting would not - be very useful as the tip of branch is typically not tagged, but it - is better to be consistent. + "git archive" did not use zip64 extension when creating an archive + with more than 64k entries, which nobody should need, right ;-)? Will merge to 'next'. -* sg/help-group (2015-08-25) 1 commit - (merged to 'next' on 2015-08-25 at 907e5a8) - + generate-cmdlist: re-implement as shell script - - We rewrote one of the build scripts in Perl but this reimplements - in Bourne shell. - - Will merge to 'master'. - - -* sg/t3020-typofix (2015-08-20) 1 commit - (merged to 'next' on 2015-08-25 at 051d6c0) - + t3020: fix typo in test description - - Will merge to 'master'. - +* rt/remove-hold-lockfile-for-append (2015-08-28) 1 commit + - lockfile: remove function "hold_lock_file_for_append" -* sg/wt-status-header-inclusion (2015-08-21) 1 commit - (merged to 'next' on 2015-08-25 at fa5b2b2) - + wt-status: move #include "pathspec.h" to the header - - Will merge to 'master'. + Will merge to 'next'. -------------------------------------------------- [Stalled] @@ -480,7 +283,7 @@ of the repositories listed at worse, atoi()). Introduce a set of wrappers that try to be more careful. - Expecting a reroll. + Waiting for a reroll. ($gmane/268058). @@ -507,7 +310,7 @@ of the repositories listed at This is the first two commits in a three-patch series $gmane/266962 - Expecting a reroll. + Waiting for a reroll. with updated log message ($gmane/268061). @@ -532,7 +335,7 @@ of the repositories listed at - show-index: uniform error messages for index read The tip was RFC. - Expecting a reroll. + Waiting for a reroll. * jk/log-missing-default-HEAD (2015-06-03) 1 commit @@ -551,7 +354,7 @@ of the repositories listed at Introduce "branch^{/!-}" notation to name a commit reachable from branch that does not match the given pattern. - Expecting a reroll. + Waiting for a reroll. * mk/utf8-no-iconv-warn (2015-06-08) 1 commit @@ -563,7 +366,7 @@ of the repositories listed at iconv support when the specified encoding is not available, but the patch does not go there. - Expecting a reroll. + Waiting for a reroll. * ak/format-patch-odir-config (2015-06-19) 1 commit @@ -572,7 +375,7 @@ of the repositories listed at Reroll exists but didn't pick it up as it seemed to be still collecting review comments. - Expecting a reroll. + Waiting for a reroll. ($gmane/272180). @@ -672,82 +475,157 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* db/push-sign-if-asked (2015-08-19) 9 commits - - push: add a config option push.gpgSign for default signed pushes - - push: support signing pushes iff the server supports it - - builtin/send-pack.c: use parse_options API - - config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool - - transport: remove git_transport_options.push_cert - - gitremote-helpers.txt: document pushcert option - - Documentation/git-send-pack.txt: document --signed - - Documentation/git-send-pack.txt: wrap long synopsis line - - Documentation/git-push.txt: document when --signed may fail +* jc/am-state-fix (2015-08-25) 5 commits + (merged to 'next' on 2015-08-25 at 4efcd88) + + write_file(): drop caller-supplied LF from calls to create a one-liner file + + write_file_v(): do not leave incomplete line at the end + + write_file(): drop "fatal" parameter + + builtin/am: make sure state files are text + + builtin/am: introduce write_state_*() helper functions - The client side codepaths in "git push" have been cleaned up - and the user can request to perform an optional "signed push", - i.e. sign only when the other end accepts signed push. + Recent reimplementation of "git am" changed the format of state + files kept in $GIT_DIR/rebase-apply/ without meaning to do so, + primarily because write_file() API was cumbersome to use and it was + easy to mistakenly make text files with incomplete lines. Update + write_file() interface to make it harder to misuse. - I think this is ready for 'next', but did I miss comments that need - to be addressed before it happens? + Will merge to 'master'. -* dk/gc-idx-wo-pack (2015-08-17) 3 commits - - DONTMERGE: log message, grace-period and tests $gmane/276058 - - gc: remove stale .idx files without corresponding .pack file - - prepare_packed_git(): refactor garbage reporting in pack directory +* jc/log-p-cc (2015-08-25) 4 commits + (merged to 'next' on 2015-08-25 at 2d6a6d4) + + builtin/log.c: minor reformat + + log: show merge commit when --cc is given + + log: when --cc is given, default to -p unless told otherwise + + log: rename "tweak" helpers - Having a leftover .idx file without correspoinding .pack file in - the repository hurts performance; "git gc" learned to prune them. + "git log --cc" did not show any patch, even though most of the time + the user meant "git log --cc -p -m" to see patch output for commits + with a single parent, and combined diff for merge commits. The + command is taught to DWIM "--cc" (without "--raw" and other forms + of output specification) to "--cc -p -m". - Expecting a reroll. + Will merge to 'master'. -* ep/http-configure-ssl-version (2015-08-17) 1 commit - (merged to 'next' on 2015-08-19 at aab726b) - + http: add support for specifying the SSL version +* jk/fix-alias-pager-config-key-warnings (2015-08-24) 1 commit + (merged to 'next' on 2015-08-25 at 89eac5a) + + config: silence warnings for command names with invalid keys - A new configuration variable http.sslVersion can be used to specify - what specific version of SSL/TLS to use to make a connection. + Because the configuration system does not allow "alias.0foo" and + "pager.0foo" as the configuration key, the user cannot use '0foo' + as a custom command name anyway, but "git 0foo" tried to look these + keys up and emitted useless warnings before saying '0foo is not a + git command'. These warning messages have been squelched. Will merge to 'master'. -* jv/send-email-selective-smtp-auth (2015-08-17) 1 commit - (merged to 'next' on 2015-08-19 at 3f0c693) - + send-email: provide whitelist of SMTP AUTH mechanisms +* jk/rev-list-has-no-notes (2015-08-24) 1 commit + (merged to 'next' on 2015-08-25 at 73cb2ad) + + rev-list: make it obvious that we do not support notes - "git send-email" learned a new option --smtp-auth to limit the SMTP - AUTH mechanisms to be used to a subset of what the system library - supports. + "git rev-list" does not take "--notes" option, but did not complain + when one is given. Will merge to 'master'. -* po/po-readme (2015-08-17) 1 commit - (merged to 'next' on 2015-08-19 at 1899e59) - + po/README: Update directions for l10n contributors +* kn/for-each-tag (2015-08-25) 15 commits + - SQUASH??? a tag longer than 15 bytes break alignment but keeps SP before the message + - tag.c: implement '--merged' and '--no-merged' options + - tag.c: implement '--format' option + - tag.c: use 'ref-filter' APIs + - tag.c: use 'ref-filter' data structures + - ref-filter: add option to match literal pattern + - ref-filter: add support to sort by version + - ref-filter: support printing N lines from tag annotation + - ref-filter: add option to filter out tags, branches and remotes + - ref-filter: implement an `align` atom + - utf8: add function to align a string into given strbuf + - ref-filter: introduce ref_formatting_state and ref_formatting_stack + - ref-filter: move `struct atom_value` to ref-filter.c + - Merge 'jk/git-path' into kn/for-each-tag + - Merge 'kn/for-each-tag-branch' into kn/for-each-tag + (this branch uses kn/for-each-tag-branch.) + + The "ref-filter" code was taught about many parts of what "tag -l" + does and then "tag -l" is reimplemented in terms of "ref-filter". + + Almost there... + Waiting for a reroll. + ($gmane/276615, $gmane/276529, $gmane/276607, $gmane/276606, etc.) + + +* nd/fixup-linked-gitdir (2015-08-25) 1 commit + (merged to 'next' on 2015-08-26 at 7b8a1aa) + + setup: update the right file in multiple checkouts + + The code in "multiple-worktree" support that attempted to recover + from an inconsistent state updated an incorrect file. Will merge to 'master'. -* pt/am-builtin-abort-fix (2015-08-19) 1 commit - (merged to 'next' on 2015-08-19 at 729e682) - + am --skip/--abort: merge HEAD/ORIG_HEAD tree into index +* nd/ita-cleanup (2015-08-25) 6 commits + - grep: make it clear i-t-a entries are ignored + - checkout(-index): do not checkout i-t-a entries + - apply: make sure check_preimage() does not leave empty file on error + - apply: fix adding new files on i-t-a entries + - Add and use convenient macro ce_intent_to_add() + - blame: remove obsolete comment - "git am" that was recently reimplemented in C had a performance - regression in "git am --abort" that goes back to the version before - an attempted (and failed) patch application. + Paths that have been told the index about with "add -N" are not yet + in the index, but various commands behaved as if they already are. + + Some commits need better explanation. + + Waiting for a reroll. + + +* sg/describe-contains (2015-08-25) 1 commit + (merged to 'next' on 2015-08-26 at a7c66d9) + + describe --contains: default to HEAD when no commit-ish is given + + "git describe" without argument defaulted to describe the HEAD + commit, but "git describe --contains" didn't. Arguably, in a + repository used for active development, such defaulting would not + be very useful as the tip of branch is typically not tagged, but it + is better to be consistent. Will merge to 'master'. -* ss/fix-config-fd-leak (2015-08-14) 1 commit - (merged to 'next' on 2015-08-19 at 80d4880) - + config: close config file handle in case of error +* db/push-sign-if-asked (2015-08-19) 9 commits + (merged to 'next' on 2015-08-26 at a7a32e9) + + push: add a config option push.gpgSign for default signed pushes + + push: support signing pushes iff the server supports it + + builtin/send-pack.c: use parse_options API + + config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool + + transport: remove git_transport_options.push_cert + + gitremote-helpers.txt: document pushcert option + + Documentation/git-send-pack.txt: document --signed + + Documentation/git-send-pack.txt: wrap long synopsis line + + Documentation/git-push.txt: document when --signed may fail + + The client side codepaths in "git push" have been cleaned up + and the user can request to perform an optional "signed push", + i.e. sign only when the other end accepts signed push. Will merge to 'master'. +* dk/gc-idx-wo-pack (2015-08-17) 3 commits + - DONTMERGE: log message, grace-period and tests $gmane/276058 + - gc: remove stale .idx files without corresponding .pack file + - prepare_packed_git(): refactor garbage reporting in pack directory + + Having a leftover .idx file without correspoinding .pack file in + the repository hurts performance; "git gc" learned to prune them. + + Waiting for a reroll. + + * bb/remote-get-url (2015-08-05) 1 commit - remote: add get-url subcommand @@ -759,19 +637,19 @@ of the repositories listed at * jk/notes-merge-config (2015-08-17) 6 commits - - notes: teach git-notes about notes..mergeStrategy option - - notes: add notes.mergeStrategy option to select default strategy - - notes: add tests for --commit/--abort/--strategy exclusivity - - notes: extract parse_notes_merge_strategy to notes-utils - - notes: extract enum notes_merge_strategy to notes-utils.h - - notes: document cat_sort_uniq rewriteMode + (merged to 'next' on 2015-08-26 at 6dd2286) + + notes: teach git-notes about notes..mergeStrategy option + + notes: add notes.mergeStrategy option to select default strategy + + notes: add tests for --commit/--abort/--strategy exclusivity + + notes: extract parse_notes_merge_strategy to notes-utils + + notes: extract enum notes_merge_strategy to notes-utils.h + + notes: document cat_sort_uniq rewriteMode "git notes merge" can be told with "--strategy=" option how to automatically handle conflicts; this can now be configured by setting notes.merge configuration variable. - I think this is ready for 'next', but did I miss comments that need - to be addressed before it happens? + Will merge to 'master'. * hv/submodule-config (2015-08-19) 4 commits @@ -788,10 +666,9 @@ of the repositories listed at Will merge to 'master'. -* sb/submodule-helper (2015-08-25) 7 commits +* sb/submodule-helper (2015-08-26) 6 commits - submodule: helper to run foreach in parallel - thread-utils: add a threaded task queue - - FIXUP submodule: implement `module_clone` as a builtin helper - submodule: implement `module_clone` as a builtin helper - submodule: implement `module_name` as a builtin helper - submodule: implement `module_list` as a builtin helper @@ -802,18 +679,6 @@ of the repositories listed at incrementally. These early part looks promising. -* dt/untracked-subdir (2015-08-19) 2 commits - (merged to 'next' on 2015-08-25 at ab4fd04) - + untracked cache: fix entry invalidation - + untracked-cache: fix subdirectory handling - (this branch uses dt/untracked-sparse.) - - The experimental untracked-cache feature were buggy when paths with - a few levels of subdirectories are involved. - - Will merge to 'master'. - - * ad/cygwin-wants-rename (2015-08-07) 1 commit - config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES @@ -861,32 +726,33 @@ of the repositories listed at * jc/rerere (2015-07-24) 21 commits - - rerere: un-nest merge() further - - rerere: use "struct rerere_id" instead of "char *" for conflict ID - - rerere: call conflict-ids IDs - - rerere: further clarify do_rerere_one_path() - - rerere: further de-dent do_plain_rerere() - - rerere: refactor "replay" part of do_plain_rerere() - - rerere: explain the remainder - - rerere: explain "rerere forget" codepath - - rerere: explain the primary codepath - - rerere: explain MERGE_RR management helpers - - rerere: fix benign off-by-one non-bug and clarify code - - rerere: explain the rerere I/O abstraction - - rerere: do not leak mmfile[] for a path with multiple stage #1 entries - - rerere: stop looping unnecessarily - - rerere: drop want_sp parameter from is_cmarker() - - rerere: report autoupdated paths only after actually updating them - - rerere: write out each record of MERGE_RR in one go - - rerere: lift PATH_MAX limitation - - rerere: plug conflict ID leaks - - rerere: handle conflicts with multiple stage #1 entries - - rerere: fix an off-by-one non-bug + (merged to 'next' on 2015-08-26 at 8ae15ef) + + rerere: un-nest merge() further + + rerere: use "struct rerere_id" instead of "char *" for conflict ID + + rerere: call conflict-ids IDs + + rerere: further clarify do_rerere_one_path() + + rerere: further de-dent do_plain_rerere() + + rerere: refactor "replay" part of do_plain_rerere() + + rerere: explain the remainder + + rerere: explain "rerere forget" codepath + + rerere: explain the primary codepath + + rerere: explain MERGE_RR management helpers + + rerere: fix benign off-by-one non-bug and clarify code + + rerere: explain the rerere I/O abstraction + + rerere: do not leak mmfile[] for a path with multiple stage #1 entries + + rerere: stop looping unnecessarily + + rerere: drop want_sp parameter from is_cmarker() + + rerere: report autoupdated paths only after actually updating them + + rerere: write out each record of MERGE_RR in one go + + rerere: lift PATH_MAX limitation + + rerere: plug conflict ID leaks + + rerere: handle conflicts with multiple stage #1 entries + + rerere: fix an off-by-one non-bug (this branch is used by jc/rerere-multi.) - Code clean-up and minor fixes (so far). + Code clean-up and minor fixes. - Will merge to 'next'. + Will merge to 'master'. * jc/rerere-multi (2015-07-30) 7 commits -- 2.11.4.GIT