1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (May 2015, #07; Tue, 26)
4 X-master-at: fae46aa0ae5318bbb20f0ef871721bf49e292cea
5 X-next-at: 37f085bb52bb507d786c36ae50951e460f4f15c7
7 What's cooking in git.git (May 2015, #07; Tue, 26)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
14 The "untracked cache" series is in 'master' now. I do not use it
15 personally, but it is meant to make life easier for those with large
16 amount of untracked cruft in their working trees. Please try it out
17 and report successes (and of course breakages, too).
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 [Graduated to "master"]
27 * jk/rerere-forget-check-enabled (2015-05-14) 1 commit
28 (merged to 'next' on 2015-05-19 at bfe67dc)
29 + rerere: exit silently on "forget" when rerere is disabled
31 "git rerere forget" in a repository without rerere enabled gave a
32 cryptic error message; it should be a silent no-op instead.
35 * nd/untracked-cache (2015-03-12) 24 commits
36 (merged to 'next' on 2015-05-19 at 26e619b)
37 + git-status.txt: advertisement for untracked cache
38 + untracked cache: guard and disable on system changes
39 + mingw32: add uname()
40 + t7063: tests for untracked cache
41 + update-index: test the system before enabling untracked cache
42 + update-index: manually enable or disable untracked cache
43 + status: enable untracked cache
44 + untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
45 + untracked cache: mark index dirty if untracked cache is updated
46 + untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
47 + untracked cache: avoid racy timestamps
48 + read-cache.c: split racy stat test to a separate function
49 + untracked cache: invalidate at index addition or removal
50 + untracked cache: load from UNTR index extension
51 + untracked cache: save to an index extension
52 + ewah: add convenient wrapper ewah_serialize_strbuf()
53 + untracked cache: don't open non-existent .gitignore
54 + untracked cache: mark what dirs should be recursed/saved
55 + untracked cache: record/validate dir mtime and reuse cached output
56 + untracked cache: make a wrapper around {open,read,close}dir()
57 + untracked cache: invalidate dirs recursively if .gitignore changes
58 + untracked cache: initial untracked cache validation
59 + untracked cache: record .gitignore information and dir hierarchy
60 + dir.c: optionally compute sha-1 of a .gitignore file
62 Teach the index to optionally remember already seen untracked files
63 to speed up "git status" in a working tree with tons of cruft.
66 * pt/pull-ff-vs-merge-ff (2015-05-18) 2 commits
67 (merged to 'next' on 2015-05-20 at 064a082)
68 + pull: parse pull.ff as a bool or string
69 + pull: make pull.ff=true override merge.ff
71 The pull.ff configuration was supposed to override the merge.ff
72 configuration, but it didn't.
75 * pt/pull-log-n (2015-05-18) 1 commit
76 (merged to 'next' on 2015-05-20 at db6ce78)
77 + pull: handle --log=<n>
79 "git pull --log" and "git pull --no-log" worked as expected, but
80 "git pull --log=20" did not.
83 * rs/plug-leak-in-pack-bitmaps (2015-05-19) 1 commit
84 (merged to 'next' on 2015-05-20 at b70f647)
85 + pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps
87 The code to read pack-bitmap wanted to allocate a few hundred
88 pointers to a structure, but by mistake allocated and leaked memory
89 enough to hold that many actual structures. Correct the allocation
90 size and also have it on stack, as it is small enough.
92 --------------------------------------------------
95 * ah/send-email-sendmail-alias (2015-05-25) 2 commits
96 - t9001: write $HOME/, not ~/, to help shells without tilde expansion
97 - send-email: add sendmail email aliases format
99 "git send-email" learned the alias file format used by the sendmail
100 program (in an abbreviated form).
102 Reroll coming? What's queued is good enough?
105 * bc/object-id (2015-05-25) 56 commits
106 (merged to 'next' on 2015-05-26 at 8d9f645)
107 + struct ref_lock: convert old_sha1 member to object_id
108 + warn_if_dangling_symref(): convert local variable "junk" to object_id
109 + each_ref_fn_adapter(): remove adapter
110 + rev_list_insert_ref(): remove unneeded arguments
111 + rev_list_insert_ref_oid(): new function, taking an object_oid
112 + mark_complete(): remove unneeded arguments
113 + mark_complete_oid(): new function, taking an object_oid
114 + clear_marks(): rewrite to take an object_id argument
115 + mark_complete(): rewrite to take an object_id argument
116 + send_ref(): convert local variable "peeled" to object_id
117 + upload-pack: rewrite functions to take object_id arguments
118 + find_symref(): convert local variable "unused" to object_id
119 + find_symref(): rewrite to take an object_id argument
120 + write_one_ref(): rewrite to take an object_id argument
121 + write_refs_to_temp_dir(): convert local variable sha1 to object_id
122 + submodule: rewrite to take an object_id argument
123 + shallow: rewrite functions to take object_id arguments
124 + handle_one_ref(): rewrite to take an object_id argument
125 + add_info_ref(): rewrite to take an object_id argument
126 + handle_one_reflog(): rewrite to take an object_id argument
127 + register_replace_ref(): rewrite to take an object_id argument
128 + remote: rewrite functions to take object_id arguments
129 + add_one_ref(): rewrite to take an object_id argument
130 + string_list_add_one_ref(): rewrite to take an object_id argument
131 + add_ref_decoration(): convert local variable original_sha1 to object_id
132 + add_ref_decoration(): rewrite to take an object_id argument
133 + show_head_ref(): convert local variable "unused" to object_id
134 + http-backend: rewrite to take an object_id argument
135 + append_similar_ref(): rewrite to take an object_id argument
136 + builtin/show-ref: rewrite to take an object_id argument
137 + show_ref(): convert local variable peeled to object_id
138 + builtin/show-ref: rewrite to use object_id
139 + fsck: change functions to use object_id
140 + cmd_show_branch(): fix error message
141 + builtin/show-branch: rewrite functions to work with object_id
142 + append_one_rev(): rewrite to work with object_id
143 + builtin/show-branch: rewrite functions to take object_id arguments
144 + append_matching_ref(): rewrite to take an object_id argument
145 + show_reference(): rewrite to take an object_id argument
146 + builtin/remote: rewrite functions to take object_id arguments
147 + add_branch_for_removal(): don't set "util" field of string_list entries
148 + add_branch_for_removal(): rewrite to take an object_id argument
149 + builtin/reflog: rewrite ref functions to take an object_id argument
150 + show_ref_cb(): rewrite to take an object_id argument
151 + builtin/pack-objects: rewrite to take an object_id argument
152 + name_ref(): rewrite to take an object_id argument
153 + grab_single_ref(): rewrite to take an object_id argument
154 + builtin/fetch: rewrite to take an object_id argument
155 + get_name(): rewrite to take an object_id argument
156 + add_pending_uninteresting_ref(): rewrite to take an object_id argument
157 + append_ref(): rewrite to take an object_id argument
158 + register_ref(): rewrite to take an object_id argument
159 + handle_one_ref(): rewrite to take an object_id argument
160 + builtin/rev-parse: rewrite to take an object_id argument
161 + each_ref_fn: change to take an object_id parameter
162 + refs: convert struct ref_entry to use struct object_id
164 for_each_ref() callback functions were taught to name the objects
165 not with "unsigned char sha1[20]" but with "struct object_id".
167 Will merge to 'master'.
170 * jc/diff-ws-check-deleted (2015-05-26) 4 commits
171 - diff.c: --ws-check-deleted option
172 - diff.c: add emit_del_line() and update callers of emit_line_0()
173 - t4015: separate common setup and per-test expectation
174 - t4015: modernise style
176 Allow whitespace breakages in 'deleted' lines to be also painted
179 --------------------------------------------------
182 * kk/log-merges-config (2015-04-21) 5 commits
183 - bash-completion: add support for git-log --merges= and log.merges
184 - t4202-log: add tests for --merges=
185 - Documentation: add git-log --merges= option and log.merges config. var
186 - log: honor log.merges= option
187 - revision: add --merges={show|only|hide} option
189 "git log" (but not other commands in the "log" family) learned to
190 pay attention to the log.merges configuration variable that can be
191 set to "show" (the normal behaviour), "only" (hide non-merge
192 commits), or "hide" (hide merge commits). --merges=(show|only|hide)
193 can be used to override the setting from the command line.
195 The documentation may need to be updated once more ($gmane/267250).
196 Waiting for a reroll.
199 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
200 - t/lib-git-svn: check same httpd module dirs as lib-httpd
201 - t/lib-httpd: load mod_unixd
203 This is the first two commits in a three-patch series $gmane/266962
205 with updated log message ($gmane/268061).
208 * mh/numparse (2015-03-19) 14 commits
209 - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
210 - diff_opt_parse(): use convert_i() when handling "-l<num>"
211 - opt_arg(): simplify pointer handling
212 - opt_arg(): report errors parsing option values
213 - opt_arg(): use convert_i() in implementation
214 - opt_arg(): val is always non-NULL
215 - builtin_diff(): detect errors when parsing --unified argument
216 - handle_revision_opt(): use convert_ui() when handling "--abbrev="
217 - strtoul_ui(), strtol_i(): remove functions
218 - handle_revision_opt(): use convert_i() when handling "-<digit>"
219 - handle_revision_opt(): use skip_prefix() in many places
220 - write_subdirectory(): use convert_ui() for parsing mode
221 - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
222 - numparse: new module for parsing integral numbers
224 Many codepaths use unchecked use of strtol() and friends (or even
225 worse, atoi()). Introduce a set of wrappers that try to be more
232 * tf/gitweb-project-listing (2015-03-19) 5 commits
233 - gitweb: make category headings into links when they are directories
234 - gitweb: optionally set project category from its pathname
235 - gitweb: add a link under the search box to clear a project filter
236 - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
237 - gitweb: fix typo in man page
239 Update gitweb to make it more pleasant to deal with a hierarchical
240 forest of repositories.
242 Any comments from those who use or have their own code in Gitweb?
245 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
246 - "-" and "@{-1}" on various programs
248 Lose special case code to make a lone dash "-" mean the previous
249 branch aka "@{-1}" from a handful subcommands, and instead support
250 the notation throughout the system by reimplementing it at the
253 Needs tests, documentation updates, etc. Also does only a half-way
254 job dealing with range notation, which needs to be fixed before the
255 series goes anywhere.
258 * nd/list-files (2015-02-09) 21 commits
259 - t3080: tests for git-list-files
260 - list-files: -M aka diff-cached
261 - list-files -F: show submodules with the new indicator '&'
262 - list-files: add -F/--classify
263 - list-files: show directories as well as files
264 - list-files: do not show duplicate cached entries
265 - list-files: sort output and remove duplicates
266 - list-files: add -t back
267 - list-files: add -1 short for --no-column
268 - list-files: add -R/--recursive short for --max-depth=-1
269 - list-files: -u does not imply showing stages
270 - list-files: make alias 'ls' default to 'list-files'
271 - list-files: a user friendly version of ls-files and more
272 - ls-files: support --max-depth
273 - ls-files: add --column
274 - ls-files: add --color to highlight file names
275 - ls-files: buffer full item in strbuf before printing
276 - ls_colors.c: highlight submodules like directories
277 - ls_colors.c: add a function to color a file name
278 - ls_colors.c: parse color.ls.* from config file
279 - ls_colors.c: add $LS_COLORS parsing code
281 A new "git list-files" Porcelain command, "ls-files" with bells and
284 Reroll to base on wt-status work ($gmane/265142) has seen some
285 positive discussions.
287 Waiting for a further polished reroll ($gmane/265534).
290 * js/fsck-opt (2015-01-21) 19 commits
291 - fsck: support ignoring objects in `git fsck` via fsck.skiplist
292 - fsck: git receive-pack: support excluding objects from fsck'ing
293 - fsck: introduce `git fsck --quick`
294 - fsck: support demoting errors to warnings
295 - fsck: document the new receive.fsck.* options
296 - fsck: allow upgrading fsck warnings to errors
297 - fsck: optionally ignore specific fsck issues completely
298 - fsck: disallow demoting grave fsck errors to warnings
299 - fsck: add a simple test for receive.fsck.*
300 - fsck: make fsck_tag() warn-friendly
301 - fsck: handle multiple authors in commits specially
302 - fsck: make fsck_commit() warn-friendly
303 - fsck: make fsck_ident() warn-friendly
304 - fsck: report the ID of the error/warning
305 - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
306 - fsck: offer a function to demote fsck errors to warnings
307 - fsck: provide a function to parse fsck message IDs
308 - fsck: introduce identifiers for fsck messages
309 - fsck: introduce fsck options
311 "fsck.warnings = <list of error tokens>" I suggested turned out to
312 be an unpopular choice (sorry Dscho).
317 * nd/pathspec-strip-fix (2015-04-18) 1 commit
318 - pathspec: adjust prefixlen after striping trailing slash
320 Does not quite fix ($gmane/267614).
324 * jc/diff-b-m (2015-02-23) 5 commits
327 - diffcore-rename: allow easier debugging
328 - diffcore-rename.c: add locate_rename_src()
329 - diffcore-break: allow debugging
331 "git diff -B -M" produced incorrect patch when the postimage of a
332 completely rewritten file is similar to the preimage of a removed
333 file; such a resulting file must not be expressed as a rename from
336 The fix in this patch is broken, unfortunately.
339 * pw/remote-set-url-fetch (2014-11-26) 1 commit
340 - remote: add --fetch and --both options to set-url
345 * tr/remerge-diff (2014-11-10) 9 commits
346 - t4213: avoid "|" in sed regexp
347 - log --remerge-diff: show what the conflict resolution changed
348 - name-hash: allow dir hashing even when !ignore_case
349 - merge-recursive: allow storing conflict hunks in index
350 - merge_diff_mode: fold all merge diff variants into an enum
351 - combine-diff: do not pass revs->dense_combined_merges redundantly
352 - merge-recursive: -Xindex-only to leave worktree unchanged
353 - merge-recursive: internal flag to avoid touching the worktree
354 - merge-recursive: remove dead conditional in update_stages()
356 "log -p" output learns a new way to let users inspect a merge
357 commit by showing the differences between the automerged result
358 with conflicts the person who recorded the merge would have seen
359 and the final conflict resolution that was recorded in the merge.
361 Waiting for a reroll ($gmane/256591).
364 * hv/submodule-config (2014-11-11) 4 commits
365 - do not die on error of parsing fetchrecursesubmodules option
366 - use new config API for worktree configurations of submodules
367 - extract functions for submodule config set and lookup
368 - implement submodule config cache for lookup of submodule names
370 Kicked back to 'pu' per request ($gmane/255610).
373 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
374 - perf-lib: add test_perf_cleanup target
375 - perf-lib: split starting the test from the execution
377 Add test_perf_cleanup shell function to the perf suite, that allows
378 the script writers to define a test with a clean-up action.
383 * jc/show-branch (2014-03-24) 5 commits
384 - show-branch: use commit slab to represent bitflags of arbitrary width
385 - show-branch.c: remove "all_mask"
386 - show-branch.c: abstract out "flags" operation
387 - show-branch.c: lift all_mask/all_revs to a global static
388 - show-branch.c: update comment style
390 Waiting for the final step to lift the hard-limit.
392 --------------------------------------------------
395 * da/mergetool-winmerge (2015-05-20) 2 commits
396 (merged to 'next' on 2015-05-26 at d6333e9)
397 + mergetools: add winmerge as a builtin tool
398 + mergetool--lib: set IFS for difftool and mergetool
400 "git mergetool" learned to drive WinMerge as a backend.
402 Will merge to 'master'.
405 * jk/http-backend-deadlock-2.2 (2015-05-25) 3 commits
406 + http-backend: spool ref negotiation requests to buffer
407 + t5551: factor out tag creation
408 + http-backend: fix die recursion with custom handler
409 (this branch is used by jk/http-backend-deadlock and jk/http-backend-deadlock-2.3.)
411 Communication between the HTTP server and http_backend process can
412 lead to a dead-lock when relaying a large ref negotiation request.
413 Diagnose the situation better, and mitigate it by reading such a
414 request first into core (to a reasonable limit).
416 This was wiggled back to apply to the 2.2 maintenance track
417 (original was for 2.4).
419 Will merge to 'master'.
422 * jk/http-backend-deadlock-2.3 (2015-05-25) 1 commit
423 + Merge branch 'jk/http-backend-deadlock-2.2' into jk/http-backend-deadlock-2.3
424 (this branch is used by jk/http-backend-deadlock; uses jk/http-backend-deadlock-2.2.)
426 Same for 2.3 maintenance track.
428 Will merge to 'master'.
431 * jk/stash-options (2015-05-20) 2 commits
432 (merged to 'next' on 2015-05-26 at 5dcb026)
433 + stash: recognize "--help" for subcommands
434 + stash: complain about unknown flags
436 Make "git stash something --help" error out, so that users can
437 safely say "git stash drop --help".
439 Will merge to 'master'.
442 * mc/commit-doc-grammofix (2015-05-19) 1 commit
443 (merged to 'next' on 2015-05-26 at 9d76e3b)
444 + Documentation/git-commit: grammofix
446 Will merge to 'master'.
449 * rs/janitorial (2015-05-20) 3 commits
450 (merged to 'next' on 2015-05-26 at 9d5aee4)
451 + dir: remove unused variable sb
452 + clean: remove unused variable buf
453 + use file_exists() to check if a file exists in the worktree
455 Will merge to 'master'.
458 * fm/fetch-raw-sha1 (2015-05-22) 3 commits
459 (merged to 'next' on 2015-05-26 at dc3f1b3)
460 + upload-pack: optionally allow fetching reachable sha1
461 + upload-pack: prepare to extend allow-tip-sha1-in-want
462 + config.txt: clarify allowTipSHA1InWant with camelCase
464 "git upload-pack" that serves "git fetch" can be told to serve
465 commits that are not at the tip of any ref as long as they are
466 reachable from a ref with uploadpack.allowReachableSHA1InWant
467 configuration variable.
469 Will merge to 'master'.
472 * jc/commit-slab (2015-05-22) 1 commit
473 - commit-slab: introduce slabname##_peek() function
475 Memory use reduction when commit-slab facility is used to annotate
476 sparsely (which is not recommended in the first place).
479 * mm/rebase-i-post-rewrite-exec (2015-05-22) 3 commits
480 (merged to 'next' on 2015-05-26 at 8ddaab1)
481 + t5407: use <<- to align the expected output
482 + rebase -i: fix post-rewrite hook with failed exec command
483 + rebase -i: demonstrate incorrect behavior of post-rewrite
485 "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
486 when it was told to stop sequencing with 'exec' insn).
488 Will merge to 'master'.
491 * sb/submodule-doc-intro (2015-05-22) 1 commit
492 - submodule documentation: reorder introductory paragraphs
494 What's the doneness of this one???
497 * sb/test-bitmap-free-at-end (2015-05-22) 1 commit
498 (merged to 'next' on 2015-05-26 at 1014ebf)
499 + test_bitmap_walk: free bitmap with bitmap_free
501 Will merge to 'master'.
504 * dt/cat-file-follow-symlinks (2015-05-20) 3 commits
505 (merged to 'next' on 2015-05-26 at 7ae52d4)
506 + cat-file: add --follow-symlinks to --batch
507 + sha1_name: get_sha1_with_context learns to follow symlinks
508 + tree-walk: learn get_tree_entry_follow_symlinks
510 "git cat-file --batch(-check)" learned the "--follow-symlinks"
511 option that follows an in-tree symbolic links when asked about an
512 object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
513 Documentation/RelNotes/2.5.0.txt. With the new option, the command
514 behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
517 Will merge to 'master'.
520 * dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
521 (merged to 'next' on 2015-05-26 at 9b24d71)
522 + clean: only lstat files in pathspec
524 "git clean pathspec..." tried to lstat(2) and complain even for
525 paths outside the given pathspec.
527 Will merge to 'master'.
530 * jh/filter-empty-contents (2015-05-18) 1 commit
531 (merged to 'next' on 2015-05-26 at 9cad398)
532 + sha1_file: pass empty buffer to index empty file
534 The clean/smudge interface did not work well when filtering an
535 empty contents (failed and then passed the empty input through).
536 It can be argued that a filter that produces anything but empty for
537 an empty input is nonsense, but if the user wants to do strange
538 things, then why not?
540 Will merge to 'master'.
543 * jk/http-backend-deadlock (2015-05-25) 1 commit
544 (merged to 'next' on 2015-05-26 at 9f3bd8a)
545 + Merge branch 'jk/http-backend-deadlock-2.3' into jk/http-backend-deadlock
546 (this branch uses jk/http-backend-deadlock-2.2 and jk/http-backend-deadlock-2.3.)
548 Communication between the HTTP server and http_backend process can
549 lead to a dead-lock when relaying a large ref negotiation request.
550 Diagnose the situation better, and mitigate it by reading such a
551 request first into core (to a reasonable limit).
553 Will merge to 'master'.
556 * mm/log-format-raw-doc (2015-05-20) 2 commits
557 (merged to 'next' on 2015-05-26 at 97e2c9d)
558 + Documentation/log: clarify sha1 non-abbreviation in log --raw
559 + Documentation/log: clarify what --raw means
561 Clarify that "log --raw" and "log --format=raw" are unrelated
564 Will merge to 'master'.
567 * sg/help-group (2015-05-21) 5 commits
568 (merged to 'next' on 2015-05-26 at 2749912)
569 + help: respect new common command grouping
570 + command-list.txt: drop the "common" tag
571 + generate-cmdlist: parse common group commands
572 + command-list.txt: add the common groups block
573 + command-list: prepare machinery for upcoming "common groups" section
575 Group list of commands shown by "git help" along the workflow
576 elements to help early learners.
578 Will merge to 'master'.
581 * ld/p4-editor-multi-words (2015-05-26) 3 commits
582 - git-p4: tests: use test-chmtime in place of touch
583 - git-p4: fix handling of multi-word P4EDITOR
584 - git-p4: add failing test for P4EDITOR handling
586 Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
587 command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
588 did not let the shell interpolate the contents of the environment
589 variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
590 Make it in line with the rest of Git, as well as with Perforce.
592 Will merge to 'next'.
595 * pt/pull-tests (2015-05-18) 8 commits
596 - t5520: check reflog action in fast-forward merge
597 - t5521: test --dry-run does not make any changes
598 - t5520: test --rebase failure on unborn branch with index
599 - t5520: test --rebase with multiple branches
600 - t5520: test work tree fast-forward when fetch updates head
601 - t5520: test for failure if index has unresolved entries
602 - t5520: test no merge candidates cases
603 - t5520: prevent field splitting in content comparisons
605 Add more test coverage to "git pull".
608 * jc/clone-bundle (2015-04-30) 1 commit
609 - repack: optionally create a clone.bundle
614 * jk/at-push-sha1 (2015-05-22) 16 commits
615 (merged to 'next' on 2015-05-26 at d9d342f)
616 + for-each-ref: accept "%(push)" format
617 + for-each-ref: use skip_prefix instead of starts_with
618 + sha1_name: implement @{push} shorthand
619 + sha1_name: refactor interpret_upstream_mark
620 + sha1_name: refactor upstream_mark
621 + remote.c: add branch_get_push
622 + remote.c: return upstream name from stat_tracking_info
623 + remote.c: untangle error logic in branch_get_upstream
624 + remote.c: report specific errors from branch_get_upstream
625 + remote.c: introduce branch_get_upstream helper
626 + remote.c: hoist read_config into remote_get_1
627 + remote.c: provide per-branch pushremote name
628 + remote.c: hoist branch.*.remote lookup out of remote_get_1
629 + remote.c: drop "remote" pointer from "struct branch"
630 + remote.c: refactor setup of branch->merge list
631 + remote.c: drop default_remote_name variable
633 Introduce <branch>@{push} short-hand to denote the remote-tracking
634 branch that tracks the branch at the remote the <branch> would be
637 Will merge to 'master'.
640 * ee/clean-remove-dirs (2015-04-26) 5 commits
641 - clean: improve performance when removing lots of directories
642 - p7300: add performance tests for clean
643 - t7300: add tests to document behavior of clean and nested git
644 - setup: sanity check file size in read_gitfile_gently
645 - setup: add gentle version of read_gitfile
647 Replace "is this subdirectory a separate repository that should not
648 be touched?" check "git clean" does by checking if it has .git/HEAD
649 using the submodule-related code with a more optimized check.
651 Waiting for a reroll.
654 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
655 - merge: drop 'git merge <message> HEAD <commit>' syntax
657 Stop supporting "git merge <message> HEAD <commit>" syntax that
658 has been deprecated since October 2007.
660 Will merge to 'next' and keep there during the 2.5 cycle.
663 * ah/usage-strings (2015-05-03) 2 commits
664 - branch: fix funny-sounding error message
665 - blame, log: format usage strings similarly to those in documentation
667 A few usage string updates. The tip one still needs work.