What's cooking (2012/05 #01)
[git.git] / whats-cooking.txt
blob5b5e157963a698eb04a203705e21ea105e860fa5
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (May 2012, #01; Wed, 2)
3 X-master-at: 34875f4a53b9e495622553a671776f66dc37eb2b
4 X-next-at: 54d16fbcc9122b1e712cc718d11dda4a9c125ec6
6 What's cooking in git.git (May 2012, #01; Wed, 2)
7 --------------------------------------------------
9 Here are the topics that have been cooking.  Commits prefixed with '-' are
10 only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'.
12 The eighth batch of topics in this cycle is now in 'master', the topics in
13 'next' all look ready, and we do not have many topics left in 'pu'.  The
14 cycle is going well ;-)
16 Except for folks with libsvn-perl 1.6.x where x is greater than 9; we know
17 how the fix should look like, and we will have it in tomorrow's integration
18 round.
20 You can find the changes described here in the integration branches of the
21 repositories listed at
23     http://git-blame.blogspot.com/p/git-public-repositories.html
25 --------------------------------------------------
26 [New Topics]
28 * jk/maint-tformat-with-z (2012-05-01) 2 commits
29   (merged to 'next' on 2012-05-02 at a0f8af7)
30  + log-tree: the previous one is still not quite right
31  + log-tree: use custom line terminator in line termination mode
33 "log -z --pretty=tformat:..." does not terminate each record with NUL
34 and this is a beginning of an attempt to fix it.  It still is not right
35 but the patch does not make externally observable behaviour worse.
37 Will merge to 'master'.
39 * nd/stream-to-archive (2012-04-30) 9 commits
40  - archive-zip: streaming for deflated files
41  - archive-zip: streaming for stored files
42  - archive-zip: factor out helpers for writing sizes and CRC
43  - archive-zip: remove uncompressed_size
44  - streaming: void pointer instead of char pointer
45  - archive-tar: stream large blobs to tar file
46  - archive: delegate blob reading to backend
47  - archive-tar: unindent write_tar_entry by one level
48  - archive-tar: turn write_tar_entry into blob-writing only
50 Stream large blobs directly out to archive files without slurping
51 everything in memory first.  The streaming version of "tar" may need
52 further fixing.
54 Expecting another reroll; the second version already had review exchanges
55 so I didn't pick it up.
57 * jk/maint-push-progress (2012-05-01) 3 commits
58   (merged to 'next' on 2012-05-01 at 2286130)
59  + t5541: test more combinations of --progress
60  + teach send-pack about --[no-]progress
61  + send-pack: show progress when isatty(2)
63 "git push" over smart-http lost progress output and this resurrects it.
65 Will merge to 'master'.
67 * zj/diff-empty-chmod (2012-05-02) 5 commits
68   (merged to 'next' on 2012-05-02 at fb8cb11)
69  + t4006: Windows do not have /dev/zero
70   (merged to 'next' on 2012-05-01 at 5a92787)
71  + diff --stat: do not run diff on indentical files
72  + diff --stat: report mode-only changes for binary files like text files
73  + tests: check --[short]stat output after chmod
74  + test: modernize style of t4006
76 "git diff --stat" used to fully count a binary file with modified
77 execution bits whose contents is unmodified, which was not right.
79 Will merge to 'master'.
81 --------------------------------------------------
82 [Graduated to "master"]
84 * ab/i18n (2012-04-30) 3 commits
85   (merged to 'next' on 2012-04-30 at 5e7620d)
86  + git-commit: remove lego in i18n messages
87  + git-commit: remove lego in i18n messages
88  + git-branch: remove lego in i18n messages
90 Fixes some constructs that build messages meant for i18n by concatenating
91 pieces of strings.
93 * jc/index-v4 (2012-04-27) 12 commits
94   (merged to 'next' on 2012-04-29 at ed71f9c)
95  + index-v4: document the entry format
96  + unpack-trees: preserve the index file version of original
97   (merged to 'next' on 2012-04-19 at 5e4b029)
98  + update-index: upgrade/downgrade on-disk index version
99  + read-cache.c: write prefix-compressed names in the index
100  + read-cache.c: read prefix-compressed names in index on-disk version v4
101  + read-cache.c: move code to copy incore to ondisk cache to a helper function
102  + read-cache.c: move code to copy ondisk to incore cache to a helper function
103  + read-cache.c: report the header version we do not understand
104  + read-cache.c: make create_from_disk() report number of bytes it consumed
105  + read-cache.c: allow unaligned mapping of the index file
106  + cache.h: hide on-disk index details
107  + varint: make it available outside the context of pack
108  (this branch is tangled with jc/split-blob.)
110 Trivially shrinks the on-disk size of the index file to save both I/O and
111 checksum overhead.  It even comes with a technical doc updates.
113 The topic should give a solid base to build on further updates, with the
114 code refactoring in its earlier parts, and the backward compatibility
115 mechanism in its later parts.
117 * jc/rerere-train (2012-04-30) 1 commit
118   (merged to 'next' on 2012-04-30 at 0cc4308)
119  + contrib/rerere-train: use installed git-sh-setup
121 A script written long time ago proved to be useful this week for me ;-)
122 with a minor tweak.
124 * jk/doc-asciidoc-inline-literal (2012-04-26) 1 commit
125   (merged to 'next' on 2012-04-30 at a52b4e6)
126  + docs: stop using asciidoc no-inline-literal
128 Our documentation was written for an ancient version of AsciiDoc,
129 making the source not very readable.
131 * jk/maint-config-bogus-section (2012-04-25) 1 commit
132   (merged to 'next' on 2012-04-26 at 9919198)
133  + config: reject bogus section names for --rename-section
135 "git config --rename-section" to rename an existing section into a
136 bogus one did not check the new name.
138 * jk/maint-gitweb-test-use-sane-perl (2012-05-01) 2 commits
139   (merged to 'next' on 2012-05-01 at 88b3f80)
140  + Consistently use perl from /usr/bin/ for scripts
141  + t/gitweb-lib: use $PERL_PATH to run gitweb
143 When using a Perl script on a system where "perl" found on user's $PATH
144 could be ancient or otherwise broken, we allow builders to specify the
145 path to a good copy of Perl with $PERL_PATH.  The gitweb test forgot to
146 use that Perl when running its test.
148 * ld/git-p4-tags-and-labels (2012-04-25) 7 commits
149   (merged to 'next' on 2012-04-25 at 8b959e5)
150  + git p4: fix unit tests
151   (merged to 'next' on 2012-04-24 at bf55d92)
152  + git p4: move verbose to base class
153  + git p4: Ignore P4EDITOR if it is empty
154  + git p4: Squash P4EDITOR in test harness
155  + git p4: fix-up "import/export of labels to/from p4"
156   (merged to 'next' on 2012-04-15 at 1b1e9a1)
157  + git p4: import/export of labels to/from p4
158  + git p4: Fixing script editor checks
160 Support p4 labels by importing/exporting them as git tags.
162 * lp/diffstat-with-graph (2012-04-27) 8 commits
163   (merged to 'next' on 2012-04-30 at b301202)
164  + t4052: work around shells unable to set COLUMNS to 1
165  + Merge branch 'zj/mksh-columns-breakage' into lp/diffstat-with-graph
166   (merged to 'next' on 2012-04-23 at 8de0747)
167  + Prevent graph_width of stat width from falling below min
168  + t4052: Test diff-stat output with minimum columns
169  + t4052: Adjust --graph --stat output for prefixes
170  + Adjust stat width calculations to take --graph output into account
171  + Add output_prefix_length to diff_options
172  + t4052: test --stat output with --graph
173  (this branch uses zj/mksh-columns-breakage; is tangled with nd/columns.)
175 "log --graph" was not very friendly with "--stat" option and its output
176 had line breaks at wrong places.
178 * mm/simple-push (2012-04-24) 7 commits
179   (merged to 'next' on 2012-04-30 at 1a571d2)
180  + push.default doc: explain simple after upstream
181  + push: document the future default change for push.default (matching -> simple)
182  + t5570: use explicit push refspec
183  + push: introduce new push.default mode "simple"
184  + t5528-push-default.sh: add helper functions
185  + Undocument deprecated alias 'push.default=tracking'
186  + Documentation: explain push.default option a bit more
187  (this branch is used by mm/push-default-switch-warning.)
189 New users tend to work on one branch at a time and push the result
190 out. The current and upstream modes of push is a more suitable default
191 mode than matching mode for these people, but neither is surprise-free
192 depending on how the project is set up. Introduce a "simple" mode that
193 is a subset of "upstream" but only works when the branch is named the same
194 between the remote and local repositories.
196 The plan is to make it the new default when push.default is not
197 configured.
199 * nd/i18n (2012-04-25) 11 commits
200   (merged to 'next' on 2012-04-30 at d8bbd7a)
201  + help: replace underlining "help -a" headers using hyphens with a blank line
202   (merged to 'next' on 2012-04-24 at 07965a4)
203  + i18n: bundle: mark strings for translation
204  + i18n: index-pack: mark strings for translation
205  + i18n: apply: update say_patch_name to give translators complete sentence
206  + i18n: apply: mark strings for translation
207  + i18n: remote: mark strings for translation
208  + i18n: make warn_dangling_symref() automatically append \n
209  + i18n: help: mark strings for translation
210  + i18n: mark relative dates for translation
211  + strbuf: convenience format functions with \n automatically appended
212  + Makefile: feed all header files to xgettext
214 More message strings marked for i18n.
216 * nh/empty-rebase (2012-04-24) 4 commits
217   (merged to 'next' on 2012-04-24 at 91d2dfd)
218  + git-rebase: add keep_empty flag
219  + git-cherry-pick: Add test to validate new options
220  + git-cherry-pick: Add keep-redundant-commits option
221  + git-cherry-pick: add allow-empty option
223 "git rebase" learned to optionally keep commits that do not introduce
224 any change in the original history.
226 * pw/message-cleanup (2012-04-30) 2 commits
227   (merged to 'next' on 2012-04-30 at 703c0c4)
228  + remove blank filename in error message
229  + remove superfluous newlines in error messages
231 Many error/warning messages had extra trailing newlines that are
232 unnecessary.
234 * pw/p4-various (2012-04-30) 4 commits
235   (merged to 'next' on 2012-04-30 at b20428c)
236  + git p4: submit files with wildcards
237  + git p4: fix writable file after rename or copy
238  + git p4: test submit
239  + git p4: bring back files in deleted client directory
241 Miscellaneous updates to "git p4".
243 * tr/xdiff-fast-hash (2012-05-01) 2 commits
244   (merged to 'next' on 2012-05-01 at 5155b98)
245  + xdiff: choose XDL_FAST_HASH code on sizeof(long) instead of __WORDSIZE
246   (merged to 'next' on 2012-04-24 at ed693cf)
247  + xdiff: load full words in the inner loop of xdl_hash_record
249 Use word-at-a-time comparison to find end of line or NUL (end of buffer),
250 borrowed from the linux-kernel discussion.
252 * zj/diff-stat-smaller-num-columns (2012-04-30) 1 commit
253   (merged to 'next' on 2012-05-01 at eb68d3b)
254  + diff --stat: use less columns for change counts
256 Spend only minimum number of columns necessary to show the number of lines
257 in the output from "diff --stat", instead of always allocating 4 columns
258 even when showing changes that are much smaller than 1000 lines.
260 * zj/mksh-columns-breakage (2012-04-27) 1 commit
261   (merged to 'next' on 2012-04-30 at cce82a8)
262  + test-lib: skip test with COLUMNS=1 under mksh
263  (this branch is used by lp/diffstat-with-graph and nd/columns.)
265 A broken shell may not let us set an environment value to an arbitrary
266 value, interfering with some of the tests. Introduce a test prerequisite
267 so that we can skip some tests on such a platform.
269 --------------------------------------------------
270 [Stalled]
272 * nl/http-proxy-more (2012-04-26) 8 commits
273  - http: try an uppercase version of $proto_proxy
274  - http: fix proxy password passing
275  - http: fix proxy authentication
276  - http: rename HTTP_REAUTH to HTTP_AUTH_RETRY
277  - http: Avoid limit of retrying request only twice
278  - http: handle proxy authentication failure (error 407)
279  - http: handle proxy proactive authentication
280  - http: try http_proxy env var when http.proxy config option is not set
282 Still needs to address review comments from Peff, some of which were
283 partly addressed with later "fixup" patches queued here.
285 It probably is a good idea to re-roll the entire series.
287 * jc/run-hook-env-1 (2012-03-11) 1 commit
288  - run_hook(): enhance the interface to pass arbitrary environment
290 Not urgent.
292 Updates run_hook() API to be much less specific to "commit".  It would
293 only be useful if people start doing more interesting things with hooks.
295 * jc/split-blob (2012-04-03) 6 commits
296  - chunked-object: streaming checkout
297  - chunked-object: fallback checkout codepaths
298  - bulk-checkin: support chunked-object encoding
299  - bulk-checkin: allow the same data to be multiply hashed
300  - new representation types in the packstream
301  - packfile: use varint functions
303 Not ready.
305 I finished the streaming checkout codepath, but as explained in
306 127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),
307 these are still early steps of a long and painful journey. At least
308 pack-objects and fsck need to learn the new encoding for the series
309 to be usable locally, and then index-pack/unpack-objects needs to
310 learn it to be used remotely.
312 Given that I heard a lot of noise that people want large files, and
313 that I was asked by somebody at GitTogether'11 privately for an
314 advice on how to pay developers (not me) to help adding necessary
315 support, I am somewhat dissapointed that the original patch series
316 that was sent almost two months ago still remains here without much
317 comments and updates from the developer community. I even made the
318 interface to the logic that decides where to split chunks easily
319 replaceable, and I deliberately made the logic in the original patch
320 extremely stupid to entice others, especially the "bup" fanboys, to
321 come up with a better logic, thinking that giving people an easy
322 target to shoot for, they may be encouraged to help out. The plan is
323 not working :-(.
325 --------------------------------------------------
326 [Cooking]
328 * mh/ref-api-lazy-loose (2012-04-26) 18 commits
329  - refs: read loose references lazily
330  - read_loose_refs(): eliminate ref_cache argument
331  - struct ref_dir: store a reference to the enclosing ref_cache
332  - search_for_subdir(): return (ref_dir *) instead of (ref_entry *)
333  - get_ref_dir(): add function for getting a ref_dir from a ref_entry
334  - read_loose_refs(): rename function from get_ref_dir()
335  - refs: wrap top-level ref_dirs in ref_entries
336  - find_containing_dir(): use strbuf in implementation of this function
337  - bisect: copy filename string obtained from git_path()
338  - do_for_each_reflog(): reuse strbuf across recursive function calls
339  - do_for_each_reflog(): use a strbuf to hold logfile name
340  - do_for_each_reflog(): return early on error
341  - get_ref_dir(): take the containing directory as argument
342  - refs.c: extract function search_for_subdir()
343  - get_ref_dir(): require that the dirname argument ends in '/'
344  - get_ref_dir(): rename "base" parameter to "dirname"
345  - get_ref_dir(): use a strbuf to hold refname
346  - get_ref_dir(): return early if directory cannot be read
348 Refs API is updated to lazily read sub-hierarchies of refs/ namespace,
349 so that we do not have to grab everything from the filesystem when we
350 are only interested in listing branches, for example.
352 This looked mostly sane. Did I miss "needs more work" review comments?
354 * nd/columns (2012-04-27) 10 commits
355   (merged to 'next' on 2012-04-30 at 93bb157)
356  + tag: add --column
357  + column: support piping stdout to external git-column process
358  + status: add --column
359  + branch: add --column
360  + help: reuse print_columns() for help -a
361  + column: add dense layout support
362  + t9002: work around shells that are unable to set COLUMNS to 1
363  + column: add columnar layout
364  + Stop starting pager recursively
365  + Add column layout skeleton and git-column
367 A couple of commands learn --column option to produce columnar output.
369 Will merge to 'master'.
371 * nd/threaded-index-pack (2012-04-19) 4 commits
372  - index-pack: disable threading if NO_PREAD is defined
373  - index-pack: support multithreaded delta resolving
374  - index-pack: split second pass obj handling into own function
375  - compat/win32/pthread.h: Add an pthread_key_delete() implementation
377 * th/difftool-diffall (2012-04-23) 8 commits
378   (merged to 'next' on 2012-05-02 at fdc9f60)
379  + difftool: print list of valid tools with '--tool-help'
380  + difftool: teach difftool to handle directory diffs
381  + difftool: eliminate setup_environment function
382  + difftool: stop appending '.exe' to git
383  + difftool: remove explicit change of PATH
384  + difftool: exit(0) when usage is printed
385  + difftool: add '--no-gui' option
386  + difftool: parse options using Getopt::Long
388 Rolls the two-directory-diff logic from diffall script (in contrib/) into
389 "git difftool" framework. 
391 Will merge to 'master'.
393 * mm/push-default-switch-warning (2012-04-26) 2 commits
394  - t5541: warning message is given even with --quiet
395  - push: start warning upcoming default change for push.default
397 Will squash the two, but this has to wait for a few release cycles.
399 --------------------------------------------------
400 [Discarded]
402 * cb/daemon-test-race-fix (2012-04-27) 2 commits
403   (merged to 'next' on 2012-04-27 at 84bbcf8)
404  + Revert "git-daemon wrapper to wait until daemon is ready"
405   (merged to 'next' on 2012-04-24 at d5c30be)
406  + git-daemon wrapper to wait until daemon is ready
408 Fix race condition between starting and waiting for git-daemon in the
409 test.
411 Reverted from 'next' to replace it with js/daemon-test-race-fix.