What's cooking (2015/05 #08)
[alt-git.git] / whats-cooking.txt
blob13c0366ee8b51261e700c612261d26b8248dc982
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (May 2015, #08; Fri, 29)
4 X-master-at: 77bd3ea9f54f1584147b594abc04c26ca516d987
5 X-next-at: 5f4350e90f9ad5b056aa42fe83b9262c702a5306
7 What's cooking in git.git (May 2015, #08; Fri, 29)
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 You can find the changes described here in the integration branches
15 of the repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [New Topics]
22 * jc/diff-ws-error-highlight (2015-05-26) 4 commits
23  - diff.c: --ws-error-highlight=<kind> option
24  - diff.c: add emit_del_line() and emit_context_line()
25  - t4015: separate common setup and per-test expectation
26  - t4015: modernise style
28  Allow whitespace breakages in deleted and context lines to be also
29  painted in the output.
31  Will merge to 'next'.
34 * jk/clone-dissociate (2015-05-27) 2 commits
35  - clone: reorder --dissociate and --reference options
36  - clone: use OPT_STRING_LIST for --reference
38  Code clean-up.
40  Will merge to 'next'.
43 * jk/color-diff-plain-is-context (2015-05-27) 2 commits
44  - diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
45  - diff: accept color.diff.context as a synonym for "plain"
47  "color.diff.plain" was a misnomer; give it 'color.diff.context' as
48  a more logical synonym.
50  Will merge to 'next'.
53 * jk/diagnose-config-mmap-failure (2015-05-28) 5 commits
54  - xmmap(): drop "Out of memory?"
55  - config.c: rewrite ENODEV into EISDIR when mmap fails
56  - config.c: avoid xmmap error messages
57  - config.c: fix mmap leak when writing config
58  - read-cache.c: drop PROT_WRITE from mmap of index
60  The configuration reader/writer uses mmap(2) interface to access
61  the files; when we find a directory, it barfed with "Out of memory?".
63  Will merge to 'next'.
66 * mh/verify-lock-error-report (2015-05-27) 5 commits
67  - ref_transaction_commit(): do not capitalize error messages
68  - verify_lock(): do not capitalize error messages
69  - verify_lock(): report errors via a strbuf
70  - verify_lock(): on errors, let the caller unlock the lock
71  - verify_lock(): return 0/-1 rather than struct ref_lock *
73  Bring consistency to error reporting mechanism used in "refs" API.
75  Will merge to 'next'.
78 * mt/p4-depotFile-at-version (2015-05-27) 1 commit
79  - p4: retrieve the right revision of the file in UTF-16 codepath
81  Will merge to 'next'.
84 * sb/glossary-submodule (2015-05-29) 1 commit
85  - glossary: add "remote", "submodule", "superproject"
87  Will merge to 'next'.
90 * sg/config-name-only (2015-05-28) 3 commits
91  - completion: use new 'git config' options to reliably list variable names
92  - SQUASH
93  - config: add options to list only variable names
95  "git config --list" output was hard to parse when values consist of
96  multiple lines.  Introduce a way to show only the keys.
99 * sg/merge-summary-config (2015-05-28) 1 commit
100  - Documentation: include 'merge.branchdesc' for merge and config as well
103 * jc/push-tags-also (2015-05-29) 1 commit
104  - push --tags: push tags *in addition to* other stuff
107 * jk/die-on-bogus-worktree-late (2015-05-29) 1 commit
108  - setup_git_directory: delay core.bare/core.worktree errors
111 * jk/make-fix-dependencies (2015-05-29) 3 commits
112  - Makefile: silence perl/PM.stamp recipe
113  - Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
114  - Makefile: drop dependency between git-instaweb and gitweb
116 --------------------------------------------------
117 [Stalled]
119 * kk/log-merges-config (2015-04-21) 5 commits
120  - bash-completion: add support for git-log --merges= and log.merges
121  - t4202-log: add tests for --merges=
122  - Documentation: add git-log --merges= option and log.merges config. var
123  - log: honor log.merges= option
124  - revision: add --merges={show|only|hide} option
126  "git log" (but not other commands in the "log" family) learned to
127  pay attention to the log.merges configuration variable that can be
128  set to "show" (the normal behaviour), "only" (hide non-merge
129  commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
130  can be used to override the setting from the command line.
132  The documentation may need to be updated once more ($gmane/267250).
133  Waiting for a reroll.
136 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
137  - t/lib-git-svn: check same httpd module dirs as lib-httpd
138  - t/lib-httpd: load mod_unixd
140  This is the first two commits in a three-patch series $gmane/266962
141  Will be rerolled.
142  with updated log message ($gmane/268061).
145 * mh/numparse (2015-03-19) 14 commits
146  - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
147  - diff_opt_parse(): use convert_i() when handling "-l<num>"
148  - opt_arg(): simplify pointer handling
149  - opt_arg(): report errors parsing option values
150  - opt_arg(): use convert_i() in implementation
151  - opt_arg(): val is always non-NULL
152  - builtin_diff(): detect errors when parsing --unified argument
153  - handle_revision_opt(): use convert_ui() when handling "--abbrev="
154  - strtoul_ui(), strtol_i(): remove functions
155  - handle_revision_opt(): use convert_i() when handling "-<digit>"
156  - handle_revision_opt(): use skip_prefix() in many places
157  - write_subdirectory(): use convert_ui() for parsing mode
158  - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
159  - numparse: new module for parsing integral numbers
161  Many codepaths use unchecked use of strtol() and friends (or even
162  worse, atoi()).  Introduce a set of wrappers that try to be more
163  careful.
165  Will be rerolled.
166  ($gmane/268058).
169 * tf/gitweb-project-listing (2015-03-19) 5 commits
170  - gitweb: make category headings into links when they are directories
171  - gitweb: optionally set project category from its pathname
172  - gitweb: add a link under the search box to clear a project filter
173  - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
174  - gitweb: fix typo in man page
176  Update gitweb to make it more pleasant to deal with a hierarchical
177  forest of repositories.
179  Any comments from those who use or have their own code in Gitweb?
182 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
183  - "-" and "@{-1}" on various programs
185  Lose special case code to make a lone dash "-" mean the previous
186  branch aka "@{-1}" from a handful subcommands, and instead support
187  the notation throughout the system by reimplementing it at the
188  revisions layer.
190  Needs tests, documentation updates, etc.  Also does only a half-way
191  job dealing with range notation, which needs to be fixed before the
192  series goes anywhere.
195 * nd/list-files (2015-02-09) 21 commits
196  - t3080: tests for git-list-files
197  - list-files: -M aka diff-cached
198  - list-files -F: show submodules with the new indicator '&'
199  - list-files: add -F/--classify
200  - list-files: show directories as well as files
201  - list-files: do not show duplicate cached entries
202  - list-files: sort output and remove duplicates
203  - list-files: add -t back
204  - list-files: add -1 short for --no-column
205  - list-files: add -R/--recursive short for --max-depth=-1
206  - list-files: -u does not imply showing stages
207  - list-files: make alias 'ls' default to 'list-files'
208  - list-files: a user friendly version of ls-files and more
209  - ls-files: support --max-depth
210  - ls-files: add --column
211  - ls-files: add --color to highlight file names
212  - ls-files: buffer full item in strbuf before printing
213  - ls_colors.c: highlight submodules like directories
214  - ls_colors.c: add a function to color a file name
215  - ls_colors.c: parse color.ls.* from config file
216  - ls_colors.c: add $LS_COLORS parsing code
218  A new "git list-files" Porcelain command, "ls-files" with bells and
219  whistles.
221  Reroll to base on wt-status work ($gmane/265142) has seen some
222  positive discussions.
224  Waiting for a further polished reroll ($gmane/265534).
227 * js/fsck-opt (2015-01-21) 19 commits
228  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
229  - fsck: git receive-pack: support excluding objects from fsck'ing
230  - fsck: introduce `git fsck --quick`
231  - fsck: support demoting errors to warnings
232  - fsck: document the new receive.fsck.* options
233  - fsck: allow upgrading fsck warnings to errors
234  - fsck: optionally ignore specific fsck issues completely
235  - fsck: disallow demoting grave fsck errors to warnings
236  - fsck: add a simple test for receive.fsck.*
237  - fsck: make fsck_tag() warn-friendly
238  - fsck: handle multiple authors in commits specially
239  - fsck: make fsck_commit() warn-friendly
240  - fsck: make fsck_ident() warn-friendly
241  - fsck: report the ID of the error/warning
242  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
243  - fsck: offer a function to demote fsck errors to warnings
244  - fsck: provide a function to parse fsck message IDs
245  - fsck: introduce identifiers for fsck messages
246  - fsck: introduce fsck options
248  "fsck.warnings = <list of error tokens>" I suggested turned out to
249  be an unpopular choice (sorry Dscho).
251  Expecting a reroll.
254 * nd/pathspec-strip-fix (2015-04-18) 1 commit
255  - pathspec: adjust prefixlen after striping trailing slash
257  Does not quite fix ($gmane/267614).
258  Will discard.
261 * jc/diff-b-m (2015-02-23) 5 commits
262  . WIPWIP
263  . WIP: diff-b-m
264  - diffcore-rename: allow easier debugging
265  - diffcore-rename.c: add locate_rename_src()
266  - diffcore-break: allow debugging
268  "git diff -B -M" produced incorrect patch when the postimage of a
269  completely rewritten file is similar to the preimage of a removed
270  file; such a resulting file must not be expressed as a rename from
271  other place.
273  The fix in this patch is broken, unfortunately.
276 * pw/remote-set-url-fetch (2014-11-26) 1 commit
277  - remote: add --fetch and --both options to set-url
279  Expecting a reroll.
282 * tr/remerge-diff (2014-11-10) 9 commits
283  - t4213: avoid "|" in sed regexp
284  - log --remerge-diff: show what the conflict resolution changed
285  - name-hash: allow dir hashing even when !ignore_case
286  - merge-recursive: allow storing conflict hunks in index
287  - merge_diff_mode: fold all merge diff variants into an enum
288  - combine-diff: do not pass revs->dense_combined_merges redundantly
289  - merge-recursive: -Xindex-only to leave worktree unchanged
290  - merge-recursive: internal flag to avoid touching the worktree
291  - merge-recursive: remove dead conditional in update_stages()
293  "log -p" output learns a new way to let users inspect a merge
294  commit by showing the differences between the automerged result
295  with conflicts the person who recorded the merge would have seen
296  and the final conflict resolution that was recorded in the merge.
298  Waiting for a reroll ($gmane/256591).
301 * hv/submodule-config (2014-11-11) 4 commits
302  - do not die on error of parsing fetchrecursesubmodules option
303  - use new config API for worktree configurations of submodules
304  - extract functions for submodule config set and lookup
305  - implement submodule config cache for lookup of submodule names
307  Kicked back to 'pu' per request ($gmane/255610).
310 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
311  - perf-lib: add test_perf_cleanup target
312  - perf-lib: split starting the test from the execution
314  Add test_perf_cleanup shell function to the perf suite, that allows
315  the script writers to define a test with a clean-up action.
317  Will hold.
320 * jc/show-branch (2014-03-24) 5 commits
321  - show-branch: use commit slab to represent bitflags of arbitrary width
322  - show-branch.c: remove "all_mask"
323  - show-branch.c: abstract out "flags" operation
324  - show-branch.c: lift all_mask/all_revs to a global static
325  - show-branch.c: update comment style
327  Waiting for the final step to lift the hard-limit.
329 --------------------------------------------------
330 [Cooking]
332 * ah/send-email-sendmail-alias (2015-05-27) 2 commits
333  - t9001: write $HOME/, not ~/, to help shells without tilde expansion
334  - send-email: add sendmail email aliases format
336  "git send-email" learned the alias file format used by the sendmail
337  program (in an abbreviated form).
339  Will merge to 'next'.
342 * bc/object-id (2015-05-25) 56 commits
343   (merged to 'next' on 2015-05-26 at 8d9f645)
344  + struct ref_lock: convert old_sha1 member to object_id
345  + warn_if_dangling_symref(): convert local variable "junk" to object_id
346  + each_ref_fn_adapter(): remove adapter
347  + rev_list_insert_ref(): remove unneeded arguments
348  + rev_list_insert_ref_oid(): new function, taking an object_oid
349  + mark_complete(): remove unneeded arguments
350  + mark_complete_oid(): new function, taking an object_oid
351  + clear_marks(): rewrite to take an object_id argument
352  + mark_complete(): rewrite to take an object_id argument
353  + send_ref(): convert local variable "peeled" to object_id
354  + upload-pack: rewrite functions to take object_id arguments
355  + find_symref(): convert local variable "unused" to object_id
356  + find_symref(): rewrite to take an object_id argument
357  + write_one_ref(): rewrite to take an object_id argument
358  + write_refs_to_temp_dir(): convert local variable sha1 to object_id
359  + submodule: rewrite to take an object_id argument
360  + shallow: rewrite functions to take object_id arguments
361  + handle_one_ref(): rewrite to take an object_id argument
362  + add_info_ref(): rewrite to take an object_id argument
363  + handle_one_reflog(): rewrite to take an object_id argument
364  + register_replace_ref(): rewrite to take an object_id argument
365  + remote: rewrite functions to take object_id arguments
366  + add_one_ref(): rewrite to take an object_id argument
367  + string_list_add_one_ref(): rewrite to take an object_id argument
368  + add_ref_decoration(): convert local variable original_sha1 to object_id
369  + add_ref_decoration(): rewrite to take an object_id argument
370  + show_head_ref(): convert local variable "unused" to object_id
371  + http-backend: rewrite to take an object_id argument
372  + append_similar_ref(): rewrite to take an object_id argument
373  + builtin/show-ref: rewrite to take an object_id argument
374  + show_ref(): convert local variable peeled to object_id
375  + builtin/show-ref: rewrite to use object_id
376  + fsck: change functions to use object_id
377  + cmd_show_branch(): fix error message
378  + builtin/show-branch: rewrite functions to work with object_id
379  + append_one_rev(): rewrite to work with object_id
380  + builtin/show-branch: rewrite functions to take object_id arguments
381  + append_matching_ref(): rewrite to take an object_id argument
382  + show_reference(): rewrite to take an object_id argument
383  + builtin/remote: rewrite functions to take object_id arguments
384  + add_branch_for_removal(): don't set "util" field of string_list entries
385  + add_branch_for_removal(): rewrite to take an object_id argument
386  + builtin/reflog: rewrite ref functions to take an object_id argument
387  + show_ref_cb(): rewrite to take an object_id argument
388  + builtin/pack-objects: rewrite to take an object_id argument
389  + name_ref(): rewrite to take an object_id argument
390  + grab_single_ref(): rewrite to take an object_id argument
391  + builtin/fetch: rewrite to take an object_id argument
392  + get_name(): rewrite to take an object_id argument
393  + add_pending_uninteresting_ref(): rewrite to take an object_id argument
394  + append_ref(): rewrite to take an object_id argument
395  + register_ref(): rewrite to take an object_id argument
396  + handle_one_ref(): rewrite to take an object_id argument
397  + builtin/rev-parse: rewrite to take an object_id argument
398  + each_ref_fn: change to take an object_id parameter
399  + refs: convert struct ref_entry to use struct object_id
401  for_each_ref() callback functions were taught to name the objects
402  not with "unsigned char sha1[20]" but with "struct object_id".
404  Will merge to 'master'.
407 * da/mergetool-winmerge (2015-05-20) 2 commits
408   (merged to 'next' on 2015-05-26 at d6333e9)
409  + mergetools: add winmerge as a builtin tool
410  + mergetool--lib: set IFS for difftool and mergetool
412  "git mergetool" learned to drive WinMerge as a backend.
414  Will merge to 'master'.
417 * jk/http-backend-deadlock-2.2 (2015-05-25) 3 commits
418  + http-backend: spool ref negotiation requests to buffer
419  + t5551: factor out tag creation
420  + http-backend: fix die recursion with custom handler
421  (this branch is used by jk/http-backend-deadlock and jk/http-backend-deadlock-2.3.)
423  Communication between the HTTP server and http_backend process can
424  lead to a dead-lock when relaying a large ref negotiation request.
425  Diagnose the situation better, and mitigate it by reading such a
426  request first into core (to a reasonable limit).
428  This was wiggled back to apply to the 2.2 maintenance track
429  (original was for 2.4).
431  Will merge to 'master'.
434 * jk/http-backend-deadlock-2.3 (2015-05-25) 1 commit
435  + Merge branch 'jk/http-backend-deadlock-2.2' into jk/http-backend-deadlock-2.3
436  (this branch is used by jk/http-backend-deadlock; uses jk/http-backend-deadlock-2.2.)
438  Same for 2.3 maintenance track.
440  Will merge to 'master'.
443 * jk/stash-options (2015-05-20) 2 commits
444   (merged to 'next' on 2015-05-26 at 5dcb026)
445  + stash: recognize "--help" for subcommands
446  + stash: complain about unknown flags
448  Make "git stash something --help" error out, so that users can
449  safely say "git stash drop --help".
451  Will merge to 'master'.
454 * mc/commit-doc-grammofix (2015-05-19) 1 commit
455   (merged to 'next' on 2015-05-26 at 9d76e3b)
456  + Documentation/git-commit: grammofix
458  Will merge to 'master'.
461 * rs/janitorial (2015-05-20) 3 commits
462   (merged to 'next' on 2015-05-26 at 9d5aee4)
463  + dir: remove unused variable sb
464  + clean: remove unused variable buf
465  + use file_exists() to check if a file exists in the worktree
467  Will merge to 'master'.
470 * fm/fetch-raw-sha1 (2015-05-22) 3 commits
471   (merged to 'next' on 2015-05-26 at dc3f1b3)
472  + upload-pack: optionally allow fetching reachable sha1
473  + upload-pack: prepare to extend allow-tip-sha1-in-want
474  + config.txt: clarify allowTipSHA1InWant with camelCase
476  "git upload-pack" that serves "git fetch" can be told to serve
477  commits that are not at the tip of any ref as long as they are
478  reachable from a ref with uploadpack.allowReachableSHA1InWant
479  configuration variable.
481  Will merge to 'master'.
484 * jc/commit-slab (2015-05-22) 1 commit
485  - commit-slab: introduce slabname##_peek() function
487  Memory use reduction when commit-slab facility is used to annotate
488  sparsely (which is not recommended in the first place).
491 * mm/rebase-i-post-rewrite-exec (2015-05-22) 3 commits
492   (merged to 'next' on 2015-05-26 at 8ddaab1)
493  + t5407: use <<- to align the expected output
494  + rebase -i: fix post-rewrite hook with failed exec command
495  + rebase -i: demonstrate incorrect behavior of post-rewrite
497  "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
498  when it was told to stop sequencing with 'exec' insn).
500  Will merge to 'master'.
503 * sb/submodule-doc-intro (2015-05-28) 1 commit
504  - submodule doc: reorder introductory paragraphs
506  Will merge to 'next'.
509 * sb/test-bitmap-free-at-end (2015-05-22) 1 commit
510   (merged to 'next' on 2015-05-26 at 1014ebf)
511  + test_bitmap_walk: free bitmap with bitmap_free
513  Will merge to 'master'.
516 * dt/cat-file-follow-symlinks (2015-05-20) 3 commits
517   (merged to 'next' on 2015-05-26 at 7ae52d4)
518  + cat-file: add --follow-symlinks to --batch
519  + sha1_name: get_sha1_with_context learns to follow symlinks
520  + tree-walk: learn get_tree_entry_follow_symlinks
522  "git cat-file --batch(-check)" learned the "--follow-symlinks"
523  option that follows an in-tree symbolic links when asked about an
524  object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
525  Documentation/RelNotes/2.5.0.txt.  With the new option, the command
526  behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
527  input instead.
529  Will merge to 'master'.
532 * dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
533   (merged to 'next' on 2015-05-26 at 9b24d71)
534  + clean: only lstat files in pathspec
536  "git clean pathspec..." tried to lstat(2) and complain even for
537  paths outside the given pathspec.
539  Will merge to 'master'.
542 * jh/filter-empty-contents (2015-05-18) 1 commit
543   (merged to 'next' on 2015-05-26 at 9cad398)
544  + sha1_file: pass empty buffer to index empty file
546  The clean/smudge interface did not work well when filtering an
547  empty contents (failed and then passed the empty input through).
548  It can be argued that a filter that produces anything but empty for
549  an empty input is nonsense, but if the user wants to do strange
550  things, then why not?
552  Will merge to 'master'.
555 * jk/http-backend-deadlock (2015-05-25) 1 commit
556   (merged to 'next' on 2015-05-26 at 9f3bd8a)
557  + Merge branch 'jk/http-backend-deadlock-2.3' into jk/http-backend-deadlock
558  (this branch uses jk/http-backend-deadlock-2.2 and jk/http-backend-deadlock-2.3.)
560  Communication between the HTTP server and http_backend process can
561  lead to a dead-lock when relaying a large ref negotiation request.
562  Diagnose the situation better, and mitigate it by reading such a
563  request first into core (to a reasonable limit).
565  Will merge to 'master'.
568 * mm/log-format-raw-doc (2015-05-20) 2 commits
569   (merged to 'next' on 2015-05-26 at 97e2c9d)
570  + Documentation/log: clarify sha1 non-abbreviation in log --raw
571  + Documentation/log: clarify what --raw means
573  Clarify that "log --raw" and "log --format=raw" are unrelated
574  concepts.
576  Will merge to 'master'.
579 * sg/help-group (2015-05-21) 5 commits
580   (merged to 'next' on 2015-05-26 at 2749912)
581  + help: respect new common command grouping
582  + command-list.txt: drop the "common" tag
583  + generate-cmdlist: parse common group commands
584  + command-list.txt: add the common groups block
585  + command-list: prepare machinery for upcoming "common groups" section
587  Group list of commands shown by "git help" along the workflow
588  elements to help early learners.
590  Will merge to 'master'.
593 * ld/p4-editor-multi-words (2015-05-26) 3 commits
594   (merged to 'next' on 2015-05-28 at a368a47)
595  + git-p4: tests: use test-chmtime in place of touch
596  + git-p4: fix handling of multi-word P4EDITOR
597  + git-p4: add failing test for P4EDITOR handling
599  Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
600  command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
601  did not let the shell interpolate the contents of the environment
602  variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
603  Make it in line with the rest of Git, as well as with Perforce.
605  Will merge to 'master'.
608 * pt/pull-tests (2015-05-29) 8 commits
609  - t5520: check reflog action in fast-forward merge
610  - t5521: test --dry-run does not make any changes
611  - t5520: test --rebase failure on unborn branch with index
612  - t5520: test --rebase with multiple branches
613  - t5520: test work tree fast-forward when fetch updates head
614  - t5520: test for failure if index has unresolved entries
615  - t5520: test no merge candidates cases
616  - t5520: prevent field splitting in content comparisons
618  Add more test coverage to "git pull".
620  Will merge to 'next'.
623 * jc/clone-bundle (2015-04-30) 1 commit
624  - repack: optionally create a clone.bundle
626  Still an early WIP
629 * jk/at-push-sha1 (2015-05-22) 16 commits
630   (merged to 'next' on 2015-05-26 at d9d342f)
631  + for-each-ref: accept "%(push)" format
632  + for-each-ref: use skip_prefix instead of starts_with
633  + sha1_name: implement @{push} shorthand
634  + sha1_name: refactor interpret_upstream_mark
635  + sha1_name: refactor upstream_mark
636  + remote.c: add branch_get_push
637  + remote.c: return upstream name from stat_tracking_info
638  + remote.c: untangle error logic in branch_get_upstream
639  + remote.c: report specific errors from branch_get_upstream
640  + remote.c: introduce branch_get_upstream helper
641  + remote.c: hoist read_config into remote_get_1
642  + remote.c: provide per-branch pushremote name
643  + remote.c: hoist branch.*.remote lookup out of remote_get_1
644  + remote.c: drop "remote" pointer from "struct branch"
645  + remote.c: refactor setup of branch->merge list
646  + remote.c: drop default_remote_name variable
648  Introduce <branch>@{push} short-hand to denote the remote-tracking
649  branch that tracks the branch at the remote the <branch> would be
650  pushed to.
652  Will merge to 'master'.
655 * ee/clean-remove-dirs (2015-04-26) 5 commits
656  - clean: improve performance when removing lots of directories
657  - p7300: add performance tests for clean
658  - t7300: add tests to document behavior of clean and nested git
659  - setup: sanity check file size in read_gitfile_gently
660  - setup: add gentle version of read_gitfile
662  Replace "is this subdirectory a separate repository that should not
663  be touched?" check "git clean" does by checking if it has .git/HEAD
664  using the submodule-related code with a more optimized check.
666  Waiting for a reroll.
669 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
670   (merged to 'next' on 2015-05-28 at 6bfd8b9)
671  + merge: drop 'git merge <message> HEAD <commit>' syntax
673  Stop supporting "git merge <message> HEAD <commit>" syntax that
674  has been deprecated since October 2007.
676  Will keep in 'next' during the 2.5 cycle.
679 * ah/usage-strings (2015-05-03) 1 commit
680   (merged to 'next' on 2015-05-28 at 5f4350e)
681  + blame, log: format usage strings similarly to those in documentation
683  A few usage string updates.
685  Will merge to 'master'.