What's cooking (2012/09 #04)
[alt-git.git] / whats-cooking.txt
blobfb25e079beb3f51a8e08af07ba5f2a27afa40d11
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Sep 2012, #04; Tue, 11)
4 X-master-at: 53284de77712b2234c739afa3aa5f024fc89fc83
5 X-next-at: 3d3ef136b706abc4576b503995d88da2409d0bcf
7 What's cooking in git.git (Sep 2012, #04; Tue, 11)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with '-' are
11 only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'.
13 The fifth batch of topics have graduated to 'master'.  Many fixes
14 that are already in 'master' have been merged to v1.7.11.6.  'maint'
15 has acquired more such fixes and will be tagged as v1.7.12.1
16 hopefully in a few days.
18 I'm planning to keep this cycle reasonably short and aim for tagging
19 the result as 1.8.0 at the end of 9th week, on October 21st, after
20 which I'd disappear for a few weeks.  http://tinyurl.com/gitCal is
21 where you can always find my rough tagging schedule at.
23 You can find the changes described here in the integration branches of the
24 repositories listed at
26     http://git-blame.blogspot.com/p/git-public-repositories.html
28 --------------------------------------------------
29 [New Topics]
31 * dg/run-command-child-cleanup (2012-09-11) 1 commit
32  - run-command.c: fix broken list iteration in clear_child_for_cleanup
34 Will merge to 'next' after obtaining a Sign-off.
36 * jc/maint-blame-no-such-path (2012-09-10) 1 commit
37  - blame $path: avoid getting fooled by case insensitive filesystems
39 "git blame MAKEFILE" run in a history that has "Makefile" but not
40 "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
41 confused on a case insensitive filesystem.
43 * sl/autoconf (2012-09-11) 2 commits
44  - build: don't duplicate substitution of make variables
45  - build: improve GIT_CONF_SUBST signature
47 * cn/branch-set-upstream-to (2012-09-11) 2 commits
48  - completion: complete branch name for "branch --set-upstream-to="
49  - completion: add --set-upstream-to and --unset-upstream
51 Will merge to 'next'.
53 --------------------------------------------------
54 [Graduated to "master"]
56 * jc/maint-ident-missing-human-name (2012-08-31) 1 commit
57   (merged to 'next' on 2012-09-07 at 0e99b20)
58  + split_ident_line(): make best effort when parsing author/committer line
60 "git show --format='%ci'" did not give timestamp correctly for
61 commits created without human readable name on "committer" line.
63 * jc/merge-bases (2012-08-31) 9 commits
64   (merged to 'next' on 2012-09-07 at ab0974d)
65  + reduce_heads(): reimplement on top of remove_redundant()
66  + merge-base: "--is-ancestor A B"
67  + get_merge_bases_many(): walk from many tips in parallel
68  + in_merge_bases(): use paint_down_to_common()
69  + merge_bases_many(): split out the logic to paint history
70  + in_merge_bases(): omit unnecessary redundant common ancestor reduction
71  + http-push: use in_merge_bases() for fast-forward check
72  + receive-pack: use in_merge_bases() for fast-forward check
73  + in_merge_bases(): support only one "other" commit
75 Optimise the "merge-base" computation a bit, and also update its
76 users that do not need the full merge-base information to call a
77 cheaper subset.
79 * jk/argv-array (2012-09-02) 4 commits
80   (merged to 'next' on 2012-09-07 at 98dbd14)
81  + submodule: use argv_array instead of hand-building arrays
82  + fetch: use argv_array instead of hand-building arrays
83  + argv-array: fix bogus cast when freeing array
84  + argv-array: add pop function
85  (this branch is used by dj/fetch-all-tags.)
87 Use argv-array API in "git fetch" implementation.
89 * nd/i18n-index-pack (2012-08-31) 1 commit
90   (merged to 'next' on 2012-09-07 at bbcece1)
91  + i18n: mark more index-pack strings for translation
93 * rj/test-regex (2012-09-02) 1 commit
94   (merged to 'next' on 2012-09-07 at e7e3527)
95  + test-regex: Add a test to check for a bug in the regex routines
97 Git ships with a fall-back regexp implementation for platforms with
98 buggy regexp library; give people a tool to see if they should be
99 using it on their platform.
101 --------------------------------------------------
102 [Stalled]
104 * ph/credential-refactor (2012-09-02) 5 commits
105  - wincred: port to generic credential helper
106  - Merge branch 'ef/win32-cred-helper' into ph/credential-refactor
107  - osxkeychain: port to generic credential helper implementation
108  - gnome-keyring: port to generic helper implementation
109  - contrib: add generic credential helper
111 Attempts to refactor to share code among OSX keychain, Gnome keyring
112 and Win32 credential helpers.
114 * jc/maint-name-rev (2012-09-04) 7 commits
115  - describe --contains: use "name-rev --weight"
116  - name-rev --weight: tests and documentation
117  - name-rev --weight: cache the computed weight in notes
118  - name-rev --weight: trivial optimization
119  - name-rev: --weight option
120  - name_rev: clarify the logic to assign a new tip-name to a commit
121  - name-rev: lose unnecessary typedef
123 "git name-rev" names the given revision based on a ref that can be
124 reached in the smallest number of steps from the rev, but that is
125 not useful when the caller wants to know which tag is the oldest one
126 that contains the rev.  This teaches a new mode to the command that
127 uses the oldest ref among those which contain the rev.
129 I am not sure if this is worth it; for one thing, even with the help
130 from notes-cache, it seems to make the "describe --contains" even
131 slower. Also the command will be unusably slow for a user who does
132 not have a write access (hence unable to create or update the
133 notes-cache).
135 Needs another round to at least find a better name for the option,
136 and possibly a cheaper but still better than the current "close to
137 the tip" heuristics.
139 * ms/contrib-thunderbird-updates (2012-08-31) 2 commits
140  - [SQUASH] minimum fixup
141  - Thunderbird: fix appp.sh format problems
143 Update helper to send out format-patch output using Thunderbird.
144 Seems to have design regression for silent users.
146 * as/check-ignore (2012-09-02) 10 commits
147  . fixup: decl-after-stmt etc.
148  . Add git-check-ignore
149  . Provide free_directory() for reclaiming dir_struct memory
150  . Extract some useful pathspec handling code from builtin/add.c into a library
151  . For each exclude pattern, store information about where it came from
152  . dir.c: refactor excluded() and path_excluded()
153  . dir.c: refactor excluded_from_list()
154  . dir.c: rename cryptic 'which' variable to more consistent name
155  . Improve documentation and comments regarding directory traversal API
156  . Update directory listing API doc to match code
158 Will be rerolled.
160 * jx/test-real-path (2012-08-27) 1 commit
161  - test: set the realpath of CWD as TRASH_DIRECTORY
163 Running tests with the "trash" directory elsewhere with the "--root"
164 option did not work well if the directory was specified by a symbolic
165 link pointing at it.
167 Seems broken as it makes $(pwd) and TRASH_DIRECTORY inconsistent.
168 Needs rerolling.
170 * jc/maint-push-refs-all (2012-08-27) 2 commits
171  - get_fetch_map(): tighten checks on dest refs
172  - [BROKEN] fetch/push: allow refs/*:refs/*
174 Allows pushing and fetching everything including refs/stash.
175 This is broken (see the log message there).
177 * er/doc-fast-import-done (2012-08-22) 1 commit
178  - fast-import: document the --done option
180 Parked in 'pu' in case ESR responds with "Sorry, forgot to sign-off".
182 * jc/add-delete-default (2012-08-13) 1 commit
183  - git add: notice removal of tracked paths by default
185 "git add dir/" updated modified files and added new files, but does
186 not notice removed files, which may be "Huh?" to some users.  They
187 can of course use "git add -A dir/", but why should they?
189 Resurrected from graveyard, as I thought it was a worthwhile thing
190 to do in the longer term; waiting for comments.
192 * tx/relative-in-the-future (2012-08-16) 2 commits
193  - date: show relative dates in the future
194  - date: refactor the relative date logic from presentation
196 Not my itch; rewritten an earlier submission by Tom Xue into
197 somewhat more maintainable form, though it breaks existing i18n.
199 Anybody interested in fixing it up?  Otherwise may discard.
201 * tg/index-v5 (2012-08-17) 13 commits
202  . p0002-index.sh: add perf test for the index formats
203  . update-index.c: rewrite index when index-version is given
204  . Write resolve-undo data for index-v5
205  . Write index-v5 cache-tree data
206  . Write index-v5
207  . Read cache-tree in index-v5
208  . Read resolve-undo data
209  . Read index-v5
210  . Make in-memory format aware of stat_crc
211  . Add documentation of the index-v5 file format
212  . t2104: Don't fail for index versions other than [23]
213  . read-cache.c: Re-read index if index file changed
214  . Move index v2 specific functions to their own file
216 A GSoC project.  Was waiting for comments from mentors and
217 stakeholders, but nothing seems to be happening, other than breakage
218 fixes on Cygwin.  May discard.
220 * mz/rebase-range (2012-07-18) 7 commits
221  . rebase (without -p): correctly calculate patches to rebase
222  . rebase -p: don't request --left-right only to ignore left side
223  . rebase -p: use --cherry-mark for todo file
224  . git-rebase--interactive.sh: look up subject in add_pick_line
225  . git-rebase--interactive: group all $preserve_merges code
226  . git-rebase--interactive.sh: extract function for adding "pick" line
227  . git-rebase--am.sh: avoid special-casing --keep-empty
229 Expecting a reroll.
231 Performance concerns from Windows folks.  Also the series lacks
232 proper sign-offs.
234 * mb/remote-default-nn-origin (2012-07-11) 6 commits
235  - Teach get_default_remote to respect remote.default.
236  - Test that plain "git fetch" uses remote.default when on a detached HEAD.
237  - Teach clone to set remote.default.
238  - Teach "git remote" about remote.default.
239  - Teach remote.c about the remote.default configuration setting.
240  - Rename remote.c's default_remote_name static variables.
242 When the user does not specify what remote to interact with, we
243 often attempt to use 'origin'.  This can now be customized via a
244 configuration variable.
246 Expecting a reroll.
248 "The first remote becomes the default" bit is better done as a
249 separate step.
251 * jc/split-blob (2012-04-03) 6 commits
252  - chunked-object: streaming checkout
253  - chunked-object: fallback checkout codepaths
254  - bulk-checkin: support chunked-object encoding
255  - bulk-checkin: allow the same data to be multiply hashed
256  - new representation types in the packstream
257  - packfile: use varint functions
259 Not ready.
261 I finished the streaming checkout codepath, but as explained in
262 127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),
263 these are still early steps of a long and painful journey. At least
264 pack-objects and fsck need to learn the new encoding for the series
265 to be usable locally, and then index-pack/unpack-objects needs to
266 learn it to be used remotely.
268 Given that I heard a lot of noise that people want large files, and
269 that I was asked by somebody at GitTogether'11 privately for an
270 advice on how to pay developers (not me) to help adding necessary
271 support, I am somewhat dissapointed that the original patch series
272 that was sent long time ago still remains here without much comments
273 and updates from the developer community. I even made the interface
274 to the logic that decides where to split chunks easily replaceable,
275 and I deliberately made the logic in the original patch extremely
276 stupid to entice others, especially the "bup" fanbois, to come up
277 with a better logic, thinking that giving people an easy target to
278 shoot for, they may be encouraged to help out. The plan is not
279 working :-<.
281 --------------------------------------------------
282 [Cooking]
284 * jc/ll-merge-binary-ours (2012-09-08) 2 commits
285  - attr: "binary" attribute should choose built-in "binary" merge driver
286  - merge: teach -Xours/-Xtheirs to binary ll-merge driver
288 "git merge -Xtheirs" did not help content-level merge of binary
289 files; it should just take their version.  Also "*.jpg binary" in
290 the attributes did not imply they should use the binary ll-merge
291 driver.
293 Will merge to 'next'.
295 * jc/mailinfo-RE (2012-09-09) 1 commit
296  - mailinfo: strip "RE: " prefix
298 We strip the prefix from "Re: subject" and also from a less common
299 "re: subject", but left even less common "RE: subject" intact.
301 Will merge to 'next'.
303 * js/compat-mkdir (2012-09-08) 1 commit
304   (merged to 'next' on 2012-09-11 at 376b3d5)
305  + Document MKDIR_WO_TRAILING_SLASH in Makefile
307 Finishing touches to recently added wrapper for mkdir() that do not
308 want to see trailing slashes.
310 Will merge to 'master' as part of the sixth batch.
312 * mh/string-list (2012-09-10) 6 commits
313  - api-string-list.txt: initialize the string_list the easy way
314  - string_list: add a function string_list_longest_prefix()
315  - string_list: add a new function, string_list_remove_duplicates()
316  - string_list: add a new function, filter_string_list()
317  - string_list: add two new functions for splitting strings
318  - string_list: add function string_list_append_nodup()
319  (this branch is used by mh/fetch-filter-refs.)
321 Looked sensible.
322 Will merge to 'next'.
324 * pw/p4-submit-conflicts (2012-09-10) 12 commits
325  - git-p4: add submit --conflict option and config varaiable
326  - git p4: add submit --prepare-p4-only option
327  - git p4: add submit --dry-run option
328  - git p4: accept -v for --verbose
329  - git p4: revert deleted files after submit cancel
330  - git p4: rearrange submit template construction
331  - git p4: test clean-up after failed submit, fix added files
332  - git p4: standardize submit cancel due to unchanged template
333  - git p4: move conflict prompt into run, add [q]uit input
334  - git p4: remove submit failure options [a]pply and [w]rite
335  - git p4: gracefully fail if some commits could not be applied
336  - git p4 test: remove bash-ism of combined export/assignment
338 Rerolled.
339 Waiting for comments.
341 * kd/cvsimport-avoid-invalid-tag (2012-09-06) 1 commit
342   (merged to 'next' on 2012-09-11 at 6a8f834)
343  + cvsimport: strip all inappropriate tag strings
345 "cvsimport" tried to create a tag taken from CVS without
346 sufficiently sanitizing it, causing the import to fail when an
347 invalid character in the tagname made underlying "git tag" to fail.
349 Will merge to 'master' as part of the sixth batch.
351 * mh/abspath (2012-09-10) 9 commits
352   (merged to 'next' on 2012-09-11 at 5e29b53)
353  + t0060: split absolute path test in two to exercise some of it on Windows
354  + t0060: verify that real_path() removes extra slashes
355  + real_path(): properly handle nonexistent top-level paths
356  + t0060: verify that real_path() works correctly with absolute paths
357  + real_path(): reject the empty string
358  + t0060: verify that real_path() fails if passed the empty string
359  + absolute_path(): reject the empty string
360  + t0060: verify that absolute_path() fails if passed the empty string
361  + t0060: move tests of real_path() from t0000 to here
363 Will merge to 'master' as part of the sixth batch.
365 * nd/i18n-status (2012-09-06) 1 commit
366   (merged to 'next' on 2012-09-11 at 7cfa224)
367  + status: remove i18n legos
369 Will merge to 'master' as part of the sixth batch.
371 * nd/log-n-doc (2012-09-06) 1 commit
372   (merged to 'next' on 2012-09-11 at 7fba349)
373  + doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt
375 Will merge to 'master' as part of the sixth batch.
377 * nd/maint-remote-remove (2012-09-06) 1 commit
378   (merged to 'next' on 2012-09-11 at b1564c3)
379  + remote: prefer subcommand name 'remove' to 'rm'
381 Will merge to 'master' as part of the sixth batch.
383 * sb/send-email-reconfirm-fix (2012-09-06) 1 commit
384   (merged to 'next' on 2012-09-11 at f868e60)
385  + send-email: initial_to and initial_reply_to are both optional
387 Will merge to 'master' as part of the sixth batch.
389 * sn/ls-remote-get-url-doc (2012-09-07) 1 commit
390   (merged to 'next' on 2012-09-11 at 9d09780)
391  + ls-remote: document the '--get-url' option
393 Will merge to 'master' as part of the sixth batch.
395 * dj/fetch-all-tags (2012-09-07) 1 commit
396   (merged to 'next' on 2012-09-11 at 083a029)
397  + fetch --all: pass --tags/--no-tags through to each remote
399 "git fetch --all", when passed "--no-tags", did not honor the
400 "--no-tags" option while fetching from individual remotes (the same
401 issue existed with "--tags", but combination "--all --tags" makes
402 much less sense than "--all --no-tags").
404 Will merge to 'master' as part of the sixth batch.
406 * rj/tap-fix (2012-09-02) 6 commits
407   (merged to 'next' on 2012-09-11 at 4104358)
408  + test-lib.sh: Suppress the "passed all ..." message if no tests run
409  + test-lib.sh: Add check for invalid use of 'skip_all' facility
410  + test-lib.sh: Fix some shell coding style violations
411  + t4016-*.sh: Skip all tests rather than each test
412  + t3902-*.sh: Skip all tests rather than each test
413  + t3300-*.sh: Fix a TAP parse error
415 Will merge to 'master' as part of the sixth batch.
417 * jc/maint-checkout-fileglob-doc (2012-09-10) 3 commits
418   (merged to 'next' on 2012-09-11 at 929948d)
419  + gitcli: contrast wildcard given to shell and to git
420  + gitcli: formatting fix
421  + Document file-glob for "git checkout -- '*.c'"
423 Updated with help from Peff.
425 Will merge to 'master' as part of the sixth batch.
427 * jc/xprm-generation (2012-09-04) 1 commit
428  - test-generation: compute generation numbers and clock skews
430 * rj/path-cleanup (2012-09-04) 5 commits
431   (merged to 'next' on 2012-09-11 at 9e8da84)
432  + Call mkpathdup() rather than xstrdup(mkpath(...))
433  + Call git_pathdup() rather than xstrdup(git_path("..."))
434  + path.c: Use vsnpath() in the implementation of git_path()
435  + path.c: Don't discard the return value of vsnpath()
436  + path.c: Remove the 'git_' prefix from a file scope function
438 Will merge to 'master' as part of the sixth batch.
440 * rs/archive-zip-utf8 (2012-09-04) 1 commit
441   (merged to 'next' on 2012-09-11 at 3b1f071)
442  + archive-zip: support UTF-8 paths
444 Need help from people on platforms on which Zip matters to see
445 compatiblity with other people's zip implementations.
447 Will merge to 'master' as part of the sixth batch.
449 * nd/checkout-option-parsing-fix (2012-09-11) 3 commits
450   (merged to 'next' on 2012-09-11 at 3d3ef13)
451  + checkout: reorder option handling
452  + checkout: move more parameters to struct checkout_opts
453  + checkout: pass "struct checkout_opts *" as const pointer
455 The option parsing of "git checkout" had error checking, dwim and
456 defaulting missing options, all mixed in the code, and issuing an
457 appropriate error message with useful context was getting harder.
458 Reorganize the code and allow giving a proper diagnosis when the
459 user says "git checkout -b -t foo bar" (e.g. "-t" is not a good name
460 for a branch).
462 Will merge to 'master' as part of the sixth batch.
464 * js/compat-itimer (2012-09-08) 1 commit
465   (merged to 'next' on 2012-09-11 at 1f6c3a9)
466  + Add a no-op setitimer() wrapper
468 Pieces to support compilation on __TANDEM.
470 Will merge to 'master' as part of the sixth batch.
472 * mh/fetch-filter-refs (2012-09-10) 14 commits
473  - fetch-pack: eliminate spurious error messages
474  - cmd_fetch_pack(): simplify computation of return value
475  - fetch-pack: report missing refs even if no existing refs were received
476  - cmd_fetch_pack(): return early if finish_connect() fails
477  - filter_refs(): simplify logic
478  - filter_refs(): build refs list as we go
479  - filter_refs(): delete matched refs from sought list
480  - fetch_pack(): update sought->nr to reflect number of unique entries
481  - filter_refs(): do not check the same sought_pos twice
482  - Change fetch_pack() and friends to take string_list arguments
483  - fetch_pack(): reindent function decl and defn
484  - Rename static function fetch_pack() to http_fetch_pack()
485  - t5500: add tests of fetch-pack --all --depth=N $URL $REF
486  - t5500: add tests of error output for missing refs
487  (this branch uses mh/string-list.)
489 Code simplification and clarification.
491 Will merge to 'next'.
493 * jl/submodule-rm (2012-08-27) 1 commit
494  - Teach rm to remove submodules unless they contain a git directory
496 "git rm submodule" cannot blindly remove a submodule directory as
497 its working tree may have local changes, and worse yet, it may even
498 have its repository embedded in it.  Teach it some special cases
499 where it is safe to remove a submodule, specifically, when there is
500 no local changes in the submodule working tree, and its repository
501 is not embedded in its working tree but is elsewhere and uses the
502 gitfile mechanism to point at it.
504 Replacement sent but was still iffy around conflicted merge cases.
506 * fa/remote-svn (2012-08-28) 16 commits
507  - Add a test script for remote-svn
508  - remote-svn: add marks-file regeneration
509  - Add a svnrdump-simulator replaying a dump file for testing
510  - remote-svn: add incremental import
511  - remote-svn: Activate import/export-marks for fast-import
512  - Create a note for every imported commit containing svn metadata
513  - vcs-svn: add fast_export_note to create notes
514  - Allow reading svn dumps from files via file:// urls
515  - remote-svn, vcs-svn: Enable fetching to private refs
516  - When debug==1, start fast-import with "--stats" instead of "--quiet"
517  - Add documentation for the 'bidi-import' capability of remote-helpers
518  - Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability
519  - Add argv_array_detach and argv_array_free_detached
520  - Add svndump_init_fd to allow reading dumps from arbitrary FDs
521  - Add git-remote-testsvn to Makefile and .gitignore
522  - Implement a remote helper for svn in C
523  (this branch is used by fa/vcs-svn.)
525 A GSoC project.  Looked promising.
526 Waiting for comments from mentors and stakeholders.
528 * fa/vcs-svn (2012-08-28) 4 commits
529  - vcs-svn: remove repo_tree
530  - vcs-svn/svndump: rewrite handle_node(), begin|end_revision()
531  - vcs-svn/svndump: restructure node_ctx, rev_ctx handling
532  - svndump: move struct definitions to .h
533  (this branch uses fa/remote-svn.)
535 A GSoC project.  Looked promising.
536 Waiting for comments from mentors and stakeholders.
538 * jk/no-more-pre-exec-callback (2012-06-05) 1 commit
539  - pager: drop "wait for output to run less" hack
541 (Originally merged to 'next' on 2012-07-23)
543 Will defer until the end of the 2012.
544 while waiting for older "less" to go extinct.