What's cooking (2014/03 #01)
[git.git] / whats-cooking.txt
blob5fa073a88559b3fabe4e3ccd4a20cf751d83967e
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Mar 2014, #01; Tue, 4)
4 X-master-at: 2de34784dfcbb4fe0febe9ab98e0b99138040109
5 X-next-at: d464cb7a99e56a69dc347cdeb1620023efc8669a
7 What's cooking in git.git (Mar 2014, #01; Tue, 4)
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 A handful of "GSoC warm-up microprojects" have been queued on 'pu'.
15 Thanks for reviewing them.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [Graduated to "master"]
25 * al/docs (2014-02-11) 4 commits
26   (merged to 'next' on 2014-02-25 at 0c1a734)
27  + docs/git-blame: explain more clearly the example pickaxe use
28  + docs/git-clone: clarify use of --no-hardlinks option
29  + docs/git-remote: capitalize first word of initial blurb
30  + docs/merge-strategies: remove hyphen from mis-merges
32  Originally merged to 'next' on 2014-02-13
34  A handful of documentation updates, all trivially harmless.
37 * bc/gpg-sign-everywhere (2014-02-11) 9 commits
38   (merged to 'next' on 2014-02-25 at 7db014c)
39  + pull: add the --gpg-sign option.
40  + rebase: add the --gpg-sign option
41  + rebase: parse options in stuck-long mode
42  + rebase: don't try to match -M option
43  + rebase: remove useless arguments check
44  + am: add the --gpg-sign option
45  + am: parse options in stuck-long mode
46  + git-sh-setup.sh: add variable to use the stuck-long mode
47  + cherry-pick, revert: add the --gpg-sign option
49  Originally merged to 'next' on 2014-02-13
51  Teach "--gpg-sign" option to many commands that create commits.
54 * bk/refresh-missing-ok-in-merge-recursive (2014-02-24) 4 commits
55   (merged to 'next' on 2014-02-25 at 2651cb0)
56  + merge-recursive.c: tolerate missing files while refreshing index
57  + read-cache.c: extend make_cache_entry refresh flag with options
58  + read-cache.c: refactor --ignore-missing implementation
59  + t3030-merge-recursive: test known breakage with empty work tree
61  Originally merged to 'next' on 2014-01-29
63  Allow "merge-recursive" to work in an empty (temporary) working
64  tree again when there are renames involved, correcting an old
65  regression in 1.7.7 era.
68 * bs/stdio-undef-before-redef (2014-01-31) 1 commit
69   (merged to 'next' on 2014-02-25 at 77c4b5f)
70  + git-compat-util.h: #undef (v)snprintf before #define them
72  Originally merged to 'next' on 2014-01-31
74  When we replace broken macros from stdio.h in git-compat-util.h,
75  #undef them to avoid re-definition warnings from the C
76  preprocessor.
79 * da/pull-ff-configuration (2014-01-15) 2 commits
80   (merged to 'next' on 2014-02-25 at b9e4f61)
81  + pull: add --ff-only to the help text
82  + pull: add pull.ff configuration
84  Originally merged to 'next' on 2014-01-22
86  "git pull" learned to pay attention to pull.ff configuration
87  variable.
90 * dk/blame-janitorial (2014-02-25) 5 commits
91   (merged to 'next' on 2014-02-25 at d5faeb2)
92  + builtin/blame.c::find_copy_in_blob: no need to scan for region end
93  + blame.c: prepare_lines should not call xrealloc for every line
94  + builtin/blame.c::prepare_lines: fix allocation size of sb->lineno
95  + builtin/blame.c: eliminate same_suspect()
96  + builtin/blame.c: struct blame_entry does not need a prev link
98  Originally merged to 'next' on 2014-02-13
100  Code clean-up.
103 * ds/rev-parse-required-args (2014-01-28) 1 commit
104   (merged to 'next' on 2014-02-25 at bba6e79)
105  + rev-parse: check i before using argv[i] against argc
107  Originally merged to 'next' on 2014-01-31
109  "git rev-parse --default" without the required option argument did
110  not diagnose it as an error.
113 * ep/varscope (2014-01-31) 7 commits
114   (merged to 'next' on 2014-02-25 at e967c7e)
115  + builtin/gc.c: reduce scope of variables
116  + builtin/fetch.c: reduce scope of variable
117  + builtin/commit.c: reduce scope of variables
118  + builtin/clean.c: reduce scope of variable
119  + builtin/blame.c: reduce scope of variables
120  + builtin/apply.c: reduce scope of variables
121  + bisect.c: reduce scope of variable
123  Originally merged to 'next' on 2014-01-31
125  Shrink lifetime of variables by moving their definitions to an
126  inner scope where appropriate.
129 * jk/config-path-include-fix (2014-01-28) 2 commits
130   (merged to 'next' on 2014-02-25 at 3604f75)
131  + handle_path_include: don't look at NULL value
132  + expand_user_path: do not look at NULL path
134  Originally merged to 'next' on 2014-01-31
136  include.path variable (or any variable that expects a path that can
137  use ~username expansion) in the configuration file is not a
138  boolean, but the code failed to check it.
141 * jk/pack-bitmap (2014-02-12) 26 commits
142   (merged to 'next' on 2014-02-25 at 5f65d26)
143  + ewah: unconditionally ntohll ewah data
144  + ewah: support platforms that require aligned reads
145  + read-cache: use get_be32 instead of hand-rolled ntoh_l
146  + block-sha1: factor out get_be and put_be wrappers
147  + do not discard revindex when re-preparing packfiles
148  + pack-bitmap: implement optional name_hash cache
149  + t/perf: add tests for pack bitmaps
150  + t: add basic bitmap functionality tests
151  + count-objects: recognize .bitmap in garbage-checking
152  + repack: consider bitmaps when performing repacks
153  + repack: handle optional files created by pack-objects
154  + repack: turn exts array into array-of-struct
155  + repack: stop using magic number for ARRAY_SIZE(exts)
156  + pack-objects: implement bitmap writing
157  + rev-list: add bitmap mode to speed up object lists
158  + pack-objects: use bitmaps when packing objects
159  + pack-objects: split add_object_entry
160  + pack-bitmap: add support for bitmap indexes
161  + documentation: add documentation for the bitmap format
162  + ewah: compressed bitmap implementation
163  + compat: add endianness helpers
164  + sha1_file: export `git_open_noatime`
165  + revision: allow setting custom limiter function
166  + pack-objects: factor out name_hash
167  + pack-objects: refactor the packing list
168  + revindex: export new APIs
169  (this branch is used by jk/repack-pack-keep-objects.)
171  Originally merged to 'next' on 2014-02-13
173  Borrow the bitmap index into packfiles from JGit to speed up
174  enumeration of objects involved in a commit range without having to
175  fully traverse the history.
178 * jk/test-ports (2014-02-10) 2 commits
179   (merged to 'next' on 2014-02-25 at 86ce2e4)
180  + tests: auto-set git-daemon port
181  + tests: auto-set LIB_HTTPD_PORT from test name
182  (this branch is tangled with nd/http-fetch-shallow-fix.)
184  Originally merged to 'next' on 2014-02-13
186  Avoid having to assign port number to be used in tests manually.
189 * kb/fast-hashmap (2014-02-24) 18 commits
190   (merged to 'next' on 2014-02-25 at 88a98e6)
191  + name-hash: retire unused index_name_exists()
192  + hashmap.h: use 'unsigned int' for hash-codes everywhere
193  + test-hashmap.c: drop unnecessary #includes
194  + .gitignore: test-hashmap is a generated file
195  + read-cache.c: fix memory leaks caused by removed cache entries
196  + builtin/update-index.c: cleanup update_one
197  + fix 'git update-index --verbose --again' output
198  + remove old hash.[ch] implementation
199  + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
200  + name-hash.c: use new hash map implementation for cache entries
201  + name-hash.c: remove unreferenced directory entries
202  + name-hash.c: use new hash map implementation for directories
203  + diffcore-rename.c: use new hash map implementation
204  + diffcore-rename.c: simplify finding exact renames
205  + diffcore-rename.c: move code around to prepare for the next patch
206  + buitin/describe.c: use new hash map implementation
207  + add a hashtable implementation that supports O(1) removal
208  + submodule: don't access the .gitmodules cache entry after removing it
209  (this branch is used by kb/fast-hashmap-pack-struct.)
211  Originally merged to 'next' on 2014-01-03
213  Improvements to our hash table to get it to meet the needs of the
214  msysgit fscache project, with some nice performance improvements.
217 * ks/tree-diff-walk (2014-02-24) 5 commits
218   (merged to 'next' on 2014-02-25 at 17e594f)
219  + tree-walk: finally switch over tree descriptors to contain a pre-parsed entry
220  + revision: convert to using diff_tree_sha1()
221  + line-log: convert to using diff_tree_sha1()
222  + tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL
223  + tree-diff: allow diff_tree_sha1 to accept NULL sha1
224  (this branch is used by ks/combine-diff, ks/tree-diff-more and ks/tree-diff-nway.)
226  Originally merged to 'next' on 2014-02-06
229 * mw/symlinks (2014-02-04) 6 commits
230   (merged to 'next' on 2014-02-25 at 15dc036)
231  + setup: don't dereference in-tree symlinks for absolute paths
232  + setup: add abspath_part_inside_repo() function
233  + t0060: add tests for prefix_path when path begins with work tree
234  + t0060: add test for prefix_path when path == work tree
235  + t0060: add test for prefix_path on symlinks via absolute paths
236  + t3004: add test for ls-files on symlinks via absolute paths
238  Originally merged to 'next' on 2014-02-06
240  All subcommands that take pathspecs mishandled an in-tree symbolic
241  link when given it as a full path from the root (which arguably is
242  a sick way to use pathspecs).  "git ls-files -s $(pwd)/RelNotes" in
243  our tree is an easy reproduction recipe.
246 * nd/diff-quiet-stat-dirty (2014-02-24) 2 commits
247   (merged to 'next' on 2014-02-25 at 7cad1d3)
248  + diff: do not quit early on stat-dirty files
249  + diff.c: move diffcore_skip_stat_unmatch core logic out for reuse later
251  Originally merged to 'next' on 2014-01-31
253  "git diff --quiet -- pathspec1 pathspec2" sometimes did not return
254  correct status value.
257 * nd/http-fetch-shallow-fix (2014-02-13) 7 commits
258   (merged to 'next' on 2014-02-25 at ad4e9c9)
259  + t5537: move http tests out to t5539
260  + fetch-pack: fix deepen shallow over smart http with no-done cap
261  + protocol-capabilities.txt: document no-done
262  + protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt
263  + pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done'
264  + test: rename http fetch and push test files
265  + tests: auto-set LIB_HTTPD_PORT from test name
266  (this branch is tangled with jk/test-ports.)
268  Originally merged to 'next' on 2014-02-13
270  Attempting to deepen a shallow repository by fetching over smart
271  HTTP transport failed in the protocol exchange, when no-done
272  extension was used.  The fetching side waited for the list of
273  shallow boundary commits after the sending end stopped talking to
274  it.
277 * nd/reset-intent-to-add (2014-02-05) 1 commit
278   (merged to 'next' on 2014-02-25 at 0c48245)
279  + reset: support "--mixed --intent-to-add" mode
281  Originally merged to 'next' on 2014-02-07
284 * nd/submodule-pathspec-ending-with-slash (2014-02-24) 8 commits
285   (merged to 'next' on 2014-02-25 at 954b7a2)
286  + clean: use cache_name_is_other()
287  + clean: replace match_pathspec() with dir_path_match()
288  + pathspec: pass directory indicator to match_pathspec_item()
289  + match_pathspec: match pathspec "foo/" against directory "foo"
290  + dir.c: prepare match_pathspec_item for taking more flags
291  + pathspec: rename match_pathspec_depth() to match_pathspec()
292  + pathspec: convert some match_pathspec_depth() to dir_path_match()
293  + pathspec: convert some match_pathspec_depth() to ce_path_match()
295  Originally merged to 'next' on 2014-01-31
297  Allow "git cmd path/", when the 'path' is where a submodule is
298  bound to the top-level working tree, to match 'path', despite the
299  extra and unnecessary trailing slash.
302 * nd/test-rename-reset (2014-02-04) 1 commit
303   (merged to 'next' on 2014-02-25 at 7b25711)
304  + t7101, t7014: rename test files to indicate what that file is for
306  Originally merged to 'next' on 2014-02-06
309 * nv/commit-gpgsign-config (2014-02-24) 3 commits
310   (merged to 'next' on 2014-02-25 at 0baefa2)
311  + test the commit.gpgsign config option
312  + commit-tree: add and document --no-gpg-sign
313  + commit-tree: add the commit.gpgsign option to sign all commits
315  Originally merged to 'next' on 2014-01-03
317  Introduce commit.gpgsign configuration variable to force every
318  commit to be GPG signed.  The variable cannot be overriden from the
319  command line of some of the commands that create commits except for
320  "git commit" and "git commit-tree", but I am not convinced that it
321  is a good idea to sprinkle support for --no-gpg-sign everywhere,
322  which in turn means that this configuration variable may not be
323  such a good idea.
326 * wk/submodule-on-branch (2014-02-24) 4 commits
327   (merged to 'next' on 2014-02-25 at c6d9fef)
328  + Documentation: describe 'submodule update --remote' use case
329  + submodule: explicit local branch creation in module_clone
330  + submodule: document module_clone arguments in comments
331  + submodule: make 'checkout' update_module mode more explicit
333  Originally merged to 'next' on 2014-02-06
335  Make sure 'submodule update' modes that do not detach HEADs can
336  be used more pleasantly by checking out a concrete branch when
337  cloning them to prime the well.
339 --------------------------------------------------
340 [New Topics]
342 * jc/stash-pop-not-popped (2014-02-26) 1 commit
343  - stash pop: mention we did not drop the stash upon failing to apply
345  "stash pop", upon failing to apply the stash, refrains from
346  discarding the stash to avoid information loss.  Be more explicit
347  in the error message.
349  The wording may want to get a bit more bikeshedding, but otherwise
350  it should be OK for 'next'.
353 * bg/install-branch-config-skip-prefix (2014-02-28) 2 commits
354  - branch: use skip_prefix() in install_branch_config()
355  - t3200-branch: test setting branch as own upstream
357  The new test probably wants the longer-term effect of the rejected
358  operation, not just the rejection warning message.
361 * cn/fetch-prune-overlapping-destination (2014-02-28) 2 commits
362  - fetch: handle overlaping refspecs on --prune
363  - fetch: add a failing test for prunning with overlapping refspecs
365  Protect refs in a hierarchy that can come from more than one remote
366  hierarcies from incorrect removal by "git fetch --prune".
368  Comments?
371 * dd/find-graft-with-sha1-pos (2014-02-27) 1 commit
372  - commit.c: use the generic "sha1_pos" function for lookup
374  Replace a hand-rolled binary search with a call to our generic
375  binary search helper function.
378 * dd/use-alloc-grow (2014-03-03) 14 commits
379  - sha1_file.c: use ALLOC_GROW() in pretend_sha1_file()
380  - read-cache.c: use ALLOC_GROW() in add_index_entry()
381  - builtin/mktree.c: use ALLOC_GROW() in append_to_tree()
382  - attr.c: use ALLOC_GROW() in handle_attr_line()
383  - dir.c: use ALLOC_GROW() in create_simplify()
384  - reflog-walk.c: use ALLOC_GROW()
385  - replace_object.c: use ALLOC_GROW() in register_replace_object()
386  - patch-ids.c: use ALLOC_GROW() in add_commit()
387  - diffcore-rename.c: use ALLOC_GROW()
388  - diff.c: use ALLOC_GROW()
389  - commit.c: use ALLOC_GROW() in register_commit_graft()
390  - cache-tree.c: use ALLOC_GROW() in find_subtree()
391  - bundle.c: use ALLOC_GROW() in add_to_ref_list()
392  - builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path()
394  Replace open-coded reallocation with ALLOC_GROW() macro. 
397 * dk/skip-prefix-scan-only-once (2014-03-03) 1 commit
398  - skip_prefix(): scan prefix only once
400  Updaste implementation of skip_prefix() to scan only once; given
401  that most "prefix" arguments to the inline function are constant
402  strings whose strlen() can be determined at the compile time, this
403  might actually make things worse with a compiler with sufficient
404  intelligence.
407 * jk/doc-coding-guideline (2014-02-28) 1 commit
408  - CodingGuidelines: mention C whitespace rules
410  Elaborate on a style niggle that has been part of "mimic existing
411  code".
413  Will merge to 'next'.
416 * jk/shallow-update-fix (2014-02-27) 2 commits
417  - shallow: automatically clean up shallow tempfiles
418  - shallow: use stat_validity to check for up-to-date file
420  Serving objects from a shallow repository needs to write a
421  temporary file to be used, but the serving upload-pack may not have
422  write access to the repository which is meant to be read-only.
425 * jl/doc-submodule-update-checkout (2014-02-28) 1 commit
426  - submodule update: consistently document the '--checkout' option
428  Add missing documentation for "submodule update --checkout".
430  Will merge to 'next'.
433 * jn/bisect-coding-style (2014-03-03) 1 commit
434  - git-bisect.sh: fix a few style issues
436  Will merge to 'next'.
439 * jn/branch-lift-unnecessary-name-length-limit (2014-02-28) 1 commit
440  - branch.c: delete size check of newly tracked branch names
443 * mh/simplify-cache-tree-find (2014-03-04) 2 commits
444  - SQUASH??? use strchrnul
445  - cache_tree_find(): remove redundant checks
448 * nd/strbuf-inline-styles (2014-03-03) 1 commit
449  - strbuf: style fix -- top opening bracket on a separate line
451  Will merge to 'next'.
454 * nd/tag-version-sort (2014-02-27) 1 commit
455  - tag: support --sort=<spec>
457  Allow v1.9.0 sorted before v1.10.0 in "git tag --list" output.
460 * rt/help-pretty-prints-cmd-names (2014-02-28) 1 commit
461  - help.c: rename function "pretty_print_string_list"
463  Will merge to 'next'.
466 * sg/archive-restrict-remote (2014-02-28) 2 commits
467  - add uploadarchive.allowUnreachable option
468  - docs: clarify remote restrictions for git-upload-archive
470  Allow loosening remote "git archive" invocation security check that
471  refuses to serve tree-ish not at the tip of any ref.
473  Will merge to 'next'.
477 * sh/finish-tmp-packfile (2014-03-03) 2 commits
478  - finish_tmp_packfile():use strbuf for pathname construction
479  - Merge branch 'sh/write-pack-file-warning-message-fix' into sh/finish-tmp-packfile
480  (this branch uses sh/write-pack-file-warning-message-fix.)
483 * sh/write-pack-file-warning-message-fix (2014-03-03) 1 commit
484  - write_pack_file: use correct variable in diagnostic
485  (this branch is used by sh/finish-tmp-packfile.)
487  A warning from "git pack-objects" were generated by referring to an
488  incorrect variable when forming the filename that we had trouble
489  with.
491  Will merge to 'next'.
494 * sr/add--interactive-term-readkey (2014-03-03) 2 commits
495  - git-add--interactive: warn if module for interactive.singlekey is missing
496  - git-config: document interactive.singlekey requires Term::ReadKey
498  Will merge to 'next'.
501 * ta/parse-commit-with-skip-prefix (2014-03-04) 1 commit
502  - commit.c: use skip_prefix() instead of starts_with()
504  Will merge to 'next'.
506 --------------------------------------------------
507 [Stalled]
509 * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit
510  - hashmap.h: make sure map entries are tightly packed
512  I am inclined to drop this; an alternative is to replace it with
513  the "more portable" one that uses #pragma, which I am willing to
514  try doing so on 'pu', though.
517 * po/everyday-doc (2014-01-27) 1 commit
518  - Make 'git help everyday' work
520  This may make the said command to emit something, but the source is
521  not meant to be formatted into a manual pages to begin with, and
522  also its contents are a bit stale.  It may be a good first step in
523  the right direction, but needs more work to at least get the
524  mark-up right before public consumption.
526  Will hold.
529 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
530  - t1507 (rev-parse-upstream): fix typo in test title
531  - implement @{publish} shorthand
532  - branch_get: provide per-branch pushremote pointers
533  - branch_get: return early on error
534  - sha1_name: refactor upstream_mark
536  Give an easier access to the tracking branches from "other" side in
537  a triangular workflow by introducing B@{publish} that works in a
538  similar way to how B@{upstream} does.
540  Meant to be used as a basis for whatever Ram wants to build on.
542  Will hold.
545 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
546  - merge: drop unused arg from abort_commit method signature
547  - merge: make prepare_to_commit responsible for write_merge_state
548  - t7505: ensure cleanup after hook blocks merge
549  - t7505: add missing &&
551  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
552  run during "git merge".  The log message stresses too much on one
553  hook, prepare-commit-msg, but it would equally apply to other hooks
554  like post-merge, I think.
556  Waiting for a reroll.
559 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
560  - Teach checkout to recursively checkout submodules
561  - submodule: teach unpack_trees() to update submodules
562  - submodule: teach unpack_trees() to repopulate submodules
563  - submodule: teach unpack_trees() to remove submodule contents
564  - submodule: prepare for recursive checkout of submodules
566  Expecting a reroll.
569 * jc/graph-post-root-gap (2013-12-30) 3 commits
570  - WIP: document what we want at the end
571  - graph: remove unused code a bit
572  - graph: stuff the current commit into graph->columns[]
574  This was primarily a RFH ($gmane/239580).
577 * fc/completion (2013-12-09) 1 commit
578  - completion: fix completion of certain aliases
580  SZEDER Gábor noticed that this breaks "git -c var=val alias" and
581  also suggested a better description of the change.
583  Has been stalled for a while without much comments from anybody
584  interested.
586  Will discard.
589 * mo/subtree-split-updates (2013-12-10) 3 commits
590  - subtree: add --edit option
591  - subtree: allow --squash and --message with push
592  - subtree: support split --rejoin --squash
594  Has been stalled for a while without much comments from anybody
595  interested.
597  Will discard.
600 * hv/submodule-ignore-fix (2013-12-06) 4 commits
601  - disable complete ignorance of submodules for index <-> HEAD diff
602  - always show committed submodules in summary after commit
603  - teach add -f option for ignored submodules
604  - fix 'git add' to skip submodules configured as ignored
606  Teach "git add" to be consistent with "git status" when changes to
607  submodules are set to be ignored, to avoid surprises after checking
608  with "git status" to see there isn't any change to be further added
609  and then see that "git add ." adds changes to them.
611  I think a reroll is coming, so this may need to be replaced, but I
612  needed some practice with heavy conflict resolution.  It conflicts
613  with two changes to "git add" that have been scheduled for Git 2.0
614  quite badly, and I think I got the resolution right this time.
616  Waiting for a reroll.
619 * jc/create-directories-microopt (2013-11-11) 1 commit
620  - checkout: most of the time we have good leading directories
622  Of unknown value until tested on non-Linux platforms (especially
623  Windows).
625  Will discard.
628 * jt/commit-fixes-footer (2013-10-30) 1 commit
629  - commit: Add -f, --fixes <commit> option to add Fixes: line
631  There is an ongoing discussion around this topic; in general I am
632  fairly negative on a new feature that is too narrow and prefer a
633  more generic solution that can be tailored for specific needs, as
634  many people stated in the thread.
636  cc/interpret-trailers could be such a generic solution (although
637  there don't seem to be much concensus yet).
639  Will discard.
642 * np/pack-v4 (2013-09-18) 90 commits
643  . packv4-parse.c: add tree offset caching
644  . t1050: replace one instance of show-index with verify-pack
645  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
646  . unpack-objects: decode v4 trees
647  . unpack-objects: allow to save processed bytes to a buffer
648  - ...
650  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
651  primarily for wider distribution of the preview edition.
653  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
654  this topic conflicts with.
657 * mf/graph-show-root (2013-10-25) 1 commit
658  . graph.c: mark root commit differently
660  In a repository with multiple-roots, "log --graph", especially with
661  "--oneline", does not give the reader enough visual cue to see
662  where one line of history ended and a separate history began.
664  This is the version that marks the roots 'x' when they would have
665  been marked as '*'; Keshav Kini suggested an alternative of giving
666  an extra blank line after every root, which I tend to think is a
667  better approach to the problem.
669  Will discard.
672 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
673  - perf-lib: add test_perf_cleanup target
674  - perf-lib: split starting the test from the execution
676  Add test_perf_cleanup shell function to the perf suite, that allows
677  the script writers to define a test with a clean-up action.
679  Will hold.
682 * yt/shortened-rename (2013-10-18) 2 commits
683  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
684  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
686  Attempts to give more weight on the fact that a filepair represents
687  a rename than showing substring of the actual path when diffstat
688  lines are not wide enough.
690  I am not sure if that is solving a right problem, though.
692  Will discard.
695 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
696  - git-send-email: Cache generated message-ids, use them when prompting
697  - git-send-email: add optional 'choices' parameter to the ask sub
699  Will discard.
702 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
703  - ### DONTMERGE: needs better explanation on what config they need
704  - pack-refs.c: Add missing call to git_config()
705  - show-ref.c: Add missing call to git_config()
707  The changes themselves are probably good, but it is unclear what
708  basic setting needs to be read for which exact operation.
710  Will discard, tired of waiting for clarification.
711  $gmane/228294
714 * jc/format-patch (2013-04-22) 2 commits
715  - format-patch: --inline-single
716  - format-patch: rename "no_inline" field
718  A new option to send a single patch to the standard output to be
719  appended at the bottom of a message.  I personally have no need for
720  this, but it was easy enough to cobble together.  Tests, docs and
721  stripping out more MIMEy stuff are left as exercises to interested
722  parties.
725 * jk/gitweb-utf8 (2013-04-08) 4 commits
726  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
727  - gitweb: Don't append ';js=(0|1)' to external links
728  - gitweb: Make feed title valid utf8
729  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
731  Various fixes to gitweb.
733  Drew Northup volunteered to take a look into this ($gmane/226216)
734  but nothing seems to have happened since then.
736  Will discard.
739 * jc/show-branch (2013-06-07) 5 commits
740  - show-branch: use commit slab to represent bitflags of arbitrary width
741  - show-branch.c: remove "all_mask"
742  - show-branch.c: abstract out "flags" operation
743  - show-branch.c: lift all_mask/all_revs to a global static
744  - show-branch.c: update comment style
746  Waiting for the final step to lift the hard-limit before sending it out.
748 --------------------------------------------------
749 [Cooking]
751 * ak/gitweb-fit-image (2014-02-20) 1 commit
752  - gitweb: Avoid overflowing page body frame with large images
754  Instead of allowing an <img> to be shown in whatever size, force
755  scaling it to fit on the page with max-height/max-width css style
756  attributes.
758  Will merge to 'next'.
761 * da/difftool-git-files (2014-02-25) 2 commits
762  - WIP: test to protect the previous fix
763  - difftool: support repositories with .git-files
765  "git difftool" misbehaved when the repository is bound to the
766  working tree with the ".git file" mechanism, where a textual
767  file ".git" tells us where it is.
769  Will merge to 'next'.
772 * jk/commit-dates-parsing-fix (2014-02-24) 5 commits
773  - log: do not segfault on gmtime errors
774  - log: handle integer overflow in timestamps
775  - date: check date overflow against time_t
776  - fsck: report integer overflow in author timestamps
777  - t4212: test bogus timestamps with git-log
779  Will merge to 'next'.
782 * jk/diff-filespec-cleanup (2014-02-24) 1 commit
783  - diffcore.h: be explicit about the signedness of is_binary
785  Will merge to 'next' and then to 'master' and 'maint'.
788 * jk/remote-pushremote-config-reading (2014-02-24) 1 commit
789  - remote: handle pushremote config in any order
791  Will merge to 'next'.
794 * jk/repack-pack-keep-objects (2014-03-03) 1 commit
795  - repack: add `repack.packKeptObjects` config var
798 * jm/stash-doc-k-for-keep (2014-02-24) 1 commit
799  - stash doc: mention short form -k in save description
801  Will merge to 'next'.
804 * jn/am-doc-hooks (2014-02-24) 1 commit
805  - am doc: add a pointer to relevant hooks
807  Will merge to 'next'.
810 * mh/object-code-cleanup (2014-02-24) 4 commits
811  - sha1_file.c: document a bunch of functions defined in the file
812  - sha1_file_name(): declare to return a const string
813  - find_pack_entry(): document last_found_pack
814  - replace_object: use struct members instead of an array
816  Will merge to 'next'.
819 * nd/i18n-progress (2014-02-24) 1 commit
820  - i18n: mark all progress lines for translation
822  Will merge to 'next'.
825 * nd/sha1-file-delta-stack-leakage-fix (2014-02-24) 1 commit
826  - sha1_file: fix delta_stack memory leak in unpack_entry
828  Will merge to 'next' and then to 'master' and 'maint'.
831 * tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit
832  - demonstrate git-commit --dry-run exit code behaviour
835 * fc/transport-helper-fixes (2014-02-24) 7 commits
836  - remote-bzr: support the new 'force' option
837  - test-hg.sh: tests are now expected to pass
838  - transport-helper.c: do not overwrite forced bit
839  - transport-helper: check for 'forced update' message
840  - transport-helper: add 'force' to 'export' helpers
841  - transport-helper: don't update refs in dry-run
842  - transport-helper: mismerge fix
844  Updates transport-helper, fast-import and fast-export to allow the
845  ref mapping and ref deletion in a way similar to the natively
846  supported transports.
848  Will merge to 'next'.
851 * bc/blame-crlf-test (2014-02-18) 1 commit
852  - blame: add a failing test for a CRLF issue.
854  I have a feeling that a fix for this should be fairly isolated and
855  trivial (it should be just the matter of paying attention to the
856  crlf settings when synthesizing the fake commit)---perhaps somebody
857  can squash in a fix to this?
860 * jk/http-no-curl-easy (2014-02-18) 1 commit
861  - http: never use curl_easy_perform
863  Avoid use of the curl-easy family of functions, which interferes
864  with connection reuse in a negative way.
866  Will merge to 'next'.
869 * jk/janitorial-fixes (2014-02-18) 5 commits
870  - open_istream(): do not dereference NULL in the error case
871  - builtin/mv: don't use memory after free
872  - utf8: use correct type for values in interval table
873  - utf8: fix iconv error detection
874  - notes-utils: handle boolean notes.rewritemode correctly
876  Will merge to 'next'.
879 * ks/config-file-stdin (2014-02-18) 4 commits
880  - config: teach "git config --file -" to read from the standard input
881  - config: change git_config_with_options() interface
882  - builtin/config.c: rename check_blob_write() -> check_write()
883  - config: disallow relative include paths from blobs
885  Will merge to 'next'.
888 * lb/contrib-contacts-looser-diff-parsing (2014-02-18) 1 commit
889  - git-contacts: do not fail parsing of good diffs
891  Will merge to 'next'.
894 * mh/replace-refs-variable-rename (2014-02-28) 3 commits
895  - Document some functions defined in object.c
896  - Add docstrings for lookup_replace_object() and do_lookup_replace_object()
897  - rename read_replace_refs to check_replace_refs
899  Will merge to 'next'.
902 * nd/commit-editor-cleanup (2014-02-25) 3 commits
903  - commit: add --cleanup=scissors
904  - wt-status.c: move cut-line print code out to wt_status_add_cut_line
905  - wt-status.c: make cut_line[] const to shrink .data section a bit
907  "git commit --cleanup=<mode>" learned a new mode, scissors.
910 * nd/no-more-fnmatch (2014-02-20) 4 commits
911  - actually remove compat fnmatch source code
912  - stop using fnmatch (either native or compat)
913  - Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch"
914  - use wildmatch() directly without fnmatch() wrapper
916  We started using wildmatch() in place of fnmatch(3); complete the
917  process and stop using fnmatch(3).
919  Will merge to 'next'.
922 * nd/reset-setup-worktree (2014-02-18) 1 commit
923  - reset: optionally setup worktree and refresh index on --mixed
925  "git reset" needs to refresh the index when working in a working
926  tree (it can also be used to match the index to the HEAD in an
927  otherwise bare repository), but it failed to set up the working
928  tree properly, causing GIT_WORK_TREE to be ignored.
930  Will merge to 'next'.
933 * po/git-help-user-manual (2014-02-18) 1 commit
934  - Provide a 'git help user-manual' route to the docbook
936  I am not sure if this is even needed.
939 * rt/links-for-asciidoctor (2014-02-20) 1 commit
940  - Documentation: fix documentation AsciiDoc links for external urls
942  Will merge to 'next'.
945 * tg/index-v4-format (2014-02-24) 3 commits
946  - read-cache: add index.version config variable
947  - test-lib: allow setting the index format version
948  - introduce GIT_INDEX_VERSION environment variable
950  Will merge to 'next'.
953 * tr/diff-submodule-no-reuse-worktree (2014-02-18) 1 commit
954  - diff: do not reuse_worktree_file for submodules
956  "git diff --external-diff" incorrectly fed the submodule directory
957  in the working tree to the external diff driver when it knew it is
958  the same as one of the versions being compared.
960  Will merge to 'next'.
963 * nd/multiple-work-trees (2014-02-19) 26 commits
964  - FIXUP???
965  - gc: support prune --repos
966  - prune: strategies for linked checkouts
967  - checkout: detach if the branch is already checked out elsewhere
968  - checkout: clean up half-prepared directories in --to mode
969  - checkout: support checking out into a new working directory
970  - use new wrapper write_file() for simple file writing
971  - wrapper.c: wrapper to open a file, fprintf then close
972  - setup.c: support multi-checkout repo setup
973  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
974  - setup.c: convert check_repository_format_gently to use strbuf
975  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
976  - setup.c: convert is_git_directory() to use strbuf
977  - git-stash: avoid hardcoding $GIT_DIR/logs/....
978  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
979  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
980  - Add new environment variable $GIT_COMMON_DIR
981  - commit: use SEQ_DIR instead of hardcoding "sequencer"
982  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
983  - reflog: avoid constructing .lock path with git_path
984  - *.sh: respect $GIT_INDEX_FILE
985  - Make git_path() aware of file relocation in $GIT_DIR
986  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
987  - path.c: rename vsnpath() to do_git_path()
988  - Convert git_snpath() to strbuf_git_path()
989  - path.c: make get_pathname() return strbuf instead of static buffer
991  The tip commit needs to be dropped; the series needs a serious review.
994 * ks/tree-diff-nway (2014-03-04) 19 commits
995  - combine-diff: speed it up, by using multiparent diff tree-walker directly
996  - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
997  - Portable alloca for Git
998  - tree-diff: reuse base str(buf) memory on sub-tree recursion
999  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
1000  - tree-diff: rework diff_tree interface to be sha1 based
1001  - tree-diff: diff_tree() should now be static
1002  - tree-diff: remove special-case diff-emitting code for empty-tree cases
1003  - tree-diff: simplify tree_entry_pathcmp
1004  - tree-diff: show_path prototype is not needed anymore
1005  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
1006  - tree-diff: move all action-taking code out of compare_tree_entry()
1007  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
1008  - tree-diff: consolidate code for emitting diffs and recursion in one place
1009  - tree-diff: show_tree() is not needed
1010  - tree-diff: no need to pass match to skip_uninteresting()
1011  - tree-diff: no need to manually verify that there is no mode change for a path
1012  - combine-diff: move changed-paths scanning logic into its own function
1013  - combine-diff: move show_log_first logic/action out of paths scanning
1014  (this branch uses ks/combine-diff.)
1016  Instead of running N pair-wise diff-trees when inspecting a
1017  N-parent merge, find the set of paths that were touched by walking
1018  N+1 trees in parallel.  These set of paths can then be turned into
1019  N pair-wise diff-tree results to be processed through rename
1020  detections and such.  And N=2 case nicely degenerates to the usual
1021  2-way diff-tree, which is very nice.
1024 * nd/daemonize-gc (2014-02-10) 2 commits
1025   (merged to 'next' on 2014-02-25 at f592335)
1026  + gc: config option for running --auto in background
1027  + daemon: move daemonize() to libgit.a
1029  Originally merged to 'next' on 2014-02-20
1031  Allow running "gc --auto" in the background.
1033  Will merge to 'master'.
1036 * nd/gitignore-trailing-whitespace (2014-02-10) 2 commits
1037  - dir: ignore trailing spaces in exclude patterns
1038  - dir: warn about trailing spaces in exclude patterns
1040  Warn and then ignore trailing whitespaces in .gitignore files,
1041  unless they are quoted for fnmatch(3), e.g. "path\ ".
1043  Will merge to 'next'.
1046 * nd/log-show-linear-break (2014-02-10) 1 commit
1047  - log: add --show-linear-break to help see non-linear history
1049  Attempts to show where a single-strand-of-pearls break in "git log"
1050  output.
1052  "git log --no-merges --show-linear-break" does not seem to work
1053  well (tried on range "pu~10..pu" or something like that).
1056 * ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit
1057  - completion: teach --recurse-submodules to fetch, pull and push
1059  Will merge to 'next'.
1062 * jh/note-trees-record-blobs (2014-02-20) 1 commit
1063  - notes: disallow reusing non-blob as a note object
1065  "git notes -C <blob>" should not take an object that is not a blob.
1067  Will merge to 'next'.
1070 * jk/run-network-tests-by-default (2014-02-14) 1 commit
1071   (merged to 'next' on 2014-02-25 at 62a8ad0)
1072  + tests: turn on network daemon tests by default
1074  Originally merged to 'next' on 2014-02-20
1076  Teach "make test" to run networking tests when possible by default.
1078  Will merge to 'master'.
1081 * jc/check-attr-honor-working-tree (2014-02-06) 2 commits
1082  - check-attr: move to the top of working tree when in non-bare repository
1083  - t0003: do not chdir the whole test process
1085  "git check-attr" when (trying to) work on a repository with a
1086  working tree did not work well when the working tree was specified
1087  via --work-tree (and obviously with --git-dir).
1089  The command also works in a bare repository but it reads from the
1090  (possibly stale, irrelevant and/or nonexistent) index, which may
1091  need to be fixed to read from HEAD, but that is a completely
1092  separate issue.  As a related tangentto this separate issue, we may
1093  want to also fix "check-ignore", which refuses to work in a bare
1094  repository, to also operate in a bare one.
1096  Will merge to 'next'.
1099 * jk/makefile (2014-02-05) 16 commits
1100  - FIXUP
1101  - move LESS/LV pager environment to Makefile
1102  - Makefile: teach scripts to include make variables
1103  - FIXUP
1104  - Makefile: auto-build C strings from make variables
1105  - Makefile: drop *_SQ variables
1106  - FIXUP
1107  - Makefile: add c-quote helper function
1108  - Makefile: introduce sq function for shell-quoting
1109  - Makefile: always create files via make-var
1110  - Makefile: store GIT-* sentinel files in MAKE/
1111  - Makefile: prefer printf to echo for GIT-*
1112  - Makefile: use tempfile/mv strategy for GIT-*
1113  - Makefile: introduce make-var helper function
1114  - Makefile: fix git-instaweb dependency on gitweb
1115  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
1117  Simplify the Makefile rules and macros that exist primarily for
1118  quoting purposes, and make it easier to robustly express the
1119  dependency rules.
1121  Expecting a reroll.
1124 * tr/remerge-diff (2014-02-26) 5 commits
1125  . log --remerge-diff: show what the conflict resolution changed
1126  . name-hash: allow dir hashing even when !ignore_case
1127  . merge-recursive: allow storing conflict hunks in index
1128  . revision: fold all merge diff variants into an enum merge_diff_mode
1129  . combine-diff: do not pass revs->dense_combined_merges redundantly
1130  (this branch uses tr/merge-recursive-index-only.)
1132  "log -p" output learns a new way to let users inspect a merge
1133  commit by showing the differences between the automerged result
1134  with conflicts the person who recorded the merge would have seen
1135  and the final conflict resolution that was recorded in the merge.
1137  RFC.  This latest round clashes with the kb/fast-hashmap topic in
1138  'master'.
1141 * ks/combine-diff (2014-02-24) 6 commits
1142   (merged to 'next' on 2014-02-25 at 69e5a87)
1143  + tests: add checking that combine-diff emits only correct paths
1144  + combine-diff: simplify intersect_paths() further
1145  + combine-diff: combine_diff_path.len is not needed anymore
1146  + combine-diff: optimize combine_diff_path sets intersection
1147  + diff test: add tests for combine-diff with orderfile
1148  + diffcore-order: export generic ordering interface
1149  (this branch is used by ks/tree-diff-nway.)
1151  Originally merged to 'next' on 2014-02-20
1153  Teach combine-diff to honour the path-output-order imposed by
1154  diffcore-order, and optimize how matching paths are found in
1155  the N-way diffs made with parents.
1157  Will merge to 'master'.
1160 * lt/request-pull (2014-02-25) 5 commits
1161  - request-pull: resurrect "pretty refname" feature
1162  - request-pull: test updates
1163  - request-pull: pick up tag message as before
1164  - request-pull: allow "local:remote" to specify names on both ends
1165  - request-pull: more strictly match local/remote branches
1167  Needs doc update but otherwise it should be ready for 'next'.
1170 * cc/interpret-trailers (2014-02-20) 14 commits
1171  - Documentation: add documentation for 'git interpret-trailers'
1172  - trailer: add tests for commands using env variables
1173  - trailer: set author and committer env variables
1174  - trailer: add tests for trailer command
1175  - trailer: execute command from 'trailer.<name>.command'
1176  - trailer: if no input file is passed, read from stdin
1177  - trailer: add tests for "git interpret-trailers"
1178  - trailer: add interpret-trailers command
1179  - trailer: put all the processing together and print
1180  - trailer: parse trailers from input file
1181  - trailer: process command line trailer arguments
1182  - trailer: read and process config information
1183  - trailer: process trailers from file and arguments
1184  - trailer: add data structures and basic functions for commit trailers
1186  Will pick up the reroll but not today.
1189 * bl/blame-full-history (2014-01-14) 1 commit
1190  - blame: new option --prefer-first to better handle merged cherry-picks
1192  By disabling the tree-same optimization (which is consistent with
1193  the default behaviour of "git log"-family of commands), make "git
1194  blame" sometimes produce different result from the original code.
1196  Because the "git blame" output can give result for each line from
1197  only one lineage of the history, however, this can be only useful
1198  when you are lucky---unlike "--full-history" of "git log"-family,
1199  where we can show commits from both lineages of histories with an
1200  equal weight.  See $gmane/240392 for more detailed discussion.
1202  Will discard.
1205 * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits
1206  - get_sha1: drop object/refname ambiguity flag
1207  - get_sha1: speed up ambiguous 40-hex test
1208  - FIXUP: teach DO_FOR_EACH_NO_RECURSE to prime_ref_dir()
1209  - refs: teach for_each_ref a flag to avoid recursion
1210  - cat-file: fix a minor memory leak in batch_objects
1211  - cat-file: refactor error handling of batch_objects
1213  Expecting a reroll.
1216 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
1217  - remote-hg: do not fail on invalid bookmarks
1219  Reported to break tests ($gmane/240005)
1220  Expecting a reroll.
1223 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
1224   (merged to 'next' on 2014-02-25 at 473e143)
1225  + strbuf: remove prefixcmp() and suffixcmp()
1227  Originally merged to 'next' on 2014-01-07
1229  Endgame for the cc/starts-n-ends-with topic; this needs to be
1230  evil-merged with other topics that introduce new uses of
1231  prefix/suffix-cmp functions.
1233  Will merge to 'master' for 2.0.0
1236 * gj/push-more-verbose-advice (2013-11-13) 1 commit
1237   (merged to 'next' on 2014-02-25 at 1cd10b0)
1238  + push: switch default from "matching" to "simple"
1240  Originally merged to 'next' on 2013-11-21
1242  Explain 'simple' and 'matching' in "git push" advice message; the
1243  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
1244  of it.
1246  Will merge to 'master' for 2.0.0
1249 * tr/merge-recursive-index-only (2014-02-05) 3 commits
1250  - merge-recursive: -Xindex-only to leave worktree unchanged
1251  - merge-recursive: internal flag to avoid touching the worktree
1252  - merge-recursive: remove dead conditional in update_stages()
1253  (this branch is used by tr/remerge-diff.)
1255  Will hold.
1258 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
1259   (merged to 'next' on 2014-02-25 at 9e5c0d2)
1260  + git add: -u/-A now affects the entire working tree
1262  Originally merged to 'next' on 2013-12-06
1264  Will merge to 'master' for 2.0.0
1267 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
1268   (merged to 'next' on 2014-02-25 at 62f6aeb)
1269  + core.statinfo: remove as promised in Git 2.0
1271  Originally merged to 'next' on 2013-12-06
1273  Will merge to 'master' for 2.0.0
1276 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
1277   (merged to 'next' on 2014-02-25 at 1f0e178)
1278  + push: switch default from "matching" to "simple"
1280  Originally merged to 'next' on 2013-12-06
1282  Will merge to 'master' for 2.0.0
1285 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
1286   (merged to 'next' on 2014-02-25 at a0d018a)
1287  + git add <pathspec>... defaults to "-A"
1289  Originally merged to 'next' on 2013-12-06
1291  Updated endgame for "git add <pathspec>" that defaults to "--all"
1292  aka "--no-ignore-removal".
1294  Will merge to 'master' for 2.0.0
1297 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
1298   (merged to 'next' on 2014-02-25 at ccfff88)
1299  + diff: remove "diff-files -q" in a version of Git in a distant future
1301  Originally merged to 'next' on 2013-12-06
1303  Remove deprecated "-q" option "git diff-files".
1305  Will cook in 'next' until a distant future.
1307 --------------------------------------------------
1308 [Discarded]
1310 * tb/repack-fix-renames (2014-02-05) 1 commit
1311  . repack.c: rename a few variables
1313  Perhaps unneeded, as the longer-term plan is to drop the codeblock
1314  this change touches.
1317 * ks/diff-c-with-diff-order (2014-02-03) 5 commits
1318  . combine-diff: simplify intersect_paths() further
1319  . combine-diff: combine_diff_path.len is not needed anymore
1320  . combine-diff: optimize combine_diff_path sets intersection
1321  . diff test: add tests for combine-diff with orderfile
1322  . diffcore-order: export generic ordering interface
1324  Now part of ks/combine-diff topic.
1327 * ks/tree-diff-more (2014-02-24) 15 commits
1328  - tree-diff: reuse base str(buf) memory on sub-tree recursion
1329  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
1330  - tree-diff: rework diff_tree interface to be sha1 based
1331  - tree-diff: remove special-case diff-emitting code for empty-tree cases
1332  - tree-diff: simplify tree_entry_pathcmp
1333  - tree-diff: show_path prototype is not needed anymore
1334  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
1335  - tree-diff: move all action-taking code out of compare_tree_entry()
1336  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
1337  - tree-diff: consolidate code for emitting diffs and recursion in one place
1338  - tree-diff: show_tree() is not needed
1339  - tree-diff: no need to pass match to skip_uninteresting()
1340  - tree-diff: no need to manually verify that there is no mode change for a path
1341  - combine-diff: move changed-paths scanning logic into its own function
1342  - combine-diff: move show_log_first logic/action out of paths scanning
1343  (this branch is used by ks/tree-diff-nway; uses ks/combine-diff.)
1345  Code refactoring.
1347  Now part of ks/tree-diff-nway.