What's cooking (2014/03 #03)
[alt-git.git] / whats-cooking.txt
blob2826aa00869e0dcdcc3d2fe9b3c5adf87c9b8384
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Mar 2014, #03; Fri, 14)
4 X-master-at: 00eda23228acb68c85a76f977f4e59f82189ce3f
5 X-next-at: 169382a66e8adc06d7eb542d356ad22244051e6d
7 What's cooking in git.git (Mar 2014, #03; Fri, 14)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 More topics merged to 'master', some of which have been cooking
15 before the v1.9.0 final release.
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 * ak/gitweb-fit-image (2014-02-20) 1 commit
26   (merged to 'next' on 2014-03-06 at ba8cb50)
27  + gitweb: Avoid overflowing page body frame with large images
29  Instead of allowing an <img> to be shown in whatever size, force
30  scaling it to fit on the page with max-height/max-width css style
31  attributes.
34 * da/difftool-git-files (2014-03-05) 2 commits
35   (merged to 'next' on 2014-03-06 at a563ec1)
36  + t7800: add a difftool test for .git-files
37  + difftool: support repositories with .git-files
39  "git difftool" misbehaved when the repository is bound to the
40  working tree with the ".git file" mechanism, where a textual
41  file ".git" tells us where it is.
44 * jc/check-attr-honor-working-tree (2014-02-06) 2 commits
45   (merged to 'next' on 2014-03-06 at 960d679)
46  + check-attr: move to the top of working tree when in non-bare repository
47  + t0003: do not chdir the whole test process
49  "git check-attr" when (trying to) work on a repository with a
50  working tree did not work well when the working tree was specified
51  via --work-tree (and obviously with --git-dir).
53  The command also works in a bare repository but it reads from the
54  (possibly stale, irrelevant and/or nonexistent) index, which may
55  need to be fixed to read from HEAD, but that is a completely
56  separate issue.  As a related tangent to this separate issue, we
57  may want to also fix "check-ignore", which refuses to work in a
58  bare repository, to also operate in a bare one.
61 * jh/note-trees-record-blobs (2014-02-20) 1 commit
62   (merged to 'next' on 2014-03-06 at f46852d)
63  + notes: disallow reusing non-blob as a note object
65  "git notes -C <blob>" should not take an object that is not a blob.
68 * jk/commit-dates-parsing-fix (2014-03-07) 6 commits
69   (merged to 'next' on 2014-03-07 at 01e9d92)
70  + show_ident_date: fix tz range check
71   (merged to 'next' on 2014-03-06 at dd641e2)
72  + log: do not segfault on gmtime errors
73  + log: handle integer overflow in timestamps
74  + date: check date overflow against time_t
75  + fsck: report integer overflow in author timestamps
76  + t4212: test bogus timestamps with git-log
78  Codepaths that parse timestamps in commit objects have been
79  tightened.
82 * jk/doc-coding-guideline (2014-02-28) 1 commit
83   (merged to 'next' on 2014-03-06 at c33101d)
84  + CodingGuidelines: mention C whitespace rules
86  Elaborate on a style niggle that has been part of "mimic existing
87  code".
90 * jk/http-no-curl-easy (2014-02-18) 1 commit
91   (merged to 'next' on 2014-03-06 at 56d3f6f)
92  + http: never use curl_easy_perform
94  Uses of curl's "multi" interface and "easy" interface do not mix
95  well when we attempt to reuse outgoing connections.  Teach the RPC
96  over http code, used in the smart HTTP transport, not to use the
97  "easy" interface.
100 * jk/janitorial-fixes (2014-02-18) 5 commits
101   (merged to 'next' on 2014-03-06 at dac2de6)
102  + open_istream(): do not dereference NULL in the error case
103  + builtin/mv: don't use memory after free
104  + utf8: use correct type for values in interval table
105  + utf8: fix iconv error detection
106  + notes-utils: handle boolean notes.rewritemode correctly
109 * jk/remote-pushremote-config-reading (2014-02-24) 1 commit
110   (merged to 'next' on 2014-03-06 at 9e71ecb)
111  + remote: handle pushremote config in any order
113  "git push" did not pay attention to branch.*.pushremote if it is
114  defined earlier than remote.pushdefault; the order of these two
115  variables in the configuration file should not matter, but it did
116  by mistake.
119 * jl/doc-submodule-update-checkout (2014-02-28) 1 commit
120   (merged to 'next' on 2014-03-06 at 8cdf5cb)
121  + submodule update: consistently document the '--checkout' option
123  Add missing documentation for "submodule update --checkout".
126 * jm/stash-doc-k-for-keep (2014-02-24) 1 commit
127   (merged to 'next' on 2014-03-06 at ddd8e48)
128  + stash doc: mention short form -k in save description
131 * jn/am-doc-hooks (2014-02-24) 1 commit
132   (merged to 'next' on 2014-03-06 at 5c1c372)
133  + am doc: add a pointer to relevant hooks
136 * jn/bisect-coding-style (2014-03-03) 1 commit
137   (merged to 'next' on 2014-03-06 at e1de2a5)
138  + git-bisect.sh: fix a few style issues
141 * ks/config-file-stdin (2014-02-18) 4 commits
142   (merged to 'next' on 2014-03-06 at 3e77313)
143  + config: teach "git config --file -" to read from the standard input
144  + config: change git_config_with_options() interface
145  + builtin/config.c: rename check_blob_write() -> check_write()
146  + config: disallow relative include paths from blobs
148  "git config" learned to read from the standard input when "-" is
149  given as the value to its "--file" parameter (attempting an
150  operation to update the configuration in the standard input of
151  course is rejected).
154 * lb/contrib-contacts-looser-diff-parsing (2014-02-18) 1 commit
155   (merged to 'next' on 2014-03-06 at 1cc4ffe)
156  + git-contacts: do not fail parsing of good diffs
159 * mh/object-code-cleanup (2014-02-24) 4 commits
160   (merged to 'next' on 2014-03-06 at d6b3867)
161  + sha1_file.c: document a bunch of functions defined in the file
162  + sha1_file_name(): declare to return a const string
163  + find_pack_entry(): document last_found_pack
164  + replace_object: use struct members instead of an array
167 * mh/replace-refs-variable-rename (2014-02-28) 3 commits
168   (merged to 'next' on 2014-03-06 at 70bf89b)
169  + Document some functions defined in object.c
170  + Add docstrings for lookup_replace_object() and do_lookup_replace_object()
171  + rename read_replace_refs to check_replace_refs
174 * nd/gitignore-trailing-whitespace (2014-03-11) 3 commits
175   (merged to 'next' on 2014-03-11 at ccdba51)
176  + t0008: skip trailing space test on Windows
177   (merged to 'next' on 2014-03-06 at f649a34)
178  + dir: ignore trailing spaces in exclude patterns
179  + dir: warn about trailing spaces in exclude patterns
181  Trailing whitespaces in .gitignore files, unless they are quoted
182  for fnmatch(3), e.g. "path\ ", are warned and ignored.  Strictly
183  speaking, this is a backward incompatible change, but very unlikely
184  to bite any sane user and adjusting should be obvious and easy.
187 * nd/i18n-progress (2014-02-24) 1 commit
188   (merged to 'next' on 2014-03-06 at 600fd3e)
189  + i18n: mark all progress lines for translation
191  The progress indicators from various time-consuming commands have
192  been marked for i18n/l10n.
195 * nd/no-more-fnmatch (2014-02-20) 4 commits
196   (merged to 'next' on 2014-03-06 at f0b8f12)
197  + actually remove compat fnmatch source code
198  + stop using fnmatch (either native or compat)
199  + Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch"
200  + use wildmatch() directly without fnmatch() wrapper
202  We started using wildmatch() in place of fnmatch(3); complete the
203  process and stop using fnmatch(3).
206 * nd/reset-setup-worktree (2014-02-18) 1 commit
207   (merged to 'next' on 2014-03-06 at d93f20a)
208  + reset: optionally setup worktree and refresh index on --mixed
210  "git reset" needs to refresh the index when working in a working
211  tree (it can also be used to match the index to the HEAD in an
212  otherwise bare repository), but it failed to set up the working
213  tree properly, causing GIT_WORK_TREE to be ignored.
216 * nd/strbuf-inline-styles (2014-03-03) 1 commit
217   (merged to 'next' on 2014-03-06 at 70b5e56)
218  + strbuf: style fix -- top opening bracket on a separate line
221 * rt/help-pretty-prints-cmd-names (2014-02-28) 1 commit
222   (merged to 'next' on 2014-03-06 at fc607dc)
223  + help.c: rename function "pretty_print_string_list"
226 * rt/links-for-asciidoctor (2014-02-20) 1 commit
227   (merged to 'next' on 2014-03-06 at 547f13d)
228  + Documentation: fix documentation AsciiDoc links for external urls
231 * sg/archive-restrict-remote (2014-02-28) 2 commits
232   (merged to 'next' on 2014-03-06 at 5fe8998)
233  + add uploadarchive.allowUnreachable option
234  + docs: clarify remote restrictions for git-upload-archive
236  Allow loosening remote "git archive" invocation security check that
237  refuses to serve tree-ish not at the tip of any ref.
240 * sh/write-pack-file-warning-message-fix (2014-03-03) 1 commit
241   (merged to 'next' on 2014-03-06 at 1470b0a)
242  + write_pack_file: use correct variable in diagnostic
243  (this branch is used by sh/finish-tmp-packfile.)
245  A warning from "git pack-objects" were generated by referring to an
246  incorrect variable when forming the filename that we had trouble
247  with.
250 * sr/add--interactive-term-readkey (2014-03-03) 2 commits
251   (merged to 'next' on 2014-03-06 at 9ca7af8)
252  + git-add--interactive: warn if module for interactive.singlekey is missing
253  + git-config: document interactive.singlekey requires Term::ReadKey
256 * ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit
257   (merged to 'next' on 2014-03-06 at b5bf463)
258  + completion: teach --recurse-submodules to fetch, pull and push
261 * ta/parse-commit-with-skip-prefix (2014-03-04) 1 commit
262   (merged to 'next' on 2014-03-06 at 0244988)
263  + commit.c: use skip_prefix() instead of starts_with()
266 * tg/index-v4-format (2014-02-24) 3 commits
267   (merged to 'next' on 2014-03-06 at d4ca5a8)
268  + read-cache: add index.version config variable
269  + test-lib: allow setting the index format version
270  + introduce GIT_INDEX_VERSION environment variable
273 * tr/diff-submodule-no-reuse-worktree (2014-02-18) 1 commit
274   (merged to 'next' on 2014-03-06 at ac8008f)
275  + diff: do not reuse_worktree_file for submodules
277  "git diff --external-diff" incorrectly fed the submodule directory
278  in the working tree to the external diff driver when it knew it is
279  the same as one of the versions being compared.
281 --------------------------------------------------
282 [New Topics]
284 * jn/wt-status (2014-03-12) 4 commits
285   (merged to 'next' on 2014-03-14 at 8ac862c)
286  + wt-status: lift the artificual "at least 20 columns" floor
287  + wt-status: i18n of section labels
288  + wt-status: extract the code to compute width for labels
289  + wt-status: make full label string to be subject to l10n
291  Unify the codepaths that format new/modified/changed sections and
292  conflicted paths in the "git status" output and make it possible to
293  properly internationalize their output.
295  Will merge to 'master'.
298 * es/sh-i18n-envsubst (2014-03-12) 1 commit
299   (merged to 'next' on 2014-03-14 at e4d5603)
300  + sh-i18n--envsubst: retire unused string_list_member()
302  Will merge to 'master'.
305 * mh/remove-subtree-long-pathname-fix (2014-03-13) 2 commits
306  - entry.c: fix possible buffer overflow in remove_subtree()
307  - checkout_entry(): use the strbuf throughout the function
309  Will merge to 'next'.
312 * nd/indent-fix-connect-c (2014-03-13) 1 commit
313  - connect.c: SP after "}", not TAB
315  Will merge to 'next'.
318 * pw/branch-config-message (2014-03-13) 1 commit
319  - install_branch_config(): simplify verbose messages logic
321  Among the many attempts to microproject #8, this seemed to be the
322  most "done" among the table based ones; I however tend to think
323  that the original with minimum refactoring would be easier to read.
326 * ys/fsck-commit-parsing (2014-03-13) 2 commits
327  - fsck.c:fsck_commit(): use skip_prefix() to verify and skip constant
328  - fsck.c:fsck_ident(): ident points at a const string
331 * jk/warn-on-object-refname-ambiguity (2014-03-13) 4 commits
332  - rev-list: disable object/refname ambiguity check with --stdin
333  - cat-file: restore warn_on_object_refname_ambiguity flag
334  - cat-file: fix a minor memory leak in batch_objects
335  - cat-file: refactor error handling of batch_objects
337  Will merge to 'next'.
339 --------------------------------------------------
340 [Stalled]
342 * bc/blame-crlf-test (2014-02-18) 1 commit
343  - blame: add a failing test for a CRLF issue.
345  I have a feeling that a fix for this should be fairly isolated and
346  trivial (it should be just the matter of paying attention to the
347  crlf settings when synthesizing the fake commit)---perhaps somebody
348  can squash in a fix to this?
351 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
352  - remote-hg: do not fail on invalid bookmarks
354  Reported to break tests ($gmane/240005)
355  Expecting a reroll.
358 * jk/makefile (2014-02-05) 16 commits
359  - FIXUP
360  - move LESS/LV pager environment to Makefile
361  - Makefile: teach scripts to include make variables
362  - FIXUP
363  - Makefile: auto-build C strings from make variables
364  - Makefile: drop *_SQ variables
365  - FIXUP
366  - Makefile: add c-quote helper function
367  - Makefile: introduce sq function for shell-quoting
368  - Makefile: always create files via make-var
369  - Makefile: store GIT-* sentinel files in MAKE/
370  - Makefile: prefer printf to echo for GIT-*
371  - Makefile: use tempfile/mv strategy for GIT-*
372  - Makefile: introduce make-var helper function
373  - Makefile: fix git-instaweb dependency on gitweb
374  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
376  Simplify the Makefile rules and macros that exist primarily for
377  quoting purposes, and make it easier to robustly express the
378  dependency rules.
380  Expecting a reroll.
383 * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit
384  - hashmap.h: make sure map entries are tightly packed
386  I am inclined to drop this; an alternative is to replace it with
387  the "more portable" one that uses #pragma, which I am willing to
388  try doing so on 'pu', though.
391 * po/everyday-doc (2014-01-27) 1 commit
392  - Make 'git help everyday' work
394  This may make the said command to emit something, but the source is
395  not meant to be formatted into a manual pages to begin with, and
396  also its contents are a bit stale.  It may be a good first step in
397  the right direction, but needs more work to at least get the
398  mark-up right before public consumption.
400  Will hold.
403 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
404  - t1507 (rev-parse-upstream): fix typo in test title
405  - implement @{publish} shorthand
406  - branch_get: provide per-branch pushremote pointers
407  - branch_get: return early on error
408  - sha1_name: refactor upstream_mark
410  Give an easier access to the tracking branches from "other" side in
411  a triangular workflow by introducing B@{publish} that works in a
412  similar way to how B@{upstream} does.
414  Meant to be used as a basis for whatever Ram wants to build on.
416  Will hold.
419 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
420  - merge: drop unused arg from abort_commit method signature
421  - merge: make prepare_to_commit responsible for write_merge_state
422  - t7505: ensure cleanup after hook blocks merge
423  - t7505: add missing &&
425  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
426  run during "git merge".  The log message stresses too much on one
427  hook, prepare-commit-msg, but it would equally apply to other hooks
428  like post-merge, I think.
430  Waiting for a reroll.
433 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
434  - Teach checkout to recursively checkout submodules
435  - submodule: teach unpack_trees() to update submodules
436  - submodule: teach unpack_trees() to repopulate submodules
437  - submodule: teach unpack_trees() to remove submodule contents
438  - submodule: prepare for recursive checkout of submodules
440  Expecting a reroll.
443 * jc/graph-post-root-gap (2013-12-30) 3 commits
444  - WIP: document what we want at the end
445  - graph: remove unused code a bit
446  - graph: stuff the current commit into graph->columns[]
448  This was primarily a RFH ($gmane/239580).
451 * fc/completion (2013-12-09) 1 commit
452  - completion: fix completion of certain aliases
454  SZEDER Gábor noticed that this breaks "git -c var=val alias" and
455  also suggested a better description of the change.
457  Has been stalled for a while without much comments from anybody
458  interested.
460  Will discard.
463 * mo/subtree-split-updates (2013-12-10) 3 commits
464  - subtree: add --edit option
465  - subtree: allow --squash and --message with push
466  - subtree: support split --rejoin --squash
468  Has been stalled for a while without much comments from anybody
469  interested.
471  Will discard.
474 * hv/submodule-ignore-fix (2013-12-06) 4 commits
475  - disable complete ignorance of submodules for index <-> HEAD diff
476  - always show committed submodules in summary after commit
477  - teach add -f option for ignored submodules
478  - fix 'git add' to skip submodules configured as ignored
480  Teach "git add" to be consistent with "git status" when changes to
481  submodules are set to be ignored, to avoid surprises after checking
482  with "git status" to see there isn't any change to be further added
483  and then see that "git add ." adds changes to them.
485  I think a reroll is coming, so this may need to be replaced, but I
486  needed some practice with heavy conflict resolution.  It conflicts
487  with two changes to "git add" that have been scheduled for Git 2.0
488  quite badly, and I think I got the resolution right this time.
490  Waiting for a reroll.
493 * jc/create-directories-microopt (2013-11-11) 1 commit
494  - checkout: most of the time we have good leading directories
496  Of unknown value until tested on non-Linux platforms (especially
497  Windows).
499  Will discard.
502 * jt/commit-fixes-footer (2013-10-30) 1 commit
503  - commit: Add -f, --fixes <commit> option to add Fixes: line
505  There is an ongoing discussion around this topic; in general I am
506  fairly negative on a new feature that is too narrow and prefer a
507  more generic solution that can be tailored for specific needs, as
508  many people stated in the thread.
510  cc/interpret-trailers could be such a generic solution (although
511  there don't seem to be much concensus yet).
513  Will discard.
516 * np/pack-v4 (2013-09-18) 90 commits
517  . packv4-parse.c: add tree offset caching
518  . t1050: replace one instance of show-index with verify-pack
519  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
520  . unpack-objects: decode v4 trees
521  . unpack-objects: allow to save processed bytes to a buffer
522  - ...
524  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
525  primarily for wider distribution of the preview edition.
527  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
528  this topic conflicts with.
531 * mf/graph-show-root (2013-10-25) 1 commit
532  . graph.c: mark root commit differently
534  In a repository with multiple-roots, "log --graph", especially with
535  "--oneline", does not give the reader enough visual cue to see
536  where one line of history ended and a separate history began.
538  This is the version that marks the roots 'x' when they would have
539  been marked as '*'; Keshav Kini suggested an alternative of giving
540  an extra blank line after every root, which I tend to think is a
541  better approach to the problem.
543  Will discard.
546 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
547  - perf-lib: add test_perf_cleanup target
548  - perf-lib: split starting the test from the execution
550  Add test_perf_cleanup shell function to the perf suite, that allows
551  the script writers to define a test with a clean-up action.
553  Will hold.
556 * yt/shortened-rename (2013-10-18) 2 commits
557  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
558  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
560  Attempts to give more weight on the fact that a filepair represents
561  a rename than showing substring of the actual path when diffstat
562  lines are not wide enough.
564  I am not sure if that is solving a right problem, though.
566  Will discard.
569 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
570  - git-send-email: Cache generated message-ids, use them when prompting
571  - git-send-email: add optional 'choices' parameter to the ask sub
573  Will discard.
576 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
577  - ### DONTMERGE: needs better explanation on what config they need
578  - pack-refs.c: Add missing call to git_config()
579  - show-ref.c: Add missing call to git_config()
581  The changes themselves are probably good, but it is unclear what
582  basic setting needs to be read for which exact operation.
584  Will discard, tired of waiting for clarification.
585  $gmane/228294
588 * jc/format-patch (2013-04-22) 2 commits
589  - format-patch: --inline-single
590  - format-patch: rename "no_inline" field
592  A new option to send a single patch to the standard output to be
593  appended at the bottom of a message.  I personally have no need for
594  this, but it was easy enough to cobble together.  Tests, docs and
595  stripping out more MIMEy stuff are left as exercises to interested
596  parties.
599 * jk/gitweb-utf8 (2013-04-08) 4 commits
600  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
601  - gitweb: Don't append ';js=(0|1)' to external links
602  - gitweb: Make feed title valid utf8
603  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
605  Various fixes to gitweb.
607  Drew Northup volunteered to take a look into this ($gmane/226216)
608  but nothing seems to have happened since then.
610  Will discard.
613 * jc/show-branch (2013-06-07) 5 commits
614  - show-branch: use commit slab to represent bitflags of arbitrary width
615  - show-branch.c: remove "all_mask"
616  - show-branch.c: abstract out "flags" operation
617  - show-branch.c: lift all_mask/all_revs to a global static
618  - show-branch.c: update comment style
620  Waiting for the final step to lift the hard-limit before sending it out.
622 --------------------------------------------------
623 [Cooking]
625 * jk/detect-push-typo-early (2014-03-05) 3 commits
626   (merged to 'next' on 2014-03-12 at da522e7)
627  + push: detect local refspec errors early
628  + match_explicit_lhs: allow a "verify only" mode
629  + match_explicit: hoist refspec lhs checks into their own function
631  Catch "git push $there no-such-branch" early.
633  Will merge to 'master'.
636 * jk/diff-funcname-cpp-regex (2014-03-05) 1 commit
637  - diff: simplify cpp funcname regex
639  Has the discussion settled on this?
642 * jk/doc-deprecate-grafts (2014-03-05) 1 commit
643   (merged to 'next' on 2014-03-12 at 8d34916)
644  + docs: mark info/grafts as outdated
646  Will merge to 'master'.
649 * rm/strchrnul-not-strlen (2014-03-10) 1 commit
650   (merged to 'next' on 2014-03-12 at fad8f12)
651  + use strchrnul() in place of strchr() and strlen()
653  Will merge to 'master'.
656 * sh/use-hashcpy (2014-03-06) 1 commit
657   (merged to 'next' on 2014-03-12 at cf2735a)
658  + Use hashcpy() when copying object names
660  Will merge to 'master'.
663 * jc/no-need-for-env-in-sh-scripts (2014-03-06) 1 commit
664   (merged to 'next' on 2014-03-12 at dfd3234)
665  + *.sh: drop useless use of "env"
667  Will merge to 'master'.
670 * jc/tag-contains-with (2014-03-07) 1 commit
671   (merged to 'next' on 2014-03-12 at e120644)
672  + tag: grok "--with" as synonym to "--contains"
674  Will merge to 'master'.
677 * bp/commit-p-editor (2014-03-11) 8 commits
678  - run-command: mark run_hook_with_custom_index as deprecated
679  - merge hook tests: fix and update tests
680  - merge: fix GIT_EDITOR override for commit hook
681  - commit: fix patch hunk editing with "commit -p -m"
682  - SQUASH???
683  - test patch hunk editing with "commit -p -m"
684  - merge hook tests: use 'test_must_fail' instead of '!'
685  - merge hook tests: fix missing '&&' in test
688 * cp/am-patch-format-doc (2014-03-11) 1 commit
689   (merged to 'next' on 2014-03-12 at 17c3ada)
690  + Documentation/git-am: Document supported --patch-format options
692  Will merge to 'master'.
695 * dm/configure-iconv-locale-charset (2014-03-11) 1 commit
696  - configure.ac: link with -liconv for locale_charset()
699 * jk/clean-d-pathspec (2014-03-11) 2 commits
700   (merged to 'next' on 2014-03-12 at aaae6ee)
701  + clean: simplify dir/not-dir logic
702  + clean: respect pathspecs with "-d"
704  "git clean -d pathspec" did not use the given pathspec correctly
705  and ended up cleaning too much.
707  Will merge to 'master' and then later to 'maint'.
710 * jk/mv-submodules-fix (2014-03-11) 2 commits
711  - mv: prevent mismatched data when ignoring errors.
712  - builtin/mv: fix out of bounds write
714  Needs tests.
717 * nd/upload-pack-shallow (2014-03-11) 1 commit
718   (merged to 'next' on 2014-03-14 at d40b8c3)
719  + upload-pack: send shallow info over stdin to pack-objects
721  Will merge to 'master'.
724 * rs/grep-h-c (2014-03-11) 2 commits
725   (merged to 'next' on 2014-03-12 at 0341bd8)
726  + grep: support -h (no header) with --count
727  + t7810: add missing variables to tests in loop
729  "git grep" learns to handle combination of "-h (no header)" and "-c
730  (counts)".
732  Will merge to 'master'.
735 * jc/stash-pop-not-popped (2014-02-26) 1 commit
736   (merged to 'next' on 2014-03-14 at 9ba1de8)
737  + stash pop: mention we did not drop the stash upon failing to apply
739  "stash pop", upon failing to apply the stash, refrains from
740  discarding the stash to avoid information loss.  Be more explicit
741  in the error message.
743  The wording may want to get a bit more bikeshedding.
745  Will merge to 'master'.
748 * bg/install-branch-config-skip-prefix (2014-03-06) 2 commits
749   (merged to 'next' on 2014-03-12 at 9d04564)
750  + branch: use skip_prefix() in install_branch_config()
751  + t3200-branch: test setting branch as own upstream
753  Will merge to 'master'.
756 * cn/fetch-prune-overlapping-destination (2014-02-28) 2 commits
757  - fetch: handle overlaping refspecs on --prune
758  - fetch: add a failing test for prunning with overlapping refspecs
760  Protect refs in a hierarchy that can come from more than one remote
761  hierarcies from incorrect removal by "git fetch --prune".
763  Comments?
766 * dd/find-graft-with-sha1-pos (2014-02-27) 1 commit
767   (merged to 'next' on 2014-03-12 at 0383d59)
768  + commit.c: use the generic "sha1_pos" function for lookup
770  Replace a hand-rolled binary search with a call to our generic
771  binary search helper function.
773  Will merge to 'master'.
776 * dd/use-alloc-grow (2014-03-03) 14 commits
777   (merged to 'next' on 2014-03-12 at ed82259)
778  + sha1_file.c: use ALLOC_GROW() in pretend_sha1_file()
779  + read-cache.c: use ALLOC_GROW() in add_index_entry()
780  + builtin/mktree.c: use ALLOC_GROW() in append_to_tree()
781  + attr.c: use ALLOC_GROW() in handle_attr_line()
782  + dir.c: use ALLOC_GROW() in create_simplify()
783  + reflog-walk.c: use ALLOC_GROW()
784  + replace_object.c: use ALLOC_GROW() in register_replace_object()
785  + patch-ids.c: use ALLOC_GROW() in add_commit()
786  + diffcore-rename.c: use ALLOC_GROW()
787  + diff.c: use ALLOC_GROW()
788  + commit.c: use ALLOC_GROW() in register_commit_graft()
789  + cache-tree.c: use ALLOC_GROW() in find_subtree()
790  + bundle.c: use ALLOC_GROW() in add_to_ref_list()
791  + builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path()
793  Replace open-coded reallocation with ALLOC_GROW() macro.
795  Will merge to 'master'.
798 * dk/skip-prefix-scan-only-once (2014-03-03) 1 commit
799   (merged to 'next' on 2014-03-14 at ff375fc)
800  + skip_prefix(): scan prefix only once
802  Update implementation of skip_prefix() to scan only once; given
803  that most "prefix" arguments to the inline function are constant
804  strings whose strlen() can be determined at the compile time, this
805  might actually make things worse with a compiler with sufficient
806  intelligence.
808  Will merge to 'master'.
811 * jk/shallow-update-fix (2014-02-27) 2 commits
812   (merged to 'next' on 2014-03-12 at ce5abbf)
813  + shallow: automatically clean up shallow tempfiles
814  + shallow: use stat_validity to check for up-to-date file
816  Serving objects from a shallow repository needs to write a
817  temporary file to be used, but the serving upload-pack may not have
818  write access to the repository which is meant to be read-only.
820  Will merge to 'master'.
823 * jn/branch-lift-unnecessary-name-length-limit (2014-03-05) 1 commit
824   (merged to 'next' on 2014-03-12 at bd0fb0e)
825  + branch.c: delete size check of newly tracked branch names
827  Will merge to 'master'.
830 * mh/simplify-cache-tree-find (2014-03-05) 6 commits
831   (merged to 'next' on 2014-03-12 at c29aa24)
832  + cache_tree_find(): use path variable when passing over slashes
833  + cache_tree_find(): remove early return
834  + cache_tree_find(): remove redundant check
835  + cache_tree_find(): fix comment formatting
836  + cache_tree_find(): find the end of path component using strchrnul()
837  + cache_tree_find(): remove redundant checks
839  Will merge to 'master'.
842 * nd/tag-version-sort (2014-02-27) 1 commit
843   (merged to 'next' on 2014-03-14 at 4e7f714)
844  + tag: support --sort=<spec>
846  Allow v1.9.0 sorted before v1.10.0 in "git tag --list" output.
848  Will merge to 'master'.
851 * sh/finish-tmp-packfile (2014-03-03) 2 commits
852   (merged to 'next' on 2014-03-12 at 410d45d)
853  + finish_tmp_packfile():use strbuf for pathname construction
854  + Merge branch 'sh/write-pack-file-warning-message-fix' into sh/finish-tmp-packfile
856  Will merge to 'master'.
859 * jk/diff-filespec-cleanup (2014-02-24) 1 commit
860   (merged to 'next' on 2014-03-12 at 184c2aa)
861  + diffcore.h: be explicit about the signedness of is_binary
863  Portability fix to a topic already in v1.9
865  Will merge to 'master' and then later to 'maint'.
868 * jk/repack-pack-keep-objects (2014-03-03) 1 commit
869   (merged to 'next' on 2014-03-12 at 3fd2335)
870  + repack: add `repack.packKeptObjects` config var
872  Will merge to 'master'.
875 * nd/sha1-file-delta-stack-leakage-fix (2014-02-24) 1 commit
876   (merged to 'next' on 2014-03-12 at 9d1a621)
877  + sha1_file: fix delta_stack memory leak in unpack_entry
879  Fix a small leak in the delta stack used when resolving a long
880  delta chain at runtime.
882  Will merge to 'master' and then later to 'maint'.
885 * tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit
886   (merged to 'next' on 2014-03-12 at b839886)
887  + demonstrate git-commit --dry-run exit code behaviour
890 * fc/transport-helper-fixes (2014-02-24) 7 commits
891   (merged to 'next' on 2014-03-12 at 5d7c69a)
892  + remote-bzr: support the new 'force' option
893  + test-hg.sh: tests are now expected to pass
894  + transport-helper.c: do not overwrite forced bit
895  + transport-helper: check for 'forced update' message
896  + transport-helper: add 'force' to 'export' helpers
897  + transport-helper: don't update refs in dry-run
898  + transport-helper: mismerge fix
900  Updates transport-helper, fast-import and fast-export to allow the
901  ref mapping and ref deletion in a way similar to the natively
902  supported transports.
904  Will merge to 'master'.
907 * nd/commit-editor-cleanup (2014-02-25) 3 commits
908  - commit: add --cleanup=scissors
909  - wt-status.c: move cut-line print code out to wt_status_add_cut_line
910  - wt-status.c: make cut_line[] const to shrink .data section a bit
912  "git commit --cleanup=<mode>" learned a new mode, scissors.
914  Will merge to 'next'.
917 * po/git-help-user-manual (2014-02-18) 1 commit
918  - Provide a 'git help user-manual' route to the docbook
920  I am not sure if this is even needed.
922  Will discard.
925 * nd/multiple-work-trees (2014-03-06) 28 commits
926  - FIXUP: minimum compilation fix
927  - count-objects: report unused files in $GIT_DIR/repos/...
928  - gc: support prune --repos
929  - gc: style change -- no SP before closing bracket
930  - prune: strategies for linked checkouts
931  - checkout: detach if the branch is already checked out elsewhere
932  - checkout: clean up half-prepared directories in --to mode
933  - checkout: support checking out into a new working directory
934  - use new wrapper write_file() for simple file writing
935  - wrapper.c: wrapper to open a file, fprintf then close
936  - setup.c: support multi-checkout repo setup
937  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
938  - setup.c: convert check_repository_format_gently to use strbuf
939  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
940  - setup.c: convert is_git_directory() to use strbuf
941  - git-stash: avoid hardcoding $GIT_DIR/logs/....
942  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
943  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
944  - Add new environment variable $GIT_COMMON_DIR
945  - commit: use SEQ_DIR instead of hardcoding "sequencer"
946  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
947  - reflog: avoid constructing .lock path with git_path
948  - *.sh: respect $GIT_INDEX_FILE
949  - Make git_path() aware of file relocation in $GIT_DIR
950  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
951  - path.c: rename vsnpath() to do_git_path()
952  - Convert git_snpath() to strbuf_git_path()
953  - path.c: make get_pathname() return strbuf instead of static buffer
955  The series needs a serious review.
958 * ks/tree-diff-nway (2014-03-04) 19 commits
959  - combine-diff: speed it up, by using multiparent diff tree-walker directly
960  - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
961  - Portable alloca for Git
962  - tree-diff: reuse base str(buf) memory on sub-tree recursion
963  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
964  - tree-diff: rework diff_tree interface to be sha1 based
965  - tree-diff: diff_tree() should now be static
966  - tree-diff: remove special-case diff-emitting code for empty-tree cases
967  - tree-diff: simplify tree_entry_pathcmp
968  - tree-diff: show_path prototype is not needed anymore
969  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
970  - tree-diff: move all action-taking code out of compare_tree_entry()
971  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
972  - tree-diff: consolidate code for emitting diffs and recursion in one place
973  - tree-diff: show_tree() is not needed
974  - tree-diff: no need to pass match to skip_uninteresting()
975  - tree-diff: no need to manually verify that there is no mode change for a path
976  - combine-diff: move changed-paths scanning logic into its own function
977  - combine-diff: move show_log_first logic/action out of paths scanning
979  Instead of running N pair-wise diff-trees when inspecting a
980  N-parent merge, find the set of paths that were touched by walking
981  N+1 trees in parallel.  These set of paths can then be turned into
982  N pair-wise diff-tree results to be processed through rename
983  detections and such.  And N=2 case nicely degenerates to the usual
984  2-way diff-tree, which is very nice.
987 * nd/log-show-linear-break (2014-02-10) 1 commit
988  - log: add --show-linear-break to help see non-linear history
990  Attempts to show where a single-strand-of-pearls break in "git log"
991  output.
993  Will hold.
996 * tr/remerge-diff (2014-02-26) 5 commits
997  . log --remerge-diff: show what the conflict resolution changed
998  . name-hash: allow dir hashing even when !ignore_case
999  . merge-recursive: allow storing conflict hunks in index
1000  . revision: fold all merge diff variants into an enum merge_diff_mode
1001  . combine-diff: do not pass revs->dense_combined_merges redundantly
1002  (this branch uses tr/merge-recursive-index-only.)
1004  "log -p" output learns a new way to let users inspect a merge
1005  commit by showing the differences between the automerged result
1006  with conflicts the person who recorded the merge would have seen
1007  and the final conflict resolution that was recorded in the merge.
1009  RFC.  This latest round clashes with the kb/fast-hashmap topic in
1010  'master'.
1013 * lt/request-pull (2014-03-13) 6 commits
1014  - request-pull: documentation updates
1015  - request-pull: resurrect "pretty refname" feature
1016  - request-pull: test updates
1017  - request-pull: pick up tag message as before
1018  - request-pull: allow "local:remote" to specify names on both ends
1019  - request-pull: more strictly match local/remote branches
1021  Will merge to 'next'.
1024 * cc/interpret-trailers (2014-03-07) 11 commits
1025  - Documentation: add documentation for 'git interpret-trailers'
1026  - trailer: add tests for commands in config file
1027  - trailer: execute command from 'trailer.<name>.command'
1028  - trailer: add tests for "git interpret-trailers"
1029  - trailer: add interpret-trailers command
1030  - trailer: put all the processing together and print
1031  - trailer: parse trailers from stdin
1032  - trailer: process command line trailer arguments
1033  - trailer: read and process config information
1034  - trailer: process trailers from stdin and arguments
1035  - trailers: add data structures and basic functions
1037  A new filter to programatically edit the tail end of the commit log
1038  messages.
1041 * bl/blame-full-history (2014-01-14) 1 commit
1042  - blame: new option --prefer-first to better handle merged cherry-picks
1044  By disabling the tree-same optimization (which is consistent with
1045  the default behaviour of "git log"-family of commands), make "git
1046  blame" sometimes produce different result from the original code.
1048  Because the "git blame" output can give result for each line from
1049  only one lineage of the history, however, this can be only useful
1050  when you are lucky---unlike "--full-history" of "git log"-family,
1051  where we can show commits from both lineages of histories with an
1052  equal weight.  See $gmane/240392 for more detailed discussion.
1054  Will discard.
1057 * tr/merge-recursive-index-only (2014-02-05) 3 commits
1058  - merge-recursive: -Xindex-only to leave worktree unchanged
1059  - merge-recursive: internal flag to avoid touching the worktree
1060  - merge-recursive: remove dead conditional in update_stages()
1061  (this branch is used by tr/remerge-diff.)
1063  Will hold.
1065 --------------------------------------------------
1066 [Discarded]
1068 * tb/repack-fix-renames (2014-02-05) 1 commit
1069  . repack.c: rename a few variables
1071  Perhaps unneeded, as the longer-term plan is to drop the codeblock
1072  this change touches.
1075 * ks/diff-c-with-diff-order (2014-02-03) 5 commits
1076  . combine-diff: simplify intersect_paths() further
1077  . combine-diff: combine_diff_path.len is not needed anymore
1078  . combine-diff: optimize combine_diff_path sets intersection
1079  . diff test: add tests for combine-diff with orderfile
1080  . diffcore-order: export generic ordering interface
1082  Now part of ks/combine-diff topic.
1085 * ks/tree-diff-more (2014-02-24) 15 commits
1086  - tree-diff: reuse base str(buf) memory on sub-tree recursion
1087  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
1088  - tree-diff: rework diff_tree interface to be sha1 based
1089  - tree-diff: remove special-case diff-emitting code for empty-tree cases
1090  - tree-diff: simplify tree_entry_pathcmp
1091  - tree-diff: show_path prototype is not needed anymore
1092  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
1093  - tree-diff: move all action-taking code out of compare_tree_entry()
1094  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
1095  - tree-diff: consolidate code for emitting diffs and recursion in one place
1096  - tree-diff: show_tree() is not needed
1097  - tree-diff: no need to pass match to skip_uninteresting()
1098  - tree-diff: no need to manually verify that there is no mode change for a path
1099  - combine-diff: move changed-paths scanning logic into its own function
1100  - combine-diff: move show_log_first logic/action out of paths scanning
1101  (this branch is used by ks/tree-diff-nway; uses ks/combine-diff.)
1103  Code refactoring.
1105  Now part of ks/tree-diff-nway.