What's cooking (2017/03 #10)

todo
Junio C Hamano 2017-03-24 14:14:16 -07:00
parent fc619ccbab
commit b3e2769e84
1 changed files with 365 additions and 286 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (Mar 2017, #09; Tue, 21)
X-master-at: afd6726309f57f532b4b989a75c1392359c611cc
X-next-at: 7cedf66e54510904cda1d8cb365d851f9d4dcdb4
Subject: What's cooking in git.git (Mar 2017, #10; Fri, 24)
X-master-at: 034667a458057ef1e571973a38ebbdf0045a63e9
X-next-at: 063fe858b89ef8ee27965115fd6b1ed12e42e793

What's cooking in git.git (Mar 2017, #09; Tue, 21)
What's cooking in git.git (Mar 2017, #10; Fri, 24)
--------------------------------------------------

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 maintenance release for v2.12.x series has just been
tagged.

You can find the changes described here in the integration branches
of the repositories listed at

@ -20,156 +23,223 @@ of the repositories listed at
--------------------------------------------------
[Graduated to "master"]

* ab/doc-no-option-notation-fix (2017-03-20) 1 commit
(merged to 'next' on 2017-03-20 at a6afe78ab4)
+ doc: change erroneous --[no]-whatever into --[no-]whatever
* dl/credential-cache-socket-in-xdg-cache (2017-03-17) 3 commits
(merged to 'next' on 2017-03-20 at 9de71bcce8)
+ credential-cache: add tests for XDG functionality
+ credential-cache: use XDG_CACHE_HOME for socket
+ path.c: add xdg_cache_home

Doc fix.
The default location "~/.git-credential-cache/socket" for the
socket used to communicate with the credential-cache daemon has
been moved to "~/.cache/git/credential/socket".


* ab/push-default-doc-fix (2017-03-20) 1 commit
(merged to 'next' on 2017-03-20 at 0f4d4470de)
+ push: mention "push.default=tracking" in the documentation
* jk/execv-dashed-external (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at 62119fa314)
+ run-command: fix segfault when cleaning forked async process

Doc fix.
Fix for NO_PTHREADS build.


* jk/pack-name-cleanups (2017-03-16) 5 commits
(merged to 'next' on 2017-03-16 at 6aa72195f5)
+ index-pack: make pointer-alias fallbacks safer
+ replace snprintf with odb_pack_name()
+ odb_pack_keep(): stop generating keepfile name
+ sha1_file.c: make pack-name helper globally accessible
+ move odb_* declarations out of git-compat-util.h
* jk/sha1dc (2017-03-17) 6 commits
(merged to 'next' on 2017-03-20 at 3455b6c19f)
+ Makefile: make DC_SHA1 the default
+ t0013: add a basic sha1 collision detection test
+ Makefile: add DC_SHA1 knob
+ sha1dc: disable safe_hash feature
+ sha1dc: adjust header includes for git
+ sha1dc: add collision-detecting sha1 implementation

The "detect attempt to create collisions" variant of SHA-1
implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft)
has been integrated and made the default.


* js/regexec-buf (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at 7381595eb7)
+ pickaxe: fix segfault with '-S<...> --pickaxe-regex'

Fix for potential segv introduced in v2.11.0 and later (also
v2.10.2).


* rs/http-push-cleanup (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at fcf8d30bc0)
+ http-push: don't check return value of lookup_unknown_object()

Code clean-up.


* jk/rev-parse-cleanup (2017-03-15) 3 commits
(merged to 'next' on 2017-03-16 at 2799b37404)
+ rev-parse: simplify parsing of ref options
+ rev-parse: add helper for parsing "--foo/--foo="
+ rev-parse: use skip_prefix when parsing options
* rs/path-name-safety-cleanup (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at 78ea574469)
+ revision: remove declaration of path_name()

Code clean-up.


* js/rebase-helper (2017-03-17) 1 commit
(merged to 'next' on 2017-03-20 at 2b72d03e0e)
+ sequencer: drop "warning:" when stopping for edit

Recent update to "rebase -i" started showing a message that is not
a warning with "warning:" prefix by mistake. This has been fixed.


