From: Junio C Hamano Date: Fri, 5 Apr 2013 22:26:28 +0000 (-0700) Subject: What's cooking (2013/04 #02) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3fb4ca910bd5b59bb50b7cbbc398062dcb6b2f4b;p=thirdparty%2Fgit.git What's cooking (2013/04 #02) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 20d803f66d..c670ae801e 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Apr 2013, #01; Mon, 1) -X-master-at: cc3e4eba723570bf77902c017611ee02bb86c8b3 -X-next-at: 5a7d8b8c6ff8c59f4ad782e539b1d511ca6f2e63 +Subject: What's cooking in git.git (Apr 2013, #02; Fri, 5) +X-master-at: 21ccebec0dd1d7e624ea2f22af6ac93686daf34f +X-next-at: 2c8b7bf47c81acd2a76c1f9c3be2a1f102b76d31 -What's cooking in git.git (Apr 2013, #01; Mon, 1) +What's cooking in git.git (Apr 2013, #02; Fri, 5) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -24,177 +24,127 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* bc/append-signed-off-by (2013-02-23) 13 commits - (merged to 'next' on 2013-03-26 at 0e3c79b) - + git-commit: populate the edit buffer with 2 blank lines before s-o-b - + Unify appending signoff in format-patch, commit and sequencer - + format-patch: update append_signoff prototype - + t4014: more tests about appending s-o-b lines - + sequencer.c: teach append_signoff to avoid adding a duplicate newline - + sequencer.c: teach append_signoff how to detect duplicate s-o-b - + sequencer.c: always separate "(cherry picked from" from commit body - + sequencer.c: require a conforming footer to be preceded by a blank line - + sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer - + t/t3511: add some tests of 'cherry-pick -s' functionality - + t/test-lib-functions.sh: allow to specify the tag name to test_commit - + commit, cherry-pick -s: remove broken support for multiline rfc2822 fields - + sequencer.c: rework search for start of footer to improve clarity - - Consolidates codepaths that inspect log-message-to-be and decide to - add a new Signed-off-by line in various commands. I think there is - no negative behaviour change in this series, but please report any - iffy behaviour change immediately if you notice one. - - -* jc/nobody-sets-src-peer-ref (2013-03-04) 1 commit - (merged to 'next' on 2013-03-26 at 9d13c02) - + match_push_refs(): nobody sets src->peer_ref anymore - - Dead code removal. - - Even though I think this change is correct, please report - immediately if you find any unintended side effect. - - -* jc/remove-export-from-config-mak-in (2013-03-05) 3 commits - (merged to 'next' on 2013-03-26 at a789220) - + Fix `make install` when configured with autoconf - + Makefile: do not export mandir/htmldir/infodir - + config.mak.in: remove unused definitions - - config.mak.in template had an "export" line to cause a few - common makefile variables to be exported; if they need to be - expoted for autoconf/configure users, they should also be exported - for people who write config.mak the same way. Move the "export" to - the main Makefile. Also, stop exporting mandir that used to be - exported (only) when config.mak.autogen was used. It would have - broken installation of manpages (but not other documentation - formats). - - Even though I think this change is correct, please report - immediately if you find any unintended side effect. - +* bk/document-commit-tree-S (2013-03-25) 1 commit + (merged to 'next' on 2013-03-26 at 8ee205f) + + commit-tree: document -S option consistently -* jk/common-make-variables-export-safety (2013-02-25) 1 commit - (merged to 'next' on 2013-03-26 at 8b7bb16) - + Makefile: make mandir, htmldir and infodir absolute - Make the three variables safer to be exported to submakes by - ensuring that they are full paths so that they can be used as - installation location. +* jc/apply-ws-fix-tab-in-indent (2013-03-29) 2 commits + (merged to 'next' on 2013-03-29 at 26eb6e9) + + test: resurrect q_to_tab + (merged to 'next' on 2013-03-26 at 46c6bda) + + apply --whitespace=fix: avoid running over the postimage buffer - Even though I think this change is correct, please report - immediately if you find any unintended side effect. + "git apply --whitespace=fix" was not prepared to see a line getting + longer after fixing whitespaces (e.g. tab-in-indent aka Python). -* jk/index-pack-correct-depth-fix (2013-03-20) 1 commit - (merged to 'next' on 2013-03-26 at c56e839) - + index-pack: always zero-initialize object_entry list +* jc/directory-attrs-regression-fix (2013-03-28) 6 commits + (merged to 'next' on 2013-03-29 at a3dce2b) + + t: check that a pattern without trailing slash matches a directory + + dir.c::match_pathname(): pay attention to the length of string parameters + + dir.c::match_pathname(): adjust patternlen when shifting pattern + + dir.c::match_basename(): pay attention to the length of string parameters + + attr.c::path_matches(): special case paths that end with a slash + + attr.c::path_matches(): the basename is part of the pathname - "index-pack --fix-thin" used uninitialize value to compute delta - depths of objects it appends to the resulting pack. + Fix 1.8.1.x regression that stopped matching "dir" (without + trailing slash) to a directory "dir". -* jk/pkt-line-cleanup (2013-03-21) 20 commits - (merged to 'next' on 2013-03-26 at 2bb3b75) - + do not use GIT_TRACE_PACKET=3 in tests - + remote-curl: always parse incoming refs - + remote-curl: move ref-parsing code up in file - + remote-curl: pass buffer straight to get_remote_heads - + teach get_remote_heads to read from a memory buffer - + pkt-line: share buffer/descriptor reading implementation - + pkt-line: provide a LARGE_PACKET_MAX static buffer - + pkt-line: move LARGE_PACKET_MAX definition from sideband - + pkt-line: teach packet_read_line to chomp newlines - + pkt-line: provide a generic reading function with options - + pkt-line: drop safe_write function - + pkt-line: move a misplaced comment - + write_or_die: raise SIGPIPE when we get EPIPE - + upload-archive: use argv_array to store client arguments - + upload-archive: do not copy repo name - + send-pack: prefer prefixcmp over memcmp in receive_status - + fetch-pack: fix out-of-bounds buffer offset in get_ack - + upload-pack: remove packet debugging harness - + upload-pack: do not add duplicate objects to shallow list - + upload-pack: use get_sha1_hex to parse "shallow" lines +* jc/merge-tag-object (2013-04-01) 3 commits + (merged to 'next' on 2013-04-03 at 94b5c7d) + + t6200: test message for merging of an annotated tag + + t6200: use test_config/test_unconfig + (merged to 'next' on 2013-03-29 at aeec39c) + + merge: a random object may not necssarily be a commit - Cleans up pkt-line API, implementation and its callers to make them - more robust. Even though I think this change is correct, please - report immediately if you find any unintended side effect. + "git merge $(git rev-parse v1.8.2)" behaved quite differently from + "git merge v1.8.2" as if v1.8.2 were written as v1.8.2^0 and did + not pay much attention to the annotated tag payload. + This makes the code notice the type of the tag object, in addition + to the dwim_ref() based classification the current code uses + (i.e. the name appears in refs/tags/) to decide when to special + case merging of tags. -* jn/push-tests (2013-03-19) 3 commits - (merged to 'next' on 2013-03-26 at da891db) - + push test: rely on &&-chaining instead of 'if bad; then echo Oops; fi' - + push test: simplify check of push result - + push test: use test_config when appropriate - Update t5516 with style fixes. +* jc/sha1-name-object-peeler (2013-03-31) 2 commits + (merged to 'next' on 2013-04-01 at cdb4a18) + + peel_onion(): teach $foo^{object} peeler + + peel_onion: disambiguate to favor tree-ish when we know we want a tree-ish + (this branch is used by mh/rev-parse-verify-doc.) + There was no good way to ask "I have a random string that came from + outside world. I want to turn it into a 40-hex object name while + making sure such an object exists". A new peeling suffix ^{object} + can be used for that purpose, together with "rev-parse --verify". -* kb/name-hash (2013-02-27) 1 commit - (merged to 'next' on 2013-03-26 at 750490a) - + name-hash.c: fix endless loop with core.ignorecase=true - The code to keep track of what directory names are known to Git on - platforms with case insensitive filesystems can get confused upon - a hash collision between these pathnames and looped forever. +* jc/t5516-pushInsteadOf-vs-pushURL (2013-03-28) 1 commit + (merged to 'next' on 2013-04-01 at bed2879) + + t5516: test interaction between pushURL and pushInsteadOf correctly - Even though I think this change is correct, please report - immediately if you find any unintended side effect. + Update a test to match the documented interaction between pushURL + and pushInsteadOf. -* nd/branch-show-rebase-bisect-state (2013-03-23) 7 commits - (merged to 'next' on 2013-03-26 at cd666f6) - + status, branch: fix the misleading "bisecting" message - + branch: show more information when HEAD is detached - + status: show more info than "currently not on any branch" - + wt-status: move wt_status_get_state() out to wt_status_print() - + wt-status: split wt_status_state parsing function out - + wt-status: move strbuf into read_and_strip_branch() - + Merge branch 'jc/reflog-reverse-walk' into nd/branch-show-rebase-bisect-state +* jk/check-corrupt-objects-carefully (2013-03-29) 10 commits + (merged to 'next' on 2013-03-29 at b6a04a7) + + clone: leave repo in place after checkout errors + + clone: run check_everything_connected + + clone: die on errors from unpack_trees + + add tests for cloning corrupted repositories + + streaming_write_entry: propagate streaming errors + + add test for streaming corrupt blobs + + avoid infinite loop in read_istream_loose + + read_istream_filtered: propagate read error from upstream + + check_sha1_signature: check return value from read_istream + + stream_blob_to_fd: detect errors reading from stream - "git status" shows a bit more info during a bisect/rebase session. + Have the streaming interface and other codepaths more carefully + examine for corrupt objects. -* nd/index-pack-threaded-fixes (2013-03-19) 2 commits - (merged to 'next' on 2013-03-26 at e508c77) - + index-pack: guard nr_resolved_deltas reads by lock - + index-pack: protect deepest_delta in multithread code +* jk/config-with-empty-section (2013-03-29) 1 commit + (merged to 'next' on 2013-04-01 at 7972aa9) + + t1300: document some aesthetic failures of the config editor - "index-pack --verify-stat" used a few counters outside protection - of mutex, possibly showing incorrect numbers. + Document that "git config --unset" does not remove an empty section + head after removing the last variable in a section, and adding a + new variable does not try to reuse a leftover empty section head. -* rr/test-3200-style (2013-03-20) 1 commit - (merged to 'next' on 2013-03-26 at 1214287) - + t3200 (branch): modernize style +* jk/difftool-no-overwrite-on-copyback (2013-03-29) 5 commits + (merged to 'next' on 2013-03-29 at 9f42d34) + + t7800: run --dir-diff tests with and without symlinks + + t7800: fix tests when difftool uses --no-symlinks + + t7800: don't hide grep output + + difftool: don't overwrite modified files + + t7800: move '--symlinks' specific test to the end - Churns. + Try to be careful when difftool backend allows the user to write + into the temporary files being shown *and* the user makes changes + to the working tree at the same time. One of the changes has to be + lost in such a case, but at least tell the user what he did. -* sr/am-show-final-message-in-applying-indicator (2013-03-21) 1 commit - (merged to 'next' on 2013-03-26 at 9ecb143) - + git-am: show the final log message on "Applying:" indicator +* jk/no-more-self-assignment (2013-03-25) 2 commits + (merged to 'next' on 2013-03-26 at 31ec9ac) + + match-trees: simplify score_trees() using tree_entry() + + submodule: clarify logic in show_submodule_summary - In addition to the case where the user edits the log message with - the "e)dit" option of "am -i", replace the "Applying: this patch" - message with the final log message contents after applymsg hook - munges it. + This started as a topic to reduce "type var = var" self assignment + tricks that were used to squelch "variable used uninitialized perhaps?" + warning from some compilers, but resulted in rewriting logic with + a version that is simpler and easier to understand for humans. --------------------------------------------------- -[New Topics] -* jc/sha1-name-object-peeler (2013-03-31) 2 commits - (merged to 'next' on 2013-04-01 at cdb4a18) - + peel_onion(): teach $foo^{object} peeler - + peel_onion: disambiguate to favor tree-ish when we know we want a tree-ish - (this branch is used by mh/rev-parse-verify-doc.) +* jl/submodule-deinit (2013-04-01) 1 commit + (merged to 'next' on 2013-04-03 at 2ef485c) + + submodule deinit: clarify work tree removal message - There was no good way to ask "I have a random string that came from - outside world. I want to turn it into a 40-hex object name while - making sure such an object exists". A new peeling suffix ^{object} - can be used for that purpose, together with "rev-parse --verify". + A finishing touch to the new topic in 1.8.3. * jm/branch-rename-nothing-error (2013-03-31) 1 commit @@ -204,7 +154,38 @@ of the repositories listed at "git branch -m" without any argument noticed an error, but with an incorrect error message. - Will merge to 'master'. + +* js/iterm-is-on-osx (2013-03-29) 1 commit + (merged to 'next' on 2013-04-01 at 201fed2) + + git-web--browse: recognize any TERM_PROGRAM as a GUI terminal on OS X + + Add more logic to detect graphic environment of OS X by simply + checking TERM_PROGRAM has some value, not Apple_Terminal, to detect + iTerm.app and any other. + + +* js/log-gpg (2013-03-27) 1 commit + (merged to 'next' on 2013-03-29 at 9a1b2d3) + + log: read gpg settings for signed commit verification + + Teach "show/log" honor gpg.program configuration just like other + parts of the code that use GnuPG. + + +* mh/rev-parse-verify-doc (2013-04-02) 1 commit + (merged to 'next' on 2013-04-03 at a09c332) + + rev-parse: clarify documentation for the --verify option + + "rev-parse --verify" was documented in a misleading way. + + +* nd/checkout-paths-reduce-match-pathspec-calls (2013-03-27) 1 commit + (merged to 'next' on 2013-03-29 at fbcc004) + + checkout: avoid unnecessary match_pathspec calls + + Consolidate repeated pathspec matches on the same paths, while + fixing a bug in "git checkout dir/" code started from an unmerged + index. * rr/prompt-revert-head (2013-03-31) 1 commit @@ -214,18 +195,59 @@ of the repositories listed at The prompt string generator did not notice when we are in a middle of a "git revert" session. - Will merge to 'master'. - * rr/send-email-perl-critique (2013-03-31) 3 commits - - send-email: use the three-arg form of open in recipients_cmd - - send-email: drop misleading function prototype - - send-email: use "return;" not "return undef;" on error codepaths + (merged to 'next' on 2013-04-03 at d552868) + + send-email: use the three-arg form of open in recipients_cmd + + send-email: drop misleading function prototype + + send-email: use "return;" not "return undef;" on error codepaths Broken down from an earlier discussion to pick up reasonable bits with explanation, to demonstrate how it should be done. - Will merge to 'next'. + +* rs/submodule-summary-limit (2013-04-01) 1 commit + (merged to 'next' on 2013-04-01 at 3c18cfe) + + submodule summary: support --summary-limit= + + "submodule summary --summary-limit" option did not support + "--option=value" form. + + +* sg/gpg-sig (2013-03-31) 5 commits + (merged to 'next' on 2013-04-03 at 9c13a17) + + pretty printing: extend %G? to include 'N' and 'U' + + merge/pull Check for untrusted good GPG signatures + + merge/pull: verify GPG signatures of commits being merged + + commit.c/GPG signature verification: Also look at the first GPG status line + + Move commit GPG signature verification to commit.c + + Teach "merge/pull" to optionally verify and reject commits that are + not signed properly. + + +* sw/safe-create-leading-dir-race (2013-03-26) 1 commit + (merged to 'next' on 2013-03-26 at 744bb50) + + safe_create_leading_directories: fix race that could give a false negative + + +* tb/cygwin-shared-repository (2013-03-25) 1 commit + (merged to 'next' on 2013-03-29 at dbeb068) + + Make core.sharedRepository work under cygwin 1.7 + (this branch is used by tb/shared-perm.) + + Cygwin port has a faster-but-lying lstat(2) emulation whose + incorrectness does not matter in practice except for a few + codepaths, and setting permission bits to directories is a codepath + that needs to use a more correct one. + + +* tr/log-tree-optim (2013-03-28) 1 commit + (merged to 'next' on 2013-03-29 at 5a6795d) + + Avoid loading commits twice in log with diffs + + Optimize "log" that shows the difference between the parent and the + child. * tr/valgrind (2013-04-01) 4 commits @@ -237,293 +259,305 @@ of the repositories listed at Let us use not just memgrind but other *grind debuggers. +-------------------------------------------------- +[New Topics] + +* cn/commit-amend-doc (2013-04-05) 1 commit + (merged to 'next' on 2013-04-05 at 4c42e59) + + Documentation/git-commit: reword the --amend explanation + (this branch is used by jc/detached-head-doc.) + Will merge to 'master'. -* mh/rev-parse-verify-doc (2013-04-01) 2 commits - - SQUASH??? - - rev-parse: clarify documentation for the --verify option - (this branch uses jc/sha1-name-object-peeler.) +* fc/remote-helpers-test-updates (2013-04-04) 4 commits + (merged to 'next' on 2013-04-04 at 0612744) + + remote-hg: fix hg-git test-case + + remote-bzr: remove stale check code for tests + + remote-helpers: fix the run of all tests + + remote-bzr: avoid echo -n + (this branch is used by fc/transport-helper-waitpid.) - "rev-parse --verify" was documented in a misleading way. + Will merge to 'master'. -* rs/submodule-summary-limit (2013-04-01) 1 commit - (merged to 'next' on 2013-04-01 at 3c18cfe) - + submodule summary: support --summary-limit= +* fc/remote-hg (2013-04-04) 13 commits + - remote-hg: push to the appropriate branch + - remote-hg: update tags globally + - remote-hg: force remote push + - remote-hg: update remote bookmarks + - remote-hg: refactor export + - remote-hg: split bookmark handling + - remote-hg: redirect buggy mercurial output + - remote-hg: trivial test cleanups + - remote-hg: make sure fake bookmarks are updated + - remote-hg: fix for files with spaces + - remote-hg: properly report errors on bookmark pushes + - remote-hg: add missing config variable in doc + - remote-hg: trivial cleanups + + The "forced push" may need to become optional behaviour. + Also the tip one was found faulty. - "submodule summary --summary-limit" option did not support - "--option=value" form. + Expecting a reroll. - Will merge to 'master'. +* fc/transport-helper-waitpid (2013-04-04) 2 commits + - transport-helper: check if remote helper is alive + - run-command: add new check_command helper + (this branch uses fc/remote-helpers-test-updates.) -* tb/shared-perm (2013-04-01) 2 commits - - path.c: optimize adjust_shared_perm() - - optimize set_shared_perm() in path.c: - (this branch uses tb/cygwin-shared-repository.) + Seems to be solving a real problem at a wrong level. - Simplifies adjust_shared_perm() implementation. +* jk/bisect-prn-unsigned (2013-04-03) 1 commit + (merged to 'next' on 2013-04-04 at 2c4df36) + + bisect: avoid signed integer overflow -* nd/pretty-formats (2013-04-01) 12 commits - - pretty: support %>> that steal trailing spaces - - pretty: support truncating in %>, %< and %>< - - pretty: support padding placeholders, %< %> and %>< - - pretty: add %C(auto) for auto-coloring on the next placeholder - - pretty: two phase conversion for non utf-8 commits - - utf8: keep NULs in reencode_string() - - pretty: get the correct encoding for --pretty:format=%e - - pretty: save commit encoding from logmsg_reencode if the caller needs it - - utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences - - utf8.c: move display_mode_esc_sequence_len() for use by other functions - - pretty: share code between format_decoration and show_decorations - - pretty-formats.txt: wrap long lines + Will merge to 'master'. - A mixed bag of a bugfix and two fun enhancements on pretty formats - placeholder. +* jk/diffcore-break-divzero (2013-04-03) 1 commit + (merged to 'next' on 2013-04-04 at b7632e0) + + diffcore-break: don't divide by zero -* jl/submodule-deinit (2013-04-01) 1 commit - - submodule deinit: clarify work tree removal message + Will merge to 'master'. - A finishing touch to the new topic in 1.8.3. - Will merge to 'next'. +* jk/filter-branch-come-back-to-original (2013-04-02) 1 commit + (merged to 'next' on 2013-04-04 at 621684a) + + filter-branch: return to original dir after filtering --------------------------------------------------- -[Stalled] + Will merge to 'master'. -* jc/format-patch (2013-02-21) 2 commits - - format-patch: --inline-single - - format-patch: rename "no_inline" field - A new option to send a single patch to the standard output to be - appended at the bottom of a message. I personally have no need for - this, but it was easy enough to cobble together. Tests, docs and - stripping out more MIMEy stuff are left as exercises to interested - parties. +* jk/set-upstream-error-cases (2013-04-02) 5 commits + (merged to 'next' on 2013-04-04 at b58c26b) + + branch: give advice when tracking start-point is missing + + branch: mention start_name in set-upstream error messages + + branch: improve error message for missing --set-upstream-to ref + + branch: factor out "upstream is not a branch" error messages + + t3200: test --set-upstream-to with bogus refs - Not ready for inclusion. + Will merge to 'master'. --------------------------------------------------- -[Cooking] -* js/log-gpg (2013-03-27) 1 commit - (merged to 'next' on 2013-03-29 at 9a1b2d3) - + log: read gpg settings for signed commit verification +* js/rerere-forget-protect-against-NUL (2013-04-04) 2 commits + (merged to 'next' on 2013-04-05 at 426d4e2) + + rerere forget: do not segfault if not all stages are present + + rerere forget: grok files containing NUL - Teach "show/log" honor gpg.program configuration just like other - parts of the code that use GnuPG. + A few bugfixes to "git rerere" working on corner case merge + conflicts. Will merge to 'master'. -* jc/t5516-pushInsteadOf-vs-pushURL (2013-03-28) 1 commit - (merged to 'next' on 2013-04-01 at bed2879) - + t5516: test interaction between pushURL and pushInsteadOf correctly +* mc/count-objects-kibibytes (2013-04-03) 1 commit + (merged to 'next' on 2013-04-05 at f4e50e8) + + count-objects: output "KiB" instead of "kilobytes" - Update a test to match the documented interaction between pushURL - and pushInsteadOf. + The command reports the total diskspace used to store loose objects + in kibibytes, but it was labelled as "kilobytes". The number now + is shown with "KiB", e.g. "6750 objects, 50928 KiB". + If you have scripts that decide when to run "git repack" by parsing + the output from "git count-objects", this release may break them. + Sorry about that. One of the scripts shipped by git-core itself + also had to be adjusted. You may want to consider updating such + scripts to always call "git gc --auto" to let it decide when to + repack for you. -* jk/merge-tree-added-identically (2013-03-27) 1 commit - - merge-tree: fix "same file added in subdir" + Will merge to 'master'. - We would most likely want to change things the other way around. +* mm/status-during-revert (2013-04-02) 2 commits + (merged to 'next' on 2013-04-04 at 1282528) + + status: show commit sha1 in "You are currently reverting" message + + status: show 'revert' state and status hint -* rr/triangle (2013-03-28) 6 commits - - remote.c: introduce branch..pushremote - - remote.c: introduce remote.pushdefault - - remote.c: introduce a way to have different remotes for fetch/push - - t5516 (fetch-push): drop implicit arguments from helper functions - - t5516 (fetch-push): update test description - - remote.c: simplify a bit of code using git_config_string() + Will merge to 'master'. - Support "pull from one place, push to another place" workflow - better by introducing remote.pushdefault (overrides the "origin" - thing) and branch.*.pushremote (overrides the branch.*.remote). - Expecting a reroll. +* po/help-guides (2013-04-03) 5 commits + (merged to 'next' on 2013-04-04 at 3d99b28) + + doc: include --guide option description for "git help" + + help: mention -a and -g option, and 'git help ' usage. + + builtin/help.c: add list_common_guides_help() function + + builtin/help.c: add --guide option + + builtin/help.c: split "-a" processing into two + "git help" learned "-g" option to show the list of guides just like + list of commands are given with "-a". -* sg/gpg-sig (2013-03-31) 5 commits - - pretty printing: extend %G? to include 'N' and 'U' - - merge/pull Check for untrusted good GPG signatures - - merge/pull: verify GPG signatures of commits being merged - - commit.c/GPG signature verification: Also look at the first GPG status line - - Move commit GPG signature verification to commit.c + Will merge to 'master'. - Teach "merge/pull" to optionally verify and reject commits that are - not signed properly. +* jk/http-dumb-namespaces (2013-04-04) 1 commit + - http-backend: respect GIT_NAMESPACE with dumb clients -* tr/log-tree-optim (2013-03-28) 1 commit - (merged to 'next' on 2013-03-29 at 5a6795d) - + Avoid loading commits twice in log with diffs + Allow smart-capable HTTP servers to be restricted via the + GIT_NAMESPACE mechanism when talking with commit-walker clients + (they already do so when talking with smart HTTP clients). - Optimize "log" that shows the difference between the parent and the - child. + +* jk/rm-removed-paths (2013-04-04) 3 commits + (merged to 'next' on 2013-04-05 at ce9a926) + + t3600: document failure of rm across symbolic links + + t3600: test behavior of reverse-d/f conflict + + rm: do not complain about d/f conflicts during deletion + + A handful of test cases and a corner case bugfix for "git rm". Will merge to 'master'. -* jk/config-with-empty-section (2013-03-29) 1 commit - (merged to 'next' on 2013-04-01 at 7972aa9) - + t1300: document some aesthetic failures of the config editor +* jl/submodule-mv (2013-04-03) 3 commits + - Teach mv to update the path entry in .gitmodules for moved submodules + - Teach mv to move submodules using a gitfile + - Teach mv to move submodules together with their work trees - Document that "git config --unset" does not remove an empty section - head after removing the last variable in a section, and adding a - new variable does not try to reuse a leftover empty section head. + "git mv A B" when moving a submodule A does "the right thing", + inclusing relocating its working tree and adjusting the paths in + the .gitmodules file. - Will merge to 'master'. + Seems to break tests in 'pu' but it may be a mismerge with + nd/magic-pathspecs topic. -* jk/difftool-no-overwrite-on-copyback (2013-03-29) 5 commits - (merged to 'next' on 2013-03-29 at 9f42d34) - + t7800: run --dir-diff tests with and without symlinks - + t7800: fix tests when difftool uses --no-symlinks - + t7800: don't hide grep output - + difftool: don't overwrite modified files - + t7800: move '--symlinks' specific test to the end +* mg/texinfo-5 (2013-04-03) 1 commit + (merged to 'next' on 2013-04-04 at bd84440) + + Documentation: Strip texinfo anchors to avoid duplicates - Try to be careful when difftool backend allows the user to write - into the temporary files being shown *and* the user makes changes - to the working tree at the same time. One of the changes has to be - lost in such a case, but at least tell the user what he did. + Strip @anchor elements in the texinfo output of the documentation, + as a single document created by concatenating our entire manual set + will produce many duplicates that makes newer texinfo unhappy. Will merge to 'master'. -* jc/apply-ws-fix-tab-in-indent (2013-03-29) 2 commits - (merged to 'next' on 2013-03-29 at 26eb6e9) - + test: resurrect q_to_tab - (merged to 'next' on 2013-03-26 at 46c6bda) - + apply --whitespace=fix: avoid running over the postimage buffer +* sr/log-SG-no-textconv (2013-04-05) 6 commits + (merged to 'next' on 2013-04-05 at 7f06945) + + diffcore-pickaxe: unify code for log -S/-G + + diffcore-pickaxe: fix leaks in "log -S" and "log -G" + + diffcore-pickaxe: port optimization from has_changes() to diff_grep() + + diffcore-pickaxe: respect --no-textconv + + diffcore-pickaxe: remove fill_one() + + diffcore-pickaxe: remove unnecessary call to get_textconv() - "git apply --whitespace=fix" was not prepared to see a line getting - longer after fixing whitespaces (e.g. tab-in-indent aka Python). + "git log -S/-G" started paying attention to textconv filter, but + there was no way to disable this. Make it honor --no-textconv + option. Will merge to 'master'. -* jk/no-more-self-assignment (2013-03-25) 2 commits - (merged to 'next' on 2013-03-26 at 31ec9ac) - + match-trees: simplify score_trees() using tree_entry() - + submodule: clarify logic in show_submodule_summary +* tr/perl-keep-stderr-open (2013-04-04) 2 commits + - t9700: do not close STDERR + - perl: redirect stderr to /dev/null instead of closing - This started as a topic to reduce "type var = var" self assignment - tricks that were used to squelch "variable used uninitialized perhaps?" - warning from some compilers, but resulted in rewriting logic with - a version that is simpler and easier to understand for humans. - - Will merge to 'master'. + Closing (not redirecting to /dev/null) the standard error stream is + not a very smart thing to do. Later open may return file + descriptor #2 for unrelated purpose, and error reporting code may + write into them. + Will merge to 'next'. -* ap/combine-diff-coalesce-lost (2013-03-25) 1 commit - (merged to 'next' on 2013-03-29 at f6a05ca) - + combine-diff: coalesce lost lines optimally - Attempts to minimize "diff -c/--cc" output by coalescing the same - lines removed from the parents better, but with an O(n^2) - complexity. +* jc/detached-head-doc (2013-04-05) 1 commit + - glossary: extend "detached HEAD" description + (this branch uses cn/commit-amend-doc.) - Will cook in 'next' to see if people with real-world usage scream. +* jk/diff-algo-finishing-touches (2013-04-05) 2 commits + - diff: allow unstuck arguments with --diff-algorithm + - git-merge(1): document diff-algorithm option to merge-recursive -* bk/document-commit-tree-S (2013-03-25) 1 commit - (merged to 'next' on 2013-03-26 at 8ee205f) - + commit-tree: document -S option consistently - Will merge to 'master'. +* jk/diff-graph-submodule-summary (2013-04-05) 1 commit + - submodule: print graph output next to submodule log +-------------------------------------------------- +[Stalled] -* jk/check-corrupt-objects-carefully (2013-03-29) 10 commits - (merged to 'next' on 2013-03-29 at b6a04a7) - + clone: leave repo in place after checkout errors - + clone: run check_everything_connected - + clone: die on errors from unpack_trees - + add tests for cloning corrupted repositories - + streaming_write_entry: propagate streaming errors - + add test for streaming corrupt blobs - + avoid infinite loop in read_istream_loose - + read_istream_filtered: propagate read error from upstream - + check_sha1_signature: check return value from read_istream - + stream_blob_to_fd: detect errors reading from stream +* jc/format-patch (2013-02-21) 2 commits + - format-patch: --inline-single + - format-patch: rename "no_inline" field - Have the streaming interface and other codepaths more carefully - examine for corrupt objects. + A new option to send a single patch to the standard output to be + appended at the bottom of a message. I personally have no need for + this, but it was easy enough to cobble together. Tests, docs and + stripping out more MIMEy stuff are left as exercises to interested + parties. - Will merge to 'master'. + Not ready for inclusion. +-------------------------------------------------- +[Cooking] -* js/iterm-is-on-osx (2013-03-29) 1 commit - (merged to 'next' on 2013-04-01 at 201fed2) - + git-web--browse: recognize any TERM_PROGRAM as a GUI terminal on OS X +* tb/shared-perm (2013-04-05) 2 commits + (merged to 'next' on 2013-04-05 at 2481155) + + path.c: optimize adjust_shared_perm() + + path.c: simplify adjust_shared_perm() - Add more logic to detect graphic environment of OS X by simply - checking TERM_PROGRAM has some value, not Apple_Terminal, to detect - iTerm.app and any other. + Simplifies adjust_shared_perm() implementation. Will merge to 'master'. -* tb/cygwin-shared-repository (2013-03-25) 1 commit - (merged to 'next' on 2013-03-29 at dbeb068) - + Make core.sharedRepository work under cygwin 1.7 - (this branch is used by tb/shared-perm.) +* nd/pretty-formats (2013-04-01) 12 commits + - pretty: support %>> that steal trailing spaces + - pretty: support truncating in %>, %< and %>< + - pretty: support padding placeholders, %< %> and %>< + - pretty: add %C(auto) for auto-coloring on the next placeholder + - pretty: two phase conversion for non utf-8 commits + - utf8: keep NULs in reencode_string() + - pretty: get the correct encoding for --pretty:format=%e + - pretty: save commit encoding from logmsg_reencode if the caller needs it + - utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences + - utf8.c: move display_mode_esc_sequence_len() for use by other functions + - pretty: share code between format_decoration and show_decorations + - pretty-formats.txt: wrap long lines - Cygwin port has a faster-but-lying lstat(2) emulation whose - incorrectness does not matter in practice except for a few - codepaths, and setting permission bits to directories is a codepath - that needs to use a more correct one. + A mixed bag of a bugfix and two fun enhancements on pretty formats + placeholder. - Will merge to 'master'. + Expecting a reroll. -* jc/directory-attrs-regression-fix (2013-03-28) 6 commits - (merged to 'next' on 2013-03-29 at a3dce2b) - + t: check that a pattern without trailing slash matches a directory - + dir.c::match_pathname(): pay attention to the length of string parameters - + dir.c::match_pathname(): adjust patternlen when shifting pattern - + dir.c::match_basename(): pay attention to the length of string parameters - + attr.c::path_matches(): special case paths that end with a slash - + attr.c::path_matches(): the basename is part of the pathname +* jk/merge-tree-added-identically (2013-03-27) 1 commit + - merge-tree: fix "same file added in subdir" - Fix 1.8.1.x regression that stopped matching "dir" (without - trailing slash) to a directory "dir". + We would most likely want to change things the other way around. - Will merge to 'master'. + Expecting a reroll. -* nd/checkout-paths-reduce-match-pathspec-calls (2013-03-27) 1 commit - (merged to 'next' on 2013-03-29 at fbcc004) - + checkout: avoid unnecessary match_pathspec calls +* rr/triangle (2013-04-02) 6 commits + (merged to 'next' on 2013-04-04 at 2d2c8ee) + + remote.c: introduce branch..pushremote + + remote.c: introduce remote.pushdefault + + remote.c: introduce a way to have different remotes for fetch/push + + t5516 (fetch-push): drop implicit arguments from helper functions + + t5516 (fetch-push): update test description + + remote.c: simplify a bit of code using git_config_string() - Consolidate repeated pathspec matches on the same paths, while - fixing a bug in "git checkout dir/" code started from an unmerged - index. + Support "pull from one place, push to another place" workflow + better by introducing remote.pushdefault (overrides the "origin" + thing) and branch.*.pushremote (overrides the branch.*.remote). Will merge to 'master'. -* jc/merge-tag-object (2013-04-01) 3 commits - - t6200: test message for merging of an annotated tag - - t6200: use test_config/test_unconfig - (merged to 'next' on 2013-03-29 at aeec39c) - + merge: a random object may not necssarily be a commit - - "git merge $(git rev-parse v1.8.2)" behaved quite differently from - "git merge v1.8.2" as if v1.8.2 were written as v1.8.2^0 and did - not pay much attention to the annotated tag payload. +* ap/combine-diff-coalesce-lost (2013-03-25) 1 commit + (merged to 'next' on 2013-03-29 at f6a05ca) + + combine-diff: coalesce lost lines optimally - This makes the code notice the type of the tag object, in addition - to the dwim_ref() based classification the current code uses - (i.e. the name appears in refs/tags/) to decide when to special - case merging of tags. + Attempts to minimize "diff -c/--cc" output by coalescing the same + lines removed from the parents better, but with an O(n^2) + complexity. - Will merge to 'next'. + Will cook in 'next' to see if people with real-world usage scream. * kb/status-ignored-optim (2013-03-19) 8 commits @@ -549,19 +583,23 @@ of the repositories listed at very much appreciated. -* jn/add-2.0-u-A-sans-pathspec (2013-04-01) 5 commits +* jn/add-2.0-u-A-sans-pathspec (2013-04-03) 6 commits - git add: -u/-A now affects the entire working tree - - add -A: only show pathless 'add -A' warning when changes exist outside cwd - - add -u: only show pathless 'add -u' warning when changes exist outside cwd - - add: make warn_pathless_add() a no-op after first call - - add: make pathless 'add [-u|-A]' warning a file-global function - - Replaces jc/add-2.0-u-A-sans-pathspec topic by not warning against - "add -u/-A" that is ran without pathspec when there is no change - outside the current directory. + (merged to 'next' on 2013-04-05 at eae93ef) + + add -A: only show pathless 'add -A' warning when changes exist outside cwd + + add -u: only show pathless 'add -u' warning when changes exist outside cwd + + add: make warn_pathless_add() a no-op after first call + + add: add a blank line at the end of pathless 'add [-u|-A]' warning + + add: make pathless 'add [-u|-A]' warning a file-global function + + "git add -u/-A" without any pathspec traditionally limited its + operation to the current directory when run from a subdirectory, + but in Git 2.0, they will affect the entire working tree. Start + training users to explicitly say "." or ":/" to smooth out the + transition hump with the earlier parts of this series, and flip the + default as the final step. - Expecting a reroll and then merge the bottom bits to 'next'. - $gmane/219342 + Will cook in 'next' until Git 2.0. * tr/packed-object-info-wo-recursion (2013-03-27) 3 commits @@ -628,30 +666,33 @@ of the repositories listed at Will merge to 'next' after all the dust settles. -* sw/safe-create-leading-dir-race (2013-03-26) 1 commit - (merged to 'next' on 2013-03-26 at 744bb50) - + safe_create_leading_directories: fix race that could give a false negative - - Will merge to 'master'. - - * jc/add-2.0-delete-default (2013-03-08) 3 commits - git add ... defaults to "-A" - - git add: start preparing for "git add ..." to default to "-A" - - builtin/add.c: simplify boolean variables + (merged to 'next' on 2013-04-05 at 199442e) + + git add: start preparing for "git add ..." to default to "-A" + + builtin/add.c: simplify boolean variables + + In Git 2.0, "git add pathspec" will mean "git add -A pathspec". If + you did this in a working tree that tracks dir/lost and dir/another: + + $ rm dir/lost + $ edit dir/another + $ git add dir - "git add dir/" updated modified files and added new files, but does - not notice removed files, which may be "Huh?" to some users. They - can of course use "git add -A dir/", but why should they? + The last step will not only notices and records updated + dir/another, but also notices and records the removal of dir/lost + in the index. - There seemed to be some interest in this topic, so resurrected and - rebased on top of recent documentation updates to propose a - possible transition plan. + Start training the users for this change to say --no-all when they + want to ignore the removal to smooth the transition hump. Will cook in 'next' until Git 2.0. -* tr/line-log (2013-03-28) 5 commits +* tr/line-log (2013-04-05) 7 commits + (merged to 'next' on 2013-04-05 at 5afb00c) + + log -L: fix overlapping input ranges + + log -L: check range set invariants when we look it up (merged to 'next' on 2013-04-01 at 5be920c) + Speed up log -L... -M + log -L: :pattern:file syntax to find by funcname @@ -659,25 +700,28 @@ of the repositories listed at + Export rewrite_parents() for 'log -L' + Refactor parse_loc - Will merge down to 'master' with warts and all, hoping they get - fixed eventually in-tree. + Will merge down to 'master' + with warts and all, hoping they get fixed eventually in-tree. -* jc/push-2.0-default-to-simple (2013-03-18) 15 commits - - advice: Remove unused advice_push_non_ff_default - - t5570: do not assume the "matching" push is the default - - t5551: do not assume the "matching" push is the default - - t5550: do not assume the "matching" push is the default - - doc: push.default is no longer "matching" +* jc/push-2.0-default-to-simple (2013-04-03) 13 commits - push: switch default from "matching" to "simple" - - t9401: do not assume the "matching" push is the default - - t9400: do not assume the "matching" push is the default - - t7406: do not assume the "matching" push is the default - - t5531: do not assume the "matching" push is the default - - t5519: do not assume the "matching" push is the default - - t5517: do not assume the "matching" push is the default - - t5516: do not assume the "matching" push is the default - - t5505: do not assume the "matching" push is the default - - t5404: do not assume the "matching" push is the default + (merged to 'next' on 2013-04-05 at 1b42c19) + + t5570: do not assume the "matching" push is the default + + t5551: do not assume the "matching" push is the default + + t5550: do not assume the "matching" push is the default + + t9401: do not assume the "matching" push is the default + + t9400: do not assume the "matching" push is the default + + t7406: do not assume the "matching" push is the default + + t5531: do not assume the "matching" push is the default + + t5519: do not assume the "matching" push is the default + + t5517: do not assume the "matching" push is the default + + t5516: do not assume the "matching" push is the default + + t5505: do not assume the "matching" push is the default + + t5404: do not assume the "matching" push is the default + + Update the test suite that still assumed the push.default will + forever be 'matching'. In Git 2.0, that will no longer be the + case. Will cook in 'next' until Git 2.0.