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