What's cooking (2012/08 #08)
[git.git] / whats-cooking.txt
blob2442d2b2f0de9068b2262c1937415b077937ecd5
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Aug 2012, #08; Mon, 27)
4 X-master-at: 31e0100e89c3f7c05bd7fdf54e084b2039d398ec
5 X-next-at: 32a1b722418b8b32eafe3b98d890fa239ec128f8
7 What's cooking in git.git (Aug 2012, #08; Mon, 27)
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 New topics started to flow in at the pace a bit faster than
14 reviewers give comments on them.  I've merged half of the second
15 batch of topics to 'master', and will do the remainder later this
16 week. They are a bit more substantial changes than the first batch
17 we merged earlier.
19 I'm planning to keep this cycle reasonably short and aim for tagging
20 the result as 1.8.0 at the end of 9th week, on October 21st, after
21 which I'd disappear for a few weeks.  http://tinyurl.com/gitCal is
22 where you can always find my rough tagging schedule at.
24 You can find the changes described here in the integration branches of the
25 repositories listed at
27     http://git-blame.blogspot.com/p/git-public-repositories.html
29 --------------------------------------------------
30 [Graduated to "master"]
32 * ab/diff-write-incomplete-line (2012-08-05) 1 commit
33   (merged to 'next' on 2012-08-20 at e28b804)
34  + Fix '\ No newline...' annotation in rewrite diffs
36 (Originally merged to 'next' on 2012-08-07)
38 The output from "git diff -B" for a file that ends with an
39 incomplete line did not put "\ No newline..." on a line of its own.
41 * bc/receive-pack-stdout-protection (2012-08-06) 2 commits
42   (merged to 'next' on 2012-08-20 at b1b0d18)
43  + receive-pack: do not leak output from auto-gc to standard output
44  + t/t5400: demonstrate breakage caused by informational message from prune
46 (Originally merged to 'next' on 2012-08-07)
48 When "git push" triggered the automatic gc on the receiving end, a
49 message from "git prune" that said it was removing cruft leaked to
50 the standard output, breaking the communication protocol.
52 * da/difftool-updates (2012-08-21) 13 commits
53   (merged to 'next' on 2012-08-21 at 332afe4)
54  + difftool: silence warning
55   (merged to 'next' on 2012-08-20 at 2fecd90)
56  + Add Code Compare v2.80.4 as a merge / diff tool for Windows
57  + mergetool,difftool: Document --tool-help consistently
58  + difftool: Disable --symlinks on cygwin
59  + difftool: Handle compare() returning -1
60  + difftool: Wrap long lines for readability
61  + difftool: Check all return codes from compare()
62  + difftool: Handle finding mergetools/ in a path with spaces
63  + difftool: Use symlinks when diffing against the worktree
64  + difftool: Call the temp directory "git-difftool"
65  + difftool: Move option values into a hash
66  + difftool: Eliminate global variables
67  + difftool: Simplify print_tool_help()
69 (Originally merged to 'next' on 2012-08-10)
71 "git difftool --dir-diff" learned to use symbolic links to prepare
72 temporary copy of the working tree when available.
74 * jc/maint-t7406-rev-parse-max-count-huh (2012-07-30) 1 commit
75   (merged to 'next' on 2012-08-20 at 3e2598a)
76  + t7406: fix misleading "rev-parse --max-count=1 HEAD"
78 (Originally merged to 'next' on 2012-07-30)
80 Test clean-up, with no behaviour change.
82 * jk/docs-docbook-monospace-display (2012-08-07) 1 commit
83   (merged to 'next' on 2012-08-20 at 0ed30dc)
84  + docs: monospace listings in docbook output
86 (Originally merged to 'next' on 2012-08-18)
88 The documentation in the TeXinfo format was using indented output
89 for materials meant to be examples that are better typeset in
90 monospace.
92 * jk/maint-diff-nul40-as-sentinel (2012-07-29) 1 commit
93  + diff: do not use null sha1 as a sentinel value
94  (this branch is used by jk/maint-null-in-trees.)
96 "git diff" had a confusion between taking data from a path in the
97 working tree and taking data from an object that happens to have
98 name 0{40} recorded in a tree.
100 * jk/maint-null-in-trees (2012-07-29) 2 commits
101   (merged to 'next' on 2012-08-20 at 5bc2c49)
102  + fsck: detect null sha1 in tree entries
103  + do not write null sha1s to on-disk index
104  (this branch uses jk/maint-diff-nul40-as-sentinel.)
106 (Originally merged to 'next' on 2012-07-30)
108 We do not want a link to 0{40} object stored anywhere in our objects.
110 * js/grep-patterntype-config (2012-08-03) 1 commit
111   (merged to 'next' on 2012-08-20 at 39a0431)
112  + grep: add a grep.patternType configuration setting
114 (Originally merged to 'next' on 2012-08-09)
116 "grep" learned to use a non-standard pattern type by default if a
117 configuration variable tells it to.
119 * mm/push-default-switch-warning (2012-06-24) 1 commit
120   (merged to 'next' on 2012-08-20 at 553e6c0)
121  + push: start warning upcoming default change for push.default
123 (Originally merged to 'next' on 2012-06-26)
125 In the next major release, we will switch "git push [$there]" that
126 does not say what to push from the traditional "matching" to the
127 updated "simple" semantics, that pushes the current branch to the
128 branch with the same name only when the current branch is set to
129 integrate with that remote branch (all other cases will error out).
131 --------------------------------------------------
132 [New Topics]
134 * cn/branch-set-upstream-to (2012-08-23) 3 commits
135  - branch: deprecate --set-upstream and show help if we detect possible mistaken use
136  - branch: add --unset-upstream option
137  - branch: introduce --set-upstream-to
139 "git branch --set-upstream origin/master" is a common mistake to
140 create a local branch 'origin/master' and set it to integrate with
141 the current branch.  With a plan to deprecate this option, introduce
142 "git branch (-u|--set-upstream-to) origin/master" that sets the
143 current branch to integrate with 'origin/master' remote tracking
144 branch.
146 Wainting for a reroll
147 that tightens its error checking.
149 * jc/dotdot-is-parent-directory (2012-08-23) 1 commit
150  - specifying ranges: we did not mean to make ".." an empty set
152 "git log .." errored out saying it is both rev range and a path when
153 there is no disambiguating "--" is on the command line.  Update the
154 command line parser to interpret ".." as a path in such a case.
156 Will merge to 'next'.
158 * jc/maint-mergetool-style-fix (2012-08-23) 1 commit
159  - mergetool: style fixes
161 As the title says.
163 Will merge to 'next'.
165 * js/compat-itimer (2012-08-24) 1 commit
166  - Support for setitimer() on platforms lacking it
168 Pieces to support compilation on __TANDEM.
170 * js/compat-mkdir (2012-08-24) 1 commit
171  - compat: some mkdir() do not like a slash at the end
173 Pieces to support compilation on __TANDEM.
175 Will merge to 'next'.
177 * js/no-curl-easy-strerror-on-old-curl (2012-08-23) 1 commit
178  - http.c: don't use curl_easy_strerror prior to curl-7.12.0
180 Pieces to support compilation on __TANDEM.
182 Will merge to 'next'.
184 * js/use-sc-open-max (2012-08-24) 1 commit
185  - sha1_file.c: introduce get_max_fd_limit() helper
187 Pieces to support compilation on __TANDEM.
189 Will merge to 'next'.
191 * ph/credential-refactor (2012-08-27) 6 commits
192  - wincred: port to generic credential helper (UNTESTED)
193  - Merge branch 'ef/win32-cred-helper' into ph/credential-refactor
194  - osxkeychain: port to generic credential helper implementation
195  - gnome-keyring: port to generic helper implementation
196  - contrib: add generic credential helper
197  - contrib: add credential helper for GnomeKeyring
198  (this branch uses ef/win32-cred-helper.)
200 Adds a new credential helper to support Gnome keyring and attempts
201 to refactor to share code among OSX keychain, Gnome keyring and
202 Win32 credential helpers.
204 Waiting for test results with the tip one
205 to decide whether the series should be rerolled or reduced to only
206 the first one.
208 * jc/apply-binary-p0 (2012-08-24) 1 commit
209  - apply: compute patch->def_name correctly under -p0
211 "git apply -p0" did not parse pathnames on "diff --git" line
212 correctly.  This caused patches that had pathnames in no other
213 places to be mistakenly rejected (most notably, binary patch that
214 does not rename nor change mode).  Textual patches, renames or
215 mode changes have preimage and postimage pathnames in different
216 places in a form that can be parsed unambiguously and did not suffer
217 from this problem.
219 Will merge to 'next'.
221 * jc/maint-doc-checkout-b-always-takes-branch-name (2012-08-26) 1 commit
222  - doc: "git checkout -b/-B/--orphan" always takes a branch name
224 The synopsis said "checkout [-B branch]" to make it clear the branch
225 name is a parameter to the option, but the heading for the option
226 description was "-B::", not "-B branch::", making the documentation
227 misleading.  There may be room in documentation pages of other
228 commands for similar improvements (hint, hint).
230 Will merge to 'next'.
232 * jk/maint-http-half-auth-push (2012-08-27) 8 commits
233  - http: prompt for credentials on failed POST
234  - http: factor out http error code handling
235  - t: test http access to "half-auth" repositories
236  - t: test basic smart-http authentication
237  - t/lib-httpd: recognize */smart/* repos as smart-http
238  - t/lib-httpd: only route auth/dumb to dumb repos
239  - t5550: factor out http auth setup
240  - t5550: put auth-required repo in auth/dumb
242 Pushing to smart HTTP server with recent Git fails without having
243 the username in the URL to force authentication, if the server is
244 configured to allow GET anonymously, while requiring authentication
245 for POST.
247 Will merge to 'next'.
249 * jx/test-real-path (2012-08-27) 1 commit
250  - test: set the realpath of CWD as TRASH_DIRECTORY
252 Running tests with the "trash" directory elsewhere with the "--root"
253 option did not work well if the directory was specified by a symbolic
254 link pointing at it.
256 Waiting for a Tested-by.
258 * mh/fetch-filter-refs (2012-08-26) 17 commits
259  - filter_refs(): simplify logic
260  - fetch_pack(): free matching heads
261  - cmd_fetch_pack(): simplify computation of return value
262  - fetch-pack: report missing refs even if no existing refs were received
263  - cmd_fetch_pack: return early if finish_connect() returns an error
264  - filter_refs(): compress unmatched refs in heads array
265  - filter_refs(): do not leave gaps in return_refs
266  - filter_refs(): simplify by removing optimization
267  - Pass nr_heads to filter_refs() by reference
268  - Pass nr_heads to everything_local() by reference
269  - Pass nr_heads to do_pack_ref() by reference
270  - Let fetch_pack() inform caller about number of unique heads
271  - filter_refs(): do not check the same head_pos twice
272  - fetch-pack.c: name local variables more consistently
273  - fetch_pack(): reindent function decl and defn
274  - Rename static function fetch_pack() to http_fetch_pack()
275  - t5500: add tests of error output for missing refs
277 Code simplification and clarification.
278 Waiting for a follow-up patch based on Peff's idea.
280 * nd/branch-v-alignment (2012-08-27) 1 commit
281  - branch -v: align even when branch names are in UTF-8
283 Output from "git branch -v" contains "(no branch)" that could be
284 localized, but the code to align it along with the names of branches
285 were counting in bytes, not in display columns.
287 Will merge to 'next'.
289 * jc/merge-bases (2012-08-27) 5 commits
290  - get_merge_bases_many(): walk from many tips in parallel
291  - in_merge_bases(): omit unnecessary redundant common ancestor reduction
292  - http-push: use in_merge_bases() for fast-forward check
293  - receive-pack: use in_merge_bases() for fast-forward check
294  - in_merge_bases(): support only one "other" commit
296 Optimises the "merge-base" computation a bit, and also updates its
297 users that do not need the full merge-base information to call a
298 cheaper subset.  The most important one is the second from the tip
299 done by Thomas.
301 Needs sign-off.
303 --------------------------------------------------
304 [Stalled]
306 * er/doc-fast-import-done (2012-08-22) 1 commit
307  - fast-import: document the --done option
309 Parked in 'pu' in case ESR responds with "Sorry, forgot to sign-off".
311 * jc/add-delete-default (2012-08-13) 1 commit
312  - git add: notice removal of tracked paths by default
314 "git add dir/" updated modified files and added new files, but does
315 not notice removed files, which may be "Huh?" to some users.  They
316 can of course use "git add -A dir/", but why should they?
318 Resurrected from graveyard, as I thought it was a worthwhile thing
319 to do in the longer term; waiting for comments.
321 * tx/relative-in-the-future (2012-08-16) 2 commits
322  - date: show relative dates in the future
323  - date: refactor the relative date logic from presentation
325 Not my itch; rewritten an earlier submission by Tom Xue into
326 somewhat more maintainable form, though it breaks existing i18n.
328 Anybody interested in fixing it up?  Otherwise may discard.
330 * pw/p4-submit-conflicts (2012-08-16) 12 commits
331  - git p4: add submit --prepare-p4-only option
332  - git p4: add submit --dry-run option
333  - git p4: accept -v for --verbose
334  - git p4: revert deleted files after submit cancel
335  - git p4: rearrange submit template construction
336  - git p4: test clean-up after failed submit, fix added files
337  - git p4: standardize submit cancel due to unchanged template
338  - git p4: move conflict prompt into run, use [c]ontinue and [q]uit
339  - git p4: remove submit failure options [a]pply and [w]rite
340  - git p4: gracefully fail if some commits could not be applied
341  - git p4 test: use p4d -L option to suppress log messages
342  - git p4 test: remove bash-ism of combined export/assignment
344 Waiting for the dust to settle.
346 * mz/rebase-range (2012-07-18) 7 commits
347  . rebase (without -p): correctly calculate patches to rebase
348  . rebase -p: don't request --left-right only to ignore left side
349  . rebase -p: use --cherry-mark for todo file
350  . git-rebase--interactive.sh: look up subject in add_pick_line
351  . git-rebase--interactive: group all $preserve_merges code
352  . git-rebase--interactive.sh: extract function for adding "pick" line
353  . git-rebase--am.sh: avoid special-casing --keep-empty
355 Expecting a reroll.
357 Performance concerns from Windows folks.  Also the series lacks
358 proper sign-offs.
360 * mb/remote-default-nn-origin (2012-07-11) 6 commits
361  - Teach get_default_remote to respect remote.default.
362  - Test that plain "git fetch" uses remote.default when on a detached HEAD.
363  - Teach clone to set remote.default.
364  - Teach "git remote" about remote.default.
365  - Teach remote.c about the remote.default configuration setting.
366  - Rename remote.c's default_remote_name static variables.
368 When the user does not specify what remote to interact with, we
369 often attempt to use 'origin'.  This can now be customized via a
370 configuration variable.
372 Expecting a reroll.
374 "The first remote becomes the default" bit is better done as a
375 separate step.
377 * jc/split-blob (2012-04-03) 6 commits
378  - chunked-object: streaming checkout
379  - chunked-object: fallback checkout codepaths
380  - bulk-checkin: support chunked-object encoding
381  - bulk-checkin: allow the same data to be multiply hashed
382  - new representation types in the packstream
383  - packfile: use varint functions
385 Not ready.
387 I finished the streaming checkout codepath, but as explained in
388 127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),
389 these are still early steps of a long and painful journey. At least
390 pack-objects and fsck need to learn the new encoding for the series
391 to be usable locally, and then index-pack/unpack-objects needs to
392 learn it to be used remotely.
394 Given that I heard a lot of noise that people want large files, and
395 that I was asked by somebody at GitTogether'11 privately for an
396 advice on how to pay developers (not me) to help adding necessary
397 support, I am somewhat dissapointed that the original patch series
398 that was sent long time ago still remains here without much comments
399 and updates from the developer community. I even made the interface
400 to the logic that decides where to split chunks easily replaceable,
401 and I deliberately made the logic in the original patch extremely
402 stupid to entice others, especially the "bup" fanbois, to come up
403 with a better logic, thinking that giving people an easy target to
404 shoot for, they may be encouraged to help out. The plan is not
405 working :-<.
407 --------------------------------------------------
408 [Cooking]
410 * jl/submodule-rm (2012-08-27) 1 commit
411  - Teach rm to remove submodules unless they contain a git directory
413 "git rm submodule" cannot blindly remove a submodule directory as
414 its working tree may have local changes, and worse yet, it may even
415 have its repository embedded in it.  Teach it some special cases
416 where it is safe to remove a submodule, specifically, when there is
417 no local changes in the submodule working tree, and its repository
418 is not embedded in its working tree but is elsewhere and uses the
419 gitfile mechanism to point at it.
421 * nd/am-i18n-fix (2012-08-22) 1 commit
422   (merged to 'next' on 2012-08-24 at f8e9a63)
423  + am: quote string for translation before passing to eval_gettextln
425 "git am" wasn't marked up for i18n properly.
427 Will merge to 'master' as part of the fourth batch.
429 * lt/commit-tree-guess-utf-8 (2012-08-21) 1 commit
430   (merged to 'next' on 2012-08-24 at d16ac69)
431  + commit/commit-tree: correct latin1 to utf-8
433 Teaches "git commit" and "git commit-tree" the "we are told to use
434 utf-8 in log message, but this does not look like utf-8---attempt to
435 pass it through convert-from-latin1-to-utf8 and see if it makes
436 sense" heuristics "git mailinfo" already uses.
438 Will merge to 'master' as part of the fourth batch.
440 * kk/maint-for-each-ref-multi-sort (2012-08-21) 2 commits
441   (merged to 'next' on 2012-08-24 at 28a5db4)
442  + for-each-ref: Fix sort with multiple keys
443  + t6300: test sort with multiple keys
445 "git for-each-ref" did not currectly support more than one --sort
446 option.
448 Will merge to 'master' as part of the fourth batch.
450 * fa/remote-svn (2012-08-22) 16 commits
451  - Add a test script for remote-svn
452  - remote-svn: add marks-file regeneration
453  - Add a svnrdump-simulator replaying a dump file for testing
454  - remote-svn: add incremental import
455  - remote-svn: Activate import/export-marks for fast-import
456  - Create a note for every imported commit containing svn metadata
457  - vcs-svn: add fast_export_note to create notes
458  - Allow reading svn dumps from files via file:// urls
459  - remote-svn, vcs-svn: Enable fetching to private refs
460  - When debug==1, start fast-import with "--stats" instead of "--quiet"
461  - Add documentation for the 'bidi-import' capability of remote-helpers
462  - Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability
463  - Add argv_array_detach and argv_array_free_detached
464  - Add svndump_init_fd to allow reading dumps from arbitrary FDs
465  - Add git-remote-testsvn to Makefile
466  - Implement a remote helper for svn in C
467  (this branch is used by fa/vcs-svn.)
469 * fa/vcs-svn (2012-08-26) 8 commits
470  - t9020-*.sh: Skip all tests when python not available
471  - t9020-*.sh: Fix urls passed to git-remote in test setup
472  - remote-testsvn.c: avoid use of the getline() function
473  - vcs-svn: Fix 'fa/remote-svn' and 'fa/vcs-svn' in pu
474  - vcs-svn: remove repo_tree
475  - vcs-svn/svndump: rewrite handle_node(), begin|end_revision()
476  - vcs-svn/svndump: restructure node_ctx, rev_ctx handling
477  - svndump: move struct definitions to .h
478  (this branch uses fa/remote-svn.)
480 The tip ones should be squashed in.
481 Waiting for a reroll.
483 * nd/i18n-parseopt-help (2012-08-22) 66 commits
484   (merged to 'next' on 2012-08-24 at 2a04ce0)
485  + Use imperative form in help usage to describe an action
486  + Reduce translations by using same terminologies
487  + i18n: write-tree: mark parseopt strings for translation
488  + i18n: verify-tag: mark parseopt strings for translation
489  + i18n: verify-pack: mark parseopt strings for translation
490  + i18n: update-server-info: mark parseopt strings for translation
491  + i18n: update-ref: mark parseopt strings for translation
492  + i18n: update-index: mark parseopt strings for translation
493  + i18n: tag: mark parseopt strings for translation
494  + i18n: symbolic-ref: mark parseopt strings for translation
495  + i18n: show-ref: mark parseopt strings for translation
496  + i18n: show-branch: mark parseopt strings for translation
497  + i18n: shortlog: mark parseopt strings for translation
498  + i18n: rm: mark parseopt strings for translation
499  + i18n: revert, cherry-pick: mark parseopt strings for translation
500  + i18n: rev-parse: mark parseopt strings for translation
501  + i18n: reset: mark parseopt strings for translation
502  + i18n: rerere: mark parseopt strings for translation
503  + i18n: status: mark parseopt strings for translation
504  + i18n: replace: mark parseopt strings for translation
505  + i18n: remote: mark parseopt strings for translation
506  + i18n: read-tree: mark parseopt strings for translation
507  + i18n: push: mark parseopt strings for translation
508  + i18n: prune: mark parseopt strings for translation
509  + i18n: prune-packed: mark parseopt strings for translation
510  + i18n: pack-refs: mark parseopt strings for translation
511  + i18n: pack-objects: mark parseopt strings for translation
512  + i18n: notes: mark parseopt strings for translation
513  + i18n: name-rev: mark parseopt strings for translation
514  + i18n: mv: mark parseopt strings for translation
515  + i18n: mktree: mark parseopt strings for translation
516  + i18n: merge: mark parseopt strings for translation
517  + i18n: merge-file: mark parseopt strings for translation
518  + i18n: merge-base: mark parseopt strings for translation
519  + i18n: ls-tree: mark parseopt strings for translation
520  + i18n: ls-files: mark parseopt strings for translation
521  + i18n: log: mark parseopt strings for translation
522  + i18n: init-db: mark parseopt strings for translation
523  + i18n: help: mark parseopt strings for translation
524  + i18n: hash-object: mark parseopt strings for translation
525  + i18n: grep: mark parseopt strings for translation
526  + i18n: gc: mark parseopt strings for translation
527  + i18n: fsck: mark parseopt strings for translation
528  + i18n: format-patch: mark parseopt strings for translation
529  + i18n: for-each-ref: mark parseopt strings for translation
530  + i18n: fmt-merge-msg: mark parseopt strings for translation
531  + i18n: fetch: mark parseopt strings for translation
532  + i18n: fast-export: mark parseopt strings for translation
533  + i18n: describe: mark parseopt strings for translation
534  + i18n: config: mark parseopt strings for translation
535  + i18n: count-objects: mark parseopt strings for translation
536  + i18n: commit: mark parseopt strings for translation
537  + i18n: column: mark parseopt strings for translation
538  + i18n: clone: mark parseopt strings for translation
539  + i18n: clean: mark parseopt strings for translation
540  + i18n: cherry: mark parseopt strings for translation
541  + i18n: checkout: mark parseopt strings for translation
542  + i18n: checkout-index: mark parseopt strings for translation
543  + i18n: check-attr: mark parseopt strings for translation
544  + i18n: cat-file: mark parseopt strings for translation
545  + i18n: branch: mark parseopt strings for translation
546  + i18n: blame: mark parseopt strings for translation
547  + i18n: add: mark parseopt strings for translation
548  + i18n: bisect--helper: mark parseopt strings for translation
549  + i18n: archive: mark parseopt strings for translation
550  + i18n: mark "style" in OPT_COLUMN() for translation
552 A lot of i18n mark-up for the help text from "git <cmd> -h".
554 Will merge to 'master' as part of the fourth batch.
556 * tr/maint-parseopt-avoid-empty (2012-08-20) 1 commit
557   (merged to 'next' on 2012-08-24 at cffa9a0)
558  + gettext: do not translate empty string
560 A workaround to avoid doing _(""), which translates to unwanted
561 magic string in the .po files.
563 Will merge to 'master' as part of the fourth batch.
565 * jk/config-warn-on-inaccessible-paths (2012-08-21) 4 commits
566   (merged to 'next' on 2012-08-24 at 7470bd6)
567  + warn_on_inaccessible(): a helper to warn on inaccessible paths
568  + attr: warn on inaccessible attribute files
569  + gitignore: report access errors of exclude files
570  + config: warn on inaccessible files
572 When looking for $HOME/.gitconfig etc., it is OK if we cannot read
573 them because they do not exist, but unable to read existing ones
574 need to be diagnosed.
576 Will merge to 'master' as part of the fourth batch.
578 * nd/i18n-poison-test-updates (2012-08-27) 7 commits
579  - Fix tests under GETTEXT_POISON on parseopt
580  - Fix tests under GETTEXT_POISON on git-remote
581  - Fix tests under GETTEXT_POISON on pack-object
582  - Fix tests under GETTEXT_POISON on git-apply
583  - Fix tests under GETTEXT_POISON on diffstat
584  - Fix tests under GETTEXT_POISON on git-stash
585  - Fix tests under GETTEXT_POISON on relative dates
587 Updates to tests that can be broken with gettext-poison builds.
588 Queued with trivial fix-ups.
590 Will merge to 'next'.
592 * jc/daemon-access-hook (2012-08-15) 1 commit
593   (merged to 'next' on 2012-08-20 at c8f5b2e)
594  + daemon: --access-hook option
596 Allow an external command to tell git-daemon to decline service
597 based on the client address, repository path, etc.
599 Will merge to 'master' as part of the third batch.
601 * jc/send-email-reconfirm (2012-08-14) 1 commit
602   (merged to 'next' on 2012-08-20 at dffdef6)
603  + send-email: validate & reconfirm interactive responses
605 Validate interactive input to "git send-email" to avoid common
606 mistakes such as saying "y<RETURN>" to sender mail address whose
607 prompt is given with a correctly guessed default.
609 Will merge to 'master' as part of the third batch.
611 * ef/win32-cred-helper (2012-08-16) 1 commit
612   (merged to 'next' on 2012-08-20 at bd5c651)
613  + contrib: add win32 credential-helper
614  (this branch is used by ph/credential-refactor.)
616 Credential helper for Win32 to allow access to the keychain of
617 the logged-in user.
619 Will merge to 'master' as part of the second batch.
621 * rr/precompose-utf8-cleanup (2012-08-20) 2 commits
622   (merged to 'next' on 2012-08-20 at a883c2a)
623  + precompose-utf8: do not call checks for non-ascii "utf8"
624  + cleanup precompose_utf8
626 A style and code cleanup.
628 Will merge to 'master' as part of the second batch.
630 * mh/maint-config-doc-proxy-command (2012-08-18) 2 commits
631   (merged to 'next' on 2012-08-20 at a484625)
632  + git-config doc: unconfuse an example
633  + git-config.txt: fix example
635 A minor documentation update.
637 Will merge to 'master' as part of the second batch.
639 * ph/stash-rerere (2012-08-17) 2 commits
640   (merged to 'next' on 2012-08-20 at ae37111)
641  + stash: invoke rerere in case of conflict
642  + test: git-stash conflict sets up rerere
644 "git stash" internally used "git merge-recursive" backend, which did
645 not trigger "rerere" upon conflicts unlike other mergy operations.
647 Will merge to 'master' as part of the third batch.
649 * hv/submodule-path-unmatch (2012-08-14) 1 commit
650   (merged to 'next' on 2012-08-20 at cbe6483)
651  + Let submodule command exit with error status if path does not exist
653 As the title says.
655 Will merge to 'master' as part of the second batch.
657 * bc/prune-info (2012-08-07) 1 commit
658   (merged to 'next' on 2012-08-20 at 1bc9e66)
659  + prune.c: only print informational message in show_only or verbose mode
661 Teach "git prune" without "-v" to be silent about leftover temporary files.
663 Will merge to 'master' as part of the second batch.
665 * jc/maint-protect-sh-from-ifs (2012-08-08) 1 commit
666   (merged to 'next' on 2012-08-20 at 8b00562)
667  + sh-setup: protect from exported IFS
669 When the user exports a non-default IFS without HT, scripts that
670 rely on being able to parse "ls-files -s | while read a b c..."
671 start to fail.  Protect them from such a misconfiguration.
673 Will merge to 'master' as part of the second batch.
675 * mg/rebase-i-onto-reflog-in-full (2012-08-10) 1 commit
676   (merged to 'next' on 2012-08-20 at f671bd2)
677  + rebase -i: use full onto sha1 in reflog
679 The reflog entries left by "git rebase" and "git rebase -i" were
680 inconsistent.
682 Will merge to 'master' as part of the second batch.
684 * mz/empty-rebase-test (2012-08-09) 1 commit
685   (merged to 'next' on 2012-08-20 at 53e2419)
686  + add tests for 'git rebase --keep-empty'
688 Will merge to 'master' as part of the second batch.
690 * jc/capabilities (2012-08-13) 3 commits
691   (merged to 'next' on 2012-08-20 at 1976e47)
692  + fetch-pack: mention server version with verbose output
693  + parse_feature_request: make it easier to see feature values
694  + fetch-pack: do not ask for unadvertised capabilities
695  (this branch uses jk/version-string.)
697 Some capabilities were asked by fetch-pack even when upload-pack did
698 not advertise that they are available.  Fix fetch-pack not to do so.
700 Will merge to 'master' as part of the second batch.
702 * pw/p4-use-client-spec-branch-detection (2012-08-20) 5 commits
703   (merged to 'next' on 2012-08-24 at 08abc61)
704  + git p4: make branch detection work with --use-client-spec
705  + git p4: do wildcard decoding in stripRepoPath
706  + git p4: set self.branchPrefixes in initialization
707  + git p4 test: add broken --use-client-spec --detect-branches tests
708  + git p4 test: move client_view() function to library
710 Fixes "git p4" when "--use-client-spec" and "--detect-branches" are
711 used together (the command used to misdetect branches).
713 Will merge to 'master' as part of the fourth batch.
715 * jc/maint-push-refs-all (2012-08-07) 2 commits
716  - get_fetch_map(): tighten checks on dest refs
717  - fetch/push: allow refs/*:refs/*
719 Allows pushing and fetching refs/stash.
721 Will merge to 'next'.
723 * jk/version-string (2012-08-10) 3 commits
724   (merged to 'next' on 2012-08-20 at 6d207bb)
725  + do not send client agent unless server does first
726  + send-pack: fix capability-sending logic
727  + include agent identifier in capability string
728  (this branch is used by jc/capabilities.)
730 (Originally merged to 'next' on 2012-08-10)
732 Leftover bits from the "git version" code restructuring, that give
733 us an ability to expose the Git version over the wire in the
734 protocol exchange. But we do so carefully only to the other end that
735 understands it.
737 Will merge to 'master' as part of the third batch.
739 * tg/index-v5 (2012-08-17) 13 commits
740  - p0002-index.sh: add perf test for the index formats
741  - update-index.c: rewrite index when index-version is given
742  - Write resolve-undo data for index-v5
743  - Write index-v5 cache-tree data
744  - Write index-v5
745  - Read cache-tree in index-v5
746  - Read resolve-undo data
747  - Read index-v5
748  - Make in-memory format aware of stat_crc
749  - Add documentation of the index-v5 file format
750  - t2104: Don't fail for index versions other than [23]
751  - read-cache.c: Re-read index if index file changed
752  - Move index v2 specific functions to their own file
754 A GSoC project, queued here primarily to give people an easier
755 access to the state of the last posted version.
757 * jc/maint-sane-execvp-notdir (2012-07-31) 1 commit
758   (merged to 'next' on 2012-08-20 at 0d76cf2)
759  + sane_execvp(): ignore non-directory on $PATH
761 (Originally merged to 'next' on 2012-08-09)
763 "git foo" errored out with "Not a directory" when the user had a non
764 directory on $PATH, and worse yet it masked an alias "foo" to run.
766 Will merge to 'master' as part of the third batch.
768 * cw/cherry-pick-allow-empty-message (2012-08-06) 1 commit
769   (merged to 'next' on 2012-08-20 at 0dc0590)
770  + cherry-pick: add --allow-empty-message option
772 (Originally merged to 'next' on 2012-08-09)
774 "git cherry-pick" by default stops when it sees a commit without any
775 log message.  The "--allow-empty-message" option can be used to
776 silently proceed.
778 Will merge to 'master' as part of the third batch.
780 * mz/cherry-code-cleanup (2012-07-29) 3 commits
781   (merged to 'next' on 2012-08-20 at bfb0457)
782  + cherry: remove redundant check for merge commit
783  + cherry: don't set ignored rev_info options
784  + remove unnecessary parameter from get_patch_ids()
786 Minor code clean-up on the cherry-pick codepath.
788 Will merge to 'master' as part of the second batch.
790 * jc/maint-config-exit-status (2012-07-30) 1 commit
791   (merged to 'next' on 2012-08-20 at e18ddd8)
792  + config: "git config baa" should exit with status 1
794 (Originally merged to 'next' on 2012-07-30)
796 The exit status code from "git config" was way overspecified while
797 being incorrect.  Update the implementation to give the documented
798 status for a case that was documented, and introduce a new code for
799 "all other errors".
801 Will merge to 'master' as part of the third batch.
803 * sz/submodule-force-update (2012-08-24) 1 commit
804   (merged to 'next' on 2012-08-24 at f82b466)
805  + Make 'git submodule update --force' always check out submodules.
807 "git submodule update --force" used to leave the working tree of the
808 submodule intact when there were local changes.  It is more intiutive
809 to make "--force" a sign to run "checkout -f" to overwrite them.
811 Will merge to 'master' as part of the third batch.
813 * jk/no-more-pre-exec-callback (2012-06-05) 1 commit
814  - pager: drop "wait for output to run less" hack
816 (Originally merged to 'next' on 2012-07-23)
818 Will defer until the end of the 2012.
819 while waiting for older "less" to go extinct.
821 --------------------------------------------------
822 [Discarded]
824 * jc/sanitize-nkd-lazy-iconv-open (2012-07-31) 1 commit
825  . macos: lazily initialize iconv
827 Teach the code that works around NKD/NKC gotcha on MacOS to call
828 iconv_open() only when it is necessary, in the hope of avoiding
829 set-up overhead.  It turns out that there was no noticeable
830 improvements.