What's cooking (2015/06 #04)
[alt-git.git] / whats-cooking.txt
blob3ec113f90559422e799d1745d1af73cd3118c788
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jun 2015, #04; Tue, 16)
4 X-master-at: 16da57c7c6c1fe92b32645202dd19657a89dd67d
5 X-next-at: d7bed1d571a3164716149e236b028e1e8ae2619b
7 What's cooking in git.git (Jun 2015, #04; Tue, 16)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 Hopefully the pre-release freeze can start late next week, and the
15 next cycle would reopen mid next month.  In the meantime, let's
16 shift the focus on making sure that what has already been merged to
17 'master' are good (i.e. regression hunting and fixes).
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22     http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [New Topics]
27 * jk/pkt-log-pack (2015-06-16) 3 commits
28  - pkt-line: support tracing verbatim pack contents
29  - pkt-line: tighten sideband PACK check when tracing
30  - pkt-line: simplify starts_with checks in packet tracing
32  Enhance packet tracing machinery to allow capturing an incoming
33  pack data to a file for debugging.
36 * jk/stash-require-clean-index (2015-06-15) 1 commit
37   (merged to 'next' on 2015-06-16 at beb4883)
38  + Revert "stash: require a clean index to apply"
40  A hotfix for the topic already in 'master'.
42  Will merge to 'master'.
45 * kb/i18n-doc (2015-06-15) 1 commit
46  - Documentation/i18n.txt: clarify character encoding support
48  Comments?
51 * kb/use-nsec-doc (2015-06-15) 1 commit
52  - Makefile / racy-git.txt: clarify USE_NSEC prerequisites
54  Comments?
57 * kn/for-each-ref (2015-06-15) 11 commits
58  - ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname
59  - for-each-ref: introduce filter_refs()
60  - ref-filter: move code from 'for-each-ref'
61  - ref-filter: add 'ref-filter.h'
62  - for-each-ref: rename variables called sort to sorting
63  - for-each-ref: rename some functions and make them public
64  - for-each-ref: introduce 'ref_array_clear()'
65  - for-each-ref: introduce new structures for better organisation
66  - for-each-ref: rename 'refinfo' to 'ref_array_item'
67  - for-each-ref: clean up code
68  - for-each-ref: extract helper functions out of grab_single_ref()
70  GSoC project to rebuild ref listing by branch and tag based on the
71  for-each-ref machinery.
73  Will merge to 'next'.
76 * mh/init-delete-refs-api (2015-06-15) 13 commits
77  - SQUASH avoid die(variable)
78  - refs: move the remaining ref module declarations to refs.h
79  - initial_ref_transaction_commit(): check for ref D/F conflicts
80  - initial_ref_transaction_commit(): check for duplicate refs
81  - refs: remove some functions from the module's public interface
82  - initial_ref_transaction_commit(): function for initial ref creation
83  - repack_without_refs(): make function private
84  - prune_remote(): use delete_refs()
85  - delete_refs(): improve error message
86  - delete_refs(): new function for the refs API
87  - delete_ref(): handle special case more explicitly
88  - remove_branches(): remove temporary
89  - delete_ref(): move declaration to refs.h
91  Clean up refs API and make "git clone" less intimate with the
92  implementation detail.
94  Needs reroll.
97 * mh/replace-refs (2015-06-12) 1 commit
98  - Allow to control where the replace refs are looked for
100  Add an environment variable to tell Git to look into refs hierarchy
101  other than refs/replace/ for the object replacement data.
104 * nd/multiple-work-trees (2015-06-12) 1 commit
105  - checkout: don't check worktrees when not necessary
107  "git checkout [<tree-ish>] <paths>" spent unnecessary cycles
108  checking if the current branch was checked out elsewhere, when we
109  know we are not switching the branches ourselves.
111  Will merge to 'next'.
114 * pa/auto-gc-mac-osx (2015-06-12) 1 commit
115   (merged to 'next' on 2015-06-16 at 151ec95)
116  + hooks/pre-auto-gc: adjust power checking for newer OS X
118  Recent Mac OS X updates breaks the logic to detect that the machine
119  is on the AC power in the sample pre-auto-gc script.
121  Will merge to 'master'.
124 * pt/t0302-needs-sanity (2015-06-12) 1 commit
125   (merged to 'next' on 2015-06-16 at f0d8e17)
126  + t0302: "unreadable" test needs SANITY prereq
128  Will merge to 'master'.
130 --------------------------------------------------
131 [Graduated to "master"]
133 * ah/send-email-sendmail-alias (2015-05-27) 2 commits
134   (merged to 'next' on 2015-06-04 at 9d9bd68)
135  + t9001: write $HOME/, not ~/, to help shells without tilde expansion
136  + send-email: add sendmail email aliases format
137  (this branch is used by es/send-email-sendmail-alias.)
139  "git send-email" learned the alias file format used by the sendmail
140  program (in an abbreviated form).
143 * jc/diff-ws-error-highlight (2015-05-26) 4 commits
144   (merged to 'next' on 2015-06-01 at 6046560)
145  + diff.c: --ws-error-highlight=<kind> option
146  + diff.c: add emit_del_line() and emit_context_line()
147  + t4015: separate common setup and per-test expectation
148  + t4015: modernise style
150  Allow whitespace breakages in deleted and context lines to be also
151  painted in the output.
154 * jk/clone-dissociate (2015-05-27) 2 commits
155   (merged to 'next' on 2015-06-01 at 19e3ec3)
156  + clone: reorder --dissociate and --reference options
157  + clone: use OPT_STRING_LIST for --reference
159  Code clean-up.
162 * jk/color-diff-plain-is-context (2015-05-27) 2 commits
163   (merged to 'next' on 2015-06-01 at bcd8f1d)
164  + diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
165  + diff: accept color.diff.context as a synonym for "plain"
167  "color.diff.plain" was a misnomer; give it 'color.diff.context' as
168  a more logical synonym.
171 * jk/diagnose-config-mmap-failure (2015-05-28) 5 commits
172   (merged to 'next' on 2015-06-01 at ca750d5)
173  + xmmap(): drop "Out of memory?"
174  + config.c: rewrite ENODEV into EISDIR when mmap fails
175  + config.c: avoid xmmap error messages
176  + config.c: fix mmap leak when writing config
177  + read-cache.c: drop PROT_WRITE from mmap of index
179  The configuration reader/writer uses mmap(2) interface to access
180  the files; when we find a directory, it barfed with "Out of memory?".
183 * jk/die-on-bogus-worktree-late (2015-05-29) 1 commit
184   (merged to 'next' on 2015-06-04 at fac7a83)
185  + setup_git_directory: delay core.bare/core.worktree errors
187  The setup code used to die when core.bare and core.worktree are set
188  inconsistently, even for commands that do not need working tree.
191 * jk/make-fix-dependencies (2015-05-29) 3 commits
192   (merged to 'next' on 2015-06-04 at 28daf19)
193  + Makefile: silence perl/PM.stamp recipe
194  + Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
195  + Makefile: drop dependency between git-instaweb and gitweb
197  Build clean-up.
200 * jk/squelch-missing-link-warning-for-unreachable (2015-06-01) 3 commits
201   (merged to 'next' on 2015-06-01 at 9ddc5d1)
202  + suppress errors on missing UNINTERESTING links
203  + silence broken link warnings with revs->ignore_missing_links
204  + add quieter versions of parse_{tree,commit}
206  Recent "git prune" traverses young unreachable objects to safekeep
207  old objects in the reachability chain from them, which sometimes
208  caused error messages that are unnecessarily alarming.
211 * mh/verify-lock-error-report (2015-05-27) 5 commits
212   (merged to 'next' on 2015-06-01 at 7b450a7)
213  + ref_transaction_commit(): do not capitalize error messages
214  + verify_lock(): do not capitalize error messages
215  + verify_lock(): report errors via a strbuf
216  + verify_lock(): on errors, let the caller unlock the lock
217  + verify_lock(): return 0/-1 rather than struct ref_lock *
219  Bring consistency to error reporting mechanism used in "refs" API.
222 * mt/p4-depotFile-at-version (2015-05-27) 1 commit
223   (merged to 'next' on 2015-06-01 at 33e8622)
224  + p4: retrieve the right revision of the file in UTF-16 codepath
227 * nd/slim-index-pack-memory-usage (2015-06-04) 1 commit
228   (merged to 'next' on 2015-06-04 at 328fd50)
229  + index-pack: fix truncation of off_t in comparison
231  An earlier optimization broke index-pack for a large object
232  transfer; this fixes it before the breakage hits any released
233  version.
236 * pt/pull-tests (2015-05-29) 8 commits
237   (merged to 'next' on 2015-06-01 at c98370b)
238  + t5520: check reflog action in fast-forward merge
239  + t5521: test --dry-run does not make any changes
240  + t5520: test --rebase failure on unborn branch with index
241  + t5520: test --rebase with multiple branches
242  + t5520: test work tree fast-forward when fetch updates head
243  + t5520: test for failure if index has unresolved entries
244  + t5520: test no merge candidates cases
245  + t5520: prevent field splitting in content comparisons
246  (this branch is used by pt/pull-optparse.)
248  Add more test coverage to "git pull".
251 * sb/glossary-submodule (2015-05-29) 1 commit
252   (merged to 'next' on 2015-06-01 at 84de87b)
253  + glossary: add "remote", "submodule", "superproject"
256 * sb/pack-protocol-mention-smart-http (2015-06-02) 1 commit
257   (merged to 'next' on 2015-06-04 at 8041cf6)
258  + Documentation/technical/pack-protocol: mention http as possible protocol
260  Doc updates.
263 * sb/submodule-doc-intro (2015-05-28) 1 commit
264   (merged to 'next' on 2015-06-01 at b6798de)
265  + submodule doc: reorder introductory paragraphs
268 * sg/merge-summary-config (2015-05-28) 1 commit
269   (merged to 'next' on 2015-06-04 at 8c0946c)
270  + Documentation: include 'merge.branchdesc' for merge and config as well
272  Doc updates.
275 * tb/complete-sequencing (2015-06-01) 1 commit
276   (merged to 'next' on 2015-06-01 at b7604e8)
277  + completion: suggest sequencer commands for revert
279  The bash completion script (in contrib/) learned a few options that
280  "git revert" takes.
282 --------------------------------------------------
283 [Stalled]
285 * kk/log-merges-config (2015-04-21) 5 commits
286  - bash-completion: add support for git-log --merges= and log.merges
287  - t4202-log: add tests for --merges=
288  - Documentation: add git-log --merges= option and log.merges config. var
289  - log: honor log.merges= option
290  - revision: add --merges={show|only|hide} option
292  "git log" (but not other commands in the "log" family) learned to
293  pay attention to the log.merges configuration variable that can be
294  set to "show" (the normal behaviour), "only" (hide non-merge
295  commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
296  can be used to override the setting from the command line.
298  The documentation may need to be updated once more ($gmane/267250).
299  Waiting for a reroll.
302 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
303  - t/lib-git-svn: check same httpd module dirs as lib-httpd
304  - t/lib-httpd: load mod_unixd
306  This is the first two commits in a three-patch series $gmane/266962
307  Will be rerolled.
308  with updated log message ($gmane/268061).
311 * mh/numparse (2015-03-19) 14 commits
312  - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
313  - diff_opt_parse(): use convert_i() when handling "-l<num>"
314  - opt_arg(): simplify pointer handling
315  - opt_arg(): report errors parsing option values
316  - opt_arg(): use convert_i() in implementation
317  - opt_arg(): val is always non-NULL
318  - builtin_diff(): detect errors when parsing --unified argument
319  - handle_revision_opt(): use convert_ui() when handling "--abbrev="
320  - strtoul_ui(), strtol_i(): remove functions
321  - handle_revision_opt(): use convert_i() when handling "-<digit>"
322  - handle_revision_opt(): use skip_prefix() in many places
323  - write_subdirectory(): use convert_ui() for parsing mode
324  - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
325  - numparse: new module for parsing integral numbers
327  Many codepaths use unchecked use of strtol() and friends (or even
328  worse, atoi()).  Introduce a set of wrappers that try to be more
329  careful.
331  Will be rerolled.
332  ($gmane/268058).
335 * tf/gitweb-project-listing (2015-03-19) 5 commits
336  - gitweb: make category headings into links when they are directories
337  - gitweb: optionally set project category from its pathname
338  - gitweb: add a link under the search box to clear a project filter
339  - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
340  - gitweb: fix typo in man page
342  Update gitweb to make it more pleasant to deal with a hierarchical
343  forest of repositories.
345  Any comments from those who use or have their own code in Gitweb?
348 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
349  - "-" and "@{-1}" on various programs
351  Lose special case code to make a lone dash "-" mean the previous
352  branch aka "@{-1}" from a handful subcommands, and instead support
353  the notation throughout the system by reimplementing it at the
354  revisions layer.
356  Needs tests, documentation updates, etc.  Also does only a half-way
357  job dealing with range notation, which needs to be fixed before the
358  series goes anywhere.
361 * nd/list-files (2015-02-09) 21 commits
362  - t3080: tests for git-list-files
363  - list-files: -M aka diff-cached
364  - list-files -F: show submodules with the new indicator '&'
365  - list-files: add -F/--classify
366  - list-files: show directories as well as files
367  - list-files: do not show duplicate cached entries
368  - list-files: sort output and remove duplicates
369  - list-files: add -t back
370  - list-files: add -1 short for --no-column
371  - list-files: add -R/--recursive short for --max-depth=-1
372  - list-files: -u does not imply showing stages
373  - list-files: make alias 'ls' default to 'list-files'
374  - list-files: a user friendly version of ls-files and more
375  - ls-files: support --max-depth
376  - ls-files: add --column
377  - ls-files: add --color to highlight file names
378  - ls-files: buffer full item in strbuf before printing
379  - ls_colors.c: highlight submodules like directories
380  - ls_colors.c: add a function to color a file name
381  - ls_colors.c: parse color.ls.* from config file
382  - ls_colors.c: add $LS_COLORS parsing code
384  A new "git list-files" Porcelain command, "ls-files" with bells and
385  whistles.
387  Reroll to base on wt-status work ($gmane/265142) has seen some
388  positive discussions.
390  Waiting for a further polished reroll ($gmane/265534).
393 * js/fsck-opt (2015-01-21) 19 commits
394  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
395  - fsck: git receive-pack: support excluding objects from fsck'ing
396  - fsck: introduce `git fsck --quick`
397  - fsck: support demoting errors to warnings
398  - fsck: document the new receive.fsck.* options
399  - fsck: allow upgrading fsck warnings to errors
400  - fsck: optionally ignore specific fsck issues completely
401  - fsck: disallow demoting grave fsck errors to warnings
402  - fsck: add a simple test for receive.fsck.*
403  - fsck: make fsck_tag() warn-friendly
404  - fsck: handle multiple authors in commits specially
405  - fsck: make fsck_commit() warn-friendly
406  - fsck: make fsck_ident() warn-friendly
407  - fsck: report the ID of the error/warning
408  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
409  - fsck: offer a function to demote fsck errors to warnings
410  - fsck: provide a function to parse fsck message IDs
411  - fsck: introduce identifiers for fsck messages
412  - fsck: introduce fsck options
414  "fsck.warnings = <list of error tokens>" I suggested turned out to
415  be an unpopular choice (sorry Dscho).
417  Expecting a reroll.
420 * nd/pathspec-strip-fix (2015-04-18) 1 commit
421  - pathspec: adjust prefixlen after striping trailing slash
423  Does not quite fix ($gmane/267614).
424  Will discard.
427 * jc/diff-b-m (2015-02-23) 5 commits
428  . WIPWIP
429  . WIP: diff-b-m
430  - diffcore-rename: allow easier debugging
431  - diffcore-rename.c: add locate_rename_src()
432  - diffcore-break: allow debugging
434  "git diff -B -M" produced incorrect patch when the postimage of a
435  completely rewritten file is similar to the preimage of a removed
436  file; such a resulting file must not be expressed as a rename from
437  other place.
439  The fix in this patch is broken, unfortunately.
442 * pw/remote-set-url-fetch (2014-11-26) 1 commit
443  - remote: add --fetch and --both options to set-url
445  Expecting a reroll.
448 * tr/remerge-diff (2014-11-10) 9 commits
449  - t4213: avoid "|" in sed regexp
450  - log --remerge-diff: show what the conflict resolution changed
451  - name-hash: allow dir hashing even when !ignore_case
452  - merge-recursive: allow storing conflict hunks in index
453  - merge_diff_mode: fold all merge diff variants into an enum
454  - combine-diff: do not pass revs->dense_combined_merges redundantly
455  - merge-recursive: -Xindex-only to leave worktree unchanged
456  - merge-recursive: internal flag to avoid touching the worktree
457  - merge-recursive: remove dead conditional in update_stages()
459  "log -p" output learns a new way to let users inspect a merge
460  commit by showing the differences between the automerged result
461  with conflicts the person who recorded the merge would have seen
462  and the final conflict resolution that was recorded in the merge.
464  Waiting for a reroll ($gmane/256591).
467 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
468  - perf-lib: add test_perf_cleanup target
469  - perf-lib: split starting the test from the execution
471  Add test_perf_cleanup shell function to the perf suite, that allows
472  the script writers to define a test with a clean-up action.
474  Will hold.
477 * jc/show-branch (2014-03-24) 5 commits
478  - show-branch: use commit slab to represent bitflags of arbitrary width
479  - show-branch.c: remove "all_mask"
480  - show-branch.c: abstract out "flags" operation
481  - show-branch.c: lift all_mask/all_revs to a global static
482  - show-branch.c: update comment style
484  Waiting for the final step to lift the hard-limit.
486 --------------------------------------------------
487 [Cooking]
489 * af/tcsh-completion-noclobber (2015-06-09) 1 commit
490   (merged to 'next' on 2015-06-16 at 621f205)
491  + git-completion.tcsh: fix redirect with noclobber
493  The tcsh completion writes a bash scriptlet but that would have
494  failed for users with noclobber set.
496  Will merge to 'master'.
499 * es/utf8-stupid-compiler-workaround (2015-06-05) 1 commit
500   (merged to 'next' on 2015-06-11 at dc0f2d2)
501  + utf8: NO_ICONV: silence uninitialized variable warning
503  A compilation workaround.
505  Will merge to 'master'.
508 * fk/doc-format-patch-vn (2015-06-10) 1 commit
509   (merged to 'next' on 2015-06-16 at 9be3516)
510  + doc: format-patch: fix typo
512  Docfix.
514  Will merge to 'master'.
517 * gp/status-rebase-i-info (2015-06-09) 5 commits
518  - SQUASH??? fix misindent
519  - status: add new tests for status during rebase -i
520  - status: give more information during rebase -i
521  - status: differentiate interactive from non-interactive rebases
522  - status: factor two rebase-related messages together
524  Teach "git status" to show a more detailed information regarding
525  the "rebase -i" session in progress.
527  Expecting a reroll.
530 * jc/prompt-document-ps1-state-separator (2015-06-10) 1 commit
531  - git-prompt.sh: document GIT_PS1_STATESEPARATOR
533  Docfix.
535  Will merge to 'next'.
538 * jk/index-pack-reduce-recheck (2015-06-09) 1 commit
539   (merged to 'next' on 2015-06-16 at ff83705)
540  + index-pack: avoid excessive re-reading of pack directory
542  Disable "have we lost a race with competing repack?" check while
543  receiving a huge object transfer that runs index-pack.
545  Will merge to 'master'.
548 * js/sleep-without-select (2015-06-05) 4 commits
549   (merged to 'next' on 2015-06-11 at 278edb1)
550  + lockfile: wait using sleep_millisec() instead of select()
551  + lockfile: convert retry timeout computations to millisecond
552  + help.c: wrap wait-only poll() invocation in sleep_millisec()
553  + lockfile: replace random() by rand()
555  Portability fix.
557  Will merge to 'master'.
560 * ld/p4-changes-block-size (2015-06-10) 4 commits
561   (merged to 'next' on 2015-06-16 at 09b7daa)
562  + git-p4: fixing --changes-block-size handling
563  + git-p4: add tests for non-numeric revision range
564  + git-p4: test with limited p4 server results
565  + git-p4: additional testing of --changes-block-size
567  More Perforce row number limit workaround for "git p4".
569  Will merge to 'master'.
572 * mh/fsck-reflog-entries (2015-06-08) 2 commits
573   (merged to 'next' on 2015-06-16 at 44e3202)
574  + fsck: report errors if reflog entries point at invalid objects
575  + fsck_handle_reflog_sha1(): new function
577  "git fsck" used to ignore missing or invalid objects recorded in reflog.
579  Will merge to 'master'.
582 * mk/utf8-no-iconv-warn (2015-06-08) 1 commit
583  - utf8.c: print warning about disabled iconv
585  Warn when a reencoding is requested in a build without iconv
586  support, as the end user is likely to get an unexpected result.  I
587  think the same level of safety should be added to a build with
588  iconv support when the specified encoding is not available, but the
589  patch does not go there.
591  Expecting a reroll.
594 * mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit
595  - git-rebase--interactive.sh: add config option for custom instruction format
597  "git rebase -i"'s list of todo is made configurable.
599  Will merge to 'next'.
602 * nd/untracked-cache (2015-06-08) 1 commit
603   (merged to 'next' on 2015-06-16 at 5e7df1d)
604  + read-cache: fix untracked cache invalidation when split-index is used
606  Hotfix for the 'untracked-cache' topic that is already in 'master'.
608  Will merge to 'master'.
611 * pt/am-abort-fix (2015-06-08) 6 commits
612   (merged to 'next' on 2015-06-16 at 9cac1de)
613  + am --abort: keep unrelated commits on unborn branch
614  + am --abort: support aborting to unborn branch
615  + am --abort: revert changes introduced by failed 3way merge
616  + am --skip: support skipping while on unborn branch
617  + am -3: support 3way merge on unborn branch
618  + am --skip: revert changes introduced by failed 3way merge
620  Various fixes around "git am" that applies a patch to a history
621  that is not there yet.
623  Will merge to 'master'.
626 * pt/am-foreign (2015-06-15) 5 commits
627  - am: teach mercurial patch parser how to read from stdin
628  - am: use gmtime() to parse mercurial patch date
629  - t4150: test applying StGit series
630  - am: teach StGit patch parser how to read from stdin
631  - t4150: test applying StGit patch
633  Various enhancements around "git am" reading patches generated by
634  foreign SCM.
636  Will merge to 'next'.
639 * pt/pull-builtin (2015-06-15) 19 commits
640  - pull: remove redirection to git-pull.sh
641  - pull --rebase: error on no merge candidate cases
642  - pull --rebase: exit early when the working directory is dirty
643  - pull: configure --rebase via branch.<name>.rebase or pull.rebase
644  - pull: teach git pull about --rebase
645  - pull: set reflog message
646  - pull: implement pulling into an unborn branch
647  - pull: fast-forward working tree if head is updated
648  - pull: check if in unresolved merge state
649  - pull: support pull.ff config
650  - pull: error on no merge candidates
651  - pull: pass git-fetch's options to git-fetch
652  - pull: pass git-merge's options to git-merge
653  - pull: pass verbosity, --progress flags to fetch and merge
654  - pull: implement fetch + merge
655  - pull: implement skeletal builtin pull
656  - argv-array: implement argv_array_pushv()
657  - parse-options-cb: implement parse_opt_passthru_argv()
658  - parse-options-cb: implement parse_opt_passthru()
660  Reimplement 'git pull' in C.
663 * rl/send-email-aliases (2015-06-08) 5 commits
664  - send-email: refactor address list process
665  - send-email: allow multiple emails using --cc, --to and --bcc
666  - t9001-send-email: refactor header variable fields replacement
667  - send-email: allow aliases in patch header and command script outputs
668  - t9001-send-email: move script creation in a setup test
670  "git send-email" now performs alias-expansion on names that are
671  given via --cccmd, etc.
673  What's the doneness of this one?
676 * sg/commit-cleanup-scissors (2015-06-09) 1 commit
677   (merged to 'next' on 2015-06-16 at 988e23d)
678  + commit: cope with scissors lines in commit message
680  "git commit --cleanup=scissors" was not careful enough to protect
681  against getting fooled by a line that looked like scissors.
683  Will merge to 'master'.
686 * sg/completion-commit-cleanup (2015-06-08) 1 commit
687   (merged to 'next' on 2015-06-16 at a9d1c77)
688  + completion: teach 'scissors' mode to 'git commit --cleanup='
690  Will merge to 'master'.
693 * wp/sha1-name-negative-match (2015-06-08) 2 commits
694  - sha1_name.c: introduce '^{/!-<negative pattern>}' notation
695  - test for '!' handling in rev-parse's named commits
697  Introduce "branch^{/!-<pattern>}" notation to name a commit
698  reachable from branch that does not match the given pattern.
700  Expecting a reroll.
703 * bc/object-id (2015-06-15) 8 commits
704  - remote.c: use struct object_id in ref_newer()
705  - transport-helper.c: use struct object_id in push_refs_with_export()
706  - connect.c: use struct object_id in get_remote_heads()
707  - remote-curl: use struct object_id in parse_fetch()
708  - fetch-pack: use struct object_id in add_sought_entry_mem()
709  - object_id: convert struct ref to use object_id.
710  - sha1_file: introduce has_object_file() helper
711  - refs: convert some internal functions to use object_id
713  (incomplete - the last two not queued yet)
716 * jc/ll-merge-expose-path (2015-06-04) 1 commit
717   (merged to 'next' on 2015-06-11 at 5c5fe41)
718  + ll-merge: pass the original path to external drivers
720  Traditionally, external low-level 3-way merge drivers are expected
721  to produce their results based solely on the contents of the three
722  variants given in temporary files named by %O, %A and %B on their
723  command line.  Additionally allow them to look at the final path
724  (given by %P).
726  Will merge to 'master'.
729 * jk/log-missing-default-HEAD (2015-06-03) 1 commit
730  - log: diagnose empty HEAD more clearly
732  "git init empty && git -C empty log" said "bad default revision 'HEAD'",
733  which was found to be a bit confusing to new users.
735  What's the status of this one?
738 * gr/rebase-i-drop-warn (2015-06-01) 2 commits
739  - git rebase -i: warn about removed commits
740  - git-rebase -i: add command "drop" to remove a commit
742  Add "drop commit-object-name subject" command as another way to
743  skip replaying of a commit in "rebase -i", and then punish those
744  who do not use it (and instead just remove the lines) by throwing
745  a warning.
747  What's the status of this one?
750 * jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
751  - strbuf_read(): skip unnecessary strbuf_grow() at eof
753  Avoid one extra iteration and strbuf_grow() of 8kB in
754  strbuf_read().
756  Looked reasonable; perhaps a log message clarification is needed.
758  Expecting a reroll.
761 * mh/reporting-broken-refs-from-for-each-ref (2015-06-08) 4 commits
762   (merged to 'next' on 2015-06-16 at 31af2b8)
763  + read_loose_refs(): treat NULL_SHA1 loose references as broken
764  + read_loose_refs(): simplify function logic
765  + for-each-ref: report broken references correctly
766  + t6301: new tests of for-each-ref error handling
768  "git for-each-ref" reported "missing object" for 0{40} when it
769  encounters a broken ref.  The lack of object whose name is 0{40} is
770  not the problem; the ref being broken is.
772  Will merge to 'master'.
775 * jc/apply-reject-noop-hunk (2015-06-01) 1 commit
776   (merged to 'next' on 2015-06-11 at 8063665)
777  + apply: reject a hunk that does not do anything
779  "git apply" cannot diagnose a patch corruption when the breakage is
780  to mark the length of the hunk shorter than it really is on the
781  hunk header line "@@ -l,k +m,n @@"; one special case it could is
782  when the hunk becomes no-op (e.g. k == n == 2 for two-line context
783  patch output), and it learned how to do so.
785  Will merge to 'master'.
788 * es/configure-getdelim (2015-06-03) 2 commits
789   (merged to 'next' on 2015-06-11 at cdead14)
790  + configure: add getdelim() check
791  + config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases
793  Auto-detect availability of getdelim() that helps optimized version
794  of strbuf_getwholeline().
796  Will merge to 'master'.
799 * es/osx-header-pollutes-mask-macro (2015-06-03) 2 commits
800   (merged to 'next' on 2015-06-11 at cd8c39e)
801  + ewah: use less generic macro name
802  + ewah/bitmap: silence warning about MASK macro redefinition
804  Will merge to 'master'.
807 * es/send-email-sendmail-alias (2015-06-01) 10 commits
808   (merged to 'next' on 2015-06-11 at b5e310e)
809  + send-email: further warn about unsupported sendmail aliases features
810  + t9001: add sendmail aliases line continuation tests
811  + t9001: refactor sendmail aliases test infrastructure
812  + send-email: implement sendmail aliases line continuation support
813  + send-email: simplify sendmail aliases comment and blank line recognizer
814  + send-email: refactor sendmail aliases parser
815  + send-email: fix style: cuddle 'elsif' and 'else' with closing brace
816  + send-email: drop noise comments which merely repeat what code says
817  + send-email: visually distinguish sendmail aliases parser warnings
818  + send-email: further document missing sendmail aliases functionality
820  "git send-email" learned to handle more forms of sendmail style
821  aliases file.
823  Will merge to 'master'.
826 * jc/do-not-feed-tags-to-clear-commit-marks (2015-06-01) 1 commit
827   (merged to 'next' on 2015-06-11 at 65b4308)
828  + format-patch: do not feed tags to clear_commit_marks()
830  "git format-patch --ignore-if-upstream A..B" did not like to be fed
831  tags as boundary commits.
833  Will merge to 'master'.
836 * mg/index-read-error-messages (2015-06-01) 2 commits
837  - messages: uniform error messages for index write
838  - show-index: uniform error messages for index read
840  The tip was RFC.
841  Expecting a reroll.
844 * pt/pull-optparse (2015-06-02) 3 commits
845   (merged to 'next' on 2015-06-11 at e252b4c)
846  + pull: use git-rev-parse --parseopt for option parsing
847  + pull: handle git-fetch's options as well
848  + Merge branch 'pt/pull-tests' into pt/pull-optparse
850  "git pull" has become more aware of the options meant for
851  underlying "git fetch" and then learned to use parse-options
852  parser.
854  Will merge to 'master'.
857 * qn/blame-show-email (2015-06-01) 1 commit
858   (merged to 'next' on 2015-06-11 at b4998e2)
859  + blame: add blame.showEmail configuration
861  "git blame" learned blame.showEmail configuration variable.
863  Will merge to 'master'.
866 * rl/am-3way-config (2015-06-04) 3 commits
867   (merged to 'next' on 2015-06-11 at 9b9910d)
868  + git-am: add am.threeWay config variable
869  + t4150-am: refactor am -3 tests
870  + git-am.sh: fix initialization of the threeway variable
872  "git am" learned am.threeWay configuration variable.
874  Will merge to 'master'.
877 * hv/submodule-config (2015-06-15) 4 commits
878  - do not die on error of parsing fetchrecursesubmodules option
879  - use new config API for worktree configurations of submodules
880  - extract functions for submodule config set and lookup
881  - implement submodule config API for lookup of .gitmodules values
883  The gitmodules API accessed from the C code learned to cache stuff
884  lazily.
886  Looked reasonable from a cursory read.
889 * sg/config-name-only (2015-05-28) 3 commits
890  - completion: use new 'git config' options to reliably list variable names
891  - SQUASH
892  - config: add options to list only variable names
894  "git config --list" output was hard to parse when values consist of
895  multiple lines.  Introduce a way to show only the keys.
897  Adding a single --name-only option may be a better way to go than
898  adding two new options.
900  Expecting reroll.
903 * jc/push-tags-also (2015-05-29) 1 commit
904  - push --tags: push tags *in addition to* other stuff
906  "git fetch --tags" learned to fetch tags in addition to other stuff
907  a few years ago, but "git push --tags" didn't.  Now it does.
910 * jc/commit-slab (2015-05-22) 1 commit
911  - commit-slab: introduce slabname##_peek() function
913  Memory use reduction when commit-slab facility is used to annotate
914  sparsely (which is not recommended in the first place).
917 * jc/clone-bundle (2015-04-30) 1 commit
918  - repack: optionally create a clone.bundle
920  Still an early WIP
923 * ee/clean-remove-dirs (2015-06-15) 5 commits
924  - clean: improve performance when removing lots of directories
925  - p7300: add performance tests for clean
926  - t7300: add tests to document behavior of clean and nested git
927  - setup: sanity check file size in read_gitfile_gently
928  - setup: add gentle version of read_gitfile
930  Replace "is this subdirectory a separate repository that should not
931  be touched?" check "git clean" does by checking if it has .git/HEAD
932  using the submodule-related code with a more optimized check.
934  Looked reasonable from a cursory read.
937 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
938   (merged to 'next' on 2015-05-28 at 6bfd8b9)
939  + merge: drop 'git merge <message> HEAD <commit>' syntax
941  Stop supporting "git merge <message> HEAD <commit>" syntax that
942  has been deprecated since October 2007.
944  Will keep in 'next' during the 2.5 cycle.