What's cooking (2014/02 #07)
[git.git] / whats-cooking.txt
blob25dfbd6c3a80aea110679b65dc6e8524f912cc0a
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Feb 2014, #07; Tue, 25)
4 X-master-at: 5f95c9f850b19b368c43ae399cc831b17a26a5ac
5 X-next-at: 473e14350eeb6a6a233c48229514a6c604e92ae2
7 What's cooking in git.git (Feb 2014, #07; Tue, 25)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 The tip of 'next' has been rewound.  There are healthy number of
15 topics in there that have been well-cooked during the 1.9.0
16 development cycle that can graduate to 'master' (see the announce in
17 http://article.gmane.org/gmane.comp.version-control.git/242658).
18 After they are merged to 'master', I'm planning to go back to the
19 list archive to pick up patches I may have missed in the meantime.
21 You can find the changes described here in the integration branches
22 of the repositories listed at
24     http://git-blame.blogspot.com/p/git-public-repositories.html
26 --------------------------------------------------
27 [New Topics]
29 * ak/gitweb-fit-image (2014-02-20) 1 commit
30  - gitweb: Avoid overflowing page body frame with large images
32  Instead of allowing an <img> to be shown in whatever size, force
33  scaling it to fit on the page with max-height/max-width css style
34  attributes.
36  Will merge to 'next'.
39 * da/difftool-git-files (2014-02-24) 1 commit
40  - difftool: support repositories with .git-files
42  "git difftool" misbehaved when the repository is bound to the
43  working tree with the ".git file" mechanism, where a textual
44  file ".git" tells us where it is.
46  Will merge to 'next'.
49 * jk/commit-dates-parsing-fix (2014-02-24) 5 commits
50  - log: do not segfault on gmtime errors
51  - log: handle integer overflow in timestamps
52  - date: check date overflow against time_t
53  - fsck: report integer overflow in author timestamps
54  - t4212: test bogus timestamps with git-log
56  Will merge to 'next'.
59 * jk/diff-filespec-cleanup (2014-02-24) 1 commit
60  - diffcore.h: be explicit about the signedness of is_binary
62  Will merge to 'next' and then to 'master' and 'maint'.
65 * jk/remote-pushremote-config-reading (2014-02-24) 1 commit
66  - remote: handle pushremote config in any order
68  Will merge to 'next'.
71 * jk/repack-pack-keep-objects (2014-02-24) 1 commit
72  - repack: add `repack.packKeepObjects` config var
73  (this branch uses jk/pack-bitmap.)
75  Names?
78 * jm/stash-doc-k-for-keep (2014-02-24) 1 commit
79  - stash doc: mention short form -k in save description
81  Will merge to 'next'.
84 * jn/am-doc-hooks (2014-02-24) 1 commit
85  - am doc: add a pointer to relevant hooks
87  Will merge to 'next'.
90 * mh/object-code-cleanup (2014-02-24) 4 commits
91  - sha1_file.c: document a bunch of functions defined in the file
92  - sha1_file_name(): declare to return a const string
93  - find_pack_entry(): document last_found_pack
94  - replace_object: use struct members instead of an array
96  Will merge to 'next'.
99 * nd/i18n-progress (2014-02-24) 1 commit
100  - i18n: mark all progress lines for translation
102  Will merge to 'next'.
105 * nd/sha1-file-delta-stack-leakage-fix (2014-02-24) 1 commit
106  - sha1_file: fix delta_stack memory leak in unpack_entry
108  Will merge to 'next' and then to 'master' and 'maint'.
111 * tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit
112  - demonstrate git-commit --dry-run exit code behaviour
114 --------------------------------------------------
115 [Stalled]
117 * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit
118  - hashmap.h: make sure map entries are tightly packed
119  (this branch uses kb/fast-hashmap.)
121  I am inclined to drop this; an alternative is to replace it with
122  the "more portable" one that uses #pragma, which I am willing to
123  try doing so on 'pu', though.
126 * po/everyday-doc (2014-01-27) 1 commit
127  - Make 'git help everyday' work
129  This may make the said command to emit something, but the source is
130  not meant to be formatted into a manual pages to begin with, and
131  also its contents are a bit stale.  It may be a good first step in
132  the right direction, but needs more work to at least get the
133  mark-up right before public consumption.
135  Will hold.
138 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
139  - t1507 (rev-parse-upstream): fix typo in test title
140  - implement @{publish} shorthand
141  - branch_get: provide per-branch pushremote pointers
142  - branch_get: return early on error
143  - sha1_name: refactor upstream_mark
145  Give an easier access to the tracking branches from "other" side in
146  a triangular workflow by introducing B@{publish} that works in a
147  similar way to how B@{upstream} does.
149  Meant to be used as a basis for whatever Ram wants to build on.
151  Will hold.
154 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
155  - merge: drop unused arg from abort_commit method signature
156  - merge: make prepare_to_commit responsible for write_merge_state
157  - t7505: ensure cleanup after hook blocks merge
158  - t7505: add missing &&
160  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
161  run during "git merge".  The log message stresses too much on one
162  hook, prepare-commit-msg, but it would equally apply to other hooks
163  like post-merge, I think.
165  Waiting for a reroll.
168 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
169  - Teach checkout to recursively checkout submodules
170  - submodule: teach unpack_trees() to update submodules
171  - submodule: teach unpack_trees() to repopulate submodules
172  - submodule: teach unpack_trees() to remove submodule contents
173  - submodule: prepare for recursive checkout of submodules
175  Expecting a reroll.
178 * jc/graph-post-root-gap (2013-12-30) 3 commits
179  - WIP: document what we want at the end
180  - graph: remove unused code a bit
181  - graph: stuff the current commit into graph->columns[]
183  This was primarily a RFH ($gmane/239580).
186 * fc/completion (2013-12-09) 1 commit
187  - completion: fix completion of certain aliases
189  SZEDER Gábor noticed that this breaks "git -c var=val alias" and
190  also suggested a better description of the change.
192  Has been stalled for a while without much comments from anybody
193  interested.
195  Will discard.
198 * mo/subtree-split-updates (2013-12-10) 3 commits
199  - subtree: add --edit option
200  - subtree: allow --squash and --message with push
201  - subtree: support split --rejoin --squash
203  Has been stalled for a while without much comments from anybody
204  interested.
206  Will discard.
209 * hv/submodule-ignore-fix (2013-12-06) 4 commits
210  - disable complete ignorance of submodules for index <-> HEAD diff
211  - always show committed submodules in summary after commit
212  - teach add -f option for ignored submodules
213  - fix 'git add' to skip submodules configured as ignored
215  Teach "git add" to be consistent with "git status" when changes to
216  submodules are set to be ignored, to avoid surprises after checking
217  with "git status" to see there isn't any change to be further added
218  and then see that "git add ." adds changes to them.
220  I think a reroll is coming, so this may need to be replaced, but I
221  needed some practice with heavy conflict resolution.  It conflicts
222  with two changes to "git add" that have been scheduled for Git 2.0
223  quite badly, and I think I got the resolution right this time.
225  Waiting for a reroll.
228 * jc/create-directories-microopt (2013-11-11) 1 commit
229  - checkout: most of the time we have good leading directories
231  Of unknown value until tested on non-Linux platforms (especially
232  Windows).
234  Will discard.
237 * jt/commit-fixes-footer (2013-10-30) 1 commit
238  - commit: Add -f, --fixes <commit> option to add Fixes: line
240  There is an ongoing discussion around this topic; in general I am
241  fairly negative on a new feature that is too narrow and prefer a
242  more generic solution that can be tailored for specific needs, as
243  many people stated in the thread.
245  cc/interpret-trailers could be such a generic solution (although
246  there don't seem to be much concensus yet).
248  Will discard.
251 * np/pack-v4 (2013-09-18) 90 commits
252  . packv4-parse.c: add tree offset caching
253  . t1050: replace one instance of show-index with verify-pack
254  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
255  . unpack-objects: decode v4 trees
256  . unpack-objects: allow to save processed bytes to a buffer
257  - ...
259  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
260  primarily for wider distribution of the preview edition.
262  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
263  this topic conflicts with.
266 * mf/graph-show-root (2013-10-25) 1 commit
267  . graph.c: mark root commit differently
269  In a repository with multiple-roots, "log --graph", especially with
270  "--oneline", does not give the reader enough visual cue to see
271  where one line of history ended and a separate history began.
273  This is the version that marks the roots 'x' when they would have
274  been marked as '*'; Keshav Kini suggested an alternative of giving
275  an extra blank line after every root, which I tend to think is a
276  better approach to the problem.
278  Will discard.
281 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
282  - perf-lib: add test_perf_cleanup target
283  - perf-lib: split starting the test from the execution
285  Add test_perf_cleanup shell function to the perf suite, that allows
286  the script writers to define a test with a clean-up action.
288  Will hold.
291 * yt/shortened-rename (2013-10-18) 2 commits
292  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
293  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
295  Attempts to give more weight on the fact that a filepair represents
296  a rename than showing substring of the actual path when diffstat
297  lines are not wide enough.
299  I am not sure if that is solving a right problem, though.
301  Will discard.
304 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
305  - git-send-email: Cache generated message-ids, use them when prompting
306  - git-send-email: add optional 'choices' parameter to the ask sub
308  Will discard.
311 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
312  - ### DONTMERGE: needs better explanation on what config they need
313  - pack-refs.c: Add missing call to git_config()
314  - show-ref.c: Add missing call to git_config()
316  The changes themselves are probably good, but it is unclear what
317  basic setting needs to be read for which exact operation.
319  Will discard, tired of waiting for clarification.
320  $gmane/228294
323 * jc/format-patch (2013-04-22) 2 commits
324  - format-patch: --inline-single
325  - format-patch: rename "no_inline" field
327  A new option to send a single patch to the standard output to be
328  appended at the bottom of a message.  I personally have no need for
329  this, but it was easy enough to cobble together.  Tests, docs and
330  stripping out more MIMEy stuff are left as exercises to interested
331  parties.
334 * jk/gitweb-utf8 (2013-04-08) 4 commits
335  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
336  - gitweb: Don't append ';js=(0|1)' to external links
337  - gitweb: Make feed title valid utf8
338  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
340  Various fixes to gitweb.
342  Drew Northup volunteered to take a look into this ($gmane/226216)
343  but nothing seems to have happened since then.
345  Will discard.
348 * jc/show-branch (2013-06-07) 5 commits
349  - show-branch: use commit slab to represent bitflags of arbitrary width
350  - show-branch.c: remove "all_mask"
351  - show-branch.c: abstract out "flags" operation
352  - show-branch.c: lift all_mask/all_revs to a global static
353  - show-branch.c: update comment style
355  Waiting for the final step to lift the hard-limit before sending it out.
357 --------------------------------------------------
358 [Cooking]
360 * fc/transport-helper-fixes (2014-02-24) 7 commits
361  - remote-bzr: support the new 'force' option
362  - test-hg.sh: tests are now expected to pass
363  - transport-helper.c: do not overwrite forced bit
364  - transport-helper: check for 'forced update' message
365  - transport-helper: add 'force' to 'export' helpers
366  - transport-helper: don't update refs in dry-run
367  - transport-helper: mismerge fix
369  Updates transport-helper, fast-import and fast-export to allow the
370  ref mapping and ref deletion in a way similar to the natively
371  supported transports.
373  Will merge to 'next'.
376 * kb/fast-hashmap (2014-02-24) 18 commits
377   (merged to 'next' on 2014-02-25 at 88a98e6)
378  + name-hash: retire unused index_name_exists()
379  + hashmap.h: use 'unsigned int' for hash-codes everywhere
380  + test-hashmap.c: drop unnecessary #includes
381  + .gitignore: test-hashmap is a generated file
382  + read-cache.c: fix memory leaks caused by removed cache entries
383  + builtin/update-index.c: cleanup update_one
384  + fix 'git update-index --verbose --again' output
385  + remove old hash.[ch] implementation
386  + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
387  + name-hash.c: use new hash map implementation for cache entries
388  + name-hash.c: remove unreferenced directory entries
389  + name-hash.c: use new hash map implementation for directories
390  + diffcore-rename.c: use new hash map implementation
391  + diffcore-rename.c: simplify finding exact renames
392  + diffcore-rename.c: move code around to prepare for the next patch
393  + buitin/describe.c: use new hash map implementation
394  + add a hashtable implementation that supports O(1) removal
395  + submodule: don't access the .gitmodules cache entry after removing it
396  (this branch is used by kb/fast-hashmap-pack-struct.)
398  Originally merged to 'next' on 2014-01-03
400  Improvements to our hash table to get it to meet the needs of the
401  msysgit fscache project, with some nice performance improvements.
403  Will merge to 'master'.
406 * bc/blame-crlf-test (2014-02-18) 1 commit
407  - blame: add a failing test for a CRLF issue.
409  I have a feeling that a fix for this should be fairly isolated and
410  trivial (it should be just the matter of paying attention to the
411  crlf settings when synthesizing the fake commit)---perhaps somebody
412  can squash in a fix to this?
415 * jk/http-no-curl-easy (2014-02-18) 1 commit
416  - http: never use curl_easy_perform
418  Avoid use of the curl-easy family of functions, which interferes
419  with connection reuse in a negative way.
421  Will merge to 'next'.
424 * jk/janitorial-fixes (2014-02-18) 5 commits
425  - open_istream(): do not dereference NULL in the error case
426  - builtin/mv: don't use memory after free
427  - utf8: use correct type for values in interval table
428  - utf8: fix iconv error detection
429  - notes-utils: handle boolean notes.rewritemode correctly
431  Will merge to 'next'.
434 * ks/config-file-stdin (2014-02-18) 4 commits
435  - config: teach "git config --file -" to read from the standard input
436  - config: change git_config_with_options() interface
437  - builtin/config.c: rename check_blob_write() -> check_write()
438  - config: disallow relative include paths from blobs
440  Will merge to 'next'.
443 * lb/contrib-contacts-looser-diff-parsing (2014-02-18) 1 commit
444  - git-contacts: do not fail parsing of good diffs
446  Will merge to 'next'.
449 * mh/replace-refs-variable-rename (2014-02-20) 1 commit
450  - rename read_replace_refs to check_replace_refs
452  Will merge to 'next'.
455 * nd/commit-editor-cleanup (2014-02-25) 3 commits
456  - commit: add --cleanup=scissors
457  - wt-status.c: move cut-line print code out to wt_status_add_cut_line
458  - wt-status.c: make cut_line[] const to shrink .data section a bit
460  "git commit --cleanup=<mode>" learned a new mode, scissors.
463 * nd/no-more-fnmatch (2014-02-20) 4 commits
464  - actually remove compat fnmatch source code
465  - stop using fnmatch (either native or compat)
466  - Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch"
467  - use wildmatch() directly without fnmatch() wrapper
469  We started using wildmatch() in place of fnmatch(3); complete the
470  process and stop using fnmatch(3).
472  Will merge to 'next'.
475 * nd/reset-setup-worktree (2014-02-18) 1 commit
476  - reset: optionally setup worktree and refresh index on --mixed
478  "git reset" needs to refresh the index when working in a working
479  tree (it can also be used to match the index to the HEAD in an
480  otherwise bare repository), but it failed to set up the working
481  tree properly, causing GIT_WORK_TREE to be ignored.
483  Will merge to 'next'.
486 * po/git-help-user-manual (2014-02-18) 1 commit
487  - Provide a 'git help user-manual' route to the docbook
489  I am not sure if this is even needed.
492 * rt/links-for-asciidoctor (2014-02-20) 1 commit
493  - Documentation: fix documentation AsciiDoc links for external urls
495  Will merge to 'next'.
498 * tg/index-v4-format (2014-02-24) 3 commits
499  - read-cache: add index.version config variable
500  - test-lib: allow setting the index format version
501  - introduce GIT_INDEX_VERSION environment variable
503  Will merge to 'next'.
506 * tr/diff-submodule-no-reuse-worktree (2014-02-18) 1 commit
507  - diff: do not reuse_worktree_file for submodules
509  "git diff --external-diff" incorrectly fed the submodule directory
510  in the working tree to the external diff driver when it knew it is
511  the same as one of the versions being compared.
513  Will merge to 'next'.
516 * nd/multiple-work-trees (2014-02-19) 26 commits
517  - FIXUP???
518  - gc: support prune --repos
519  - prune: strategies for linked checkouts
520  - checkout: detach if the branch is already checked out elsewhere
521  - checkout: clean up half-prepared directories in --to mode
522  - checkout: support checking out into a new working directory
523  - use new wrapper write_file() for simple file writing
524  - wrapper.c: wrapper to open a file, fprintf then close
525  - setup.c: support multi-checkout repo setup
526  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
527  - setup.c: convert check_repository_format_gently to use strbuf
528  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
529  - setup.c: convert is_git_directory() to use strbuf
530  - git-stash: avoid hardcoding $GIT_DIR/logs/....
531  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
532  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
533  - Add new environment variable $GIT_COMMON_DIR
534  - commit: use SEQ_DIR instead of hardcoding "sequencer"
535  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
536  - reflog: avoid constructing .lock path with git_path
537  - *.sh: respect $GIT_INDEX_FILE
538  - Make git_path() aware of file relocation in $GIT_DIR
539  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
540  - path.c: rename vsnpath() to do_git_path()
541  - Convert git_snpath() to strbuf_git_path()
542  - path.c: make get_pathname() return strbuf instead of static buffer
544  The tip commit needs to be dropped; the series needs a serious review.
547 * ks/tree-diff-nway (2014-02-24) 2 commits
548  - combine-diff: speed it up, by using multiparent diff
549  - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
550  (this branch uses ks/combine-diff, ks/tree-diff-more and ks/tree-diff-walk.)
552  Instead of running N pair-wise diff-trees when inspecting a
553  N-parent merge, find the set of paths that were touched by walking
554  N+1 trees in parallel.  These set of paths can then be turned into
555  N pair-wise diff-tree results to be processed through rename
556  detections and such.  And N=2 case nicely degenerates to the usual
557  2-way diff-tree, which is very nice.
559  Promising, but unfortunately the implementation seems a bit too
560  unportable for such a core part of the system.
562  Reroll is there, but have run out of time to pick it up this round.
565 * al/docs (2014-02-11) 4 commits
566   (merged to 'next' on 2014-02-25 at 0c1a734)
567  + docs/git-blame: explain more clearly the example pickaxe use
568  + docs/git-clone: clarify use of --no-hardlinks option
569  + docs/git-remote: capitalize first word of initial blurb
570  + docs/merge-strategies: remove hyphen from mis-merges
572  Originally merged to 'next' on 2014-02-13
574  A handful of documentation updates, all trivially harmless.
576  Will merge to 'master'.
579 * jk/test-ports (2014-02-10) 2 commits
580   (merged to 'next' on 2014-02-25 at 86ce2e4)
581  + tests: auto-set git-daemon port
582  + tests: auto-set LIB_HTTPD_PORT from test name
583  (this branch is tangled with nd/http-fetch-shallow-fix.)
585  Originally merged to 'next' on 2014-02-13
587  Avoid having to assign port number to be used in tests manually.
589  Will merge to 'master'.
592 * nd/daemonize-gc (2014-02-10) 2 commits
593   (merged to 'next' on 2014-02-25 at f592335)
594  + gc: config option for running --auto in background
595  + daemon: move daemonize() to libgit.a
597  Originally merged to 'next' on 2014-02-20
599  Allow running "gc --auto" in the background.
601  Will merge to 'master'.
604 * nd/gitignore-trailing-whitespace (2014-02-10) 2 commits
605  - dir: ignore trailing spaces in exclude patterns
606  - dir: warn about trailing spaces in exclude patterns
608  Warn and then ignore trailing whitespaces in .gitignore files,
609  unless they are quoted for fnmatch(3), e.g. "path\ ".
611  Will merge to 'next'.
614 * nd/log-show-linear-break (2014-02-10) 1 commit
615  - log: add --show-linear-break to help see non-linear history
617  Attempts to show where a single-strand-of-pearls break in "git log"
618  output.
620  "git log --no-merges --show-linear-break" does not seem to work
621  well (tried on range "pu~10..pu" or something like that).
624 * ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit
625  - completion: teach --recurse-submodules to fetch, pull and push
627  Will merge to 'next'.
630 * ks/tree-diff-more (2014-02-24) 15 commits
631  - tree-diff: reuse base str(buf) memory on sub-tree recursion
632  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
633  - tree-diff: rework diff_tree interface to be sha1 based
634  - tree-diff: remove special-case diff-emitting code for empty-tree cases
635  - tree-diff: simplify tree_entry_pathcmp
636  - tree-diff: show_path prototype is not needed anymore
637  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
638  - tree-diff: move all action-taking code out of compare_tree_entry()
639  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
640  - tree-diff: consolidate code for emitting diffs and recursion in one place
641  - tree-diff: show_tree() is not needed
642  - tree-diff: no need to pass match to skip_uninteresting()
643  - tree-diff: no need to manually verify that there is no mode change for a path
644  - combine-diff: move changed-paths scanning logic into its own function
645  - combine-diff: move show_log_first logic/action out of paths scanning
646  (this branch is used by ks/tree-diff-nway; uses ks/combine-diff and ks/tree-diff-walk.)
648  Code refactoring.
650  Will merge to 'next'.
653 * jh/note-trees-record-blobs (2014-02-20) 1 commit
654  - notes: disallow reusing non-blob as a note object
656  "git notes -C <blob>" should not take an object that is not a blob.
658  Will merge to 'next'.
661 * jk/run-network-tests-by-default (2014-02-14) 1 commit
662   (merged to 'next' on 2014-02-25 at 62a8ad0)
663  + tests: turn on network daemon tests by default
665  Originally merged to 'next' on 2014-02-20
667  Teach "make test" to run networking tests when possible by default.
669  Will merge to 'master'.
672 * jc/check-attr-honor-working-tree (2014-02-06) 2 commits
673  - check-attr: move to the top of working tree when in non-bare repository
674  - t0003: do not chdir the whole test process
676  "git check-attr" when (trying to) work on a repository with a
677  working tree did not work well when the working tree was specified
678  via --work-tree (and obviously with --git-dir).
680  The command also works in a bare repository but it reads from the
681  (possibly stale, irrelevant and/or nonexistent) index, which may
682  need to be fixed to read from HEAD, but that is a completely
683  separate issue.  As a related tangentto this separate issue, we may
684  want to also fix "check-ignore", which refuses to work in a bare
685  repository, to also operate in a bare one.
687  Will merge to 'next'.
690 * nd/http-fetch-shallow-fix (2014-02-13) 7 commits
691   (merged to 'next' on 2014-02-25 at ad4e9c9)
692  + t5537: move http tests out to t5539
693  + fetch-pack: fix deepen shallow over smart http with no-done cap
694  + protocol-capabilities.txt: document no-done
695  + protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt
696  + pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done'
697  + test: rename http fetch and push test files
698  + tests: auto-set LIB_HTTPD_PORT from test name
699  (this branch is tangled with jk/test-ports.)
701  Originally merged to 'next' on 2014-02-13
703  Attempting to deepen a shallow repository by fetching over smart
704  HTTP transport failed in the protocol exchange, when no-done
705  extension was used.  The fetching side waited for the list of
706  shallow boundary commits after the sending end stopped talking to
707  it.
709  Will merge to 'master'.
712 * jk/makefile (2014-02-05) 16 commits
713  - FIXUP
714  - move LESS/LV pager environment to Makefile
715  - Makefile: teach scripts to include make variables
716  - FIXUP
717  - Makefile: auto-build C strings from make variables
718  - Makefile: drop *_SQ variables
719  - FIXUP
720  - Makefile: add c-quote helper function
721  - Makefile: introduce sq function for shell-quoting
722  - Makefile: always create files via make-var
723  - Makefile: store GIT-* sentinel files in MAKE/
724  - Makefile: prefer printf to echo for GIT-*
725  - Makefile: use tempfile/mv strategy for GIT-*
726  - Makefile: introduce make-var helper function
727  - Makefile: fix git-instaweb dependency on gitweb
728  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
730  Simplify the Makefile rules and macros that exist primarily for
731  quoting purposes, and make it easier to robustly express the
732  dependency rules.
734  Expecting a reroll.
737 * ks/tree-diff-walk (2014-02-24) 5 commits
738   (merged to 'next' on 2014-02-25 at 17e594f)
739  + tree-walk: finally switch over tree descriptors to contain a pre-parsed entry
740  + revision: convert to using diff_tree_sha1()
741  + line-log: convert to using diff_tree_sha1()
742  + tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL
743  + tree-diff: allow diff_tree_sha1 to accept NULL sha1
744  (this branch is used by ks/combine-diff, ks/tree-diff-more and ks/tree-diff-nway.)
746  Originally merged to 'next' on 2014-02-06
748  Will merge to 'master'.
751 * nd/reset-intent-to-add (2014-02-05) 1 commit
752   (merged to 'next' on 2014-02-25 at 0c48245)
753  + reset: support "--mixed --intent-to-add" mode
755  Originally merged to 'next' on 2014-02-07
757  Will merge to 'master'.
760 * nd/test-rename-reset (2014-02-04) 1 commit
761   (merged to 'next' on 2014-02-25 at 7b25711)
762  + t7101, t7014: rename test files to indicate what that file is for
764  Originally merged to 'next' on 2014-02-06
766  Will merge to 'master'.
769 * tr/remerge-diff (2014-02-05) 6 commits
770  - log --remerge-diff: show what the conflict resolution changed
771  - merge-recursive: allow storing conflict hunks in index
772  - Fold all merge diff variants into an enum
773  - combine-diff: do not pass revs->dense_combined_merges redundantly
774  - log: add a merge base inspection option
775  - pretty: refactor add_merge_info() into parts
776  (this branch uses tr/merge-recursive-index-only.)
778  "log -p" output learns a new way to let users inspect a merge
779  commit by showing the differences between the automerged result
780  with conflicts the person who recorded the merge would have seen
781  and the final conflict resolution that was recorded in the merge.
783  RFC.
786 * bs/stdio-undef-before-redef (2014-01-31) 1 commit
787   (merged to 'next' on 2014-02-25 at 77c4b5f)
788  + git-compat-util.h: #undef (v)snprintf before #define them
790  Originally merged to 'next' on 2014-01-31
792  When we replace broken macros from stdio.h in git-compat-util.h,
793  #undef them to avoid re-definition warnings from the C
794  preprocessor.
796  Will merge to 'master'.
799 * ep/varscope (2014-01-31) 7 commits
800   (merged to 'next' on 2014-02-25 at e967c7e)
801  + builtin/gc.c: reduce scope of variables
802  + builtin/fetch.c: reduce scope of variable
803  + builtin/commit.c: reduce scope of variables
804  + builtin/clean.c: reduce scope of variable
805  + builtin/blame.c: reduce scope of variables
806  + builtin/apply.c: reduce scope of variables
807  + bisect.c: reduce scope of variable
809  Originally merged to 'next' on 2014-01-31
811  Shrink lifetime of variables by moving their definitions to an
812  inner scope where appropriate.
814  Will merge to 'master'.
817 * mw/symlinks (2014-02-04) 6 commits
818   (merged to 'next' on 2014-02-25 at 15dc036)
819  + setup: don't dereference in-tree symlinks for absolute paths
820  + setup: add abspath_part_inside_repo() function
821  + t0060: add tests for prefix_path when path begins with work tree
822  + t0060: add test for prefix_path when path == work tree
823  + t0060: add test for prefix_path on symlinks via absolute paths
824  + t3004: add test for ls-files on symlinks via absolute paths
826  Originally merged to 'next' on 2014-02-06
828  All subcommands that take pathspecs mishandled an in-tree symbolic
829  link when given it as a full path from the root (which arguably is
830  a sick way to use pathspecs).  "git ls-files -s $(pwd)/RelNotes" in
831  our tree is an easy reproduction recipe.
833  Will merge to 'master'.
836 * ks/combine-diff (2014-02-24) 6 commits
837   (merged to 'next' on 2014-02-25 at 69e5a87)
838  + tests: add checking that combine-diff emits only correct paths
839  + combine-diff: simplify intersect_paths() further
840  + combine-diff: combine_diff_path.len is not needed anymore
841  + combine-diff: optimize combine_diff_path sets intersection
842  + diff test: add tests for combine-diff with orderfile
843  + diffcore-order: export generic ordering interface
844  (this branch is used by ks/tree-diff-more and ks/tree-diff-nway; uses ks/tree-diff-walk.)
846  Originally merged to 'next' on 2014-02-20
848  Teach combine-diff to honour the path-output-order imposed by
849  diffcore-order, and optimize how matching paths are found in
850  the N-way diffs made with parents.
852  Will merge to 'master'.
855 * bc/gpg-sign-everywhere (2014-02-11) 9 commits
856   (merged to 'next' on 2014-02-25 at 7db014c)
857  + pull: add the --gpg-sign option.
858  + rebase: add the --gpg-sign option
859  + rebase: parse options in stuck-long mode
860  + rebase: don't try to match -M option
861  + rebase: remove useless arguments check
862  + am: add the --gpg-sign option
863  + am: parse options in stuck-long mode
864  + git-sh-setup.sh: add variable to use the stuck-long mode
865  + cherry-pick, revert: add the --gpg-sign option
867  Originally merged to 'next' on 2014-02-13
869  Teach "--gpg-sign" option to many commands that create commits.
871  Will merge to 'master'.
874 * ds/rev-parse-required-args (2014-01-28) 1 commit
875   (merged to 'next' on 2014-02-25 at bba6e79)
876  + rev-parse: check i before using argv[i] against argc
878  Originally merged to 'next' on 2014-01-31
880  "git rev-parse --default" without the required option argument did
881  not diagnose it as an error.
883  Will merge to 'master'.
886 * jk/config-path-include-fix (2014-01-28) 2 commits
887   (merged to 'next' on 2014-02-25 at 3604f75)
888  + handle_path_include: don't look at NULL value
889  + expand_user_path: do not look at NULL path
891  Originally merged to 'next' on 2014-01-31
893  include.path variable (or any variable that expects a path that can
894  use ~username expansion) in the configuration file is not a
895  boolean, but the code failed to check it.
897  Will merge to 'master'.
900 * nd/submodule-pathspec-ending-with-slash (2014-02-24) 8 commits
901   (merged to 'next' on 2014-02-25 at 954b7a2)
902  + clean: use cache_name_is_other()
903  + clean: replace match_pathspec() with dir_path_match()
904  + pathspec: pass directory indicator to match_pathspec_item()
905  + match_pathspec: match pathspec "foo/" against directory "foo"
906  + dir.c: prepare match_pathspec_item for taking more flags
907  + pathspec: rename match_pathspec_depth() to match_pathspec()
908  + pathspec: convert some match_pathspec_depth() to dir_path_match()
909  + pathspec: convert some match_pathspec_depth() to ce_path_match()
911  Originally merged to 'next' on 2014-01-31
913  Allow "git cmd path/", when the 'path' is where a submodule is
914  bound to the top-level working tree, to match 'path', despite the
915  extra and unnecessary trailing slash.
917  Will merge to 'master'.
920 * lt/request-pull (2014-01-31) 4 commits
921  - pull-request: test updates
922  - request-pull: pick up tag message as before
923  - Make request-pull able to take a refspec of form local:remote
924  - Make 'git request-pull' more strict about matching
926  Waiting for the updates to settle.
929 * bk/refresh-missing-ok-in-merge-recursive (2014-02-24) 4 commits
930   (merged to 'next' on 2014-02-25 at 2651cb0)
931  + merge-recursive.c: tolerate missing files while refreshing index
932  + read-cache.c: extend make_cache_entry refresh flag with options
933  + read-cache.c: refactor --ignore-missing implementation
934  + t3030-merge-recursive: test known breakage with empty work tree
936  Originally merged to 'next' on 2014-01-29
938  Allow "merge-recursive" to work in an empty (temporary) working
939  tree again when there are renames involved, correcting an old
940  regression in 1.7.7 era.
942  Will merge to 'master'.
945 * nd/diff-quiet-stat-dirty (2014-02-24) 2 commits
946   (merged to 'next' on 2014-02-25 at 7cad1d3)
947  + diff: do not quit early on stat-dirty files
948  + diff.c: move diffcore_skip_stat_unmatch core logic out for reuse later
950  Originally merged to 'next' on 2014-01-31
952  "git diff --quiet -- pathspec1 pathspec2" sometimes did not return
953  correct status value.
955  Will merge to 'master'.
958 * cc/interpret-trailers (2014-02-20) 14 commits
959  - Documentation: add documentation for 'git interpret-trailers'
960  - trailer: add tests for commands using env variables
961  - trailer: set author and committer env variables
962  - trailer: add tests for trailer command
963  - trailer: execute command from 'trailer.<name>.command'
964  - trailer: if no input file is passed, read from stdin
965  - trailer: add tests for "git interpret-trailers"
966  - trailer: add interpret-trailers command
967  - trailer: put all the processing together and print
968  - trailer: parse trailers from input file
969  - trailer: process command line trailer arguments
970  - trailer: read and process config information
971  - trailer: process trailers from file and arguments
972  - trailer: add data structures and basic functions for commit trailers
974  Waiting for a reroll.
975  Hopefully ready for 'next'.
978 * dk/blame-janitorial (2014-02-25) 5 commits
979   (merged to 'next' on 2014-02-25 at d5faeb2)
980  + builtin/blame.c::find_copy_in_blob: no need to scan for region end
981  + blame.c: prepare_lines should not call xrealloc for every line
982  + builtin/blame.c::prepare_lines: fix allocation size of sb->lineno
983  + builtin/blame.c: eliminate same_suspect()
984  + builtin/blame.c: struct blame_entry does not need a prev link
986  Originally merged to 'next' on 2014-02-13
988  Code clean-up.
990  Will merge to 'master'.
993 * bl/blame-full-history (2014-01-14) 1 commit
994  - blame: new option --prefer-first to better handle merged cherry-picks
996  By disabling the tree-same optimization (which is consistent with
997  the default behaviour of "git log"-family of commands), make "git
998  blame" sometimes produce different result from the original code.
1000  Because the "git blame" output can give result for each line from
1001  only one lineage of the history, however, this can be only useful
1002  when you are lucky---unlike "--full-history" of "git log"-family,
1003  where we can show commits from both lineages of histories with an
1004  equal weight.  See $gmane/240392 for more detailed discussion.
1006  Will discard.
1009 * da/pull-ff-configuration (2014-01-15) 2 commits
1010   (merged to 'next' on 2014-02-25 at b9e4f61)
1011  + pull: add --ff-only to the help text
1012  + pull: add pull.ff configuration
1014  Originally merged to 'next' on 2014-01-22
1016  "git pull" learned to pay attention to pull.ff configuration
1017  variable.
1019  Will merge to 'master'.
1022 * wk/submodule-on-branch (2014-02-24) 4 commits
1023   (merged to 'next' on 2014-02-25 at c6d9fef)
1024  + Documentation: describe 'submodule update --remote' use case
1025  + submodule: explicit local branch creation in module_clone
1026  + submodule: document module_clone arguments in comments
1027  + submodule: make 'checkout' update_module mode more explicit
1029  Originally merged to 'next' on 2014-02-06
1031  Make sure 'submodule update' modes that do not detach HEADs can
1032  be used more pleasantly by checking out a concrete branch when
1033  cloning them to prime the well.
1035  Will merge to 'master'.
1038 * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits
1039  - get_sha1: drop object/refname ambiguity flag
1040  - get_sha1: speed up ambiguous 40-hex test
1041  - FIXUP: teach DO_FOR_EACH_NO_RECURSE to prime_ref_dir()
1042  - refs: teach for_each_ref a flag to avoid recursion
1043  - cat-file: fix a minor memory leak in batch_objects
1044  - cat-file: refactor error handling of batch_objects
1046  Expecting a reroll.
1049 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
1050  - remote-hg: do not fail on invalid bookmarks
1052  Reported to break tests ($gmane/240005)
1053  Expecting a reroll.
1056 * jk/pack-bitmap (2014-02-12) 26 commits
1057   (merged to 'next' on 2014-02-25 at 5f65d26)
1058  + ewah: unconditionally ntohll ewah data
1059  + ewah: support platforms that require aligned reads
1060  + read-cache: use get_be32 instead of hand-rolled ntoh_l
1061  + block-sha1: factor out get_be and put_be wrappers
1062  + do not discard revindex when re-preparing packfiles
1063  + pack-bitmap: implement optional name_hash cache
1064  + t/perf: add tests for pack bitmaps
1065  + t: add basic bitmap functionality tests
1066  + count-objects: recognize .bitmap in garbage-checking
1067  + repack: consider bitmaps when performing repacks
1068  + repack: handle optional files created by pack-objects
1069  + repack: turn exts array into array-of-struct
1070  + repack: stop using magic number for ARRAY_SIZE(exts)
1071  + pack-objects: implement bitmap writing
1072  + rev-list: add bitmap mode to speed up object lists
1073  + pack-objects: use bitmaps when packing objects
1074  + pack-objects: split add_object_entry
1075  + pack-bitmap: add support for bitmap indexes
1076  + documentation: add documentation for the bitmap format
1077  + ewah: compressed bitmap implementation
1078  + compat: add endianness helpers
1079  + sha1_file: export `git_open_noatime`
1080  + revision: allow setting custom limiter function
1081  + pack-objects: factor out name_hash
1082  + pack-objects: refactor the packing list
1083  + revindex: export new APIs
1084  (this branch is used by jk/repack-pack-keep-objects.)
1086  Originally merged to 'next' on 2014-02-13
1088  Borrow the bitmap index into packfiles from JGit to speed up
1089  enumeration of objects involved in a commit range without having to
1090  fully traverse the history.
1092  Will merge to 'master'.
1095 * nv/commit-gpgsign-config (2014-02-24) 3 commits
1096   (merged to 'next' on 2014-02-25 at 0baefa2)
1097  + test the commit.gpgsign config option
1098  + commit-tree: add and document --no-gpg-sign
1099  + commit-tree: add the commit.gpgsign option to sign all commits
1101  Originally merged to 'next' on 2014-01-03
1103  Introduce commit.gpgsign configuration variable to force every
1104  commit to be GPG signed.  The variable cannot be overriden from the
1105  command line of some of the commands that create commits except for
1106  "git commit" and "git commit-tree", but I am not convinced that it
1107  is a good idea to sprinkle support for --no-gpg-sign everywhere,
1108  which in turn means that this configuration variable may not be
1109  such a good idea.
1111  Will merge to 'master'.
1114 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
1115   (merged to 'next' on 2014-02-25 at 473e143)
1116  + strbuf: remove prefixcmp() and suffixcmp()
1118  Originally merged to 'next' on 2014-01-07
1120  Endgame for the cc/starts-n-ends-with topic; this needs to be
1121  evil-merged with other topics that introduce new uses of
1122  prefix/suffix-cmp functions.
1124  Will merge to 'master' for 2.0.0
1127 * gj/push-more-verbose-advice (2013-11-13) 1 commit
1128   (merged to 'next' on 2014-02-25 at 1cd10b0)
1129  + push: switch default from "matching" to "simple"
1131  Originally merged to 'next' on 2013-11-21
1133  Explain 'simple' and 'matching' in "git push" advice message; the
1134  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
1135  of it.
1137  Will merge to 'master' for 2.0.0
1140 * tr/merge-recursive-index-only (2014-02-05) 3 commits
1141  - merge-recursive: -Xindex-only to leave worktree unchanged
1142  - merge-recursive: internal flag to avoid touching the worktree
1143  - merge-recursive: remove dead conditional in update_stages()
1144  (this branch is used by tr/remerge-diff.)
1146  Will hold.
1149 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
1150   (merged to 'next' on 2014-02-25 at 9e5c0d2)
1151  + git add: -u/-A now affects the entire working tree
1153  Originally merged to 'next' on 2013-12-06
1155  Will merge to 'master' for 2.0.0
1158 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
1159   (merged to 'next' on 2014-02-25 at 62f6aeb)
1160  + core.statinfo: remove as promised in Git 2.0
1162  Originally merged to 'next' on 2013-12-06
1164  Will merge to 'master' for 2.0.0
1167 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
1168   (merged to 'next' on 2014-02-25 at 1f0e178)
1169  + push: switch default from "matching" to "simple"
1171  Originally merged to 'next' on 2013-12-06
1173  Will merge to 'master' for 2.0.0
1176 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
1177   (merged to 'next' on 2014-02-25 at a0d018a)
1178  + git add <pathspec>... defaults to "-A"
1180  Originally merged to 'next' on 2013-12-06
1182  Updated endgame for "git add <pathspec>" that defaults to "--all"
1183  aka "--no-ignore-removal".
1185  Will merge to 'master' for 2.0.0
1188 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
1189   (merged to 'next' on 2014-02-25 at ccfff88)
1190  + diff: remove "diff-files -q" in a version of Git in a distant future
1192  Originally merged to 'next' on 2013-12-06
1194  Remove deprecated "-q" option "git diff-files".
1196  Will cook in 'next' until a distant future.
1198 --------------------------------------------------
1199 [Discarded]
1201 * tb/repack-fix-renames (2014-02-05) 1 commit
1202  . repack.c: rename a few variables
1204  Perhaps unneeded, as the longer-term plan is to drop the codeblock
1205  this change touches.
1208 * ks/diff-c-with-diff-order (2014-02-03) 5 commits
1209  . combine-diff: simplify intersect_paths() further
1210  . combine-diff: combine_diff_path.len is not needed anymore
1211  . combine-diff: optimize combine_diff_path sets intersection
1212  . diff test: add tests for combine-diff with orderfile
1213  . diffcore-order: export generic ordering interface
1215  Now part of ks/combine-diff topic.