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