* mg/prompt-describe-tags (2017-03-15) 1 commit
(merged to 'next' on 2017-03-16 at 4de192caf4)
+ git-prompt: add a describe style for any tags

The command line prompt (in contrib/) learned a new 'tag' style
that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a
detached HEAD with "git describe --tags".


* nd/commit-hook-doc-fix (2017-03-20) 1 commit
(merged to 'next' on 2017-03-20 at 7ab46d99f4)
+ git-commit.txt: list post-rewrite in HOOKS section

Doc fix.


* nd/conditional-config-include (2017-03-11) 3 commits
(merged to 'next' on 2017-03-17 at 788a931e39)
+ config: add conditional include
+ config.txt: reflow the second include.path paragraph
+ config.txt: clarify multiple key values in include.path

The configuration file learned a new "includeIf.<condition>.path"
that includes the contents of the given path only when the
condition holds. This allows you to say "include this work-related
bit only in the repositories under my ~/work/ directory".


* sb/submodule-config-parse-ignore-fix (2017-03-15) 1 commit
(merged to 'next' on 2017-03-16 at 99d2524abd)
+ submodule-config: correct error reporting for invalid ignore value

Code to read submodule.<name>.ignore config did not state the
variable name correctly when giving an error message diagnosing
misconfiguration.


* sb/wt-status-cleanup (2017-03-17) 1 commit
(merged to 'next' on 2017-03-20 at ce800cd91b)
+ wt-status: simplify by using for_each_string_list_item
* rs/shortlog-cleanup (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at a826dff5cf)
+ shortlog: don't set after_subject to an empty string

Code clean-up.


* rs/update-hook-optim (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at f36ede55be)
+ receive-pack: simplify run_update_post_hook()

Code clean-up.


* sg/test-with-stdin (2017-03-18) 2 commits
(merged to 'next' on 2017-03-20 at a66fec5692)
+ tests: make the 'test_pause' helper work in non-verbose mode
+ tests: create an interactive gdb session with the 'debug' helper

Teach the "debug" helper used in the test framework that allows a
command to run under "gdb" to make the session interactive.

--------------------------------------------------
[New Topics]

