From 3fb4ca910bd5b59bb50b7cbbc398062dcb6b2f4b Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 5 Apr 2013 15:26:28 -0700 Subject: [PATCH] What's cooking (2013/04 #02) --- whats-cooking.txt | 896 ++++++++++++++++++++++++---------------------- 1 file changed, 470 insertions(+), 426 deletions(-) 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,167 +24,51 @@ 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. +* 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 -* 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 +* 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 - Dead code removal. - - 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). -* 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 +* 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 - 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. + Fix 1.8.1.x regression that stopped matching "dir" (without + trailing slash) to a directory "dir". -* 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 +* 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 - 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. + "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. - Even though I think this change is correct, please report - immediately if you find any unintended side effect. + 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. -* 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 - - "index-pack --fix-thin" used uninitialize value to compute delta - depths of objects it appends to the resulting pack. - - -* 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 - - 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. - - -* 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. - - -* 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. - - Even though I think this change is correct, please report - immediately if you find any unintended side effect. - - -* 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 - - "git status" shows a bit more info during a bisect/rebase session. - - -* 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 - - "index-pack --verify-stat" used a few counters outside protection - of mutex, possibly showing incorrect numbers. - - -* rr/test-3200-style (2013-03-20) 1 commit - (merged to 'next' on 2013-03-26 at 1214287) - + t3200 (branch): modernize style - - Churns. - - -* 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 - - 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. - --------------------------------------------------- -[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 @@ -197,6 +81,72 @@ of the repositories listed at can be used for that purpose, together with "rev-parse --verify". +* 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 + + Update a test to match the documented interaction between pushURL + and pushInsteadOf. + + +* 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 + + Have the streaming interface and other codepaths more carefully + examine for corrupt objects. + + +* 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 + + 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. + + +* 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 + + 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. + + +* 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 + + 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. + + +* jl/submodule-deinit (2013-04-01) 1 commit + (merged to 'next' on 2013-04-03 at 2ef485c) + + submodule deinit: clarify work tree removal message + + A finishing touch to the new topic in 1.8.3. + + * jm/branch-rename-nothing-error (2013-03-31) 1 commit (merged to 'next' on 2013-04-01 at 5e5cdaf) + branch: give better message when no names specified for rename @@ -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,60 +259,224 @@ of the repositories listed at Let us use not just memgrind but other *grind debuggers. - Will merge to 'master'. +-------------------------------------------------- +[New Topics] - -* 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.) - - "rev-parse --verify" was documented in a misleading way. - - -* 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. +* 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'. -* 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.) +* 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.) - Simplifies adjust_shared_perm() implementation. + Will merge to 'master'. -* 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 +* 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 - A mixed bag of a bugfix and two fun enhancements on pretty formats - placeholder. + The "forced push" may need to become optional behaviour. + Also the tip one was found faulty. + + Expecting a reroll. -* jl/submodule-deinit (2013-04-01) 1 commit - - submodule deinit: clarify work tree removal message +* 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.) - A finishing touch to the new topic in 1.8.3. + Seems to be solving a real problem at a wrong level. + + +* jk/bisect-prn-unsigned (2013-04-03) 1 commit + (merged to 'next' on 2013-04-04 at 2c4df36) + + bisect: avoid signed integer overflow + + Will merge to 'master'. + + +* 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 + + Will merge to 'master'. + + +* 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 + + Will merge to 'master'. + + +* 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 + + Will merge to 'master'. + + +* 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 + + A few bugfixes to "git rerere" working on corner case merge + conflicts. + + Will merge to 'master'. + + +* 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" + + 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. + + Will merge to 'master'. + + +* 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 + + Will merge to 'master'. + + +* 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". + + Will merge to 'master'. + + +* jk/http-dumb-namespaces (2013-04-04) 1 commit + - http-backend: respect GIT_NAMESPACE with dumb clients + + 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). + + +* 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'. + + +* 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 + + "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. + + Seems to break tests in 'pu' but it may be a mismerge with + nd/magic-pathspecs topic. + + +* mg/texinfo-5 (2013-04-03) 1 commit + (merged to 'next' on 2013-04-04 at bd84440) + + Documentation: Strip texinfo anchors to avoid duplicates + + 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'. + + +* 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 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'. + + +* tr/perl-keep-stderr-open (2013-04-04) 2 commits + - t9700: do not close STDERR + - perl: redirect stderr to /dev/null instead of closing + + 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'. + +* jc/detached-head-doc (2013-04-05) 1 commit + - glossary: extend "detached HEAD" description + (this branch uses cn/commit-amend-doc.) + + +* 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 + + +* jk/diff-graph-submodule-summary (2013-04-05) 1 commit + - submodule: print graph output next to submodule log + -------------------------------------------------- [Stalled] @@ -309,22 +495,34 @@ of the repositories listed at -------------------------------------------------- [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 +* 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() - Teach "show/log" honor gpg.program configuration just like other - parts of the code that use GnuPG. + Simplifies adjust_shared_perm() implementation. 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 +* 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 - Update a test to match the documented interaction between pushURL - and pushInsteadOf. + A mixed bag of a bugfix and two fun enhancements on pretty formats + placeholder. + + Expecting a reroll. * jk/merge-tree-added-identically (2013-03-27) 1 commit @@ -332,92 +530,22 @@ of the repositories listed at We would most likely want to change things the other way around. + Expecting a reroll. -* 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() + +* 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() 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. - - -* 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 - - Teach "merge/pull" to optionally verify and reject commits that are - not signed properly. - - -* 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. - - 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 - - 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. - - Will merge to 'master'. - - -* 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 - - 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. - - 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 - - "git apply --whitespace=fix" was not prepared to see a line getting - longer after fixing whitespaces (e.g. tab-in-indent aka Python). - - 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 - - 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'. @@ -432,100 +560,6 @@ of the repositories listed at Will cook in 'next' to see if people with real-world usage scream. -* 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/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 - - Have the streaming interface and other codepaths more carefully - examine for corrupt objects. - - 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. - - 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.) - - 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. - - Will merge to 'master'. - - -* 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 - - Fix 1.8.1.x regression that stopped matching "dir" (without - trailing slash) to a directory "dir". - - Will merge to 'master'. - - -* 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. - - 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. - - 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. - - Will merge to 'next'. - - * kb/status-ignored-optim (2013-03-19) 8 commits (merged to 'next' on 2013-04-01 at 0c12ed9) + dir.c: git-status: avoid is_excluded checks for tracked files @@ -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 + (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 - 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. + "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 - "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? + 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: - 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. + $ rm dir/lost + $ edit dir/another + $ git add dir + + 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. + + 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.