What's cooking (2014/05 #02)
[alt-git.git] / whats-cooking.txt
blob0df702e116d4f3bcfe7e5b5c2d0b271e3ed7ff5d
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Mar 2014, #02; Tue, 11)
4 X-master-at: 384364b5f1aa0c3b7610a1b3c9eca2c210e61b41
5 X-next-at: d838d6f000d8078a1e28d6780f767cb925fb2632
7 What's cooking in git.git (Mar 2014, #02; Tue, 11)
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 Topics that have been cooking in 'next' for 2.0 have been merged to
15 'master', which means we are committed to make the next one a big
16 release.  Kind of scary, isn't it?
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 [Graduated to "master"]
26 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
27   (merged to 'next' on 2014-02-25 at 473e143)
28  + strbuf: remove prefixcmp() and suffixcmp()
30  Originally merged to 'next' on 2014-01-07
32  Endgame for the cc/starts-n-ends-with topic; this needs to be
33  evil-merged with other topics that introduce new uses of
34  prefix/suffix-cmp functions.
37 * gj/push-more-verbose-advice (2013-11-13) 1 commit
38   (merged to 'next' on 2014-02-25 at 1cd10b0)
39  + push: switch default from "matching" to "simple"
41  Originally merged to 'next' on 2013-11-21
43  Explain 'simple' and 'matching' in "git push" advice message; the
44  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
45  of it.
48 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
49   (merged to 'next' on 2014-02-25 at a0d018a)
50  + git add <pathspec>... defaults to "-A"
52  Originally merged to 'next' on 2013-12-06
54  Updated endgame for "git add <pathspec>" that defaults to "--all"
55  aka "--no-ignore-removal".
58 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
59   (merged to 'next' on 2014-02-25 at 62f6aeb)
60  + core.statinfo: remove as promised in Git 2.0
62  Originally merged to 'next' on 2013-12-06
65 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
66   (merged to 'next' on 2014-02-25 at ccfff88)
67  + diff: remove "diff-files -q" in a version of Git in a distant future
69  Originally merged to 'next' on 2013-12-06
71  Remove deprecated "-q" option "git diff-files".
74 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
75   (merged to 'next' on 2014-02-25 at 1f0e178)
76  + push: switch default from "matching" to "simple"
78  Originally merged to 'next' on 2013-12-06
81 * jk/run-network-tests-by-default (2014-02-14) 1 commit
82   (merged to 'next' on 2014-02-25 at 62a8ad0)
83  + tests: turn on network daemon tests by default
85  Originally merged to 'next' on 2014-02-20
87  Teach "make test" to run networking tests when possible by default.
90 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
91   (merged to 'next' on 2014-02-25 at 9e5c0d2)
92  + git add: -u/-A now affects the entire working tree
94  Originally merged to 'next' on 2013-12-06
97 * ks/combine-diff (2014-02-24) 6 commits
98   (merged to 'next' on 2014-02-25 at 69e5a87)
99  + tests: add checking that combine-diff emits only correct paths
100  + combine-diff: simplify intersect_paths() further
101  + combine-diff: combine_diff_path.len is not needed anymore
102  + combine-diff: optimize combine_diff_path sets intersection
103  + diff test: add tests for combine-diff with orderfile
104  + diffcore-order: export generic ordering interface
105  (this branch is used by ks/tree-diff-nway.)
107  Originally merged to 'next' on 2014-02-20
109  Teach combine-diff to honour the path-output-order imposed by
110  diffcore-order, and optimize how matching paths are found in
111  the N-way diffs made with parents.
114 * nd/daemonize-gc (2014-02-10) 2 commits
115   (merged to 'next' on 2014-02-25 at f592335)
116  + gc: config option for running --auto in background
117  + daemon: move daemonize() to libgit.a
119  Originally merged to 'next' on 2014-02-20
121  Allow running "gc --auto" in the background.
123 --------------------------------------------------
124 [New Topics]
126 * jk/detect-push-typo-early (2014-03-05) 3 commits
127  - push: detect local refspec errors early
128  - match_explicit_lhs: allow a "verify only" mode
129  - match_explicit: hoist refspec lhs checks into their own function
131  Catch "git push $there no-such-branch" early.
133  Will merge to 'next'.
136 * jk/diff-funcname-cpp-regex (2014-03-05) 1 commit
137  - diff: simplify cpp funcname regex
139  Has the discussion settled on this?
142 * jk/doc-deprecate-grafts (2014-03-05) 1 commit
143  - docs: mark info/grafts as outdated
145  Will merge to 'next'.
148 * rm/strchrnul-not-strlen (2014-03-10) 1 commit
149  - use strchrnul() in place of strchr() and strlen()
151  Will merge to 'next'.
154 * sh/use-hashcpy (2014-03-06) 1 commit
155  - Use hashcpy() when copying object names
157  Will merge to 'next'.
160 * jc/no-need-for-env-in-sh-scripts (2014-03-06) 1 commit
161  - *.sh: drop useless use of "env"
163  Will merge to 'next'.
166 * jc/tag-contains-with (2014-03-07) 1 commit
167  - tag: grok "--with" as synonym to "--contains"
169  Will merge to 'next'.
172 * bp/commit-p-editor (2014-03-11) 8 commits
173  - run-command: mark run_hook_with_custom_index as deprecated
174  - merge hook tests: fix and update tests
175  - merge: fix GIT_EDITOR override for commit hook
176  - commit: fix patch hunk editing with "commit -p -m"
177  - SQUASH???
178  - test patch hunk editing with "commit -p -m"
179  - merge hook tests: use 'test_must_fail' instead of '!'
180  - merge hook tests: fix missing '&&' in test
183 * cp/am-patch-format-doc (2014-03-11) 1 commit
184  - Documentation/git-am: Document supported --patch-format options
186  Will merge to 'next'.
189 * dm/configure-iconv-locale-charset (2014-03-11) 1 commit
190  - configure.ac: link with -liconv for locale_charset()
193 * jk/clean-d-pathspec (2014-03-11) 2 commits
194  - clean: simplify dir/not-dir logic
195  - clean: respect pathspecs with "-d"
197  "git clean -d pathspec" did not use pathspec correctly.
199  Will merge to 'next' and later down to 'maint'.
202 * jk/mv-submodules-fix (2014-03-11) 2 commits
203  - mv: prevent mismatched data when ignoring errors.
204  - builtin/mv: fix out of bounds write
206  Needs tests.
209 * nd/upload-pack-shallow (2014-03-11) 1 commit
210  - upload-pack: send shallow info over stdin to pack-objects
212  Will merge to 'next'.
215 * rs/grep-h-c (2014-03-11) 2 commits
216  - grep: support -h (no header) with --count
217  - t7810: add missing variables to tests in loop
219  "git grep" learns to handle combination of "-h (no header)" and "-c
220  (counts)".
222  Will merge to 'next'.
224 --------------------------------------------------
225 [Stalled]
227 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
228  - remote-hg: do not fail on invalid bookmarks
230  Reported to break tests ($gmane/240005)
231  Expecting a reroll.
234 * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits
235  - get_sha1: drop object/refname ambiguity flag
236  - get_sha1: speed up ambiguous 40-hex test
237  - FIXUP: teach DO_FOR_EACH_NO_RECURSE to prime_ref_dir()
238  - refs: teach for_each_ref a flag to avoid recursion
239  - cat-file: fix a minor memory leak in batch_objects
240  - cat-file: refactor error handling of batch_objects
242  Expecting a reroll.
245 * jk/makefile (2014-02-05) 16 commits
246  - FIXUP
247  - move LESS/LV pager environment to Makefile
248  - Makefile: teach scripts to include make variables
249  - FIXUP
250  - Makefile: auto-build C strings from make variables
251  - Makefile: drop *_SQ variables
252  - FIXUP
253  - Makefile: add c-quote helper function
254  - Makefile: introduce sq function for shell-quoting
255  - Makefile: always create files via make-var
256  - Makefile: store GIT-* sentinel files in MAKE/
257  - Makefile: prefer printf to echo for GIT-*
258  - Makefile: use tempfile/mv strategy for GIT-*
259  - Makefile: introduce make-var helper function
260  - Makefile: fix git-instaweb dependency on gitweb
261  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
263  Simplify the Makefile rules and macros that exist primarily for
264  quoting purposes, and make it easier to robustly express the
265  dependency rules.
267  Expecting a reroll.
270 * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit
271  - hashmap.h: make sure map entries are tightly packed
273  I am inclined to drop this; an alternative is to replace it with
274  the "more portable" one that uses #pragma, which I am willing to
275  try doing so on 'pu', though.
278 * po/everyday-doc (2014-01-27) 1 commit
279  - Make 'git help everyday' work
281  This may make the said command to emit something, but the source is
282  not meant to be formatted into a manual pages to begin with, and
283  also its contents are a bit stale.  It may be a good first step in
284  the right direction, but needs more work to at least get the
285  mark-up right before public consumption.
287  Will hold.
290 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
291  - t1507 (rev-parse-upstream): fix typo in test title
292  - implement @{publish} shorthand
293  - branch_get: provide per-branch pushremote pointers
294  - branch_get: return early on error
295  - sha1_name: refactor upstream_mark
297  Give an easier access to the tracking branches from "other" side in
298  a triangular workflow by introducing B@{publish} that works in a
299  similar way to how B@{upstream} does.
301  Meant to be used as a basis for whatever Ram wants to build on.
303  Will hold.
306 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
307  - merge: drop unused arg from abort_commit method signature
308  - merge: make prepare_to_commit responsible for write_merge_state
309  - t7505: ensure cleanup after hook blocks merge
310  - t7505: add missing &&
312  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
313  run during "git merge".  The log message stresses too much on one
314  hook, prepare-commit-msg, but it would equally apply to other hooks
315  like post-merge, I think.
317  Waiting for a reroll.
320 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
321  - Teach checkout to recursively checkout submodules
322  - submodule: teach unpack_trees() to update submodules
323  - submodule: teach unpack_trees() to repopulate submodules
324  - submodule: teach unpack_trees() to remove submodule contents
325  - submodule: prepare for recursive checkout of submodules
327  Expecting a reroll.
330 * jc/graph-post-root-gap (2013-12-30) 3 commits
331  - WIP: document what we want at the end
332  - graph: remove unused code a bit
333  - graph: stuff the current commit into graph->columns[]
335  This was primarily a RFH ($gmane/239580).
338 * fc/completion (2013-12-09) 1 commit
339  - completion: fix completion of certain aliases
341  SZEDER Gábor noticed that this breaks "git -c var=val alias" and
342  also suggested a better description of the change.
344  Has been stalled for a while without much comments from anybody
345  interested.
347  Will discard.
350 * mo/subtree-split-updates (2013-12-10) 3 commits
351  - subtree: add --edit option
352  - subtree: allow --squash and --message with push
353  - subtree: support split --rejoin --squash
355  Has been stalled for a while without much comments from anybody
356  interested.
358  Will discard.
361 * hv/submodule-ignore-fix (2013-12-06) 4 commits
362  - disable complete ignorance of submodules for index <-> HEAD diff
363  - always show committed submodules in summary after commit
364  - teach add -f option for ignored submodules
365  - fix 'git add' to skip submodules configured as ignored
367  Teach "git add" to be consistent with "git status" when changes to
368  submodules are set to be ignored, to avoid surprises after checking
369  with "git status" to see there isn't any change to be further added
370  and then see that "git add ." adds changes to them.
372  I think a reroll is coming, so this may need to be replaced, but I
373  needed some practice with heavy conflict resolution.  It conflicts
374  with two changes to "git add" that have been scheduled for Git 2.0
375  quite badly, and I think I got the resolution right this time.
377  Waiting for a reroll.
380 * jc/create-directories-microopt (2013-11-11) 1 commit
381  - checkout: most of the time we have good leading directories
383  Of unknown value until tested on non-Linux platforms (especially
384  Windows).
386  Will discard.
389 * jt/commit-fixes-footer (2013-10-30) 1 commit
390  - commit: Add -f, --fixes <commit> option to add Fixes: line
392  There is an ongoing discussion around this topic; in general I am
393  fairly negative on a new feature that is too narrow and prefer a
394  more generic solution that can be tailored for specific needs, as
395  many people stated in the thread.
397  cc/interpret-trailers could be such a generic solution (although
398  there don't seem to be much concensus yet).
400  Will discard.
403 * np/pack-v4 (2013-09-18) 90 commits
404  . packv4-parse.c: add tree offset caching
405  . t1050: replace one instance of show-index with verify-pack
406  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
407  . unpack-objects: decode v4 trees
408  . unpack-objects: allow to save processed bytes to a buffer
409  - ...
411  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
412  primarily for wider distribution of the preview edition.
414  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
415  this topic conflicts with.
418 * mf/graph-show-root (2013-10-25) 1 commit
419  . graph.c: mark root commit differently
421  In a repository with multiple-roots, "log --graph", especially with
422  "--oneline", does not give the reader enough visual cue to see
423  where one line of history ended and a separate history began.
425  This is the version that marks the roots 'x' when they would have
426  been marked as '*'; Keshav Kini suggested an alternative of giving
427  an extra blank line after every root, which I tend to think is a
428  better approach to the problem.
430  Will discard.
433 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
434  - perf-lib: add test_perf_cleanup target
435  - perf-lib: split starting the test from the execution
437  Add test_perf_cleanup shell function to the perf suite, that allows
438  the script writers to define a test with a clean-up action.
440  Will hold.
443 * yt/shortened-rename (2013-10-18) 2 commits
444  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
445  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
447  Attempts to give more weight on the fact that a filepair represents
448  a rename than showing substring of the actual path when diffstat
449  lines are not wide enough.
451  I am not sure if that is solving a right problem, though.
453  Will discard.
456 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
457  - git-send-email: Cache generated message-ids, use them when prompting
458  - git-send-email: add optional 'choices' parameter to the ask sub
460  Will discard.
463 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
464  - ### DONTMERGE: needs better explanation on what config they need
465  - pack-refs.c: Add missing call to git_config()
466  - show-ref.c: Add missing call to git_config()
468  The changes themselves are probably good, but it is unclear what
469  basic setting needs to be read for which exact operation.
471  Will discard, tired of waiting for clarification.
472  $gmane/228294
475 * jc/format-patch (2013-04-22) 2 commits
476  - format-patch: --inline-single
477  - format-patch: rename "no_inline" field
479  A new option to send a single patch to the standard output to be
480  appended at the bottom of a message.  I personally have no need for
481  this, but it was easy enough to cobble together.  Tests, docs and
482  stripping out more MIMEy stuff are left as exercises to interested
483  parties.
486 * jk/gitweb-utf8 (2013-04-08) 4 commits
487  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
488  - gitweb: Don't append ';js=(0|1)' to external links
489  - gitweb: Make feed title valid utf8
490  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
492  Various fixes to gitweb.
494  Drew Northup volunteered to take a look into this ($gmane/226216)
495  but nothing seems to have happened since then.
497  Will discard.
500 * jc/show-branch (2013-06-07) 5 commits
501  - show-branch: use commit slab to represent bitflags of arbitrary width
502  - show-branch.c: remove "all_mask"
503  - show-branch.c: abstract out "flags" operation
504  - show-branch.c: lift all_mask/all_revs to a global static
505  - show-branch.c: update comment style
507  Waiting for the final step to lift the hard-limit before sending it out.
509 --------------------------------------------------
510 [Cooking]
512 * jc/stash-pop-not-popped (2014-02-26) 1 commit
513  - stash pop: mention we did not drop the stash upon failing to apply
515  "stash pop", upon failing to apply the stash, refrains from
516  discarding the stash to avoid information loss.  Be more explicit
517  in the error message.
519  The wording may want to get a bit more bikeshedding, but otherwise
520  it should be OK for 'next'.
523 * bg/install-branch-config-skip-prefix (2014-03-06) 2 commits
524  - branch: use skip_prefix() in install_branch_config()
525  - t3200-branch: test setting branch as own upstream
527  Will merge to 'next'.
530 * cn/fetch-prune-overlapping-destination (2014-02-28) 2 commits
531  - fetch: handle overlaping refspecs on --prune
532  - fetch: add a failing test for prunning with overlapping refspecs
534  Protect refs in a hierarchy that can come from more than one remote
535  hierarcies from incorrect removal by "git fetch --prune".
537  Comments?
540 * dd/find-graft-with-sha1-pos (2014-02-27) 1 commit
541  - commit.c: use the generic "sha1_pos" function for lookup
543  Replace a hand-rolled binary search with a call to our generic
544  binary search helper function.
546  Will merge to 'next'.
549 * dd/use-alloc-grow (2014-03-03) 14 commits
550  - sha1_file.c: use ALLOC_GROW() in pretend_sha1_file()
551  - read-cache.c: use ALLOC_GROW() in add_index_entry()
552  - builtin/mktree.c: use ALLOC_GROW() in append_to_tree()
553  - attr.c: use ALLOC_GROW() in handle_attr_line()
554  - dir.c: use ALLOC_GROW() in create_simplify()
555  - reflog-walk.c: use ALLOC_GROW()
556  - replace_object.c: use ALLOC_GROW() in register_replace_object()
557  - patch-ids.c: use ALLOC_GROW() in add_commit()
558  - diffcore-rename.c: use ALLOC_GROW()
559  - diff.c: use ALLOC_GROW()
560  - commit.c: use ALLOC_GROW() in register_commit_graft()
561  - cache-tree.c: use ALLOC_GROW() in find_subtree()
562  - bundle.c: use ALLOC_GROW() in add_to_ref_list()
563  - builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path()
565  Replace open-coded reallocation with ALLOC_GROW() macro.
567  Will merge to 'next'.
570 * dk/skip-prefix-scan-only-once (2014-03-03) 1 commit
571  - skip_prefix(): scan prefix only once
573  Updaste implementation of skip_prefix() to scan only once; given
574  that most "prefix" arguments to the inline function are constant
575  strings whose strlen() can be determined at the compile time, this
576  might actually make things worse with a compiler with sufficient
577  intelligence.
580 * jk/doc-coding-guideline (2014-02-28) 1 commit
581   (merged to 'next' on 2014-03-06 at c33101d)
582  + CodingGuidelines: mention C whitespace rules
584  Elaborate on a style niggle that has been part of "mimic existing
585  code".
587  Will merge to 'master'.
590 * jk/shallow-update-fix (2014-02-27) 2 commits
591  - shallow: automatically clean up shallow tempfiles
592  - shallow: use stat_validity to check for up-to-date file
594  Serving objects from a shallow repository needs to write a
595  temporary file to be used, but the serving upload-pack may not have
596  write access to the repository which is meant to be read-only.
598  Will merge to 'next'.
601 * jl/doc-submodule-update-checkout (2014-02-28) 1 commit
602   (merged to 'next' on 2014-03-06 at 8cdf5cb)
603  + submodule update: consistently document the '--checkout' option
605  Add missing documentation for "submodule update --checkout".
607  Will merge to 'master'.
610 * jn/bisect-coding-style (2014-03-03) 1 commit
611   (merged to 'next' on 2014-03-06 at e1de2a5)
612  + git-bisect.sh: fix a few style issues
614  Will merge to 'master'.
617 * jn/branch-lift-unnecessary-name-length-limit (2014-03-05) 1 commit
618  - branch.c: delete size check of newly tracked branch names
620  Will merge to 'next'.
623 * mh/simplify-cache-tree-find (2014-03-05) 6 commits
624  - cache_tree_find(): use path variable when passing over slashes
625  - cache_tree_find(): remove early return
626  - cache_tree_find(): remove redundant check
627  - cache_tree_find(): fix comment formatting
628  - cache_tree_find(): find the end of path component using strchrnul()
629  - cache_tree_find(): remove redundant checks
631  Will merge to 'next'.
634 * nd/strbuf-inline-styles (2014-03-03) 1 commit
635   (merged to 'next' on 2014-03-06 at 70b5e56)
636  + strbuf: style fix -- top opening bracket on a separate line
638  Will merge to 'master'.
641 * nd/tag-version-sort (2014-02-27) 1 commit
642  - tag: support --sort=<spec>
644  Allow v1.9.0 sorted before v1.10.0 in "git tag --list" output.
646  Will merge to 'next'.
649 * rt/help-pretty-prints-cmd-names (2014-02-28) 1 commit
650   (merged to 'next' on 2014-03-06 at fc607dc)
651  + help.c: rename function "pretty_print_string_list"
653  Will merge to 'master'.
656 * sg/archive-restrict-remote (2014-02-28) 2 commits
657   (merged to 'next' on 2014-03-06 at 5fe8998)
658  + add uploadarchive.allowUnreachable option
659  + docs: clarify remote restrictions for git-upload-archive
661  Allow loosening remote "git archive" invocation security check that
662  refuses to serve tree-ish not at the tip of any ref.
664  Will merge to 'master'.
667 * sh/finish-tmp-packfile (2014-03-03) 2 commits
668  - finish_tmp_packfile():use strbuf for pathname construction
669  - Merge branch 'sh/write-pack-file-warning-message-fix' into sh/finish-tmp-packfile
670  (this branch uses sh/write-pack-file-warning-message-fix.)
672  Will merge to 'next'.
675 * sh/write-pack-file-warning-message-fix (2014-03-03) 1 commit
676   (merged to 'next' on 2014-03-06 at 1470b0a)
677  + write_pack_file: use correct variable in diagnostic
678  (this branch is used by sh/finish-tmp-packfile.)
680  A warning from "git pack-objects" were generated by referring to an
681  incorrect variable when forming the filename that we had trouble
682  with.
684  Will merge to 'master'.
687 * sr/add--interactive-term-readkey (2014-03-03) 2 commits
688   (merged to 'next' on 2014-03-06 at 9ca7af8)
689  + git-add--interactive: warn if module for interactive.singlekey is missing
690  + git-config: document interactive.singlekey requires Term::ReadKey
692  Will merge to 'master'.
695 * ta/parse-commit-with-skip-prefix (2014-03-04) 1 commit
696   (merged to 'next' on 2014-03-06 at 0244988)
697  + commit.c: use skip_prefix() instead of starts_with()
699  Will merge to 'master'.
702 * ak/gitweb-fit-image (2014-02-20) 1 commit
703   (merged to 'next' on 2014-03-06 at ba8cb50)
704  + gitweb: Avoid overflowing page body frame with large images
706  Instead of allowing an <img> to be shown in whatever size, force
707  scaling it to fit on the page with max-height/max-width css style
708  attributes.
710  Will merge to 'master'.
713 * da/difftool-git-files (2014-03-05) 2 commits
714   (merged to 'next' on 2014-03-06 at a563ec1)
715  + t7800: add a difftool test for .git-files
716  + difftool: support repositories with .git-files
718  "git difftool" misbehaved when the repository is bound to the
719  working tree with the ".git file" mechanism, where a textual
720  file ".git" tells us where it is.
722  Will merge to 'master'.
725 * jk/commit-dates-parsing-fix (2014-03-07) 6 commits
726   (merged to 'next' on 2014-03-07 at 01e9d92)
727  + show_ident_date: fix tz range check
728   (merged to 'next' on 2014-03-06 at dd641e2)
729  + log: do not segfault on gmtime errors
730  + log: handle integer overflow in timestamps
731  + date: check date overflow against time_t
732  + fsck: report integer overflow in author timestamps
733  + t4212: test bogus timestamps with git-log
735  Will merge to 'master'.
738 * jk/diff-filespec-cleanup (2014-02-24) 1 commit
739  - diffcore.h: be explicit about the signedness of is_binary
741  Will merge to 'next' and then to 'master' and 'maint'.
744 * jk/remote-pushremote-config-reading (2014-02-24) 1 commit
745   (merged to 'next' on 2014-03-06 at 9e71ecb)
746  + remote: handle pushremote config in any order
748  Will merge to 'master'.
751 * jk/repack-pack-keep-objects (2014-03-03) 1 commit
752  - repack: add `repack.packKeptObjects` config var
754  Will merge to 'next'.
757 * jm/stash-doc-k-for-keep (2014-02-24) 1 commit
758   (merged to 'next' on 2014-03-06 at ddd8e48)
759  + stash doc: mention short form -k in save description
761  Will merge to 'master'.
764 * jn/am-doc-hooks (2014-02-24) 1 commit
765   (merged to 'next' on 2014-03-06 at 5c1c372)
766  + am doc: add a pointer to relevant hooks
768  Will merge to 'master'.
771 * mh/object-code-cleanup (2014-02-24) 4 commits
772   (merged to 'next' on 2014-03-06 at d6b3867)
773  + sha1_file.c: document a bunch of functions defined in the file
774  + sha1_file_name(): declare to return a const string
775  + find_pack_entry(): document last_found_pack
776  + replace_object: use struct members instead of an array
778  Will merge to 'master'.
781 * nd/i18n-progress (2014-02-24) 1 commit
782   (merged to 'next' on 2014-03-06 at 600fd3e)
783  + i18n: mark all progress lines for translation
785  Will merge to 'master'.
788 * nd/sha1-file-delta-stack-leakage-fix (2014-02-24) 1 commit
789  - sha1_file: fix delta_stack memory leak in unpack_entry
791  Will merge to 'next' and then to 'master' and 'maint'.
794 * tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit
795  - demonstrate git-commit --dry-run exit code behaviour
797  Will merge to 'next'.
800 * fc/transport-helper-fixes (2014-02-24) 7 commits
801  - remote-bzr: support the new 'force' option
802  - test-hg.sh: tests are now expected to pass
803  - transport-helper.c: do not overwrite forced bit
804  - transport-helper: check for 'forced update' message
805  - transport-helper: add 'force' to 'export' helpers
806  - transport-helper: don't update refs in dry-run
807  - transport-helper: mismerge fix
809  Updates transport-helper, fast-import and fast-export to allow the
810  ref mapping and ref deletion in a way similar to the natively
811  supported transports.
813  Will merge to 'next'.
816 * bc/blame-crlf-test (2014-02-18) 1 commit
817  - blame: add a failing test for a CRLF issue.
819  I have a feeling that a fix for this should be fairly isolated and
820  trivial (it should be just the matter of paying attention to the
821  crlf settings when synthesizing the fake commit)---perhaps somebody
822  can squash in a fix to this?
825 * jk/http-no-curl-easy (2014-02-18) 1 commit
826   (merged to 'next' on 2014-03-06 at 56d3f6f)
827  + http: never use curl_easy_perform
829  Avoid use of the curl-easy family of functions, which interferes
830  with connection reuse in a negative way.
832  Will merge to 'master' and then to 'maint'.
835 * jk/janitorial-fixes (2014-02-18) 5 commits
836   (merged to 'next' on 2014-03-06 at dac2de6)
837  + open_istream(): do not dereference NULL in the error case
838  + builtin/mv: don't use memory after free
839  + utf8: use correct type for values in interval table
840  + utf8: fix iconv error detection
841  + notes-utils: handle boolean notes.rewritemode correctly
843  Will merge to 'master'.
846 * ks/config-file-stdin (2014-02-18) 4 commits
847   (merged to 'next' on 2014-03-06 at 3e77313)
848  + config: teach "git config --file -" to read from the standard input
849  + config: change git_config_with_options() interface
850  + builtin/config.c: rename check_blob_write() -> check_write()
851  + config: disallow relative include paths from blobs
853  Will merge to 'master'.
856 * lb/contrib-contacts-looser-diff-parsing (2014-02-18) 1 commit
857   (merged to 'next' on 2014-03-06 at 1cc4ffe)
858  + git-contacts: do not fail parsing of good diffs
860  Will merge to 'master'.
863 * mh/replace-refs-variable-rename (2014-02-28) 3 commits
864   (merged to 'next' on 2014-03-06 at 70bf89b)
865  + Document some functions defined in object.c
866  + Add docstrings for lookup_replace_object() and do_lookup_replace_object()
867  + rename read_replace_refs to check_replace_refs
869  Will merge to 'master'.
872 * nd/commit-editor-cleanup (2014-02-25) 3 commits
873  - commit: add --cleanup=scissors
874  - wt-status.c: move cut-line print code out to wt_status_add_cut_line
875  - wt-status.c: make cut_line[] const to shrink .data section a bit
877  "git commit --cleanup=<mode>" learned a new mode, scissors.
879  Will merge to 'next'.
882 * nd/no-more-fnmatch (2014-02-20) 4 commits
883   (merged to 'next' on 2014-03-06 at f0b8f12)
884  + actually remove compat fnmatch source code
885  + stop using fnmatch (either native or compat)
886  + Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch"
887  + use wildmatch() directly without fnmatch() wrapper
889  We started using wildmatch() in place of fnmatch(3); complete the
890  process and stop using fnmatch(3).
892  Will merge to 'master'.
895 * nd/reset-setup-worktree (2014-02-18) 1 commit
896   (merged to 'next' on 2014-03-06 at d93f20a)
897  + reset: optionally setup worktree and refresh index on --mixed
899  "git reset" needs to refresh the index when working in a working
900  tree (it can also be used to match the index to the HEAD in an
901  otherwise bare repository), but it failed to set up the working
902  tree properly, causing GIT_WORK_TREE to be ignored.
904  Will merge to 'master'.
907 * po/git-help-user-manual (2014-02-18) 1 commit
908  - Provide a 'git help user-manual' route to the docbook
910  I am not sure if this is even needed.
912  Will discard.
915 * rt/links-for-asciidoctor (2014-02-20) 1 commit
916   (merged to 'next' on 2014-03-06 at 547f13d)
917  + Documentation: fix documentation AsciiDoc links for external urls
919  Will merge to 'master'.
922 * tg/index-v4-format (2014-02-24) 3 commits
923   (merged to 'next' on 2014-03-06 at d4ca5a8)
924  + read-cache: add index.version config variable
925  + test-lib: allow setting the index format version
926  + introduce GIT_INDEX_VERSION environment variable
928  Will merge to 'master'.
931 * tr/diff-submodule-no-reuse-worktree (2014-02-18) 1 commit
932   (merged to 'next' on 2014-03-06 at ac8008f)
933  + diff: do not reuse_worktree_file for submodules
935  "git diff --external-diff" incorrectly fed the submodule directory
936  in the working tree to the external diff driver when it knew it is
937  the same as one of the versions being compared.
939  Will merge to 'master'.
942 * nd/multiple-work-trees (2014-03-06) 28 commits
943  - FIXUP: minimum compilation fix
944  - count-objects: report unused files in $GIT_DIR/repos/...
945  - gc: support prune --repos
946  - gc: style change -- no SP before closing bracket
947  - prune: strategies for linked checkouts
948  - checkout: detach if the branch is already checked out elsewhere
949  - checkout: clean up half-prepared directories in --to mode
950  - checkout: support checking out into a new working directory
951  - use new wrapper write_file() for simple file writing
952  - wrapper.c: wrapper to open a file, fprintf then close
953  - setup.c: support multi-checkout repo setup
954  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
955  - setup.c: convert check_repository_format_gently to use strbuf
956  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
957  - setup.c: convert is_git_directory() to use strbuf
958  - git-stash: avoid hardcoding $GIT_DIR/logs/....
959  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
960  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
961  - Add new environment variable $GIT_COMMON_DIR
962  - commit: use SEQ_DIR instead of hardcoding "sequencer"
963  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
964  - reflog: avoid constructing .lock path with git_path
965  - *.sh: respect $GIT_INDEX_FILE
966  - Make git_path() aware of file relocation in $GIT_DIR
967  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
968  - path.c: rename vsnpath() to do_git_path()
969  - Convert git_snpath() to strbuf_git_path()
970  - path.c: make get_pathname() return strbuf instead of static buffer
972  The series needs a serious review.
975 * ks/tree-diff-nway (2014-03-04) 19 commits
976  - combine-diff: speed it up, by using multiparent diff tree-walker directly
977  - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
978  - Portable alloca for Git
979  - tree-diff: reuse base str(buf) memory on sub-tree recursion
980  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
981  - tree-diff: rework diff_tree interface to be sha1 based
982  - tree-diff: diff_tree() should now be static
983  - tree-diff: remove special-case diff-emitting code for empty-tree cases
984  - tree-diff: simplify tree_entry_pathcmp
985  - tree-diff: show_path prototype is not needed anymore
986  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
987  - tree-diff: move all action-taking code out of compare_tree_entry()
988  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
989  - tree-diff: consolidate code for emitting diffs and recursion in one place
990  - tree-diff: show_tree() is not needed
991  - tree-diff: no need to pass match to skip_uninteresting()
992  - tree-diff: no need to manually verify that there is no mode change for a path
993  - combine-diff: move changed-paths scanning logic into its own function
994  - combine-diff: move show_log_first logic/action out of paths scanning
996  Instead of running N pair-wise diff-trees when inspecting a
997  N-parent merge, find the set of paths that were touched by walking
998  N+1 trees in parallel.  These set of paths can then be turned into
999  N pair-wise diff-tree results to be processed through rename
1000  detections and such.  And N=2 case nicely degenerates to the usual
1001  2-way diff-tree, which is very nice.
1004 * nd/gitignore-trailing-whitespace (2014-03-11) 3 commits
1005   (merged to 'next' on 2014-03-11 at ccdba51)
1006  + t0008: skip trailing space test on Windows
1007   (merged to 'next' on 2014-03-06 at f649a34)
1008  + dir: ignore trailing spaces in exclude patterns
1009  + dir: warn about trailing spaces in exclude patterns
1011  Warn and then ignore trailing whitespaces in .gitignore files,
1012  unless they are quoted for fnmatch(3), e.g. "path\ ".
1014  Will merge to 'master'.
1017 * nd/log-show-linear-break (2014-02-10) 1 commit
1018  - log: add --show-linear-break to help see non-linear history
1020  Attempts to show where a single-strand-of-pearls break in "git log"
1021  output.
1023  Will merge to 'next'.
1026 * ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit
1027   (merged to 'next' on 2014-03-06 at b5bf463)
1028  + completion: teach --recurse-submodules to fetch, pull and push
1030  Will merge to 'master'.
1033 * jh/note-trees-record-blobs (2014-02-20) 1 commit
1034   (merged to 'next' on 2014-03-06 at f46852d)
1035  + notes: disallow reusing non-blob as a note object
1037  "git notes -C <blob>" should not take an object that is not a blob.
1039  Will merge to 'master'.
1042 * jc/check-attr-honor-working-tree (2014-02-06) 2 commits
1043   (merged to 'next' on 2014-03-06 at 960d679)
1044  + check-attr: move to the top of working tree when in non-bare repository
1045  + t0003: do not chdir the whole test process
1047  "git check-attr" when (trying to) work on a repository with a
1048  working tree did not work well when the working tree was specified
1049  via --work-tree (and obviously with --git-dir).
1051  The command also works in a bare repository but it reads from the
1052  (possibly stale, irrelevant and/or nonexistent) index, which may
1053  need to be fixed to read from HEAD, but that is a completely
1054  separate issue.  As a related tangent to this separate issue, we
1055  may want to also fix "check-ignore", which refuses to work in a
1056  bare repository, to also operate in a bare one.
1058  Will merge to 'master'.
1061 * tr/remerge-diff (2014-02-26) 5 commits
1062  . log --remerge-diff: show what the conflict resolution changed
1063  . name-hash: allow dir hashing even when !ignore_case
1064  . merge-recursive: allow storing conflict hunks in index
1065  . revision: fold all merge diff variants into an enum merge_diff_mode
1066  . combine-diff: do not pass revs->dense_combined_merges redundantly
1067  (this branch uses tr/merge-recursive-index-only.)
1069  "log -p" output learns a new way to let users inspect a merge
1070  commit by showing the differences between the automerged result
1071  with conflicts the person who recorded the merge would have seen
1072  and the final conflict resolution that was recorded in the merge.
1074  RFC.  This latest round clashes with the kb/fast-hashmap topic in
1075  'master'.
1078 * lt/request-pull (2014-02-25) 5 commits
1079  - request-pull: resurrect "pretty refname" feature
1080  - request-pull: test updates
1081  - request-pull: pick up tag message as before
1082  - request-pull: allow "local:remote" to specify names on both ends
1083  - request-pull: more strictly match local/remote branches
1085  Needs doc update but otherwise it should be ready for 'next'.
1088 * cc/interpret-trailers (2014-03-07) 11 commits
1089  - Documentation: add documentation for 'git interpret-trailers'
1090  - trailer: add tests for commands in config file
1091  - trailer: execute command from 'trailer.<name>.command'
1092  - trailer: add tests for "git interpret-trailers"
1093  - trailer: add interpret-trailers command
1094  - trailer: put all the processing together and print
1095  - trailer: parse trailers from stdin
1096  - trailer: process command line trailer arguments
1097  - trailer: read and process config information
1098  - trailer: process trailers from stdin and arguments
1099  - trailers: add data structures and basic functions
1101  A new filter to programatically edit the tail end of the commit log
1102  messages.
1105 * bl/blame-full-history (2014-01-14) 1 commit
1106  - blame: new option --prefer-first to better handle merged cherry-picks
1108  By disabling the tree-same optimization (which is consistent with
1109  the default behaviour of "git log"-family of commands), make "git
1110  blame" sometimes produce different result from the original code.
1112  Because the "git blame" output can give result for each line from
1113  only one lineage of the history, however, this can be only useful
1114  when you are lucky---unlike "--full-history" of "git log"-family,
1115  where we can show commits from both lineages of histories with an
1116  equal weight.  See $gmane/240392 for more detailed discussion.
1118  Will discard.
1121 * tr/merge-recursive-index-only (2014-02-05) 3 commits
1122  - merge-recursive: -Xindex-only to leave worktree unchanged
1123  - merge-recursive: internal flag to avoid touching the worktree
1124  - merge-recursive: remove dead conditional in update_stages()
1125  (this branch is used by tr/remerge-diff.)
1127  Will hold.
1129 --------------------------------------------------
1130 [Discarded]
1132 * tb/repack-fix-renames (2014-02-05) 1 commit
1133  . repack.c: rename a few variables
1135  Perhaps unneeded, as the longer-term plan is to drop the codeblock
1136  this change touches.
1139 * ks/diff-c-with-diff-order (2014-02-03) 5 commits
1140  . combine-diff: simplify intersect_paths() further
1141  . combine-diff: combine_diff_path.len is not needed anymore
1142  . combine-diff: optimize combine_diff_path sets intersection
1143  . diff test: add tests for combine-diff with orderfile
1144  . diffcore-order: export generic ordering interface
1146  Now part of ks/combine-diff topic.
1149 * ks/tree-diff-more (2014-02-24) 15 commits
1150  - tree-diff: reuse base str(buf) memory on sub-tree recursion
1151  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
1152  - tree-diff: rework diff_tree interface to be sha1 based
1153  - tree-diff: remove special-case diff-emitting code for empty-tree cases
1154  - tree-diff: simplify tree_entry_pathcmp
1155  - tree-diff: show_path prototype is not needed anymore
1156  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
1157  - tree-diff: move all action-taking code out of compare_tree_entry()
1158  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
1159  - tree-diff: consolidate code for emitting diffs and recursion in one place
1160  - tree-diff: show_tree() is not needed
1161  - tree-diff: no need to pass match to skip_uninteresting()
1162  - tree-diff: no need to manually verify that there is no mode change for a path
1163  - combine-diff: move changed-paths scanning logic into its own function
1164  - combine-diff: move show_log_first logic/action out of paths scanning
1165  (this branch is used by ks/tree-diff-nway; uses ks/combine-diff.)
1167  Code refactoring.
1169  Now part of ks/tree-diff-nway.