* mh/separate-ref-cache (2017-03-20) 20 commits
- do_for_each_entry_in_dir(): delete function
- files_pack_refs(): use reference iteration
- commit_packed_refs(): use reference iteration
- cache_ref_iterator_begin(): make function smarter
- get_loose_ref_cache(): new function
- get_loose_ref_dir(): function renamed from get_loose_refs()
- do_for_each_entry_in_dir(): eliminate `offset` argument
- refs: handle "refs/bisect/" in `loose_fill_ref_dir()`
- ref-cache: use a callback function to fill the cache
- refs: record the ref_store in ref_cache, not ref_dir
- ref-cache: introduce a new type, ref_cache
- refs: split `ref_cache` code into separate files
- ref-cache: rename `remove_entry()` to `remove_entry_from_dir()`
- ref-cache: rename `find_ref()` to `find_ref_entry()`
- ref-cache: rename `add_ref()` to `add_ref_entry()`
- refs_verify_refname_available(): use function in more places
- refs_verify_refname_available(): implement once for all backends
- refs_ref_iterator_begin(): new function
- refs_read_raw_ref(): new function
- get_ref_dir(): don't call read_loose_refs() for "refs/bisect"
(this branch uses nd/files-backend-git-dir; is tangled with nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
* ab/test-readme-updates (2017-03-23) 4 commits
- SQUASH???
- t/README: clarify the test_have_prereq documentation
- t/README: change "Inside <X> part" to "Inside the <X> part"
- t/README: link to metacpan.org, not search.cpan.org

The internals of the refs API around the cached refs has been
streamlined.
Doc updates.

Waiting for a reaction to SQUASH???


* jk/prefix-filename (2017-03-21) 6 commits
- bundle: use prefix_filename with bundle path
- prefix_filename: simplify windows #ifdef
- prefix_filename: return newly allocated string
- prefix_filename: drop length parameter
- prefix_filename: move docstring to header file
- hash-object: fix buffer reuse with --path in a subdirectory
* jk/quote-env-path-list-component (2017-03-22) 1 commit
(merged to 'next' on 2017-03-24 at 78843c4f9d)
+ t5615: fix a here-doc syntax error

Code clean-up with minor bugfixes.
A test fix.

Will merge to 'master'.


* js/rebase-i-reword-to-run-hooks (2017-03-23) 4 commits
- SQUASH???
- sequencer: allow the commit-msg hooks to run during a `reword`
- sequencer: make commit options more extensible
- t7504: document regression: reword no longer calls commit-msg

A recent update to "rebase -i" stopped running hooks for the "git
commit" command during "reword" action, which has been fixed.

Waiting for a reaction to SQUASH???


* sb/push-options-via-transport (2017-03-22) 2 commits
(merged to 'next' on 2017-03-24 at c5535bec3b)
+ remote-curl: allow push options
+ send-pack: send push options correctly in stateless-rpc case

Recently we started passing the "--push-options" through the
external remote helper interface; now the "smart HTTP" remote
helper understands what to do with the passed information.

Will merge to 'master'.


* sb/submodule-update-initial-runs-custom-script (2017-03-22) 1 commit
(merged to 'next' on 2017-03-24 at 628200c3b1)
+ t7406: correct test case for submodule-update initial population

A test fix.

Will merge to 'master'.


* ab/branch-list-doc (2017-03-24) 2 commits
- branch doc: update description for `--list`
- branch doc: change `git branch <pattern>` to use `<branchname>`

Doc update.

Will merge to 'next'.


* km/t1400-modernization (2017-03-21) 5 commits
- t1400: use test_when_finished for cleanup
- t1400: remove a set of unused output files
- t1400: use test_path_is_* helpers
- t1400: set core.logAllRefUpdates in "logged by touch" tests
- t1400: rename test descriptions to be unique
* km/config-grammofix (2017-03-23) 1 commit
(merged to 'next' on 2017-03-24 at 75ddbbc6f9)
+ doc/config: grammar fixes for core.{editor,commentChar}

Doc update.

Will merge to 'master'.


* sg/completion-ctags (2017-03-23) 3 commits
- completion: offer ctags symbol names for 'git log -S', '-G' and '-L:'
- completion: extract completing ctags symbol names into helper function
- completion: put matching ctags symbol names directly into COMPREPLY
(this branch uses sg/completion-refs-speedup.)

Command line completion updates.

Will merge to 'next'.


* sg/skip-prefix-in-prettify-refname (2017-03-23) 1 commit
- refs.c: use skip_prefix() in prettify_refname()

Code cleanup.

Will merge to 'next'.


* jc/lint-runaway-here-doc (2017-03-23) 1 commit
(merged to 'next' on 2017-03-24 at c1f1ca1bd7)
+ tests: lint for run-away here-doc

The test framework learned to detect unterminated here documents.

Will wait until all the other topics that correct unterminated here-doc
graduates.


* sb/submodule-short-status (2017-03-24) 7 commits
- submodule.c: correctly handle nested submodules in is_submodule_modified
- short status: improve reporting for submodule changes
- submodule.c: stricter checking for submodules in is_submodule_modified
- submodule.c: port is_submodule_modified to use porcelain 2
- submodule.c: convert is_submodule_modified to use strbuf_getwholeline
- submodule.c: factor out early loop termination in is_submodule_modified
- submodule.c: use argv_array in is_submodule_modified


* st/verify-tag (2017-03-24) 1 commit
(merged to 'next' on 2017-03-24 at d26313d4ab)
+ t7004, t7030: fix here-doc syntax errors

A few unterminated here documents in tests were fixed, which in
turn revealed incorrect expectations the tests make. These tests
have been updated.

Will merge to 'master'.


* jk/fast-import-cleanup (2017-03-24) 4 commits
- pack.h: define largest possible encoded object size
- encode_in_pack_object_header: respect output buffer length
- fast-import: use xsnprintf for formatting headers
- fast-import: use xsnprintf for writing sha1s

Code clean-up.

Will merge to 'next'.


* ah/log-decorate-default-to-auto (2017-03-21) 1 commit
- log: if --decorate is not given, default to --decorate=auto
* jk/pager-in-use (2017-03-24) 1 commit
- pager_in_use: use git_env_bool()

Code clean-up.

* sb/describe-broken (2017-03-21) 1 commit
- builtin/describe: introduce --broken flag


* sb/t3600-rephrase (2017-03-21) 1 commit
- t3600: rename test to describe its functionality
Will merge to 'next'.

--------------------------------------------------
[Stalled]
@ -196,17 +266,6 @@ of the repositories listed at
cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>


* jh/memihash-opt (2017-02-17) 5 commits
- name-hash: remember previous dir_entry during lazy_init_name_hash
- name-hash: specify initial size for istate.dir_hash table
- name-hash: precompute hash values during preload-index
- hashmap: allow memihash computation to be continued
- name-hash: eliminate duplicate memihash call

Expecting an update for perf.
cf. <MWHPR03MB29581B0EDDEDCA7D51EC396F8A280@MWHPR03MB2958.namprd03.prod.outlook.com>


* ls/filter-process-delayed (2017-03-06) 1 commit
- convert: add "status=delayed" to filter process protocol

@ -214,29 +273,6 @@ of the repositories listed at
cf. <xmqq60jmnmef.fsf@junio-linux.mtv.corp.google.com>


* sg/completion-refs-speedup (2017-02-13) 13 commits
- squash! completion: fill COMPREPLY directly when completing refs
- completion: fill COMPREPLY directly when completing refs
- completion: list only matching symbolic and pseudorefs when completing refs
- completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
- completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
- completion: let 'for-each-ref' strip the remote name from remote branches
- completion: let 'for-each-ref' and 'ls-remote' filter matching refs
- completion: don't disambiguate short refs
- completion: don't disambiguate tags and branches
- completion: support excluding full refs
- completion: support completing full refs after '--option=refs/<TAB>'
- completion: wrap __git_refs() for better option parsing
- completion: remove redundant __gitcomp_nl() options from _git_commit()

The refs completion for large number of refs has been sped up,
partly by giving up disambiguating ambiguous refs and partly by
eliminating most of the shell processing between 'git for-each-ref'
and 'ls-remote' and Bash's completion facility.

What's the donness of this topic?


* nd/worktree-move (2017-01-27) 7 commits
. fixup! worktree move: new command
. worktree remove: new command
@ -328,6 +364,137 @@ of the repositories listed at
--------------------------------------------------
[Cooking]

* jh/memihash-opt (2017-03-24) 8 commits
(merged to 'next' on 2017-03-24 at f1aa0c4d37)
+ name-hash: add test-lazy-init-name-hash to .gitignore
+ name-hash: add perf test for lazy_init_name_hash
+ name-hash: add test-lazy-init-name-hash
+ name-hash: perf improvement for lazy_init_name_hash
+ hashmap: document memihash_cont, hashmap_disallow_rehash api
+ hashmap: add disallow_rehash setting
+ hashmap: allow memihash computation to be continued
+ name-hash: specify initial size for istate.dir_hash table

The name-hash used for detecting paths that are different only in
cases (which matter on case insensitive filesystems) has been
optimized to take advantage of multi-threading when it makes sense.

Will merge to 'master'.


* sg/completion-refs-speedup (2017-03-23) 14 commits
- completion: speed up branch and tag completion
- completion: fill COMPREPLY directly when completing fetch refspecs
- completion: fill COMPREPLY directly when completing refs
- completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
- completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
- completion: let 'for-each-ref' strip the remote name from remote branches
- completion: let 'for-each-ref' and 'ls-remote' filter matching refs
- completion: don't disambiguate short refs
- completion: don't disambiguate tags and branches
- completion: support excluding full refs
- completion: support completing fully qualified non-fast-forward refspecs
- completion: support completing full refs after '--option=refs/<TAB>'
- completion: wrap __git_refs() for better option parsing
- completion: remove redundant __gitcomp_nl() options from _git_commit()
(this branch is used by sg/completion-ctags.)

The refs completion for large number of refs has been sped up,
partly by giving up disambiguating ambiguous refs and partly by
eliminating most of the shell processing between 'git for-each-ref'
and 'ls-remote' and Bash's completion facility.

Will merge to 'next'.


* mh/separate-ref-cache (2017-03-20) 20 commits
- do_for_each_entry_in_dir(): delete function
- files_pack_refs(): use reference iteration
- commit_packed_refs(): use reference iteration
- cache_ref_iterator_begin(): make function smarter
- get_loose_ref_cache(): new function
- get_loose_ref_dir(): function renamed from get_loose_refs()
- do_for_each_entry_in_dir(): eliminate `offset` argument
- refs: handle "refs/bisect/" in `loose_fill_ref_dir()`
- ref-cache: use a callback function to fill the cache
- refs: record the ref_store in ref_cache, not ref_dir
- ref-cache: introduce a new type, ref_cache
- refs: split `ref_cache` code into separate files
- ref-cache: rename `remove_entry()` to `remove_entry_from_dir()`
- ref-cache: rename `find_ref()` to `find_ref_entry()`
- ref-cache: rename `add_ref()` to `add_ref_entry()`
- refs_verify_refname_available(): use function in more places
- refs_verify_refname_available(): implement once for all backends
- refs_ref_iterator_begin(): new function
- refs_read_raw_ref(): new function
- get_ref_dir(): don't call read_loose_refs() for "refs/bisect"
(this branch uses nd/files-backend-git-dir; is tangled with nd/prune-in-worktree and nd/worktree-kill-parse-ref.)

The internals of the refs API around the cached refs has been
streamlined.

Waiting for nd/files-backend-git-dir to settle.


* jk/prefix-filename (2017-03-21) 6 commits
(merged to 'next' on 2017-03-22 at 6d180ed430)
+ bundle: use prefix_filename with bundle path
+ prefix_filename: simplify windows #ifdef
+ prefix_filename: return newly allocated string
+ prefix_filename: drop length parameter
+ prefix_filename: move docstring to header file
+ hash-object: fix buffer reuse with --path in a subdirectory

Code clean-up with minor bugfixes.

Will merge to 'master'.


* km/t1400-modernization (2017-03-21) 5 commits
(merged to 'next' on 2017-03-22 at e9c3154ca4)
+ t1400: use test_when_finished for cleanup
+ t1400: remove a set of unused output files
+ t1400: use test_path_is_* helpers
+ t1400: set core.logAllRefUpdates in "logged by touch" tests
+ t1400: rename test descriptions to be unique

Code clean-up.

Will merge to 'master'.


* ah/log-decorate-default-to-auto (2017-03-24) 1 commit
(merged to 'next' on 2017-03-24 at ce353ebfb5)
+ log: if --decorate is not given, default to --decorate=auto

The default behaviour of "git log" in an interactive session has
been changed to enable "--decorate".

Will merge to 'master'.


* sb/describe-broken (2017-03-22) 1 commit
(merged to 'next' on 2017-03-24 at 2262cbf415)
+ builtin/describe: introduce --broken flag

"git describe --dirty" dies when it cannot be determined if the
state in the working tree matches that of HEAD (e.g. broken
repository or broken submodule). The command learned a new option
"git describe --broken" to give "$name-broken" (where $name is the
description of HEAD) in such a case.

Will merge to 'master'.


* sb/t3600-rephrase (2017-03-22) 1 commit
(merged to 'next' on 2017-03-24 at 5ec1eee490)
+ t3600: rename test to describe its functionality

A test retitling.

Will merge to 'master'.


* ab/doc-submitting (2017-03-21) 3 commits
- SQUASH??? remove "alias" thing
- doc/SubmittingPatches: show how to get a CLI commit summary
@ -335,6 +502,8 @@ of the repositories listed at

Doc update.

Any further comments?


* bw/grep-recurse-submodules (2017-03-18) 2 commits
(merged to 'next' on 2017-03-21 at a57e2f0129)
@ -354,76 +523,11 @@ of the repositories listed at
A proposal to use po4a to localize our manual pages.


* jk/execv-dashed-external (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at 62119fa314)
+ run-command: fix segfault when cleaning forked async process

Fix for NO_PTHREADS build.

Will merge to 'master'.


* js/regexec-buf (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at 7381595eb7)
+ pickaxe: fix segfault with '-S<...> --pickaxe-regex'

Fix for potential segv introduced in v2.11.0 and later (also
v2.10.2).

Will merge to 'master'.


* rs/http-push-cleanup (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at fcf8d30bc0)
+ http-push: don't check return value of lookup_unknown_object()

Code clean-up.

Will merge to 'master'.


* rs/path-name-safety-cleanup (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at 78ea574469)
+ revision: remove declaration of path_name()

Code clean-up.

Will merge to 'master'.


* rs/shortlog-cleanup (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at a826dff5cf)
+ shortlog: don't set after_subject to an empty string

Code clean-up.

Will merge to 'master'.


* rs/update-hook-optim (2017-03-18) 1 commit
(merged to 'next' on 2017-03-20 at f36ede55be)
+ receive-pack: simplify run_update_post_hook()

Code clean-up.

Will merge to 'master'.


* sg/test-with-stdin (2017-03-18) 2 commits
(merged to 'next' on 2017-03-20 at a66fec5692)
+ tests: make the 'test_pause' helper work in non-verbose mode
+ tests: create an interactive gdb session with the 'debug' helper

Teach the "debug" helper used in the test framework that allows a
command to run under "gdb" to make the session interactive.

Will merge to 'master'.


* tg/stash-push-fixup (2017-03-20) 3 commits
- stash: pass the pathspec argument to git reset
- stash: make push -p -q --no-keep-index quiet
- stash: show less information for stash push -- <pathspec>
* tg/stash-push-fixup (2017-03-22) 3 commits
(merged to 'next' on 2017-03-24 at e6b9e04213)
+ stash: keep untracked files intact in stash -k
+ stash: pass the pathspec argument to git reset
+ stash: don't show internal implementation details

Recent enhancement to "git stash push" command to support pathspec
to allow only a subset of working tree changes to be stashed away
@ -432,8 +536,7 @@ of the repositories listed at
doing other things, output from reset seeped out). These, and
other chattyness has been fixed.

