1 To: git@vger.kernel.org
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
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 --------------------------------------------------
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
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.
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
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
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.)
78 * jm/stash-doc-k-for-keep (2014-02-24) 1 commit
79 - stash doc: mention short form -k in save description
84 * jn/am-doc-hooks (2014-02-24) 1 commit
85 - am doc: add a pointer to relevant hooks
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
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 --------------------------------------------------
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.
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.
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
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
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
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
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).
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
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.
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.
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.
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
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.
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
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.
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 --------------------------------------------------
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
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"
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.)
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
709 Will merge to 'master'.
712 * jk/makefile (2014-02-05) 16 commits
714 - move LESS/LV pager environment to Makefile
715 - Makefile: teach scripts to include make variables
717 - Makefile: auto-build C strings from make variables
718 - Makefile: drop *_SQ variables
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
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.
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
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
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.
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
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
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)
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
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
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.)
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 --------------------------------------------------
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.