From: Junio C Hamano Date: Tue, 20 Dec 2016 00:17:12 +0000 (-0800) Subject: What's cooking (2016/12 #05) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b4843ea81184f1e3b2d24ec1beea55be9efbdee1;p=thirdparty%2Fgit.git What's cooking (2016/12 #05) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index f818f057e8..ff12dcbf0b 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 (Dec 2016, #04; Fri, 16) -X-master-at: eff96d7e16a769dca9b0319ccf460a83f514676e -X-next-at: f8bf8f2a7b2b08001fdf3e1c554eef9249e47c19 +Subject: What's cooking in git.git (Dec 2016, #05; Mon, 19) +X-master-at: 6610af872f6494a061780ec738c8713a034b848b +X-next-at: 4f4050513f839a9c6e56bdec20cbd1a1cb924ef8 -What's cooking in git.git (Dec 2016, #04; Fri, 16) +What's cooking in git.git (Dec 2016, #05; Mon, 19) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,6 +12,9 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. +The second (rather large) batch of topics have been merged to +'master'. Please test and catch possible regressions early. + You can find the changes described here in the integration branches of the repositories listed at @@ -20,252 +23,311 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ak/lazy-prereq-mktemp (2016-11-29) 1 commit - (merged to 'next' on 2016-12-12 at f346d1f053) - + t7610: clean up foo.XXXXXX tmpdir +* ah/grammos (2016-12-05) 3 commits + (merged to 'next' on 2016-12-12 at 13ad487b28) + + clone,fetch: explain the shallow-clone option a little more clearly + + receive-pack: improve English grammar of denyCurrentBranch message + + bisect: improve English grammar of not-ancestors message - Test code clean-up. + A few messages have been fixed for their grammatical errors. -* bw/push-dry-run (2016-11-23) 2 commits - (merged to 'next' on 2016-12-12 at bde7a0f9ae) - + push: fix --dry-run to not push submodules - + push: --dry-run updates submodules when --recurse-submodules=on-demand - (this branch uses hv/submodule-not-yet-pushed-fix; is tangled with sb/push-make-submodule-check-the-default.) +* ak/commit-only-allow-empty (2016-12-09) 2 commits + (merged to 'next' on 2016-12-12 at 54188ab23c) + + commit: remove 'Clever' message for --only --amend + + commit: make --only --allow-empty work without paths - "git push --dry-run --recurse-submodule=on-demand" wasn't - "--dry-run" in the submodules. + "git commit --allow-empty --only" (no pathspec) with dirty index + ought to be an acceptable way to create a new commit that does not + change any paths, but it was forbidden, perhaps because nobody + needed it so far. -* da/mergetool-trust-exit-code (2016-11-29) 2 commits - (merged to 'next' on 2016-12-12 at 28ae202868) - + mergetools/vimdiff: trust Vim's exit code - + mergetool: honor mergetool.$tool.trustExitCode for built-in tools +* bb/unicode-9.0 (2016-12-14) 6 commits + (merged to 'next' on 2016-12-16 at be2531431a) + + unicode_width.h: update the width tables to Unicode 9.0 + + update_unicode.sh: remove the plane filter + + update_unicode.sh: automatically download newer definition files + + update_unicode.sh: pin the uniset repo to a known good commit + + update_unicode.sh: remove an unnecessary subshell level + + update_unicode.sh: move it into contrib/update-unicode - mergetool..trustExitCode configuration variable did not apply - to built-in tools, but now it does. + The character width table has been updated to match Unicode 9.0 -* dt/empty-submodule-in-merge (2016-11-17) 1 commit - (merged to 'next' on 2016-12-12 at 6de2350b2b) - + submodules: allow empty working-tree dirs in merge/cherry-pick +* da/difftool-dir-diff-fix (2016-12-08) 1 commit + (merged to 'next' on 2016-12-12 at fd31a92ad6) + + difftool: fix dir-diff index creation when in a subdirectory - An empty directory in a working tree that can simply be nuked used - to interfere while merging or cherry-picking a change to create a - submodule directory there, which has been fixed.. + "git difftool --dir-diff" had a minor regression when started from + a subdirectory, which has been fixed. -* hv/submodule-not-yet-pushed-fix (2016-11-16) 4 commits - (merged to 'next' on 2016-12-05 at c9d729fca2) - + submodule_needs_pushing(): explain the behaviour when we cannot answer - + batch check whether submodule needs pushing into one call - + serialize collection of refs that contain submodule changes - + serialize collection of changed submodules - (this branch is used by bw/push-dry-run and sb/push-make-submodule-check-the-default.) +* da/mergetool-xxdiff-hotkey (2016-12-11) 1 commit + (merged to 'next' on 2016-12-13 at a08f375c81) + + mergetools: fix xxdiff hotkeys - Originally merged to 'next' on 2016-11-21 + The way to specify hotkeys to "xxdiff" that is used by "git + mergetool" has been modernized to match recent versions of xxdiff. - The code in "git push" to compute if any commit being pushed in the - superproject binds a commit in a submodule that hasn't been pushed - out was overly inefficient, making it unusable even for a small - project that does not have any submodule but have a reasonable - number of refs. +* jb/diff-no-index-no-abbrev (2016-12-08) 1 commit + (merged to 'next' on 2016-12-12 at 959981ef50) + + diff: handle --no-abbrev in no-index case -* jk/rev-parse-symbolic-parents-fix (2016-11-16) 1 commit - (merged to 'next' on 2016-12-12 at 6839c1ea28) - + rev-parse: fix parent shorthands with --symbolic + "git diff --no-index" did not take "--no-abbrev" option. - "git rev-parse --symbolic" failed with a more recent notation like - "HEAD^-1" and "HEAD^!". +* jc/lock-report-on-error (2016-12-07) 3 commits + (merged to 'next' on 2016-12-13 at cb6c07ee92) + + lockfile: LOCK_REPORT_ON_ERROR + + hold_locked_index(): align error handling with hold_lockfile_for_update() + + wt-status: implement opportunisitc index update correctly -* ld/p4-update-shelve (2016-12-05) 1 commit - (merged to 'next' on 2016-12-12 at 22f6bec94c) - + git-p4: support updating an existing shelved changelist - (this branch uses vk/p4-submit-shelve.) + Git 2.11 had a minor regression in "merge --ff-only" that competed + with another process that simultanously attempted to update the + index. We used to explain what went wrong with an error message, + but the new code silently failed. The error message has been + resurrected. - Will merge to 'master'. +* jc/pull-rebase-ff (2016-11-29) 1 commit + (merged to 'next' on 2016-12-16 at c1a0cedd9e) + + pull: fast-forward "pull --rebase=true" -* ls/p4-empty-file-on-lfs (2016-12-05) 1 commit - (merged to 'next' on 2016-12-12 at 1fce8e037a) - + git-p4: fix empty file processing for large file system backend GitLFS + "git pull --rebase", when there is no new commits on our side since + we forked from the upstream, should be able to fast-forward without + invoking "git rebase", but it didn't. - "git p4" LFS support was broken when LFS stores an empty blob. +* jc/renormalize-merge-kill-safer-crlf (2016-12-01) 4 commits + (merged to 'next' on 2016-12-12 at 041b834f81) + + convert: git cherry-pick -Xrenormalize did not work + + Merge branch 'tb/t0027-raciness-fix' into jc/renormalize-merge-kill-safer-crlf + + merge-recursive: handle NULL in add_cacheinfo() correctly + + cherry-pick: demonstrate a segmentation fault -* ls/p4-retry-thrice (2016-12-05) 1 commit - (merged to 'next' on 2016-12-12 at 9462e660a8) - + git-p4: add config to retry p4 commands; retry 3 times by default + Fix a corner case in merge-recursive regression that crept in + during 2.10 development cycle. - Will merge to 'master'. +* jk/http-walker-limit-redirect (2016-12-06) 2 commits + (merged to 'next' on 2016-12-12 at 8b58025e3a) + + http-walker: complain about non-404 loose object errors + + Merge branch 'ew/http-walker' into jk/http-walker-limit-redirect + (this branch is used by bw/transport-protocol-policy; uses jk/http-walker-limit-redirect-2.9.) -* nd/qsort-in-merge-recursive (2016-11-28) 1 commit - (merged to 'next' on 2016-12-12 at e9700f5b93) - + merge-recursive.c: use string_list_sort instead of qsort + Update the error messages from the dumb-http client when it fails + to obtain loose objects; we used to give sensible error message + only upon 404 but we now forbid unexpected redirects that needs to + be reported with something sensible. - Code simplification. +* jk/http-walker-limit-redirect-2.9 (2016-12-06) 5 commits + (merged to 'next' on 2016-12-12 at 3e4bcd7bca) + + http: treat http-alternates like redirects + + http: make redirects more obvious + + remote-curl: rename shadowed options variable + + http: always update the base URL for redirects + + http: simplify update_url_from_redirect + (this branch is used by bw/transport-protocol-policy and jk/http-walker-limit-redirect.) -* nd/worktree-list-fixup (2016-11-28) 5 commits - (merged to 'next' on 2016-12-12 at 1f46421a59) - + worktree list: keep the list sorted - + worktree.c: get_worktrees() takes a new flag argument - + get_worktrees() must return main worktree as first item even on error - + worktree: reorder an if statement - + worktree.c: zero new 'struct worktree' on allocation - (this branch is used by nd/worktree-move and sb/submodule-embed-gitdir.) + Transport with dumb http can be fooled into following foreign URLs + that the end user does not intend to, especially with the server + side redirects and http-alternates mechanism, which can lead to + security issues. Tighten the redirection and make it more obvious + to the end user when it happens. - The output from "git worktree list" was made in readdir() order, - and was unstable. +* jk/make-tags-find-sources-tweak (2016-12-14) 4 commits + (merged to 'next' on 2016-12-16 at 06d0b0fbfd) + + Makefile: exclude contrib from FIND_SOURCE_FILES + + Makefile: match shell scripts in FIND_SOURCE_FILES + + Makefile: exclude test cruft from FIND_SOURCE_FILES + + Makefile: reformat FIND_SOURCE_FILES -* vk/p4-submit-shelve (2016-11-29) 1 commit - (merged to 'next' on 2016-12-12 at 3fce6df117) - + git-p4: allow submit to create shelved changelists. - (this branch is used by ld/p4-update-shelve.) + Update the procedure to generate "tags" for developer support. - Will merge to 'master'. --------------------------------------------------- -[New Topics] +* jk/readme-gmane-is-no-more (2016-12-15) 1 commit + (merged to 'next' on 2016-12-16 at 44ad5c5205) + + README: replace gmane link with public-inbox -* bw/pathspec-cleanup (2016-12-14) 16 commits - - pathspec: rename prefix_pathspec to init_pathspec_item - - pathspec: small readability changes - - pathspec: create strip submodule slash helpers - - pathspec: create parse_element_magic helper - - pathspec: create parse_long_magic function - - pathspec: create parse_short_magic function - - pathspec: factor global magic into its own function - - pathspec: simpler logic to prefix original pathspec elements - - pathspec: always show mnemonic and name in unsupported_magic - - pathspec: remove unused variable from unsupported_magic - - pathspec: copy and free owned memory - - pathspec: remove the deprecated get_pathspec function - - ls-tree: convert show_recursive to use the pathspec struct interface - - dir: convert fill_directory to use the pathspec struct interface - - dir: remove struct path_simplify - - mv: remove use of deprecated 'get_pathspec()' - Code clean-up in the pathspec API. +* jk/stash-disable-renames-internally (2016-12-06) 1 commit + (merged to 'next' on 2016-12-12 at e2b97aae68) + + stash: prefer plumbing over git-diff - Waiting for the (hopefully) final round of review before 'next'. + When diff.renames configuration is on (and with Git 2.9 and later, + it is enabled by default, which made it worse), "git stash" + misbehaved if a file is removed and another file with a very + similar content is added. -* cp/merge-continue (2016-12-15) 4 commits - - merge: mark usage error strings for translation - - merge: ensure '--abort' option takes no arguments - - completion: add --continue option for merge - - merge: add '--continue' option as a synonym for 'git commit' +* jk/trailers-placeholder-in-pretty (2016-12-11) 2 commits + (merged to 'next' on 2016-12-12 at 57de4e699a) + + ref-filter: add support to display trailers as part of contents + + pretty: add %(trailers) format for displaying trailers of a commit message + (this branch uses jt/use-trailer-api-in-commands.) - "git merge --continue" has been added as a synonym to "git commit" - to conclude a merge that has stopped due to conflicts. + In addition to %(subject), %(body), "log --pretty=format:..." + learned a new placeholder %(trailers). - Will merge to 'next'. +* jk/xdiff-drop-xdl-fast-hash (2016-12-06) 1 commit + (merged to 'next' on 2016-12-13 at 914e306217) + + xdiff: drop XDL_FAST_HASH -* jk/make-tags-find-sources-tweak (2016-12-14) 4 commits - (merged to 'next' on 2016-12-16 at 06d0b0fbfd) - + Makefile: exclude contrib from FIND_SOURCE_FILES - + Makefile: match shell scripts in FIND_SOURCE_FILES - + Makefile: exclude test cruft from FIND_SOURCE_FILES - + Makefile: reformat FIND_SOURCE_FILES + Retire the "fast hash" that had disastrous performance issues in + some corner cases. - Update the procedure to generate "tags" for developer support. - Will merge to 'master'. +* js/normalize-path-copy-ceil (2016-12-16) 1 commit + (merged to 'next' on 2016-12-16 at 634ba4debc) + + normalize_path_copy(): fix pushing to //server/share/dir on Windows + A pathname that begins with "//" or "\\" on Windows is special but + path normalization logic was unaware of it. -* jk/parseopt-usage-msg-opt (2016-12-14) 1 commit - - parse-options: print "fatal:" before usage_msg_opt() - The function usage_msg_opt() has been updated to say "fatal:" - before the custom message programs give, when they want to die - with a message about wrong command line options followed by the - standard usage string. +* jt/use-trailer-api-in-commands (2016-11-29) 5 commits + (merged to 'next' on 2016-12-12 at da1f140ad4) + + sequencer: use trailer's trailer layout + + trailer: have function to describe trailer layout + + trailer: avoid unnecessary splitting on lines + + commit: make ignore_non_trailer take buf/len + + trailer: be stricter in parsing separators + (this branch is used by jk/trailers-placeholder-in-pretty.) - Will merge to 'next'. + Commands that operate on a log message and add lines to the trailer + blocks, such as "format-patch -s", "cherry-pick (-x|-s)", and + "commit -s", have been taught to use the logic of and share the + code with "git interpret-trailer". -* ld/p4-compare-dir-vs-symlink (2016-12-14) 1 commit - - git-p4: avoid crash adding symlinked directory +* kh/tutorial-grammofix (2016-12-09) 4 commits + (merged to 'next' on 2016-12-13 at a951db78bc) + + doc: omit needless "for" + + doc: make the intent of sentence clearer + + doc: add verb in front of command to run + + doc: add articles (grammar) - "git p4" misbehaved when swapping a directory and a symbolic link. - Will merge to 'next'. +* ld/p4-worktree (2016-12-13) 1 commit + (merged to 'next' on 2016-12-16 at 5210ab9973) + + git-p4: support git worktrees + "git p4" didn't interact with the internal of .git directory + correctly in the modern "git-worktree"-enabled world. -* js/prepare-sequencer-more (2016-12-14) 34 commits - - sequencer (rebase -i): write out the final message - - sequencer (rebase -i): write the progress into files - - sequencer (rebase -i): show the progress - - sequencer (rebase -i): suggest --edit-todo upon unknown command - - sequencer (rebase -i): show only failed cherry-picks' output - - sequencer (rebase -i): show only failed `git commit`'s output - - run_command_opt(): optionally hide stderr when the command succeeds - - sequencer (rebase -i): differentiate between comments and 'noop' - - sequencer (rebase -i): implement the 'drop' command - - sequencer (rebase -i): allow rescheduling commands - - sequencer (rebase -i): respect strategy/strategy_opts settings - - sequencer (rebase -i): respect the rebase.autostash setting - - sequencer (rebase -i): run the post-rewrite hook, if needed - - sequencer (rebase -i): record interrupted commits in rewritten, too - - sequencer (rebase -i): copy commit notes at end - - sequencer (rebase -i): set the reflog message consistently - - sequencer (rebase -i): refactor setting the reflog message - - sequencer (rebase -i): allow fast-forwarding for edit/reword - - sequencer (rebase -i): implement the 'reword' command - - sequencer (rebase -i): leave a patch upon error - - sequencer (rebase -i): update refs after a successful rebase - - sequencer (rebase -i): the todo can be empty when continuing - - sequencer (rebase -i): skip some revert/cherry-pick specific code path - - sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed - - sequencer (rebase -i): allow continuing with staged changes - - sequencer (rebase -i): write an author-script file - - sequencer (rebase -i): implement the short commands - - sequencer (rebase -i): add support for the 'fixup' and 'squash' commands - - sequencer (rebase -i): write the 'done' file - - sequencer (rebase -i): learn about the 'verbose' mode - - sequencer (rebase -i): implement the 'exec' command - - sequencer (rebase -i): implement the 'edit' command - - sequencer (rebase -i): implement the 'noop' command - - sequencer: support a new action: 'interactive rebase' - The sequencer has further been extended in preparation to act as a - back-end for "rebase -i". +* lr/doc-fix-cet (2016-12-12) 1 commit + (merged to 'next' on 2016-12-13 at dbc9e07e57) + + date-formats.txt: Typo fix + + +* ls/t0021-fixup (2016-12-05) 1 commit + (merged to 'next' on 2016-12-12 at db652e691a) + + t0021: minor filter process test cleanup + + +* ls/travis-update-p4-and-lfs (2016-12-05) 1 commit + (merged to 'next' on 2016-12-12 at 5496caa048) + + travis-ci: update P4 to 16.2 and GitLFS to 1.5.2 in Linux build + + The default Travis-CI configuration specifies newer P4 and GitLFS. + + +* nd/for-each-ref-ignore-case (2016-12-05) 1 commit + (merged to 'next' on 2016-12-12 at 527cc4f275) + + tag, branch, for-each-ref: add --ignore-case for sorting and filtering + + "git branch --list" and friends learned "--ignore-case" option to + optionally sort branches and tags case insensitively. + + +* nd/rebase-forget (2016-12-11) 1 commit + (merged to 'next' on 2016-12-12 at 50b5d28af4) + + rebase: add --quit to cleanup rebase, leave everything else untouched + + "git rebase" learned "--quit" option, which allows a user to + remove the metadata left by an earlier "git rebase" that was + manually aborted without using "git rebase --abort". + + +* rj/git-version-gen-do-not-force-abbrev (2016-12-06) 1 commit + (merged to 'next' on 2016-12-12 at e37970c3f5) + + GIT-VERSION-GEN: do not force abbreviation length used by 'describe' + + A minor build update. + + +* sb/t3600-cleanup (2016-12-12) 2 commits + (merged to 'next' on 2016-12-13 at e06e6e702f) + + t3600: slightly modernize style + (merged to 'next' on 2016-12-12 at d9996af5e8) + + t3600: remove useless redirect + + Code cleanup. - Waiting for review. +* sb/unpack-trees-grammofix (2016-12-05) 1 commit + (merged to 'next' on 2016-12-12 at 29e536f590) + + unpack-trees: fix grammar for untracked files in directories -* jk/index-pack-wo-repo-from-stdin (2016-12-16) 4 commits - - index-pack: skip collision check when not in repository - - t: use nongit() function where applicable - - index-pack: complain when --stdin is used outside of a repo - - t5000: extract nongit function to test-lib-functions.sh +-------------------------------------------------- +[New Topics] - "git index-pack --stdin" needs an access to an existing repository, - but "git index-pack file.pack" to generate an .idx file that - corresponds to a packfile does not. +* gv/p4-multi-path-commit-fix (2016-12-19) 1 commit + - git-p4: fix multi-path changelist empty commits + + "git p4" that tracks multile p4 paths imported a single changelist + that touches files in these multiple paths as one commit, followed + by many empty commits. This has been fixed. Will merge to 'next'. -* jk/readme-gmane-is-no-more (2016-12-15) 1 commit - (merged to 'next' on 2016-12-16 at 44ad5c5205) - + README: replace gmane link with public-inbox +* js/mingw-isatty (2016-12-18) 1 commit + - winansi_isatty(): fix when Git is used from CMD - Will merge to 'master'. + Update the isatty() emulation for Windows to make it interact + better with the cmd.exe console. + Waiting for an ack. -* lt/shortlog-by-committer (2016-12-16) 2 commits - - shortlog: test and document --committer option - - shortlog: group by committer information - "git shortlog" learned "--committer" option to group commits by - committer, instead of author. +* jt/mailinfo-fold-in-body-headers (2016-12-19) 1 commit + - mailinfo.c: move side-effects outside of assert + + Fix for NDEBUG builds. + + Will merge to 'next'. + + +* ls/p4-lfs (2016-12-18) 1 commit + - git-p4: add diff/merge properties to .gitattributes for GitLFS files + + Update GitLFS integration with "git p4". + + Waiting for an ack. + + +* ls/p4-path-encoding (2016-12-18) 1 commit + - git-p4: fix git-p4.pathEncoding for removed files + + When "git p4" imports changelist that removes paths, it failed to + convert pathnames when the p4 used encoding different from the one + used on the Git side. This has been corrected. + + Waiting for an ack. + + +* mh/fast-import-notes-fix-new (2016-12-19) 1 commit + - fast-import: properly fanout notes when tree is imported + + "git fast-import" sometimes mishandled while rebalancing notes + tree, which has been fixed. Will merge to 'next'. @@ -408,343 +470,229 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* bw/realpath-wo-chdir (2016-12-12) 4 commits - - real_path: have callers use real_pathdup and strbuf_realpath - - real_path: create real_pathdup - - real_path: convert real_path_internal to strbuf_realpath - - real_path: resolve symlinks by hand - (this branch is used by bw/grep-recurse-submodules.) - - The implementation of "real_path()" was to go there with chdir(2) - and call getcwd(3), but this obviously wouldn't be usable in a - threaded environment. Rewrite it to manually resolve relative - paths including symbolic links in path components. - - Will merge to 'next'. - - -* jk/quote-env-path-list-component (2016-12-13) 4 commits - (merged to 'next' on 2016-12-16 at d2cd6008b9) - + t5547-push-quarantine: run the path separator test on Windows, too - + tmp-objdir: quote paths we add to alternates - + alternates: accept double-quoted paths - + Merge branch 'jk/alt-odb-cleanup' into jk/quote-env-path-list-component - - A recent update to receive-pack to make it easier to drop garbage - objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot - have a pathname with a colon in it (no surprise!), and this in turn - made it impossible to push into a repository at such a path. This - has been fixed by introducing a quoting mechanism used when - appending such a path to the colon-separated list. - - Will merge to 'master'. - - -* js/normalize-path-copy-ceil (2016-12-16) 1 commit - (merged to 'next' on 2016-12-16 at 634ba4debc) - + normalize_path_copy(): fix pushing to //server/share/dir on Windows - - A pathname that begins with "//" or "\\" on Windows is special but - path normalization logic was unaware of it. - - Will merge to 'master'. - - -* jc/lock-report-on-error (2016-12-07) 3 commits - (merged to 'next' on 2016-12-13 at cb6c07ee92) - + lockfile: LOCK_REPORT_ON_ERROR - + hold_locked_index(): align error handling with hold_lockfile_for_update() - + wt-status: implement opportunisitc index update correctly - - Git 2.11 had a minor regression in "merge --ff-only" that competed - with another process that simultanously attempted to update the - index. We used to explain what went wrong with an error message, - but the new code silently failed. This resurrects the error - message. - - Will merge to 'master'. - - -* nd/shallow-fixup (2016-12-07) 6 commits - (merged to 'next' on 2016-12-13 at 1a3edb8bce) - + shallow.c: remove useless code - + shallow.c: bit manipulation tweaks - + shallow.c: avoid theoretical pointer wrap-around - + shallow.c: make paint_alloc slightly more robust - + shallow.c: stop abusing COMMIT_SLAB_SIZE for paint_info's memory pools - + shallow.c: rename fields in paint_info to better express their purposes - - Code cleanup in shallow boundary computation. - - Will merge to 'master'. - - -* sb/sequencer-abort-safety (2016-12-14) 6 commits - (merged to 'next' on 2016-12-16 at ec71fb1217) - + Revert "sequencer: remove useless get_dir() function" - (merged to 'next' on 2016-12-13 at 6107e43d65) - + sequencer: remove useless get_dir() function - + sequencer: make sequencer abort safer - + t3510: test that cherry-pick --abort does not unsafely change HEAD - + am: change safe_to_abort()'s not rewinding error into a warning - + am: fix filename in safe_to_abort() error message - - Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back - to where cherry-pick started while picking multiple changes, when - the cherry-pick stopped to ask for help from the user, and the user - did "git reset --hard" to a different commit in order to re-attempt - the operation. - - Will merge to 'master'. - - -* kh/tutorial-grammofix (2016-12-09) 4 commits - (merged to 'next' on 2016-12-13 at a951db78bc) - + doc: omit needless "for" - + doc: make the intent of sentence clearer - + doc: add verb in front of command to run - + doc: add articles (grammar) - - Will merge to 'master'. - - -* da/mergetool-xxdiff-hotkey (2016-12-11) 1 commit - (merged to 'next' on 2016-12-13 at a08f375c81) - + mergetools: fix xxdiff hotkeys - - The way to specify hotkeys to "xxdiff" that is used by "git - mergetool" has been modernized to match recent versions of xxdiff. - - Will merge to 'master'. - - -* jk/difftool-in-subdir (2016-12-11) 4 commits - - difftool: rename variables for consistency - - difftool: chdir as early as possible - - difftool: sanitize $workdir as early as possible - - difftool: fix dir-diff index creation when in a subdirectory - - Even though an fix was attempted in Git 2.9.3 days, but running - "git difftool --dir-diff" from a subdirectory never worked. This - has been fixed. - - Will merge to 'next'. - - -* lr/doc-fix-cet (2016-12-12) 1 commit - (merged to 'next' on 2016-12-13 at dbc9e07e57) - + date-formats.txt: Typo fix - - Will merge to 'master'. - - -* vs/submodule-clone-nested-submodules-alternates (2016-12-12) 1 commit - (merged to 'next' on 2016-12-13 at 8a317ab745) - + submodule--helper: set alternateLocation for cloned submodules - - "git clone --reference $there --recurse-submodules $super" has been - taught to guess repositories usable as references for submodules of - $super that are embedded in $there while making a clone of the - superproject borrow objects from $there; extend the mechanism to - also allow submodules of these submodules to borrow repositories - embedded in these clones of the submodules embedded in the clone of - the superproject. - - Will merge to 'master'. - - -* jb/diff-no-index-no-abbrev (2016-12-08) 1 commit - (merged to 'next' on 2016-12-12 at 959981ef50) - + diff: handle --no-abbrev in no-index case - - "git diff --no-index" did not take "--no-abbrev" option. - - Will merge to 'master'. - - -* jk/http-walker-limit-redirect-2.9 (2016-12-06) 5 commits - (merged to 'next' on 2016-12-12 at 3e4bcd7bca) - + http: treat http-alternates like redirects - + http: make redirects more obvious - + remote-curl: rename shadowed options variable - + http: always update the base URL for redirects - + http: simplify update_url_from_redirect - (this branch is used by bw/transport-protocol-policy and jk/http-walker-limit-redirect.) - - Transport with dumb http can be fooled into following foreign URLs - that the end user does not intend to, especially with the server - side redirects and http-alternates mechanism, which can lead to - security issues. Tighten the redirection and make it more obvious - to the end user when it happens. - - Will merge to 'master'. - - -* jk/http-walker-limit-redirect (2016-12-06) 2 commits - (merged to 'next' on 2016-12-12 at 8b58025e3a) - + http-walker: complain about non-404 loose object errors - + Merge branch 'ew/http-walker' into jk/http-walker-limit-redirect - (this branch is used by bw/transport-protocol-policy; uses jk/http-walker-limit-redirect-2.9.) - - Update the error messages from the dumb-http client when it fails - to obtain loose objects; we used to give sensible error message - only upon 404 but we now forbid unexpected redirects that needs to - be reported with something sensible. - - Will merge to 'master'. - - -* ah/grammos (2016-12-05) 3 commits - (merged to 'next' on 2016-12-12 at 13ad487b28) - + clone,fetch: explain the shallow-clone option a little more clearly - + receive-pack: improve English grammar of denyCurrentBranch message - + bisect: improve English grammar of not-ancestors message - - A few messages have been fixed for their grammatical errors. - - Will merge to 'master'. - - -* ak/commit-only-allow-empty (2016-12-09) 2 commits - (merged to 'next' on 2016-12-12 at 54188ab23c) - + commit: remove 'Clever' message for --only --amend - + commit: make --only --allow-empty work without paths +* bw/pathspec-cleanup (2016-12-14) 16 commits + - pathspec: rename prefix_pathspec to init_pathspec_item + - pathspec: small readability changes + - pathspec: create strip submodule slash helpers + - pathspec: create parse_element_magic helper + - pathspec: create parse_long_magic function + - pathspec: create parse_short_magic function + - pathspec: factor global magic into its own function + - pathspec: simpler logic to prefix original pathspec elements + - pathspec: always show mnemonic and name in unsupported_magic + - pathspec: remove unused variable from unsupported_magic + - pathspec: copy and free owned memory + - pathspec: remove the deprecated get_pathspec function + - ls-tree: convert show_recursive to use the pathspec struct interface + - dir: convert fill_directory to use the pathspec struct interface + - dir: remove struct path_simplify + - mv: remove use of deprecated 'get_pathspec()' - "git commit --allow-empty --only" (no pathspec) with dirty index - ought to be an acceptable way to create a new commit that does not - change any paths, but it was forbidden (perhaps because nobody - needed it). + Code clean-up in the pathspec API. - Will merge to 'master'. + Waiting for the (hopefully) final round of review before 'next'. -* bb/unicode-9.0 (2016-12-14) 6 commits - (merged to 'next' on 2016-12-16 at be2531431a) - + unicode_width.h: update the width tables to Unicode 9.0 - + update_unicode.sh: remove the plane filter - + update_unicode.sh: automatically download newer definition files - + update_unicode.sh: pin the uniset repo to a known good commit - + update_unicode.sh: remove an unnecessary subshell level - + update_unicode.sh: move it into contrib/update-unicode +* cp/merge-continue (2016-12-15) 4 commits + (merged to 'next' on 2016-12-19 at 8ba0094f45) + + merge: mark usage error strings for translation + + merge: ensure '--abort' option takes no arguments + + completion: add --continue option for merge + + merge: add '--continue' option as a synonym for 'git commit' - The character width table has been updated to match Unicode 9.0 + "git merge --continue" has been added as a synonym to "git commit" + to conclude a merge that has stopped due to conflicts. Will merge to 'master'. -* ld/p4-worktree (2016-12-13) 1 commit - (merged to 'next' on 2016-12-16 at 5210ab9973) - + git-p4: support git worktrees +* jk/parseopt-usage-msg-opt (2016-12-14) 1 commit + (merged to 'next' on 2016-12-19 at c488c7c6e1) + + parse-options: print "fatal:" before usage_msg_opt() - "git p4" didn't interact with the internal of .git directory - correctly in the modern "git-worktree"-enabled world. + The function usage_msg_opt() has been updated to say "fatal:" + before the custom message programs give, when they want to die + with a message about wrong command line options followed by the + standard usage string. Will merge to 'master'. -* ls/t0021-fixup (2016-12-05) 1 commit - (merged to 'next' on 2016-12-12 at db652e691a) - + t0021: minor filter process test cleanup +* ld/p4-compare-dir-vs-symlink (2016-12-18) 1 commit + - git-p4: avoid crash adding symlinked directory - Will merge to 'master'. + "git p4" misbehaved when swapping a directory and a symbolic link. + Will merge to 'next'. -* ls/travis-update-p4-and-lfs (2016-12-05) 1 commit - (merged to 'next' on 2016-12-12 at 5496caa048) - + travis-ci: update P4 to 16.2 and GitLFS to 1.5.2 in Linux build - The default Travis-CI configuration specifies newer P4 and GitLFS. +* js/prepare-sequencer-more (2016-12-14) 34 commits + - sequencer (rebase -i): write out the final message + - sequencer (rebase -i): write the progress into files + - sequencer (rebase -i): show the progress + - sequencer (rebase -i): suggest --edit-todo upon unknown command + - sequencer (rebase -i): show only failed cherry-picks' output + - sequencer (rebase -i): show only failed `git commit`'s output + - run_command_opt(): optionally hide stderr when the command succeeds + - sequencer (rebase -i): differentiate between comments and 'noop' + - sequencer (rebase -i): implement the 'drop' command + - sequencer (rebase -i): allow rescheduling commands + - sequencer (rebase -i): respect strategy/strategy_opts settings + - sequencer (rebase -i): respect the rebase.autostash setting + - sequencer (rebase -i): run the post-rewrite hook, if needed + - sequencer (rebase -i): record interrupted commits in rewritten, too + - sequencer (rebase -i): copy commit notes at end + - sequencer (rebase -i): set the reflog message consistently + - sequencer (rebase -i): refactor setting the reflog message + - sequencer (rebase -i): allow fast-forwarding for edit/reword + - sequencer (rebase -i): implement the 'reword' command + - sequencer (rebase -i): leave a patch upon error + - sequencer (rebase -i): update refs after a successful rebase + - sequencer (rebase -i): the todo can be empty when continuing + - sequencer (rebase -i): skip some revert/cherry-pick specific code path + - sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed + - sequencer (rebase -i): allow continuing with staged changes + - sequencer (rebase -i): write an author-script file + - sequencer (rebase -i): implement the short commands + - sequencer (rebase -i): add support for the 'fixup' and 'squash' commands + - sequencer (rebase -i): write the 'done' file + - sequencer (rebase -i): learn about the 'verbose' mode + - sequencer (rebase -i): implement the 'exec' command + - sequencer (rebase -i): implement the 'edit' command + - sequencer (rebase -i): implement the 'noop' command + - sequencer: support a new action: 'interactive rebase' - Will merge to 'master'. + The sequencer has further been extended in preparation to act as a + back-end for "rebase -i". + Waiting for review. -* sb/t3600-cleanup (2016-12-12) 2 commits - (merged to 'next' on 2016-12-13 at e06e6e702f) - + t3600: slightly modernize style - (merged to 'next' on 2016-12-12 at d9996af5e8) - + t3600: remove useless redirect - Code cleanup. +* jk/index-pack-wo-repo-from-stdin (2016-12-16) 4 commits + (merged to 'next' on 2016-12-19 at 9a88221347) + + index-pack: skip collision check when not in repository + + t: use nongit() function where applicable + + index-pack: complain when --stdin is used outside of a repo + + t5000: extract nongit function to test-lib-functions.sh + + "git index-pack --stdin" needs an access to an existing repository, + but "git index-pack file.pack" to generate an .idx file that + corresponds to a packfile does not. Will merge to 'master'. -* sb/unpack-trees-grammofix (2016-12-05) 1 commit - (merged to 'next' on 2016-12-12 at 29e536f590) - + unpack-trees: fix grammar for untracked files in directories +* lt/shortlog-by-committer (2016-12-16) 2 commits + (merged to 'next' on 2016-12-19 at 555976fc0a) + + shortlog: test and document --committer option + + shortlog: group by committer information + + "git shortlog" learned "--committer" option to group commits by + committer, instead of author. Will merge to 'master'. -* da/difftool-dir-diff-fix (2016-12-08) 1 commit - (merged to 'next' on 2016-12-12 at fd31a92ad6) - + difftool: fix dir-diff index creation when in a subdirectory +* bw/realpath-wo-chdir (2016-12-12) 4 commits + - real_path: have callers use real_pathdup and strbuf_realpath + - real_path: create real_pathdup + - real_path: convert real_path_internal to strbuf_realpath + - real_path: resolve symlinks by hand + (this branch is used by bw/grep-recurse-submodules.) - "git difftool --dir-diff" had a minor regression when started from - a subdirectory, which has been fixed. + The implementation of "real_path()" was to go there with chdir(2) + and call getcwd(3), but this obviously wouldn't be usable in a + threaded environment. Rewrite it to manually resolve relative + paths including symbolic links in path components. - Will merge to 'master'. + Will merge to 'next'. -* jk/stash-disable-renames-internally (2016-12-06) 1 commit - (merged to 'next' on 2016-12-12 at e2b97aae68) - + stash: prefer plumbing over git-diff +* jk/quote-env-path-list-component (2016-12-13) 4 commits + (merged to 'next' on 2016-12-16 at d2cd6008b9) + + t5547-push-quarantine: run the path separator test on Windows, too + + tmp-objdir: quote paths we add to alternates + + alternates: accept double-quoted paths + + Merge branch 'jk/alt-odb-cleanup' into jk/quote-env-path-list-component - When diff.renames configuration is on (and with Git 2.9 and later, - it is enabled by default, which made it worse), "git stash" - misbehaved if a file is removed and another file with a very - similar content is added. + A recent update to receive-pack to make it easier to drop garbage + objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot + have a pathname with a colon in it (no surprise!), and this in turn + made it impossible to push into a repository at such a path. This + has been fixed by introducing a quoting mechanism used when + appending such a path to the colon-separated list. Will merge to 'master'. -* jk/xdiff-drop-xdl-fast-hash (2016-12-06) 1 commit - (merged to 'next' on 2016-12-13 at 914e306217) - + xdiff: drop XDL_FAST_HASH +* nd/shallow-fixup (2016-12-07) 6 commits + (merged to 'next' on 2016-12-13 at 1a3edb8bce) + + shallow.c: remove useless code + + shallow.c: bit manipulation tweaks + + shallow.c: avoid theoretical pointer wrap-around + + shallow.c: make paint_alloc slightly more robust + + shallow.c: stop abusing COMMIT_SLAB_SIZE for paint_info's memory pools + + shallow.c: rename fields in paint_info to better express their purposes - Retire the "fast hash" that had disastrous performance issues in - some corner cases. + Code cleanup in shallow boundary computation. Will merge to 'master'. -* ls/filter-process (2016-12-06) 1 commit - (merged to 'next' on 2016-12-12 at 8ed1f9eb02) - + docs: warn about possible '=' in clean/smudge filter process values +* sb/sequencer-abort-safety (2016-12-14) 6 commits + (merged to 'next' on 2016-12-16 at ec71fb1217) + + Revert "sequencer: remove useless get_dir() function" + (merged to 'next' on 2016-12-13 at 6107e43d65) + + sequencer: remove useless get_dir() function + + sequencer: make sequencer abort safer + + t3510: test that cherry-pick --abort does not unsafely change HEAD + + am: change safe_to_abort()'s not rewinding error into a warning + + am: fix filename in safe_to_abort() error message - Doc update. + Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back + to where cherry-pick started while picking multiple changes, when + the cherry-pick stopped to ask for help from the user, and the user + did "git reset --hard" to a different commit in order to re-attempt + the operation. Will merge to 'master'. -* nd/for-each-ref-ignore-case (2016-12-05) 1 commit - (merged to 'next' on 2016-12-12 at 527cc4f275) - + tag, branch, for-each-ref: add --ignore-case for sorting and filtering +* jk/difftool-in-subdir (2016-12-11) 4 commits + - difftool: rename variables for consistency + - difftool: chdir as early as possible + - difftool: sanitize $workdir as early as possible + - difftool: fix dir-diff index creation when in a subdirectory - "git branch --list" and friends learned "--ignore-case" option to - optionally sort branches and tags case insensitively. + Even though an fix was attempted in Git 2.9.3 days, but running + "git difftool --dir-diff" from a subdirectory never worked. This + has been fixed. - Will merge to 'master'. + Will merge to 'next'. -* rj/git-version-gen-do-not-force-abbrev (2016-12-06) 1 commit - (merged to 'next' on 2016-12-12 at e37970c3f5) - + GIT-VERSION-GEN: do not force abbreviation length used by 'describe' +* vs/submodule-clone-nested-submodules-alternates (2016-12-12) 1 commit + (merged to 'next' on 2016-12-13 at 8a317ab745) + + submodule--helper: set alternateLocation for cloned submodules - A minor build update. + "git clone --reference $there --recurse-submodules $super" has been + taught to guess repositories usable as references for submodules of + $super that are embedded in $there while making a clone of the + superproject borrow objects from $there; extend the mechanism to + also allow submodules of these submodules to borrow repositories + embedded in these clones of the submodules embedded in the clone of + the superproject. Will merge to 'master'. -* jc/renormalize-merge-kill-safer-crlf (2016-12-01) 4 commits - (merged to 'next' on 2016-12-12 at 041b834f81) - + convert: git cherry-pick -Xrenormalize did not work - + Merge branch 'tb/t0027-raciness-fix' into jc/renormalize-merge-kill-safer-crlf - + merge-recursive: handle NULL in add_cacheinfo() correctly - + cherry-pick: demonstrate a segmentation fault +* ls/filter-process (2016-12-18) 2 commits + (merged to 'next' on 2016-12-19 at 5ed29656db) + + t0021: fix flaky test + (merged to 'next' on 2016-12-12 at 8ed1f9eb02) + + docs: warn about possible '=' in clean/smudge filter process values - Fix a corner case in merge-recursive regression that crept in - during 2.10 development cycle. + Doc update. Will merge to 'master'. @@ -769,18 +717,6 @@ of the repositories listed at Will cook in 'next'. -* jk/trailers-placeholder-in-pretty (2016-12-11) 2 commits - (merged to 'next' on 2016-12-12 at 57de4e699a) - + ref-filter: add support to display trailers as part of contents - + pretty: add %(trailers) format for displaying trailers of a commit message - (this branch uses jt/use-trailer-api-in-commands.) - - In addition to %(subject), %(body), "log --pretty=format:..." - learned a new placeholder %(trailers). - - Will merge to 'master'. - - * sb/submodule-embed-gitdir (2016-12-12) 6 commits - submodule: add absorb-git-dir function - move connect_work_tree_and_git_dir to dir.h @@ -896,19 +832,19 @@ of the repositories listed at * bw/transport-protocol-policy (2016-12-15) 6 commits - - http: respect protocol.*.allow=user for http-alternates - - transport: add from_user parameter to is_transport_allowed - - http: create function to get curl allowed protocols - - transport: add protocol policy config option - - http: always warn if libcurl version is too old - - lib-proto-disable: variable name fix - (this branch uses jk/http-walker-limit-redirect and jk/http-walker-limit-redirect-2.9.) + (merged to 'next' on 2016-12-19 at 166168205c) + + http: respect protocol.*.allow=user for http-alternates + + transport: add from_user parameter to is_transport_allowed + + http: create function to get curl allowed protocols + + transport: add protocol policy config option + + http: always warn if libcurl version is too old + + lib-proto-disable: variable name fix Finer-grained control of what protocols are allowed for transports during clone/fetch/push have been enabled via a new configuration mechanism. - Will merge to 'next'. + Will merge to 'master'. * jt/fetch-no-redundant-tag-fetch-map (2016-11-11) 1 commit @@ -950,34 +886,6 @@ of the repositories listed at Will cook in 'next'. -* jt/use-trailer-api-in-commands (2016-11-29) 5 commits - (merged to 'next' on 2016-12-12 at da1f140ad4) - + sequencer: use trailer's trailer layout - + trailer: have function to describe trailer layout - + trailer: avoid unnecessary splitting on lines - + commit: make ignore_non_trailer take buf/len - + trailer: be stricter in parsing separators - (this branch is used by jk/trailers-placeholder-in-pretty.) - - Commands that operate on a log message and add lines to the trailer - blocks, such as "format-patch -s", "cherry-pick (-x|-s)", and - "commit -s", have been taught to use the logic of and share the - code with "git interpret-trailer". - - Will merge to 'master'. - - -* nd/rebase-forget (2016-12-11) 1 commit - (merged to 'next' on 2016-12-12 at 50b5d28af4) - + rebase: add --quit to cleanup rebase, leave everything else untouched - - "git rebase" learned "--forget" option, which allows a user to - remove the metadata left by an earlier "git rebase" that was - manually aborted without using "git rebase --abort". - - Will merge to 'master'. - - * jc/git-open-cloexec (2016-11-02) 3 commits - sha1_file: stop opening files with O_NOATIME - git_open_cloexec(): use fcntl(2) w/ FD_CLOEXEC fallback @@ -1146,26 +1054,27 @@ of the repositories listed at * va/i18n-perl-scripts (2016-12-14) 16 commits - - i18n: difftool: mark warnings for translation - - i18n: send-email: mark composing message for translation - - i18n: send-email: mark string with interpolation for translation - - i18n: send-email: mark warnings and errors for translation - - i18n: send-email: mark strings for translation - - i18n: add--interactive: mark status words for translation - - i18n: add--interactive: remove %patch_modes entries - - i18n: add--interactive: mark edit_hunk_manually message for translation - - i18n: add--interactive: i18n of help_patch_cmd - - i18n: add--interactive: mark patch prompt for translation - - i18n: add--interactive: mark plural strings - - i18n: clean.c: match string with git-add--interactive.perl - - i18n: add--interactive: mark strings with interpolation for translation - - i18n: add--interactive: mark simple here-documents for translation - - i18n: add--interactive: mark strings for translation - - Git.pm: add subroutines for commenting lines + (merged to 'next' on 2016-12-19 at ec800aba9f) + + i18n: difftool: mark warnings for translation + + i18n: send-email: mark composing message for translation + + i18n: send-email: mark string with interpolation for translation + + i18n: send-email: mark warnings and errors for translation + + i18n: send-email: mark strings for translation + + i18n: add--interactive: mark status words for translation + + i18n: add--interactive: remove %patch_modes entries + + i18n: add--interactive: mark edit_hunk_manually message for translation + + i18n: add--interactive: i18n of help_patch_cmd + + i18n: add--interactive: mark patch prompt for translation + + i18n: add--interactive: mark plural strings + + i18n: clean.c: match string with git-add--interactive.perl + + i18n: add--interactive: mark strings with interpolation for translation + + i18n: add--interactive: mark simple here-documents for translation + + i18n: add--interactive: mark strings for translation + + Git.pm: add subroutines for commenting lines Porcelain scripts written in Perl are getting internationalized. - Will merge to 'next'. + Will merge to 'master'. * jc/latin-1 (2016-09-26) 2 commits @@ -1201,17 +1110,6 @@ of the repositories listed at cf. <20161208142401.1329-1-szeder.dev@gmail.com> -* jc/pull-rebase-ff (2016-11-29) 1 commit - (merged to 'next' on 2016-12-16 at c1a0cedd9e) - + pull: fast-forward "pull --rebase=true" - - "git pull --rebase", when there is no new commits on our side since - we forked from the upstream, should be able to fast-forward without - invoking "git rebase", but it didn't. - - Will merge to 'master'. - - * jc/merge-drop-old-syntax (2015-04-29) 1 commit (merged to 'next' on 2016-12-05 at 041946dae0) + merge: drop 'git merge HEAD ' syntax