Looked alright.
cf. <20170317145039.dmcb3qyqbzfvtmgz@sigill.intra.peff.net>
Will merge to 'master'.


* nd/prune-in-worktree (2017-03-18) 12 commits
@ -511,17 +614,18 @@ of the repositories listed at
Expecting a reroll.
cf. <CACsJy8A6mZGjNdFbhKgWAR=XSK+2mO-HG7Vayp7VODRJwu1ixA@mail.gmail.com>
cf. <CACsJy8CC-BDHPLnE8DAXCxpttwgEsrQU9gzzc=PGsmFnh=XNpw@mail.gmail.com>
cf. <20170322133412.e2oqmqekreyuf4gr@sigill.intra.peff.net>
It is almost there; only a few minor niggles remain.


* ab/ref-filter-no-contains (2017-03-21) 16 commits
* ab/ref-filter-no-contains (2017-03-24) 16 commits
- tag: add tests for --with and --without
- tag: implicitly supply --list given the -n option
- ref-filter: reflow recently changed branch/tag/for-each-ref docs
- ref-filter: add --no-contains option to tag/branch/for-each-ref
- tag: change --point-at to default to HEAD
- tag: implicitly supply --list given another list-like option
- tag: change misleading --list <pattern> documentation
- parse-options: add OPT_NONEG to the "contains" option
- tag: add more incompatibles mode tests
- for-each-ref: partly change <object> to <commit> in help
- tag tests: fix a typo in a test description
@ -540,6 +644,8 @@ of the repositories listed at
only the refs that are not descendants of X) has been added to
them.

