]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2013/04 #02)
authorJunio C Hamano <gitster@pobox.com>
Fri, 5 Apr 2013 22:26:28 +0000 (15:26 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Apr 2013 22:26:28 +0000 (15:26 -0700)
whats-cooking.txt

index 20d803f66d4cc4f1eff9a100a0936d547dd0b14e..c670ae801ea8bb27405d81123e9ec93db269ea2c 100644 (file)
@@ -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=<n>
+
+ "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=<n>
+* 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.<name>.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 <concept>' 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<block>" and "log -G<pattern>"
+ + 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.<name>.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 <pathspec>... defaults to "-A"
- - git add: start preparing for "git add <pathspec>..." 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 <pathspec>..." 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.