From eb31d6fdecc2c1dd41f3b4cb5b14367c5e44bb4d Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 5 Jun 2015 13:48:23 -0700 Subject: [PATCH] What's cooking (2015/06 #02) --- whats-cooking.txt | 856 ++++++++++++++++++++-------------------------- 1 file changed, 367 insertions(+), 489 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index deb5b4c0a0..40847ef6c4 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,16 +1,22 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jun 2015, #01; Tue, 2) -X-master-at: f86f31ab33c3406adebbb9f9f61be550dcc5a472 -X-next-at: b4379f4514b71bf690061de15eb494cafb09b9b1 +Subject: What's cooking in git.git (Jun 2015, #02; Fri, 5) +X-master-at: 7974889a053574e449b55ca543a486e38e74864f +X-next-at: 1a18470cb8c6fbcf40b535cf669aa165844706d5 -What's cooking in git.git (Jun 2015, #01; Tue, 2) +What's cooking in git.git (Jun 2015, #02; Fri, 5) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. +A handful of topics that graduated to 'master' a few weeks ago are +now in 'maint', the tip of which has been tagged as v2.4.3. + +On the 'master' front, another huge batch of "struct object_id" +thing is now in. So is Peff's 'master@{push}' series. + You can find the changes described here in the integration branches of the repositories listed at @@ -19,163 +25,341 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ah/usage-strings (2015-05-03) 1 commit - (merged to 'next' on 2015-05-28 at 5f4350e) - + blame, log: format usage strings similarly to those in documentation +* bc/object-id (2015-05-25) 56 commits + (merged to 'next' on 2015-05-26 at 8d9f645) + + struct ref_lock: convert old_sha1 member to object_id + + warn_if_dangling_symref(): convert local variable "junk" to object_id + + each_ref_fn_adapter(): remove adapter + + rev_list_insert_ref(): remove unneeded arguments + + rev_list_insert_ref_oid(): new function, taking an object_oid + + mark_complete(): remove unneeded arguments + + mark_complete_oid(): new function, taking an object_oid + + clear_marks(): rewrite to take an object_id argument + + mark_complete(): rewrite to take an object_id argument + + send_ref(): convert local variable "peeled" to object_id + + upload-pack: rewrite functions to take object_id arguments + + find_symref(): convert local variable "unused" to object_id + + find_symref(): rewrite to take an object_id argument + + write_one_ref(): rewrite to take an object_id argument + + write_refs_to_temp_dir(): convert local variable sha1 to object_id + + submodule: rewrite to take an object_id argument + + shallow: rewrite functions to take object_id arguments + + handle_one_ref(): rewrite to take an object_id argument + + add_info_ref(): rewrite to take an object_id argument + + handle_one_reflog(): rewrite to take an object_id argument + + register_replace_ref(): rewrite to take an object_id argument + + remote: rewrite functions to take object_id arguments + + add_one_ref(): rewrite to take an object_id argument + + string_list_add_one_ref(): rewrite to take an object_id argument + + add_ref_decoration(): convert local variable original_sha1 to object_id + + add_ref_decoration(): rewrite to take an object_id argument + + show_head_ref(): convert local variable "unused" to object_id + + http-backend: rewrite to take an object_id argument + + append_similar_ref(): rewrite to take an object_id argument + + builtin/show-ref: rewrite to take an object_id argument + + show_ref(): convert local variable peeled to object_id + + builtin/show-ref: rewrite to use object_id + + fsck: change functions to use object_id + + cmd_show_branch(): fix error message + + builtin/show-branch: rewrite functions to work with object_id + + append_one_rev(): rewrite to work with object_id + + builtin/show-branch: rewrite functions to take object_id arguments + + append_matching_ref(): rewrite to take an object_id argument + + show_reference(): rewrite to take an object_id argument + + builtin/remote: rewrite functions to take object_id arguments + + add_branch_for_removal(): don't set "util" field of string_list entries + + add_branch_for_removal(): rewrite to take an object_id argument + + builtin/reflog: rewrite ref functions to take an object_id argument + + show_ref_cb(): rewrite to take an object_id argument + + builtin/pack-objects: rewrite to take an object_id argument + + name_ref(): rewrite to take an object_id argument + + grab_single_ref(): rewrite to take an object_id argument + + builtin/fetch: rewrite to take an object_id argument + + get_name(): rewrite to take an object_id argument + + add_pending_uninteresting_ref(): rewrite to take an object_id argument + + append_ref(): rewrite to take an object_id argument + + register_ref(): rewrite to take an object_id argument + + handle_one_ref(): rewrite to take an object_id argument + + builtin/rev-parse: rewrite to take an object_id argument + + each_ref_fn: change to take an object_id parameter + + refs: convert struct ref_entry to use struct object_id - A few usage string updates. + for_each_ref() callback functions were taught to name the objects + not with "unsigned char sha1[20]" but with "struct object_id". -* da/mergetool-winmerge (2015-05-20) 2 commits - (merged to 'next' on 2015-05-26 at d6333e9) - + mergetools: add winmerge as a builtin tool - + mergetool--lib: set IFS for difftool and mergetool +* jk/at-push-sha1 (2015-05-22) 16 commits + (merged to 'next' on 2015-05-26 at d9d342f) + + for-each-ref: accept "%(push)" format + + for-each-ref: use skip_prefix instead of starts_with + + sha1_name: implement @{push} shorthand + + sha1_name: refactor interpret_upstream_mark + + sha1_name: refactor upstream_mark + + remote.c: add branch_get_push + + remote.c: return upstream name from stat_tracking_info + + remote.c: untangle error logic in branch_get_upstream + + remote.c: report specific errors from branch_get_upstream + + remote.c: introduce branch_get_upstream helper + + remote.c: hoist read_config into remote_get_1 + + remote.c: provide per-branch pushremote name + + remote.c: hoist branch.*.remote lookup out of remote_get_1 + + remote.c: drop "remote" pointer from "struct branch" + + remote.c: refactor setup of branch->merge list + + remote.c: drop default_remote_name variable - "git mergetool" learned to drive WinMerge as a backend. + Introduce @{push} short-hand to denote the remote-tracking + branch that tracks the branch at the remote the would be + pushed to. -* dt/cat-file-follow-symlinks (2015-05-20) 3 commits - (merged to 'next' on 2015-05-26 at 7ae52d4) - + cat-file: add --follow-symlinks to --batch - + sha1_name: get_sha1_with_context learns to follow symlinks - + tree-walk: learn get_tree_entry_follow_symlinks +* ld/p4-editor-multi-words (2015-05-26) 3 commits + (merged to 'next' on 2015-05-28 at a368a47) + + git-p4: tests: use test-chmtime in place of touch + + git-p4: fix handling of multi-word P4EDITOR + + git-p4: add failing test for P4EDITOR handling - "git cat-file --batch(-check)" learned the "--follow-symlinks" - option that follows an in-tree symbolic link when asked about an - object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at - Documentation/RelNotes/2.5.0.txt. With the new option, the command - behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as - input instead. + Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the + command and initial options (e.g. "/path/to/emacs -nw"), 'git p4' + did not let the shell interpolate the contents of the environment + variable that name the editor "$P4EDITOR" (and "$EDITOR", too). + Make it in line with the rest of Git, as well as with Perforce. +-------------------------------------------------- +[New Topics] -* dt/clean-pathspec-filter-then-lstat (2015-05-18) 1 commit - (merged to 'next' on 2015-05-26 at 9b24d71) - + clean: only lstat files in pathspec +* jc/ll-merge-expose-path (2015-06-04) 1 commit + - ll-merge: pass the original path to external drivers - "git clean pathspec..." tried to lstat(2) and complain even for - paths outside the given pathspec. + Traditionally, external low-level 3-way merge drivers are expected + to produce their results based solely on the contents of the three + variants given in temporary files named by %O, %A and %B on their + command line. Additionally allow them to look at the final path + (given by %P). -* fm/fetch-raw-sha1 (2015-05-22) 3 commits - (merged to 'next' on 2015-05-26 at dc3f1b3) - + upload-pack: optionally allow fetching reachable sha1 - + upload-pack: prepare to extend allow-tip-sha1-in-want - + config.txt: clarify allowTipSHA1InWant with camelCase +* jk/log-missing-default-HEAD (2015-06-03) 1 commit + - log: diagnose empty HEAD more clearly - "git upload-pack" that serves "git fetch" can be told to serve - commits that are not at the tip of any ref, as long as they are - reachable from a ref, with uploadpack.allowReachableSHA1InWant - configuration variable. + "git init empty && git -C empty log" said "bad default revision 'HEAD'", + which was found to be a bit confusing to new users. -* jh/filter-empty-contents (2015-05-18) 1 commit - (merged to 'next' on 2015-05-26 at 9cad398) - + sha1_file: pass empty buffer to index empty file +* nd/slim-index-pack-memory-usage (2015-06-04) 1 commit + (merged to 'next' on 2015-06-04 at 328fd50) + + index-pack: fix truncation of off_t in comparison - The clean/smudge interface did not work well when filtering an - empty contents (failed and then passed the empty input through). - It can be argued that a filter that produces anything but empty for - an empty input is nonsense, but if the user wants to do strange - things, then why not? + An earlier optimization broke index-pack for a large object + transfer; this fixes it before the breakage hits any released + version. + Will merge to 'master'. -* jk/http-backend-deadlock (2015-05-25) 1 commit - (merged to 'next' on 2015-05-26 at 9f3bd8a) - + Merge branch 'jk/http-backend-deadlock-2.3' into jk/http-backend-deadlock - (this branch uses jk/http-backend-deadlock-2.2 and jk/http-backend-deadlock-2.3.) +-------------------------------------------------- +[Stalled] - Communication between the HTTP server and http_backend process can - lead to a dead-lock when relaying a large ref negotiation request. - Diagnose the situation better, and mitigate it by reading such a - request first into core (to a reasonable limit). +* kk/log-merges-config (2015-04-21) 5 commits + - bash-completion: add support for git-log --merges= and log.merges + - t4202-log: add tests for --merges= + - Documentation: add git-log --merges= option and log.merges config. var + - log: honor log.merges= option + - revision: add --merges={show|only|hide} option + "git log" (but not other commands in the "log" family) learned to + pay attention to the log.merges configuration variable that can be + set to "show" (the normal behaviour), "only" (hide non-merge + commits), or "hide" (hide merge commits). --merges=(show|only|hide) + can be used to override the setting from the command line. -* jk/http-backend-deadlock-2.2 (2015-05-25) 3 commits - + http-backend: spool ref negotiation requests to buffer - + t5551: factor out tag creation - + http-backend: fix die recursion with custom handler - (this branch is used by jk/http-backend-deadlock and jk/http-backend-deadlock-2.3.) + The documentation may need to be updated once more ($gmane/267250). + Waiting for a reroll. - Communication between the HTTP server and http_backend process can - lead to a dead-lock when relaying a large ref negotiation request. - Diagnose the situation better, and mitigate it by reading such a - request first into core (to a reasonable limit). - This was wiggled back to apply to the 2.2 maintenance track - (original was for 2.4). +* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits + - t/lib-git-svn: check same httpd module dirs as lib-httpd + - t/lib-httpd: load mod_unixd + This is the first two commits in a three-patch series $gmane/266962 + Will be rerolled. + with updated log message ($gmane/268061). -* jk/http-backend-deadlock-2.3 (2015-05-25) 1 commit - + Merge branch 'jk/http-backend-deadlock-2.2' into jk/http-backend-deadlock-2.3 - (this branch is used by jk/http-backend-deadlock; uses jk/http-backend-deadlock-2.2.) - Same for 2.3 maintenance track. +* mh/numparse (2015-03-19) 14 commits + - diff_opt_parse(): use convert_i() when handling --abbrev= + - diff_opt_parse(): use convert_i() when handling "-l" + - opt_arg(): simplify pointer handling + - opt_arg(): report errors parsing option values + - opt_arg(): use convert_i() in implementation + - opt_arg(): val is always non-NULL + - builtin_diff(): detect errors when parsing --unified argument + - handle_revision_opt(): use convert_ui() when handling "--abbrev=" + - strtoul_ui(), strtol_i(): remove functions + - handle_revision_opt(): use convert_i() when handling "-" + - handle_revision_opt(): use skip_prefix() in many places + - write_subdirectory(): use convert_ui() for parsing mode + - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo" + - numparse: new module for parsing integral numbers + Many codepaths use unchecked use of strtol() and friends (or even + worse, atoi()). Introduce a set of wrappers that try to be more + careful. -* jk/stash-options (2015-05-20) 2 commits - (merged to 'next' on 2015-05-26 at 5dcb026) - + stash: recognize "--help" for subcommands - + stash: complain about unknown flags + Will be rerolled. + ($gmane/268058). - Make "git stash something --help" error out, so that users can - safely say "git stash drop --help". +* tf/gitweb-project-listing (2015-03-19) 5 commits + - gitweb: make category headings into links when they are directories + - gitweb: optionally set project category from its pathname + - gitweb: add a link under the search box to clear a project filter + - gitweb: if the PATH_INFO is incomplete, use it as a project_filter + - gitweb: fix typo in man page -* mc/commit-doc-grammofix (2015-05-19) 1 commit - (merged to 'next' on 2015-05-26 at 9d76e3b) - + Documentation/git-commit: grammofix + Update gitweb to make it more pleasant to deal with a hierarchical + forest of repositories. - Doc grammar fix. + Any comments from those who use or have their own code in Gitweb? -* mm/log-format-raw-doc (2015-05-20) 2 commits - (merged to 'next' on 2015-05-26 at 97e2c9d) - + Documentation/log: clarify sha1 non-abbreviation in log --raw - + Documentation/log: clarify what --raw means +* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit + - "-" and "@{-1}" on various programs - Clarify that "log --raw" and "log --format=raw" are unrelated - concepts. + Lose special case code to make a lone dash "-" mean the previous + branch aka "@{-1}" from a handful subcommands, and instead support + the notation throughout the system by reimplementing it at the + revisions layer. + Needs tests, documentation updates, etc. Also does only a half-way + job dealing with range notation, which needs to be fixed before the + series goes anywhere. -* mm/rebase-i-post-rewrite-exec (2015-05-22) 3 commits - (merged to 'next' on 2015-05-26 at 8ddaab1) - + t5407: use <<- to align the expected output - + rebase -i: fix post-rewrite hook with failed exec command - + rebase -i: demonstrate incorrect behavior of post-rewrite - "git rebase -i" fired post-rewrite hook when it shouldn't (namely, - when it was told to stop sequencing with 'exec' insn). +* nd/list-files (2015-02-09) 21 commits + - t3080: tests for git-list-files + - list-files: -M aka diff-cached + - list-files -F: show submodules with the new indicator '&' + - list-files: add -F/--classify + - list-files: show directories as well as files + - list-files: do not show duplicate cached entries + - list-files: sort output and remove duplicates + - list-files: add -t back + - list-files: add -1 short for --no-column + - list-files: add -R/--recursive short for --max-depth=-1 + - list-files: -u does not imply showing stages + - list-files: make alias 'ls' default to 'list-files' + - list-files: a user friendly version of ls-files and more + - ls-files: support --max-depth + - ls-files: add --column + - ls-files: add --color to highlight file names + - ls-files: buffer full item in strbuf before printing + - ls_colors.c: highlight submodules like directories + - ls_colors.c: add a function to color a file name + - ls_colors.c: parse color.ls.* from config file + - ls_colors.c: add $LS_COLORS parsing code + A new "git list-files" Porcelain command, "ls-files" with bells and + whistles. -* rs/janitorial (2015-05-20) 3 commits - (merged to 'next' on 2015-05-26 at 9d5aee4) - + dir: remove unused variable sb - + clean: remove unused variable buf - + use file_exists() to check if a file exists in the worktree + Reroll to base on wt-status work ($gmane/265142) has seen some + positive discussions. - Code clean-up. + Waiting for a further polished reroll ($gmane/265534). -* sb/test-bitmap-free-at-end (2015-05-22) 1 commit - (merged to 'next' on 2015-05-26 at 1014ebf) - + test_bitmap_walk: free bitmap with bitmap_free +* js/fsck-opt (2015-01-21) 19 commits + - fsck: support ignoring objects in `git fsck` via fsck.skiplist + - fsck: git receive-pack: support excluding objects from fsck'ing + - fsck: introduce `git fsck --quick` + - fsck: support demoting errors to warnings + - fsck: document the new receive.fsck.* options + - fsck: allow upgrading fsck warnings to errors + - fsck: optionally ignore specific fsck issues completely + - fsck: disallow demoting grave fsck errors to warnings + - fsck: add a simple test for receive.fsck.* + - fsck: make fsck_tag() warn-friendly + - fsck: handle multiple authors in commits specially + - fsck: make fsck_commit() warn-friendly + - fsck: make fsck_ident() warn-friendly + - fsck: report the ID of the error/warning + - fsck: allow demoting errors to warnings via receive.fsck.warn = + - fsck: offer a function to demote fsck errors to warnings + - fsck: provide a function to parse fsck message IDs + - fsck: introduce identifiers for fsck messages + - fsck: introduce fsck options - An earlier leakfix to bitmap testing code was incomplete. + "fsck.warnings = " I suggested turned out to + be an unpopular choice (sorry Dscho). + Expecting a reroll. -* sg/help-group (2015-05-21) 5 commits - (merged to 'next' on 2015-05-26 at 2749912) - + help: respect new common command grouping - + command-list.txt: drop the "common" tag - + generate-cmdlist: parse common group commands - + command-list.txt: add the common groups block - + command-list: prepare machinery for upcoming "common groups" section - Group list of commands shown by "git help" along the workflow - elements to help early learners. +* nd/pathspec-strip-fix (2015-04-18) 1 commit + - pathspec: adjust prefixlen after striping trailing slash + + Does not quite fix ($gmane/267614). + Will discard. + + +* jc/diff-b-m (2015-02-23) 5 commits + . WIPWIP + . WIP: diff-b-m + - diffcore-rename: allow easier debugging + - diffcore-rename.c: add locate_rename_src() + - diffcore-break: allow debugging + + "git diff -B -M" produced incorrect patch when the postimage of a + completely rewritten file is similar to the preimage of a removed + file; such a resulting file must not be expressed as a rename from + other place. + + The fix in this patch is broken, unfortunately. + + +* pw/remote-set-url-fetch (2014-11-26) 1 commit + - remote: add --fetch and --both options to set-url + + Expecting a reroll. + + +* tr/remerge-diff (2014-11-10) 9 commits + - t4213: avoid "|" in sed regexp + - 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 + - merge_diff_mode: fold all merge diff variants into an enum + - combine-diff: do not pass revs->dense_combined_merges redundantly + - merge-recursive: -Xindex-only to leave worktree unchanged + - merge-recursive: internal flag to avoid touching the worktree + - merge-recursive: remove dead conditional in update_stages() + + "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. + + Waiting for a reroll ($gmane/256591). + + +* 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. + + +* jc/show-branch (2014-03-24) 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. -------------------------------------------------- -[New Topics] +[Cooking] * gr/rebase-i-drop-warn (2015-06-01) 2 commits - git rebase -i: warn about removed commits @@ -211,8 +395,9 @@ of the repositories listed at Will merge to 'master'. -* mh/reporting-broken-refs-from-for-each-ref (2015-06-02) 3 commits +* mh/reporting-broken-refs-from-for-each-ref (2015-06-03) 4 commits - read_loose_refs(): treat NULL_SHA1 loose references as broken + - read_loose_refs(): simplify function logic - for-each-ref: report broken references correctly - t6301: new tests of for-each-ref error handling @@ -220,8 +405,7 @@ of the repositories listed at encounters a broken ref. The lack of object whose name is 0{40} is not the problem; the ref being broken is. - A reroll for the tip one coming to pick final minor nits? - Otherwise looked ready for 'next'. + Will merge to 'next'. * tb/complete-sequencing (2015-06-01) 1 commit @@ -244,299 +428,95 @@ of the repositories listed at patch output), and it learned how to do so. Will merge to 'next'. - -* es/configure-getdelim (2015-06-02) 2 commits + +* es/configure-getdelim (2015-06-03) 2 commits - configure: add getdelim() check - config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases Auto-detect availability of getdelim() that helps optimized version - of strbuf_getwholeline(). - - Will merge to 'next'. - - -* es/osx-header-pollutes-mask-macro (2015-06-02) 1 commit - - ewah/bitmap: silence warning about MASK macro redefinition - - Will merge to 'next'. - - -* es/send-email-sendmail-alias (2015-06-01) 10 commits - - send-email: further warn about unsupported sendmail aliases features - - t9001: add sendmail aliases line continuation tests - - t9001: refactor sendmail aliases test infrastructure - - send-email: implement sendmail aliases line continuation support - - send-email: simplify sendmail aliases comment and blank line recognizer - - send-email: refactor sendmail aliases parser - - send-email: fix style: cuddle 'elsif' and 'else' with closing brace - - send-email: drop noise comments which merely repeat what code says - - send-email: visually distinguish sendmail aliases parser warnings - - send-email: further document missing sendmail aliases functionality - (this branch uses ah/send-email-sendmail-alias.) - - "git send-email" learned to handle more forms of sendmail style - aliases file. - - Will merge to 'next'. - - -* jc/do-not-feed-tags-to-clear-commit-marks (2015-06-01) 1 commit - - format-patch: do not feed tags to clear_commit_marks() - - "git format-patch --ignore-if-upstream A..B" did not like to be fed - tags as boundary commits. - - -* mg/index-read-error-messages (2015-06-01) 2 commits - - messages: uniform error messages for index write - - show-index: uniform error messages for index read - - The tip was RFC. - - -* pt/pull-optparse (2015-06-02) 3 commits - - pull: use git-rev-parse --parseopt for option parsing - - pull: handle git-fetch's options as well - - Merge branch 'pt/pull-tests' into pt/pull-optparse - (this branch uses pt/pull-tests.) - - "git pull" has become more aware of the options meant for - underlying "git fetch" and then learned to use parse-options - parser. - - Will merge to 'next'. - - -* qn/blame-show-email (2015-06-01) 1 commit - - blame: add blame.showEmail configuration - - "git blame" learned blame.showEmail configuration variable. - - Will merge to 'next'. - - -* rl/am-3way-config (2015-06-02) 3 commits - - t4150-am: refactor am -3 tests - - git-am.txt: add configuration section in git am documentation - - git-am.sh: fix initialization of the threeway variable - - "git am" learned am.threeWay configuration variable. - - -* sb/pack-protocol-mention-smart-http (2015-06-02) 1 commit - - Documentation/technical/pack-protocol: mention http as possible protocol - - Doc updates. - - Will merge to 'next'. - --------------------------------------------------- -[Stalled] - -* kk/log-merges-config (2015-04-21) 5 commits - - bash-completion: add support for git-log --merges= and log.merges - - t4202-log: add tests for --merges= - - Documentation: add git-log --merges= option and log.merges config. var - - log: honor log.merges= option - - revision: add --merges={show|only|hide} option - - "git log" (but not other commands in the "log" family) learned to - pay attention to the log.merges configuration variable that can be - set to "show" (the normal behaviour), "only" (hide non-merge - commits), or "hide" (hide merge commits). --merges=(show|only|hide) - can be used to override the setting from the command line. - - The documentation may need to be updated once more ($gmane/267250). - Waiting for a reroll. - - -* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits - - t/lib-git-svn: check same httpd module dirs as lib-httpd - - t/lib-httpd: load mod_unixd - - This is the first two commits in a three-patch series $gmane/266962 - Will be rerolled. - with updated log message ($gmane/268061). - - -* mh/numparse (2015-03-19) 14 commits - - diff_opt_parse(): use convert_i() when handling --abbrev= - - diff_opt_parse(): use convert_i() when handling "-l" - - opt_arg(): simplify pointer handling - - opt_arg(): report errors parsing option values - - opt_arg(): use convert_i() in implementation - - opt_arg(): val is always non-NULL - - builtin_diff(): detect errors when parsing --unified argument - - handle_revision_opt(): use convert_ui() when handling "--abbrev=" - - strtoul_ui(), strtol_i(): remove functions - - handle_revision_opt(): use convert_i() when handling "-" - - handle_revision_opt(): use skip_prefix() in many places - - write_subdirectory(): use convert_ui() for parsing mode - - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo" - - numparse: new module for parsing integral numbers - - Many codepaths use unchecked use of strtol() and friends (or even - worse, atoi()). Introduce a set of wrappers that try to be more - careful. - - Will be rerolled. - ($gmane/268058). - - -* tf/gitweb-project-listing (2015-03-19) 5 commits - - gitweb: make category headings into links when they are directories - - gitweb: optionally set project category from its pathname - - gitweb: add a link under the search box to clear a project filter - - gitweb: if the PATH_INFO is incomplete, use it as a project_filter - - gitweb: fix typo in man page - - Update gitweb to make it more pleasant to deal with a hierarchical - forest of repositories. - - Any comments from those who use or have their own code in Gitweb? - - -* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit - - "-" and "@{-1}" on various programs - - Lose special case code to make a lone dash "-" mean the previous - branch aka "@{-1}" from a handful subcommands, and instead support - the notation throughout the system by reimplementing it at the - revisions layer. - - Needs tests, documentation updates, etc. Also does only a half-way - job dealing with range notation, which needs to be fixed before the - series goes anywhere. - + of strbuf_getwholeline(). -* nd/list-files (2015-02-09) 21 commits - - t3080: tests for git-list-files - - list-files: -M aka diff-cached - - list-files -F: show submodules with the new indicator '&' - - list-files: add -F/--classify - - list-files: show directories as well as files - - list-files: do not show duplicate cached entries - - list-files: sort output and remove duplicates - - list-files: add -t back - - list-files: add -1 short for --no-column - - list-files: add -R/--recursive short for --max-depth=-1 - - list-files: -u does not imply showing stages - - list-files: make alias 'ls' default to 'list-files' - - list-files: a user friendly version of ls-files and more - - ls-files: support --max-depth - - ls-files: add --column - - ls-files: add --color to highlight file names - - ls-files: buffer full item in strbuf before printing - - ls_colors.c: highlight submodules like directories - - ls_colors.c: add a function to color a file name - - ls_colors.c: parse color.ls.* from config file - - ls_colors.c: add $LS_COLORS parsing code + Will merge to 'next'. - A new "git list-files" Porcelain command, "ls-files" with bells and - whistles. - Reroll to base on wt-status work ($gmane/265142) has seen some - positive discussions. +* es/osx-header-pollutes-mask-macro (2015-06-03) 2 commits + - ewah: use less generic macro name + - ewah/bitmap: silence warning about MASK macro redefinition - Waiting for a further polished reroll ($gmane/265534). + Will merge to 'next'. -* js/fsck-opt (2015-01-21) 19 commits - - fsck: support ignoring objects in `git fsck` via fsck.skiplist - - fsck: git receive-pack: support excluding objects from fsck'ing - - fsck: introduce `git fsck --quick` - - fsck: support demoting errors to warnings - - fsck: document the new receive.fsck.* options - - fsck: allow upgrading fsck warnings to errors - - fsck: optionally ignore specific fsck issues completely - - fsck: disallow demoting grave fsck errors to warnings - - fsck: add a simple test for receive.fsck.* - - fsck: make fsck_tag() warn-friendly - - fsck: handle multiple authors in commits specially - - fsck: make fsck_commit() warn-friendly - - fsck: make fsck_ident() warn-friendly - - fsck: report the ID of the error/warning - - fsck: allow demoting errors to warnings via receive.fsck.warn = - - fsck: offer a function to demote fsck errors to warnings - - fsck: provide a function to parse fsck message IDs - - fsck: introduce identifiers for fsck messages - - fsck: introduce fsck options +* es/send-email-sendmail-alias (2015-06-01) 10 commits + - send-email: further warn about unsupported sendmail aliases features + - t9001: add sendmail aliases line continuation tests + - t9001: refactor sendmail aliases test infrastructure + - send-email: implement sendmail aliases line continuation support + - send-email: simplify sendmail aliases comment and blank line recognizer + - send-email: refactor sendmail aliases parser + - send-email: fix style: cuddle 'elsif' and 'else' with closing brace + - send-email: drop noise comments which merely repeat what code says + - send-email: visually distinguish sendmail aliases parser warnings + - send-email: further document missing sendmail aliases functionality + (this branch uses ah/send-email-sendmail-alias.) - "fsck.warnings = " I suggested turned out to - be an unpopular choice (sorry Dscho). + "git send-email" learned to handle more forms of sendmail style + aliases file. - Expecting a reroll. + Will merge to 'next'. -* nd/pathspec-strip-fix (2015-04-18) 1 commit - - pathspec: adjust prefixlen after striping trailing slash +* jc/do-not-feed-tags-to-clear-commit-marks (2015-06-01) 1 commit + - format-patch: do not feed tags to clear_commit_marks() - Does not quite fix ($gmane/267614). - Will discard. + "git format-patch --ignore-if-upstream A..B" did not like to be fed + tags as boundary commits. -* jc/diff-b-m (2015-02-23) 5 commits - . WIPWIP - . WIP: diff-b-m - - diffcore-rename: allow easier debugging - - diffcore-rename.c: add locate_rename_src() - - diffcore-break: allow debugging +* mg/index-read-error-messages (2015-06-01) 2 commits + - messages: uniform error messages for index write + - show-index: uniform error messages for index read - "git diff -B -M" produced incorrect patch when the postimage of a - completely rewritten file is similar to the preimage of a removed - file; such a resulting file must not be expressed as a rename from - other place. + The tip was RFC. - The fix in this patch is broken, unfortunately. +* pt/pull-optparse (2015-06-02) 3 commits + - pull: use git-rev-parse --parseopt for option parsing + - pull: handle git-fetch's options as well + - Merge branch 'pt/pull-tests' into pt/pull-optparse + (this branch uses pt/pull-tests.) -* pw/remote-set-url-fetch (2014-11-26) 1 commit - - remote: add --fetch and --both options to set-url + "git pull" has become more aware of the options meant for + underlying "git fetch" and then learned to use parse-options + parser. - Expecting a reroll. + Will merge to 'next'. -* tr/remerge-diff (2014-11-10) 9 commits - - t4213: avoid "|" in sed regexp - - 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 - - merge_diff_mode: fold all merge diff variants into an enum - - combine-diff: do not pass revs->dense_combined_merges redundantly - - merge-recursive: -Xindex-only to leave worktree unchanged - - merge-recursive: internal flag to avoid touching the worktree - - merge-recursive: remove dead conditional in update_stages() +* qn/blame-show-email (2015-06-01) 1 commit + - blame: add blame.showEmail configuration - "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. + "git blame" learned blame.showEmail configuration variable. - Waiting for a reroll ($gmane/256591). + 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 +* rl/am-3way-config (2015-06-04) 3 commits + - git-am: add am.threeWay config variable + - t4150-am: refactor am -3 tests + - git-am.sh: fix initialization of the threeway variable - 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 am" learned am.threeWay configuration variable. - Will hold. +* sb/pack-protocol-mention-smart-http (2015-06-02) 1 commit + (merged to 'next' on 2015-06-04 at 8041cf6) + + Documentation/technical/pack-protocol: mention http as possible protocol -* jc/show-branch (2014-03-24) 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 + Doc updates. - Waiting for the final step to lift the hard-limit. + Will merge to 'master'. --------------------------------------------------- -[Cooking] * hv/submodule-config (2015-06-02) 4 commits - do not die on error of parsing fetchrecursesubmodules option @@ -638,11 +618,12 @@ of the repositories listed at * sg/merge-summary-config (2015-05-28) 1 commit - - Documentation: include 'merge.branchdesc' for merge and config as well + (merged to 'next' on 2015-06-04 at 8c0946c) + + Documentation: include 'merge.branchdesc' for merge and config as well Doc updates. - Will merge to 'next'. + Will merge to 'master'. * jc/push-tags-also (2015-05-29) 1 commit @@ -653,97 +634,35 @@ of the repositories listed at * jk/die-on-bogus-worktree-late (2015-05-29) 1 commit - - setup_git_directory: delay core.bare/core.worktree errors + (merged to 'next' on 2015-06-04 at fac7a83) + + setup_git_directory: delay core.bare/core.worktree errors The setup code used to die when core.bare and core.worktree are set inconsistently, even for commands that do not need working tree. - Will merge to 'next'. + Will merge to 'master'. * jk/make-fix-dependencies (2015-05-29) 3 commits - - Makefile: silence perl/PM.stamp recipe - - Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS - - Makefile: drop dependency between git-instaweb and gitweb + (merged to 'next' on 2015-06-04 at 28daf19) + + Makefile: silence perl/PM.stamp recipe + + Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS + + Makefile: drop dependency between git-instaweb and gitweb Build clean-up. - Will merge to 'next'. + Will merge to 'master'. * ah/send-email-sendmail-alias (2015-05-27) 2 commits - - t9001: write $HOME/, not ~/, to help shells without tilde expansion - - send-email: add sendmail email aliases format + (merged to 'next' on 2015-06-04 at 9d9bd68) + + t9001: write $HOME/, not ~/, to help shells without tilde expansion + + send-email: add sendmail email aliases format (this branch is used by es/send-email-sendmail-alias.) "git send-email" learned the alias file format used by the sendmail program (in an abbreviated form). - Will merge to 'next'. - - -* bc/object-id (2015-05-25) 56 commits - (merged to 'next' on 2015-05-26 at 8d9f645) - + struct ref_lock: convert old_sha1 member to object_id - + warn_if_dangling_symref(): convert local variable "junk" to object_id - + each_ref_fn_adapter(): remove adapter - + rev_list_insert_ref(): remove unneeded arguments - + rev_list_insert_ref_oid(): new function, taking an object_oid - + mark_complete(): remove unneeded arguments - + mark_complete_oid(): new function, taking an object_oid - + clear_marks(): rewrite to take an object_id argument - + mark_complete(): rewrite to take an object_id argument - + send_ref(): convert local variable "peeled" to object_id - + upload-pack: rewrite functions to take object_id arguments - + find_symref(): convert local variable "unused" to object_id - + find_symref(): rewrite to take an object_id argument - + write_one_ref(): rewrite to take an object_id argument - + write_refs_to_temp_dir(): convert local variable sha1 to object_id - + submodule: rewrite to take an object_id argument - + shallow: rewrite functions to take object_id arguments - + handle_one_ref(): rewrite to take an object_id argument - + add_info_ref(): rewrite to take an object_id argument - + handle_one_reflog(): rewrite to take an object_id argument - + register_replace_ref(): rewrite to take an object_id argument - + remote: rewrite functions to take object_id arguments - + add_one_ref(): rewrite to take an object_id argument - + string_list_add_one_ref(): rewrite to take an object_id argument - + add_ref_decoration(): convert local variable original_sha1 to object_id - + add_ref_decoration(): rewrite to take an object_id argument - + show_head_ref(): convert local variable "unused" to object_id - + http-backend: rewrite to take an object_id argument - + append_similar_ref(): rewrite to take an object_id argument - + builtin/show-ref: rewrite to take an object_id argument - + show_ref(): convert local variable peeled to object_id - + builtin/show-ref: rewrite to use object_id - + fsck: change functions to use object_id - + cmd_show_branch(): fix error message - + builtin/show-branch: rewrite functions to work with object_id - + append_one_rev(): rewrite to work with object_id - + builtin/show-branch: rewrite functions to take object_id arguments - + append_matching_ref(): rewrite to take an object_id argument - + show_reference(): rewrite to take an object_id argument - + builtin/remote: rewrite functions to take object_id arguments - + add_branch_for_removal(): don't set "util" field of string_list entries - + add_branch_for_removal(): rewrite to take an object_id argument - + builtin/reflog: rewrite ref functions to take an object_id argument - + show_ref_cb(): rewrite to take an object_id argument - + builtin/pack-objects: rewrite to take an object_id argument - + name_ref(): rewrite to take an object_id argument - + grab_single_ref(): rewrite to take an object_id argument - + builtin/fetch: rewrite to take an object_id argument - + get_name(): rewrite to take an object_id argument - + add_pending_uninteresting_ref(): rewrite to take an object_id argument - + append_ref(): rewrite to take an object_id argument - + register_ref(): rewrite to take an object_id argument - + handle_one_ref(): rewrite to take an object_id argument - + builtin/rev-parse: rewrite to take an object_id argument - + each_ref_fn: change to take an object_id parameter - + refs: convert struct ref_entry to use struct object_id - - for_each_ref() callback functions were taught to name the objects - not with "unsigned char sha1[20]" but with "struct object_id". - Will merge to 'master'. @@ -761,21 +680,6 @@ of the repositories listed at Will merge to 'master'. -* ld/p4-editor-multi-words (2015-05-26) 3 commits - (merged to 'next' on 2015-05-28 at a368a47) - + git-p4: tests: use test-chmtime in place of touch - + git-p4: fix handling of multi-word P4EDITOR - + git-p4: add failing test for P4EDITOR handling - - Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the - command and initial options (e.g. "/path/to/emacs -nw"), 'git p4' - did not let the shell interpolate the contents of the environment - variable that name the editor "$P4EDITOR" (and "$EDITOR", too). - Make it in line with the rest of Git, as well as with Perforce. - - Will merge to 'master'. - - * pt/pull-tests (2015-05-29) 8 commits (merged to 'next' on 2015-06-01 at c98370b) + t5520: check reflog action in fast-forward merge @@ -799,32 +703,6 @@ of the repositories listed at Still an early WIP -* jk/at-push-sha1 (2015-05-22) 16 commits - (merged to 'next' on 2015-05-26 at d9d342f) - + for-each-ref: accept "%(push)" format - + for-each-ref: use skip_prefix instead of starts_with - + sha1_name: implement @{push} shorthand - + sha1_name: refactor interpret_upstream_mark - + sha1_name: refactor upstream_mark - + remote.c: add branch_get_push - + remote.c: return upstream name from stat_tracking_info - + remote.c: untangle error logic in branch_get_upstream - + remote.c: report specific errors from branch_get_upstream - + remote.c: introduce branch_get_upstream helper - + remote.c: hoist read_config into remote_get_1 - + remote.c: provide per-branch pushremote name - + remote.c: hoist branch.*.remote lookup out of remote_get_1 - + remote.c: drop "remote" pointer from "struct branch" - + remote.c: refactor setup of branch->merge list - + remote.c: drop default_remote_name variable - - Introduce @{push} short-hand to denote the remote-tracking - branch that tracks the branch at the remote the would be - pushed to. - - Will merge to 'master'. - - * ee/clean-remove-dirs (2015-04-26) 5 commits - clean: improve performance when removing lots of directories - p7300: add performance tests for clean -- 2.47.3