This looks ready for 'next'. Any comments?


* jc/name-rev (2017-03-16) 2 commits
- name-rev: favor describing with tags and use committer date to tiebreak
@ -575,16 +681,17 @@ of the repositories listed at


* bw/submodule-is-active (2017-03-18) 10 commits
- submodule add: respect submodule.active and submodule.<name>.active
- submodule--helper init: set submodule.<name>.active
- clone: teach --recurse-submodules to optionally take a pathspec
- submodule init: initialize active submodules
- submodule: decouple url and submodule interest
- submodule--helper clone: check for configured submodules using helper
- submodule sync: use submodule--helper is-active
- submodule sync: skip work for inactive submodules
- submodule status: use submodule--helper is-active
- submodule--helper: add is-active subcommand
(merged to 'next' on 2017-03-22 at 4c05cb5ab4)
+ submodule add: respect submodule.active and submodule.<name>.active
+ submodule--helper init: set submodule.<name>.active
+ clone: teach --recurse-submodules to optionally take a pathspec
+ submodule init: initialize active submodules
+ submodule: decouple url and submodule interest
+ submodule--helper clone: check for configured submodules using helper
+ submodule sync: use submodule--helper is-active
+ submodule sync: skip work for inactive submodules
+ submodule status: use submodule--helper is-active
+ submodule--helper: add is-active subcommand

