To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Nov 2017, #05; Fri, 17)
-X-master-at: 89ea799ffcc5c8a0547d3c9075eb979256ee95b8
-X-next-at: f926f18f3dda0c52e794b2de0911f1b046c7dadf
+Subject: What's cooking in git.git (Nov 2017, #06; Tue, 21)
+X-master-at: 14c63a9dc093d6738454f6369a4f5663ca732cf7
+X-next-at: 466bffb3ac3fb7c740a2ea1485c5f69af6b40864
-What's cooking in git.git (Nov 2017, #05; Fri, 17)
+What's cooking in git.git (Nov 2017, #06; Tue, 21)
--------------------------------------------------
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.
+Quite a few "fixes" have been accumulated on 'master' and already
+merged to 'maint' in preparation for 2.15.1; perhaps we can tag it
+near the end of the month--no fix in the mix is an ultra urgent one.
+
You can find the changes described here in the integration branches
of the repositories listed at
--------------------------------------------------
[Graduated to "master"]
-* ab/mediawiki-name-truncation (2017-11-01) 1 commit
- (merged to 'next' on 2017-11-07 at b30233d585)
- + remote-mediawiki: limit filenames to legal
-
- The remote-helper for talking to MediaWiki has been updated to
- truncate an overlong pagename so that ".mw" suffix can still be
- added.
-
-
-* ab/mediawiki-namespace (2017-11-08) 7 commits
- (merged to 'next' on 2017-11-10 at 1cf9cfdfbc)
- + remote-mediawiki: show progress while fetching namespaces
- + remote-mediawiki: process namespaces in order
- + remote-mediawiki: support fetching from (Main) namespace
- + remote-mediawiki: skip virtual namespaces
- + remote-mediawiki: show known namespace choices on failure
- + remote-mediawiki: allow fetching namespaces with spaces
- + remote-mediawiki: add namespace support
-
- The remote-helper for talking to MediaWiki has been updated to
- work with mediawiki namespaces.
-
-
-* ab/pcre-v2 (2017-11-13) 1 commit
- (merged to 'next' on 2017-11-13 at 66bf57f071)
- + grep: fix NO_LIBPCRE1_JIT to fully disable JIT
-
- Building with NO_LIBPCRE1_JIT did not disable it, which has been fixed.
-
-
-* ad/rebase-i-serie-typofix (2017-11-09) 1 commit
- (merged to 'next' on 2017-11-13 at 199e79b29e)
- + rebase -i: fix comment typo
-
- Typofix.
-
-
-* ao/merge-verbosity-getenv-just-once (2017-11-01) 1 commit
- (merged to 'next' on 2017-11-09 at e7cfb8dcec)
- + merge-recursive: check GIT_MERGE_VERBOSITY only once
-
- Code cleanup.
-
-
-* bc/submitting-patches-in-asciidoc (2017-11-13) 2 commits
- (merged to 'next' on 2017-11-13 at 70f65b981a)
- + Documentation: convert SubmittingPatches to AsciiDoc
- + Documentation: enable compat-mode for Asciidoctor
-
- The SubmittingPatches document has been converted to produce an
- HTML version via AsciiDoc/Asciidoctor.
-
-
-* bp/read-index-from-skip-verification (2017-11-08) 1 commit
- (merged to 'next' on 2017-11-10 at 3c3e32f1ed)
- + read_index_from(): speed index loading by skipping verification of the entry order
-
- Drop (perhaps overly cautious) sanity check before using the index
- read from the filesystem at runtime.
-
-
-* bw/rebase-i-ignored-submodule-fix (2017-11-07) 1 commit
- (merged to 'next' on 2017-11-10 at a0a54103ed)
- + wt-status: actually ignore submodules when requested
-
- "git rebase -i" recently started misbehaving when a submodule that
- is configured with 'submodule.<name>.ignore' is dirty; this has
- been corrected.
-
-
-* cb/t4201-robustify (2017-11-13) 1 commit
- (merged to 'next' on 2017-11-13 at b83957b8f2)
- + t4201: make use of abbreviation in the test more robust
-
- A test update.
-
-
-* cc/git-packet-pm (2017-11-07) 8 commits
- (merged to 'next' on 2017-11-10 at b40bc2c0bb)
- + Git/Packet.pm: extract parts of t0021/rot13-filter.pl for reuse
- + t0021/rot13-filter: add capability functions
- + t0021/rot13-filter: refactor checking final lf
- + t0021/rot13-filter: add packet_initialize()
- + t0021/rot13-filter: improve error message
- + t0021/rot13-filter: improve 'if .. elsif .. else' style
- + t0021/rot13-filter: refactor packet reading functions
- + t0021/rot13-filter: fix list comparison
-
- Parts of a test to drive the long-running content filter interface
- has been split into its own module, hopefully to eventually become
- reusable.
-
-
-* jk/info-alternates-fix (2017-11-13) 1 commit
- (merged to 'next' on 2017-11-13 at ac84a7580a)
- + link_alt_odb_entries: make empty input a noop
-
- We used to add an empty alternate object database to the system
- that does not help anything; it has been corrected.
-
-
-* js/for-each-ref-remote-name-and-ref (2017-11-08) 3 commits
- (merged to 'next' on 2017-11-10 at 254af5d602)
- + for-each-ref: test :remotename and :remoteref
- + for-each-ref: let upstream/push report the remote ref name
- + for-each-ref: let upstream/push optionally report the remote name
-
- The "--format=..." option "git for-each-ref" takes learned to show
- the name of the 'remote' repository and the ref at the remote side
- that is affected for 'upstream' and 'push' via "%(push:remotename)"
- and friends.
-
-
-* jt/submodule-tests-cleanup (2017-11-08) 1 commit
- (merged to 'next' on 2017-11-10 at c6cbcdeaa4)
- + Tests: clean up and document submodule helpers
-
- Test clean-up.
-
-
-* ma/bisect-leakfix (2017-11-06) 4 commits
- (merged to 'next' on 2017-11-09 at c280d786f4)
- + bisect: fix memory leak when returning best element
- + bisect: fix off-by-one error in `best_bisection_sorted()`
- + bisect: fix memory leak in `find_bisection()`
- + bisect: change calling-convention of `find_bisection()`
-
- Leak fixes.
-
-
-* ma/reduce-heads-leakfix (2017-11-08) 2 commits
- (merged to 'next' on 2017-11-10 at 9428953ec8)
- + reduce_heads: fix memory leaks
- + builtin/merge-base: free commit lists
-
- Leak fixes.
-
-
-* mh/avoid-rewriting-packed-refs (2017-10-30) 2 commits
- (merged to 'next' on 2017-11-09 at 272e27cc9a)
- + files-backend: don't rewrite the `packed-refs` file unnecessarily
- + t1409: check that `packed-refs` is not rewritten unnecessarily
-
- Recent update to the refs infrastructure implementation started
- rewriting packed-refs file more often than before; this has been
- optimized again for most trivial cases.
-
-
-* mh/tidy-ref-update-flags (2017-11-06) 10 commits
- (merged to 'next' on 2017-11-09 at 5231330c1c)
- + refs: update some more docs to use "oid" rather than "sha1"
- + write_packed_entry(): take `object_id` arguments
- + refs: rename constant `REF_ISPRUNING` to `REF_IS_PRUNING`
- + refs: rename constant `REF_NODEREF` to `REF_NO_DEREF`
- + refs: tidy up and adjust visibility of the `ref_update` flags
- + ref_transaction_add_update(): remove a check
- + ref_transaction_update(): die on disallowed flags
- + prune_ref(): call `ref_transaction_add_update()` directly
- + files_transaction_prepare(): don't leak flags to packed transaction
- + Merge branch 'bc/object-id' into base
-
- Code clean-up in refs API implementation.
-
-
-* rd/bisect-view-is-visualize (2017-11-13) 1 commit
- (merged to 'next' on 2017-11-13 at a36423f4ba)
- + bisect: mention "view" as an alternative to "visualize"
-
- Doc and message updates to teach users "bisect view" is a synonym
- for "bisect visualize".
-
-
-* rs/imap-send-next-arg-fix (2017-11-03) 2 commits
- (merged to 'next' on 2017-11-07 at f4df55fe5b)
- + imap-send: handle missing response codes gracefully
- + imap-send: handle NULL return of next_arg()
+* ad/submitting-patches-title-decoration (2017-11-11) 1 commit
+ (merged to 'next' on 2017-11-15 at 99238c3537)
+ + doc/SubmittingPatches: correct subject guidance
- Error checking in "git imap-send" for empty response has been
- improved.
+ Doc update around use of "format-patch --subject-prefix" etc.
-* rs/sequencer-rewrite-file-cleanup (2017-11-02) 3 commits
- (merged to 'next' on 2017-11-09 at 06f45be770)
- + sequencer.c: check return value of close() in rewrite_file()
- + sequencer: use O_TRUNC to truncate files
- + sequencer: factor out rewrite_file()
+* av/fsmonitor (2017-11-13) 7 commits
+ (merged to 'next' on 2017-11-13 at db56ad7eef)
+ + fsmonitor: simplify determining the git worktree under Windows
+ + fsmonitor: store fsmonitor bitmap before splitting index
+ + fsmonitor: read from getcwd(), not the PWD environment variable
+ (merged to 'next' on 2017-11-07 at a06178754d)
+ + fsmonitor: delay updating state until after split index is merged
+ + fsmonitor: document GIT_TRACE_FSMONITOR
+ + fsmonitor: don't bother pretty-printing JSON from watchman
+ + fsmonitor: set the PWD to the top of the working tree
+ (this branch uses bp/fsmonitor.)
- Code cleanup.
+ Various fixes to bp/fsmonitor topic.
+ Waiting for follow-on fixes to settle.
-* sb/bisect-run-empty (2017-11-13) 1 commit
- (merged to 'next' on 2017-11-13 at 90d20b8686)
- + bisect run: die if no command is given
- "git bisect run" that did not specify any command to run used to go
- ahead and treated all commits to be tested as 'good'. This has
- been corrected by making the command error out.
+* bp/fsmonitor (2017-10-05) 15 commits
+ (merged to 'next' on 2017-11-07 at b08d44ba60)
+ + fsmonitor: preserve utf8 filenames in fsmonitor-watchman log
+ + fsmonitor: read entirety of watchman output
+ + fsmonitor: MINGW support for watchman integration
+ + fsmonitor: add a performance test
+ + fsmonitor: add a sample integration script for Watchman
+ + fsmonitor: add test cases for fsmonitor extension
+ + split-index: disable the fsmonitor extension when running the split index test
+ + fsmonitor: add a test tool to dump the index extension
+ + update-index: add fsmonitor support to update-index
+ + ls-files: Add support in ls-files to display the fsmonitor valid bit
+ + fsmonitor: add documentation for the fsmonitor extension.
+ + fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
+ + update-index: add a new --force-write-index option
+ + preload-index: add override to enable testing preload-index
+ + bswap: add 64 bit endianness helper get_be64
+ (this branch is used by av/fsmonitor.)
+ Originally merged to 'next' on 2017-10-05
-* sr/wrapper-quote-filenames (2017-11-06) 1 commit
- (merged to 'next' on 2017-11-09 at a14ac8da60)
- + wrapper.c: consistently quote filenames in error messages
+ We learned to talk to watchman to speed up "git status" and other
+ operations that need to see which paths have been modified.
- Some error messages did not quote filenames shown in it, which have
- been fixed.
+ Waiting for follow-on fixes to settle.
-* tz/fsf-address-update (2017-11-09) 3 commits
- (merged to 'next' on 2017-11-13 at 97965f70d9)
- + Merge branch 'tz/fsf-address-update' of ../git-gui into tz/fsf-address-update
- + Replace Free Software Foundation address in license notices
- + Replace Free Software Foundation address in license notices
+* rs/apply-fuzzy-match-fix (2017-11-12) 1 commit
+ (merged to 'next' on 2017-11-15 at 2d724fa63b)
+ + apply: avoid out-of-bounds access in fuzzy_matchlines()
- Replace the mailing address of FSF to a URL, as FSF prefers.
+ A fix for an ancient bug in "git apply --ignore-space-change" codepath.
--------------------------------------------------
[New Topics]
-* rv/sendemail-tocmd-in-config-and-completion (2017-11-14) 2 commits
- - completion: add git config sendemail.tocmd
- - Documentation/config: add sendemail.tocmd to list preceding "See git-send-email(1)"
-
- Teach "sendemail.tocmd" to places that know about "sendemail.to",
- like documentation and shell completion (in contrib/).
-
- Will merge to 'next'.
+* ew/rebase-mboxrd (2017-11-18) 1 commit
+ (merged to 'next' on 2017-11-21 at 88eaaac334)
+ + rebase: use mboxrd format to avoid split errors
+ When "git rebase" prepared an mailbox of changes and fed it to "git
+ am" to replay them, it was confused when a stray "From " happened
+ to be in the log message of one of the replayed changes. This has
+ been corrected.
-* tz/notes-error-to-stderr (2017-11-15) 1 commit
- - notes: send "Automatic notes merge failed" messages to stderr
-
- "git notes" sent its error message to its standard output stream,
- which was corrected.
+ Will merge to 'master'.
- Will merge to 'next'.
+* rs/config-write-section-fix (2017-11-18) 1 commit
+ (merged to 'next' on 2017-11-21 at a7f3f93e0c)
+ + config: flip return value of write_section()
-* hm/config-parse-expiry-date (2017-11-16) 1 commit
- - config: add --expiry-date
+ There was a recent semantic mismerge in the codepath to write out a
+ section of a configuration section, which has been corrected.
- "git config --expiry-date gc.reflogexpire" can read "2.weeks" from
- the configuration and report it as a timestamp, just like "--int"
- would read "1k" and report 1024, to help consumption by scripts.
+ Will merge to 'master'.
-* sd/branch-copy (2017-11-16) 1 commit
- - config: avoid "write_in_full(fd, buf, len) != len" pattern
+* ma/branch-list-paginate (2017-11-20) 3 commits
+ - branch: change default of `pager.branch` to "on"
+ - branch: respect `pager.branch` in list-mode only
+ - t7006: add tests for how git branch paginates
- Code clean-up.
+ "git branch --list" learned to show its output through the pager by
+ default when the output is going to a terminal, which is controlled
+ by the pager.branch configuration variable. This is similar to a
+ recent change to "git tag --list".
Will merge to 'next'.
-* pw/sequencer-recover-from-unlockable-index (2017-11-16) 1 commit
- - sequencer: reschedule pick if index can't be locked
+* rs/include-comments-before-the-function-header (2017-11-21) 6 commits
+ - grep: show non-empty lines before functions with -W
+ - grep: update boundary variable for pre-context
+ - t7810: improve check of -W with user-defined function lines
+ - xdiff: show non-empty lines before functions with -W
+ - xdiff: factor out is_func_rec()
+ - t4051: add test for comments preceding function lines
- The sequencer machinery (used by "git cherry-pick A..B", and "git
- rebase -i", among other things) would have lost a commit if stopped
- due to an unlockable index file, which has been fixed.
+ "git grep -W", "git diff -W" and their friends learned a heuristic
+ to extend a pre-context beyond the line that matches the "function
+ pattern" (aka "diff.*.xfuncname") to include a comment block, if
+ exists, that immediately precedes it.
Will merge to 'next'.
-* dj/runtime-prefix (2017-11-17) 1 commit
- - exec_cmd: RUNTIME_PREFIX on some POSIX systems
+* jk/fewer-pack-rescan (2017-11-21) 5 commits
+ - sha1_file: don't re-scan pack directory for null sha1
+ - everything_local: use "quick" object existence check
+ - p5551: add a script to test fetch pack-dir rescans
+ - t/perf/lib-pack: use fast-import checkpoint to create packs
+ - p5550: factor out nonsense-pack creation
- A build-time option has been added to allow Git to be told to refer
- to its associated files relative to the main binary, in the same
- way that has been possible on Windows for quite some time, for
- Linux, BSDs and Darwin.
+ Internaly we use 0{40} as a placeholder object name to signal the
+ codepath that there is no such object (e.g. the fast-forward check
+ while "git fetch" stores a new remote-tracking ref says "we know
+ there is no 'old' thing pointed at by the ref, as we are creating
+ it anew" by passing 0{40} for the 'old' side), and expect that a
+ codepath to locate an in-core object to return NULL as a sign that
+ the object does not exist. A look-up for an object that does not
+ exist however is quite costly with a repository with large number
+ of packfiles. This access pattern has been optimized.
+ Undecided.
-* jc/editor-waiting-message (2017-11-17) 1 commit
- - launch_editor(): indicate that Git waits for user input
-
- Git shows a message to tell the user that it is waiting for the
- user to finish editing when spawning an editor, in case the editor
- opens to a hidden window or somewhere obscure and the user gets
- lost.
+ While resolving a conflict with jh/fsck-promisors topic, I ended up
+ with a code that rejects 0{40} a lot earlier, before we try to see
+ if a pack entry for 0{40} exists, even though the patch that is
+ queued on this topic is more conservative. Perhaps we would want
+ to use the alternate version that declares the 0{40} is a sentinel
+ that signals that there is no such object.
-* rs/apply-inaccurate-eof-with-incomplete-line (2017-11-17) 1 commit
- - apply: update line lengths for --inaccurate-eof
+* ks/rebase-no-git-foo (2017-11-21) 1 commit
+ - git-rebase: clean up dashed-usages in messages
- "git apply --inaccurate-eof" when used with "--ignore-space-change"
- triggered an internal sanity check, which has been fixed.
+ Mentions of "git-rebase" and "git-am" (dashed form) still remained
+ in end-user visible strings emitted by the "git rebase" command;
+ they have been corrected.
Will merge to 'next'.
-* tz/branch-doc-remove-set-upstream (2017-11-17) 1 commit
- - branch doc: remove --set-upstream from synopsis
-
- "git branch --set-upstream" has been deprecated and (sort of)
- removed, as "--set-upstream-to" is the preferred one these days.
- The documentation still had "--set-upstream" listed on its
- synopsys section, which has been corrected.
-
-
-* tz/complete-branch-copy (2017-11-17) 1 commit
- - completion: add '--copy' option to 'git branch'
+* sw/pull-ipv46-passthru (2017-11-21) 1 commit
+ - pull: pass -4/-6 option to 'git fetch'
- Command line completion (in contrib/) has been taught about the
- "--copy" option of "git branch".
+ Contrary to the documentation, "git pull -4/-4 other-args" did not
+ ask the underlying "git fetch" to go over IPv4/IPv6, which has been
+ corrected.
Will merge to 'next'.
--------------------------------------------------
[Stalled]
-* jn/ssh-wrappers (2017-10-30) 6 commits
- - fixup! ssh: 'auto' variant to select between 'ssh' and 'simple'
- - ssh: 'simple' variant does not support --port
- - ssh: 'simple' variant does not support -4/-6
- - ssh: 'auto' variant to select between 'ssh' and 'simple'
- - connect: split ssh command line options into separate function
- - connect: split git:// setup into a separate function
- (this branch uses bw/protocol-v1.)
-
- The ssh-variant 'simple' introduced earlier broke existing
- installations by not passing --port/-4/-6 and not diagnosing an
- attempt to pass these as an error. Instead, default to
- automatically detect how compatible the GIT_SSH/GIT_SSH_COMMAND is
- to OpenSSH convention and then error out an invocation to make it
- easier to diagnose connection errors.
+* pw/sequencer-in-process-commit (2017-11-18) 9 commits
+ - SQUASH???
+ - sequencer: try to commit without forking 'git commit'
+ - sequencer: load commit related config
+ - sequencer: simplify adding Signed-off-by: trailer
+ - commit: move print_commit_summary() to libgit
+ - commit: move post-rewrite code to libgit
+ - Add a function to update HEAD after creating a commit
+ - commit: move empty message checks to libgit
+ - t3404: check intermediate squash messages
- Expecting a reroll.
- cf. <20171025163243.xmm7szrkwgblpgcc@aiede.mtv.corp.google.com>
+ The sequencer infrastructure is shared across "git cherry-pick",
+ "git rebase -i", etc., and has always spawned "git commit" when it
+ needs to create a commit. It has been taught to do so internally,
+ when able, by reusing the codepath "git commit" itself uses, which
+ gives performance boost for a few tens of percents in some sample
+ scenarios.
* jc/merge-symlink-ours-theirs (2017-09-26) 1 commit
--------------------------------------------------
[Cooking]
-* jc/branch-name-sanity (2017-11-15) 4 commits
- - builtin/branch: remove redundant check for HEAD
- - branch: correctly reject refs/heads/{-dash,HEAD}
- - branch: split validate_new_branchname() into two
- - branch: streamline "attr_only" handling in validate_new_branchname()
+* jn/ssh-wrappers (2017-11-21) 9 commits
+ - connect: correct style of C-style comment
+ - ssh: 'simple' variant does not support --port
+ - ssh: 'simple' variant does not support -4/-6
+ - ssh: 'auto' variant to select between 'ssh' and 'simple'
+ - connect: split ssh option computation to its own function
+ - connect: split ssh command line options into separate function
+ - connect: split git:// setup into a separate function
+ - connect: move no_fork fallback to git_tcp_connect
+ - ssh test: make copy_ssh_wrapper_as clean up after itself
+ (this branch uses bw/protocol-v1.)
- "git branch" and "git checkout -b" are now forbidden from creating
- a branch whose name is "HEAD".
+ The ssh-variant 'simple' introduced earlier broke existing
+ installations by not passing --port/-4/-6 and not diagnosing an
+ attempt to pass these as an error. Instead, default to
+ automatically detect how compatible the GIT_SSH/GIT_SSH_COMMAND is
+ to OpenSSH convention and then error out an invocation to make it
+ easier to diagnose connection errors.
- Will merge to 'next'.
+* rv/sendemail-tocmd-in-config-and-completion (2017-11-14) 2 commits
+ (merged to 'next' on 2017-11-20 at 75cf6e2fc3)
+ + completion: add git config sendemail.tocmd
+ + Documentation/config: add sendemail.tocmd to list preceding "See git-send-email(1)"
-* ad/submitting-patches-title-decoration (2017-11-11) 1 commit
- (merged to 'next' on 2017-11-15 at 99238c3537)
- + doc/SubmittingPatches: correct subject guidance
+ Teach "sendemail.tocmd" to places that know about "sendemail.to",
+ like documentation and shell completion (in contrib/).
+
+ Will merge to 'master'.
- Doc update around use of "format-patch --subject-prefix" etc.
+
+* tz/notes-error-to-stderr (2017-11-15) 1 commit
+ (merged to 'next' on 2017-11-20 at a45d441ee2)
+ + notes: send "Automatic notes merge failed" messages to stderr
+
+ "git notes" sent its error message to its standard output stream,
+ which was corrected.
Will merge to 'master'.
-* jc/merge-base-fork-point-doc (2017-11-09) 1 commit
- - merge-base --fork-point doc: clarify the example and failure modes
+* hm/config-parse-expiry-date (2017-11-18) 1 commit
+ - config: add --expiry-date
- Clarify and enhance documentation for "merge-base --fork-point", as
- it was clear what it computed but not why/what for.
+ "git config --expiry-date gc.reflogexpire" can read "2.weeks" from
+ the configuration and report it as a timestamp, just like "--int"
+ would read "1k" and report 1024, to help consumption by scripts.
- Will merge to 'next'.
+* sd/branch-copy (2017-11-16) 1 commit
+ (merged to 'next' on 2017-11-20 at e33bcc460a)
+ + config: avoid "write_in_full(fd, buf, len) != len" pattern
-* bp/fastindex (2017-11-11) 5 commits
- - SQUASH???
- - fastindex: add documentation for the fastindex extension
- - fastindex: add test tools and a test script
- - update-index: add fastindex support to update-index
- - fastindex: speed up index load through parallelization
+ Code clean-up.
+ Will merge to 'master'.
-* pw/sequencer-in-process-commit (2017-11-11) 10 commits
- - SQUASH??? styles
- - sequencer: try to commit without forking 'git commit'
- - sequencer: load commit related config
- - sequencer: simplify adding Signed-off-by: trailer
- - sequencer: don't die in print_commit_summary()
- - commit: move print_commit_summary() to libgit
- - commit: move post-rewrite code to libgit
- - Add a function to update HEAD after creating a commit
- - commit: move empty message checks to libgit
- - t3404: check intermediate squash messages
- The sequencer infrastructure is shared across "git cherry-pick",
- "git rebase -i", etc., and has always spawned "git commit" when it
- needs to create a commit. It has been taught to do so internally,
- when able, by reusing the codepath "git commit" itself uses.
+* pw/sequencer-recover-from-unlockable-index (2017-11-16) 1 commit
+ (merged to 'next' on 2017-11-20 at 36f0ed26ce)
+ + sequencer: reschedule pick if index can't be locked
- This looked more or less ready.
+ The sequencer machinery (used by "git cherry-pick A..B", and "git
+ rebase -i", among other things) would have lost a commit if stopped
+ due to an unlockable index file, which has been fixed.
+ Will merge to 'master'.
-* rs/apply-fuzzy-match-fix (2017-11-12) 1 commit
- (merged to 'next' on 2017-11-15 at 2d724fa63b)
- + apply: avoid out-of-bounds access in fuzzy_matchlines()
- A fix for an ancient bug in "git apply --ignore-space-change" codepath.
+* dj/runtime-prefix (2017-11-20) 1 commit
+ - exec_cmd: RUNTIME_PREFIX on some POSIX systems
+
+ A build-time option has been added to allow Git to be told to refer
+ to its associated files relative to the main binary, in the same
+ way that has been possible on Windows for quite some time, for
+ Linux, BSDs and Darwin.
+
+
+* jc/editor-waiting-message (2017-11-17) 1 commit
+ - launch_editor(): indicate that Git waits for user input
+
+ Git shows a message to tell the user that it is waiting for the
+ user to finish editing when spawning an editor, in case the editor
+ opens to a hidden window or somewhere obscure and the user gets
+ lost.
+
+
+* rs/apply-inaccurate-eof-with-incomplete-line (2017-11-17) 1 commit
+ (merged to 'next' on 2017-11-20 at c8aee1d135)
+ + apply: update line lengths for --inaccurate-eof
+
+ "git apply --inaccurate-eof" when used with "--ignore-space-change"
+ triggered an internal sanity check, which has been fixed.
+
+ Will merge to 'master'.
+
+
+* tz/branch-doc-remove-set-upstream (2017-11-17) 1 commit
+ - branch doc: remove --set-upstream from synopsis
+
+ "git branch --set-upstream" has been deprecated and (sort of)
+ removed, as "--set-upstream-to" is the preferred one these days.
+ The documentation still had "--set-upstream" listed on its
+ synopsys section, which has been corrected.
+
+
+* tz/complete-branch-copy (2017-11-17) 1 commit
+ (merged to 'next' on 2017-11-20 at 6d22384fcd)
+ + completion: add '--copy' option to 'git branch'
+
+ Command line completion (in contrib/) has been taught about the
+ "--copy" option of "git branch".
+
+ Will merge to 'master'.
+
+
+* jc/branch-name-sanity (2017-11-15) 4 commits
+ (merged to 'next' on 2017-11-20 at 7236b0dde3)
+ + builtin/branch: remove redundant check for HEAD
+ + branch: correctly reject refs/heads/{-dash,HEAD}
+ + branch: split validate_new_branchname() into two
+ + branch: streamline "attr_only" handling in validate_new_branchname()
+
+ "git branch" and "git checkout -b" are now forbidden from creating
+ a branch whose name is "HEAD".
+
+ Will merge to 'master'.
+
+
+* jc/merge-base-fork-point-doc (2017-11-09) 1 commit
+ (merged to 'next' on 2017-11-20 at 199b9255b4)
+ + merge-base --fork-point doc: clarify the example and failure modes
+
+ Clarify and enhance documentation for "merge-base --fork-point", as
+ it was clear what it computed but not why/what for.
Will merge to 'master'.
* sb/test-cherry-pick-submodule-getting-in-a-way (2017-11-15) 2 commits
- - merge-recursive: handle addition of submodule on our side of history
- - t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure
+ (merged to 'next' on 2017-11-20 at fe7016689e)
+ + merge-recursive: handle addition of submodule on our side of history
+ + t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure
The three-way merge performed by "git cherry-pick" was confused
when a new submodule was added in the meantime, which has been
fixed (or "papered over").
- Will merge to 'next'.
+ Will merge to 'master'.
* en/rename-progress (2017-11-15) 4 commits
- - sequencer: show rename progress during cherry picks
- - diff: remove silent clamp of renameLimit
- - progress: fix progress meters when dealing with lots of work
- - sequencer: warn when internal merge may be suboptimal due to renameLimit
+ (merged to 'next' on 2017-11-20 at 77a2e0ddd9)
+ + sequencer: show rename progress during cherry picks
+ + diff: remove silent clamp of renameLimit
+ + progress: fix progress meters when dealing with lots of work
+ + sequencer: warn when internal merge may be suboptimal due to renameLimit
Historically, the diff machinery for rename detection had a
hardcoded limit of 32k paths; this is being lifted to allow users
trade cycles with a (possibly) easier to read result.
- Will merge to 'next'.
+ Will merge to 'master'.
* tz/redirect-fix (2017-11-14) 2 commits
- - rebase: fix stderr redirect in apply_autostash()
- - t/lib-gpg: fix gpgconf stderr redirect to /dev/null
+ (merged to 'next' on 2017-11-20 at 5b13f7026e)
+ + rebase: fix stderr redirect in apply_autostash()
+ + t/lib-gpg: fix gpgconf stderr redirect to /dev/null
A few scripts (both in production and tests) incorrectly redirected
their error output. These have been corrected.
- Will merge to 'next'.
+ Will merge to 'master'.
-* ar/unconfuse-three-dots (2017-11-14) 6 commits
+* ar/unconfuse-three-dots (2017-11-20) 5 commits
- Testing: provide tests requiring them with ellipses after SHA-1 values
- Documentation: revisions: fix typo: "three dot" ---> "three-dot" (in line with "two-dot").
- Documentation: user-manual: limit usage of ellipsis
- diff: diff_aligned_abbrev: remove ellipsis after abbreviated SHA-1 value
- checkout: describe_detached_head: remove ellipsis after committish
- - config: introduce core.printsha1ellipsis
Ancient part of codebase still shows dots after an abbreviated
object name just to show that it is not a full object name, but
* tb/add-renormalize (2017-11-17) 1 commit
- - add: introduce "--renormalize"
+ (merged to 'next' on 2017-11-20 at e302f3591f)
+ + add: introduce "--renormalize"
"git add --renormalize ." is a new and safer way to record the fact
that you are correcting the end-of-line convention and other
"convert_to_git()" glitches in the in-repository data.
- Will merge to 'next'.
-
-
-* av/fsmonitor (2017-11-13) 7 commits
- (merged to 'next' on 2017-11-13 at db56ad7eef)
- + fsmonitor: simplify determining the git worktree under Windows
- + fsmonitor: store fsmonitor bitmap before splitting index
- + fsmonitor: read from getcwd(), not the PWD environment variable
- (merged to 'next' on 2017-11-07 at a06178754d)
- + fsmonitor: delay updating state until after split index is merged
- + fsmonitor: document GIT_TRACE_FSMONITOR
- + fsmonitor: don't bother pretty-printing JSON from watchman
- + fsmonitor: set the PWD to the top of the working tree
- (this branch uses bp/fsmonitor.)
-
- Various fixes to bp/fsmonitor topic.
-
- Waiting for follow-on fixes to settle.
-
-
-* bp/fsmonitor (2017-10-05) 15 commits
- (merged to 'next' on 2017-11-07 at b08d44ba60)
- + fsmonitor: preserve utf8 filenames in fsmonitor-watchman log
- + fsmonitor: read entirety of watchman output
- + fsmonitor: MINGW support for watchman integration
- + fsmonitor: add a performance test
- + fsmonitor: add a sample integration script for Watchman
- + fsmonitor: add test cases for fsmonitor extension
- + split-index: disable the fsmonitor extension when running the split index test
- + fsmonitor: add a test tool to dump the index extension
- + update-index: add fsmonitor support to update-index
- + ls-files: Add support in ls-files to display the fsmonitor valid bit
- + fsmonitor: add documentation for the fsmonitor extension.
- + fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
- + update-index: add a new --force-write-index option
- + preload-index: add override to enable testing preload-index
- + bswap: add 64 bit endianness helper get_be64
- (this branch is used by av/fsmonitor.)
-
- Originally merged to 'next' on 2017-10-05
-
- We learned to talk to watchman to speed up "git status" and other
- operations that need to see which paths have been modified.
-
- Waiting for follow-on fixes to settle.
+ Will merge to 'master'.
* pb/bisect-helper-2 (2017-10-28) 8 commits
* jc/ignore-cr-at-eol (2017-11-08) 2 commits
- - diff: --ignore-cr-at-eol
- - xdiff: reassign xpparm_t.flags bits
+ (merged to 'next' on 2017-11-20 at 9f7bae7cbd)
+ + diff: --ignore-cr-at-eol
+ + xdiff: reassign xpparm_t.flags bits
The "diff" family of commands learned to ignore differences in
carriage return at the end of line.
- Will merge to 'next'.
+ Will merge to 'master'.
* ot/mru-on-list (2017-10-01) 1 commit
outside the context of "sparse checkout".
Now part of jh/object-filtering topic.
+
+
+* bp/fastindex (2017-11-11) 5 commits
+ . SQUASH???
+ . fastindex: add documentation for the fastindex extension
+ . fastindex: add test tools and a test script
+ . update-index: add fastindex support to update-index
+ . fastindex: speed up index load through parallelization
+
+ Retracted for now.