What's cooking (2014/02 #04)
[alt-git.git] / whats-cooking.txt
blob8cf59e6a02053e28291e041785ae44ef690638b9
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Feb 2014, #04; Wed, 12)
4 X-master-at: bc97e2d8ae24dc2c8d06e616e20a0b4a47c58f67
5 X-next-at: 4cf525ce1d2c8852398b34afa865f9fb26828d57
7 What's cooking in git.git (Feb 2014, #04; Wed, 12)
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 The tip of 'master' has been tagged as v1.9.0-rc3.  As a workaround
15 to make life easier for third-party tools, the upcoming major
16 release will be called "Git 1.9.0" (not "Git 1.9").  The first
17 maintenance release for it will be "Git 1.9.1", and the major
18 release after "Git 1.9.0" will either be "Git 2.0.0" or "Git
19 1.10.0".
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 [New Topics]
29 * al/docs (2014-02-11) 4 commits
30  - docs/git-blame: explain more clearly the example pickaxe use
31  - docs/git-clone: clarify use of --no-hardlinks option
32  - docs/git-remote: capitalize first word of initial blurb
33  - docs/merge-strategies: remove hyphen from mis-merges
35  A handful of documentation updates, all trivially harmless.
37  Will merge to 'next'.
40 * jk/test-ports (2014-02-10) 2 commits
41  - tests: auto-set git-daemon port
42  - tests: auto-set LIB_HTTPD_PORT from test name
43  (this branch is tangled with nd/http-fetch-shallow-fix.)
45  Avoid having to assign port number to be used in tests manually.
47  Will merge to 'next'.
50 * nd/daemonize-gc (2014-02-10) 2 commits
51  - gc: config option for running --auto in background
52  - daemon: move daemonize() to libgit.a
54  Allow running "gc --auto" in the background.
56  Will merge to 'next'.
59 * nd/gitignore-trailing-whitespace (2014-02-10) 2 commits
60  - dir: ignore trailing spaces in exclude patterns
61  - dir: warn about trailing spaces in exclude patterns
63  Warn and then ignore trailing whitespaces in .gitignore files,
64  unless they are quoted for fnmatch(3), e.g. "path\ ".
67 * nd/log-show-linear-break (2014-02-10) 1 commit
68  - log: add --show-linear-break to help see non-linear history
71 * ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit
72  - completion: teach --recurse-submodules to fetch, pull and push
75 * ks/tree-diff-more (2014-02-12) 16 commits
76  - tree-diff: reuse base str(buf) memory on sub-tree recursion
77  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
78  - tree-diff: rework diff_tree interface to be sha1 based
79  - tree-diff: remove special-case diff-emitting code for empty-tree cases
80  - tree-diff: simplify tree_entry_pathcmp
81  - tree-diff: show_path prototype is not needed anymore
82  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
83  - tree-diff: move all action-taking code out of compare_tree_entry()
84  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
85  - FIXUP!
86  - tree-diff: consolidate code for emitting diffs and recursion in one place
87  - tree-diff: show_tree() is not needed
88  - tree-diff: no need to pass match to skip_uninteresting()
89  - tree-diff: no need to manually verify that there is no mode change for a path
90  - combine-diff: move changed-paths scanning logic into its own function
91  - combine-diff: move show_log_first logic/action out of paths scanning
92  (this branch uses ks/combine-diff and ks/tree-diff-walk.)
95 * jh/note-trees-record-blobs (2014-02-12) 1 commit
96  - notes: Disallow reusing non-blob as a note object
99 * jk/run-network-tests-by-default (2014-02-12) 1 commit
100  - tests: turn on network daemon tests by default
102  Teach "make test" to run networking tests when possible by default.
104  Needs a bit more work.
105  e.g. $gmane/242013
107 --------------------------------------------------
108 [Stalled]
110 * po/everyday-doc (2014-01-27) 1 commit
111  - Make 'git help everyday' work
113  This may make the said command to emit something, but the source is
114  not meant to be formatted into a manual pages to begin with, and
115  also its contents are a bit stale.  It may be a good first step in
116  the right direction, but needs more work to at least get the
117  mark-up right before public consumption.
119  Will hold.
122 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
123  - t1507 (rev-parse-upstream): fix typo in test title
124  - implement @{publish} shorthand
125  - branch_get: provide per-branch pushremote pointers
126  - branch_get: return early on error
127  - sha1_name: refactor upstream_mark
129  Give an easier access to the tracking branches from "other" side in
130  a triangular workflow by introducing B@{publish} that works in a
131  similar way to how B@{upstream} does.
133  Meant to be used as a basis for whatever Ram wants to build on.
135  Will hold.
138 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
139  - merge: drop unused arg from abort_commit method signature
140  - merge: make prepare_to_commit responsible for write_merge_state
141  - t7505: ensure cleanup after hook blocks merge
142  - t7505: add missing &&
144  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
145  run during "git merge".  The log message stresses too much on one
146  hook, prepare-commit-msg, but it would equally apply to other hooks
147  like post-merge, I think.
149  Waiting for a reroll.
152 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
153  - Teach checkout to recursively checkout submodules
154  - submodule: teach unpack_trees() to update submodules
155  - submodule: teach unpack_trees() to repopulate submodules
156  - submodule: teach unpack_trees() to remove submodule contents
157  - submodule: prepare for recursive checkout of submodules
159  Expecting a reroll.
162 * jc/graph-post-root-gap (2013-12-30) 3 commits
163  - WIP: document what we want at the end
164  - graph: remove unused code a bit
165  - graph: stuff the current commit into graph->columns[]
167  This was primarily a RFH ($gmane/239580).
170 * fc/transport-helper-fixes (2013-12-09) 6 commits
171  - remote-bzr: support the new 'force' option
172  - test-hg.sh: tests are now expected to pass
173  - transport-helper: check for 'forced update' message
174  - transport-helper: add 'force' to 'export' helpers
175  - transport-helper: don't update refs in dry-run
176  - transport-helper: mismerge fix
178  Updates transport-helper, fast-import and fast-export to allow the
179  ref mapping and ref deletion in a way similar to the natively
180  supported transports.
182  Reported to break t5541, and has been stalled for a while without
183  fixes.
185  Will discard.
188 * fc/completion (2013-12-09) 1 commit
189  - completion: fix completion of certain aliases
191  SZEDER Gábor noticed that this breaks "git -c var=val alias" and
192  also suggested a better description of the change.
194  Has been stalled for a while without much comments from anybody
195  interested.
197  Will discard.
200 * mo/subtree-split-updates (2013-12-10) 3 commits
201  - subtree: add --edit option
202  - subtree: allow --squash and --message with push
203  - subtree: support split --rejoin --squash
205  Has been stalled for a while without much comments from anybody
206  interested.
208  Will discard.
211 * hv/submodule-ignore-fix (2013-12-06) 4 commits
212  - disable complete ignorance of submodules for index <-> HEAD diff
213  - always show committed submodules in summary after commit
214  - teach add -f option for ignored submodules
215  - fix 'git add' to skip submodules configured as ignored
217  Teach "git add" to be consistent with "git status" when changes to
218  submodules are set to be ignored, to avoid surprises after checking
219  with "git status" to see there isn't any change to be further added
220  and then see that "git add ." adds changes to them.
222  I think a reroll is coming, so this may need to be replaced, but I
223  needed some practice with heavy conflict resolution.  It conflicts
224  with two changes to "git add" that have been scheduled for Git 2.0
225  quite badly, and I think I got the resolution right this time.
227  Waiting for a reroll.
230 * kb/fast-hashmap (2014-01-03) 19 commits
231  - hashmap.h: make sure map entries are tightly packed
232   (merged to 'next' on 2014-01-03 at dc85001)
233  + name-hash: retire unused index_name_exists()
234  + hashmap.h: Use 'unsigned int' for hash-codes everywhere
235   (merged to 'next' on 2013-12-16 at bff99b1)
236  + Drop unnecessary #includes from test-hashmap
237  + Add test-hashmap to .gitignore
238   (merged to 'next' on 2013-12-06 at f90be3d)
239  + read-cache.c: fix memory leaks caused by removed cache entries
240  + builtin/update-index.c: cleanup update_one
241  + fix 'git update-index --verbose --again' output
242  + remove old hash.[ch] implementation
243  + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
244  + name-hash.c: use new hash map implementation for cache entries
245  + name-hash.c: remove unreferenced directory entries
246  + name-hash.c: use new hash map implementation for directories
247  + diffcore-rename.c: use new hash map implementation
248  + diffcore-rename.c: simplify finding exact renames
249  + diffcore-rename.c: move code around to prepare for the next patch
250  + buitin/describe.c: use new hash map implementation
251  + add a hashtable implementation that supports O(1) removal
252  + submodule: don't access the .gitmodules cache entry after removing it
254  Improvements to our hash table to get it to meet the needs of the
255  msysgit fscache project, with some nice performance improvements.
257  The tip one does not seem to have reached concensus (yet).
259  Will hold.
262 * jc/create-directories-microopt (2013-11-11) 1 commit
263  - checkout: most of the time we have good leading directories
265  Of unknown value until tested on non-Linux platforms (especially
266  Windows).
268  Will discard.
271 * jt/commit-fixes-footer (2013-10-30) 1 commit
272  - commit: Add -f, --fixes <commit> option to add Fixes: line
274  There is an ongoing discussion around this topic; in general I am
275  fairly negative on a new feature that is too narrow and prefer a
276  more generic solution that can be tailored for specific needs, as
277  many people stated in the thread.
279  cc/interpret-trailers could be such a generic solution (although
280  there don't seem to be much concensus yet).
282  Will discard.
285 * np/pack-v4 (2013-09-18) 90 commits
286  . packv4-parse.c: add tree offset caching
287  . t1050: replace one instance of show-index with verify-pack
288  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
289  . unpack-objects: decode v4 trees
290  . unpack-objects: allow to save processed bytes to a buffer
291  - ...
293  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
294  primarily for wider distribution of the preview edition.
296  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
297  this topic conflicts with.
300 * mf/graph-show-root (2013-10-25) 1 commit
301  . graph.c: mark root commit differently
303  In a repository with multiple-roots, "log --graph", especially with
304  "--oneline", does not give the reader enough visual cue to see
305  where one line of history ended and a separate history began.
307  This is the version that marks the roots 'x' when they would have
308  been marked as '*'; Keshav Kini suggested an alternative of giving
309  an extra blank line after every root, which I tend to think is a
310  better approach to the problem.
312  Will discard.
315 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
316  - perf-lib: add test_perf_cleanup target
317  - perf-lib: split starting the test from the execution
319  Add test_perf_cleanup shell function to the perf suite, that allows
320  the script writers to define a test with a clean-up action.
322  Will hold.
325 * yt/shortened-rename (2013-10-18) 2 commits
326  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
327  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
329  Attempts to give more weight on the fact that a filepair represents
330  a rename than showing substring of the actual path when diffstat
331  lines are not wide enough.
333  I am not sure if that is solving a right problem, though.
335  Will discard.
338 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
339  - git-send-email: Cache generated message-ids, use them when prompting
340  - git-send-email: add optional 'choices' parameter to the ask sub
342  Will discard.
345 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
346  - ### DONTMERGE: needs better explanation on what config they need
347  - pack-refs.c: Add missing call to git_config()
348  - show-ref.c: Add missing call to git_config()
350  The changes themselves are probably good, but it is unclear what
351  basic setting needs to be read for which exact operation.
353  Waiting for clarification.
354  $gmane/228294
357 * jc/format-patch (2013-04-22) 2 commits
358  - format-patch: --inline-single
359  - format-patch: rename "no_inline" field
361  A new option to send a single patch to the standard output to be
362  appended at the bottom of a message.  I personally have no need for
363  this, but it was easy enough to cobble together.  Tests, docs and
364  stripping out more MIMEy stuff are left as exercises to interested
365  parties.
368 * jk/gitweb-utf8 (2013-04-08) 4 commits
369  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
370  - gitweb: Don't append ';js=(0|1)' to external links
371  - gitweb: Make feed title valid utf8
372  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
374  Various fixes to gitweb.
376  Drew Northup volunteered to take a look into this ($gmane/226216)
377  but nothing seems to have happened since then.
379  Will discard.
382 * jc/show-branch (2013-06-07) 5 commits
383  - show-branch: use commit slab to represent bitflags of arbitrary width
384  - show-branch.c: remove "all_mask"
385  - show-branch.c: abstract out "flags" operation
386  - show-branch.c: lift all_mask/all_revs to a global static
387  - show-branch.c: update comment style
389  Waiting for the final step to lift the hard-limit before sending it out.
391 --------------------------------------------------
392 [Cooking]
394 * jc/check-attr-honor-working-tree (2014-02-06) 2 commits
395  - check-attr: move to the top of working tree when in non-bare repository
396  - t0003: do not chdir the whole test process
398  "git check-attr" when (trying to) work on a repository with a
399  working tree did not work well when the working tree was specified
400  via --work-tree (and obviously with --git-dir).
402  The command also works in a bare repository but it reads from the
403  (possibly stale, irrelevant and/or nonexistent) index, which may
404  need to be fixed to read from HEAD, but that is a completely
405  separate issue.  As a related tangentto this separate issue, we may
406  want to also fix "check-ignore", which refuses to work in a bare
407  repository, to also operate in a bare one.
410 * nd/http-fetch-shallow-fix (2014-02-10) 6 commits
411  - fetch-pack: fix deepen shallow over smart http with no-done cap
412  - protocol-capabilities.txt: document no-done
413  - protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt
414  - pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done'
415  - test: rename http fetch and push test files
416  - tests: auto-set LIB_HTTPD_PORT from test name
417  (this branch is tangled with jk/test-ports.)
419  Attempting to deepen a shallow repository by fetching over smart
420  HTTP transport failed in the protocol exchange, when no-done
421  extension was used.  The fetching side waited for the list of
422  shallow boundary commits after the sending end stopped talking to
423  it.
425  Will merge to 'next'.
428 * jk/makefile (2014-02-05) 16 commits
429  - FIXUP
430  - move LESS/LV pager environment to Makefile
431  - Makefile: teach scripts to include make variables
432  - FIXUP
433  - Makefile: auto-build C strings from make variables
434  - Makefile: drop *_SQ variables
435  - FIXUP
436  - Makefile: add c-quote helper function
437  - Makefile: introduce sq function for shell-quoting
438  - Makefile: always create files via make-var
439  - Makefile: store GIT-* sentinel files in MAKE/
440  - Makefile: prefer printf to echo for GIT-*
441  - Makefile: use tempfile/mv strategy for GIT-*
442  - Makefile: introduce make-var helper function
443  - Makefile: fix git-instaweb dependency on gitweb
444  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
446  Simplify the Makefile rules and macros that exist primarily for
447  quoting purposes, and make it easier to robustly express the
448  dependency rules.
450  Expecting a reroll.
453 * ks/tree-diff-walk (2014-02-06) 5 commits
454   (merged to 'next' on 2014-02-06 at d56a3be)
455  + Finally switch over tree descriptors to contain a pre-parsed entry
456  + revision: convert to using diff_tree_sha1()
457  + line-log: convert to using diff_tree_sha1()
458  + tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL
459  + tree-diff: allow diff_tree_sha1 to accept NULL sha1
460  (this branch is used by ks/combine-diff and ks/tree-diff-more.)
462  Will cook in 'next'.
465 * nd/reset-intent-to-add (2014-02-05) 1 commit
466   (merged to 'next' on 2014-02-07 at 3497008)
467  + reset: support "--mixed --intent-to-add" mode
469  Will cook in 'next'.
472 * nd/test-rename-reset (2014-02-04) 1 commit
473   (merged to 'next' on 2014-02-06 at ca188bd)
474  + t7101, t7014: rename test files to indicate what that file is for
476  Will cook in 'next'.
479 * tb/repack-fix-renames (2014-02-05) 1 commit
480  - repack.c: rename a few variables
482  Perhaps unneeded, as the longer-term plan is to drop the codeblock
483  this change touches.
485  Will discard.
488 * tr/remerge-diff (2014-02-05) 6 commits
489  - log --remerge-diff: show what the conflict resolution changed
490  - merge-recursive: allow storing conflict hunks in index
491  - Fold all merge diff variants into an enum
492  - combine-diff: do not pass revs->dense_combined_merges redundantly
493  - log: add a merge base inspection option
494  - pretty: refactor add_merge_info() into parts
495  (this branch uses tr/merge-recursive-index-only.)
497  "log -p" output learns a new way to let users inspect a merge
498  commit by showing the differences between the automerged result
499  with conflicts the person who recorded the merge would have seen
500  and the final conflict resolution that was recorded in the merge.
502  RFC.
505 * bs/stdio-undef-before-redef (2014-01-31) 1 commit
506   (merged to 'next' on 2014-01-31 at 9874918)
507  + git-compat-util.h: #undef (v)snprintf before #define them
509  When we replace broken macros from stdio.h in git-compat-util.h,
510  #undef them to avoid re-definition warnings from the C
511  preprocessor.
513  Will cook in 'next'.
516 * ep/varscope (2014-01-31) 7 commits
517   (merged to 'next' on 2014-01-31 at d198f5d)
518  + builtin/gc.c: reduce scope of variables
519  + builtin/fetch.c: reduce scope of variable
520  + builtin/commit.c: reduce scope of variables
521  + builtin/clean.c: reduce scope of variable
522  + builtin/blame.c: reduce scope of variables
523  + builtin/apply.c: reduce scope of variables
524  + bisect.c: reduce scope of variable
526  Shrink lifetime of variables by moving their definitions to an
527  inner scope where appropriate.
529  Will cook in 'next'.
532 * mw/symlinks (2014-02-04) 6 commits
533   (merged to 'next' on 2014-02-06 at 3d6df37)
534  + setup: don't dereference in-tree symlinks for absolute paths
535  + setup: add abspath_part_inside_repo() function
536  + t0060: add tests for prefix_path when path begins with work tree
537  + t0060: add test for prefix_path when path == work tree
538  + t0060: add test for prefix_path on symlinks via absolute paths
539  + t3004: add test for ls-files on symlinks via absolute paths
541  All subcommands that take pathspecs mishandled an in-tree symbolic
542  link when given it as a full path from the root (which arguably is
543  a sick way to use pathspecs).  "git ls-files -s $(pwd)/RelNotes" in
544  our tree is an easy reproduction recipe.
546  Will cook in 'next'.
549 * ks/combine-diff (2014-02-12) 6 commits
550  - tests: add checking that combine-diff emits only correct paths
551  - combine-diff: simplify intersect_paths() further
552  - combine-diff: combine_diff_path.len is not needed anymore
553  - combine-diff: optimize combine_diff_path sets intersection
554  - diff test: add tests for combine-diff with orderfile
555  - diffcore-order: export generic ordering interface
556  (this branch is used by ks/tree-diff-more; uses ks/tree-diff-walk.)
558  By avoiding running full two-way diff between the resulting
559  revision and each of its N parents, combine-diff can be sped up
560  significantly.
562  Will merge to 'next' after reading it over one more time.
563  Help in reviewing the series is very much appreciated.
566 * bc/gpg-sign-everywhere (2014-02-11) 9 commits
567  - pull: add the --gpg-sign option.
568  - rebase: add the --gpg-sign option
569  - rebase: parse options in stuck-long mode
570  - rebase: don't try to match -M option
571  - rebase: remove useless arguments check
572  - am: add the --gpg-sign option
573  - am: parse options in stuck-long mode
574  - git-sh-setup.sh: add variable to use the stuck-long mode
575  - cherry-pick, revert: add the --gpg-sign option
577  Teach "--gpg-sign" option to many commands that create commits.
579  Changes to some scripted Porcelains use unsafe variable
580  substitutions and still need to be tightened.
582  Will merge to 'next'.
585 * ds/rev-parse-required-args (2014-01-28) 1 commit
586   (merged to 'next' on 2014-01-31 at 73b7514)
587  + rev-parse: check i before using argv[i] against argc
589  "git rev-parse --default" without the required option argument did
590  not diagnose it as an error.
592  Will cook in 'next'.
595 * jk/config-path-include-fix (2014-01-28) 2 commits
596   (merged to 'next' on 2014-01-31 at 8550a9e)
597  + handle_path_include: don't look at NULL value
598  + expand_user_path: do not look at NULL path
600  include.path variable (or any variable that expects a path that can
601  use ~username expansion) in the configuration file is not a
602  boolean, but the code failed to check it.
604  Will cook in 'next'.
607 * jk/repack-honor-pack-keep (2014-01-28) 1 commit
608  - repack: add `repack.honorpackkeep` config var
609  (this branch is tangled with jk/pack-bitmap.)
611  Optionally allow "git repack" to include objects that exist in kept
612  packs in newly created packfiles.
614  Waiting for response to review comments.
617 * nd/submodule-pathspec-ending-with-slash (2014-01-27) 8 commits
618   (merged to 'next' on 2014-01-31 at cfddaa5)
619  + clean: use cache_name_is_other()
620  + clean: replace match_pathspec() with dir_path_match()
621  + Pass directory indicator to match_pathspec_item()
622  + match_pathspec: match pathspec "foo/" against directory "foo"
623  + dir.c: prepare match_pathspec_item for taking more flags
624  + Rename match_pathspec_depth() to match_pathspec()
625  + Convert some match_pathspec_depth() to dir_path_match()
626  + Convert some match_pathspec_depth() to ce_path_match()
628  Allow "git cmd path/", when the 'path' is where a submodule is
629  bound to the top-level working tree, to match 'path', despite the
630  extra and unnecessary trailing slash.
632  Will cook in 'next'.
635 * lt/request-pull (2014-01-31) 4 commits
636  - pull-request: test updates
637  - request-pull: pick up tag message as before
638  - Make request-pull able to take a refspec of form local:remote
639  - Make 'git request-pull' more strict about matching
641  Waiting for the updates to settle.
644 * bk/refresh-missing-ok-in-merge-recursive (2014-01-27) 4 commits
645   (merged to 'next' on 2014-01-29 at 614c158)
646  + merge-recursive.c: Tolerate missing files while refreshing index
647  + read-cache.c: Extend make_cache_entry refresh flag with options
648  + read-cache.c: Refactor --ignore-missing implementation
649  + t3030-merge-recursive: Test known breakage with empty work tree
651  Allows "merge-recursive" to work in an empty (temporary) working
652  tree again when there are renames involved, correcting an old
653  regression in 1.7.7 era.
655  Will cook in 'next'.
658 * nd/diff-quiet-stat-dirty (2014-01-27) 2 commits
659   (merged to 'next' on 2014-01-31 at 8b6e35d)
660  + diff: do not quit early on stat-dirty files
661  + Move diffcore_skip_stat_unmatch core logic out for reuse later
663  "git diff --quiet -- pathspec1 pathspec2" sometimes did not return
664  correct status value.
666  Will cook in 'next'.
669 * cc/interpret-trailers (2014-02-06) 14 commits
670  - Documentation: add documentation for 'git interpret-trailers'
671  - trailer: add tests for commands using env variables
672  - trailer: set author and committer env variables
673  - trailer: add tests for trailer command
674  - trailer: execute command from 'trailer.<name>.command'
675  - trailer: if no input file is passed, read from stdin
676  - trailer: add tests for "git interpret-trailers"
677  - trailer: add interpret-trailers command
678  - trailer: put all the processing together and print
679  - trailer: parse trailers from input file
680  - trailer: process command line trailer arguments
681  - trailer: read and process config information
682  - trailer: process trailers from file and arguments
683  - Add data structures and basic functions for commit trailers
686 * dk/blame-janitorial (2014-02-12) 4 commits
687  - blame.c: prepare_lines should not call xrealloc for every line
688   (merged to 'next' on 2014-02-11 at 4af3ebd)
689  + builtin/blame.c::prepare_lines: fix allocation size of sb->lineno
690   (merged to 'next' on 2014-01-29 at 0b7ea97)
691  + Eliminate same_suspect function in builtin/blame.c
692  + builtin/blame.c: struct blame_entry does not need a prev link
694  Code clean-up.
696  Will merge to and cook in 'next'.
699 * ks/diff-c-with-diff-order (2014-02-03) 5 commits
700   (merged to 'next' on 2014-02-04 at 24a8b2e)
701  + combine-diff: simplify intersect_paths() further
702  + combine-diff: combine_diff_path.len is not needed anymore
703  + combine-diff: optimize combine_diff_path sets intersection
704  + diff test: add tests for combine-diff with orderfile
705  + diffcore-order: export generic ordering interface
707  Teach combine-diff to honour the path-output-order imposed by
708  diffcore-order.
710  Will cook in 'next'.
713 * bl/blame-full-history (2014-01-14) 1 commit
714  - blame: new option --prefer-first to better handle merged cherry-picks
716  By disabling the tree-same optimization (which is consistent with
717  the default behaviour of "git log"-family of commands), make "git
718  blame" sometimes produce different result from the original code.
720  Because the "git blame" output can give result for each line from
721  only one lineage of the history, however, this can be only useful
722  when you are lucky---unlike "--full-history" of "git log"-family,
723  where we can show commits from both lineages of histories with an
724  equal weight.  See $gmane/240392 for more detailed discussion.
726  Will discard.
729 * da/pull-ff-configuration (2014-01-15) 2 commits
730   (merged to 'next' on 2014-01-22 at 2686b09)
731  + pull: add --ff-only to the help text
732  + pull: add pull.ff configuration
734  "git pull" learned to pay attention to pull.ff configuration
735  variable.
737  Will cook in 'next'.
740 * wk/submodule-on-branch (2014-01-27) 4 commits
741   (merged to 'next' on 2014-02-06 at 03dc3fd)
742  + Documentation: Describe 'submodule update --remote' use case
743  + submodule: Explicit local branch creation in module_clone
744  + submodule: Document module_clone arguments in comments
745  + submodule: Make 'checkout' update_module explicit
747  Makes sure 'submodule update' modes that do not detach HEADs can
748  be used more pleasantly by checking out a concrete branch when
749  cloning them to prime the well.
751  Will cook in 'next'.
754 * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits
755  - get_sha1: drop object/refname ambiguity flag
756  - get_sha1: speed up ambiguous 40-hex test
757  - FIXUP: teach DO_FOR_EACH_NO_RECURSE to prime_ref_dir()
758  - refs: teach for_each_ref a flag to avoid recursion
759  - cat-file: fix a minor memory leak in batch_objects
760  - cat-file: refactor error handling of batch_objects
762  Expecting a reroll.
765 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
766  - remote-hg: do not fail on invalid bookmarks
768  Reported to break tests ($gmane/240005)
769  Expecting a reroll.
772 * jk/pack-bitmap (2014-02-12) 26 commits
773  - ewah: unconditionally ntohll ewah data
774   (merged to 'next' on 2014-01-27 at 0b1dcb5)
775  + ewah: support platforms that require aligned reads
776  + read-cache: use get_be32 instead of hand-rolled ntoh_l
777  + block-sha1: factor out get_be and put_be wrappers
778   (merged to 'next' on 2014-01-16 at ddac2d2)
779  + do not discard revindex when re-preparing packfiles
780   (merged to 'next' on 2014-01-10 at bdbe0a4)
781  + pack-bitmap: implement optional name_hash cache
782  + t/perf: add tests for pack bitmaps
783  + t: add basic bitmap functionality tests
784  + count-objects: recognize .bitmap in garbage-checking
785  + repack: consider bitmaps when performing repacks
786  + repack: handle optional files created by pack-objects
787  + repack: turn exts array into array-of-struct
788  + repack: stop using magic number for ARRAY_SIZE(exts)
789  + pack-objects: implement bitmap writing
790  + rev-list: add bitmap mode to speed up object lists
791  + pack-objects: use bitmaps when packing objects
792  + pack-objects: split add_object_entry
793  + pack-bitmap: add support for bitmap indexes
794  + documentation: add documentation for the bitmap format
795  + ewah: compressed bitmap implementation
796  + compat: add endianness helpers
797  + sha1_file: export `git_open_noatime`
798  + revision: allow setting custom limiter function
799  + pack-objects: factor out name_hash
800  + pack-objects: refactor the packing list
801  + revindex: export new APIs
802  (this branch is tangled with jk/repack-honor-pack-keep.)
804  Borrows the bitmap index into packfiles from JGit to speed up
805  enumeration of objects involved in a commit range without having to
806  fully traverse the history.
808  Will merge to and cook in 'next'.
811 * nv/commit-gpgsign-config (2013-12-17) 3 commits
812   (merged to 'next' on 2014-01-03 at 9780cbb)
813  + test the commit.gpgsign config option
814  + commit-tree: add and document --no-gpg-sign
815  + Add the commit.gpgsign option to sign all commits
817  Introduce commit.gpgsign configuration variable to force every
818  commit to be GPG signed.  The variable cannot be overriden from the
819  command line of some of the commands that create commits except for
820  "git commit" and "git commit-tree", but I am not convinced that it
821  is a good idea to sprinkle support for --no-gpg-sign everywhere.
823  Will cook in 'next'.
826 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
827   (merged to 'next' on 2014-01-07 at 4cdf8d0)
828  + strbuf: remove prefixcmp() and suffixcmp()
830  Endgame for the cc/starts-n-ends-with topic; this needs to be
831  evil-merged with other topics that introduce new uses of
832  prefix/suffix-cmp functions.
834  Will cook in 'next' until Git 2.0.
837 * gj/push-more-verbose-advice (2013-11-13) 1 commit
838   (merged to 'next' on 2013-12-06 at 574b18a)
839  + push: switch default from "matching" to "simple"
841  Originally merged to 'next' on 2013-11-21
843  Explain 'simple' and 'matching' in "git push" advice message; the
844  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
845  of it.
847  Will cook in 'next' until Git 2.0.
850 * tr/merge-recursive-index-only (2014-02-05) 3 commits
851  - merge-recursive: -Xindex-only to leave worktree unchanged
852  - merge-recursive: internal flag to avoid touching the worktree
853  - merge-recursive: remove dead conditional in update_stages()
854  (this branch is used by tr/remerge-diff.)
856  Will hold.
859 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
860   (merged to 'next' on 2013-12-06 at ead2ec8)
861  + git add: -u/-A now affects the entire working tree
863  Will cook in 'next' until Git 2.0.
866 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
867   (merged to 'next' on 2013-12-06 at ae18007)
868  + core.statinfo: remove as promised in Git 2.0
870  Will cook in 'next' until Git 2.0.
873 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
874   (merged to 'next' on 2013-12-06 at 6fad61c)
875  + push: switch default from "matching" to "simple"
877  Will cook in 'next' until Git 2.0.
880 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
881   (merged to 'next' on 2013-12-06 at fbaa75a)
882  + git add <pathspec>... defaults to "-A"
884  Updated endgame for "git add <pathspec>" that defaults to "--all"
885  aka "--no-ignore-removal".
887  Will cook in 'next' until Git 2.0.
890 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
891   (merged to 'next' on 2013-12-06 at 083d67c)
892  + diff: remove "diff-files -q" in a version of Git in a distant future
894  Will cook in 'next' until a distant future.