From: Junio C Hamano Date: Tue, 31 Jan 2017 22:00:16 +0000 (-0800) Subject: What's cooking (2017/01 #06) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=677358c8285b58a5e8499d6ecbdb5b00849598bf;p=thirdparty%2Fgit.git What's cooking (2017/01 #06) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index ee25932592..7c867be683 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 (Jan 2017, #05; Thu, 26) -X-master-at: 4e59582ff70d299f5a88449891e78d15b4b3fabe -X-next-at: 5f4715cea687c4077e2acd25706e1369a5cb338e +Subject: What's cooking in git.git (Jan 2017, #06; Tue, 31) +X-master-at: 8f60064c1f538f06e1c579cbd9840b86b10bcd3d +X-next-at: d13081a61a6c1d42f310f616f74992dc2def6583 -What's cooking in git.git (Jan 2017, #05; Thu, 26) +What's cooking in git.git (Jan 2017, #06; Tue, 31) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,129 +12,385 @@ 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. +Two biggies from Dscho are now in 'master'. Another thanks goes to +him for pointing out that I had a wrong version of isatty() fix +earlier in 'maint' and 'master', which is now fixed by merging the +updated one in both of these branches. Please give the tip of +'maint' a quick look, as I want to tag and push out 2.11.1 later +this week, probably at the same time as 2.12-rc0 goes out. + You can find the changes described here in the integration branches of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html +-------------------------------------------------- +[Graduated to "master"] + +* bw/push-submodule-only (2016-12-20) 3 commits + (merged to 'next' on 2017-01-23 at d6cd1c60ae) + + push: add option to push only submodules + + submodules: add RECURSE_SUBMODULES_ONLY value + + transport: reformat flag #defines to be more readable + + "git submodule push" learned "--recurse-submodules=only option to + push submodules out without pushing the top-level superproject. + + +* jk/clear-delta-base-cache-fix (2017-01-19) 1 commit + (merged to 'next' on 2017-01-23 at 5f4af2b0a5) + + clear_delta_base_cache(): don't modify hashmap while iterating + + A crashing bug introduced in v2.11 timeframe has been found (it is + triggerable only in fast-import) and fixed. + + +* jk/coding-guidelines-update (2017-01-17) 1 commit + (merged to 'next' on 2017-01-23 at 8c57afa288) + + CodingGuidelines: clarify multi-line brace style + + Developer doc update. + + +* jk/fsck-connectivity-check-fix (2017-01-26) 9 commits + (merged to 'next' on 2017-01-26 at dd03f7a17f) + + fsck: lazily load types under --connectivity-only + + fsck: move typename() printing to its own function + (merged to 'next' on 2017-01-25 at f3d7d93785) + + t1450: use "mv -f" within loose object directory + (merged to 'next' on 2017-01-23 at e8e9b76b84) + + fsck: check HAS_OBJ more consistently + + fsck: do not fallback "git fsck " to "git fsck" + + fsck: tighten error-checks of "git fsck " + + fsck: prepare dummy objects for --connectivity-check + + fsck: report trees as dangling + + t1450: clean up sub-objects in duplicate-entry test + + "git fsck --connectivity-check" was not working at all. + + +* jk/loose-object-fsck (2017-01-15) 6 commits + (merged to 'next' on 2017-01-23 at 4302ad090d) + + fsck: detect trailing garbage in all object types + + fsck: parse loose object paths directly + + sha1_file: add read_loose_object() function + + t1450: test fsck of packed objects + + sha1_file: fix error message for alternate objects + + t1450: refactor loose-object removal + + "git fsck" inspects loose objects more carefully now. + + +* jk/vreport-sanitize (2017-01-11) 2 commits + (merged to 'next' on 2017-01-18 at 4bbf370981) + + vreport: sanitize ASCII control chars + + Revert "vreportf: avoid intermediate buffer" + + An error message with an ASCII control character like '\r' in it + can alter the message to hide its early part, which is problematic + when a remote side gives such an error message that the local side + will relay with a "remote: " prefix. + + +* js/difftool-builtin (2017-01-25) 4 commits + (merged to 'next' on 2017-01-25 at 87d2a0976a) + + difftool: hack around -Wzero-length-format warning + (merged to 'next' on 2017-01-23 at 6f4810dbd9) + + difftool: retire the scripted version + + difftool: implement the functionality in the builtin + + difftool: add a skeleton for the upcoming builtin + + Rewrite a scripted porcelain "git difftool" in C. + + +* js/exec-path-coverity-workaround (2017-01-09) 2 commits + (merged to 'next' on 2017-01-23 at bf5dfbf860) + + git_exec_path: do not return the result of getenv() + + git_exec_path: avoid Coverity warning about unfree()d result + + Code cleanup. + Split out of another topic. + + +* js/mingw-isatty (2017-01-18) 1 commit + (merged to 'next' on 2017-01-23 at ae0f80e058) + + mingw: follow-up to "replace isatty() hack" + + An update to a topic that is already in 'master'. + + +* js/remote-rename-with-half-configured-remote (2017-01-19) 2 commits + (merged to 'next' on 2017-01-23 at a1b655dbac) + + remote rename: more carefully determine whether a remote is configured + + remote rename: demonstrate a bogus "remote exists" bug + + With anticipatory tweaking for remotes defined in ~/.gitconfig + (e.g. "remote.origin.prune" set to true, even though there may or + may not actually be "origin" remote defined in a particular Git + repository), "git remote rename" and other commands misinterpreted + and behaved as if such a non-existing remote actually existed. + + +* js/sequencer-i-countdown-3 (2017-01-17) 38 commits + (merged to 'next' on 2017-01-23 at 251dd15139) + + 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 + + sequencer: use run_command() directly + + sequencer: update reading author-script + + 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' + + sequencer: use a helper to find the commit message + + sequencer: move "else" keyword onto the same line as preceding brace + + sequencer: avoid unnecessary curly braces + + The sequencer machinery has been further enhanced so that a later + set of patches can start using it to reimplement "rebase -i". + I think I've said everything that needs to be said on this topic. + + +* ls/travis-p4-on-macos (2017-01-23) 1 commit + (merged to 'next' on 2017-01-23 at 2d51987faa) + + travis-ci: fix Perforce install on macOS + + Update the definition of the MacOSX test environment used by + TravisCI. + + +* rs/qsort-s (2017-01-23) 5 commits + (merged to 'next' on 2017-01-23 at 7e2813848b) + + ref-filter: use QSORT_S in ref_array_sort() + + string-list: use QSORT_S in string_list_sort() + + perf: add basic sort performance test + + add QSORT_S + + compat: add qsort_s() + + A few codepaths had to rely on a global variable when sorting + elements of an array because sort(3) API does not allow extra data + to be passed to the comparison function. Use qsort_s() when + natively available, and a fallback implementation of it when not, + to eliminate the need, which is a prerequisite for making the + codepath reentrant. + + +* sb/in-core-index-doc (2017-01-19) 4 commits + (merged to 'next' on 2017-01-23 at 30224463e8) + + documentation: retire unfinished documentation + + cache.h: document add_[file_]to_index + + cache.h: document remove_index_entry_at + + cache.h: document index_name_pos + + Documentation and in-code comments updates. + + +* sb/retire-convert-objects-from-contrib (2017-01-19) 1 commit + (merged to 'next' on 2017-01-23 at decc1e237d) + + contrib: remove git-convert-objects + + Remove an ancient tool left in contrib/. + + +* st/verify-tag (2017-01-18) 6 commits + (merged to 'next' on 2017-01-23 at 2810959427) + + t/t7004-tag: Add --format specifier tests + + t/t7030-verify-tag: Add --format specifier tests + + builtin/tag: add --format argument for tag -v + + builtin/verify-tag: add --format to verify-tag + + ref-filter: add function to print single ref_array_item + + gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag + + "git tag" and "git verify-tag" learned to put GPG verification + status in their "--format=" output format. + + +* vp/show-ref-verify-head (2017-01-23) 6 commits + (merged to 'next' on 2017-01-23 at af6dd9d239) + + show-ref: remove a stale comment + + show-ref: remove dead `if (verify)' check + + show-ref: detect dangling refs under --verify as well + + show-ref: move --quiet handling into show_one() + + show-ref: allow -d to work with --verify + + show-ref: accept HEAD with --verify + + "git show-ref HEAD" used with "--verify" because the user is not + interested in seeing refs/remotes/origin/HEAD, and used with + "--head" because the user does not want HEAD to be filtered out, + i.e. "git show-ref --head --verify HEAD", did not work as expected. + -------------------------------------------------- [New Topics] -* js/mingw-hooks-with-exe-suffix (2017-01-26) 1 commit - - mingw: allow hooks to be .exe files +* cw/doc-sign-off (2017-01-27) 1 commit + - doc: clarify distinction between sign-off and pgp-signing - Names of the various hook scripts must be spelled exactly, but on - Windows, an .exe binary must be named with .exe suffix; notice - $GIT_DIR/hooks/.exe as a valid hook. + Doc update. Will merge to 'next'. -* js/retire-relink (2017-01-25) 2 commits - - relink: really remove the command - - relink: retire the command +* jk/delta-chain-limit (2017-01-27) 2 commits + - pack-objects: convert recursion to iteration in break_delta_chain() + - pack-objects: enforce --depth limit in reused deltas - Cruft removal. + "git repack --depth=" for a long time busted the specified depth + when reusing delta from existing packs. This has been corrected. Will merge to 'next'. -* js/status-pre-rebase-i (2017-01-26) 1 commit - - status: be prepared for not-yet-started interactive rebase +* js/re-running-failed-tests (2017-01-27) 1 commit + - t/Makefile: add a rule to re-run previously-failed tests - After starting "git rebase -i", which first opens the user's editor - to edit the series of patches to apply, but before saving the - contents of that file, "git status" failed to show the current - state (i.e. you are in an interactive rebase session, but you have - applied no steps yet) correctly. + "make -C t failed" will now run only the tests that failed in the + previous run. This is usable only when prove is not use, and gives + a useless error message when run after "make clean". Will merge to 'next'. -* ps/urlmatch-wildcard (2017-01-26) 5 commits - - SQUASH??? - - urlmatch: allow globbing for the URL host part - - urlmatch: split host and port fields in `struct url_info` - - urlmatch: enable normalization of URLs with globs - - mailmap: add Patrick Steinhardt's work address +* js/unzip-in-usr-bin-workaround (2017-01-27) 1 commit + - test-lib: on FreeBSD, look for unzip(1) in /usr/local/bin/ - The part in "http.." configuration variable - can now be spelled with '*' that serves as wildcard. - E.g. "http.https://*.example.com.proxy" can be used to specify the - proxy used for https://a.example.com, https://b.example.com, etc., - i.e. any host in the example.com domain. + Test tweak for FreeBSD where /usr/bin/unzip is unsuitable to run + our tests but /usr/local/bin/unzip is usable. + Will merge to 'next'. -* rs/absolute-pathdup (2017-01-26) 2 commits - - use absolute_pathdup() - - abspath: add absolute_pathdup() - Code cleanup. +* gv/mingw-p4-mapuser (2017-01-30) 1 commit + - git-p4: fix git-p4.mapUser on Windows + + "git p4" did not work well with multiple git-p4.mapUser entries on + Windows. Will merge to 'next'. -* sb/submodule-recursive-absorb (2017-01-26) 3 commits - - submodule absorbing: fix worktree/gitdir pointers recursively for non-moves - - cache.h: expose the dying procedure for reading gitlinks - - setup: add gentle version of resolve_git_dir +* hv/mingw-help-is-executable (2017-01-30) 1 commit + - help: improve is_executable() on Windows - When a submodule "sub", which has another submodule "module" nested - within it, is "absorbed" into the top-level superproject, the inner - submodule "module" is left in a strange state. + "git help" enumerates executable files in $PATH; the implementation + of "is this file executable?" on Windows has been optimized. Will merge to 'next'. -* sb/submodule-update-initial-runs-custom-script (2017-01-26) 1 commit - - submodule update: run custom update script for initial populating as well +* cw/log-updates-for-all-refs-really (2017-01-31) 3 commits + - update-ref: add test cases for bare repository + - refs: add option core.logAllRefUpdates = always + - config: add markup to core.logAllRefUpdates doc - The user can specify a custom update method that is run when - "submodule update" updates an already checked out submodule. This - was ignored when checking the submodule out for the first time and - we instead always just checked out the commit that is bound to the - path in the superproject's index. + The "core.logAllRefUpdates" that used to be boolean has been + enhanced to take 'always' as well, to record ref updates to refs + other than the ones that are expected to be updated (i.e. branches, + remote-tracking branches and notes). Will merge to 'next'. -* sf/putty-w-args (2017-01-26) 3 commits - - connect: support GIT_SSH_VARIANT and ssh.variant - - connect: rename tortoiseplink and putty variables - - connect: handle putty/plink also in GIT_SSH_COMMAND +* mm/merge-rename-delete-message (2017-01-30) 1 commit + - merge-recursive: make "CONFLICT (rename/delete)" message show both paths - The command line options for ssh invocation needs to be tweaked for - some implementations of SSH (e.g. PuTTY plink wants "-P " - while OpenSSH wants "-p " to specify port to connect to), and - the variant was guessed when GIT_SSH environment variable is used - to specify it. Extend the guess to the command specified by the - newer GIT_SSH_COMMAND and also core.sshcommand configuration - variable, and give an escape hatch for users to deal with - misdetected cases. - Expecting a reroll of the last step. +* mm/reset-facl-before-umask-test (2017-01-30) 1 commit + - t0001: don't let a default ACL interfere with the umask test --------------------------------------------------- -[Stalled] + Test tweaks for those who have default ACL in their git source tree + that interfere with the umask test. -* 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 + Will merge to 'next'. - "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. +* rs/object-id (2017-01-30) 3 commits + - checkout: convert post_checkout_hook() to struct object_id + - use oidcpy() for copying hashes between instances of struct object_id + - use oid_to_hex_r() for converting struct object_id hashes to hex strings - Will discard. + "uchar [40]" to "struct object_id" conversion continues. + + Will merge to 'next'. + + +* rs/swap (2017-01-30) 5 commits + - graph: use SWAP macro + - diff: use SWAP macro + - use SWAP macro + - apply: use SWAP macro + - add SWAP macro + + Code clean-up. + + Will merge to 'next'. + + +* pl/complete-diff-submodule-diff (2017-01-30) 1 commit + - Completion: Add support for --submodule=diff + + The command line completion (in contrib/) learned that + "git diff --submodule=" can take "diff" as a recently added option. + + Will merge to 'next'. + + +* rs/receive-pack-cleanup (2017-01-30) 1 commit + - receive-pack: call string_list_clear() unconditionally + + Code clean-up. + + Will merge to 'next'. + + +* sb/submodule-add-force (2016-11-29) 1 commit + + submodule add: extend force flag to add existing repos + (this branch is used by sb/push-make-submodule-check-the-default.) + + "git submodule add" used to be confused and refused to add a + locally created repository; users can now use "--force" option + to add them. + + Will merge to 'next'. -------------------------------------------------- -[Cooking] +[Stalled] + +* 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. + + Will be rerolled. + cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com> + * sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits - grep: use '/' delimiter for paths @@ -156,172 +412,177 @@ of the repositories listed at Waiting for the review discussion to settle, followed by a reroll. -* vp/show-ref-verify-head (2017-01-23) 6 commits - (merged to 'next' on 2017-01-23 at af6dd9d239) - + show-ref: remove a stale comment - + show-ref: remove dead `if (verify)' check - + show-ref: detect dangling refs under --verify as well - + show-ref: move --quiet handling into show_one() - + show-ref: allow -d to work with --verify - + show-ref: accept HEAD with --verify +* mh/ref-remove-empty-directory (2017-01-07) 23 commits + - files_transaction_commit(): clean up empty directories + - try_remove_empty_parents(): teach to remove parents of reflogs, too + - try_remove_empty_parents(): don't trash argument contents + - try_remove_empty_parents(): rename parameter "name" -> "refname" + - delete_ref_loose(): inline function + - delete_ref_loose(): derive loose reference path from lock + - log_ref_write_1(): inline function + - log_ref_setup(): manage the name of the reflog file internally + - log_ref_write_1(): don't depend on logfile argument + - log_ref_setup(): pass the open file descriptor back to the caller + - log_ref_setup(): improve robustness against races + - log_ref_setup(): separate code for create vs non-create + - log_ref_write(): inline function + - rename_tmp_log(): improve error reporting + - rename_tmp_log(): use raceproof_create_file() + - lock_ref_sha1_basic(): use raceproof_create_file() + - lock_ref_sha1_basic(): inline constant + - raceproof_create_file(): new function + - safe_create_leading_directories(): set errno on SCLD_EXISTS + - safe_create_leading_directories_const(): preserve errno + - t5505: use "for-each-ref" to test for the non-existence of references + - refname_is_safe(): correct docstring + - files_rename_ref(): tidy up whitespace - "git show-ref HEAD" used with "--verify" because the user is not - interested in seeing refs/remotes/origin/HEAD, and used with - "--head" because the user does not want HEAD to be filtered out, - i.e. "git show-ref --head --verify HEAD", did not work as expected. + Deletion of a branch "foo/bar" could remove .git/refs/heads/foo + once there no longer is any other branch whose name begins with + "foo/", but we didn't do so so far. Now we do. - Will merge to 'master'. + Expecting a reroll. + cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu> -* bc/use-asciidoctor-opt (2017-01-26) 9 commits - - SQUASH??? - - Documentation: implement linkgit macro for Asciidoctor - - Makefile: add a knob to enable the use of Asciidoctor - - Documentation: move dblatex arguments into variable - - Documentation: add XSLT to fix DocBook for Texinfo - - Documentation: sort sources for gitman.texi - - Documentation: remove unneeded argument in cat-texi.perl - - Documentation: modernize cat-texi.perl - - Documentation: fix warning in cat-texi.perl +* 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 - Asciidoctor, an alternative reimplementation of AsciiDoc, still - needs some changes to work with documents meant to be formatted - with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of - the box to document our pages is getting closer to reality. + "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. -* ls/travis-p4-on-macos (2017-01-23) 1 commit - (merged to 'next' on 2017-01-23 at 2d51987faa) - + travis-ci: fix Perforce install on macOS + Will discard. - Update the definition of the MacOSX test environment used by - TravisCI. +-------------------------------------------------- +[Cooking] - Will merge to 'master'. +* js/mingw-hooks-with-exe-suffix (2017-01-30) 1 commit + - mingw: allow hooks to be .exe files + Names of the various hook scripts must be spelled exactly, but on + Windows, an .exe binary must be named with .exe suffix; notice + $GIT_DIR/hooks/.exe as a valid hook. -* rs/qsort-s (2017-01-23) 5 commits - (merged to 'next' on 2017-01-23 at 7e2813848b) - + ref-filter: use QSORT_S in ref_array_sort() - + string-list: use QSORT_S in string_list_sort() - + perf: add basic sort performance test - + add QSORT_S - + compat: add qsort_s() + Will merge to 'next'. - A few codepaths had to rely on a global variable when sorting - elements of an array because sort(3) API does not allow extra data - to be passed to the comparison function. Use qsort_s() when - natively available, and a fallback implementation of it when not, - to eliminate the need, which is a prerequisite for making the - codepath reentrant. - Will merge to 'master'. +* js/retire-relink (2017-01-25) 2 commits + - relink: really remove the command + - relink: retire the command + Cruft removal. -* jk/coding-guidelines-update (2017-01-17) 1 commit - (merged to 'next' on 2017-01-23 at 8c57afa288) - + CodingGuidelines: clarify multi-line brace style + Will merge to 'next'. - Developer doc update. + +* js/status-pre-rebase-i (2017-01-26) 1 commit + (merged to 'next' on 2017-01-31 at 09e51b2e39) + + status: be prepared for not-yet-started interactive rebase + + After starting "git rebase -i", which first opens the user's editor + to edit the series of patches to apply, but before saving the + contents of that file, "git status" failed to show the current + state (i.e. you are in an interactive rebase session, but you have + applied no steps yet) correctly. Will merge to 'master'. -* jk/fsck-connectivity-check-fix (2017-01-26) 9 commits - (merged to 'next' on 2017-01-26 at dd03f7a17f) - + fsck: lazily load types under --connectivity-only - + fsck: move typename() printing to its own function - (merged to 'next' on 2017-01-25 at f3d7d93785) - + t1450: use "mv -f" within loose object directory - (merged to 'next' on 2017-01-23 at e8e9b76b84) - + fsck: check HAS_OBJ more consistently - + fsck: do not fallback "git fsck " to "git fsck" - + fsck: tighten error-checks of "git fsck " - + fsck: prepare dummy objects for --connectivity-check - + fsck: report trees as dangling - + t1450: clean up sub-objects in duplicate-entry test +* ps/urlmatch-wildcard (2017-01-31) 5 commits + . urlmatch: allow globbing for the URL host part + . urlmatch: include host in urlmatch ranking + . urlmatch: split host and port fields in `struct url_info` + . urlmatch: enable normalization of URLs with globs + . mailmap: add Patrick Steinhardt's work address - "git fsck --connectivity-check" was not working at all. + The part in "http.." configuration variable + can now be spelled with '*' that serves as wildcard. + E.g. "http.https://*.example.com.proxy" can be used to specify the + proxy used for https://a.example.com, https://b.example.com, etc., + i.e. any host in the example.com domain. - Will merge to 'master'. + With the update it still seems to fail the same t5551#31 + cf. -* js/exec-path-coverity-workaround (2017-01-09) 2 commits - (merged to 'next' on 2017-01-23 at bf5dfbf860) - + git_exec_path: do not return the result of getenv() - + git_exec_path: avoid Coverity warning about unfree()d result +* rs/absolute-pathdup (2017-01-27) 2 commits + (merged to 'next' on 2017-01-31 at f751f64876) + + use absolute_pathdup() + + abspath: add absolute_pathdup() Code cleanup. Will merge to 'master'. - Split out of another topic. -* js/mingw-isatty (2017-01-18) 1 commit - (merged to 'next' on 2017-01-23 at ae0f80e058) - + mingw: follow-up to "replace isatty() hack" +* sb/submodule-recursive-absorb (2017-01-26) 3 commits + (merged to 'next' on 2017-01-31 at 0a24cfd06b) + + submodule absorbing: fix worktree/gitdir pointers recursively for non-moves + + cache.h: expose the dying procedure for reading gitlinks + + setup: add gentle version of resolve_git_dir - An update to a topic that is already in 'master'. + When a submodule "sub", which has another submodule "module" nested + within it, is "absorbed" into the top-level superproject, the inner + submodule "module" is left in a strange state. Will merge to 'master'. -* js/sequencer-i-countdown-3 (2017-01-17) 38 commits - (merged to 'next' on 2017-01-23 at 251dd15139) - + 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 - + sequencer: use run_command() directly - + sequencer: update reading author-script - + 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' - + sequencer: use a helper to find the commit message - + sequencer: move "else" keyword onto the same line as preceding brace - + sequencer: avoid unnecessary curly braces +* sb/submodule-update-initial-runs-custom-script (2017-01-26) 1 commit + (merged to 'next' on 2017-01-31 at d794f894c6) + + submodule update: run custom update script for initial populating as well - The sequencer machinery has been further enhanced so that a later - set of patches can start using it to reimplement "rebase -i". + The user can specify a custom update method that is run when + "submodule update" updates an already checked out submodule. This + was ignored when checking the submodule out for the first time and + we instead always just checked out the commit that is bound to the + path in the superproject's index. Will merge to 'master'. - I think I've said everything that needs to be said on this topic. -* jk/clear-delta-base-cache-fix (2017-01-19) 1 commit - (merged to 'next' on 2017-01-23 at 5f4af2b0a5) - + clear_delta_base_cache(): don't modify hashmap while iterating +* sf/putty-w-args (2017-01-26) 3 commits + - connect: support GIT_SSH_VARIANT and ssh.variant + - connect: rename tortoiseplink and putty variables + - connect: handle putty/plink also in GIT_SSH_COMMAND - A crashing bug introduced in v2.11 timeframe has been found (it is - triggerable only in fast-import) and fixed. + The command line options for ssh invocation needs to be tweaked for + some implementations of SSH (e.g. PuTTY plink wants "-P " + while OpenSSH wants "-p " to specify port to connect to), and + the variant was guessed when GIT_SSH environment variable is used + to specify it. Extend the guess to the command specified by the + newer GIT_SSH_COMMAND and also core.sshcommand configuration + variable, and give an escape hatch for users to deal with + misdetected cases. - Will merge to 'master'. + Expecting a reroll of the last step to plug new memory leak. + cf. + + +* bc/use-asciidoctor-opt (2017-01-31) 8 commits + - Documentation: implement linkgit macro for Asciidoctor + - Makefile: add a knob to enable the use of Asciidoctor + - Documentation: move dblatex arguments into variable + - Documentation: add XSLT to fix DocBook for Texinfo + - Documentation: sort sources for gitman.texi + - Documentation: remove unneeded argument in cat-texi.perl + - Documentation: modernize cat-texi.perl + - Documentation: fix warning in cat-texi.perl + + Asciidoctor, an alternative reimplementation of AsciiDoc, still + needs some changes to work with documents meant to be formatted + with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of + the box to document our pages is getting closer to reality. + + Will merge to 'next'. * jk/describe-omit-some-refs (2017-01-23) 5 commits @@ -337,78 +598,30 @@ of the repositories listed at naming output on, and also learned to take negative patterns to name refs not to be used for naming via their "--exclude" option. - Will merge to 'next'. - - -* js/remote-rename-with-half-configured-remote (2017-01-19) 2 commits - (merged to 'next' on 2017-01-23 at a1b655dbac) - + remote rename: more carefully determine whether a remote is configured - + remote rename: demonstrate a bogus "remote exists" bug - - With anticipatory tweaking for remotes defined in ~/.gitconfig - (e.g. "remote.origin.prune" set to true, even though there may or - may not actually be "origin" remote defined in a particular Git - repository), "git remote rename" and other commands misinterpreted - and behaved as if such a non-existing remote actually existed. - - Will merge to 'master'. - - -* sb/in-core-index-doc (2017-01-19) 4 commits - (merged to 'next' on 2017-01-23 at 30224463e8) - + documentation: retire unfinished documentation - + cache.h: document add_[file_]to_index - + cache.h: document remove_index_entry_at - + cache.h: document index_name_pos - - Documentation and in-code comments updates. - - Will merge to 'master'. - - -* sb/retire-convert-objects-from-contrib (2017-01-19) 1 commit - (merged to 'next' on 2017-01-23 at decc1e237d) - + contrib: remove git-convert-objects - - Remove an ancient tool left in contrib/. - - Will merge to 'master'. + Will cook in 'next'. -* ep/commit-static-buf-cleanup (2017-01-13) 2 commits - - builtin/commit.c: switch to xstrfmt(), instead of snprintf() - - builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation +* ep/commit-static-buf-cleanup (2017-01-31) 2 commits + (merged to 'next' on 2017-01-31 at 02d3c25219) + + builtin/commit.c: switch to strbuf, instead of snprintf() + + builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation Code clean-up. - Expecting a reroll. - The tip one would instead be done with strbuf. - cf. - - -* jk/vreport-sanitize (2017-01-11) 2 commits - (merged to 'next' on 2017-01-18 at 4bbf370981) - + vreport: sanitize ASCII control chars - + Revert "vreportf: avoid intermediate buffer" - - An error message with an ASCII control character like '\r' in it - can alter the message to hide its early part, which is problematic - when a remote side gives such an error message that the local side - will relay with a "remote: " prefix. - Will merge to 'master'. * sb/unpack-trees-super-prefix (2017-01-25) 4 commits - - unpack-trees: support super-prefix option - - t1001: modernize style - - t1000: modernize style - - read-tree: use OPT_BOOL instead of OPT_SET_INT + (merged to 'next' on 2017-01-31 at dabe6ca2b1) + + unpack-trees: support super-prefix option + + t1001: modernize style + + t1000: modernize style + + read-tree: use OPT_BOOL instead of OPT_SET_INT "git read-tree" and its underlying unpack_trees() machinery learned to report problematic paths prefixed with the --super-prefix option. - Will merge to 'next'. + Will merge to 'master'. * sb/submodule-doc (2017-01-12) 3 commits @@ -454,20 +667,6 @@ of the repositories listed at Expecting a reroll. -* jk/loose-object-fsck (2017-01-15) 6 commits - (merged to 'next' on 2017-01-23 at 4302ad090d) - + fsck: detect trailing garbage in all object types - + fsck: parse loose object paths directly - + sha1_file: add read_loose_object() function - + t1450: test fsck of packed objects - + sha1_file: fix error message for alternate objects - + t1450: refactor loose-object removal - - "git fsck" inspects loose objects more carefully now. - - Will merge to 'master'. - - * vn/xdiff-func-context (2017-01-15) 1 commit - xdiff -W: relax end-of-file function detection @@ -480,46 +679,14 @@ of the repositories listed at being discussed. -* mh/ref-remove-empty-directory (2017-01-07) 23 commits - - files_transaction_commit(): clean up empty directories - - try_remove_empty_parents(): teach to remove parents of reflogs, too - - try_remove_empty_parents(): don't trash argument contents - - try_remove_empty_parents(): rename parameter "name" -> "refname" - - delete_ref_loose(): inline function - - delete_ref_loose(): derive loose reference path from lock - - log_ref_write_1(): inline function - - log_ref_setup(): manage the name of the reflog file internally - - log_ref_write_1(): don't depend on logfile argument - - log_ref_setup(): pass the open file descriptor back to the caller - - log_ref_setup(): improve robustness against races - - log_ref_setup(): separate code for create vs non-create - - log_ref_write(): inline function - - rename_tmp_log(): improve error reporting - - rename_tmp_log(): use raceproof_create_file() - - lock_ref_sha1_basic(): use raceproof_create_file() - - lock_ref_sha1_basic(): inline constant - - raceproof_create_file(): new function - - safe_create_leading_directories(): set errno on SCLD_EXISTS - - safe_create_leading_directories_const(): preserve errno - - t5505: use "for-each-ref" to test for the non-existence of references - - refname_is_safe(): correct docstring - - files_rename_ref(): tidy up whitespace - - Deletion of a branch "foo/bar" could remove .git/refs/heads/foo - once there no longer is any other branch whose name begins with - "foo/", but we didn't do so so far. Now we do. - - Expecting a reroll. - cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu> - - * ls/filter-process-delayed (2017-01-08) 1 commit . convert: add "status=delayed" to filter process protocol Ejected, as does not build when merged to 'pu'. -* nd/worktree-move (2017-01-09) 6 commits +* nd/worktree-move (2017-01-27) 7 commits + - fixup! worktree move: new command - worktree remove: new command - worktree move: refuse to move worktrees with submodules - worktree move: accept destination as directory @@ -542,7 +709,8 @@ of the repositories listed at rather limiting. A mechanism to customize the set of colors has been introduced. - Will merge to 'next'. + Reported to break "add -p". + cf. <20170128040709.tqx4u45ktgpkbfm4@sigill.intra.peff.net> * cc/split-index-config (2016-12-26) 21 commits @@ -576,58 +744,20 @@ of the repositories listed at cf. -* bw/push-submodule-only (2016-12-20) 3 commits - (merged to 'next' on 2017-01-23 at d6cd1c60ae) - + push: add option to push only submodules - + submodules: add RECURSE_SUBMODULES_ONLY value - + transport: reformat flag #defines to be more readable - - "git submodule push" learned "--recurse-submodules=only option to - push submodules out without pushing the top-level superproject. - - Will merge to 'master'. - - -* 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. - - Will be rerolled. - cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com> - - -* js/difftool-builtin (2017-01-25) 4 commits - (merged to 'next' on 2017-01-25 at 87d2a0976a) - + difftool: hack around -Wzero-length-format warning - (merged to 'next' on 2017-01-23 at 6f4810dbd9) - + difftool: retire the scripted version - + difftool: implement the functionality in the builtin - + difftool: add a skeleton for the upcoming builtin - - Rewrite a scripted porcelain "git difftool" in C. - - Will merge to 'master'. - - -* sb/push-make-submodule-check-the-default (2017-01-26) 3 commits +* sb/push-make-submodule-check-the-default (2017-01-26) 2 commits (merged to 'next' on 2017-01-26 at 5f4715cea6) + Revert "push: change submodule default to check when submodules exist" (merged to 'next' on 2016-12-12 at 1863e05af5) + push: change submodule default to check when submodules exist - + submodule add: extend force flag to add existing repos + (this branch uses sb/submodule-add-force.) Turn the default of "push.recurseSubmodules" to "check" when submodules seem to be in use. - I'll probably remove the tip-two commits and advance the bottom one - separately. + Retracted. -* kn/ref-filter-branch-list (2017-01-10) 21 commits - - SQUASH??? +* kn/ref-filter-branch-list (2017-01-31) 20 commits - branch: implement '--format' option - branch: use ref-filter printing APIs - branch, tag: use porcelain output @@ -652,8 +782,7 @@ of the repositories listed at The code to list branches in "git branch" has been consolidated with the more generic ref-filter API. - I think this is almost ready. Will wait for a few days, squash - fixes in if needed and merge to 'next'. + Will merge to 'next'. * jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit @@ -706,21 +835,6 @@ of the repositories listed at cf. -* st/verify-tag (2017-01-18) 6 commits - (merged to 'next' on 2017-01-23 at 2810959427) - + t/t7004-tag: Add --format specifier tests - + t/t7030-verify-tag: Add --format specifier tests - + builtin/tag: add --format argument for tag -v - + builtin/verify-tag: add --format to verify-tag - + ref-filter: add function to print single ref_array_item - + gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag - - "git tag" and "git verify-tag" learned to put GPG verification - status in their "--format=" output format. - - 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