What's cooking (2013/04 #02)

Junio C Hamano committed Apr 5, 2013 at 15:26 UTC 3fb4ca910bd5b59bb50b7cbbc398062dcb6b2f4b
1 file changed +431 -387
whats-cooking.txt
+431 -387
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Apr 2013, #01; Mon, 1)
4 -X-master-at: cc3e4eba723570bf77902c017611ee02bb86c8b3
5 -X-next-at: 5a7d8b8c6ff8c59f4ad782e539b1d511ca6f2e63
3 +Subject: What's cooking in git.git (Apr 2013, #02; Fri, 5)
4 +X-master-at: 21ccebec0dd1d7e624ea2f22af6ac93686daf34f
5 +X-next-at: 2c8b7bf47c81acd2a76c1f9c3be2a1f102b76d31
6
7 -What's cooking in git.git (Apr 2013, #01; Mon, 1)
7 +What's cooking in git.git (Apr 2013, #02; Fri, 5)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -24,177 +24,127 @@ of the repositories listed at
24 --------------------------------------------------
25 [Graduated to "master"]
26
27 -* bc/append-signed-off-by (2013-02-23) 13 commits
28 - (merged to 'next' on 2013-03-26 at 0e3c79b)
29 - + git-commit: populate the edit buffer with 2 blank lines before s-o-b
30 - + Unify appending signoff in format-patch, commit and sequencer
31 - + format-patch: update append_signoff prototype
32 - + t4014: more tests about appending s-o-b lines
33 - + sequencer.c: teach append_signoff to avoid adding a duplicate newline
34 - + sequencer.c: teach append_signoff how to detect duplicate s-o-b
35 - + sequencer.c: always separate "(cherry picked from" from commit body
36 - + sequencer.c: require a conforming footer to be preceded by a blank line
37 - + sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
38 - + t/t3511: add some tests of 'cherry-pick -s' functionality
39 - + t/test-lib-functions.sh: allow to specify the tag name to test_commit
40 - + commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
41 - + sequencer.c: rework search for start of footer to improve clarity
42 -
43 - Consolidates codepaths that inspect log-message-to-be and decide to
44 - add a new Signed-off-by line in various commands. I think there is
45 - no negative behaviour change in this series, but please report any
46 - iffy behaviour change immediately if you notice one.
47 -
48 -
49 -* jc/nobody-sets-src-peer-ref (2013-03-04) 1 commit
50 - (merged to 'next' on 2013-03-26 at 9d13c02)
51 - + match_push_refs(): nobody sets src->peer_ref anymore
52 -
53 - Dead code removal.
54 -
55 - Even though I think this change is correct, please report
56 - immediately if you find any unintended side effect.
57 -
58 -
59 -* jc/remove-export-from-config-mak-in (2013-03-05) 3 commits
60 - (merged to 'next' on 2013-03-26 at a789220)
61 - + Fix `make install` when configured with autoconf
62 - + Makefile: do not export mandir/htmldir/infodir
63 - + config.mak.in: remove unused definitions
64 -
65 - config.mak.in template had an "export" line to cause a few
66 - common makefile variables to be exported; if they need to be
67 - expoted for autoconf/configure users, they should also be exported
68 - for people who write config.mak the same way. Move the "export" to
69 - the main Makefile. Also, stop exporting mandir that used to be
70 - exported (only) when config.mak.autogen was used. It would have
71 - broken installation of manpages (but not other documentation
72 - formats).
73 -
74 - Even though I think this change is correct, please report
75 - immediately if you find any unintended side effect.
76 -
27 +* bk/document-commit-tree-S (2013-03-25) 1 commit
28 + (merged to 'next' on 2013-03-26 at 8ee205f)
29 + + commit-tree: document -S option consistently
30
78 -* jk/common-make-variables-export-safety (2013-02-25) 1 commit
79 - (merged to 'next' on 2013-03-26 at 8b7bb16)
80 - + Makefile: make mandir, htmldir and infodir absolute
31
82 - Make the three variables safer to be exported to submakes by
83 - ensuring that they are full paths so that they can be used as
84 - installation location.
32 +* jc/apply-ws-fix-tab-in-indent (2013-03-29) 2 commits
33 + (merged to 'next' on 2013-03-29 at 26eb6e9)
34 + + test: resurrect q_to_tab
35 + (merged to 'next' on 2013-03-26 at 46c6bda)
36 + + apply --whitespace=fix: avoid running over the postimage buffer
37
86 - Even though I think this change is correct, please report
87 - immediately if you find any unintended side effect.
38 + "git apply --whitespace=fix" was not prepared to see a line getting
39 + longer after fixing whitespaces (e.g. tab-in-indent aka Python).
40
41
90 -* jk/index-pack-correct-depth-fix (2013-03-20) 1 commit
91 - (merged to 'next' on 2013-03-26 at c56e839)
92 - + index-pack: always zero-initialize object_entry list
42 +* jc/directory-attrs-regression-fix (2013-03-28) 6 commits
43 + (merged to 'next' on 2013-03-29 at a3dce2b)
44 + + t: check that a pattern without trailing slash matches a directory
45 + + dir.c::match_pathname(): pay attention to the length of string parameters
46 + + dir.c::match_pathname(): adjust patternlen when shifting pattern
47 + + dir.c::match_basename(): pay attention to the length of string parameters
48 + + attr.c::path_matches(): special case paths that end with a slash
49 + + attr.c::path_matches(): the basename is part of the pathname
50
94 - "index-pack --fix-thin" used uninitialize value to compute delta
95 - depths of objects it appends to the resulting pack.
51 + Fix 1.8.1.x regression that stopped matching "dir" (without
52 + trailing slash) to a directory "dir".
53
54
98 -* jk/pkt-line-cleanup (2013-03-21) 20 commits
99 - (merged to 'next' on 2013-03-26 at 2bb3b75)
100 - + do not use GIT_TRACE_PACKET=3 in tests
101 - + remote-curl: always parse incoming refs
102 - + remote-curl: move ref-parsing code up in file
103 - + remote-curl: pass buffer straight to get_remote_heads
104 - + teach get_remote_heads to read from a memory buffer
105 - + pkt-line: share buffer/descriptor reading implementation
106 - + pkt-line: provide a LARGE_PACKET_MAX static buffer
107 - + pkt-line: move LARGE_PACKET_MAX definition from sideband
108 - + pkt-line: teach packet_read_line to chomp newlines
109 - + pkt-line: provide a generic reading function with options
110 - + pkt-line: drop safe_write function
111 - + pkt-line: move a misplaced comment
112 - + write_or_die: raise SIGPIPE when we get EPIPE
113 - + upload-archive: use argv_array to store client arguments
114 - + upload-archive: do not copy repo name
115 - + send-pack: prefer prefixcmp over memcmp in receive_status
116 - + fetch-pack: fix out-of-bounds buffer offset in get_ack
117 - + upload-pack: remove packet debugging harness
118 - + upload-pack: do not add duplicate objects to shallow list
119 - + upload-pack: use get_sha1_hex to parse "shallow" lines
55 +* jc/merge-tag-object (2013-04-01) 3 commits
56 + (merged to 'next' on 2013-04-03 at 94b5c7d)
57 + + t6200: test message for merging of an annotated tag
58 + + t6200: use test_config/test_unconfig
59 + (merged to 'next' on 2013-03-29 at aeec39c)
60 + + merge: a random object may not necssarily be a commit
61
121 - Cleans up pkt-line API, implementation and its callers to make them
122 - more robust. Even though I think this change is correct, please
123 - report immediately if you find any unintended side effect.
62 + "git merge $(git rev-parse v1.8.2)" behaved quite differently from
63 + "git merge v1.8.2" as if v1.8.2 were written as v1.8.2^0 and did
64 + not pay much attention to the annotated tag payload.
65
66 + This makes the code notice the type of the tag object, in addition
67 + to the dwim_ref() based classification the current code uses
68 + (i.e. the name appears in refs/tags/) to decide when to special
69 + case merging of tags.
70
126 -* jn/push-tests (2013-03-19) 3 commits
127 - (merged to 'next' on 2013-03-26 at da891db)
128 - + push test: rely on &&-chaining instead of 'if bad; then echo Oops; fi'
129 - + push test: simplify check of push result
130 - + push test: use test_config when appropriate
71
132 - Update t5516 with style fixes.
72 +* jc/sha1-name-object-peeler (2013-03-31) 2 commits
73 + (merged to 'next' on 2013-04-01 at cdb4a18)
74 + + peel_onion(): teach $foo^{object} peeler
75 + + peel_onion: disambiguate to favor tree-ish when we know we want a tree-ish
76 + (this branch is used by mh/rev-parse-verify-doc.)
77
78 + There was no good way to ask "I have a random string that came from
79 + outside world. I want to turn it into a 40-hex object name while
80 + making sure such an object exists". A new peeling suffix ^{object}
81 + can be used for that purpose, together with "rev-parse --verify".
82
135 -* kb/name-hash (2013-02-27) 1 commit
136 - (merged to 'next' on 2013-03-26 at 750490a)
137 - + name-hash.c: fix endless loop with core.ignorecase=true
83
139 - The code to keep track of what directory names are known to Git on
140 - platforms with case insensitive filesystems can get confused upon
141 - a hash collision between these pathnames and looped forever.
84 +* jc/t5516-pushInsteadOf-vs-pushURL (2013-03-28) 1 commit
85 + (merged to 'next' on 2013-04-01 at bed2879)
86 + + t5516: test interaction between pushURL and pushInsteadOf correctly
87
143 - Even though I think this change is correct, please report
144 - immediately if you find any unintended side effect.
88 + Update a test to match the documented interaction between pushURL
89 + and pushInsteadOf.
90
91
147 -* nd/branch-show-rebase-bisect-state (2013-03-23) 7 commits
148 - (merged to 'next' on 2013-03-26 at cd666f6)
149 - + status, branch: fix the misleading "bisecting" message
150 - + branch: show more information when HEAD is detached
151 - + status: show more info than "currently not on any branch"
152 - + wt-status: move wt_status_get_state() out to wt_status_print()
153 - + wt-status: split wt_status_state parsing function out
154 - + wt-status: move strbuf into read_and_strip_branch()
155 - + Merge branch 'jc/reflog-reverse-walk' into nd/branch-show-rebase-bisect-state
92 +* jk/check-corrupt-objects-carefully (2013-03-29) 10 commits
93 + (merged to 'next' on 2013-03-29 at b6a04a7)
94 + + clone: leave repo in place after checkout errors
95 + + clone: run check_everything_connected
96 + + clone: die on errors from unpack_trees
97 + + add tests for cloning corrupted repositories
98 + + streaming_write_entry: propagate streaming errors
99 + + add test for streaming corrupt blobs
100 + + avoid infinite loop in read_istream_loose
101 + + read_istream_filtered: propagate read error from upstream
102 + + check_sha1_signature: check return value from read_istream
103 + + stream_blob_to_fd: detect errors reading from stream
104
157 - "git status" shows a bit more info during a bisect/rebase session.
105 + Have the streaming interface and other codepaths more carefully
106 + examine for corrupt objects.
107
108
160 -* nd/index-pack-threaded-fixes (2013-03-19) 2 commits
161 - (merged to 'next' on 2013-03-26 at e508c77)
162 - + index-pack: guard nr_resolved_deltas reads by lock
163 - + index-pack: protect deepest_delta in multithread code
109 +* jk/config-with-empty-section (2013-03-29) 1 commit
110 + (merged to 'next' on 2013-04-01 at 7972aa9)
111 + + t1300: document some aesthetic failures of the config editor
112
165 - "index-pack --verify-stat" used a few counters outside protection
166 - of mutex, possibly showing incorrect numbers.
113 + Document that "git config --unset" does not remove an empty section
114 + head after removing the last variable in a section, and adding a
115 + new variable does not try to reuse a leftover empty section head.
116
117
169 -* rr/test-3200-style (2013-03-20) 1 commit
170 - (merged to 'next' on 2013-03-26 at 1214287)
171 - + t3200 (branch): modernize style
118 +* jk/difftool-no-overwrite-on-copyback (2013-03-29) 5 commits
119 + (merged to 'next' on 2013-03-29 at 9f42d34)
120 + + t7800: run --dir-diff tests with and without symlinks
121 + + t7800: fix tests when difftool uses --no-symlinks
122 + + t7800: don't hide grep output
123 + + difftool: don't overwrite modified files
124 + + t7800: move '--symlinks' specific test to the end
125
173 - Churns.
126 + Try to be careful when difftool backend allows the user to write
127 + into the temporary files being shown *and* the user makes changes
128 + to the working tree at the same time. One of the changes has to be
129 + lost in such a case, but at least tell the user what he did.
130
131
176 -* sr/am-show-final-message-in-applying-indicator (2013-03-21) 1 commit
177 - (merged to 'next' on 2013-03-26 at 9ecb143)
178 - + git-am: show the final log message on "Applying:" indicator
132 +* jk/no-more-self-assignment (2013-03-25) 2 commits
133 + (merged to 'next' on 2013-03-26 at 31ec9ac)
134 + + match-trees: simplify score_trees() using tree_entry()
135 + + submodule: clarify logic in show_submodule_summary
136
180 - In addition to the case where the user edits the log message with
181 - the "e)dit" option of "am -i", replace the "Applying: this patch"
182 - message with the final log message contents after applymsg hook
183 - munges it.
137 + This started as a topic to reduce "type var = var" self assignment
138 + tricks that were used to squelch "variable used uninitialized perhaps?"
139 + warning from some compilers, but resulted in rewriting logic with
140 + a version that is simpler and easier to understand for humans.
141
185 ---------------------------------------------------
186 -[New Topics]
142
188 -* jc/sha1-name-object-peeler (2013-03-31) 2 commits
189 - (merged to 'next' on 2013-04-01 at cdb4a18)
190 - + peel_onion(): teach $foo^{object} peeler
191 - + peel_onion: disambiguate to favor tree-ish when we know we want a tree-ish
192 - (this branch is used by mh/rev-parse-verify-doc.)
143 +* jl/submodule-deinit (2013-04-01) 1 commit
144 + (merged to 'next' on 2013-04-03 at 2ef485c)
145 + + submodule deinit: clarify work tree removal message
146
194 - There was no good way to ask "I have a random string that came from
195 - outside world. I want to turn it into a 40-hex object name while
196 - making sure such an object exists". A new peeling suffix ^{object}
197 - can be used for that purpose, together with "rev-parse --verify".
147 + A finishing touch to the new topic in 1.8.3.
148
149
150 * jm/branch-rename-nothing-error (2013-03-31) 1 commit
@@ -204,7 +154,38 @@ of the repositories listed at
154 "git branch -m" without any argument noticed an error, but with an
155 incorrect error message.
156
207 - Will merge to 'master'.
157 +
158 +* js/iterm-is-on-osx (2013-03-29) 1 commit
159 + (merged to 'next' on 2013-04-01 at 201fed2)
160 + + git-web--browse: recognize any TERM_PROGRAM as a GUI terminal on OS X
161 +
162 + Add more logic to detect graphic environment of OS X by simply
163 + checking TERM_PROGRAM has some value, not Apple_Terminal, to detect
164 + iTerm.app and any other.
165 +
166 +
167 +* js/log-gpg (2013-03-27) 1 commit
168 + (merged to 'next' on 2013-03-29 at 9a1b2d3)
169 + + log: read gpg settings for signed commit verification
170 +
171 + Teach "show/log" honor gpg.program configuration just like other
172 + parts of the code that use GnuPG.
173 +
174 +
175 +* mh/rev-parse-verify-doc (2013-04-02) 1 commit
176 + (merged to 'next' on 2013-04-03 at a09c332)
177 + + rev-parse: clarify documentation for the --verify option
178 +
179 + "rev-parse --verify" was documented in a misleading way.
180 +
181 +
182 +* nd/checkout-paths-reduce-match-pathspec-calls (2013-03-27) 1 commit
183 + (merged to 'next' on 2013-03-29 at fbcc004)
184 + + checkout: avoid unnecessary match_pathspec calls
185 +
186 + Consolidate repeated pathspec matches on the same paths, while
187 + fixing a bug in "git checkout dir/" code started from an unmerged
188 + index.
189
190
191 * rr/prompt-revert-head (2013-03-31) 1 commit
@@ -214,18 +195,59 @@ of the repositories listed at
195 The prompt string generator did not notice when we are in a middle
196 of a "git revert" session.
197
217 - Will merge to 'master'.
218 -
198
199 * rr/send-email-perl-critique (2013-03-31) 3 commits
221 - - send-email: use the three-arg form of open in recipients_cmd
222 - - send-email: drop misleading function prototype
223 - - send-email: use "return;" not "return undef;" on error codepaths
200 + (merged to 'next' on 2013-04-03 at d552868)
201 + + send-email: use the three-arg form of open in recipients_cmd
202 + + send-email: drop misleading function prototype
203 + + send-email: use "return;" not "return undef;" on error codepaths
204
205 Broken down from an earlier discussion to pick up reasonable bits
206 with explanation, to demonstrate how it should be done.
207
228 - Will merge to 'next'.
208 +
209 +* rs/submodule-summary-limit (2013-04-01) 1 commit
210 + (merged to 'next' on 2013-04-01 at 3c18cfe)
211 + + submodule summary: support --summary-limit=<n>
212 +
213 + "submodule summary --summary-limit" option did not support
214 + "--option=value" form.
215 +
216 +
217 +* sg/gpg-sig (2013-03-31) 5 commits
218 + (merged to 'next' on 2013-04-03 at 9c13a17)
219 + + pretty printing: extend %G? to include 'N' and 'U'
220 + + merge/pull Check for untrusted good GPG signatures
221 + + merge/pull: verify GPG signatures of commits being merged
222 + + commit.c/GPG signature verification: Also look at the first GPG status line
223 + + Move commit GPG signature verification to commit.c
224 +
225 + Teach "merge/pull" to optionally verify and reject commits that are
226 + not signed properly.
227 +
228 +
229 +* sw/safe-create-leading-dir-race (2013-03-26) 1 commit
230 + (merged to 'next' on 2013-03-26 at 744bb50)
231 + + safe_create_leading_directories: fix race that could give a false negative
232 +
233 +
234 +* tb/cygwin-shared-repository (2013-03-25) 1 commit
235 + (merged to 'next' on 2013-03-29 at dbeb068)
236 + + Make core.sharedRepository work under cygwin 1.7
237 + (this branch is used by tb/shared-perm.)
238 +
239 + Cygwin port has a faster-but-lying lstat(2) emulation whose
240 + incorrectness does not matter in practice except for a few
241 + codepaths, and setting permission bits to directories is a codepath
242 + that needs to use a more correct one.
243 +
244 +
245 +* tr/log-tree-optim (2013-03-28) 1 commit
246 + (merged to 'next' on 2013-03-29 at 5a6795d)
247 + + Avoid loading commits twice in log with diffs
248 +
249 + Optimize "log" that shows the difference between the parent and the
250 + child.
251
252
253 * tr/valgrind (2013-04-01) 4 commits
@@ -237,293 +259,305 @@ of the repositories listed at
259
260 Let us use not just memgrind but other *grind debuggers.
261
262 +--------------------------------------------------
263 +[New Topics]
264 +
265 +* cn/commit-amend-doc (2013-04-05) 1 commit
266 + (merged to 'next' on 2013-04-05 at 4c42e59)
267 + + Documentation/git-commit: reword the --amend explanation
268 + (this branch is used by jc/detached-head-doc.)
269 +
270 Will merge to 'master'.
271
272
243 -* mh/rev-parse-verify-doc (2013-04-01) 2 commits
244 - - SQUASH???
245 - - rev-parse: clarify documentation for the --verify option
246 - (this branch uses jc/sha1-name-object-peeler.)
273 +* fc/remote-helpers-test-updates (2013-04-04) 4 commits
274 + (merged to 'next' on 2013-04-04 at 0612744)
275 + + remote-hg: fix hg-git test-case
276 + + remote-bzr: remove stale check code for tests
277 + + remote-helpers: fix the run of all tests
278 + + remote-bzr: avoid echo -n
279 + (this branch is used by fc/transport-helper-waitpid.)
280
248 - "rev-parse --verify" was documented in a misleading way.
281 + Will merge to 'master'.
282
283
251 -* rs/submodule-summary-limit (2013-04-01) 1 commit
252 - (merged to 'next' on 2013-04-01 at 3c18cfe)
253 - + submodule summary: support --summary-limit=<n>
284 +* fc/remote-hg (2013-04-04) 13 commits
285 + - remote-hg: push to the appropriate branch
286 + - remote-hg: update tags globally
287 + - remote-hg: force remote push
288 + - remote-hg: update remote bookmarks
289 + - remote-hg: refactor export
290 + - remote-hg: split bookmark handling
291 + - remote-hg: redirect buggy mercurial output
292 + - remote-hg: trivial test cleanups
293 + - remote-hg: make sure fake bookmarks are updated
294 + - remote-hg: fix for files with spaces
295 + - remote-hg: properly report errors on bookmark pushes
296 + - remote-hg: add missing config variable in doc
297 + - remote-hg: trivial cleanups
298 +
299 + The "forced push" may need to become optional behaviour.
300 + Also the tip one was found faulty.
301
255 - "submodule summary --summary-limit" option did not support
256 - "--option=value" form.
302 + Expecting a reroll.
303
258 - Will merge to 'master'.
304
305 +* fc/transport-helper-waitpid (2013-04-04) 2 commits
306 + - transport-helper: check if remote helper is alive
307 + - run-command: add new check_command helper
308 + (this branch uses fc/remote-helpers-test-updates.)
309
261 -* tb/shared-perm (2013-04-01) 2 commits
262 - - path.c: optimize adjust_shared_perm()
263 - - optimize set_shared_perm() in path.c:
264 - (this branch uses tb/cygwin-shared-repository.)
310 + Seems to be solving a real problem at a wrong level.
311
266 - Simplifies adjust_shared_perm() implementation.
312
313 +* jk/bisect-prn-unsigned (2013-04-03) 1 commit
314 + (merged to 'next' on 2013-04-04 at 2c4df36)
315 + + bisect: avoid signed integer overflow
316
269 -* nd/pretty-formats (2013-04-01) 12 commits
270 - - pretty: support %>> that steal trailing spaces
271 - - pretty: support truncating in %>, %< and %><
272 - - pretty: support padding placeholders, %< %> and %><
273 - - pretty: add %C(auto) for auto-coloring on the next placeholder
274 - - pretty: two phase conversion for non utf-8 commits
275 - - utf8: keep NULs in reencode_string()
276 - - pretty: get the correct encoding for --pretty:format=%e
277 - - pretty: save commit encoding from logmsg_reencode if the caller needs it
278 - - utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences
279 - - utf8.c: move display_mode_esc_sequence_len() for use by other functions
280 - - pretty: share code between format_decoration and show_decorations
281 - - pretty-formats.txt: wrap long lines
317 + Will merge to 'master'.
318
283 - A mixed bag of a bugfix and two fun enhancements on pretty formats
284 - placeholder.
319
320 +* jk/diffcore-break-divzero (2013-04-03) 1 commit
321 + (merged to 'next' on 2013-04-04 at b7632e0)
322 + + diffcore-break: don't divide by zero
323
287 -* jl/submodule-deinit (2013-04-01) 1 commit
288 - - submodule deinit: clarify work tree removal message
324 + Will merge to 'master'.
325
290 - A finishing touch to the new topic in 1.8.3.
326
292 - Will merge to 'next'.
327 +* jk/filter-branch-come-back-to-original (2013-04-02) 1 commit
328 + (merged to 'next' on 2013-04-04 at 621684a)
329 + + filter-branch: return to original dir after filtering
330
294 ---------------------------------------------------
295 -[Stalled]
331 + Will merge to 'master'.
332
297 -* jc/format-patch (2013-02-21) 2 commits
298 - - format-patch: --inline-single
299 - - format-patch: rename "no_inline" field
333
301 - A new option to send a single patch to the standard output to be
302 - appended at the bottom of a message. I personally have no need for
303 - this, but it was easy enough to cobble together. Tests, docs and
304 - stripping out more MIMEy stuff are left as exercises to interested
305 - parties.
334 +* jk/set-upstream-error-cases (2013-04-02) 5 commits
335 + (merged to 'next' on 2013-04-04 at b58c26b)
336 + + branch: give advice when tracking start-point is missing
337 + + branch: mention start_name in set-upstream error messages
338 + + branch: improve error message for missing --set-upstream-to ref
339 + + branch: factor out "upstream is not a branch" error messages
340 + + t3200: test --set-upstream-to with bogus refs
341
307 - Not ready for inclusion.
342 + Will merge to 'master'.
343
309 ---------------------------------------------------
310 -[Cooking]
344
312 -* js/log-gpg (2013-03-27) 1 commit
313 - (merged to 'next' on 2013-03-29 at 9a1b2d3)
314 - + log: read gpg settings for signed commit verification
345 +* js/rerere-forget-protect-against-NUL (2013-04-04) 2 commits
346 + (merged to 'next' on 2013-04-05 at 426d4e2)
347 + + rerere forget: do not segfault if not all stages are present
348 + + rerere forget: grok files containing NUL
349
316 - Teach "show/log" honor gpg.program configuration just like other
317 - parts of the code that use GnuPG.
350 + A few bugfixes to "git rerere" working on corner case merge
351 + conflicts.
352
353 Will merge to 'master'.
354
355
322 -* jc/t5516-pushInsteadOf-vs-pushURL (2013-03-28) 1 commit
323 - (merged to 'next' on 2013-04-01 at bed2879)
324 - + t5516: test interaction between pushURL and pushInsteadOf correctly
356 +* mc/count-objects-kibibytes (2013-04-03) 1 commit
357 + (merged to 'next' on 2013-04-05 at f4e50e8)
358 + + count-objects: output "KiB" instead of "kilobytes"
359
326 - Update a test to match the documented interaction between pushURL
327 - and pushInsteadOf.
360 + The command reports the total diskspace used to store loose objects
361 + in kibibytes, but it was labelled as "kilobytes". The number now
362 + is shown with "KiB", e.g. "6750 objects, 50928 KiB".
363
364 + If you have scripts that decide when to run "git repack" by parsing
365 + the output from "git count-objects", this release may break them.
366 + Sorry about that. One of the scripts shipped by git-core itself
367 + also had to be adjusted. You may want to consider updating such
368 + scripts to always call "git gc --auto" to let it decide when to
369 + repack for you.
370
330 -* jk/merge-tree-added-identically (2013-03-27) 1 commit
331 - - merge-tree: fix "same file added in subdir"
371 + Will merge to 'master'.
372
333 - We would most likely want to change things the other way around.
373
374 +* mm/status-during-revert (2013-04-02) 2 commits
375 + (merged to 'next' on 2013-04-04 at 1282528)
376 + + status: show commit sha1 in "You are currently reverting" message
377 + + status: show 'revert' state and status hint
378
336 -* rr/triangle (2013-03-28) 6 commits
337 - - remote.c: introduce branch.<name>.pushremote
338 - - remote.c: introduce remote.pushdefault
339 - - remote.c: introduce a way to have different remotes for fetch/push
340 - - t5516 (fetch-push): drop implicit arguments from helper functions
341 - - t5516 (fetch-push): update test description
342 - - remote.c: simplify a bit of code using git_config_string()
379 + Will merge to 'master'.
380
344 - Support "pull from one place, push to another place" workflow
345 - better by introducing remote.pushdefault (overrides the "origin"
346 - thing) and branch.*.pushremote (overrides the branch.*.remote).
381
348 - Expecting a reroll.
382 +* po/help-guides (2013-04-03) 5 commits
383 + (merged to 'next' on 2013-04-04 at 3d99b28)
384 + + doc: include --guide option description for "git help"
385 + + help: mention -a and -g option, and 'git help <concept>' usage.
386 + + builtin/help.c: add list_common_guides_help() function
387 + + builtin/help.c: add --guide option
388 + + builtin/help.c: split "-a" processing into two
389
390 + "git help" learned "-g" option to show the list of guides just like
391 + list of commands are given with "-a".
392
351 -* sg/gpg-sig (2013-03-31) 5 commits
352 - - pretty printing: extend %G? to include 'N' and 'U'
353 - - merge/pull Check for untrusted good GPG signatures
354 - - merge/pull: verify GPG signatures of commits being merged
355 - - commit.c/GPG signature verification: Also look at the first GPG status line
356 - - Move commit GPG signature verification to commit.c
393 + Will merge to 'master'.
394
358 - Teach "merge/pull" to optionally verify and reject commits that are
359 - not signed properly.
395
396 +* jk/http-dumb-namespaces (2013-04-04) 1 commit
397 + - http-backend: respect GIT_NAMESPACE with dumb clients
398
362 -* tr/log-tree-optim (2013-03-28) 1 commit
363 - (merged to 'next' on 2013-03-29 at 5a6795d)
364 - + Avoid loading commits twice in log with diffs
399 + Allow smart-capable HTTP servers to be restricted via the
400 + GIT_NAMESPACE mechanism when talking with commit-walker clients
401 + (they already do so when talking with smart HTTP clients).
402
366 - Optimize "log" that shows the difference between the parent and the
367 - child.
403 +
404 +* jk/rm-removed-paths (2013-04-04) 3 commits
405 + (merged to 'next' on 2013-04-05 at ce9a926)
406 + + t3600: document failure of rm across symbolic links
407 + + t3600: test behavior of reverse-d/f conflict
408 + + rm: do not complain about d/f conflicts during deletion
409 +
410 + A handful of test cases and a corner case bugfix for "git rm".
411
412 Will merge to 'master'.
413
414
372 -* jk/config-with-empty-section (2013-03-29) 1 commit
373 - (merged to 'next' on 2013-04-01 at 7972aa9)
374 - + t1300: document some aesthetic failures of the config editor
415 +* jl/submodule-mv (2013-04-03) 3 commits
416 + - Teach mv to update the path entry in .gitmodules for moved submodules
417 + - Teach mv to move submodules using a gitfile
418 + - Teach mv to move submodules together with their work trees
419
376 - Document that "git config --unset" does not remove an empty section
377 - head after removing the last variable in a section, and adding a
378 - new variable does not try to reuse a leftover empty section head.
420 + "git mv A B" when moving a submodule A does "the right thing",
421 + inclusing relocating its working tree and adjusting the paths in
422 + the .gitmodules file.
423
380 - Will merge to 'master'.
424 + Seems to break tests in 'pu' but it may be a mismerge with
425 + nd/magic-pathspecs topic.
426
427
383 -* jk/difftool-no-overwrite-on-copyback (2013-03-29) 5 commits
384 - (merged to 'next' on 2013-03-29 at 9f42d34)
385 - + t7800: run --dir-diff tests with and without symlinks
386 - + t7800: fix tests when difftool uses --no-symlinks
387 - + t7800: don't hide grep output
388 - + difftool: don't overwrite modified files
389 - + t7800: move '--symlinks' specific test to the end
428 +* mg/texinfo-5 (2013-04-03) 1 commit
429 + (merged to 'next' on 2013-04-04 at bd84440)
430 + + Documentation: Strip texinfo anchors to avoid duplicates
431
391 - Try to be careful when difftool backend allows the user to write
392 - into the temporary files being shown *and* the user makes changes
393 - to the working tree at the same time. One of the changes has to be
394 - lost in such a case, but at least tell the user what he did.
432 + Strip @anchor elements in the texinfo output of the documentation,
433 + as a single document created by concatenating our entire manual set
434 + will produce many duplicates that makes newer texinfo unhappy.
435
436 Will merge to 'master'.
437
438
399 -* jc/apply-ws-fix-tab-in-indent (2013-03-29) 2 commits
400 - (merged to 'next' on 2013-03-29 at 26eb6e9)
401 - + test: resurrect q_to_tab
402 - (merged to 'next' on 2013-03-26 at 46c6bda)
403 - + apply --whitespace=fix: avoid running over the postimage buffer
439 +* sr/log-SG-no-textconv (2013-04-05) 6 commits
440 + (merged to 'next' on 2013-04-05 at 7f06945)
441 + + diffcore-pickaxe: unify code for log -S/-G
442 + + diffcore-pickaxe: fix leaks in "log -S<block>" and "log -G<pattern>"
443 + + diffcore-pickaxe: port optimization from has_changes() to diff_grep()
444 + + diffcore-pickaxe: respect --no-textconv
445 + + diffcore-pickaxe: remove fill_one()
446 + + diffcore-pickaxe: remove unnecessary call to get_textconv()
447
405 - "git apply --whitespace=fix" was not prepared to see a line getting
406 - longer after fixing whitespaces (e.g. tab-in-indent aka Python).
448 + "git log -S/-G" started paying attention to textconv filter, but
449 + there was no way to disable this. Make it honor --no-textconv
450 + option.
451
452 Will merge to 'master'.
453
454
411 -* jk/no-more-self-assignment (2013-03-25) 2 commits
412 - (merged to 'next' on 2013-03-26 at 31ec9ac)
413 - + match-trees: simplify score_trees() using tree_entry()
414 - + submodule: clarify logic in show_submodule_summary
455 +* tr/perl-keep-stderr-open (2013-04-04) 2 commits
456 + - t9700: do not close STDERR
457 + - perl: redirect stderr to /dev/null instead of closing
458
416 - This started as a topic to reduce "type var = var" self assignment
417 - tricks that were used to squelch "variable used uninitialized perhaps?"
418 - warning from some compilers, but resulted in rewriting logic with
419 - a version that is simpler and easier to understand for humans.
420 -
421 - Will merge to 'master'.
459 + Closing (not redirecting to /dev/null) the standard error stream is
460 + not a very smart thing to do. Later open may return file
461 + descriptor #2 for unrelated purpose, and error reporting code may
462 + write into them.
463
464 + Will merge to 'next'.
465
424 -* ap/combine-diff-coalesce-lost (2013-03-25) 1 commit
425 - (merged to 'next' on 2013-03-29 at f6a05ca)
426 - + combine-diff: coalesce lost lines optimally
466
428 - Attempts to minimize "diff -c/--cc" output by coalescing the same
429 - lines removed from the parents better, but with an O(n^2)
430 - complexity.
467 +* jc/detached-head-doc (2013-04-05) 1 commit
468 + - glossary: extend "detached HEAD" description
469 + (this branch uses cn/commit-amend-doc.)
470
432 - Will cook in 'next' to see if people with real-world usage scream.
471
472 +* jk/diff-algo-finishing-touches (2013-04-05) 2 commits
473 + - diff: allow unstuck arguments with --diff-algorithm
474 + - git-merge(1): document diff-algorithm option to merge-recursive
475
435 -* bk/document-commit-tree-S (2013-03-25) 1 commit
436 - (merged to 'next' on 2013-03-26 at 8ee205f)
437 - + commit-tree: document -S option consistently
476
439 - Will merge to 'master'.
477 +* jk/diff-graph-submodule-summary (2013-04-05) 1 commit
478 + - submodule: print graph output next to submodule log
479
480 +--------------------------------------------------
481 +[Stalled]
482
442 -* jk/check-corrupt-objects-carefully (2013-03-29) 10 commits
443 - (merged to 'next' on 2013-03-29 at b6a04a7)
444 - + clone: leave repo in place after checkout errors
445 - + clone: run check_everything_connected
446 - + clone: die on errors from unpack_trees
447 - + add tests for cloning corrupted repositories
448 - + streaming_write_entry: propagate streaming errors
449 - + add test for streaming corrupt blobs
450 - + avoid infinite loop in read_istream_loose
451 - + read_istream_filtered: propagate read error from upstream
452 - + check_sha1_signature: check return value from read_istream
453 - + stream_blob_to_fd: detect errors reading from stream
483 +* jc/format-patch (2013-02-21) 2 commits
484 + - format-patch: --inline-single
485 + - format-patch: rename "no_inline" field
486
455 - Have the streaming interface and other codepaths more carefully
456 - examine for corrupt objects.
487 + A new option to send a single patch to the standard output to be
488 + appended at the bottom of a message. I personally have no need for
489 + this, but it was easy enough to cobble together. Tests, docs and
490 + stripping out more MIMEy stuff are left as exercises to interested
491 + parties.
492
458 - Will merge to 'master'.
493 + Not ready for inclusion.
494
495 +--------------------------------------------------
496 +[Cooking]
497
461 -* js/iterm-is-on-osx (2013-03-29) 1 commit
462 - (merged to 'next' on 2013-04-01 at 201fed2)
463 - + git-web--browse: recognize any TERM_PROGRAM as a GUI terminal on OS X
498 +* tb/shared-perm (2013-04-05) 2 commits
499 + (merged to 'next' on 2013-04-05 at 2481155)
500 + + path.c: optimize adjust_shared_perm()
501 + + path.c: simplify adjust_shared_perm()
502
465 - Add more logic to detect graphic environment of OS X by simply
466 - checking TERM_PROGRAM has some value, not Apple_Terminal, to detect
467 - iTerm.app and any other.
503 + Simplifies adjust_shared_perm() implementation.
504
505 Will merge to 'master'.
506
507
472 -* tb/cygwin-shared-repository (2013-03-25) 1 commit
473 - (merged to 'next' on 2013-03-29 at dbeb068)
474 - + Make core.sharedRepository work under cygwin 1.7
475 - (this branch is used by tb/shared-perm.)
508 +* nd/pretty-formats (2013-04-01) 12 commits
509 + - pretty: support %>> that steal trailing spaces
510 + - pretty: support truncating in %>, %< and %><
511 + - pretty: support padding placeholders, %< %> and %><
512 + - pretty: add %C(auto) for auto-coloring on the next placeholder
513 + - pretty: two phase conversion for non utf-8 commits
514 + - utf8: keep NULs in reencode_string()
515 + - pretty: get the correct encoding for --pretty:format=%e
516 + - pretty: save commit encoding from logmsg_reencode if the caller needs it
517 + - utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences
518 + - utf8.c: move display_mode_esc_sequence_len() for use by other functions
519 + - pretty: share code between format_decoration and show_decorations
520 + - pretty-formats.txt: wrap long lines
521
477 - Cygwin port has a faster-but-lying lstat(2) emulation whose
478 - incorrectness does not matter in practice except for a few
479 - codepaths, and setting permission bits to directories is a codepath
480 - that needs to use a more correct one.
522 + A mixed bag of a bugfix and two fun enhancements on pretty formats
523 + placeholder.
524
482 - Will merge to 'master'.
525 + Expecting a reroll.
526
527
485 -* jc/directory-attrs-regression-fix (2013-03-28) 6 commits
486 - (merged to 'next' on 2013-03-29 at a3dce2b)
487 - + t: check that a pattern without trailing slash matches a directory
488 - + dir.c::match_pathname(): pay attention to the length of string parameters
489 - + dir.c::match_pathname(): adjust patternlen when shifting pattern
490 - + dir.c::match_basename(): pay attention to the length of string parameters
491 - + attr.c::path_matches(): special case paths that end with a slash
492 - + attr.c::path_matches(): the basename is part of the pathname
528 +* jk/merge-tree-added-identically (2013-03-27) 1 commit
529 + - merge-tree: fix "same file added in subdir"
530
494 - Fix 1.8.1.x regression that stopped matching "dir" (without
495 - trailing slash) to a directory "dir".
531 + We would most likely want to change things the other way around.
532
497 - Will merge to 'master'.
533 + Expecting a reroll.
534
535
500 -* nd/checkout-paths-reduce-match-pathspec-calls (2013-03-27) 1 commit
501 - (merged to 'next' on 2013-03-29 at fbcc004)
502 - + checkout: avoid unnecessary match_pathspec calls
536 +* rr/triangle (2013-04-02) 6 commits
537 + (merged to 'next' on 2013-04-04 at 2d2c8ee)
538 + + remote.c: introduce branch.<name>.pushremote
539 + + remote.c: introduce remote.pushdefault
540 + + remote.c: introduce a way to have different remotes for fetch/push
541 + + t5516 (fetch-push): drop implicit arguments from helper functions
542 + + t5516 (fetch-push): update test description
543 + + remote.c: simplify a bit of code using git_config_string()
544
504 - Consolidate repeated pathspec matches on the same paths, while
505 - fixing a bug in "git checkout dir/" code started from an unmerged
506 - index.
545 + Support "pull from one place, push to another place" workflow
546 + better by introducing remote.pushdefault (overrides the "origin"
547 + thing) and branch.*.pushremote (overrides the branch.*.remote).
548
549 Will merge to 'master'.
550
551
511 -* jc/merge-tag-object (2013-04-01) 3 commits
512 - - t6200: test message for merging of an annotated tag
513 - - t6200: use test_config/test_unconfig
514 - (merged to 'next' on 2013-03-29 at aeec39c)
515 - + merge: a random object may not necssarily be a commit
516 -
517 - "git merge $(git rev-parse v1.8.2)" behaved quite differently from
518 - "git merge v1.8.2" as if v1.8.2 were written as v1.8.2^0 and did
519 - not pay much attention to the annotated tag payload.
552 +* ap/combine-diff-coalesce-lost (2013-03-25) 1 commit
553 + (merged to 'next' on 2013-03-29 at f6a05ca)
554 + + combine-diff: coalesce lost lines optimally
555
521 - This makes the code notice the type of the tag object, in addition
522 - to the dwim_ref() based classification the current code uses
523 - (i.e. the name appears in refs/tags/) to decide when to special
524 - case merging of tags.
556 + Attempts to minimize "diff -c/--cc" output by coalescing the same
557 + lines removed from the parents better, but with an O(n^2)
558 + complexity.
559
526 - Will merge to 'next'.
560 + Will cook in 'next' to see if people with real-world usage scream.
561
562
563 * kb/status-ignored-optim (2013-03-19) 8 commits
@@ -549,19 +583,23 @@ of the repositories listed at
583 very much appreciated.
584
585
552 -* jn/add-2.0-u-A-sans-pathspec (2013-04-01) 5 commits
586 +* jn/add-2.0-u-A-sans-pathspec (2013-04-03) 6 commits
587 - git add: -u/-A now affects the entire working tree
554 - - add -A: only show pathless 'add -A' warning when changes exist outside cwd
555 - - add -u: only show pathless 'add -u' warning when changes exist outside cwd
556 - - add: make warn_pathless_add() a no-op after first call
557 - - add: make pathless 'add [-u|-A]' warning a file-global function
558 -
559 - Replaces jc/add-2.0-u-A-sans-pathspec topic by not warning against
560 - "add -u/-A" that is ran without pathspec when there is no change
561 - outside the current directory.
588 + (merged to 'next' on 2013-04-05 at eae93ef)
589 + + add -A: only show pathless 'add -A' warning when changes exist outside cwd
590 + + add -u: only show pathless 'add -u' warning when changes exist outside cwd
591 + + add: make warn_pathless_add() a no-op after first call
592 + + add: add a blank line at the end of pathless 'add [-u|-A]' warning
593 + + add: make pathless 'add [-u|-A]' warning a file-global function
594 +
595 + "git add -u/-A" without any pathspec traditionally limited its
596 + operation to the current directory when run from a subdirectory,
597 + but in Git 2.0, they will affect the entire working tree. Start
598 + training users to explicitly say "." or ":/" to smooth out the
599 + transition hump with the earlier parts of this series, and flip the
600 + default as the final step.
601
563 - Expecting a reroll and then merge the bottom bits to 'next'.
564 - $gmane/219342
602 + Will cook in 'next' until Git 2.0.
603
604
605 * tr/packed-object-info-wo-recursion (2013-03-27) 3 commits
@@ -628,30 +666,33 @@ of the repositories listed at
666 Will merge to 'next' after all the dust settles.
667
668
631 -* sw/safe-create-leading-dir-race (2013-03-26) 1 commit
632 - (merged to 'next' on 2013-03-26 at 744bb50)
633 - + safe_create_leading_directories: fix race that could give a false negative
634 -
635 - Will merge to 'master'.
636 -
637 -
669 * jc/add-2.0-delete-default (2013-03-08) 3 commits
670 - git add <pathspec>... defaults to "-A"
640 - - git add: start preparing for "git add <pathspec>..." to default to "-A"
641 - - builtin/add.c: simplify boolean variables
671 + (merged to 'next' on 2013-04-05 at 199442e)
672 + + git add: start preparing for "git add <pathspec>..." to default to "-A"
673 + + builtin/add.c: simplify boolean variables
674 +
675 + In Git 2.0, "git add pathspec" will mean "git add -A pathspec". If
676 + you did this in a working tree that tracks dir/lost and dir/another:
677 +
678 + $ rm dir/lost
679 + $ edit dir/another
680 + $ git add dir
681
643 - "git add dir/" updated modified files and added new files, but does
644 - not notice removed files, which may be "Huh?" to some users. They
645 - can of course use "git add -A dir/", but why should they?
682 + The last step will not only notices and records updated
683 + dir/another, but also notices and records the removal of dir/lost
684 + in the index.
685
647 - There seemed to be some interest in this topic, so resurrected and
648 - rebased on top of recent documentation updates to propose a
649 - possible transition plan.
686 + Start training the users for this change to say --no-all when they
687 + want to ignore the removal to smooth the transition hump.
688
689 Will cook in 'next' until Git 2.0.
690
691
654 -* tr/line-log (2013-03-28) 5 commits
692 +* tr/line-log (2013-04-05) 7 commits
693 + (merged to 'next' on 2013-04-05 at 5afb00c)
694 + + log -L: fix overlapping input ranges
695 + + log -L: check range set invariants when we look it up
696 (merged to 'next' on 2013-04-01 at 5be920c)
697 + Speed up log -L... -M
698 + log -L: :pattern:file syntax to find by funcname
@@ -659,25 +700,28 @@ of the repositories listed at
700 + Export rewrite_parents() for 'log -L'
701 + Refactor parse_loc
702
662 - Will merge down to 'master' with warts and all, hoping they get
663 - fixed eventually in-tree.
703 + Will merge down to 'master'
704 + with warts and all, hoping they get fixed eventually in-tree.
705
706
666 -* jc/push-2.0-default-to-simple (2013-03-18) 15 commits
667 - - advice: Remove unused advice_push_non_ff_default
668 - - t5570: do not assume the "matching" push is the default
669 - - t5551: do not assume the "matching" push is the default
670 - - t5550: do not assume the "matching" push is the default
671 - - doc: push.default is no longer "matching"
707 +* jc/push-2.0-default-to-simple (2013-04-03) 13 commits
708 - push: switch default from "matching" to "simple"
673 - - t9401: do not assume the "matching" push is the default
674 - - t9400: do not assume the "matching" push is the default
675 - - t7406: do not assume the "matching" push is the default
676 - - t5531: do not assume the "matching" push is the default
677 - - t5519: do not assume the "matching" push is the default
678 - - t5517: do not assume the "matching" push is the default
679 - - t5516: do not assume the "matching" push is the default
680 - - t5505: do not assume the "matching" push is the default
681 - - t5404: do not assume the "matching" push is the default
709 + (merged to 'next' on 2013-04-05 at 1b42c19)
710 + + t5570: do not assume the "matching" push is the default
711 + + t5551: do not assume the "matching" push is the default
712 + + t5550: do not assume the "matching" push is the default
713 + + t9401: do not assume the "matching" push is the default
714 + + t9400: do not assume the "matching" push is the default
715 + + t7406: do not assume the "matching" push is the default
716 + + t5531: do not assume the "matching" push is the default
717 + + t5519: do not assume the "matching" push is the default
718 + + t5517: do not assume the "matching" push is the default
719 + + t5516: do not assume the "matching" push is the default
720 + + t5505: do not assume the "matching" push is the default
721 + + t5404: do not assume the "matching" push is the default
722 +
723 + Update the test suite that still assumed the push.default will
724 + forever be 'matching'. In Git 2.0, that will no longer be the
725 + case.
726
727 Will cook in 'next' until Git 2.0.