From 728b9ce4a44811fcbb2e6c7c7d142065be19eddf Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 4 Mar 2014 16:10:06 -0800 Subject: [PATCH] What's cooking (2014/03 #01) --- whats-cooking.txt | 1495 +++++++++++++++++++++++++++++------------------------ 1 file changed, 815 insertions(+), 680 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 25dfbd6c3a..5fa073a885 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,22 +1,18 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Feb 2014, #07; Tue, 25) -X-master-at: 5f95c9f850b19b368c43ae399cc831b17a26a5ac -X-next-at: 473e14350eeb6a6a233c48229514a6c604e92ae2 +Subject: What's cooking in git.git (Mar 2014, #01; Tue, 4) +X-master-at: 2de34784dfcbb4fe0febe9ab98e0b99138040109 +X-next-at: d464cb7a99e56a69dc347cdeb1620023efc8669a -What's cooking in git.git (Feb 2014, #07; Tue, 25) +What's cooking in git.git (Mar 2014, #01; Tue, 4) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. -The tip of 'next' has been rewound. There are healthy number of -topics in there that have been well-cooked during the 1.9.0 -development cycle that can graduate to 'master' (see the announce in -http://article.gmane.org/gmane.comp.version-control.git/242658). -After they are merged to 'master', I'm planning to go back to the -list archive to pick up patches I may have missed in the meantime. +A handful of "GSoC warm-up microprojects" have been queued on 'pu'. +Thanks for reviewing them. You can find the changes described here in the integration branches of the repositories listed at @@ -24,99 +20,494 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- +[Graduated to "master"] + +* al/docs (2014-02-11) 4 commits + (merged to 'next' on 2014-02-25 at 0c1a734) + + docs/git-blame: explain more clearly the example pickaxe use + + docs/git-clone: clarify use of --no-hardlinks option + + docs/git-remote: capitalize first word of initial blurb + + docs/merge-strategies: remove hyphen from mis-merges + + Originally merged to 'next' on 2014-02-13 + + A handful of documentation updates, all trivially harmless. + + +* bc/gpg-sign-everywhere (2014-02-11) 9 commits + (merged to 'next' on 2014-02-25 at 7db014c) + + pull: add the --gpg-sign option. + + rebase: add the --gpg-sign option + + rebase: parse options in stuck-long mode + + rebase: don't try to match -M option + + rebase: remove useless arguments check + + am: add the --gpg-sign option + + am: parse options in stuck-long mode + + git-sh-setup.sh: add variable to use the stuck-long mode + + cherry-pick, revert: add the --gpg-sign option + + Originally merged to 'next' on 2014-02-13 + + Teach "--gpg-sign" option to many commands that create commits. + + +* bk/refresh-missing-ok-in-merge-recursive (2014-02-24) 4 commits + (merged to 'next' on 2014-02-25 at 2651cb0) + + merge-recursive.c: tolerate missing files while refreshing index + + read-cache.c: extend make_cache_entry refresh flag with options + + read-cache.c: refactor --ignore-missing implementation + + t3030-merge-recursive: test known breakage with empty work tree + + Originally merged to 'next' on 2014-01-29 + + Allow "merge-recursive" to work in an empty (temporary) working + tree again when there are renames involved, correcting an old + regression in 1.7.7 era. + + +* bs/stdio-undef-before-redef (2014-01-31) 1 commit + (merged to 'next' on 2014-02-25 at 77c4b5f) + + git-compat-util.h: #undef (v)snprintf before #define them + + Originally merged to 'next' on 2014-01-31 + + When we replace broken macros from stdio.h in git-compat-util.h, + #undef them to avoid re-definition warnings from the C + preprocessor. + + +* da/pull-ff-configuration (2014-01-15) 2 commits + (merged to 'next' on 2014-02-25 at b9e4f61) + + pull: add --ff-only to the help text + + pull: add pull.ff configuration + + Originally merged to 'next' on 2014-01-22 + + "git pull" learned to pay attention to pull.ff configuration + variable. + + +* dk/blame-janitorial (2014-02-25) 5 commits + (merged to 'next' on 2014-02-25 at d5faeb2) + + builtin/blame.c::find_copy_in_blob: no need to scan for region end + + blame.c: prepare_lines should not call xrealloc for every line + + builtin/blame.c::prepare_lines: fix allocation size of sb->lineno + + builtin/blame.c: eliminate same_suspect() + + builtin/blame.c: struct blame_entry does not need a prev link + + Originally merged to 'next' on 2014-02-13 + + Code clean-up. + + +* ds/rev-parse-required-args (2014-01-28) 1 commit + (merged to 'next' on 2014-02-25 at bba6e79) + + rev-parse: check i before using argv[i] against argc + + Originally merged to 'next' on 2014-01-31 + + "git rev-parse --default" without the required option argument did + not diagnose it as an error. + + +* ep/varscope (2014-01-31) 7 commits + (merged to 'next' on 2014-02-25 at e967c7e) + + builtin/gc.c: reduce scope of variables + + builtin/fetch.c: reduce scope of variable + + builtin/commit.c: reduce scope of variables + + builtin/clean.c: reduce scope of variable + + builtin/blame.c: reduce scope of variables + + builtin/apply.c: reduce scope of variables + + bisect.c: reduce scope of variable + + Originally merged to 'next' on 2014-01-31 + + Shrink lifetime of variables by moving their definitions to an + inner scope where appropriate. + + +* jk/config-path-include-fix (2014-01-28) 2 commits + (merged to 'next' on 2014-02-25 at 3604f75) + + handle_path_include: don't look at NULL value + + expand_user_path: do not look at NULL path + + Originally merged to 'next' on 2014-01-31 + + include.path variable (or any variable that expects a path that can + use ~username expansion) in the configuration file is not a + boolean, but the code failed to check it. + + +* jk/pack-bitmap (2014-02-12) 26 commits + (merged to 'next' on 2014-02-25 at 5f65d26) + + ewah: unconditionally ntohll ewah data + + ewah: support platforms that require aligned reads + + read-cache: use get_be32 instead of hand-rolled ntoh_l + + block-sha1: factor out get_be and put_be wrappers + + do not discard revindex when re-preparing packfiles + + pack-bitmap: implement optional name_hash cache + + t/perf: add tests for pack bitmaps + + t: add basic bitmap functionality tests + + count-objects: recognize .bitmap in garbage-checking + + repack: consider bitmaps when performing repacks + + repack: handle optional files created by pack-objects + + repack: turn exts array into array-of-struct + + repack: stop using magic number for ARRAY_SIZE(exts) + + pack-objects: implement bitmap writing + + rev-list: add bitmap mode to speed up object lists + + pack-objects: use bitmaps when packing objects + + pack-objects: split add_object_entry + + pack-bitmap: add support for bitmap indexes + + documentation: add documentation for the bitmap format + + ewah: compressed bitmap implementation + + compat: add endianness helpers + + sha1_file: export `git_open_noatime` + + revision: allow setting custom limiter function + + pack-objects: factor out name_hash + + pack-objects: refactor the packing list + + revindex: export new APIs + (this branch is used by jk/repack-pack-keep-objects.) + + Originally merged to 'next' on 2014-02-13 + + Borrow the bitmap index into packfiles from JGit to speed up + enumeration of objects involved in a commit range without having to + fully traverse the history. + + +* jk/test-ports (2014-02-10) 2 commits + (merged to 'next' on 2014-02-25 at 86ce2e4) + + tests: auto-set git-daemon port + + tests: auto-set LIB_HTTPD_PORT from test name + (this branch is tangled with nd/http-fetch-shallow-fix.) + + Originally merged to 'next' on 2014-02-13 + + Avoid having to assign port number to be used in tests manually. + + +* kb/fast-hashmap (2014-02-24) 18 commits + (merged to 'next' on 2014-02-25 at 88a98e6) + + name-hash: retire unused index_name_exists() + + hashmap.h: use 'unsigned int' for hash-codes everywhere + + test-hashmap.c: drop unnecessary #includes + + .gitignore: test-hashmap is a generated file + + read-cache.c: fix memory leaks caused by removed cache entries + + builtin/update-index.c: cleanup update_one + + fix 'git update-index --verbose --again' output + + remove old hash.[ch] implementation + + name-hash.c: remove cache entries instead of marking them CE_UNHASHED + + name-hash.c: use new hash map implementation for cache entries + + name-hash.c: remove unreferenced directory entries + + name-hash.c: use new hash map implementation for directories + + diffcore-rename.c: use new hash map implementation + + diffcore-rename.c: simplify finding exact renames + + diffcore-rename.c: move code around to prepare for the next patch + + buitin/describe.c: use new hash map implementation + + add a hashtable implementation that supports O(1) removal + + submodule: don't access the .gitmodules cache entry after removing it + (this branch is used by kb/fast-hashmap-pack-struct.) + + Originally merged to 'next' on 2014-01-03 + + Improvements to our hash table to get it to meet the needs of the + msysgit fscache project, with some nice performance improvements. + + +* ks/tree-diff-walk (2014-02-24) 5 commits + (merged to 'next' on 2014-02-25 at 17e594f) + + tree-walk: finally switch over tree descriptors to contain a pre-parsed entry + + revision: convert to using diff_tree_sha1() + + line-log: convert to using diff_tree_sha1() + + tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL + + tree-diff: allow diff_tree_sha1 to accept NULL sha1 + (this branch is used by ks/combine-diff, ks/tree-diff-more and ks/tree-diff-nway.) + + Originally merged to 'next' on 2014-02-06 + + +* mw/symlinks (2014-02-04) 6 commits + (merged to 'next' on 2014-02-25 at 15dc036) + + setup: don't dereference in-tree symlinks for absolute paths + + setup: add abspath_part_inside_repo() function + + t0060: add tests for prefix_path when path begins with work tree + + t0060: add test for prefix_path when path == work tree + + t0060: add test for prefix_path on symlinks via absolute paths + + t3004: add test for ls-files on symlinks via absolute paths + + Originally merged to 'next' on 2014-02-06 + + All subcommands that take pathspecs mishandled an in-tree symbolic + link when given it as a full path from the root (which arguably is + a sick way to use pathspecs). "git ls-files -s $(pwd)/RelNotes" in + our tree is an easy reproduction recipe. + + +* nd/diff-quiet-stat-dirty (2014-02-24) 2 commits + (merged to 'next' on 2014-02-25 at 7cad1d3) + + diff: do not quit early on stat-dirty files + + diff.c: move diffcore_skip_stat_unmatch core logic out for reuse later + + Originally merged to 'next' on 2014-01-31 + + "git diff --quiet -- pathspec1 pathspec2" sometimes did not return + correct status value. + + +* nd/http-fetch-shallow-fix (2014-02-13) 7 commits + (merged to 'next' on 2014-02-25 at ad4e9c9) + + t5537: move http tests out to t5539 + + fetch-pack: fix deepen shallow over smart http with no-done cap + + protocol-capabilities.txt: document no-done + + protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt + + pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done' + + test: rename http fetch and push test files + + tests: auto-set LIB_HTTPD_PORT from test name + (this branch is tangled with jk/test-ports.) + + Originally merged to 'next' on 2014-02-13 + + Attempting to deepen a shallow repository by fetching over smart + HTTP transport failed in the protocol exchange, when no-done + extension was used. The fetching side waited for the list of + shallow boundary commits after the sending end stopped talking to + it. + + +* nd/reset-intent-to-add (2014-02-05) 1 commit + (merged to 'next' on 2014-02-25 at 0c48245) + + reset: support "--mixed --intent-to-add" mode + + Originally merged to 'next' on 2014-02-07 + + +* nd/submodule-pathspec-ending-with-slash (2014-02-24) 8 commits + (merged to 'next' on 2014-02-25 at 954b7a2) + + clean: use cache_name_is_other() + + clean: replace match_pathspec() with dir_path_match() + + pathspec: pass directory indicator to match_pathspec_item() + + match_pathspec: match pathspec "foo/" against directory "foo" + + dir.c: prepare match_pathspec_item for taking more flags + + pathspec: rename match_pathspec_depth() to match_pathspec() + + pathspec: convert some match_pathspec_depth() to dir_path_match() + + pathspec: convert some match_pathspec_depth() to ce_path_match() + + Originally merged to 'next' on 2014-01-31 + + Allow "git cmd path/", when the 'path' is where a submodule is + bound to the top-level working tree, to match 'path', despite the + extra and unnecessary trailing slash. + + +* nd/test-rename-reset (2014-02-04) 1 commit + (merged to 'next' on 2014-02-25 at 7b25711) + + t7101, t7014: rename test files to indicate what that file is for + + Originally merged to 'next' on 2014-02-06 + + +* nv/commit-gpgsign-config (2014-02-24) 3 commits + (merged to 'next' on 2014-02-25 at 0baefa2) + + test the commit.gpgsign config option + + commit-tree: add and document --no-gpg-sign + + commit-tree: add the commit.gpgsign option to sign all commits + + Originally merged to 'next' on 2014-01-03 + + Introduce commit.gpgsign configuration variable to force every + commit to be GPG signed. The variable cannot be overriden from the + command line of some of the commands that create commits except for + "git commit" and "git commit-tree", but I am not convinced that it + is a good idea to sprinkle support for --no-gpg-sign everywhere, + which in turn means that this configuration variable may not be + such a good idea. + + +* wk/submodule-on-branch (2014-02-24) 4 commits + (merged to 'next' on 2014-02-25 at c6d9fef) + + Documentation: describe 'submodule update --remote' use case + + submodule: explicit local branch creation in module_clone + + submodule: document module_clone arguments in comments + + submodule: make 'checkout' update_module mode more explicit + + Originally merged to 'next' on 2014-02-06 + + Make sure 'submodule update' modes that do not detach HEADs can + be used more pleasantly by checking out a concrete branch when + cloning them to prime the well. + +-------------------------------------------------- [New Topics] -* ak/gitweb-fit-image (2014-02-20) 1 commit - - gitweb: Avoid overflowing page body frame with large images +* jc/stash-pop-not-popped (2014-02-26) 1 commit + - stash pop: mention we did not drop the stash upon failing to apply - Instead of allowing an to be shown in whatever size, force - scaling it to fit on the page with max-height/max-width css style - attributes. + "stash pop", upon failing to apply the stash, refrains from + discarding the stash to avoid information loss. Be more explicit + in the error message. + + The wording may want to get a bit more bikeshedding, but otherwise + it should be OK for 'next'. + + +* bg/install-branch-config-skip-prefix (2014-02-28) 2 commits + - branch: use skip_prefix() in install_branch_config() + - t3200-branch: test setting branch as own upstream + + The new test probably wants the longer-term effect of the rejected + operation, not just the rejection warning message. + + +* cn/fetch-prune-overlapping-destination (2014-02-28) 2 commits + - fetch: handle overlaping refspecs on --prune + - fetch: add a failing test for prunning with overlapping refspecs + + Protect refs in a hierarchy that can come from more than one remote + hierarcies from incorrect removal by "git fetch --prune". + + Comments? + + +* dd/find-graft-with-sha1-pos (2014-02-27) 1 commit + - commit.c: use the generic "sha1_pos" function for lookup + + Replace a hand-rolled binary search with a call to our generic + binary search helper function. + + +* dd/use-alloc-grow (2014-03-03) 14 commits + - sha1_file.c: use ALLOC_GROW() in pretend_sha1_file() + - read-cache.c: use ALLOC_GROW() in add_index_entry() + - builtin/mktree.c: use ALLOC_GROW() in append_to_tree() + - attr.c: use ALLOC_GROW() in handle_attr_line() + - dir.c: use ALLOC_GROW() in create_simplify() + - reflog-walk.c: use ALLOC_GROW() + - replace_object.c: use ALLOC_GROW() in register_replace_object() + - patch-ids.c: use ALLOC_GROW() in add_commit() + - diffcore-rename.c: use ALLOC_GROW() + - diff.c: use ALLOC_GROW() + - commit.c: use ALLOC_GROW() in register_commit_graft() + - cache-tree.c: use ALLOC_GROW() in find_subtree() + - bundle.c: use ALLOC_GROW() in add_to_ref_list() + - builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() + + Replace open-coded reallocation with ALLOC_GROW() macro. + + +* dk/skip-prefix-scan-only-once (2014-03-03) 1 commit + - skip_prefix(): scan prefix only once + + Updaste implementation of skip_prefix() to scan only once; given + that most "prefix" arguments to the inline function are constant + strings whose strlen() can be determined at the compile time, this + might actually make things worse with a compiler with sufficient + intelligence. + + +* jk/doc-coding-guideline (2014-02-28) 1 commit + - CodingGuidelines: mention C whitespace rules + + Elaborate on a style niggle that has been part of "mimic existing + code". Will merge to 'next'. -* da/difftool-git-files (2014-02-24) 1 commit - - difftool: support repositories with .git-files +* jk/shallow-update-fix (2014-02-27) 2 commits + - shallow: automatically clean up shallow tempfiles + - shallow: use stat_validity to check for up-to-date file - "git difftool" misbehaved when the repository is bound to the - working tree with the ".git file" mechanism, where a textual - file ".git" tells us where it is. + Serving objects from a shallow repository needs to write a + temporary file to be used, but the serving upload-pack may not have + write access to the repository which is meant to be read-only. + + +* jl/doc-submodule-update-checkout (2014-02-28) 1 commit + - submodule update: consistently document the '--checkout' option + + Add missing documentation for "submodule update --checkout". Will merge to 'next'. -* jk/commit-dates-parsing-fix (2014-02-24) 5 commits - - log: do not segfault on gmtime errors - - log: handle integer overflow in timestamps - - date: check date overflow against time_t - - fsck: report integer overflow in author timestamps - - t4212: test bogus timestamps with git-log +* jn/bisect-coding-style (2014-03-03) 1 commit + - git-bisect.sh: fix a few style issues Will merge to 'next'. -* jk/diff-filespec-cleanup (2014-02-24) 1 commit - - diffcore.h: be explicit about the signedness of is_binary +* jn/branch-lift-unnecessary-name-length-limit (2014-02-28) 1 commit + - branch.c: delete size check of newly tracked branch names - Will merge to 'next' and then to 'master' and 'maint'. +* mh/simplify-cache-tree-find (2014-03-04) 2 commits + - SQUASH??? use strchrnul + - cache_tree_find(): remove redundant checks -* jk/remote-pushremote-config-reading (2014-02-24) 1 commit - - remote: handle pushremote config in any order + +* nd/strbuf-inline-styles (2014-03-03) 1 commit + - strbuf: style fix -- top opening bracket on a separate line Will merge to 'next'. -* jk/repack-pack-keep-objects (2014-02-24) 1 commit - - repack: add `repack.packKeepObjects` config var - (this branch uses jk/pack-bitmap.) +* nd/tag-version-sort (2014-02-27) 1 commit + - tag: support --sort= - Names? + Allow v1.9.0 sorted before v1.10.0 in "git tag --list" output. -* jm/stash-doc-k-for-keep (2014-02-24) 1 commit - - stash doc: mention short form -k in save description +* rt/help-pretty-prints-cmd-names (2014-02-28) 1 commit + - help.c: rename function "pretty_print_string_list" Will merge to 'next'. -* jn/am-doc-hooks (2014-02-24) 1 commit - - am doc: add a pointer to relevant hooks +* sg/archive-restrict-remote (2014-02-28) 2 commits + - add uploadarchive.allowUnreachable option + - docs: clarify remote restrictions for git-upload-archive + + Allow loosening remote "git archive" invocation security check that + refuses to serve tree-ish not at the tip of any ref. Will merge to 'next'. -* mh/object-code-cleanup (2014-02-24) 4 commits - - sha1_file.c: document a bunch of functions defined in the file - - sha1_file_name(): declare to return a const string - - find_pack_entry(): document last_found_pack - - replace_object: use struct members instead of an array - Will merge to 'next'. +* sh/finish-tmp-packfile (2014-03-03) 2 commits + - finish_tmp_packfile():use strbuf for pathname construction + - Merge branch 'sh/write-pack-file-warning-message-fix' into sh/finish-tmp-packfile + (this branch uses sh/write-pack-file-warning-message-fix.) -* nd/i18n-progress (2014-02-24) 1 commit - - i18n: mark all progress lines for translation +* sh/write-pack-file-warning-message-fix (2014-03-03) 1 commit + - write_pack_file: use correct variable in diagnostic + (this branch is used by sh/finish-tmp-packfile.) + + A warning from "git pack-objects" were generated by referring to an + incorrect variable when forming the filename that we had trouble + with. Will merge to 'next'. -* nd/sha1-file-delta-stack-leakage-fix (2014-02-24) 1 commit - - sha1_file: fix delta_stack memory leak in unpack_entry +* sr/add--interactive-term-readkey (2014-03-03) 2 commits + - git-add--interactive: warn if module for interactive.singlekey is missing + - git-config: document interactive.singlekey requires Term::ReadKey - Will merge to 'next' and then to 'master' and 'maint'. + Will merge to 'next'. -* tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit - - demonstrate git-commit --dry-run exit code behaviour +* ta/parse-commit-with-skip-prefix (2014-03-04) 1 commit + - commit.c: use skip_prefix() instead of starts_with() + + Will merge to 'next'. -------------------------------------------------- [Stalled] * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit - hashmap.h: make sure map entries are tightly packed - (this branch uses kb/fast-hashmap.) I am inclined to drop this; an alternative is to replace it with the "more portable" one that uses #pragma, which I am willing to @@ -267,694 +658,515 @@ of the repositories listed at . graph.c: mark root commit differently In a repository with multiple-roots, "log --graph", especially with - "--oneline", does not give the reader enough visual cue to see - where one line of history ended and a separate history began. - - This is the version that marks the roots 'x' when they would have - been marked as '*'; Keshav Kini suggested an alternative of giving - an extra blank line after every root, which I tend to think is a - better approach to the problem. - - Will discard. - - -* tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits - - perf-lib: add test_perf_cleanup target - - perf-lib: split starting the test from the execution - - Add test_perf_cleanup shell function to the perf suite, that allows - the script writers to define a test with a clean-up action. - - Will hold. - - -* yt/shortened-rename (2013-10-18) 2 commits - - SQUASH??? style fixes and s/omit/shorten/ where appropriate - - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible - - Attempts to give more weight on the fact that a filepair represents - a rename than showing substring of the actual path when diffstat - lines are not wide enough. - - I am not sure if that is solving a right problem, though. - - Will discard. - - -* rv/send-email-cache-generated-mid (2013-08-21) 2 commits - - git-send-email: Cache generated message-ids, use them when prompting - - git-send-email: add optional 'choices' parameter to the ask sub - - Will discard. - - -* rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits - - ### DONTMERGE: needs better explanation on what config they need - - pack-refs.c: Add missing call to git_config() - - show-ref.c: Add missing call to git_config() - - The changes themselves are probably good, but it is unclear what - basic setting needs to be read for which exact operation. - - Will discard, tired of waiting for clarification. - $gmane/228294 - - -* jc/format-patch (2013-04-22) 2 commits - - format-patch: --inline-single - - format-patch: rename "no_inline" field - - A new option to send a single patch to the standard output to be - appended at the bottom of a message. I personally have no need for - this, but it was easy enough to cobble together. Tests, docs and - stripping out more MIMEy stuff are left as exercises to interested - parties. - - -* jk/gitweb-utf8 (2013-04-08) 4 commits - - gitweb: Fix broken blob action parameters on blob/commitdiff pages - - gitweb: Don't append ';js=(0|1)' to external links - - gitweb: Make feed title valid utf8 - - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch - - Various fixes to gitweb. - - Drew Northup volunteered to take a look into this ($gmane/226216) - but nothing seems to have happened since then. - - Will discard. - - -* jc/show-branch (2013-06-07) 5 commits - - show-branch: use commit slab to represent bitflags of arbitrary width - - show-branch.c: remove "all_mask" - - show-branch.c: abstract out "flags" operation - - show-branch.c: lift all_mask/all_revs to a global static - - show-branch.c: update comment style - - Waiting for the final step to lift the hard-limit before sending it out. - --------------------------------------------------- -[Cooking] - -* fc/transport-helper-fixes (2014-02-24) 7 commits - - remote-bzr: support the new 'force' option - - test-hg.sh: tests are now expected to pass - - transport-helper.c: do not overwrite forced bit - - transport-helper: check for 'forced update' message - - transport-helper: add 'force' to 'export' helpers - - transport-helper: don't update refs in dry-run - - transport-helper: mismerge fix - - Updates transport-helper, fast-import and fast-export to allow the - ref mapping and ref deletion in a way similar to the natively - supported transports. - - Will merge to 'next'. - - -* kb/fast-hashmap (2014-02-24) 18 commits - (merged to 'next' on 2014-02-25 at 88a98e6) - + name-hash: retire unused index_name_exists() - + hashmap.h: use 'unsigned int' for hash-codes everywhere - + test-hashmap.c: drop unnecessary #includes - + .gitignore: test-hashmap is a generated file - + read-cache.c: fix memory leaks caused by removed cache entries - + builtin/update-index.c: cleanup update_one - + fix 'git update-index --verbose --again' output - + remove old hash.[ch] implementation - + name-hash.c: remove cache entries instead of marking them CE_UNHASHED - + name-hash.c: use new hash map implementation for cache entries - + name-hash.c: remove unreferenced directory entries - + name-hash.c: use new hash map implementation for directories - + diffcore-rename.c: use new hash map implementation - + diffcore-rename.c: simplify finding exact renames - + diffcore-rename.c: move code around to prepare for the next patch - + buitin/describe.c: use new hash map implementation - + add a hashtable implementation that supports O(1) removal - + submodule: don't access the .gitmodules cache entry after removing it - (this branch is used by kb/fast-hashmap-pack-struct.) - - Originally merged to 'next' on 2014-01-03 - - Improvements to our hash table to get it to meet the needs of the - msysgit fscache project, with some nice performance improvements. - - Will merge to 'master'. - - -* bc/blame-crlf-test (2014-02-18) 1 commit - - blame: add a failing test for a CRLF issue. - - I have a feeling that a fix for this should be fairly isolated and - trivial (it should be just the matter of paying attention to the - crlf settings when synthesizing the fake commit)---perhaps somebody - can squash in a fix to this? - - -* jk/http-no-curl-easy (2014-02-18) 1 commit - - http: never use curl_easy_perform - - Avoid use of the curl-easy family of functions, which interferes - with connection reuse in a negative way. - - Will merge to 'next'. - - -* jk/janitorial-fixes (2014-02-18) 5 commits - - open_istream(): do not dereference NULL in the error case - - builtin/mv: don't use memory after free - - utf8: use correct type for values in interval table - - utf8: fix iconv error detection - - notes-utils: handle boolean notes.rewritemode correctly - - Will merge to 'next'. - - -* ks/config-file-stdin (2014-02-18) 4 commits - - config: teach "git config --file -" to read from the standard input - - config: change git_config_with_options() interface - - builtin/config.c: rename check_blob_write() -> check_write() - - config: disallow relative include paths from blobs - - Will merge to 'next'. - - -* lb/contrib-contacts-looser-diff-parsing (2014-02-18) 1 commit - - git-contacts: do not fail parsing of good diffs - - Will merge to 'next'. + "--oneline", does not give the reader enough visual cue to see + where one line of history ended and a separate history began. + This is the version that marks the roots 'x' when they would have + been marked as '*'; Keshav Kini suggested an alternative of giving + an extra blank line after every root, which I tend to think is a + better approach to the problem. -* mh/replace-refs-variable-rename (2014-02-20) 1 commit - - rename read_replace_refs to check_replace_refs + Will discard. - Will merge to 'next'. +* tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits + - perf-lib: add test_perf_cleanup target + - perf-lib: split starting the test from the execution -* nd/commit-editor-cleanup (2014-02-25) 3 commits - - commit: add --cleanup=scissors - - wt-status.c: move cut-line print code out to wt_status_add_cut_line - - wt-status.c: make cut_line[] const to shrink .data section a bit + Add test_perf_cleanup shell function to the perf suite, that allows + the script writers to define a test with a clean-up action. - "git commit --cleanup=" learned a new mode, scissors. + Will hold. -* nd/no-more-fnmatch (2014-02-20) 4 commits - - actually remove compat fnmatch source code - - stop using fnmatch (either native or compat) - - Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch" - - use wildmatch() directly without fnmatch() wrapper +* yt/shortened-rename (2013-10-18) 2 commits + - SQUASH??? style fixes and s/omit/shorten/ where appropriate + - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible - We started using wildmatch() in place of fnmatch(3); complete the - process and stop using fnmatch(3). + Attempts to give more weight on the fact that a filepair represents + a rename than showing substring of the actual path when diffstat + lines are not wide enough. - Will merge to 'next'. + I am not sure if that is solving a right problem, though. + Will discard. -* nd/reset-setup-worktree (2014-02-18) 1 commit - - reset: optionally setup worktree and refresh index on --mixed - "git reset" needs to refresh the index when working in a working - tree (it can also be used to match the index to the HEAD in an - otherwise bare repository), but it failed to set up the working - tree properly, causing GIT_WORK_TREE to be ignored. +* rv/send-email-cache-generated-mid (2013-08-21) 2 commits + - git-send-email: Cache generated message-ids, use them when prompting + - git-send-email: add optional 'choices' parameter to the ask sub - Will merge to 'next'. + Will discard. -* po/git-help-user-manual (2014-02-18) 1 commit - - Provide a 'git help user-manual' route to the docbook +* rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits + - ### DONTMERGE: needs better explanation on what config they need + - pack-refs.c: Add missing call to git_config() + - show-ref.c: Add missing call to git_config() - I am not sure if this is even needed. + The changes themselves are probably good, but it is unclear what + basic setting needs to be read for which exact operation. + Will discard, tired of waiting for clarification. + $gmane/228294 -* rt/links-for-asciidoctor (2014-02-20) 1 commit - - Documentation: fix documentation AsciiDoc links for external urls - Will merge to 'next'. +* jc/format-patch (2013-04-22) 2 commits + - format-patch: --inline-single + - format-patch: rename "no_inline" field + A new option to send a single patch to the standard output to be + appended at the bottom of a message. I personally have no need for + this, but it was easy enough to cobble together. Tests, docs and + stripping out more MIMEy stuff are left as exercises to interested + parties. -* tg/index-v4-format (2014-02-24) 3 commits - - read-cache: add index.version config variable - - test-lib: allow setting the index format version - - introduce GIT_INDEX_VERSION environment variable - Will merge to 'next'. +* jk/gitweb-utf8 (2013-04-08) 4 commits + - gitweb: Fix broken blob action parameters on blob/commitdiff pages + - gitweb: Don't append ';js=(0|1)' to external links + - gitweb: Make feed title valid utf8 + - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch + Various fixes to gitweb. -* tr/diff-submodule-no-reuse-worktree (2014-02-18) 1 commit - - diff: do not reuse_worktree_file for submodules + Drew Northup volunteered to take a look into this ($gmane/226216) + but nothing seems to have happened since then. - "git diff --external-diff" incorrectly fed the submodule directory - in the working tree to the external diff driver when it knew it is - the same as one of the versions being compared. + Will discard. - Will merge to 'next'. +* jc/show-branch (2013-06-07) 5 commits + - show-branch: use commit slab to represent bitflags of arbitrary width + - show-branch.c: remove "all_mask" + - show-branch.c: abstract out "flags" operation + - show-branch.c: lift all_mask/all_revs to a global static + - show-branch.c: update comment style -* nd/multiple-work-trees (2014-02-19) 26 commits - - FIXUP??? - - gc: support prune --repos - - prune: strategies for linked checkouts - - checkout: detach if the branch is already checked out elsewhere - - checkout: clean up half-prepared directories in --to mode - - checkout: support checking out into a new working directory - - use new wrapper write_file() for simple file writing - - wrapper.c: wrapper to open a file, fprintf then close - - setup.c: support multi-checkout repo setup - - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() - - setup.c: convert check_repository_format_gently to use strbuf - - setup.c: detect $GIT_COMMON_DIR in is_git_directory() - - setup.c: convert is_git_directory() to use strbuf - - git-stash: avoid hardcoding $GIT_DIR/logs/.... - - *.sh: avoid hardcoding $GIT_DIR/hooks/... - - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects - - Add new environment variable $GIT_COMMON_DIR - - commit: use SEQ_DIR instead of hardcoding "sequencer" - - fast-import: use git_path() for accessing .git dir instead of get_git_dir() - - reflog: avoid constructing .lock path with git_path - - *.sh: respect $GIT_INDEX_FILE - - Make git_path() aware of file relocation in $GIT_DIR - - path.c: group git_path(), git_pathdup() and strbuf_git_path() together - - path.c: rename vsnpath() to do_git_path() - - Convert git_snpath() to strbuf_git_path() - - path.c: make get_pathname() return strbuf instead of static buffer + Waiting for the final step to lift the hard-limit before sending it out. - The tip commit needs to be dropped; the series needs a serious review. +-------------------------------------------------- +[Cooking] +* ak/gitweb-fit-image (2014-02-20) 1 commit + - gitweb: Avoid overflowing page body frame with large images -* ks/tree-diff-nway (2014-02-24) 2 commits - - combine-diff: speed it up, by using multiparent diff - - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well - (this branch uses ks/combine-diff, ks/tree-diff-more and ks/tree-diff-walk.) + Instead of allowing an to be shown in whatever size, force + scaling it to fit on the page with max-height/max-width css style + attributes. - Instead of running N pair-wise diff-trees when inspecting a - N-parent merge, find the set of paths that were touched by walking - N+1 trees in parallel. These set of paths can then be turned into - N pair-wise diff-tree results to be processed through rename - detections and such. And N=2 case nicely degenerates to the usual - 2-way diff-tree, which is very nice. + Will merge to 'next'. - Promising, but unfortunately the implementation seems a bit too - unportable for such a core part of the system. - Reroll is there, but have run out of time to pick it up this round. +* da/difftool-git-files (2014-02-25) 2 commits + - WIP: test to protect the previous fix + - difftool: support repositories with .git-files + "git difftool" misbehaved when the repository is bound to the + working tree with the ".git file" mechanism, where a textual + file ".git" tells us where it is. -* al/docs (2014-02-11) 4 commits - (merged to 'next' on 2014-02-25 at 0c1a734) - + docs/git-blame: explain more clearly the example pickaxe use - + docs/git-clone: clarify use of --no-hardlinks option - + docs/git-remote: capitalize first word of initial blurb - + docs/merge-strategies: remove hyphen from mis-merges + Will merge to 'next'. - Originally merged to 'next' on 2014-02-13 - A handful of documentation updates, all trivially harmless. +* jk/commit-dates-parsing-fix (2014-02-24) 5 commits + - log: do not segfault on gmtime errors + - log: handle integer overflow in timestamps + - date: check date overflow against time_t + - fsck: report integer overflow in author timestamps + - t4212: test bogus timestamps with git-log - Will merge to 'master'. + Will merge to 'next'. -* jk/test-ports (2014-02-10) 2 commits - (merged to 'next' on 2014-02-25 at 86ce2e4) - + tests: auto-set git-daemon port - + tests: auto-set LIB_HTTPD_PORT from test name - (this branch is tangled with nd/http-fetch-shallow-fix.) +* jk/diff-filespec-cleanup (2014-02-24) 1 commit + - diffcore.h: be explicit about the signedness of is_binary - Originally merged to 'next' on 2014-02-13 + Will merge to 'next' and then to 'master' and 'maint'. - Avoid having to assign port number to be used in tests manually. - Will merge to 'master'. +* jk/remote-pushremote-config-reading (2014-02-24) 1 commit + - remote: handle pushremote config in any order + Will merge to 'next'. -* nd/daemonize-gc (2014-02-10) 2 commits - (merged to 'next' on 2014-02-25 at f592335) - + gc: config option for running --auto in background - + daemon: move daemonize() to libgit.a - Originally merged to 'next' on 2014-02-20 +* jk/repack-pack-keep-objects (2014-03-03) 1 commit + - repack: add `repack.packKeptObjects` config var - Allow running "gc --auto" in the background. - Will merge to 'master'. +* jm/stash-doc-k-for-keep (2014-02-24) 1 commit + - stash doc: mention short form -k in save description + Will merge to 'next'. -* nd/gitignore-trailing-whitespace (2014-02-10) 2 commits - - dir: ignore trailing spaces in exclude patterns - - dir: warn about trailing spaces in exclude patterns - Warn and then ignore trailing whitespaces in .gitignore files, - unless they are quoted for fnmatch(3), e.g. "path\ ". +* jn/am-doc-hooks (2014-02-24) 1 commit + - am doc: add a pointer to relevant hooks Will merge to 'next'. -* nd/log-show-linear-break (2014-02-10) 1 commit - - log: add --show-linear-break to help see non-linear history - - Attempts to show where a single-strand-of-pearls break in "git log" - output. +* mh/object-code-cleanup (2014-02-24) 4 commits + - sha1_file.c: document a bunch of functions defined in the file + - sha1_file_name(): declare to return a const string + - find_pack_entry(): document last_found_pack + - replace_object: use struct members instead of an array - "git log --no-merges --show-linear-break" does not seem to work - well (tried on range "pu~10..pu" or something like that). + Will merge to 'next'. -* ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit - - completion: teach --recurse-submodules to fetch, pull and push +* nd/i18n-progress (2014-02-24) 1 commit + - i18n: mark all progress lines for translation Will merge to 'next'. -* ks/tree-diff-more (2014-02-24) 15 commits - - tree-diff: reuse base str(buf) memory on sub-tree recursion - - tree-diff: no need to call "full" diff_tree_sha1 from show_path() - - tree-diff: rework diff_tree interface to be sha1 based - - tree-diff: remove special-case diff-emitting code for empty-tree cases - - tree-diff: simplify tree_entry_pathcmp - - tree-diff: show_path prototype is not needed anymore - - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp - - tree-diff: move all action-taking code out of compare_tree_entry() - - tree-diff: don't assume compare_tree_entry() returns -1,0,1 - - tree-diff: consolidate code for emitting diffs and recursion in one place - - tree-diff: show_tree() is not needed - - tree-diff: no need to pass match to skip_uninteresting() - - tree-diff: no need to manually verify that there is no mode change for a path - - combine-diff: move changed-paths scanning logic into its own function - - combine-diff: move show_log_first logic/action out of paths scanning - (this branch is used by ks/tree-diff-nway; uses ks/combine-diff and ks/tree-diff-walk.) +* nd/sha1-file-delta-stack-leakage-fix (2014-02-24) 1 commit + - sha1_file: fix delta_stack memory leak in unpack_entry - Code refactoring. + Will merge to 'next' and then to 'master' and 'maint'. - Will merge to 'next'. +* tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit + - demonstrate git-commit --dry-run exit code behaviour -* jh/note-trees-record-blobs (2014-02-20) 1 commit - - notes: disallow reusing non-blob as a note object - "git notes -C " should not take an object that is not a blob. +* fc/transport-helper-fixes (2014-02-24) 7 commits + - remote-bzr: support the new 'force' option + - test-hg.sh: tests are now expected to pass + - transport-helper.c: do not overwrite forced bit + - transport-helper: check for 'forced update' message + - transport-helper: add 'force' to 'export' helpers + - transport-helper: don't update refs in dry-run + - transport-helper: mismerge fix + + Updates transport-helper, fast-import and fast-export to allow the + ref mapping and ref deletion in a way similar to the natively + supported transports. Will merge to 'next'. -* jk/run-network-tests-by-default (2014-02-14) 1 commit - (merged to 'next' on 2014-02-25 at 62a8ad0) - + tests: turn on network daemon tests by default +* bc/blame-crlf-test (2014-02-18) 1 commit + - blame: add a failing test for a CRLF issue. - Originally merged to 'next' on 2014-02-20 + I have a feeling that a fix for this should be fairly isolated and + trivial (it should be just the matter of paying attention to the + crlf settings when synthesizing the fake commit)---perhaps somebody + can squash in a fix to this? - Teach "make test" to run networking tests when possible by default. - Will merge to 'master'. +* jk/http-no-curl-easy (2014-02-18) 1 commit + - http: never use curl_easy_perform + Avoid use of the curl-easy family of functions, which interferes + with connection reuse in a negative way. -* jc/check-attr-honor-working-tree (2014-02-06) 2 commits - - check-attr: move to the top of working tree when in non-bare repository - - t0003: do not chdir the whole test process + Will merge to 'next'. - "git check-attr" when (trying to) work on a repository with a - working tree did not work well when the working tree was specified - via --work-tree (and obviously with --git-dir). - The command also works in a bare repository but it reads from the - (possibly stale, irrelevant and/or nonexistent) index, which may - need to be fixed to read from HEAD, but that is a completely - separate issue. As a related tangentto this separate issue, we may - want to also fix "check-ignore", which refuses to work in a bare - repository, to also operate in a bare one. +* jk/janitorial-fixes (2014-02-18) 5 commits + - open_istream(): do not dereference NULL in the error case + - builtin/mv: don't use memory after free + - utf8: use correct type for values in interval table + - utf8: fix iconv error detection + - notes-utils: handle boolean notes.rewritemode correctly Will merge to 'next'. -* nd/http-fetch-shallow-fix (2014-02-13) 7 commits - (merged to 'next' on 2014-02-25 at ad4e9c9) - + t5537: move http tests out to t5539 - + fetch-pack: fix deepen shallow over smart http with no-done cap - + protocol-capabilities.txt: document no-done - + protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt - + pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done' - + test: rename http fetch and push test files - + tests: auto-set LIB_HTTPD_PORT from test name - (this branch is tangled with jk/test-ports.) - - Originally merged to 'next' on 2014-02-13 +* ks/config-file-stdin (2014-02-18) 4 commits + - config: teach "git config --file -" to read from the standard input + - config: change git_config_with_options() interface + - builtin/config.c: rename check_blob_write() -> check_write() + - config: disallow relative include paths from blobs - Attempting to deepen a shallow repository by fetching over smart - HTTP transport failed in the protocol exchange, when no-done - extension was used. The fetching side waited for the list of - shallow boundary commits after the sending end stopped talking to - it. + Will merge to 'next'. - Will merge to 'master'. +* lb/contrib-contacts-looser-diff-parsing (2014-02-18) 1 commit + - git-contacts: do not fail parsing of good diffs -* jk/makefile (2014-02-05) 16 commits - - FIXUP - - move LESS/LV pager environment to Makefile - - Makefile: teach scripts to include make variables - - FIXUP - - Makefile: auto-build C strings from make variables - - Makefile: drop *_SQ variables - - FIXUP - - Makefile: add c-quote helper function - - Makefile: introduce sq function for shell-quoting - - Makefile: always create files via make-var - - Makefile: store GIT-* sentinel files in MAKE/ - - Makefile: prefer printf to echo for GIT-* - - Makefile: use tempfile/mv strategy for GIT-* - - Makefile: introduce make-var helper function - - Makefile: fix git-instaweb dependency on gitweb - - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS + Will merge to 'next'. - Simplify the Makefile rules and macros that exist primarily for - quoting purposes, and make it easier to robustly express the - dependency rules. - Expecting a reroll. +* mh/replace-refs-variable-rename (2014-02-28) 3 commits + - Document some functions defined in object.c + - Add docstrings for lookup_replace_object() and do_lookup_replace_object() + - rename read_replace_refs to check_replace_refs + Will merge to 'next'. -* ks/tree-diff-walk (2014-02-24) 5 commits - (merged to 'next' on 2014-02-25 at 17e594f) - + tree-walk: finally switch over tree descriptors to contain a pre-parsed entry - + revision: convert to using diff_tree_sha1() - + line-log: convert to using diff_tree_sha1() - + tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL - + tree-diff: allow diff_tree_sha1 to accept NULL sha1 - (this branch is used by ks/combine-diff, ks/tree-diff-more and ks/tree-diff-nway.) - Originally merged to 'next' on 2014-02-06 +* nd/commit-editor-cleanup (2014-02-25) 3 commits + - commit: add --cleanup=scissors + - wt-status.c: move cut-line print code out to wt_status_add_cut_line + - wt-status.c: make cut_line[] const to shrink .data section a bit - Will merge to 'master'. + "git commit --cleanup=" learned a new mode, scissors. -* nd/reset-intent-to-add (2014-02-05) 1 commit - (merged to 'next' on 2014-02-25 at 0c48245) - + reset: support "--mixed --intent-to-add" mode +* nd/no-more-fnmatch (2014-02-20) 4 commits + - actually remove compat fnmatch source code + - stop using fnmatch (either native or compat) + - Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch" + - use wildmatch() directly without fnmatch() wrapper - Originally merged to 'next' on 2014-02-07 + We started using wildmatch() in place of fnmatch(3); complete the + process and stop using fnmatch(3). - Will merge to 'master'. + Will merge to 'next'. -* nd/test-rename-reset (2014-02-04) 1 commit - (merged to 'next' on 2014-02-25 at 7b25711) - + t7101, t7014: rename test files to indicate what that file is for +* nd/reset-setup-worktree (2014-02-18) 1 commit + - reset: optionally setup worktree and refresh index on --mixed - Originally merged to 'next' on 2014-02-06 + "git reset" needs to refresh the index when working in a working + tree (it can also be used to match the index to the HEAD in an + otherwise bare repository), but it failed to set up the working + tree properly, causing GIT_WORK_TREE to be ignored. - Will merge to 'master'. + Will merge to 'next'. -* tr/remerge-diff (2014-02-05) 6 commits - - log --remerge-diff: show what the conflict resolution changed - - merge-recursive: allow storing conflict hunks in index - - Fold all merge diff variants into an enum - - combine-diff: do not pass revs->dense_combined_merges redundantly - - log: add a merge base inspection option - - pretty: refactor add_merge_info() into parts - (this branch uses tr/merge-recursive-index-only.) +* po/git-help-user-manual (2014-02-18) 1 commit + - Provide a 'git help user-manual' route to the docbook - "log -p" output learns a new way to let users inspect a merge - commit by showing the differences between the automerged result - with conflicts the person who recorded the merge would have seen - and the final conflict resolution that was recorded in the merge. + I am not sure if this is even needed. - RFC. +* rt/links-for-asciidoctor (2014-02-20) 1 commit + - Documentation: fix documentation AsciiDoc links for external urls -* bs/stdio-undef-before-redef (2014-01-31) 1 commit - (merged to 'next' on 2014-02-25 at 77c4b5f) - + git-compat-util.h: #undef (v)snprintf before #define them + Will merge to 'next'. - Originally merged to 'next' on 2014-01-31 - When we replace broken macros from stdio.h in git-compat-util.h, - #undef them to avoid re-definition warnings from the C - preprocessor. +* tg/index-v4-format (2014-02-24) 3 commits + - read-cache: add index.version config variable + - test-lib: allow setting the index format version + - introduce GIT_INDEX_VERSION environment variable - Will merge to 'master'. + Will merge to 'next'. -* ep/varscope (2014-01-31) 7 commits - (merged to 'next' on 2014-02-25 at e967c7e) - + builtin/gc.c: reduce scope of variables - + builtin/fetch.c: reduce scope of variable - + builtin/commit.c: reduce scope of variables - + builtin/clean.c: reduce scope of variable - + builtin/blame.c: reduce scope of variables - + builtin/apply.c: reduce scope of variables - + bisect.c: reduce scope of variable +* tr/diff-submodule-no-reuse-worktree (2014-02-18) 1 commit + - diff: do not reuse_worktree_file for submodules - Originally merged to 'next' on 2014-01-31 + "git diff --external-diff" incorrectly fed the submodule directory + in the working tree to the external diff driver when it knew it is + the same as one of the versions being compared. - Shrink lifetime of variables by moving their definitions to an - inner scope where appropriate. + Will merge to 'next'. - Will merge to 'master'. +* nd/multiple-work-trees (2014-02-19) 26 commits + - FIXUP??? + - gc: support prune --repos + - prune: strategies for linked checkouts + - checkout: detach if the branch is already checked out elsewhere + - checkout: clean up half-prepared directories in --to mode + - checkout: support checking out into a new working directory + - use new wrapper write_file() for simple file writing + - wrapper.c: wrapper to open a file, fprintf then close + - setup.c: support multi-checkout repo setup + - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() + - setup.c: convert check_repository_format_gently to use strbuf + - setup.c: detect $GIT_COMMON_DIR in is_git_directory() + - setup.c: convert is_git_directory() to use strbuf + - git-stash: avoid hardcoding $GIT_DIR/logs/.... + - *.sh: avoid hardcoding $GIT_DIR/hooks/... + - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects + - Add new environment variable $GIT_COMMON_DIR + - commit: use SEQ_DIR instead of hardcoding "sequencer" + - fast-import: use git_path() for accessing .git dir instead of get_git_dir() + - reflog: avoid constructing .lock path with git_path + - *.sh: respect $GIT_INDEX_FILE + - Make git_path() aware of file relocation in $GIT_DIR + - path.c: group git_path(), git_pathdup() and strbuf_git_path() together + - path.c: rename vsnpath() to do_git_path() + - Convert git_snpath() to strbuf_git_path() + - path.c: make get_pathname() return strbuf instead of static buffer -* mw/symlinks (2014-02-04) 6 commits - (merged to 'next' on 2014-02-25 at 15dc036) - + setup: don't dereference in-tree symlinks for absolute paths - + setup: add abspath_part_inside_repo() function - + t0060: add tests for prefix_path when path begins with work tree - + t0060: add test for prefix_path when path == work tree - + t0060: add test for prefix_path on symlinks via absolute paths - + t3004: add test for ls-files on symlinks via absolute paths + The tip commit needs to be dropped; the series needs a serious review. - Originally merged to 'next' on 2014-02-06 - All subcommands that take pathspecs mishandled an in-tree symbolic - link when given it as a full path from the root (which arguably is - a sick way to use pathspecs). "git ls-files -s $(pwd)/RelNotes" in - our tree is an easy reproduction recipe. +* ks/tree-diff-nway (2014-03-04) 19 commits + - combine-diff: speed it up, by using multiparent diff tree-walker directly + - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well + - Portable alloca for Git + - tree-diff: reuse base str(buf) memory on sub-tree recursion + - tree-diff: no need to call "full" diff_tree_sha1 from show_path() + - tree-diff: rework diff_tree interface to be sha1 based + - tree-diff: diff_tree() should now be static + - tree-diff: remove special-case diff-emitting code for empty-tree cases + - tree-diff: simplify tree_entry_pathcmp + - tree-diff: show_path prototype is not needed anymore + - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp + - tree-diff: move all action-taking code out of compare_tree_entry() + - tree-diff: don't assume compare_tree_entry() returns -1,0,1 + - tree-diff: consolidate code for emitting diffs and recursion in one place + - tree-diff: show_tree() is not needed + - tree-diff: no need to pass match to skip_uninteresting() + - tree-diff: no need to manually verify that there is no mode change for a path + - combine-diff: move changed-paths scanning logic into its own function + - combine-diff: move show_log_first logic/action out of paths scanning + (this branch uses ks/combine-diff.) - Will merge to 'master'. + Instead of running N pair-wise diff-trees when inspecting a + N-parent merge, find the set of paths that were touched by walking + N+1 trees in parallel. These set of paths can then be turned into + N pair-wise diff-tree results to be processed through rename + detections and such. And N=2 case nicely degenerates to the usual + 2-way diff-tree, which is very nice. -* ks/combine-diff (2014-02-24) 6 commits - (merged to 'next' on 2014-02-25 at 69e5a87) - + tests: add checking that combine-diff emits only correct paths - + combine-diff: simplify intersect_paths() further - + combine-diff: combine_diff_path.len is not needed anymore - + combine-diff: optimize combine_diff_path sets intersection - + diff test: add tests for combine-diff with orderfile - + diffcore-order: export generic ordering interface - (this branch is used by ks/tree-diff-more and ks/tree-diff-nway; uses ks/tree-diff-walk.) +* nd/daemonize-gc (2014-02-10) 2 commits + (merged to 'next' on 2014-02-25 at f592335) + + gc: config option for running --auto in background + + daemon: move daemonize() to libgit.a Originally merged to 'next' on 2014-02-20 - Teach combine-diff to honour the path-output-order imposed by - diffcore-order, and optimize how matching paths are found in - the N-way diffs made with parents. + Allow running "gc --auto" in the background. Will merge to 'master'. -* bc/gpg-sign-everywhere (2014-02-11) 9 commits - (merged to 'next' on 2014-02-25 at 7db014c) - + pull: add the --gpg-sign option. - + rebase: add the --gpg-sign option - + rebase: parse options in stuck-long mode - + rebase: don't try to match -M option - + rebase: remove useless arguments check - + am: add the --gpg-sign option - + am: parse options in stuck-long mode - + git-sh-setup.sh: add variable to use the stuck-long mode - + cherry-pick, revert: add the --gpg-sign option +* nd/gitignore-trailing-whitespace (2014-02-10) 2 commits + - dir: ignore trailing spaces in exclude patterns + - dir: warn about trailing spaces in exclude patterns + + Warn and then ignore trailing whitespaces in .gitignore files, + unless they are quoted for fnmatch(3), e.g. "path\ ". + + Will merge to 'next'. - Originally merged to 'next' on 2014-02-13 - Teach "--gpg-sign" option to many commands that create commits. +* nd/log-show-linear-break (2014-02-10) 1 commit + - log: add --show-linear-break to help see non-linear history - Will merge to 'master'. + Attempts to show where a single-strand-of-pearls break in "git log" + output. + "git log --no-merges --show-linear-break" does not seem to work + well (tried on range "pu~10..pu" or something like that). -* ds/rev-parse-required-args (2014-01-28) 1 commit - (merged to 'next' on 2014-02-25 at bba6e79) - + rev-parse: check i before using argv[i] against argc - Originally merged to 'next' on 2014-01-31 +* ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit + - completion: teach --recurse-submodules to fetch, pull and push - "git rev-parse --default" without the required option argument did - not diagnose it as an error. + Will merge to 'next'. - Will merge to 'master'. +* jh/note-trees-record-blobs (2014-02-20) 1 commit + - notes: disallow reusing non-blob as a note object -* jk/config-path-include-fix (2014-01-28) 2 commits - (merged to 'next' on 2014-02-25 at 3604f75) - + handle_path_include: don't look at NULL value - + expand_user_path: do not look at NULL path + "git notes -C " should not take an object that is not a blob. - Originally merged to 'next' on 2014-01-31 + Will merge to 'next'. - include.path variable (or any variable that expects a path that can - use ~username expansion) in the configuration file is not a - boolean, but the code failed to check it. + +* jk/run-network-tests-by-default (2014-02-14) 1 commit + (merged to 'next' on 2014-02-25 at 62a8ad0) + + tests: turn on network daemon tests by default + + Originally merged to 'next' on 2014-02-20 + + Teach "make test" to run networking tests when possible by default. Will merge to 'master'. -* nd/submodule-pathspec-ending-with-slash (2014-02-24) 8 commits - (merged to 'next' on 2014-02-25 at 954b7a2) - + clean: use cache_name_is_other() - + clean: replace match_pathspec() with dir_path_match() - + pathspec: pass directory indicator to match_pathspec_item() - + match_pathspec: match pathspec "foo/" against directory "foo" - + dir.c: prepare match_pathspec_item for taking more flags - + pathspec: rename match_pathspec_depth() to match_pathspec() - + pathspec: convert some match_pathspec_depth() to dir_path_match() - + pathspec: convert some match_pathspec_depth() to ce_path_match() +* jc/check-attr-honor-working-tree (2014-02-06) 2 commits + - check-attr: move to the top of working tree when in non-bare repository + - t0003: do not chdir the whole test process - Originally merged to 'next' on 2014-01-31 + "git check-attr" when (trying to) work on a repository with a + working tree did not work well when the working tree was specified + via --work-tree (and obviously with --git-dir). - Allow "git cmd path/", when the 'path' is where a submodule is - bound to the top-level working tree, to match 'path', despite the - extra and unnecessary trailing slash. + The command also works in a bare repository but it reads from the + (possibly stale, irrelevant and/or nonexistent) index, which may + need to be fixed to read from HEAD, but that is a completely + separate issue. As a related tangentto this separate issue, we may + want to also fix "check-ignore", which refuses to work in a bare + repository, to also operate in a bare one. - Will merge to 'master'. + Will merge to 'next'. -* lt/request-pull (2014-01-31) 4 commits - - pull-request: test updates - - request-pull: pick up tag message as before - - Make request-pull able to take a refspec of form local:remote - - Make 'git request-pull' more strict about matching +* jk/makefile (2014-02-05) 16 commits + - FIXUP + - move LESS/LV pager environment to Makefile + - Makefile: teach scripts to include make variables + - FIXUP + - Makefile: auto-build C strings from make variables + - Makefile: drop *_SQ variables + - FIXUP + - Makefile: add c-quote helper function + - Makefile: introduce sq function for shell-quoting + - Makefile: always create files via make-var + - Makefile: store GIT-* sentinel files in MAKE/ + - Makefile: prefer printf to echo for GIT-* + - Makefile: use tempfile/mv strategy for GIT-* + - Makefile: introduce make-var helper function + - Makefile: fix git-instaweb dependency on gitweb + - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS - Waiting for the updates to settle. + Simplify the Makefile rules and macros that exist primarily for + quoting purposes, and make it easier to robustly express the + dependency rules. + Expecting a reroll. -* bk/refresh-missing-ok-in-merge-recursive (2014-02-24) 4 commits - (merged to 'next' on 2014-02-25 at 2651cb0) - + merge-recursive.c: tolerate missing files while refreshing index - + read-cache.c: extend make_cache_entry refresh flag with options - + read-cache.c: refactor --ignore-missing implementation - + t3030-merge-recursive: test known breakage with empty work tree - Originally merged to 'next' on 2014-01-29 +* tr/remerge-diff (2014-02-26) 5 commits + . log --remerge-diff: show what the conflict resolution changed + . name-hash: allow dir hashing even when !ignore_case + . merge-recursive: allow storing conflict hunks in index + . revision: fold all merge diff variants into an enum merge_diff_mode + . combine-diff: do not pass revs->dense_combined_merges redundantly + (this branch uses tr/merge-recursive-index-only.) - Allow "merge-recursive" to work in an empty (temporary) working - tree again when there are renames involved, correcting an old - regression in 1.7.7 era. + "log -p" output learns a new way to let users inspect a merge + commit by showing the differences between the automerged result + with conflicts the person who recorded the merge would have seen + and the final conflict resolution that was recorded in the merge. - Will merge to 'master'. + RFC. This latest round clashes with the kb/fast-hashmap topic in + 'master'. -* nd/diff-quiet-stat-dirty (2014-02-24) 2 commits - (merged to 'next' on 2014-02-25 at 7cad1d3) - + diff: do not quit early on stat-dirty files - + diff.c: move diffcore_skip_stat_unmatch core logic out for reuse later +* ks/combine-diff (2014-02-24) 6 commits + (merged to 'next' on 2014-02-25 at 69e5a87) + + tests: add checking that combine-diff emits only correct paths + + combine-diff: simplify intersect_paths() further + + combine-diff: combine_diff_path.len is not needed anymore + + combine-diff: optimize combine_diff_path sets intersection + + diff test: add tests for combine-diff with orderfile + + diffcore-order: export generic ordering interface + (this branch is used by ks/tree-diff-nway.) - Originally merged to 'next' on 2014-01-31 + Originally merged to 'next' on 2014-02-20 - "git diff --quiet -- pathspec1 pathspec2" sometimes did not return - correct status value. + Teach combine-diff to honour the path-output-order imposed by + diffcore-order, and optimize how matching paths are found in + the N-way diffs made with parents. Will merge to 'master'. +* lt/request-pull (2014-02-25) 5 commits + - request-pull: resurrect "pretty refname" feature + - request-pull: test updates + - request-pull: pick up tag message as before + - request-pull: allow "local:remote" to specify names on both ends + - request-pull: more strictly match local/remote branches + + Needs doc update but otherwise it should be ready for 'next'. + + * cc/interpret-trailers (2014-02-20) 14 commits - Documentation: add documentation for 'git interpret-trailers' - trailer: add tests for commands using env variables @@ -971,23 +1183,7 @@ of the repositories listed at - trailer: process trailers from file and arguments - trailer: add data structures and basic functions for commit trailers - Waiting for a reroll. - Hopefully ready for 'next'. - - -* dk/blame-janitorial (2014-02-25) 5 commits - (merged to 'next' on 2014-02-25 at d5faeb2) - + builtin/blame.c::find_copy_in_blob: no need to scan for region end - + blame.c: prepare_lines should not call xrealloc for every line - + builtin/blame.c::prepare_lines: fix allocation size of sb->lineno - + builtin/blame.c: eliminate same_suspect() - + builtin/blame.c: struct blame_entry does not need a prev link - - Originally merged to 'next' on 2014-02-13 - - Code clean-up. - - Will merge to 'master'. + Will pick up the reroll but not today. * bl/blame-full-history (2014-01-14) 1 commit @@ -1006,35 +1202,6 @@ of the repositories listed at Will discard. -* da/pull-ff-configuration (2014-01-15) 2 commits - (merged to 'next' on 2014-02-25 at b9e4f61) - + pull: add --ff-only to the help text - + pull: add pull.ff configuration - - Originally merged to 'next' on 2014-01-22 - - "git pull" learned to pay attention to pull.ff configuration - variable. - - Will merge to 'master'. - - -* wk/submodule-on-branch (2014-02-24) 4 commits - (merged to 'next' on 2014-02-25 at c6d9fef) - + Documentation: describe 'submodule update --remote' use case - + submodule: explicit local branch creation in module_clone - + submodule: document module_clone arguments in comments - + submodule: make 'checkout' update_module mode more explicit - - Originally merged to 'next' on 2014-02-06 - - Make sure 'submodule update' modes that do not detach HEADs can - be used more pleasantly by checking out a concrete branch when - cloning them to prime the well. - - Will merge to 'master'. - - * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits - get_sha1: drop object/refname ambiguity flag - get_sha1: speed up ambiguous 40-hex test @@ -1053,64 +1220,6 @@ of the repositories listed at Expecting a reroll. -* jk/pack-bitmap (2014-02-12) 26 commits - (merged to 'next' on 2014-02-25 at 5f65d26) - + ewah: unconditionally ntohll ewah data - + ewah: support platforms that require aligned reads - + read-cache: use get_be32 instead of hand-rolled ntoh_l - + block-sha1: factor out get_be and put_be wrappers - + do not discard revindex when re-preparing packfiles - + pack-bitmap: implement optional name_hash cache - + t/perf: add tests for pack bitmaps - + t: add basic bitmap functionality tests - + count-objects: recognize .bitmap in garbage-checking - + repack: consider bitmaps when performing repacks - + repack: handle optional files created by pack-objects - + repack: turn exts array into array-of-struct - + repack: stop using magic number for ARRAY_SIZE(exts) - + pack-objects: implement bitmap writing - + rev-list: add bitmap mode to speed up object lists - + pack-objects: use bitmaps when packing objects - + pack-objects: split add_object_entry - + pack-bitmap: add support for bitmap indexes - + documentation: add documentation for the bitmap format - + ewah: compressed bitmap implementation - + compat: add endianness helpers - + sha1_file: export `git_open_noatime` - + revision: allow setting custom limiter function - + pack-objects: factor out name_hash - + pack-objects: refactor the packing list - + revindex: export new APIs - (this branch is used by jk/repack-pack-keep-objects.) - - Originally merged to 'next' on 2014-02-13 - - Borrow the bitmap index into packfiles from JGit to speed up - enumeration of objects involved in a commit range without having to - fully traverse the history. - - Will merge to 'master'. - - -* nv/commit-gpgsign-config (2014-02-24) 3 commits - (merged to 'next' on 2014-02-25 at 0baefa2) - + test the commit.gpgsign config option - + commit-tree: add and document --no-gpg-sign - + commit-tree: add the commit.gpgsign option to sign all commits - - Originally merged to 'next' on 2014-01-03 - - Introduce commit.gpgsign configuration variable to force every - commit to be GPG signed. The variable cannot be overriden from the - command line of some of the commands that create commits except for - "git commit" and "git commit-tree", but I am not convinced that it - is a good idea to sprinkle support for --no-gpg-sign everywhere, - which in turn means that this configuration variable may not be - such a good idea. - - Will merge to 'master'. - - * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit (merged to 'next' on 2014-02-25 at 473e143) + strbuf: remove prefixcmp() and suffixcmp() @@ -1213,3 +1322,29 @@ of the repositories listed at . diffcore-order: export generic ordering interface Now part of ks/combine-diff topic. + + +* ks/tree-diff-more (2014-02-24) 15 commits + - tree-diff: reuse base str(buf) memory on sub-tree recursion + - tree-diff: no need to call "full" diff_tree_sha1 from show_path() + - tree-diff: rework diff_tree interface to be sha1 based + - tree-diff: remove special-case diff-emitting code for empty-tree cases + - tree-diff: simplify tree_entry_pathcmp + - tree-diff: show_path prototype is not needed anymore + - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp + - tree-diff: move all action-taking code out of compare_tree_entry() + - tree-diff: don't assume compare_tree_entry() returns -1,0,1 + - tree-diff: consolidate code for emitting diffs and recursion in one place + - tree-diff: show_tree() is not needed + - tree-diff: no need to pass match to skip_uninteresting() + - tree-diff: no need to manually verify that there is no mode change for a path + - combine-diff: move changed-paths scanning logic into its own function + - combine-diff: move show_log_first logic/action out of paths scanning + (this branch is used by ks/tree-diff-nway; uses ks/combine-diff.) + + Code refactoring. + + Now part of ks/tree-diff-nway. + + + -- 2.11.4.GIT