From 22640fea235c25d9d812db2e46965f38c65f6bf9 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 19 Jun 2017 13:09:41 -0700 Subject: [PATCH] What's cooking (2017/06 #05) --- whats-cooking.txt | 723 ++++++++++++++++++++++++++-------------------- 1 file changed, 415 insertions(+), 308 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index b6b3225e1f..c1df8d2724 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jun 2017, #04; Tue, 13) -X-master-at: 02a2850ad58eff6de70eb2dc5f96345c463857ac -X-next-at: 1d7a3356d075f99e85512d28ce621fe2de69778c +Subject: What's cooking in git.git (Jun 2017, #05; Mon, 19) +X-master-at: 05ec6e13aaf33b6a647e1321203a770e697eea9a +X-next-at: 0b547a2794f32e58c5c5c23c1b30b5e3920b2855 -What's cooking in git.git (Jun 2017, #04; Tue, 13) +What's cooking in git.git (Jun 2017, #05; Mon, 19) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -20,98 +20,327 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* jc/diff-tree-stale-comment (2017-06-02) 1 commit - (merged to 'next' on 2017-06-04 at bffae281d2) - + diff-tree: update stale in-code comments +* ab/pcre-v2 (2017-06-02) 8 commits + (merged to 'next' on 2017-06-13 at 34bf49ee44) + + grep: add support for PCRE v2 + + grep: un-break building with PCRE >= 8.32 without --enable-jit + + grep: un-break building with PCRE < 8.20 + + grep: un-break building with PCRE < 8.32 + + grep: add support for the PCRE v1 JIT API + + log: add -P as a synonym for --perl-regexp + + grep: skip pthreads overhead when using one thread + + grep: don't redundantly compile throwaway patterns under threading + + Update "perl-compatible regular expression" support to enable JIT + and also allow linking with the newer PCRE v2 library. + + +* ab/perf-remove-index-lock (2017-06-05) 1 commit + (merged to 'next' on 2017-06-13 at c532e59233) + + perf: work around the tested repo having an index.lock + + When an existing repository is used for t/perf testing, we first + create bit-for-bit copy of it, which may grab a transient state of + the repository and freeze it into the repository used for testing, + which then may cause Git operations to fail. Single out "the index + being locked" case and forcibly drop the lock from the copy. + + +* bw/object-id (2017-06-05) 33 commits + (merged to 'next' on 2017-06-13 at 0582278759) + + diff: rename diff_fill_sha1_info to diff_fill_oid_info + + diffcore-rename: use is_empty_blob_oid + + tree-diff: convert path_appendnew to object_id + + tree-diff: convert diff_tree_paths to struct object_id + + tree-diff: convert try_to_follow_renames to struct object_id + + builtin/diff-tree: cleanup references to sha1 + + diff-tree: convert diff_tree_sha1 to struct object_id + + notes-merge: convert write_note_to_worktree to struct object_id + + notes-merge: convert verify_notes_filepair to struct object_id + + notes-merge: convert find_notes_merge_pair_ps to struct object_id + + notes-merge: convert merge_from_diffs to struct object_id + + notes-merge: convert notes_merge* to struct object_id + + tree-diff: convert diff_root_tree_sha1 to struct object_id + + combine-diff: convert find_paths_* to struct object_id + + combine-diff: convert diff_tree_combined to struct object_id + + diff: convert diff_flush_patch_id to struct object_id + + patch-ids: convert to struct object_id + + diff: finish conversion for prepare_temp_file to struct object_id + + diff: convert reuse_worktree_file to struct object_id + + diff: convert fill_filespec to struct object_id + + diff: convert diff_change to struct object_id + + diff: convert run_diff_files to struct object_id + + diff: convert diff_addremove to struct object_id + + diff: convert diff_index_show_file to struct object_id + + diff: convert get_stat_data to struct object_id + + grep: convert to struct object_id + + notes: convert some accessor functions to struct object_id + + builtin/notes: convert to struct object_id + + notes: convert format_display_notes to struct object_id + + notes: make get_note return pointer to struct object_id + + notes: convert for_each_note to struct object_id + + notes: convert internal parts to struct object_id + + notes: convert internal structures to struct object_id + + Conversion from uchar[20] to struct object_id continues. + + +* jk/consistent-h (2017-06-05) 8 commits + (merged to 'next' on 2017-06-13 at e09c1fe968) + + t0012: test "-h" with builtins + + git: add hidden --list-builtins option + + version: convert to parse-options + + diff- and log- family: handle "git cmd -h" early + + submodule--helper: show usage for "-h" + + remote-{ext,fd}: print usage message on invalid arguments + + upload-archive: handle "-h" option early + + credential: handle invalid arguments earlier + + "git $cmd -h" for builtin commands calls the implementation of the + command (i.e. cmd_$cmd() function) without doing any repository + set-up, and the commands that expect RUN_SETUP is done by the Git + potty needs to be prepared to show the help text without barfing. + + +* jk/pathspec-magic-disambiguation (2017-05-29) 6 commits + (merged to 'next' on 2017-06-13 at 088987f033) + + verify_filename(): flip order of checks + + verify_filename(): treat ":(magic)" as a pathspec + + check_filename(): handle ":^" path magic + + check_filename(): use skip_prefix + + check_filename(): refactor ":/" handling + + t4208: add check for ":/" without matching file + + The convention for a command line is to follow "git cmdname + --options" with revisions followed by an optional "--" + disambiguator and then finally pathspecs. When "--" is not there, + we make sure early ones are all interpretable as revs (and do not + look like paths) and later ones are the other way around. A + pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from + the top-level of the working tree, no matter what subdirectory you + are working from) are conservatively judged as "not a path", which + required disambiguation more often. The command line parser + learned to say "it's a pathspec" a bit more often when the syntax + looks like so. + + +* sb/submodule-rm-absorb (2017-06-04) 1 commit + (merged to 'next' on 2017-06-13 at ed902e8fb4) + + Documentation/git-rm: correct submodule description + + Doc update to a recently graduated topic. + +-------------------------------------------------- +[New Topics] - Comment fix. +* ab/free-and-null (2017-06-16) 6 commits + - *.[ch] refactoring: make use of the FREE_AND_NULL() macro + - coccinelle: make use of the "expression" FREE_AND_NULL() rule + - coccinelle: add a rule to make "expression" code use FREE_AND_NULL() + - coccinelle: make use of the "type" FREE_AND_NULL() rule + - coccinelle: add a rule to make "type" code use FREE_AND_NULL() + - git-compat-util: add a FREE_AND_NULL() wrapper around free(ptr); ptr = NULL + A common pattern to free a piece of memory and assign NULL to the + pointer that used to point at it has been replaced with a new + FREE_AND_NULL() macro. + + Will merge to 'next'. -* jc/noent-notdir (2017-05-30) 2 commits - (merged to 'next' on 2017-06-04 at 7cb4efbc3c) - + treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked - + compat-util: is_missing_file_error() - Our code often opens a path to an optional file, to work on its - contents when we can successfully open it. We can ignore a failure - to open if such an optional file does not exist, but we do want to - report a failure in opening for other reasons (e.g. we got an I/O - error, or the file is there, but we lack the permission to open). +* ab/wildmatch-glob-slash-test (2017-06-15) 1 commit + - wildmatch test: cover a blind spot in "/" matching - The exact errors we need to ignore are ENOENT (obviously) and - ENOTDIR (less obvious). Instead of repeating comparison of errno - with these two constants, introduce a helper function to do so. + A new test to show the interaction between the pattern [^a-z] + (which matches '/') and a slash in a path has been added. The + pattern should not match the slash with "pathmatch", but should + with "wildmatch". + Will merge to 'next'. -* jk/pack-idx-corruption-safety (2017-06-07) 1 commit - (merged to 'next' on 2017-06-07 at 31f94e174d) - + t5313: make extended-table test more deterministic - A flaky test has been corrected. +* ah/doc-gitattributes-empty-index (2017-06-15) 1 commit + - doc: do not use `rm .git/index` when normalizing line endings + An example in documentation that does not work in multi worktree + configuration has been corrected. -* nd/fopen-errors (2017-06-02) 13 commits - (merged to 'next' on 2017-06-04 at 7a755e73bb) - + mingw_fopen: report ENOENT for invalid file names - + mingw: verify that paths are not mistaken for remote nicknames - + log: fix memory leak in open_next_file() - + rerere.c: move error_errno() closer to the source system call - + print errno when reporting a system call error - + wrapper.c: make warn_on_inaccessible() static - + wrapper.c: add and use fopen_or_warn() - + wrapper.c: add and use warn_on_fopen_errors() - + config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too - + config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD - + clone: use xfopen() instead of fopen() - + use xfopen() in more places - + git_fopen: fix a sparse 'not declared' warning + Will merge to 'next'. - We often try to open a file for reading whose existence is - optional, and silently ignore errors from open/fopen; report such - errors if they are not due to missing files. +* jk/diff-highlight-module (2017-06-15) 1 commit + - diff-highlight: split code into module + + The 'diff-highlight' program (in contrib/) has been restructured + for easier reuse by an external project 'diff-so-fancy'. + + Will merge to 'next'. -* rf/completion (2017-06-02) 6 commits - (merged to 'next' on 2017-06-04 at dde1e34703) - + completion: add git config credentialCache.ignoreSIGHUP - + completion: add git config credential completions - + completion: add git config advice completions - + completion: add git config am.threeWay completion - + completion: add git config core completions - + completion: add git config gc completions - Completion updates. +* jt/unify-object-info (2017-06-15) 4 commits + - sha1_file, fsck: add missing blob support + - sha1_file: consolidate storage-agnostic object fns + - sha1_file: move delta base cache code up + - sha1_file: teach packed_object_info about typename + Code clean-ups. -* sb/submodule-blanket-recursive (2017-06-01) 9 commits - (merged to 'next' on 2017-06-04 at 418bb03032) - + builtin/fetch.c: respect 'submodule.recurse' option - + builtin/push.c: respect 'submodule.recurse' option - + builtin/grep.c: respect 'submodule.recurse' option - + Introduce 'submodule.recurse' option for worktree manipulators - + submodule loading: separate code path for .gitmodules and config overlay - + reset/checkout/read-tree: unify config callback for submodule recursion - + submodule test invocation: only pass additional arguments - + submodule recursing: do not write a config variable twice - + Merge branch 'ab/grep-preparatory-cleanup' into sb/submodule-blanket-recursive + I seem to have made a mistake during my review of the previous + one, and took this one in a wrong direction. A better organization + was suggested. + cf. <20170617121934.a6onn7f2luhkuuym@sigill.intra.peff.net> - Many commands learned to pay attention to submodule.recurse - configuration. - It is not known if a simple "yes/no" is sufficient in the longer - term, and what should happen when --recurse-submodules option starts - taking "recurse into them how?" parameter, though. +* rs/pretty-add-again (2017-06-15) 1 commit + - pretty: recalculate duplicate short hashes + + The pretty-format specifiers like '%h', '%t', etc. had an + optimization that no longer works correctly. In preparation/hope + of getting it correctly implemented, first discard the optimization + that is broken. + + Will merge to 'next'. + + +* sg/doc-pretty-formats (2017-06-15) 1 commit + - docs/pretty-formats: stress that %- removes all preceding line-feeds + + Doc update. + + Will merge to 'next'. + + +* sn/reset-doc-typofix (2017-06-15) 1 commit + - doc: git-reset: fix a trivial typo + + Doc update. + + Will merge to 'next'. + + +* nd/fopen-errors (2017-06-15) 1 commit + (merged to 'next' on 2017-06-15 at 86bcb7c082) + + configure.ac: loosen FREAD_READS_DIRECTORIES test program + + Hotfix for a topic that is already in 'master'. + + Will merge to 'next'. + + +* da/mergetools-meld-output-opt-on-macos (2017-06-18) 1 commit + - mergetools/meld: improve compatibiilty with Meld on macOS X + + "git mergetool" learned to work around a wrapper MacOS X adds + around underlying meld. + + Will merge to 'next'. + + +* ks/status-initial-commit (2017-06-18) 4 commits + - SQUASH??? + - Add test for the new status message + - SQUASH??? + - Contextually notify user about an initial commit + + "git status" has long shown essentially the same message as "git + commit"; the message it gives while preparing for the root commit, + i.e. "Initial commit", was hard to understand for some new users. + Now it says "No commits yet" to stress more on the current status + (rather than the commit the user is preparing for, which is more in + line with the focus of "git commit"). + + Expecting a reroll. + cf. <20170619024123.5438-1-kaarticsivaraam91196@gmail.com> + + +* lb/status-stash-count (2017-06-18) 3 commits + - glossary: define 'stash entry' + - status: add optional stash count information + - stash: update documentation to use 'stash entry' + + "git status" learned to optionally give how many stash entries the + user has in its output. + + Will merge to 'next'. + + +* mh/packed-ref-store (2017-06-18) 28 commits + - read_packed_refs(): die if `packed-refs` contains bogus data + - repack_without_refs(): don't lock or unlock the packed refs + - commit_packed_refs(): remove call to `packed_refs_unlock()` + - clear_packed_ref_cache(): don't protest if the lock is held + - packed_refs_unlock(), packed_refs_is_locked(): new functions + - packed_refs_lock(): report errors via a `struct strbuf *err` + - packed_refs_lock(): function renamed from lock_packed_refs() + - commit_packed_refs(): use a staging file separate from the lockfile + - commit_packed_refs(): report errors rather than dying + - packed_ref_store: make class into a subclass of `ref_store` + - packed-backend: new module for handling packed references + - packed_read_raw_ref(): new function, replacing `resolve_packed_ref()` + - packed_ref_store: support iteration + - packed_peel_ref(): new function, extracted from `files_peel_ref()` + - repack_without_refs(): take a `packed_ref_store *` parameter + - get_packed_ref(): take a `packed_ref_store *` parameter + - rollback_packed_refs(): take a `packed_ref_store *` parameter + - commit_packed_refs(): take a `packed_ref_store *` parameter + - lock_packed_refs(): take a `packed_ref_store *` parameter + - add_packed_ref(): take a `packed_ref_store *` parameter + - get_packed_refs(): take a `packed_ref_store *` parameter + - get_packed_ref_cache(): take a `packed_ref_store *` parameter + - validate_packed_ref_cache(): take a `packed_ref_store *` parameter + - clear_packed_ref_cache(): take a `packed_ref_store *` parameter + - packed_ref_store: move `packed_refs_lock` member here + - packed_ref_store: move `packed_refs_path` here + - packed_ref_store: new struct + - add_packed_ref(): teach function to overwrite existing refs + (this branch uses mh/packed-ref-store-prep.) + + The "ref-store" code reorganization continues. + + Seems to break the promise that packed-refs are covered by loose + refs and the former that points at a missing garbage is not an + error. + cf. <20170619195330.fhjlfiqmcwhgttaa@sigill.intra.peff.net> -------------------------------------------------- -[New Topics] +[Stalled] -* js/alias-early-config (2017-06-13) 6 commits - - Use the early config machinery to expand aliases +* mg/status-in-progress-info (2017-05-10) 2 commits + - status --short --inprogress: spell it as --in-progress + - status: show in-progress info for short status + + "git status" learns an option to report various operations + (e.g. "merging") that the user is in the middle of. + + cf. + + +* nd/worktree-move (2017-04-20) 6 commits + - worktree remove: new command + - worktree move: refuse to move worktrees with submodules + - worktree move: accept destination as directory + - worktree move: new command + - worktree.c: add update_worktree_location() + - worktree.c: add validate_worktree() + + "git worktree" learned move and remove subcommands. + + Expecting a reroll. + cf. <20170420101024.7593-1-pclouds@gmail.com> + cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net> + cf. + +-------------------------------------------------- +[Cooking] + +* js/alias-early-config (2017-06-15) 6 commits + - alias: use the early config machinery to expand aliases - t7006: demonstrate a problem with aliases in subdirectories - t1308: relax the test verifying that empty alias values are disallowed - help: use early config when autocorrecting aliases - config: report correct line number upon error - discover_git_directory(): avoid setting invalid git_dir + (this branch is used by bw/config-h.) The code to pick up and execute command alias definition from the configuration used to switch to the top of the working tree and @@ -119,44 +348,54 @@ of the repositories listed at unnecessarilyl complex. Attempt to simplify the logic by using the early-config mechanism that does not chdir around. - Waiting for discussion to settle. + Will merge to 'next'. * pc/dir-count-slashes (2017-06-12) 1 commit - - dir: create function count_slashes() + (merged to 'next' on 2017-06-19 at 57351a2771) + + dir: create function count_slashes() Three instances of the same helper function have been consolidated to one. - Will merge to 'next'. + Will merge to 'master'. * sb/t4005-modernize (2017-06-10) 1 commit - - t4005: modernize style and drop hard coded sha1 + (merged to 'next' on 2017-06-19 at beedeb757b) + + t4005: modernize style and drop hard coded sha1 Test clean-up. - Will merge to 'next'. + Will merge to 'master'. * ah/filter-branch-setup (2017-06-12) 2 commits - - filter-branch: add [--] to usage - - filter-branch: add `--setup` step + (merged to 'next' on 2017-06-19 at f3440f2c1a) + + filter-branch: add [--] to usage + + filter-branch: add `--setup` step "filter-branch" learned a pseudo filter "--setup" that can be used to define a common function/variable that can be used by other filters. - Will merge to 'next'. + Will merge to 'master'. -* bw/config-h (2017-06-13) 4 commits - - config: don't implicitly use gitdir +* bw/config-h (2017-06-15) 6 commits + - config: don't implicitly use gitdir or commondir + - config: respect commondir + - setup: teach discover_git_directory to respect the commondir - config: don't include config.h by default - config: remove git_config_iter - config: create config.h + (this branch uses js/alias-early-config.) - Code clean-up. + Fix configuration codepath to pay proper attention to commondir + that is used in multi-worktree situation, and isolate config API + into its own header file. + + Will merge to 'next'. * bw/ls-files-sans-the-index (2017-06-13) 17 commits @@ -180,12 +419,10 @@ of the repositories listed at Code clean-up. - -* jc/pretty-add-again (2017-06-13) 1 commit - - add_again() off-by-one error in custom format + Will merge to 'next'. -* jk/warn-add-gitlink (2017-06-13) 2 commits +* jk/warn-add-gitlink (2017-06-15) 2 commits - t: move "git add submodule" into test blocks - add: warn when adding an embedded repository @@ -194,47 +431,56 @@ of the repositories listed at would appear as a not-quite-initialized submodule to others. We learned to give warnings when this happens. + Will merge to 'next'. + * km/test-mailinfo-b-failure (2017-06-12) 1 commit - - t5100: add some more mailinfo tests + (merged to 'next' on 2017-06-19 at badc2c2337) + + t5100: add some more mailinfo tests New tests. - Will merge to 'next'. + Will merge to 'master'. * ls/github (2017-06-13) 1 commit - - Configure Git contribution guidelines for github.com + (merged to 'next' on 2017-06-19 at 4d2024615f) + + Configure Git contribution guidelines for github.com Help contributors that visit us at GitHub. - Will merge to 'next'. + Will merge to 'master'. * mh/fast-import-raise-default-depth (2017-06-12) 1 commit - - fast-import: increase the default pack depth to 50 + (merged to 'next' on 2017-06-19 at 7093c07b8e) + + fast-import: increase the default pack depth to 50 "fast-import" uses a default pack chain depth that is consistent with other parts of the system. - Will merge to 'next'. + Will merge to 'master'. -* mh/packed-ref-store-prep (2017-06-12) 1 commit +* mh/packed-ref-store-prep (2017-06-18) 3 commits + - prefix_ref_iterator_advance(): relax the check of trim length + - for_each_bisect_ref(): don't trim refnames - lock_packed_refs(): fix cache validity check + (this branch is used by mh/packed-ref-store.) Bugfix for a topic that is (only) in 'master'. - Will merge to 'next'. + Will merge the first two to 'next'. * ps/stash-push-pathspec-fix (2017-06-13) 1 commit - - git-stash: fix pushing stash with pathspec from subdir + (merged to 'next' on 2017-06-19 at 866c9035e0) + + git-stash: fix pushing stash with pathspec from subdir "git stash push " did not work from a subdirectory at all. Bugfix for a topic in v2.13 - Will merge to 'next'. + Will merge to 'master'. * sb/submodule-doc (2017-06-13) 1 commit @@ -242,16 +488,19 @@ of the repositories listed at Doc update. + Waiting for discussion to settle. + * sd/t3200-branch-m-test (2017-06-13) 1 commit - - t3200: add test for single parameter passed to -m option + (merged to 'next' on 2017-06-19 at 0fd712c46e) + + t3200: add test for single parameter passed to -m option New test. - Will merge to 'next'. + Will merge to 'master'. -* sd/branch-copy (2017-06-13) 3 commits +* sd/branch-copy (2017-06-18) 3 commits - branch: add a --copy (-c) option to go with --move (-m) - branch: add test for -m renaming multiple config sections - config: create a function to format section headers @@ -259,147 +508,34 @@ of the repositories listed at "git branch" learned "-c/-C" to create and switch to a new branch by copying an existing one. + Has a bit of interaction with two other topics, so perhaps needs to + wait for them to stabilize a bit more. --------------------------------------------------- -[Stalled] - -* mg/status-in-progress-info (2017-05-10) 2 commits - - status --short --inprogress: spell it as --in-progress - - status: show in-progress info for short status - "git status" learns an option to report various operations - (e.g. "merging") that the user is in the middle of. - - cf. - - -* mg/name-rev-debug (2017-03-31) 2 commits - - describe: pass --debug down to name-rev - - name-rev: provide debug output - - "git describe --debug --contains" did not add any meaningful - information, even though without "--contains" it did. - - Will discard for now. - cf. - - -* nd/worktree-move (2017-04-20) 6 commits - - worktree remove: new command - - worktree move: refuse to move worktrees with submodules - - worktree move: accept destination as directory - - worktree move: new command - - worktree.c: add update_worktree_location() - - worktree.c: add validate_worktree() - - "git worktree" learned move and remove subcommands. - - Expecting a reroll. - cf. <20170420101024.7593-1-pclouds@gmail.com> - cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net> - cf. - - -* sk/dash-is-previous (2017-03-01) 5 commits - . revert.c: delegate handling of "-" shorthand to setup_revisions - . sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}" - . revision.c: args starting with "-" might be a revision - . revision.c: swap if/else blocks - . revision.c: do not update argv with unknown option - - A dash "-" can be written to mean "the branch that was previously - checked out" in more places. - - Ejected, as it seems that making -.. to mean @{-1}..HEAD etc. are - going too far. - --------------------------------------------------- -[Cooking] - -* bw/object-id (2017-06-05) 33 commits - (merged to 'next' on 2017-06-13 at 0582278759) - + diff: rename diff_fill_sha1_info to diff_fill_oid_info - + diffcore-rename: use is_empty_blob_oid - + tree-diff: convert path_appendnew to object_id - + tree-diff: convert diff_tree_paths to struct object_id - + tree-diff: convert try_to_follow_renames to struct object_id - + builtin/diff-tree: cleanup references to sha1 - + diff-tree: convert diff_tree_sha1 to struct object_id - + notes-merge: convert write_note_to_worktree to struct object_id - + notes-merge: convert verify_notes_filepair to struct object_id - + notes-merge: convert find_notes_merge_pair_ps to struct object_id - + notes-merge: convert merge_from_diffs to struct object_id - + notes-merge: convert notes_merge* to struct object_id - + tree-diff: convert diff_root_tree_sha1 to struct object_id - + combine-diff: convert find_paths_* to struct object_id - + combine-diff: convert diff_tree_combined to struct object_id - + diff: convert diff_flush_patch_id to struct object_id - + patch-ids: convert to struct object_id - + diff: finish conversion for prepare_temp_file to struct object_id - + diff: convert reuse_worktree_file to struct object_id - + diff: convert fill_filespec to struct object_id - + diff: convert diff_change to struct object_id - + diff: convert run_diff_files to struct object_id - + diff: convert diff_addremove to struct object_id - + diff: convert diff_index_show_file to struct object_id - + diff: convert get_stat_data to struct object_id - + grep: convert to struct object_id - + notes: convert some accessor functions to struct object_id - + builtin/notes: convert to struct object_id - + notes: convert format_display_notes to struct object_id - + notes: make get_note return pointer to struct object_id - + notes: convert for_each_note to struct object_id - + notes: convert internal parts to struct object_id - + notes: convert internal structures to struct object_id - - Conversion from uchar[20] to struct object_id continues. - - Will merge to 'master'. - - -* rs/strbuf-addftime-zZ (2017-06-10) 2 commits - - date: use localtime() for "-local" time formats - - strbuf: let strbuf_addftime handle %z and %Z itself +* rs/strbuf-addftime-zZ (2017-06-15) 3 commits + (merged to 'next' on 2017-06-19 at 77480669f0) + + date: use localtime() for "-local" time formats + + t0006: check --date=format zone offsets + + strbuf: let strbuf_addftime handle %z and %Z itself As there is no portable way to pass timezone information to strftime, some output format from "git log" and friends are impossible to produce. Teach our own strbuf_addftime to replace %z and %Z with caller-supplied values to help working around this. - Will merge to 'next'. - - -* sb/submodule-rm-absorb (2017-06-04) 1 commit - (merged to 'next' on 2017-06-13 at ed902e8fb4) - + Documentation/git-rm: correct submodule description - - Doc update to a recently graduated topic. - Will merge to 'master'. * sg/revision-parser-skip-prefix (2017-06-12) 5 commits - - revision.c: use skip_prefix() in handle_revision_pseudo_opt() - - revision.c: use skip_prefix() in handle_revision_opt() - - revision.c: stricter parsing of '--early-output' - - revision.c: stricter parsing of '--no-{min,max}-parents' - - revision.h: turn rev_info.early_output back into an unsigned int + (merged to 'next' on 2017-06-19 at 0a90bec767) + + revision.c: use skip_prefix() in handle_revision_pseudo_opt() + + revision.c: use skip_prefix() in handle_revision_opt() + + revision.c: stricter parsing of '--early-output' + + revision.c: stricter parsing of '--no-{min,max}-parents' + + revision.h: turn rev_info.early_output back into an unsigned int Code clean-up. - Will merge to 'next'. - - -* ab/perf-remove-index-lock (2017-06-05) 1 commit - (merged to 'next' on 2017-06-13 at c532e59233) - + perf: work around the tested repo having an index.lock - - When an existing repository is used for t/perf testing, we first - create bit-for-bit copy of it, which may grab a transient state of - the repository and freeze it into the repository used for testing, - which then may cause Git operations to fail. Single out "the index - being locked" case and forcibly drop the lock from the copy. - Will merge to 'master'. @@ -416,73 +552,16 @@ of the repositories listed at Needs review. -* jk/consistent-h (2017-06-05) 8 commits - (merged to 'next' on 2017-06-13 at e09c1fe968) - + t0012: test "-h" with builtins - + git: add hidden --list-builtins option - + version: convert to parse-options - + diff- and log- family: handle "git cmd -h" early - + submodule--helper: show usage for "-h" - + remote-{ext,fd}: print usage message on invalid arguments - + upload-archive: handle "-h" option early - + credential: handle invalid arguments earlier - - "git $cmd -h" for builtin commands calls the implementation of the - command (i.e. cmd_$cmd() function) without doing any repository - set-up, and the commands that expect RUN_SETUP is done by the Git - potty needs to be prepared to show the help text without barfing. - - Will merge to 'master'. - - -* pw/rebase-i-regression-fix-tests (2017-06-01) 1 commit +* pw/rebase-i-regression-fix-tests (2017-06-19) 4 commits + - rebase: add more regression tests for console output + - rebase: add regression tests for console output - rebase -i: add test for reflog message + - sequencer: print autostash messages to stderr - Just the first one of three? new tests that follows up a regression - fix. - - Expecting a portable update. - - -* ab/pcre-v2 (2017-06-02) 8 commits - (merged to 'next' on 2017-06-13 at 34bf49ee44) - + grep: add support for PCRE v2 - + grep: un-break building with PCRE >= 8.32 without --enable-jit - + grep: un-break building with PCRE < 8.20 - + grep: un-break building with PCRE < 8.32 - + grep: add support for the PCRE v1 JIT API - + log: add -P as a synonym for --perl-regexp - + grep: skip pthreads overhead when using one thread - + grep: don't redundantly compile throwaway patterns under threading - - Update "perl-compatible regular expression" support to enable JIT - and also allow linking with the newer PCRE v2 library. - - Will merge to 'master'. - - -* jk/pathspec-magic-disambiguation (2017-05-29) 6 commits - (merged to 'next' on 2017-06-13 at 088987f033) - + verify_filename(): flip order of checks - + verify_filename(): treat ":(magic)" as a pathspec - + check_filename(): handle ":^" path magic - + check_filename(): use skip_prefix - + check_filename(): refactor ":/" handling - + t4208: add check for ":/" without matching file - - The convention for a command line is to follow "git cmdname - --options" with revisions followed by an optional "--" - disambiguator and then finally pathspecs. When "--" is not there, - we make sure early ones are all interpretable as revs (and do not - look like paths) and later ones are the other way around. A - pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from - the top-level of the working tree, no matter what subdirectory you - are working from) are conservatively judged as "not a path", which - required disambiguation more often. The command line parser - learned to say "it's a pathspec" a bit more often when the syntax - looks like so. + Fix a recent regression to "git rebase -i" and add tests that would + have caught it and others. - Will merge to 'master'. + Will merge to 'next'. * ab/sha1dc (2017-06-07) 2 commits @@ -534,7 +613,7 @@ of the repositories listed at the same as deleted lines elsewhere differently from genuinely new lines. - Are we happy with these changes? + Is any more update coming? * xz/send-email-batch-size (2017-05-23) 1 commit @@ -548,7 +627,7 @@ of the repositories listed at cf. -* sg/clone-refspec-from-command-line-config (2017-06-01) 2 commits +* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits - Documentation/clone: document ignored configuration variables - clone: respect additional configured fetch refspecs during initial fetch @@ -558,9 +637,10 @@ of the repositories listed at e.g. these configuration variables could be fetch refspecs. Are we happy with these two? + cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net> -* js/rebase-i-final (2017-05-02) 10 commits +* js/rebase-i-final (2017-06-15) 10 commits - rebase -i: rearrange fixup/squash lines using the rebase--helper - t3415: test fixup with wrapped oneline - rebase -i: skip unnecessary picks using the rebase--helper @@ -576,23 +656,25 @@ of the repositories listed at the shell script to C. Expecting a reroll. - This is at its v4. - cf. + This is at its v5. + cf. +-------------------------------------------------- +[Discarded] * nd/prune-in-worktree (2017-04-24) 12 commits - - rev-list: expose and document --single-worktree - - revision.c: --reflog add HEAD reflog from all worktrees - - files-backend: make reflog iterator go through per-worktree reflog - - revision.c: --all adds HEAD from all worktrees - - refs: remove dead for_each_*_submodule() - - revision.c: use refs_for_each*() instead of for_each_*_submodule() - - refs: add refs_head_ref() - - refs: move submodule slash stripping code to get_submodule_ref_store - - refs.c: refactor get_submodule_ref_store(), share common free block - - revision.c: --indexed-objects add objects from all worktrees - - revision.c: refactor add_index_objects_to_pending() - - revision.h: new flag in struct rev_info wrt. worktree-related refs + . rev-list: expose and document --single-worktree + . revision.c: --reflog add HEAD reflog from all worktrees + . files-backend: make reflog iterator go through per-worktree reflog + . revision.c: --all adds HEAD from all worktrees + . refs: remove dead for_each_*_submodule() + . revision.c: use refs_for_each*() instead of for_each_*_submodule() + . refs: add refs_head_ref() + . refs: move submodule slash stripping code to get_submodule_ref_store + . refs.c: refactor get_submodule_ref_store(), share common free block + . revision.c: --indexed-objects add objects from all worktrees + . revision.c: refactor add_index_objects_to_pending() + . revision.h: new flag in struct rev_info wrt. worktree-related refs "git gc" and friends when multiple worktrees are used off of a single repository did not consider the index and per-worktree refs @@ -600,6 +682,31 @@ of the repositories listed at objects that are in use only in other worktrees to be subject to garbage collection. - Expecting a reroll. - Has been waiting for nd/worktree-kill-parse-ref to settle. - cf. + +* jc/pretty-add-again (2017-06-13) 1 commit + . add_again() off-by-one error in custom format + + +* sk/dash-is-previous (2017-03-01) 5 commits + . revert.c: delegate handling of "-" shorthand to setup_revisions + . sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}" + . revision.c: args starting with "-" might be a revision + . revision.c: swap if/else blocks + . revision.c: do not update argv with unknown option + + A dash "-" can be written to mean "the branch that was previously + checked out" in more places. + + Ejected, as it seems that making -.. to mean @{-1}..HEAD etc. are + going too far. + + +* mg/name-rev-debug (2017-03-31) 2 commits + . describe: pass --debug down to name-rev + . name-rev: provide debug output + + "git describe --debug --contains" did not add any meaningful + information, even though without "--contains" it did. + + Will discard for now. + cf. -- 2.47.3