"what URL do we want to update this submodule?" and "are we
interested in this submodule?" are split into two distinct
@ -593,62 +700,34 @@ of the repositories listed at
submodules and make it possible to later extend use of multiple
worktrees for a project with submodules.

Will merge to 'next'.


* dl/credential-cache-socket-in-xdg-cache (2017-03-17) 3 commits
(merged to 'next' on 2017-03-20 at 9de71bcce8)
+ credential-cache: add tests for XDG functionality
+ credential-cache: use XDG_CACHE_HOME for socket
+ path.c: add xdg_cache_home

The default location "~/.git-credential-cache/socket" for the
socket used to communicate with the credential-cache daemon has
been moved to "~/.cache/git/credential/socket".

Will merge to 'master'.


* jk/sha1dc (2017-03-17) 6 commits
(merged to 'next' on 2017-03-20 at 3455b6c19f)
+ Makefile: make DC_SHA1 the default
+ t0013: add a basic sha1 collision detection test
+ Makefile: add DC_SHA1 knob
+ sha1dc: disable safe_hash feature
+ sha1dc: adjust header includes for git
+ sha1dc: add collision-detecting sha1 implementation

The "detect attempt to create collisions" variant of SHA-1
implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft)
has been integrated and made the default.

Will merge to 'master'.


