What's cooking (2015/06 #01)
[git.git] / whats-cooking.txt
blobdeb5b4c0a05101fe32ab0b70060fd8cd98840f0c
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jun 2015, #01; Tue, 2)
4 X-master-at: f86f31ab33c3406adebbb9f9f61be550dcc5a472
5 X-next-at: b4379f4514b71bf690061de15eb494cafb09b9b1
7 What's cooking in git.git (Jun 2015, #01; Tue, 2)
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 [Graduated to "master"]
22 * ah/usage-strings (2015-05-03) 1 commit
23   (merged to 'next' on 2015-05-28 at 5f4350e)
24  + blame, log: format usage strings similarly to those in documentation
26  A few usage string updates.
29 * da/mergetool-winmerge (2015-05-20) 2 commits
30   (merged to 'next' on 2015-05-26 at d6333e9)
31  + mergetools: add winmerge as a builtin tool
32  + mergetool--lib: set IFS for difftool and mergetool
34  "git mergetool" learned to drive WinMerge as a backend.
37 * dt/cat-file-follow-symlinks (2015-05-20) 3 commits
38   (merged to 'next' on 2015-05-26 at 7ae52d4)
39  + cat-file: add --follow-symlinks to --batch
40  + sha1_name: get_sha1_with_context learns to follow symlinks
41  + tree-walk: learn get_tree_entry_follow_symlinks
43  "git cat-file --batch(-check)" learned the "--follow-symlinks"
44  option that follows an in-tree symbolic link when asked about an
45  object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
46  Documentation/RelNotes/2.5.0.txt.  With the new option, the command
47  behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
48  input instead.
51 * dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit
52   (merged to 'next' on 2015-05-26 at 9b24d71)
53  + clean: only lstat files in pathspec
55  "git clean pathspec..." tried to lstat(2) and complain even for
56  paths outside the given pathspec.
59 * fm/fetch-raw-sha1 (2015-05-22) 3 commits
60   (merged to 'next' on 2015-05-26 at dc3f1b3)
61  + upload-pack: optionally allow fetching reachable sha1
62  + upload-pack: prepare to extend allow-tip-sha1-in-want
63  + config.txt: clarify allowTipSHA1InWant with camelCase
65  "git upload-pack" that serves "git fetch" can be told to serve
66  commits that are not at the tip of any ref, as long as they are
67  reachable from a ref, with uploadpack.allowReachableSHA1InWant
68  configuration variable.
71 * jh/filter-empty-contents (2015-05-18) 1 commit
72   (merged to 'next' on 2015-05-26 at 9cad398)
73  + sha1_file: pass empty buffer to index empty file
75  The clean/smudge interface did not work well when filtering an
76  empty contents (failed and then passed the empty input through).
77  It can be argued that a filter that produces anything but empty for
78  an empty input is nonsense, but if the user wants to do strange
79  things, then why not?
82 * jk/http-backend-deadlock (2015-05-25) 1 commit
83   (merged to 'next' on 2015-05-26 at 9f3bd8a)
84  + Merge branch 'jk/http-backend-deadlock-2.3' into jk/http-backend-deadlock
85  (this branch uses jk/http-backend-deadlock-2.2 and jk/http-backend-deadlock-2.3.)
87  Communication between the HTTP server and http_backend process can
88  lead to a dead-lock when relaying a large ref negotiation request.
89  Diagnose the situation better, and mitigate it by reading such a
90  request first into core (to a reasonable limit).
93 * jk/http-backend-deadlock-2.2 (2015-05-25) 3 commits
94  + http-backend: spool ref negotiation requests to buffer
95  + t5551: factor out tag creation
96  + http-backend: fix die recursion with custom handler
97  (this branch is used by jk/http-backend-deadlock and jk/http-backend-deadlock-2.3.)
99  Communication between the HTTP server and http_backend process can
100  lead to a dead-lock when relaying a large ref negotiation request.
101  Diagnose the situation better, and mitigate it by reading such a
102  request first into core (to a reasonable limit).
104  This was wiggled back to apply to the 2.2 maintenance track
105  (original was for 2.4).
108 * jk/http-backend-deadlock-2.3 (2015-05-25) 1 commit
109  + Merge branch 'jk/http-backend-deadlock-2.2' into jk/http-backend-deadlock-2.3
110  (this branch is used by jk/http-backend-deadlock; uses jk/http-backend-deadlock-2.2.)
112  Same for 2.3 maintenance track.
115 * jk/stash-options (2015-05-20) 2 commits
116   (merged to 'next' on 2015-05-26 at 5dcb026)
117  + stash: recognize "--help" for subcommands
118  + stash: complain about unknown flags
120  Make "git stash something --help" error out, so that users can
121  safely say "git stash drop --help".
124 * mc/commit-doc-grammofix (2015-05-19) 1 commit
125   (merged to 'next' on 2015-05-26 at 9d76e3b)
126  + Documentation/git-commit: grammofix
128  Doc grammar fix.
131 * mm/log-format-raw-doc (2015-05-20) 2 commits
132   (merged to 'next' on 2015-05-26 at 97e2c9d)
133  + Documentation/log: clarify sha1 non-abbreviation in log --raw
134  + Documentation/log: clarify what --raw means
136  Clarify that "log --raw" and "log --format=raw" are unrelated
137  concepts.
140 * mm/rebase-i-post-rewrite-exec (2015-05-22) 3 commits
141   (merged to 'next' on 2015-05-26 at 8ddaab1)
142  + t5407: use <<- to align the expected output
143  + rebase -i: fix post-rewrite hook with failed exec command
144  + rebase -i: demonstrate incorrect behavior of post-rewrite
146  "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
147  when it was told to stop sequencing with 'exec' insn).
150 * rs/janitorial (2015-05-20) 3 commits
151   (merged to 'next' on 2015-05-26 at 9d5aee4)
152  + dir: remove unused variable sb
153  + clean: remove unused variable buf
154  + use file_exists() to check if a file exists in the worktree
156  Code clean-up.
159 * sb/test-bitmap-free-at-end (2015-05-22) 1 commit
160   (merged to 'next' on 2015-05-26 at 1014ebf)
161  + test_bitmap_walk: free bitmap with bitmap_free
163  An earlier leakfix to bitmap testing code was incomplete.
166 * sg/help-group (2015-05-21) 5 commits
167   (merged to 'next' on 2015-05-26 at 2749912)
168  + help: respect new common command grouping
169  + command-list.txt: drop the "common" tag
170  + generate-cmdlist: parse common group commands
171  + command-list.txt: add the common groups block
172  + command-list: prepare machinery for upcoming "common groups" section
174  Group list of commands shown by "git help" along the workflow
175  elements to help early learners.
177 --------------------------------------------------
178 [New Topics]
180 * gr/rebase-i-drop-warn (2015-06-01) 2 commits
181  - git rebase -i: warn about removed commits
182  - git-rebase -i: add command "drop" to remove a commit
184  Add "drop commit-object-name subject" command as another way to
185  skip replaying of a commit in "rebase -i", and then punish those
186  who do not use it (and instead just remove the lines) by throwing
187  a warning.
189  Expecting a reroll.
192 * jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
193  - strbuf_read(): skip unnecessary strbuf_grow() at eof
195  Avoid one extra iteration and strbuf_grow() of 8kB in
196  strbuf_read().
198  Looked reasonable; perhaps a log message clarification is coming?
201 * jk/squelch-missing-link-warning-for-unreachable (2015-06-01) 3 commits
202   (merged to 'next' on 2015-06-01 at 9ddc5d1)
203  + suppress errors on missing UNINTERESTING links
204  + silence broken link warnings with revs->ignore_missing_links
205  + add quieter versions of parse_{tree,commit}
207  Recent "git prune" traverses young unreachable objects to safekeep
208  old objects in the reachability chain from them, which causes
209  error messages that are unnecessarily alarming.
211  Will merge to 'master'.
214 * mh/reporting-broken-refs-from-for-each-ref (2015-06-02) 3 commits
215  - read_loose_refs(): treat NULL_SHA1 loose references as broken
216  - for-each-ref: report broken references correctly
217  - t6301: new tests of for-each-ref error handling
219  "git for-each-ref" reported "missing object" for 0{40} when it
220  encounters a broken ref.  The lack of object whose name is 0{40} is
221  not the problem; the ref being broken is.
223  A reroll for the tip one coming to pick final minor nits?
224  Otherwise looked ready for 'next'.
227 * tb/complete-sequencing (2015-06-01) 1 commit
228   (merged to 'next' on 2015-06-01 at b7604e8)
229  + completion: suggest sequencer commands for revert
231  The bash completion script (in contrib/) learned a few options that
232  "git revert" takes.
234  Will merge to 'master'.
237 * jc/apply-reject-noop-hunk (2015-06-01) 1 commit
238  - apply: reject a hunk that does not do anything
240  "git apply" cannot diagnose a patch corruption when the breakage is
241  to mark the length of the hunk shorter than it really is on the
242  hunk header line "@@ -l,k +m,n @@"; one special case it could is
243  when the hunk becomes no-op (e.g. k == n == 2 for two-line context
244  patch output), and it learned how to do so.
246  Will merge to 'next'.
249 * es/configure-getdelim (2015-06-02) 2 commits
250  - configure: add getdelim() check
251  - config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases
253  Auto-detect availability of getdelim() that helps optimized version
254  of strbuf_getwholeline().
256  Will merge to 'next'.
259 * es/osx-header-pollutes-mask-macro (2015-06-02) 1 commit
260  - ewah/bitmap: silence warning about MASK macro redefinition
262  Will merge to 'next'.
265 * es/send-email-sendmail-alias (2015-06-01) 10 commits
266  - send-email: further warn about unsupported sendmail aliases features
267  - t9001: add sendmail aliases line continuation tests
268  - t9001: refactor sendmail aliases test infrastructure
269  - send-email: implement sendmail aliases line continuation support
270  - send-email: simplify sendmail aliases comment and blank line recognizer
271  - send-email: refactor sendmail aliases parser
272  - send-email: fix style: cuddle 'elsif' and 'else' with closing brace
273  - send-email: drop noise comments which merely repeat what code says
274  - send-email: visually distinguish sendmail aliases parser warnings
275  - send-email: further document missing sendmail aliases functionality
276  (this branch uses ah/send-email-sendmail-alias.)
278  "git send-email" learned to handle more forms of sendmail style
279  aliases file.
281  Will merge to 'next'.
284 * jc/do-not-feed-tags-to-clear-commit-marks (2015-06-01) 1 commit
285  - format-patch: do not feed tags to clear_commit_marks()
287  "git format-patch --ignore-if-upstream A..B" did not like to be fed
288  tags as boundary commits.
291 * mg/index-read-error-messages (2015-06-01) 2 commits
292  - messages: uniform error messages for index write
293  - show-index: uniform error messages for index read
295  The tip was RFC.
298 * pt/pull-optparse (2015-06-02) 3 commits
299  - pull: use git-rev-parse --parseopt for option parsing
300  - pull: handle git-fetch's options as well
301  - Merge branch 'pt/pull-tests' into pt/pull-optparse
302  (this branch uses pt/pull-tests.)
304  "git pull" has become more aware of the options meant for
305  underlying "git fetch" and then learned to use parse-options
306  parser.
308  Will merge to 'next'.
311 * qn/blame-show-email (2015-06-01) 1 commit
312  - blame: add blame.showEmail configuration
314  "git blame" learned blame.showEmail configuration variable.
316  Will merge to 'next'.
319 * rl/am-3way-config (2015-06-02) 3 commits
320  - t4150-am: refactor am -3 tests
321  - git-am.txt: add configuration section in git am documentation
322  - git-am.sh: fix initialization of the threeway variable
324  "git am" learned am.threeWay configuration variable.
327 * sb/pack-protocol-mention-smart-http (2015-06-02) 1 commit
328  - Documentation/technical/pack-protocol: mention http as possible protocol
330  Doc updates.
332  Will merge to 'next'.
334 --------------------------------------------------
335 [Stalled]
337 * kk/log-merges-config (2015-04-21) 5 commits
338  - bash-completion: add support for git-log --merges= and log.merges
339  - t4202-log: add tests for --merges=
340  - Documentation: add git-log --merges= option and log.merges config. var
341  - log: honor log.merges= option
342  - revision: add --merges={show|only|hide} option
344  "git log" (but not other commands in the "log" family) learned to
345  pay attention to the log.merges configuration variable that can be
346  set to "show" (the normal behaviour), "only" (hide non-merge
347  commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
348  can be used to override the setting from the command line.
350  The documentation may need to be updated once more ($gmane/267250).
351  Waiting for a reroll.
354 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
355  - t/lib-git-svn: check same httpd module dirs as lib-httpd
356  - t/lib-httpd: load mod_unixd
358  This is the first two commits in a three-patch series $gmane/266962
359  Will be rerolled.
360  with updated log message ($gmane/268061).
363 * mh/numparse (2015-03-19) 14 commits
364  - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
365  - diff_opt_parse(): use convert_i() when handling "-l<num>"
366  - opt_arg(): simplify pointer handling
367  - opt_arg(): report errors parsing option values
368  - opt_arg(): use convert_i() in implementation
369  - opt_arg(): val is always non-NULL
370  - builtin_diff(): detect errors when parsing --unified argument
371  - handle_revision_opt(): use convert_ui() when handling "--abbrev="
372  - strtoul_ui(), strtol_i(): remove functions
373  - handle_revision_opt(): use convert_i() when handling "-<digit>"
374  - handle_revision_opt(): use skip_prefix() in many places
375  - write_subdirectory(): use convert_ui() for parsing mode
376  - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
377  - numparse: new module for parsing integral numbers
379  Many codepaths use unchecked use of strtol() and friends (or even
380  worse, atoi()).  Introduce a set of wrappers that try to be more
381  careful.
383  Will be rerolled.
384  ($gmane/268058).
387 * tf/gitweb-project-listing (2015-03-19) 5 commits
388  - gitweb: make category headings into links when they are directories
389  - gitweb: optionally set project category from its pathname
390  - gitweb: add a link under the search box to clear a project filter
391  - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
392  - gitweb: fix typo in man page
394  Update gitweb to make it more pleasant to deal with a hierarchical
395  forest of repositories.
397  Any comments from those who use or have their own code in Gitweb?
400 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
401  - "-" and "@{-1}" on various programs
403  Lose special case code to make a lone dash "-" mean the previous
404  branch aka "@{-1}" from a handful subcommands, and instead support
405  the notation throughout the system by reimplementing it at the
406  revisions layer.
408  Needs tests, documentation updates, etc.  Also does only a half-way
409  job dealing with range notation, which needs to be fixed before the
410  series goes anywhere.
413 * nd/list-files (2015-02-09) 21 commits
414  - t3080: tests for git-list-files
415  - list-files: -M aka diff-cached
416  - list-files -F: show submodules with the new indicator '&'
417  - list-files: add -F/--classify
418  - list-files: show directories as well as files
419  - list-files: do not show duplicate cached entries
420  - list-files: sort output and remove duplicates
421  - list-files: add -t back
422  - list-files: add -1 short for --no-column
423  - list-files: add -R/--recursive short for --max-depth=-1
424  - list-files: -u does not imply showing stages
425  - list-files: make alias 'ls' default to 'list-files'
426  - list-files: a user friendly version of ls-files and more
427  - ls-files: support --max-depth
428  - ls-files: add --column
429  - ls-files: add --color to highlight file names
430  - ls-files: buffer full item in strbuf before printing
431  - ls_colors.c: highlight submodules like directories
432  - ls_colors.c: add a function to color a file name
433  - ls_colors.c: parse color.ls.* from config file
434  - ls_colors.c: add $LS_COLORS parsing code
436  A new "git list-files" Porcelain command, "ls-files" with bells and
437  whistles.
439  Reroll to base on wt-status work ($gmane/265142) has seen some
440  positive discussions.
442  Waiting for a further polished reroll ($gmane/265534).
445 * js/fsck-opt (2015-01-21) 19 commits
446  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
447  - fsck: git receive-pack: support excluding objects from fsck'ing
448  - fsck: introduce `git fsck --quick`
449  - fsck: support demoting errors to warnings
450  - fsck: document the new receive.fsck.* options
451  - fsck: allow upgrading fsck warnings to errors
452  - fsck: optionally ignore specific fsck issues completely
453  - fsck: disallow demoting grave fsck errors to warnings
454  - fsck: add a simple test for receive.fsck.*
455  - fsck: make fsck_tag() warn-friendly
456  - fsck: handle multiple authors in commits specially
457  - fsck: make fsck_commit() warn-friendly
458  - fsck: make fsck_ident() warn-friendly
459  - fsck: report the ID of the error/warning
460  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
461  - fsck: offer a function to demote fsck errors to warnings
462  - fsck: provide a function to parse fsck message IDs
463  - fsck: introduce identifiers for fsck messages
464  - fsck: introduce fsck options
466  "fsck.warnings = <list of error tokens>" I suggested turned out to
467  be an unpopular choice (sorry Dscho).
469  Expecting a reroll.
472 * nd/pathspec-strip-fix (2015-04-18) 1 commit
473  - pathspec: adjust prefixlen after striping trailing slash
475  Does not quite fix ($gmane/267614).
476  Will discard.
479 * jc/diff-b-m (2015-02-23) 5 commits
480  . WIPWIP
481  . WIP: diff-b-m
482  - diffcore-rename: allow easier debugging
483  - diffcore-rename.c: add locate_rename_src()
484  - diffcore-break: allow debugging
486  "git diff -B -M" produced incorrect patch when the postimage of a
487  completely rewritten file is similar to the preimage of a removed
488  file; such a resulting file must not be expressed as a rename from
489  other place.
491  The fix in this patch is broken, unfortunately.
494 * pw/remote-set-url-fetch (2014-11-26) 1 commit
495  - remote: add --fetch and --both options to set-url
497  Expecting a reroll.
500 * tr/remerge-diff (2014-11-10) 9 commits
501  - t4213: avoid "|" in sed regexp
502  - log --remerge-diff: show what the conflict resolution changed
503  - name-hash: allow dir hashing even when !ignore_case
504  - merge-recursive: allow storing conflict hunks in index
505  - merge_diff_mode: fold all merge diff variants into an enum
506  - combine-diff: do not pass revs->dense_combined_merges redundantly
507  - merge-recursive: -Xindex-only to leave worktree unchanged
508  - merge-recursive: internal flag to avoid touching the worktree
509  - merge-recursive: remove dead conditional in update_stages()
511  "log -p" output learns a new way to let users inspect a merge
512  commit by showing the differences between the automerged result
513  with conflicts the person who recorded the merge would have seen
514  and the final conflict resolution that was recorded in the merge.
516  Waiting for a reroll ($gmane/256591).
519 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
520  - perf-lib: add test_perf_cleanup target
521  - perf-lib: split starting the test from the execution
523  Add test_perf_cleanup shell function to the perf suite, that allows
524  the script writers to define a test with a clean-up action.
526  Will hold.
529 * jc/show-branch (2014-03-24) 5 commits
530  - show-branch: use commit slab to represent bitflags of arbitrary width
531  - show-branch.c: remove "all_mask"
532  - show-branch.c: abstract out "flags" operation
533  - show-branch.c: lift all_mask/all_revs to a global static
534  - show-branch.c: update comment style
536  Waiting for the final step to lift the hard-limit.
538 --------------------------------------------------
539 [Cooking]
541 * hv/submodule-config (2015-06-02) 4 commits
542  - do not die on error of parsing fetchrecursesubmodules option
543  - use new config API for worktree configurations of submodules
544  - extract functions for submodule config set and lookup
545  - implement submodule config cache for lookup of submodule names
547  The gitmodules API accessed from the C code learned to cache stuff
548  lazily.
551 * jc/diff-ws-error-highlight (2015-05-26) 4 commits
552   (merged to 'next' on 2015-06-01 at 6046560)
553  + diff.c: --ws-error-highlight=<kind> option
554  + diff.c: add emit_del_line() and emit_context_line()
555  + t4015: separate common setup and per-test expectation
556  + t4015: modernise style
558  Allow whitespace breakages in deleted and context lines to be also
559  painted in the output.
561  Will merge to 'master'.
564 * jk/clone-dissociate (2015-05-27) 2 commits
565   (merged to 'next' on 2015-06-01 at 19e3ec3)
566  + clone: reorder --dissociate and --reference options
567  + clone: use OPT_STRING_LIST for --reference
569  Code clean-up.
571  Will merge to 'master'.
574 * jk/color-diff-plain-is-context (2015-05-27) 2 commits
575   (merged to 'next' on 2015-06-01 at bcd8f1d)
576  + diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
577  + diff: accept color.diff.context as a synonym for "plain"
579  "color.diff.plain" was a misnomer; give it 'color.diff.context' as
580  a more logical synonym.
582  Will merge to 'master'.
585 * jk/diagnose-config-mmap-failure (2015-05-28) 5 commits
586   (merged to 'next' on 2015-06-01 at ca750d5)
587  + xmmap(): drop "Out of memory?"
588  + config.c: rewrite ENODEV into EISDIR when mmap fails
589  + config.c: avoid xmmap error messages
590  + config.c: fix mmap leak when writing config
591  + read-cache.c: drop PROT_WRITE from mmap of index
593  The configuration reader/writer uses mmap(2) interface to access
594  the files; when we find a directory, it barfed with "Out of memory?".
596  Will merge to 'master'.
599 * mh/verify-lock-error-report (2015-05-27) 5 commits
600   (merged to 'next' on 2015-06-01 at 7b450a7)
601  + ref_transaction_commit(): do not capitalize error messages
602  + verify_lock(): do not capitalize error messages
603  + verify_lock(): report errors via a strbuf
604  + verify_lock(): on errors, let the caller unlock the lock
605  + verify_lock(): return 0/-1 rather than struct ref_lock *
607  Bring consistency to error reporting mechanism used in "refs" API.
609  Will merge to 'master'.
612 * mt/p4-depotFile-at-version (2015-05-27) 1 commit
613   (merged to 'next' on 2015-06-01 at 33e8622)
614  + p4: retrieve the right revision of the file in UTF-16 codepath
616  Will merge to 'master'.
619 * sb/glossary-submodule (2015-05-29) 1 commit
620   (merged to 'next' on 2015-06-01 at 84de87b)
621  + glossary: add "remote", "submodule", "superproject"
623  Will merge to 'master'.
626 * sg/config-name-only (2015-05-28) 3 commits
627  - completion: use new 'git config' options to reliably list variable names
628  - SQUASH
629  - config: add options to list only variable names
631  "git config --list" output was hard to parse when values consist of
632  multiple lines.  Introduce a way to show only the keys.
634  Adding a single --name-only option may be a better way to go than
635  adding two new options.
637  Expecting reroll.
640 * sg/merge-summary-config (2015-05-28) 1 commit
641  - Documentation: include 'merge.branchdesc' for merge and config as well
643  Doc updates.
645  Will merge to 'next'.
648 * jc/push-tags-also (2015-05-29) 1 commit
649  - push --tags: push tags *in addition to* other stuff
651  "git fetch --tags" learned to fetch tags in addition to other stuff
652  a few years ago, but "git push --tags" didn't.  Now it does.
655 * jk/die-on-bogus-worktree-late (2015-05-29) 1 commit
656  - setup_git_directory: delay core.bare/core.worktree errors
658  The setup code used to die when core.bare and core.worktree are set
659  inconsistently, even for commands that do not need working tree.
661  Will merge to 'next'.
664 * jk/make-fix-dependencies (2015-05-29) 3 commits
665  - Makefile: silence perl/PM.stamp recipe
666  - Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
667  - Makefile: drop dependency between git-instaweb and gitweb
669  Build clean-up.
671  Will merge to 'next'.
674 * ah/send-email-sendmail-alias (2015-05-27) 2 commits
675  - t9001: write $HOME/, not ~/, to help shells without tilde expansion
676  - send-email: add sendmail email aliases format
677  (this branch is used by es/send-email-sendmail-alias.)
679  "git send-email" learned the alias file format used by the sendmail
680  program (in an abbreviated form).
682  Will merge to 'next'.
685 * bc/object-id (2015-05-25) 56 commits
686   (merged to 'next' on 2015-05-26 at 8d9f645)
687  + struct ref_lock: convert old_sha1 member to object_id
688  + warn_if_dangling_symref(): convert local variable "junk" to object_id
689  + each_ref_fn_adapter(): remove adapter
690  + rev_list_insert_ref(): remove unneeded arguments
691  + rev_list_insert_ref_oid(): new function, taking an object_oid
692  + mark_complete(): remove unneeded arguments
693  + mark_complete_oid(): new function, taking an object_oid
694  + clear_marks(): rewrite to take an object_id argument
695  + mark_complete(): rewrite to take an object_id argument
696  + send_ref(): convert local variable "peeled" to object_id
697  + upload-pack: rewrite functions to take object_id arguments
698  + find_symref(): convert local variable "unused" to object_id
699  + find_symref(): rewrite to take an object_id argument
700  + write_one_ref(): rewrite to take an object_id argument
701  + write_refs_to_temp_dir(): convert local variable sha1 to object_id
702  + submodule: rewrite to take an object_id argument
703  + shallow: rewrite functions to take object_id arguments
704  + handle_one_ref(): rewrite to take an object_id argument
705  + add_info_ref(): rewrite to take an object_id argument
706  + handle_one_reflog(): rewrite to take an object_id argument
707  + register_replace_ref(): rewrite to take an object_id argument
708  + remote: rewrite functions to take object_id arguments
709  + add_one_ref(): rewrite to take an object_id argument
710  + string_list_add_one_ref(): rewrite to take an object_id argument
711  + add_ref_decoration(): convert local variable original_sha1 to object_id
712  + add_ref_decoration(): rewrite to take an object_id argument
713  + show_head_ref(): convert local variable "unused" to object_id
714  + http-backend: rewrite to take an object_id argument
715  + append_similar_ref(): rewrite to take an object_id argument
716  + builtin/show-ref: rewrite to take an object_id argument
717  + show_ref(): convert local variable peeled to object_id
718  + builtin/show-ref: rewrite to use object_id
719  + fsck: change functions to use object_id
720  + cmd_show_branch(): fix error message
721  + builtin/show-branch: rewrite functions to work with object_id
722  + append_one_rev(): rewrite to work with object_id
723  + builtin/show-branch: rewrite functions to take object_id arguments
724  + append_matching_ref(): rewrite to take an object_id argument
725  + show_reference(): rewrite to take an object_id argument
726  + builtin/remote: rewrite functions to take object_id arguments
727  + add_branch_for_removal(): don't set "util" field of string_list entries
728  + add_branch_for_removal(): rewrite to take an object_id argument
729  + builtin/reflog: rewrite ref functions to take an object_id argument
730  + show_ref_cb(): rewrite to take an object_id argument
731  + builtin/pack-objects: rewrite to take an object_id argument
732  + name_ref(): rewrite to take an object_id argument
733  + grab_single_ref(): rewrite to take an object_id argument
734  + builtin/fetch: rewrite to take an object_id argument
735  + get_name(): rewrite to take an object_id argument
736  + add_pending_uninteresting_ref(): rewrite to take an object_id argument
737  + append_ref(): rewrite to take an object_id argument
738  + register_ref(): rewrite to take an object_id argument
739  + handle_one_ref(): rewrite to take an object_id argument
740  + builtin/rev-parse: rewrite to take an object_id argument
741  + each_ref_fn: change to take an object_id parameter
742  + refs: convert struct ref_entry to use struct object_id
744  for_each_ref() callback functions were taught to name the objects
745  not with "unsigned char sha1[20]" but with "struct object_id".
747  Will merge to 'master'.
750 * jc/commit-slab (2015-05-22) 1 commit
751  - commit-slab: introduce slabname##_peek() function
753  Memory use reduction when commit-slab facility is used to annotate
754  sparsely (which is not recommended in the first place).
757 * sb/submodule-doc-intro (2015-05-28) 1 commit
758   (merged to 'next' on 2015-06-01 at b6798de)
759  + submodule doc: reorder introductory paragraphs
761  Will merge to 'master'.
764 * ld/p4-editor-multi-words (2015-05-26) 3 commits
765   (merged to 'next' on 2015-05-28 at a368a47)
766  + git-p4: tests: use test-chmtime in place of touch
767  + git-p4: fix handling of multi-word P4EDITOR
768  + git-p4: add failing test for P4EDITOR handling
770  Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
771  command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
772  did not let the shell interpolate the contents of the environment
773  variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
774  Make it in line with the rest of Git, as well as with Perforce.
776  Will merge to 'master'.
779 * pt/pull-tests (2015-05-29) 8 commits
780   (merged to 'next' on 2015-06-01 at c98370b)
781  + t5520: check reflog action in fast-forward merge
782  + t5521: test --dry-run does not make any changes
783  + t5520: test --rebase failure on unborn branch with index
784  + t5520: test --rebase with multiple branches
785  + t5520: test work tree fast-forward when fetch updates head
786  + t5520: test for failure if index has unresolved entries
787  + t5520: test no merge candidates cases
788  + t5520: prevent field splitting in content comparisons
789  (this branch is used by pt/pull-optparse.)
791  Add more test coverage to "git pull".
793  Will merge to 'master'.
796 * jc/clone-bundle (2015-04-30) 1 commit
797  - repack: optionally create a clone.bundle
799  Still an early WIP
802 * jk/at-push-sha1 (2015-05-22) 16 commits
803   (merged to 'next' on 2015-05-26 at d9d342f)
804  + for-each-ref: accept "%(push)" format
805  + for-each-ref: use skip_prefix instead of starts_with
806  + sha1_name: implement @{push} shorthand
807  + sha1_name: refactor interpret_upstream_mark
808  + sha1_name: refactor upstream_mark
809  + remote.c: add branch_get_push
810  + remote.c: return upstream name from stat_tracking_info
811  + remote.c: untangle error logic in branch_get_upstream
812  + remote.c: report specific errors from branch_get_upstream
813  + remote.c: introduce branch_get_upstream helper
814  + remote.c: hoist read_config into remote_get_1
815  + remote.c: provide per-branch pushremote name
816  + remote.c: hoist branch.*.remote lookup out of remote_get_1
817  + remote.c: drop "remote" pointer from "struct branch"
818  + remote.c: refactor setup of branch->merge list
819  + remote.c: drop default_remote_name variable
821  Introduce <branch>@{push} short-hand to denote the remote-tracking
822  branch that tracks the branch at the remote the <branch> would be
823  pushed to.
825  Will merge to 'master'.
828 * ee/clean-remove-dirs (2015-04-26) 5 commits
829  - clean: improve performance when removing lots of directories
830  - p7300: add performance tests for clean
831  - t7300: add tests to document behavior of clean and nested git
832  - setup: sanity check file size in read_gitfile_gently
833  - setup: add gentle version of read_gitfile
835  Replace "is this subdirectory a separate repository that should not
836  be touched?" check "git clean" does by checking if it has .git/HEAD
837  using the submodule-related code with a more optimized check.
839  Waiting for a reroll.
842 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
843   (merged to 'next' on 2015-05-28 at 6bfd8b9)
844  + merge: drop 'git merge <message> HEAD <commit>' syntax
846  Stop supporting "git merge <message> HEAD <commit>" syntax that
847  has been deprecated since October 2007.
849  Will keep in 'next' during the 2.5 cycle.