To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Feb 2016, #02; Fri, 5)
+Subject: What's cooking in git.git (Feb 2016, #03; Tue, 9)
X-master-at: ff4ea6004fb48146330d663d64a71e7774f059f9
-X-next-at: b2aa7f843ccc79397d54723df13034a8761f5a18
+X-next-at: ced85554d3d871f66dc4442631320a96a5d702f5
-What's cooking in git.git (Feb 2016, #02; Fri, 5)
+What's cooking in git.git (Feb 2016, #03; Tue, 9)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[New Topics]
-* da/user-useconfigonly (2016-02-05) 2 commits
- - ident: add user.useConfigOnly boolean for when ident shouldn't be guessed
- - fmt_ident: refactor strictness checks
+* jk/rerere-xsnprintf (2016-02-08) 1 commit
+ (merged to 'next' on 2016-02-09 at ff9ade3)
+ + rerere: replace strcpy with xsnprintf
+ (this branch is used by jc/rerere-multi.)
- The "user.useConfigOnly" configuration variable can be used to
- force the user to always set user.email & user.name configuration
- variables, serving as a reminder for those who work on multiple
- projects and do not want to put these in their $HOME/.gitconfig.
-
---------------------------------------------------
-[Graduated to "master"]
-
-* dg/subtree-test (2016-01-19) 1 commit
- (merged to 'next' on 2016-01-26 at 81f1356)
- + contrib/subtree: Make testing easier
-
-
-* dt/unpack-compare-entry-optim (2016-01-22) 2 commits
- (merged to 'next' on 2016-01-26 at 110e053)
- + unpack-trees: fix accidentally quadratic behavior
- (merged to 'next' on 2016-01-20 at 180dccf)
- + do_compare_entry: use already-computed path
-
- "git checkout $branch" (and other operations that share the same
- underlying machinery) has been optimized.
-
-
-* dw/subtree-split-do-not-drop-merge (2016-01-20) 1 commit
- (merged to 'next' on 2016-01-26 at 3cfefef)
- + contrib/subtree: fix "subtree split" skipped-merge bug
-
- The "split" subcommand of "git subtree" (in contrib/) incorrectly
- skipped merges when it shouldn't, which was corrected.
-
-
-* jc/peace-with-crlf (2016-01-15) 12 commits
- (merged to 'next' on 2016-01-26 at 08724bc)
- + test-sha1-array: read command stream with strbuf_getline()
- + grep: read -f file with strbuf_getline()
- + send-pack: read list of refs with strbuf_getline()
- + column: read lines with strbuf_getline()
- + cat-file: read batch stream with strbuf_getline()
- + transport-helper: read helper response with strbuf_getline()
- + clone/sha1_file: read info/alternates with strbuf_getline()
- + remote.c: read $GIT_DIR/remotes/* with strbuf_getline()
- + ident.c: read /etc/mailname with strbuf_getline()
- + rev-parse: read parseopt spec with strbuf_getline()
- + revision: read --stdin with strbuf_getline()
- + hash-object: read --stdin-paths with strbuf_getline()
-
- Many commands that read files that are expected to contain text
- that is generated (or can be edited) by the end user to control
- their behaviour (e.g. "git grep -f <filename>") have been updated
- to be more tolerant to lines that are terminated with CRLF (they
- used to treat such a line to contain payload that ends with CR,
- which is usually not what the users expect).
-
-
-* jk/completion-rebase (2016-01-25) 1 commit
- (merged to 'next' on 2016-01-26 at def3e0b)
- + completion: add missing git-rebase options
-
-
-* jk/notes-merge-from-anywhere (2016-01-17) 1 commit
- (merged to 'next' on 2016-01-26 at c60ac66)
- + notes: allow merging from arbitrary references
-
- "git notes merge" used to limit the source of the merged notes tree
- to somewhere under refs/notes/ hierarchy, which was too limiting
- when inventing a workflow to exchange notes with remote
- repositories using remote-tracking notes trees (located in e.g.
- refs/remote-notes/ or somesuch).
-
-
-* jk/ref-cache-non-repository-optim (2016-01-25) 2 commits
- (merged to 'next' on 2016-01-26 at 09057bc)
- + resolve_gitlink_ref: ignore non-repository paths
- + clean: make is_git_repository a public function
-
- The underlying machinery used by "ls-files -o" and other commands
- have been taught not to create empty submodule ref cache for a
- directory that is not a submodule. This removes a ton of wasted
- CPU cycles.
-
-
-* js/dirname-basename (2016-01-25) 6 commits
- (merged to 'next' on 2016-01-26 at b16b2b8)
- + mingw: avoid linking to the C library's isalpha()
- (merged to 'next' on 2016-01-20 at d198512)
- + t0060: loosen overly strict expectations
- (merged to 'next' on 2016-01-12 at c3c970a)
- + t0060: verify that basename() and dirname() work as expected
- + compat/basename.c: provide a dirname() compatibility function
- + compat/basename: make basename() conform to POSIX
- + Refactor skipping DOS drive prefixes
-
- dirname() emulation has been added, as Msys2 lacks it.
-
-
-* kf/http-proxy-auth-methods (2016-01-26) 2 commits
- (merged to 'next' on 2016-02-01 at b0956b2)
- + http: use credential API to handle proxy authentication
- + http: allow selection of proxy authentication method
+ Some calls to strcpy(3) triggers a false warning from static
+ analysers that are less intelligent than humans, and reducing the
+ number of these false hits helps us notice real issues. A few
+ calls to strcpy(3) in "git rerere" that are already safe has been
+ rewritten to avoid false wanings.
- New http.proxyAuthMethod configuration variable can be used to
- specify what authentication method to use, as a way to work around
- proxies that do not give error response expected by libcurl when
- CURLAUTH_ANY is used. Also, the codepath for proxy authentication
- has been taught to use credential API to store the authentication
- material in user's keyrings.
-
-
-* ls/travis-prove-order (2016-01-26) 2 commits
- (merged to 'next' on 2016-01-26 at d8e2a4a)
- + travis-ci: explicity use container-based infrastructure
- + travis-ci: run previously failed tests first, then slowest to fastest
-
- Automated tests in Travis CI environment has been optimized by
- persisting runtime statistics of previous "prove" run, executing
- tests that take longer before other ones; this reduces the total
- wallclock time.
-
-
-* lv/add-doc-working-tree (2016-01-21) 1 commit
- (merged to 'next' on 2016-01-26 at c5b1ab1)
- + git-add doc: do not say working directory when you mean working tree
+ Will merge to 'master'.
-* mk/asciidoctor-bq-workaround (2016-01-20) 1 commit
- (merged to 'next' on 2016-01-26 at 19a742a)
- + Documentation: remove unnecessary backslashes
+* jk/test-path-utils-xsnprintf (2016-02-08) 1 commit
+ (merged to 'next' on 2016-02-09 at 931f70b)
+ + test-path-utils: use xsnprintf in favor of strcpy
+ Some calls to strcpy(3) triggers a false warning from static
+ analysers that are less intelligent than humans, and reducing the
+ number of these false hits helps us notice real issues. A few
+ calls to strcpy(3) in test-path-utils that are already safe has
+ been rewritten to avoid false wanings.
-* nd/diff-with-path-params (2016-01-21) 2 commits
- (merged to 'next' on 2016-01-26 at b29a363)
- + diff: make -O and --output work in subdirectory
- + diff-no-index: do not take a redundant prefix argument
+ Will merge to 'master'.
- A few options of "git diff" did not work well when the command was
- run from a subdirectory.
+* mm/clean-doc-fix (2016-02-09) 1 commit
+ (merged to 'next' on 2016-02-09 at ced8555)
+ + Documentation/git-clean.txt: don't mention deletion of .git/modules/*
-* pw/completion-show-branch (2016-01-25) 1 commit
- (merged to 'next' on 2016-01-26 at d0d7735)
- + completion: complete show-branch "--date-order"
+ The documentation for "git clean" has been corrected; it mentioned
+ that .git/modules/* are removed by giving two "-f", which has never
+ been the case.
+ Will merge to 'master'.
-* pw/completion-stash (2016-01-26) 1 commit
- (merged to 'next' on 2016-01-26 at e41153c)
- + completion: update completion arguments for stash
+* mg/mingw-test-fix (2016-02-08) 1 commit
+ - t9100: fix breakage when SHELL_PATH is not /bin/sh
+ (this branch uses js/mingw-tests.)
-* tb/complete-word-diff-regex (2016-01-20) 1 commit
- (merged to 'next' on 2016-01-26 at a5beecc)
- + completion: complete "diff --word-diff-regex="
+ An earlier adjustment of test mistakenly used write_script
+ to prepare a file whose exact content matters for the test;
+ reverting that part fixes the breakage for those who use
+ SHELL_PATH that is different from /bin/sh.
-* tb/ls-files-eol (2016-01-18) 1 commit
- (merged to 'next' on 2016-01-26 at bc9246f)
- + ls-files: add eol diagnostics
+* nd/icase (2016-02-09) 11 commits
+ - diffcore-pickaxe: support case insensitive match on non-ascii
+ - diffcore-pickaxe: "share" regex error handling code
+ - grep/pcre: support utf-8
+ - gettext: add is_utf8_locale()
+ - grep/pcre: prepare locale-dependent tables for icase matching
+ - grep/icase: avoid kwsset when -F is specified
+ - grep/icase: avoid kwsset on literal non-ascii strings
+ - test-regex: expose full regcomp() to the command line
+ - test-regex: isolate the bug test code
+ - grep: break down an "if" stmt in preparation for next changes
+ - grep: allow -F -i combination
- "git ls-files" learned a new "--eol" option to help diagnose
- end-of-line problems.
+ "git grep -i" has been taught to fold case in non-ascii locales.
-* tg/ls-remote-symref (2016-01-19) 5 commits
- (merged to 'next' on 2016-01-26 at e466ee2)
- + ls-remote: add support for showing symrefs
- + ls-remote: use parse-options api
- + ls-remote: fix synopsis
- + ls-remote: document --refs option
- + ls-remote: document --quiet option
+* tb/conversion (2016-02-08) 7 commits
+ - convert.c: simplify text_stat
+ - convert.c: refactor crlf_action
+ - convert: auto_crlf=false and no attributes set: same as binary
+ - convert.c: use text_eol_is_crlf()
+ - convert.c: remove input_crlf_action()
+ - convert.c: remove unused parameter 'path'
+ - t0027: add tests for get_stream_filter()
- "ls-remote" learned an option to show which branch the remote
- repository advertises as its primary by pointing its HEAD at.
+ Simplication of eol conversion codepath.
--------------------------------------------------
[Stalled]
--------------------------------------------------
[Cooking]
+* da/user-useconfigonly (2016-02-08) 2 commits
+ (merged to 'next' on 2016-02-09 at 8b303ce)
+ + ident: add user.useConfigOnly boolean for when ident shouldn't be guessed
+ + fmt_ident: refactor strictness checks
+
+ The "user.useConfigOnly" configuration variable can be used to
+ force the user to always set user.email & user.name configuration
+ variables, serving as a reminder for those who work on multiple
+ projects and do not want to put these in their $HOME/.gitconfig.
+
+ Will merge to 'master'.
+
+
* aw/push-force-with-lease-reporting (2016-02-01) 1 commit
(merged to 'next' on 2016-02-03 at facd28f)
+ push: fix ref status reporting for --force-with-lease
* dv/http-try-negotiate-at-least-once (2016-02-02) 1 commit
- remote-curl: don't fall back to Basic auth if we haven't tried Negotiate
- Needs at least an update to the log message.
- ($gmane/285314)
+ Will be replaced with a solution with a different approach.
+ ($gmane/285633)
* js/test-lib-windows-emulated-yes (2016-02-02) 1 commit
- submodule-config: keep update strategy around
(this branch is used by dt/refs-backend-lmdb and sb/submodule-init.)
- Builds on top of the "fetch --recurse-submodules" work to introduce
- parallel downloading into multiple submodules for "submodule update".
-
- Needs review.
- ($gmane/285285)
-
-
-* dt/refs-backend-lmdb (2016-02-02) 21 commits
- . refs: tests for lmdb backend
- . refs: add LMDB refs backend
- . svn: learn ref-storage argument
- . refs: allow ref backend to be set for clone
- . refs: check submodules ref storage config
- . init: allow alternate backends to be set for new repos
- . refs: always handle non-normal refs in files backend
- . refs: resolve symbolic refs first
- . refs: allow log-only updates
- . refs: move duplicate check to common code
- . refs: make lock generic
- . refs: add method to rename refs
- . refs: add methods to init refs db
- . refs: add method for delete_refs
- . refs: add method for initial ref transaction commit
- . refs: add methods for reflog
- . refs: add do_for_each_per_worktree_ref
- . refs: add methods for the ref iterators
- . refs: add methods for misc ref operations
- . refs: add a backend method structure with transaction functions
- . Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb
+ A reroll exists. Not picked up yet as it takes a while to flip
+ three overlapping topics.
+
+
+* dt/refs-backend-lmdb (2016-02-08) 22 commits
+ - refs: tests for lmdb backend
+ - refs: add LMDB refs storage backend
+ - refs: add register_ref_storage_backends()
+ - svn: learn ref-storage argument
+ - clone: allow ref storage backend to be set for clone
+ - refs: check submodules ref storage config
+ - init: allow alternate ref strorage to be set for new repos
+ - refs: always handle non-normal refs in files backend
+ - refs: resolve symbolic refs first
+ - refs: allow log-only updates
+ - refs: move duplicate check to common code
+ - refs: make lock generic
+ - refs: add method to rename refs
+ - refs: add methods to init refs db
+ - refs: add method for delete_refs
+ - refs: add method for initial ref transaction commit
+ - refs: add methods for reflog
+ - refs: add do_for_each_per_worktree_ref
+ - refs: add methods for the ref iterators
+ - refs: add methods for misc ref operations
+ - refs: add a backend method structure with transaction functions
+ - Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb
(this branch uses sb/submodule-parallel-update; is tangled with sb/submodule-init.)
Building on top of a few refs-backend preparatory series, LMDB
list were done on top of some version of 'pu'.
-* js/mingw-tests (2016-01-28) 20 commits
+* js/mingw-tests (2016-02-08) 21 commits
+ (merged to 'next' on 2016-02-08 at 417e555)
+ + gitignore: ignore generated test-fake-ssh executable
(merged to 'next' on 2016-02-03 at ace7624)
+ mingw: do not bother to test funny file names
+ mingw: skip a test in t9130 that cannot pass on Windows
+ Git.pm: stop assuming that absolute paths start with a slash
+ mingw: do not trust MSYS2's MinGW gettext.sh
+ mingw: let's use gettext with MSYS2
+ (this branch is used by mg/mingw-test-fix.)
Test scripts have been updated to remove assumptions that are not
portable between Git for POSIX and Git for Windows, or to skip ones
* nd/clear-gitenv-upon-use-of-alias (2016-02-02) 4 commits
- - restore_env(): free the saved environment variable once we are done
- - git: simplify environment save/restore logic
- - git: protect against unbalanced calls to {save,restore}_env()
- - git: remove an early return from save_env_before_alias()
+ (merged to 'next' on 2016-02-09 at 2c441b4)
+ + restore_env(): free the saved environment variable once we are done
+ + git: simplify environment save/restore logic
+ + git: protect against unbalanced calls to {save,restore}_env()
+ + git: remove an early return from save_env_before_alias()
The automatic typo correction applied to an alias was broken
with a recent change already in 'master'.
- Needs review.
+ Will merge to 'master'.
* nd/do-not-move-worktree-manually (2016-01-22) 2 commits
($gmane/275680).
-* jc/rerere-multi (2016-01-21) 7 commits
+* jc/rerere-multi (2016-02-08) 7 commits
- rerere: do use multiple variants
- t4200: rerere a merge with two identical conflicts
- rerere: allow multiple variants to exist
- rerere: handle leftover rr-cache/$ID directory and postimage files
- rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
- rerere: split conflict ID further
+ (this branch uses jk/rerere-xsnprintf.)
"git rerere" can encounter two or more files with the same conflict
signature that have to be resolved in different ways, but there was
git-gui still uses the deprecated syntax, which needs to be fixed
before this final step can proceed.
($gmane/282594)
-
---------------------------------------------------
-[Discarded]
-
-* bb/merge-marker-crlf (2015-11-24) 1 commit
- . merge-file: consider core.crlf when writing merge markers
-
- Resurrected as 'js/xmerge-maker-eol'.
-
-
-* sg/sh-require-clean-orphan (2015-11-24) 2 commits
- . sh-setup: make require_clean_work_tree() work on orphan branches
- . Add tests for git-sh-setup's require_clean_work_tree()
-
- Allow users of git-sh-setup to handle orphan branch state.
- ($gmane/284488)