* sb/checkout-recurse-submodules (2017-03-16) 19 commits
- builtin/read-tree: add --recurse-submodules switch
- builtin/checkout: add --recurse-submodules switch
- entry.c: create submodules when interesting
- unpack-trees: check if we can perform the operation for submodules
- unpack-trees: pass old oid to verify_clean_submodule
- update submodules: add submodule_move_head
- submodule.c: get_super_prefix_or_empty
- update submodules: move up prepare_submodule_repo_env
- submodules: introduce check to see whether to touch a submodule
- update submodules: add a config option to determine if submodules are updated
- update submodules: add submodule config parsing
- make is_submodule_populated gently
- lib-submodule-update.sh: define tests for recursing into submodules
- lib-submodule-update.sh: replace sha1 by hash
- lib-submodule-update: teach test_submodule_content the -C <dir> flag
- lib-submodule-update.sh: do not use ./. as submodule remote
- lib-submodule-update.sh: reorder create_lib_submodule_repo
- submodule--helper.c: remove duplicate code
- connect_work_tree_and_git_dir: safely create leading directories
(merged to 'next' on 2017-03-22 at 48b49d572c)
+ builtin/read-tree: add --recurse-submodules switch
+ builtin/checkout: add --recurse-submodules switch
+ entry.c: create submodules when interesting
+ unpack-trees: check if we can perform the operation for submodules
+ unpack-trees: pass old oid to verify_clean_submodule
+ update submodules: add submodule_move_head
+ submodule.c: get_super_prefix_or_empty
+ update submodules: move up prepare_submodule_repo_env
+ submodules: introduce check to see whether to touch a submodule
+ update submodules: add a config option to determine if submodules are updated
+ update submodules: add submodule config parsing
+ make is_submodule_populated gently
+ lib-submodule-update.sh: define tests for recursing into submodules
+ lib-submodule-update.sh: replace sha1 by hash
+ lib-submodule-update: teach test_submodule_content the -C <dir> flag
+ lib-submodule-update.sh: do not use ./. as submodule remote
+ lib-submodule-update.sh: reorder create_lib_submodule_repo
+ submodule--helper.c: remove duplicate code
+ connect_work_tree_and_git_dir: safely create leading directories

"git checkout" is taught --recurse-submodules option.
"git checkout" is taught the "--recurse-submodules" option.

Will merge to 'next'.
Will merge to 'master'.


* jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit