What's cooking (2015-08 #06)
[git.git] / whats-cooking.txt
blobd4d9fdf27cfe72926d8d8f595d55786cd01c0ef6
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Aug 2015, #06; Mon, 31)
4 X-master-at: 16163602bacb2804d00d599049a62b7af0b0b7b6
5 X-next-at: 7a4f88f1005d1360c4762c403490bf540d65766b
7 What's cooking in git.git (Aug 2015, #06; Mon, 31)
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 A handful of topics have been merged to 'master'.  Because there
15 still are a few obviously good and trivially safe fixes cooking in
16 'next', it would be pretty much meaningless to tag today's state
17 as -rc0 (not that -rc0 has meant that much in the first place), so
18 I'll wait for a few days and merge the remaining such topics from
19 'next' to 'master' and then tag the -rc0.
21 You can find the changes described here in the integration branches
22 of the repositories listed at
24     http://git-blame.blogspot.com/p/git-public-repositories.html
26 --------------------------------------------------
27 [Graduated to "master"]
29 * db/push-sign-if-asked (2015-08-19) 9 commits
30   (merged to 'next' on 2015-08-26 at a7a32e9)
31  + push: add a config option push.gpgSign for default signed pushes
32  + push: support signing pushes iff the server supports it
33  + builtin/send-pack.c: use parse_options API
34  + config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool
35  + transport: remove git_transport_options.push_cert
36  + gitremote-helpers.txt: document pushcert option
37  + Documentation/git-send-pack.txt: document --signed
38  + Documentation/git-send-pack.txt: wrap long synopsis line
39  + Documentation/git-push.txt: document when --signed may fail
41  The client side codepaths in "git push" have been cleaned up
42  and the user can request to perform an optional "signed push",
43  i.e. sign only when the other end accepts signed push.
46 * hv/submodule-config (2015-08-19) 4 commits
47   (merged to 'next' on 2015-08-25 at 82adb30)
48  + submodule: allow erroneous values for the fetchRecurseSubmodules option
49  + submodule: use new config API for worktree configurations
50  + submodule: extract functions for config set and lookup
51  + submodule: implement a config API for lookup of .gitmodules values
52  (this branch is used by sb/submodule-helper.)
54  The gitmodules API accessed from the C code learned to cache stuff
55  lazily.
58 * jc/am-state-fix (2015-08-25) 5 commits
59   (merged to 'next' on 2015-08-25 at 4efcd88)
60  + write_file(): drop caller-supplied LF from calls to create a one-liner file
61  + write_file_v(): do not leave incomplete line at the end
62  + write_file(): drop "fatal" parameter
63  + builtin/am: make sure state files are text
64  + builtin/am: introduce write_state_*() helper functions
66  Recent reimplementation of "git am" changed the format of state
67  files kept in $GIT_DIR/rebase-apply/ without meaning to do so,
68  primarily because write_file() API was cumbersome to use and it was
69  easy to mistakenly make text files with incomplete lines.  Update
70  write_file() interface to make it harder to misuse.
73 * jc/log-p-cc (2015-08-25) 4 commits
74   (merged to 'next' on 2015-08-25 at 2d6a6d4)
75  + builtin/log.c: minor reformat
76  + log: show merge commit when --cc is given
77  + log: when --cc is given, default to -p unless told otherwise
78  + log: rename "tweak" helpers
80  "git log --cc" did not show any patch, even though most of the time
81  the user meant "git log --cc -p -m" to see patch output for commits
82  with a single parent, and combined diff for merge commits.  The
83  command is taught to DWIM "--cc" (without "--raw" and other forms
84  of output specification) to "--cc -p -m".
87 * jk/fix-alias-pager-config-key-warnings (2015-08-24) 1 commit
88   (merged to 'next' on 2015-08-25 at 89eac5a)
89  + config: silence warnings for command names with invalid keys
91  Because the configuration system does not allow "alias.0foo" and
92  "pager.0foo" as the configuration key, the user cannot use '0foo'
93  as a custom command name anyway, but "git 0foo" tried to look these
94  keys up and emitted useless warnings before saying '0foo is not a
95  git command'.  These warning messages have been squelched.
98 * jk/notes-merge-config (2015-08-17) 6 commits
99   (merged to 'next' on 2015-08-26 at 6dd2286)
100  + notes: teach git-notes about notes.<name>.mergeStrategy option
101  + notes: add notes.mergeStrategy option to select default strategy
102  + notes: add tests for --commit/--abort/--strategy exclusivity
103  + notes: extract parse_notes_merge_strategy to notes-utils
104  + notes: extract enum notes_merge_strategy to notes-utils.h
105  + notes: document cat_sort_uniq rewriteMode
107  "git notes merge" can be told with "--strategy=<how>" option how to
108  automatically handle conflicts; this can now be configured by
109  setting notes.mergeStrategy configuration variable.
112 * jk/rev-list-has-no-notes (2015-08-24) 1 commit
113   (merged to 'next' on 2015-08-25 at 73cb2ad)
114  + rev-list: make it obvious that we do not support notes
116  "git rev-list" does not take "--notes" option, but did not complain
117  when one is given.
120 * sg/config-name-only (2015-08-20) 6 commits
121   (merged to 'next' on 2015-08-25 at 6cb3b7d)
122  + get_urlmatch: avoid useless strbuf write
123  + format_config: simplify buffer handling
124  + format_config: don't init strbuf
125  + config: restructure format_config() for better control flow
126   (merged to 'next' on 2015-08-12 at c658fe4)
127  + completion: list variable names reliably with 'git config --name-only'
128  + config: add '--name-only' option to list only variable names
130  "git config --list" output was hard to parse when values consist of
131  multiple lines.  "--name-only" option is added to help this.
134 * sg/describe-contains (2015-08-25) 1 commit
135   (merged to 'next' on 2015-08-26 at a7c66d9)
136  + describe --contains: default to HEAD when no commit-ish is given
138  "git describe" without argument defaulted to describe the HEAD
139  commit, but "git describe --contains" didn't.  Arguably, in a
140  repository used for active development, such defaulting would not
141  be very useful as the tip of branch is typically not tagged, but it
142  is better to be consistent.
144 --------------------------------------------------
145 [New Topics]
147 * ah/show-ref-usage-string (2015-08-31) 1 commit
148  - show-ref: place angle brackets around variables in usage string
150  Both "git show-ref -h" and "git show-ref --help" illustrated that the
151  "--exclude-existing" option makes the command read list of refs
152  from its standard input.  Change only the "show-ref -h" output to
153  have a pair of "<>" around the placeholder that designate an input
154  file, i.e. "git show-ref --exclude-existing < <ref-list>".
157 * cc/trailers-corner-case-fix (2015-08-31) 1 commit
158  - trailer: support multiline title
160  The "interpret-trailers" helper mistook a multi-paragraph title of
161  a commit log message with a colon in it as the end of the trailer
162  block.
164  Will merge to 'next'.
167 * ee/clean-test-fixes (2015-08-31) 1 commit
168  - t7300: fix broken && chains
170  Will merge to 'next'.
173 * jk/date-local (2015-08-31) 3 commits
174  - SQUASH???
175  - date: make "local" orthogonal to date format
176  - fast-import: switch crash-report date to iso8601
178  "git log --date=local" used to only allow to show the normal
179  (default) format in the local timezone. The command learned to take
180  'local' as an instruction to use the local timezone with other
181  formats, e.g. "git show --date=rfc-local".
184 * nk/stash-show-config (2015-08-31) 1 commit
185  - stash: allow "stash show" diff output configurable
187  Users who are too busy to type three extra keystrokes to ask for
188  "git stash show -p" can now set stash.showPatch configuration
189  varible to true to always see the actual patch, not just the list
190  of paths affected with feel for the extent of damage via diffstat.
193 * sb/read-cache-one-indent-style-fix (2015-08-31) 1 commit
194  - read-cache: fix indentation in read_index_from
196  Will merge to 'next'.
199 * ls/p4-path-encoding (2015-08-31) 1 commit
200  - git-p4: add "--path-encoding" option
202  "git p4" learned to reencode the pathname it uses to communicate
203  with the p4 depot with a new option.
205 --------------------------------------------------
206 [Stalled]
208 * sb/remove-get-pathspec (2015-08-03) 1 commit
209  - builtin/mv: remove get_pathspec()
211  Will discard.
212  ($gmane/276104)
215 * mk/submodule-gitdir-path (2015-08-05) 2 commits
216  - path: implement common_dir handling in git_path_submodule()
217  - submodule refactor: use git_path_submodule() in add_submodule_odb()
219  The submodule code has been taught to work better with separate
220  work trees created via "git worktree add".
222  Waiting for a review.
223  ($gmane/275340).
226 * nd/list-files (2015-02-09) 21 commits
227  - t3080: tests for git-list-files
228  - list-files: -M aka diff-cached
229  - list-files -F: show submodules with the new indicator '&'
230  - list-files: add -F/--classify
231  - list-files: show directories as well as files
232  - list-files: do not show duplicate cached entries
233  - list-files: sort output and remove duplicates
234  - list-files: add -t back
235  - list-files: add -1 short for --no-column
236  - list-files: add -R/--recursive short for --max-depth=-1
237  - list-files: -u does not imply showing stages
238  - list-files: make alias 'ls' default to 'list-files'
239  - list-files: a user friendly version of ls-files and more
240  - ls-files: support --max-depth
241  - ls-files: add --column
242  - ls-files: add --color to highlight file names
243  - ls-files: buffer full item in strbuf before printing
244  - ls_colors.c: highlight submodules like directories
245  - ls_colors.c: add a function to color a file name
246  - ls_colors.c: parse color.ls.* from config file
247  - ls_colors.c: add $LS_COLORS parsing code
249  A new "git list-files" Porcelain command, "ls-files" with bells and
250  whistles.
252  Reroll to base on wt-status work ($gmane/265142) has seen some
253  positive discussions.
255  Waiting for a further polished reroll ($gmane/265534).
258 * mh/numparse (2015-03-19) 14 commits
259  . diff_opt_parse(): use convert_i() when handling --abbrev=<num>
260  . diff_opt_parse(): use convert_i() when handling "-l<num>"
261  . opt_arg(): simplify pointer handling
262  . opt_arg(): report errors parsing option values
263  . opt_arg(): use convert_i() in implementation
264  . opt_arg(): val is always non-NULL
265  . builtin_diff(): detect errors when parsing --unified argument
266  . handle_revision_opt(): use convert_ui() when handling "--abbrev="
267  . strtoul_ui(), strtol_i(): remove functions
268  . handle_revision_opt(): use convert_i() when handling "-<digit>"
269  . handle_revision_opt(): use skip_prefix() in many places
270  . write_subdirectory(): use convert_ui() for parsing mode
271  . cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
272  . numparse: new module for parsing integral numbers
274  Many codepaths use unchecked use of strtol() and friends (or even
275  worse, atoi()).  Introduce a set of wrappers that try to be more
276  careful.
278  Waiting for a reroll.
279  ($gmane/268058).
282 * kk/log-merges-config (2015-04-21) 5 commits
283  - bash-completion: add support for git-log --merges= and log.merges
284  - t4202-log: add tests for --merges=
285  - Documentation: add git-log --merges= option and log.merges config. var
286  - log: honor log.merges= option
287  - revision: add --merges={show|only|hide} option
289  "git log" (but not other commands in the "log" family) learned to
290  pay attention to the log.merges configuration variable that can be
291  set to "show" (the normal behaviour), "only" (hide non-merge
292  commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
293  can be used to override the setting from the command line.
295  The documentation may need to be updated once more ($gmane/267250).
296  Waiting for a reroll.
299 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
300  - t/lib-git-svn: check same httpd module dirs as lib-httpd
301  - t/lib-httpd: load mod_unixd
303  This is the first two commits in a three-patch series $gmane/266962
305  Waiting for a reroll.
306  with updated log message ($gmane/268061).
309 * bw/portability-solaris (2015-07-20) 3 commits
310  - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
311  - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
312  - tests: modify tr expressions so that xpg4/tr handles it on Solaris
314  Needs another reroll?
315  ($gmane/274296)
318 * jc/clone-bundle (2015-04-30) 1 commit
319  - repack: optionally create a clone.bundle
321  Waiting for further work.
322  Still an early WIP.
325 * mg/index-read-error-messages (2015-06-01) 2 commits
326  - messages: uniform error messages for index write
327  - show-index: uniform error messages for index read
329  The tip was RFC.
330  Waiting for a reroll.
333 * wp/sha1-name-negative-match (2015-06-08) 2 commits
334  - sha1_name.c: introduce '^{/!-<negative pattern>}' notation
335  - test for '!' handling in rev-parse's named commits
337  Introduce "branch^{/!-<pattern>}" notation to name a commit
338  reachable from branch that does not match the given pattern.
340  Waiting for a reroll.
343 * mk/utf8-no-iconv-warn (2015-06-08) 1 commit
344  - utf8.c: print warning about disabled iconv
346  Warn when a reencoding is requested in a build without iconv
347  support, as the end user is likely to get an unexpected result.  I
348  think the same level of safety should be added to a build with
349  iconv support when the specified encoding is not available, but the
350  patch does not go there.
352  Waiting for a reroll.
355 * ak/format-patch-odir-config (2015-06-19) 1 commit
356  - format-patch: introduce format.outputDirectory configuration
358  Reroll exists but didn't pick it up as it seemed to be still
359  collecting review comments.
361  Waiting for a reroll.
362  ($gmane/272180).
365 * mh/notes-allow-reading-treeish (2015-07-13) 1 commit
366  - notes: allow treeish expressions as notes ref
368  Some "git notes" operations, e.g. "git log --notes=<note>", should
369  be able to read notes from any tree-ish that is shaped like a notes
370  tree, but the notes infrastructure required that the argument must
371  be a ref under refs/notes/.  Loosen it to require a valid ref only
372  when the operation would update the notes (in which case we must
373  have a place to store the updated notes tree, iow, a ref).
375  Needs update to docs.
376  ($gmane/273928)
379 * jc/diff-b-m (2015-02-23) 5 commits
380  . WIPWIP
381  . WIP: diff-b-m
382  - diffcore-rename: allow easier debugging
383  - diffcore-rename.c: add locate_rename_src()
384  - diffcore-break: allow debugging
386  "git diff -B -M" produced incorrect patch when the postimage of a
387  completely rewritten file is similar to the preimage of a removed
388  file; such a resulting file must not be expressed as a rename from
389  other place.
391  The fix in this patch is broken, unfortunately.
394 * pw/remote-set-url-fetch (2014-11-26) 1 commit
395  . remote: add --fetch and --both options to set-url
397  Ejected.
400 * tr/remerge-diff (2014-11-10) 9 commits
401  . t4213: avoid "|" in sed regexp
402  . log --remerge-diff: show what the conflict resolution changed
403  . name-hash: allow dir hashing even when !ignore_case
404  . merge-recursive: allow storing conflict hunks in index
405  . merge_diff_mode: fold all merge diff variants into an enum
406  . combine-diff: do not pass revs->dense_combined_merges redundantly
407  . merge-recursive: -Xindex-only to leave worktree unchanged
408  . merge-recursive: internal flag to avoid touching the worktree
409  . merge-recursive: remove dead conditional in update_stages()
411  "log -p" output learns a new way to let users inspect a merge
412  commit by showing the differences between the automerged result
413  with conflicts the person who recorded the merge would have seen
414  and the final conflict resolution that was recorded in the merge.
416  Waiting for a reroll.
417  ($gmane/256591).
420 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
421  - perf-lib: add test_perf_cleanup target
422  - perf-lib: split starting the test from the execution
424  Add test_perf_cleanup shell function to the perf suite, that allows
425  the script writers to define a test with a clean-up action.
427  Will hold.
430 * jc/show-branch (2014-03-24) 5 commits
431  - show-branch: use commit slab to represent bitflags of arbitrary width
432  - show-branch.c: remove "all_mask"
433  - show-branch.c: abstract out "flags" operation
434  - show-branch.c: lift all_mask/all_revs to a global static
435  - show-branch.c: update comment style
437  Waiting for the final step to lift the hard-limit.
439 --------------------------------------------------
440 [Cooking]
442 * ad/bisect-terms (2015-08-03) 4 commits
443  - bisect: allow setting any user-specified in 'git bisect start'
444  - bisect: add 'git bisect terms' to view the current terms
445  - bisect: add the terms old/new
446  - bisect: sanity check on terms
448  The use of 'good/bad' in "git bisect" made it confusing to use when
449  hunting for a state change that is not a regression (e.g. bugfix).
450  The command learned 'old/new' and then allows the end user to
451  say e.g. "bisect start --term-old=fast --term=new=slow" to find a
452  performance regression.
454  Michael's idea to make 'good/bad' more intelligent does have
455  certain attractiveness ($gname/272867), and makes some of the work
456  on this topic a moot point.
458  Will merge to 'next'.
461 * jk/log-missing-default-HEAD (2015-08-31) 1 commit
462  - log: diagnose empty HEAD more clearly
464  "git init empty && git -C empty log" said "bad default revision 'HEAD'",
465  which was found to be a bit confusing to new users.
467  Will merge to 'next'.
470 * ah/pack-objects-usage-strings (2015-08-28) 1 commit
471   (merged to 'next' on 2015-08-31 at 78c8240)
472  + pack-objects: place angle brackets around placeholders in usage strings
474  Usage string fix.
476  Will merge to 'master'.
479 * ah/read-tree-usage-string (2015-08-28) 1 commit
480   (merged to 'next' on 2015-08-31 at fbaa7bd)
481  + read-tree: replace bracket set with parentheses to clarify usage
483  Usage string fix.
485  Will merge to 'master'.
488 * ah/reflog-typofix-in-error (2015-08-28) 1 commit
489   (merged to 'next' on 2015-08-31 at 1b37218)
490  + reflog: add missing single quote to error message
492  Error string fix.
494  Will merge to 'master'.
497 * ah/submodule-typofix-in-error (2015-08-28) 1 commit
498   (merged to 'next' on 2015-08-31 at 5a20628)
499  + git-submodule: remove extraneous space from error message
501  Error string fix.
503  Will merge to 'master'.
506 * br/svn-doc-include-paths-config (2015-08-26) 1 commit
507   (merged to 'next' on 2015-08-31 at 27a305f)
508  + git-svn doc: mention "svn-remote.<name>.include-paths"
510  Will merge to 'master'.
513 * dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update (2015-08-31) 1 commit
514   (merged to 'next' on 2015-08-31 at c4133fb)
515  + commit: don't rewrite shared index unnecessarily
517  When re-priming the cache-tree opportunistically while committing
518  the in-core index as-is, we mistakenly invalidated the in-core
519  index too aggressively, causing the experimental split-index code
520  to unnecessarily rewrite the on-disk index file(s).
522  Will merge to 'master'.
525 * dt/refs-bisection (2015-08-31) 5 commits
526  - bisect: make bisection refs per-worktree
527  - refs: make refs/worktree/* per-worktree
528  - SQUASH???
529  - path: optimize common dir checking
530  - refs: clean up common_list
532  Move the refs used during a "git bisect" session to per-worktree
533  hierarchy refs/worktree/* so that independent bisect sessions can
534  be done in different worktrees.
536  $gmane/276765.  We do not need to move (which can break third-party
537  tools) in order to make the hierarchy per-worktree.
540 * ld/p4-import-labels (2015-08-28) 3 commits
541  - git-p4: fix P4 label import for unprocessed commits
542  - git-p4: do not terminate creating tag for unknown commit
543  - git-p4: failing test for ignoring invalid p4 labels
545  Will merge to 'next'.
548 * ls/p4-fold-case-client-specs (2015-08-28) 1 commit
549   (merged to 'next' on 2015-08-31 at f25a3bd)
550  + git-p4: honor core.ignorecase when using P4 client specs
552  On case insensitive systems, "git p4" did not work well with client
553  specs.
555  Will merge to 'master'.
558 * rs/archive-zip-many (2015-08-28) 3 commits
559   (merged to 'next' on 2015-08-31 at b799358)
560  + archive-zip: support more than 65535 entries
561  + archive-zip: use a local variable to store the creator version
562  + t5004: test ZIP archives with many entries
564  "git archive" did not use zip64 extension when creating an archive
565  with more than 64k entries, which nobody should need, right ;-)?
567  Will merge to 'master'.
570 * rt/remove-hold-lockfile-for-append (2015-08-28) 1 commit
571   (merged to 'next' on 2015-08-31 at caabe4b)
572  + lockfile: remove function "hold_lock_file_for_append"
574  Will merge to 'master'.
577 * kn/for-each-tag (2015-08-25) 15 commits
578  - SQUASH??? a tag longer than 15 bytes break alignment but keeps SP before the message
579  - tag.c: implement '--merged' and '--no-merged' options
580  - tag.c: implement '--format' option
581  - tag.c: use 'ref-filter' APIs
582  - tag.c: use 'ref-filter' data structures
583  - ref-filter: add option to match literal pattern
584  - ref-filter: add support to sort by version
585  - ref-filter: support printing N lines from tag annotation
586  - ref-filter: add option to filter out tags, branches and remotes
587  - ref-filter: implement an `align` atom
588  - utf8: add function to align a string into given strbuf
589  - ref-filter: introduce ref_formatting_state and ref_formatting_stack
590  - ref-filter: move `struct atom_value` to ref-filter.c
591  - Merge 'jk/git-path' into kn/for-each-tag
592  - Merge 'kn/for-each-tag-branch' into kn/for-each-tag
593  (this branch uses kn/for-each-tag-branch.)
595  The "ref-filter" code was taught about many parts of what "tag -l"
596  does and then "tag -l" is reimplemented in terms of "ref-filter".
598  Almost there...
599  Waiting for a reroll.
600  ($gmane/276615, $gmane/276529, $gmane/276607, $gmane/276606, etc.)
603 * nd/fixup-linked-gitdir (2015-08-25) 1 commit
604   (merged to 'next' on 2015-08-26 at 7b8a1aa)
605  + setup: update the right file in multiple checkouts
607  The code in "multiple-worktree" support that attempted to recover
608  from an inconsistent state updated an incorrect file.
610  Will merge to 'master'.
613 * nd/ita-cleanup (2015-08-25) 6 commits
614  - grep: make it clear i-t-a entries are ignored
615  - checkout(-index): do not checkout i-t-a entries
616  - apply: make sure check_preimage() does not leave empty file on error
617  - apply: fix adding new files on i-t-a entries
618  - Add and use convenient macro ce_intent_to_add()
619  - blame: remove obsolete comment
621  Paths that have been told the index about with "add -N" are not yet
622  in the index, but various commands behaved as if they already are.
624  Some commits need better explanation.
626  Waiting for a reroll.
629 * dk/gc-idx-wo-pack (2015-08-17) 3 commits
630  - DONTMERGE: log message, grace-period and tests $gmane/276058
631  - gc: remove stale .idx files without corresponding .pack file
632  - prepare_packed_git(): refactor garbage reporting in pack directory
634  Having a leftover .idx file without correspoinding .pack file in
635  the repository hurts performance; "git gc" learned to prune them.
637  Waiting for a reroll.
640 * bb/remote-get-url (2015-08-05) 1 commit
641  - remote: add get-url subcommand
643  "git remote" learned "get-url" subcommand to show the URL for a
644  given remote name used for fetching and pushing.
646  Waiting for a reroll.
647  ($gmane/275401)
650 * sb/submodule-helper (2015-08-31) 5 commits
651  - submodule: implement `module_clone` as a builtin helper
652  - submodule: implement `module_name` as a builtin helper
653  - SQUASH???
654  - submodule: implement `module_list` as a builtin helper
655  - Merge 'hv/submodule-config' to 'sb/submodule-helper'
657  The infrastructure to rewrite "git submodule" in C is being built
658  incrementally.  Let's polish these early parts well enough and make
659  them graduate to 'next' and 'master', so that the more involved
660  follow-up can start cooking on a solid ground.
663 * ad/cygwin-wants-rename (2015-08-07) 1 commit
664  - config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
666  Will hold.
667  ($gmane/275680).
670 * kn/for-each-tag-branch (2015-08-03) 11 commits
671   (merged to 'next' on 2015-08-03 at d9e94b9)
672  + for-each-ref: add '--contains' option
673  + ref-filter: implement '--contains' option
674  + parse-options.h: add macros for '--contains' option
675  + parse-option: rename parse_opt_with_commit()
676  + for-each-ref: add '--merged' and '--no-merged' options
677  + ref-filter: implement '--merged' and '--no-merged' options
678  + ref-filter: add parse_opt_merge_filter()
679  + for-each-ref: add '--points-at' option
680  + ref-filter: implement '--points-at' option
681  + tag: libify parse_opt_points_at()
682  + t6302: for-each-ref tests for ref-filter APIs
683  (this branch is used by kn/for-each-tag.)
685  Originally merged to 'next' on 2015-07-15
687  Some features from "git tag -l" and "git branch -l" have been made
688  available to "git for-each-ref" so that eventually the unified
689  implementation can be shared across all three, in a follow-up
690  series or two.
693 * jc/rerere (2015-07-24) 21 commits
694   (merged to 'next' on 2015-08-26 at 8ae15ef)
695  + rerere: un-nest merge() further
696  + rerere: use "struct rerere_id" instead of "char *" for conflict ID
697  + rerere: call conflict-ids IDs
698  + rerere: further clarify do_rerere_one_path()
699  + rerere: further de-dent do_plain_rerere()
700  + rerere: refactor "replay" part of do_plain_rerere()
701  + rerere: explain the remainder
702  + rerere: explain "rerere forget" codepath
703  + rerere: explain the primary codepath
704  + rerere: explain MERGE_RR management helpers
705  + rerere: fix benign off-by-one non-bug and clarify code
706  + rerere: explain the rerere I/O abstraction
707  + rerere: do not leak mmfile[] for a path with multiple stage #1 entries
708  + rerere: stop looping unnecessarily
709  + rerere: drop want_sp parameter from is_cmarker()
710  + rerere: report autoupdated paths only after actually updating them
711  + rerere: write out each record of MERGE_RR in one go
712  + rerere: lift PATH_MAX limitation
713  + rerere: plug conflict ID leaks
714  + rerere: handle conflicts with multiple stage #1 entries
715  + rerere: fix an off-by-one non-bug
716  (this branch is used by jc/rerere-multi.)
718  Code clean-up and minor fixes.
720  Will merge to 'master'.
723 * jc/rerere-multi (2015-07-30) 7 commits
724  . t4200: rerere a merge with two identical conflicts
725  . WIP
726  . rerere: allow multiple variants to exist
727  - rerere: delay the recording of preimage
728  - rerere: handle leftover rr-cache/$ID directory and postimage files
729  - rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
730  - rerere: split conflict ID further
731  (this branch uses jc/rerere.)
733  "git rerere" can encounter two or more files with the same conflict
734  signature that have to be resolved in different ways, but there was
735  no way to record these separate resolutions.
738 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
739   (merged to 'next' on 2015-08-03 at a52c2b2)
740  + merge: drop 'git merge <message> HEAD <commit>' syntax
742  Originally merged to 'next' on 2015-05-28
744  Stop supporting "git merge <message> HEAD <commit>" syntax that
745  has been deprecated since October 2007.
747  Will keep in 'next' during the 2.6 cycle.