]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2017/05 #05)
authorJunio C Hamano <gitster@pobox.com>
Tue, 16 May 2017 04:28:24 +0000 (13:28 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 16 May 2017 04:28:24 +0000 (13:28 +0900)
whats-cooking.txt

index 606e72c02f432dc40ca71a336a632797b1b0d0ed..f1db9989a27e059d4049d8375658cd471b1e266e 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (May 2017, #04; Fri, 12)
-X-master-at: b06d3643105c8758ed019125a4399cb7efdcce2c
-X-next-at: 4ebf3021692df4cb51da8d806fbb8b909ee7e111
+Subject: What's cooking in git.git (May 2017, #05; Tue, 16)
+X-master-at: 10c78a162fa821ee85203165b805ff46be454091
+X-next-at: 0c0372eb028443d4e8877a833f6afee01c842345
 
-What's cooking in git.git (May 2017, #04; Fri, 12)
+What's cooking in git.git (May 2017, #05; Tue, 16)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -12,102 +12,276 @@ 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 tip of 'next' has been rewound, and the first batch of topics
+for the next release have been merged to 'master'.  I tentatively
+wrote doen that this cycle will last for 11 weeks, completing at the
+end of July.
+
 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
 
 --------------------------------------------------
-[New Topics]
+[Graduated to "master"]
 
-* bw/pathspec-sans-the-index (2017-05-12) 6 commits
- - pathspec: convert find_pathspecs_matching_against_index to take an index
- - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
- - ls-files: prevent prune_cache from overeagerly pruning submodules
- - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
- - submodule: add die_in_unpopulated_submodule function
- - pathspec: provide a more descriptive die message
+* ab/aix-needs-compat-regex (2017-05-04) 1 commit
+  (merged to 'next' on 2017-05-09 at 881202b6bb)
+ + config.mak.uname: set NO_REGEX=NeedsStartEnd on AIX
 
- Simplify parse_pathspec() codepath and stop it from looking at the
- default in-core index.
+ Build fix.
 
 
-* jt/fetch-allow-tip-sha1-implicitly (2017-05-12) 1 commit
- - fetch-pack: always allow fetching of literal SHA1s
+* ab/clone-no-tags (2017-05-01) 3 commits
+  (merged to 'next' on 2017-04-30 at 601649896a)
+ + tests: rename a test having to do with shallow submodules
+ + clone: add a --no-tags option to clone without tags
+ + tests: change "cd ... && git fetch" to "cd &&\n\tgit fetch"
 
- There is no good reason why "git fetch $there $sha1" should fail
- when the $sha1 names an object at the tip of an advertised ref,
even when the other side hasn't enabled allowTipSHA1InWant.
+ "git clone" learned the "--no-tags" option not to fetch all tags
+ initially, and also set up the tagopt not to follow any tags in
subsequent fetches.
 
 
-* jc/read-tree-empty-with-m (2017-05-10) 1 commit
- - read-tree: "read-tree -m --empty" does not make sense
+* bw/submodule-has-commits-update (2017-05-02) 6 commits
+  (merged to 'next' on 2017-05-08 at 57267f2277)
+ + submodule: refactor logic to determine changed submodules
+ + submodule: improve submodule_has_commits()
+ + submodule: change string_list changed_submodule_paths
+ + submodule: remove add_oid_to_argv()
+ + submodule: rename free_submodules_sha1s()
+ + submodule: rename add_sha1_to_array()
 
- "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
- --empty if you want to clear the index".  With "-m", such a request
- will still fail anyway, as you'd need to name at least one tree-ish
- to be merged.
+ Code clean-up and duplicate removal.
+
+
+* dt/gc-ignore-old-gc-logs (2017-04-24) 3 commits
+  (merged to 'next' on 2017-04-26 at 4f4cab8368)
+ + test-lib: retire $remove_trash variable
+ + test-lib.sh: do not barf under --debug at the end of the test
+ + test-lib: abort when can't remove trash directory
+
+ Attempt to allow us notice "fishy" situation where we fail to
+ remove the temporary directory used during the test.
+
+
+* dt/raise-core-packed-git-limit (2017-04-20) 1 commit
+  (merged to 'next' on 2017-04-26 at c72dd8c62f)
+ + Increase core.packedGitLimit
+
+ The default packed-git limit value has been raised on larger
+ platforms to save "git fetch" from a (recoverable) failure while
+ "gc" is running in parallel.
+
+
+* jc/apply-fix-mismerge (2017-05-08) 1 commit
+  (merged to 'next' on 2017-05-09 at e0b89532d0)
+ + apply.c: fix whitespace-only mismerge
+
+ Mismerge fix.
+
+
+* jk/am-leakfix (2017-04-27) 3 commits
+  (merged to 'next' on 2017-04-30 at 78becd7a96)
+ + am: shorten ident_split variable name in get_commit_info()
+ + am: simplify allocations in get_commit_info()
+ + am: fix commit buffer leak in get_commit_info()
+
+ The codepath in "git am" that is used when running "git rebase"
+ leaked memory held for the log message of the commits being rebased.
+
+
+* jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit
+  (merged to 'next' on 2017-04-26 at 45fbe9d57d)
+ + cache-tree: reject entries with null sha1
+
+ Code to update the cache-tree has been tightened so that we won't
+ accidentally write out any 0{40} entry in the tree object.
+
+
+* jn/clone-add-empty-config-from-command-line (2017-05-02) 1 commit
+  (merged to 'next' on 2017-05-09 at c56ac3f782)
+ + clone: handle empty config values in -c
+
+ "git clone --config var=val" is a way to populate the
+ per-repository configuration file of the new repository, but it did
+ not work well when val is an empty string.  This has been fixed.
+
+
+* jn/credential-doc-on-clear (2017-05-02) 1 commit
+  (merged to 'next' on 2017-05-09 at 96fa65d122)
+ + credential doc: make multiple-helper behavior more prominent
+
+ Doc update.
+
+
+* js/larger-timestamps (2017-05-09) 9 commits
+  (merged to 'next' on 2017-05-09 at ae0603fd3e)
+ + archive-tar: fix a sparse 'constant too large' warning
+  (merged to 'next' on 2017-04-28 at b56a0d38cd)
+ + use uintmax_t for timestamps
+ + date.c: abort if the system time cannot handle one of our timestamps
+ + timestamp_t: a new data type for timestamps
+ + PRItime: introduce a new "printf format" for timestamps
+ + parse_timestamp(): specify explicitly where we parse timestamps
+ + t0006 & t5000: skip "far in the future" test when time_t is too limited
+ + t0006 & t5000: prepare for 64-bit timestamps
+ + ref-filter: avoid using `unsigned long` for catch-all data type
+
+ Some platforms have ulong that is smaller than time_t, and our
+ historical use of ulong for timestamp would mean they cannot
+ represent some timestamp that the platform allows.  Invent a
+ separate and dedicated timestamp_t (so that we can distingiuish
+ timestamps and a vanilla ulongs, which along is already a good
+ move), and then declare uintmax_t is the type to be used as the
+ timestamp_t.
+
+
+* jt/use-trailer-api-in-commands (2017-04-26) 1 commit
+  (merged to 'next' on 2017-04-30 at 006c8d7ebd)
+ + sequencer: add newline before adding footers
+
+ "git cherry-pick" and other uses of the sequencer machinery
+ mishandled a trailer block whose last line is an incomplete line.
+ This has been fixed so that an additional sign-off etc. are added
+ after completing the existing incomplete line.
+
+
+* ls/travis-doc-asciidoctor (2017-04-26) 4 commits
+  (merged to 'next' on 2017-05-04 at 813ba54fc3)
+ + travis-ci: check AsciiDoc/AsciiDoctor stderr output
+  (merged to 'next' on 2017-04-19 at 359c32953b)
+ + travis-ci: unset compiler for jobs that do not need one
+ + travis-ci: parallelize documentation build
+ + travis-ci: build documentation with AsciiDoc and Asciidoctor
+
+ Travis CI gained a task to format the documentation with both
+ AsciiDoc and AsciiDoctor.
+
+
+* nd/worktree-kill-parse-ref (2017-04-24) 6 commits
+  (merged to 'next' on 2017-04-26 at b8e40da709)
+ + refs: kill set_worktree_head_symref()
+ + worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
+ + refs: introduce get_worktree_ref_store()
+ + refs: add REFS_STORE_ALL_CAPS
+ + refs.c: make submodule ref store hashmap generic
+ + environment.c: fix potential segfault by get_git_common_dir()
+ (this branch is used by nd/prune-in-worktree.)
+
+ "git gc" did not interact well with "git worktree"-managed
+ per-worktree refs.
+
+
+* rs/large-zip (2017-05-01) 7 commits
+  (merged to 'next' on 2017-05-02 at a03574e49b)
+ + t5004: require 64-bit support for big ZIP tests
+ + archive-zip: set version field for big files correctly
+  (merged to 'next' on 2017-04-26 at a6beab60f2)
+ + archive-zip: support files bigger than 4GB
+ + archive-zip: support archives bigger than 4GB
+ + archive-zip: write ZIP dir entry directly to strbuf
+ + archive-zip: use strbuf for ZIP directory
+ + archive-zip: add tests for big ZIP archives
+
+ "git archive --format=zip" learned to use zip64 extension when
+ necessary to go beyond the 4GB limit.
+
+
+* sk/status-short-branch-color-config (2017-04-28) 2 commits
+  (merged to 'next' on 2017-04-30 at 2a7eb05d7b)
+ + status: add color config slots for branch info in "--short --branch"
+ + status: fix missing newline when comment chars are disabled
+
+ The colors in which "git status --short --branch" showed the names
+ of the current branch and its remote-tracking branch are now
+ configurable.
+
+--------------------------------------------------
+[New Topics]
+
+* ah/log-decorate-default-to-auto (2017-05-15) 1 commit
+ - builtin/log: honor log.decorate
+
+ Setting "log.decorate=false" in the configuration file did not take
+ effect in v2.13, which has been corrected.
 
  Will merge to 'next'.
 
 
-* ab/perf-wildmatch (2017-05-12) 2 commits
- - perf: add test showing exponential growth in path globbing
- - perf: add function to setup a fresh test repo
+* jh/memihash-opt (2017-05-16) 5 commits
+ - p0004: don't error out if test repo is too small
+ - p0004: don't abort if multi-threaded is too slow
+ - p0004: use test_perf
+ - p0004: avoid using pipes
+ - p0004: simplify calls of test-lazy-init-name-hash
 
Add perf-test for wildmatch.
perf-test update.
 
  Will merge to 'next'.
 
 
-* jk/doc-config-include (2017-05-12) 4 commits
- - docs/config: consistify include.path examples
- - docs/config: avoid the term "expand" for includes
- - docs/config: give a relative includeIf example
- - docs/config: clarify include/includeIf relationship
+* jk/bug-to-abort (2017-05-15) 3 commits
+ - config: complain about --local outside of a git repo
+ - setup_git_env: convert die("BUG") to BUG()
+ - usage.c: add BUG() function
 
- Clarify documentation for include.path and includeIf.<condition>.path
- configuration variables.
+ Introduce the BUG() macro to improve die("BUG: ...").
 
  Will merge to 'next'.
 
 
-* js/retire-old-remote-spec (2017-05-12) 11 commits
- - PREVIEW: remove support for .git/remotes/ and .git/branches/
- - PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
- - PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
- - PREVIEW: remote: remove support for migrating ancient remotes
- - PREVIEW: t5516: stop testing .git/branches/ functionality
- - PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
- - Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
- - remote: warn loud and clear when .git/remotes/ is *still* used
- - remote: warn loud and clear when .git/branches/ is *still* used
- - Documentation: really deprecate .git/remotes/ and .git/branches/
- - git-parse-remote: fix highly misleading man page
+* jk/no-looking-at-dotgit-outside-repo (2017-05-15) 1 commit
+ - config: complain about --local outside of a git repo
 
- Stop reading from .git/remotes/ and .git/branches/, two old ways
- that we have been supporting to configure short-hands for fetching
- from remote repositories.
+ Will discard.
+ Superseded by jk/bug-to-abort.
 
 
-* ab/grep-preparatory-cleanup (2017-05-12) 15 commits
- - grep: add tests to fix blind spots with \0 patterns
- - grep: prepare for testing binary regexes containing rx metacharacters
- - SQUASH???
- - grep: add a test helper function for less verbose -f \0 tests
- - grep: add tests for grep pattern types being passed to submodules
- - grep: amend submodule recursion test for regex engine testing
- - grep: add tests for --threads=N and grep.threads
- - SQUASH???
- - grep: change non-ASCII -i test to stop using --debug
- - grep: add a test for backreferences in PCRE patterns
- - grep: add a test asserting that --perl-regexp dies when !PCRE
- - log: add exhaustive tests for pattern style options & config
- - test-lib: rename the LIBPCRE prerequisite to PCRE
- - grep & rev-list doc: stop promising libpcre for --perl-regexp
- - Makefile & configure: reword inaccurate comment about PCRE
+* jk/update-links-in-docs (2017-05-15) 1 commit
+ - doc: use https links to Wikipedia to avoid http redirects
+
+ A few http:// links that are redirected to https:// in the
+ documentation have been updated to https:// links.
+
+ Will merge to 'next'.
 
- (what is queued here is only the early part of a larger series)
+
+* js/blame-lib (2017-05-15) 22 commits
+ - blame: create entry prepend function in libgit
+ - blame: create scoreboard setup function in libgit
+ - blame: create scoreboard init function in libgit
+ - blame: move scoreboard-related methods to libgit
+ - blame: move fake-commit-related methods to libgit
+ - blame: move origin-related methods to libgit
+ - blame: rework methods that determine 'final' commit
+ - blame: wrap blame_sort and compare_blame_final
+ - blame: move progess updates to a scoreboard callback
+ - blame: make sanity_check use a callback in scoreboard
+ - blame: move no_whole_file_rename flag to scoreboard
+ - blame: move xdl_opts flags to scoreboard
+ - blame: move show_root flag to scoreboard
+ - blame: move reverse flag to scoreboard
+ - blame: move contents_from to scoreboard
+ - blame: move copy/move thresholds to scoreboard
+ - blame: move stat counters to scoreboard
+ - blame: move scoreboard structure to header
+ - blame: move origin and entry structures to header
+ - blame: remove unused parameters
+ - blame: move textconv_object with related functions
+ - blame: remove unneeded dependency on blob.h
+
+ The internal logic used in "git blame" has been libified to make it
+ easier to use by cgit.
+
+
+* jt/send-email-validate-hook (2017-05-16) 1 commit
+ - send-email: support validate hook
+
+ "git send-email" learned to run sendemail-validate hook to inspect
+ and reject a message before sending it out.
+
+ Will merge to 'next'.
 
 --------------------------------------------------
 [Stalled]
@@ -168,27 +342,6 @@ of the repositories listed at
  GSoC microproject.
 
 
-* jc/bundle (2016-03-03) 6 commits
- - index-pack: --clone-bundle option
- - Merge branch 'jc/index-pack' into jc/bundle
- - bundle v3: the beginning
- - bundle: keep a copy of bundle file name in the in-core bundle header
- - bundle: plug resource leak
- - bundle doc: 'verify' is not about verifying the bundle
-
- The beginning of "split bundle", which could be one of the
- ingredients to allow "git clone" traffic off of the core server
- network to CDN.
-
- This was surrected from a "to be discarded" pile, as from time to
- time people wonder about resumable clone that can be primed without
- bothering Git servers with dynamic packfile creation, and some
- people seem to think that the topic could serve as a useful
- building block for that goal.  But nothing seem to have happend.
- Unless people really want it, I am inclined to discard this topic.
- Opinions?
-
-
 * ls/filter-process-delayed (2017-03-06) 1 commit
  - convert: add "status=delayed" to filter process protocol
 
@@ -209,47 +362,116 @@ of the repositories listed at
  cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
 
 
-* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
- - grep: use '/' delimiter for paths
- - grep: only add delimiter if there isn't one already
+--------------------------------------------------
+[Cooking]
 
- "git grep", when fed a tree-ish as an input, shows each hit
- prefixed with "<tree-ish>:<path>:<lineno>:".  As <tree-ish> is
- almost always either a commit or a tag that points at a commit, the
- early part of the output "<tree-ish>:<path>" can be used as the
- name of the blob and given to "git show".  When <tree-ish> is a
- tree given in the extended SHA-1 syntax (e.g. "<commit>:", or
- "<commit>:<dir>"), however, this results in a string that does not
- name a blob (e.g. "<commit>::<path>" or "<commit>:<dir>:<path>").
- "git grep" has been taught to be a bit more intelligent about these
- cases and omit a colon (in the former case) or use slash (in the
- latter case) to produce "<commit>:<path>" and
- "<commit>:<dir>/<path>" that can be used as the name of a blob.
+* bw/pathspec-sans-the-index (2017-05-12) 6 commits
+ - pathspec: convert find_pathspecs_matching_against_index to take an index
+ - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
+ - ls-files: prevent prune_cache from overeagerly pruning submodules
+ - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
+ - submodule: add die_in_unpopulated_submodule function
+ - pathspec: provide a more descriptive die message
 
- Will discard.
- Nobody seems to be championing this change, after asked in all
- recent "What's cooking" report:
- "Is this good enough with known limitations?"
+ Simplify parse_pathspec() codepath and stop it from looking at the
+ default in-core index.
 
+ Will merge to 'next'.
 
-* 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
 
- "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.
+* jt/fetch-allow-tip-sha1-implicitly (2017-05-16) 1 commit
+ - fetch-pack: always allow fetching of literal SHA1s
+
+ There is no good reason why "git fetch $there $sha1" should fail
+ when the $sha1 names an object at the tip of an advertised ref,
+ even when the other side hasn't enabled allowTipSHA1InWant.
+
+ Will merge to 'next'.
+
+
+* jc/read-tree-empty-with-m (2017-05-10) 1 commit
+ - read-tree: "read-tree -m --empty" does not make sense
+
+ "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
+ --empty if you want to clear the index".  With "-m", such a request
+ will still fail anyway, as you'd need to name at least one tree-ish
+ to be merged.
+
+ Will merge to 'next'.
+
+
+* ab/perf-wildmatch (2017-05-12) 2 commits
+ - perf: add test showing exponential growth in path globbing
+ - perf: add function to setup a fresh test repo
+
+ Add perf-test for wildmatch.
+
+ Will merge to 'next'.
+
+
+* jk/doc-config-include (2017-05-12) 4 commits
+ - docs/config: consistify include.path examples
+ - docs/config: avoid the term "expand" for includes
+ - docs/config: give a relative includeIf example
+ - docs/config: clarify include/includeIf relationship
+
+ Clarify documentation for include.path and includeIf.<condition>.path
+ configuration variables.
+
+ Will merge to 'next'.
+
+
+* js/retire-old-remote-spec (2017-05-12) 11 commits
+ - PREVIEW: remove support for .git/remotes/ and .git/branches/
+ - PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
+ - PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
+ - PREVIEW: remote: remove support for migrating ancient remotes
+ - PREVIEW: t5516: stop testing .git/branches/ functionality
+ - PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
+ - Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
+ - remote: warn loud and clear when .git/remotes/ is *still* used
+ - remote: warn loud and clear when .git/branches/ is *still* used
+ - Documentation: really deprecate .git/remotes/ and .git/branches/
+ - git-parse-remote: fix highly misleading man page
+
+ Stop reading from .git/remotes/ and .git/branches/, two old ways
+ that we have been supporting to configure short-hands for fetching
+ from remote repositories.
+
 
- The fix in this patch is broken, unfortunately.
+* ab/grep-preparatory-cleanup (2017-05-15) 29 commits
+ - grep: assert that threading is enabled when calling grep_{lock,unlock}
+ - grep: given --threads with NO_PTHREADS=YesPlease, warn
+ - pack-objects: fix buggy warning about threads
+ - pack-objects & index-pack: add test for --threads warning
+ - test-lib: add a PTHREADS prerequisite
+ - grep: move is_fixed() earlier to avoid forward declaration
+ - grep: change internal *pcre* variable & function names to be *pcre1*
+ - grep: change the internal PCRE macro names to be PCRE1
+ - grep: factor test for \0 in grep patterns into a function
+ - grep: remove redundant `regflags &= ~REG_EXTENDED` assignments
+ - grep: remove redundant regflags assignment under PCRE
+ - grep: catch a missing enum in switch statement
+ - perf: add a performance comparison of fixed-string grep
+ - perf: add a performance comparison test of grep -G, -E and -P
+ - perf: emit progress output when unpacking & building
+ - perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
+ - grep: add tests to fix blind spots with \0 patterns
+ - grep: prepare for testing binary regexes containing rx metacharacters
+ - grep: add a test helper function for less verbose -f \0 tests
+ - grep: add tests for grep pattern types being passed to submodules
+ - grep: amend submodule recursion test for regex engine testing
+ - grep: add tests for --threads=N and grep.threads
+ - grep: change non-ASCII -i test to stop using --debug
+ - grep: add a test for backreferences in PCRE patterns
+ - grep: add a test asserting that --perl-regexp dies when !PCRE
+ - log: add exhaustive tests for pattern style options & config
+ - test-lib: rename the LIBPCRE prerequisite to PCRE
+ - grep & rev-list doc: stop promising libpcre for --perl-regexp
+ - Makefile & configure: reword inaccurate comment about PCRE
 
Will discard.
The internal implementation of "git grep" has seen some clean-up.
 
---------------------------------------------------
-[Cooking]
 
 * ab/compat-regex-update (2017-05-12) 3 commits
  - DONTMERGE compat/regex: make it compile with -Werror=int-to-pointer-cast
@@ -259,12 +481,8 @@ of the repositories listed at
  Update compat/regex we borrowed from gawk.  It seems that some
  customizations we made to the older one were dropped by mistake.
 
-
-* jc/apply-fix-mismerge (2017-05-08) 1 commit
-  (merged to 'next' on 2017-05-09 at e0b89532d0)
- + apply.c: fix whitespace-only mismerge
-
- Will merge to 'master'.
+ Will discard.
+ cf. <CACBZZX4UUwzRQmyH8joYaqHnuVTjVtGBHp+iZKcnAnwoM_ZJhg@mail.gmail.com>
 
 
 * jt/push-options-doc (2017-05-10) 2 commits
@@ -281,37 +499,17 @@ of the repositories listed at
  - DONTMERGE: unpack-trees: preserve index extensions
 
 
-* sg/clone-refspec-from-command-line-config (2017-05-09) 2 commits
- - git-clone --config order & fetching extra refs during initial clone
- - clone: respect configured fetch respecs during initial fetch
+* sg/clone-refspec-from-command-line-config (2017-05-16) 4 commits
+ - clone: use free_refspec() to free refspec list
+ - remote: drop free_refspecs() function
+ - Documentation/clone: document ignored configuration variables
+ - clone: respect additional configured fetch refspecs during initial fetch
 
  "git clone -c var=val" is a way to set configuration variables in
  the resulting repository, but it is more useful to also make these
  variables take effect while the initial clone is happening,
  e.g. these configuration variables could be fetch refspecs.
 
- Will merge to 'next'.
-
-
-* jn/clone-add-empty-config-from-command-line (2017-05-02) 1 commit
-  (merged to 'next' on 2017-05-09 at c56ac3f782)
- + clone: handle empty config values in -c
-
- "git clone --config var=val" is a way to populate the
- per-repository configuration file of the new repository, but it did
- not work well when val is an empty string.  This has been fixed.
-
- Will merge to 'master'.
-
-
-* jn/credential-doc-on-clear (2017-05-02) 1 commit
-  (merged to 'next' on 2017-05-09 at 96fa65d122)
- + credential doc: make multiple-helper behavior more prominent
-
- Doc update.
-
- Will merge to 'master'.
-
 
 * sb/checkout-recurse-submodules (2017-05-04) 3 commits
  - submodule: properly recurse for read-tree and checkout
@@ -324,15 +522,6 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* ab/aix-needs-compat-regex (2017-05-04) 1 commit
-  (merged to 'next' on 2017-05-09 at 881202b6bb)
- + config.mak.uname: set NO_REGEX=NeedsStartEnd on AIX
-
- Build fix.
-
- Will merge to 'master'.
-
-
 * ja/do-not-ask-needless-questions (2017-05-12) 3 commits
  - git-filter-branch: be more direct in an error message
  - read-tree -m: make error message for merging 0 trees less smart aleck
@@ -342,7 +531,7 @@ of the repositories listed at
  not require an answer, which can confuse new users and non native
  speakers.  Attempt to rephrase them.
 
- Will merge to 'next', after waiting for a few days.
+ Will merge to 'next'.
 
 
 * ab/doc-replace-gmane-links (2017-05-09) 2 commits
@@ -367,7 +556,7 @@ of the repositories listed at
  that output strings that should not be translated are not
  translated by mistake), and tell TravisCI to run them.
 
- Will merge to 'next' after a few rounds in 'pu'.
+ Will merge to 'next'.
 
 
 * bw/dir-c-stops-relying-on-the-index (2017-05-06) 14 commits
@@ -458,18 +647,6 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* jk/am-leakfix (2017-04-27) 3 commits
-  (merged to 'next' on 2017-04-30 at 78becd7a96)
- + am: shorten ident_split variable name in get_commit_info()
- + am: simplify allocations in get_commit_info()
- + am: fix commit buffer leak in get_commit_info()
-
- The codepath in "git am" that is used when running "git rebase"
- leaked memory held for the log message of the commits being rebased.
-
- Will merge to 'master'.
-
-
 * js/plug-leaks (2017-05-09) 26 commits
  - checkout: fix memory leak
  - submodule_uses_worktrees(): plug memory leak
@@ -503,22 +680,12 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* sk/status-short-branch-color-config (2017-04-28) 2 commits
-  (merged to 'next' on 2017-04-30 at 2a7eb05d7b)
- + status: add color config slots for branch info in "--short --branch"
- + status: fix missing newline when comment chars are disabled
-
- The colors in which "git status --short --branch" showed the names
- of the current branch and its remote-tracking branch are now
- configurable.
-
- Will merge to 'master'.
-
-
 * jh/close-index-before-stat (2017-04-28) 1 commit
-  (merged to 'next' on 2017-04-30 at 918d4f3378)
+  (merged to 'next' on 2017-05-16 at 0c0372eb02)
  + read-cache: close index.lock in do_write_index
 
+ Originally merged to 'next' on 2017-04-30
+
  The timestamp of the index file is now taken after the file is
  closed, to help Windows, on which a stale timestamp is reported by
  fstat() on a file that is opened for writing and data was written
@@ -527,20 +694,6 @@ of the repositories listed at
  Will cook in 'next'.
 
 
-* bw/submodule-has-commits-update (2017-05-02) 6 commits
-  (merged to 'next' on 2017-05-08 at 57267f2277)
- + submodule: refactor logic to determine changed submodules
- + submodule: improve submodule_has_commits()
- + submodule: change string_list changed_submodule_paths
- + submodule: remove add_oid_to_argv()
- + submodule: rename free_submodules_sha1s()
- + submodule: rename add_sha1_to_array()
-
- Code clean-up and duplicate removal.
-
- Will merge to 'master'.
-
-
 * ls/travis-relays-for-windows-ci (2017-05-04) 2 commits
  - travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503
  - travis-ci: handle Git for Windows CI status "failed" explicitly
@@ -575,18 +728,6 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* dt/gc-ignore-old-gc-logs (2017-04-24) 3 commits
-  (merged to 'next' on 2017-04-26 at 4f4cab8368)
- + test-lib: retire $remove_trash variable
- + test-lib.sh: do not barf under --debug at the end of the test
- + test-lib: abort when can't remove trash directory
-
- An attempt to allow us notice "fishy" situation where we fail to
- remove the temporary directory used during the test.
-
- Will merge to 'master'.
-
-
 * nd/fopen-errors (2017-05-09) 23 commits
  - t1308: add a test case on open a config directory
  - config.c: handle error on failing to fopen()
@@ -617,41 +758,6 @@ of the repositories listed at
  errors if they are not due to missing files.
 
 
-* dt/raise-core-packed-git-limit (2017-04-20) 1 commit
-  (merged to 'next' on 2017-04-26 at c72dd8c62f)
- + Increase core.packedGitLimit
-
- Raise the default packed-git limit value on larger platforms to
- avoid "git fetch" from a (recoverable) failure while "gc" is
- running in parallel.
-
- Will merge to 'master'.
-
-
-* js/larger-timestamps (2017-05-09) 9 commits
-  (merged to 'next' on 2017-05-09 at ae0603fd3e)
- + archive-tar: fix a sparse 'constant too large' warning
-  (merged to 'next' on 2017-04-28 at b56a0d38cd)
- + use uintmax_t for timestamps
- + date.c: abort if the system time cannot handle one of our timestamps
- + timestamp_t: a new data type for timestamps
- + PRItime: introduce a new "printf format" for timestamps
- + parse_timestamp(): specify explicitly where we parse timestamps
- + t0006 & t5000: skip "far in the future" test when time_t is too limited
- + t0006 & t5000: prepare for 64-bit timestamps
- + ref-filter: avoid using `unsigned long` for catch-all data type
-
- Some platforms have ulong that is smaller than time_t, and our
- historical use of ulong for timestamp would mean they cannot
- represent some timestamp that the platform allows.  Invent a
- separate and dedicated timestamp_t (so that we can distingiuish
- timestamps and a vanilla ulongs, which along is already a good
- move), and then declare uintmax_t is the type to be used as the
- timestamp_t
-
- Will merge to 'master'.
-
-
 * bc/object-id (2017-05-08) 53 commits
  - object: convert parse_object* to take struct object_id
  - tree: convert parse_tree_indirect to struct object_id
@@ -712,33 +818,6 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit
-  (merged to 'next' on 2017-04-26 at 45fbe9d57d)
- + cache-tree: reject entries with null sha1
-
- Tighten code to update cache-tree so that we won't accidentally
- write out any 0{40} entry in the tree object.
-
- Will merge to 'master'.
-
-
-* rs/large-zip (2017-05-01) 7 commits
-  (merged to 'next' on 2017-05-02 at a03574e49b)
- + t5004: require 64-bit support for big ZIP tests
- + archive-zip: set version field for big files correctly
-  (merged to 'next' on 2017-04-26 at a6beab60f2)
- + archive-zip: support files bigger than 4GB
- + archive-zip: support archives bigger than 4GB
- + archive-zip: write ZIP dir entry directly to strbuf
- + archive-zip: use strbuf for ZIP directory
- + archive-zip: add tests for big ZIP archives
-
- "git archive --format=zip" learned to use zip64 extension when
- necessary to go beyond the 4GB limit.
-
- Will merge to 'master'.
-
-
 * jc/checkout-working-tree-only (2017-04-27) 1 commit
  - checkout: add --working-tree-only option
 
@@ -768,52 +847,26 @@ of the repositories listed at
  Needs review.
 
 
-* jt/use-trailer-api-in-commands (2017-04-26) 1 commit
-  (merged to 'next' on 2017-04-30 at 006c8d7ebd)
- + sequencer: add newline before adding footers
-
- "git cherry-pick" and other uses of the sequencer machinery
- mishandled a trailer block whose last line is an incomplete line.
- This has been fixed so that an additional sign-off etc. are added
- after completing the existing incomplete line.
-
- Will merge to 'master'.
-
-
-* ab/clone-no-tags (2017-05-01) 3 commits
-  (merged to 'next' on 2017-04-30 at 601649896a)
- + tests: rename a test having to do with shallow submodules
- + clone: add a --no-tags option to clone without tags
- + tests: change "cd ... && git fetch" to "cd &&\n\tgit fetch"
-
- "git clone" learned the "--no-tags" option not to fetch all tags
- initially, and also set up the tagopt not to follow any tags in
- subsequent fetches.
-
- Will merge to 'master'.
-
-
-* bw/forking-and-threading (2017-04-25) 13 commits
-  (merged to 'next' on 2017-04-26 at 89c495e37f)
- + run-command: restrict PATH search to executable files
- + run-command: expose is_executable function
-  (merged to 'next' on 2017-04-23 at 7754b5ebc3)
- + run-command: block signals between fork and execve
- + run-command: add note about forking and threading
- + run-command: handle dup2 and close errors in child
- + run-command: eliminate calls to error handling functions in child
- + run-command: don't die in child when duping /dev/null
- + run-command: prepare child environment before forking
- + string-list: add string_list_remove function
- + run-command: use the async-signal-safe execv instead of execvp
- + run-command: prepare command before forking
- + t0061: run_command executes scripts without a #! line
- + t5550: use write_script to generate post-update hook
+* bw/forking-and-threading (2017-05-15) 14 commits
+ - usage.c: drop set_error_handle()
+ - run-command: restrict PATH search to executable files
+ - run-command: expose is_executable function
+ - run-command: block signals between fork and execve
+ - run-command: add note about forking and threading
+ - run-command: handle dup2 and close errors in child
+ - run-command: eliminate calls to error handling functions in child
+ - run-command: don't die in child when duping /dev/null
+ - run-command: prepare child environment before forking
+ - string-list: add string_list_remove function
+ - run-command: use the async-signal-safe execv instead of execvp
+ - run-command: prepare command before forking
+ - t0061: run_command executes scripts without a #! line
+ - t5550: use write_script to generate post-update hook
 
  The "run-command" API implementation has been made more robust
  against dead-locking in a threaded environment.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
 * sb/reset-recurse-submodules (2017-04-23) 4 commits
@@ -827,27 +880,14 @@ of the repositories listed at
  Will merge to 'next'.
 
 
-* ls/travis-doc-asciidoctor (2017-04-26) 4 commits
-  (merged to 'next' on 2017-05-04 at 813ba54fc3)
- + travis-ci: check AsciiDoc/AsciiDoctor stderr output
-  (merged to 'next' on 2017-04-19 at 359c32953b)
- + travis-ci: unset compiler for jobs that do not need one
- + travis-ci: parallelize documentation build
- + travis-ci: build documentation with AsciiDoc and Asciidoctor
-
- Have Travis CI format the documentation with both AsciiDoc and
- AsciiDoctor.
-
- Will merge to 'master'.
-
-
-* bp/sub-process-convert-filter (2017-05-08) 10 commits
+* bp/sub-process-convert-filter (2017-05-15) 11 commits
  - convert: update subprocess_read_status() to not die on EOF
  - sub-process: move sub-process functions into separate files
  - convert: rename reusable sub-process functions
  - convert: update generic functions to only use generic data structures
  - convert: separate generic structures and variables from the filter specific ones
  - convert: split start_multi_file_filter() into two separate functions
+ - pkt-line: annotate packet_writel with LAST_ARG_MUST_BE_NULL
  - convert: move packet_write_line() into pkt-line as packet_writel()
  - pkt-line: add packet_read_line_gently()
  - pkt-line: fix packet_read_line() to handle len < 0 errors
@@ -872,7 +912,6 @@ of the repositories listed at
  - revision.c: --indexed-objects add objects from all worktrees
  - revision.c: refactor add_index_objects_to_pending()
  - revision.h: new flag in struct rev_info wrt. worktree-related refs
- (this branch uses nd/worktree-kill-parse-ref.)
 
  "git gc" and friends when multiple worktrees are used off of a
  single repository did not consider the index and per-worktree refs
@@ -881,25 +920,9 @@ of the repositories listed at
  garbage collection.
 
  Expecting a reroll.
Waiting for nd/worktree-kill-parse-ref to settle.
Has been waiting for nd/worktree-kill-parse-ref to settle.
  cf. <CACsJy8ADCVBiLoPg_Tz0L6CMdh_eFmK4RYzfQ-PmUgBK7w9e=A@mail.gmail.com>
 
-
-* nd/worktree-kill-parse-ref (2017-04-24) 6 commits
-  (merged to 'next' on 2017-04-26 at b8e40da709)
- + refs: kill set_worktree_head_symref()
- + worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
- + refs: introduce get_worktree_ref_store()
- + refs: add REFS_STORE_ALL_CAPS
- + refs.c: make submodule ref store hashmap generic
- + environment.c: fix potential segfault by get_git_common_dir()
- (this branch is used by nd/prune-in-worktree.)
-
- "git gc" did not interact well with "git worktree"-managed
- per-worktree refs.
-
- Will merge to 'master'.
-
 --------------------------------------------------
 [Discarded]
 
@@ -935,6 +958,8 @@ of the repositories listed at
  PCRE2, which has an API different from and incompatible with PCRE,
  can now be chosen to support "grep -P -e '<pattern>'" and friends.
 
+ Will be rerolled.
+
 
 * ab/grep-threading-cleanup (2017-04-16) 8 commits
  . grep: given --threads with NO_PTHREADS=YesPlease, warn
@@ -946,7 +971,7 @@ of the repositories listed at
  . grep: add tests for --threads=N and grep.threads
  . grep: assert that threading is enabled when calling grep_{lock,unlock}
 
Code cleanup.
Will be rerolled.
 
 
 * pb/bisect (2017-02-18) 28 commits
@@ -981,9 +1006,7 @@ of the repositories listed at
 
  Move more parts of "git bisect" to C.
 
- Will discard.
  It has been in the stalled state for too long.
- Expecting a reroll.
  cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
  cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
  cf. <CAFZEwPNUXcNY9Qdz=_B7q2kQuaecPzJtTMGdv8YMUPEz2vnp8A@mail.gmail.com>
@@ -1001,6 +1024,60 @@ of the repositories listed at
 
  While I agree there is no need to support "--no-no-checkout", this
  looks more like "if it looks ugly and unusual, you do not have to
- use it".  Perhaps we can drop it?
+ use it".
 
- Will discard.
+
+* jc/bundle (2016-03-03) 6 commits
+ . index-pack: --clone-bundle option
+ . Merge branch 'jc/index-pack' into jc/bundle
+ . bundle v3: the beginning
+ . bundle: keep a copy of bundle file name in the in-core bundle header
+ . bundle: plug resource leak
+ . bundle doc: 'verify' is not about verifying the bundle
+
+ The beginning of "split bundle", which could be one of the
+ ingredients to allow "git clone" traffic off of the core server
+ network to CDN.
+
+ This was surrected from a "to be discarded" pile, as from time to
+ time people wonder about resumable clone that can be primed without
+ bothering Git servers with dynamic packfile creation, and some
+ people seem to think that the topic could serve as a useful
+ building block for that goal.  But nothing seem to have happend.
+
+
+* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
+ . grep: use '/' delimiter for paths
+ . grep: only add delimiter if there isn't one already
+
+ "git grep", when fed a tree-ish as an input, shows each hit
+ prefixed with "<tree-ish>:<path>:<lineno>:".  As <tree-ish> is
+ almost always either a commit or a tag that points at a commit, the
+ early part of the output "<tree-ish>:<path>" can be used as the
+ name of the blob and given to "git show".  When <tree-ish> is a
+ tree given in the extended SHA-1 syntax (e.g. "<commit>:", or
+ "<commit>:<dir>"), however, this results in a string that does not
+ name a blob (e.g. "<commit>::<path>" or "<commit>:<dir>:<path>").
+ "git grep" has been taught to be a bit more intelligent about these
+ cases and omit a colon (in the former case) or use slash (in the
+ latter case) to produce "<commit>:<path>" and
+ "<commit>:<dir>/<path>" that can be used as the name of a blob.
+
+ Nobody seems to be championing this change, after asked in all
+ recent "What's cooking" report:
+ "Is this good enough with known limitations?"
+
+
+* 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
+
+ "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.