What's cooking (2017/05 #05)

Junio C Hamano committed May 16, 2017 at 13:28 UTC 9d1dd5852147eb373a4530a6b814c72beb970220
1 file changed +434 -357
whats-cooking.txt
+434 -357
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (May 2017, #04; Fri, 12)
4 -X-master-at: b06d3643105c8758ed019125a4399cb7efdcce2c
5 -X-next-at: 4ebf3021692df4cb51da8d806fbb8b909ee7e111
3 +Subject: What's cooking in git.git (May 2017, #05; Tue, 16)
4 +X-master-at: 10c78a162fa821ee85203165b805ff46be454091
5 +X-next-at: 0c0372eb028443d4e8877a833f6afee01c842345
6
7 -What's cooking in git.git (May 2017, #04; Fri, 12)
7 +What's cooking in git.git (May 2017, #05; Tue, 16)
8 --------------------------------------------------
9
10 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
12 '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 +The tip of 'next' has been rewound, and the first batch of topics
16 +for the next release have been merged to 'master'. I tentatively
17 +wrote doen that this cycle will last for 11 weeks, completing at the
18 +end of July.
19 +
20 You can find the changes described here in the integration branches
21 of the repositories listed at
22
23 http://git-blame.blogspot.com/p/git-public-repositories.html
24
25 --------------------------------------------------
21 -[New Topics]
26 +[Graduated to "master"]
27
23 -* bw/pathspec-sans-the-index (2017-05-12) 6 commits
24 - - pathspec: convert find_pathspecs_matching_against_index to take an index
25 - - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
26 - - ls-files: prevent prune_cache from overeagerly pruning submodules
27 - - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
28 - - submodule: add die_in_unpopulated_submodule function
29 - - pathspec: provide a more descriptive die message
28 +* ab/aix-needs-compat-regex (2017-05-04) 1 commit
29 + (merged to 'next' on 2017-05-09 at 881202b6bb)
30 + + config.mak.uname: set NO_REGEX=NeedsStartEnd on AIX
31
31 - Simplify parse_pathspec() codepath and stop it from looking at the
32 - default in-core index.
32 + Build fix.
33
34
35 -* jt/fetch-allow-tip-sha1-implicitly (2017-05-12) 1 commit
36 - - fetch-pack: always allow fetching of literal SHA1s
35 +* ab/clone-no-tags (2017-05-01) 3 commits
36 + (merged to 'next' on 2017-04-30 at 601649896a)
37 + + tests: rename a test having to do with shallow submodules
38 + + clone: add a --no-tags option to clone without tags
39 + + tests: change "cd ... && git fetch" to "cd &&\n\tgit fetch"
40
38 - There is no good reason why "git fetch $there $sha1" should fail
39 - when the $sha1 names an object at the tip of an advertised ref,
40 - even when the other side hasn't enabled allowTipSHA1InWant.
41 + "git clone" learned the "--no-tags" option not to fetch all tags
42 + initially, and also set up the tagopt not to follow any tags in
43 + subsequent fetches.
44
45
43 -* jc/read-tree-empty-with-m (2017-05-10) 1 commit
44 - - read-tree: "read-tree -m --empty" does not make sense
46 +* bw/submodule-has-commits-update (2017-05-02) 6 commits
47 + (merged to 'next' on 2017-05-08 at 57267f2277)
48 + + submodule: refactor logic to determine changed submodules
49 + + submodule: improve submodule_has_commits()
50 + + submodule: change string_list changed_submodule_paths
51 + + submodule: remove add_oid_to_argv()
52 + + submodule: rename free_submodules_sha1s()
53 + + submodule: rename add_sha1_to_array()
54
46 - "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
47 - --empty if you want to clear the index". With "-m", such a request
48 - will still fail anyway, as you'd need to name at least one tree-ish
49 - to be merged.
55 + Code clean-up and duplicate removal.
56 +
57 +
58 +* dt/gc-ignore-old-gc-logs (2017-04-24) 3 commits
59 + (merged to 'next' on 2017-04-26 at 4f4cab8368)
60 + + test-lib: retire $remove_trash variable
61 + + test-lib.sh: do not barf under --debug at the end of the test
62 + + test-lib: abort when can't remove trash directory
63 +
64 + Attempt to allow us notice "fishy" situation where we fail to
65 + remove the temporary directory used during the test.
66 +
67 +
68 +* dt/raise-core-packed-git-limit (2017-04-20) 1 commit
69 + (merged to 'next' on 2017-04-26 at c72dd8c62f)
70 + + Increase core.packedGitLimit
71 +
72 + The default packed-git limit value has been raised on larger
73 + platforms to save "git fetch" from a (recoverable) failure while
74 + "gc" is running in parallel.
75 +
76 +
77 +* jc/apply-fix-mismerge (2017-05-08) 1 commit
78 + (merged to 'next' on 2017-05-09 at e0b89532d0)
79 + + apply.c: fix whitespace-only mismerge
80 +
81 + Mismerge fix.
82 +
83 +
84 +* jk/am-leakfix (2017-04-27) 3 commits
85 + (merged to 'next' on 2017-04-30 at 78becd7a96)
86 + + am: shorten ident_split variable name in get_commit_info()
87 + + am: simplify allocations in get_commit_info()
88 + + am: fix commit buffer leak in get_commit_info()
89 +
90 + The codepath in "git am" that is used when running "git rebase"
91 + leaked memory held for the log message of the commits being rebased.
92 +
93 +
94 +* jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit
95 + (merged to 'next' on 2017-04-26 at 45fbe9d57d)
96 + + cache-tree: reject entries with null sha1
97 +
98 + Code to update the cache-tree has been tightened so that we won't
99 + accidentally write out any 0{40} entry in the tree object.
100 +
101 +
102 +* jn/clone-add-empty-config-from-command-line (2017-05-02) 1 commit
103 + (merged to 'next' on 2017-05-09 at c56ac3f782)
104 + + clone: handle empty config values in -c
105 +
106 + "git clone --config var=val" is a way to populate the
107 + per-repository configuration file of the new repository, but it did
108 + not work well when val is an empty string. This has been fixed.
109 +
110 +
111 +* jn/credential-doc-on-clear (2017-05-02) 1 commit
112 + (merged to 'next' on 2017-05-09 at 96fa65d122)
113 + + credential doc: make multiple-helper behavior more prominent
114 +
115 + Doc update.
116 +
117 +
118 +* js/larger-timestamps (2017-05-09) 9 commits
119 + (merged to 'next' on 2017-05-09 at ae0603fd3e)
120 + + archive-tar: fix a sparse 'constant too large' warning
121 + (merged to 'next' on 2017-04-28 at b56a0d38cd)
122 + + use uintmax_t for timestamps
123 + + date.c: abort if the system time cannot handle one of our timestamps
124 + + timestamp_t: a new data type for timestamps
125 + + PRItime: introduce a new "printf format" for timestamps
126 + + parse_timestamp(): specify explicitly where we parse timestamps
127 + + t0006 & t5000: skip "far in the future" test when time_t is too limited
128 + + t0006 & t5000: prepare for 64-bit timestamps
129 + + ref-filter: avoid using `unsigned long` for catch-all data type
130 +
131 + Some platforms have ulong that is smaller than time_t, and our
132 + historical use of ulong for timestamp would mean they cannot
133 + represent some timestamp that the platform allows. Invent a
134 + separate and dedicated timestamp_t (so that we can distingiuish
135 + timestamps and a vanilla ulongs, which along is already a good
136 + move), and then declare uintmax_t is the type to be used as the
137 + timestamp_t.
138 +
139 +
140 +* jt/use-trailer-api-in-commands (2017-04-26) 1 commit
141 + (merged to 'next' on 2017-04-30 at 006c8d7ebd)
142 + + sequencer: add newline before adding footers
143 +
144 + "git cherry-pick" and other uses of the sequencer machinery
145 + mishandled a trailer block whose last line is an incomplete line.
146 + This has been fixed so that an additional sign-off etc. are added
147 + after completing the existing incomplete line.
148 +
149 +
150 +* ls/travis-doc-asciidoctor (2017-04-26) 4 commits
151 + (merged to 'next' on 2017-05-04 at 813ba54fc3)
152 + + travis-ci: check AsciiDoc/AsciiDoctor stderr output
153 + (merged to 'next' on 2017-04-19 at 359c32953b)
154 + + travis-ci: unset compiler for jobs that do not need one
155 + + travis-ci: parallelize documentation build
156 + + travis-ci: build documentation with AsciiDoc and Asciidoctor
157 +
158 + Travis CI gained a task to format the documentation with both
159 + AsciiDoc and AsciiDoctor.
160 +
161 +
162 +* nd/worktree-kill-parse-ref (2017-04-24) 6 commits
163 + (merged to 'next' on 2017-04-26 at b8e40da709)
164 + + refs: kill set_worktree_head_symref()
165 + + worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
166 + + refs: introduce get_worktree_ref_store()
167 + + refs: add REFS_STORE_ALL_CAPS
168 + + refs.c: make submodule ref store hashmap generic
169 + + environment.c: fix potential segfault by get_git_common_dir()
170 + (this branch is used by nd/prune-in-worktree.)
171 +
172 + "git gc" did not interact well with "git worktree"-managed
173 + per-worktree refs.
174 +
175 +
176 +* rs/large-zip (2017-05-01) 7 commits
177 + (merged to 'next' on 2017-05-02 at a03574e49b)
178 + + t5004: require 64-bit support for big ZIP tests
179 + + archive-zip: set version field for big files correctly
180 + (merged to 'next' on 2017-04-26 at a6beab60f2)
181 + + archive-zip: support files bigger than 4GB
182 + + archive-zip: support archives bigger than 4GB
183 + + archive-zip: write ZIP dir entry directly to strbuf
184 + + archive-zip: use strbuf for ZIP directory
185 + + archive-zip: add tests for big ZIP archives
186 +
187 + "git archive --format=zip" learned to use zip64 extension when
188 + necessary to go beyond the 4GB limit.
189 +
190 +
191 +* sk/status-short-branch-color-config (2017-04-28) 2 commits
192 + (merged to 'next' on 2017-04-30 at 2a7eb05d7b)
193 + + status: add color config slots for branch info in "--short --branch"
194 + + status: fix missing newline when comment chars are disabled
195 +
196 + The colors in which "git status --short --branch" showed the names
197 + of the current branch and its remote-tracking branch are now
198 + configurable.
199 +
200 +--------------------------------------------------
201 +[New Topics]
202 +
203 +* ah/log-decorate-default-to-auto (2017-05-15) 1 commit
204 + - builtin/log: honor log.decorate
205 +
206 + Setting "log.decorate=false" in the configuration file did not take
207 + effect in v2.13, which has been corrected.
208
209 Will merge to 'next'.
210
211
54 -* ab/perf-wildmatch (2017-05-12) 2 commits
55 - - perf: add test showing exponential growth in path globbing
56 - - perf: add function to setup a fresh test repo
212 +* jh/memihash-opt (2017-05-16) 5 commits
213 + - p0004: don't error out if test repo is too small
214 + - p0004: don't abort if multi-threaded is too slow
215 + - p0004: use test_perf
216 + - p0004: avoid using pipes
217 + - p0004: simplify calls of test-lazy-init-name-hash
218
58 - Add perf-test for wildmatch.
219 + perf-test update.
220
221 Will merge to 'next'.
222
223
63 -* jk/doc-config-include (2017-05-12) 4 commits
64 - - docs/config: consistify include.path examples
65 - - docs/config: avoid the term "expand" for includes
66 - - docs/config: give a relative includeIf example
67 - - docs/config: clarify include/includeIf relationship
224 +* jk/bug-to-abort (2017-05-15) 3 commits
225 + - config: complain about --local outside of a git repo
226 + - setup_git_env: convert die("BUG") to BUG()
227 + - usage.c: add BUG() function
228
69 - Clarify documentation for include.path and includeIf.<condition>.path
70 - configuration variables.
229 + Introduce the BUG() macro to improve die("BUG: ...").
230
231 Will merge to 'next'.
232
233
75 -* js/retire-old-remote-spec (2017-05-12) 11 commits
76 - - PREVIEW: remove support for .git/remotes/ and .git/branches/
77 - - PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
78 - - PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
79 - - PREVIEW: remote: remove support for migrating ancient remotes
80 - - PREVIEW: t5516: stop testing .git/branches/ functionality
81 - - PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
82 - - Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
83 - - remote: warn loud and clear when .git/remotes/ is *still* used
84 - - remote: warn loud and clear when .git/branches/ is *still* used
85 - - Documentation: really deprecate .git/remotes/ and .git/branches/
86 - - git-parse-remote: fix highly misleading man page
234 +* jk/no-looking-at-dotgit-outside-repo (2017-05-15) 1 commit
235 + - config: complain about --local outside of a git repo
236
88 - Stop reading from .git/remotes/ and .git/branches/, two old ways
89 - that we have been supporting to configure short-hands for fetching
90 - from remote repositories.
237 + Will discard.
238 + Superseded by jk/bug-to-abort.
239
240
93 -* ab/grep-preparatory-cleanup (2017-05-12) 15 commits
94 - - grep: add tests to fix blind spots with \0 patterns
95 - - grep: prepare for testing binary regexes containing rx metacharacters
96 - - SQUASH???
97 - - grep: add a test helper function for less verbose -f \0 tests
98 - - grep: add tests for grep pattern types being passed to submodules
99 - - grep: amend submodule recursion test for regex engine testing
100 - - grep: add tests for --threads=N and grep.threads
101 - - SQUASH???
102 - - grep: change non-ASCII -i test to stop using --debug
103 - - grep: add a test for backreferences in PCRE patterns
104 - - grep: add a test asserting that --perl-regexp dies when !PCRE
105 - - log: add exhaustive tests for pattern style options & config
106 - - test-lib: rename the LIBPCRE prerequisite to PCRE
107 - - grep & rev-list doc: stop promising libpcre for --perl-regexp
108 - - Makefile & configure: reword inaccurate comment about PCRE
241 +* jk/update-links-in-docs (2017-05-15) 1 commit
242 + - doc: use https links to Wikipedia to avoid http redirects
243 +
244 + A few http:// links that are redirected to https:// in the
245 + documentation have been updated to https:// links.
246 +
247 + Will merge to 'next'.
248
110 - (what is queued here is only the early part of a larger series)
249 +
250 +* js/blame-lib (2017-05-15) 22 commits
251 + - blame: create entry prepend function in libgit
252 + - blame: create scoreboard setup function in libgit
253 + - blame: create scoreboard init function in libgit
254 + - blame: move scoreboard-related methods to libgit
255 + - blame: move fake-commit-related methods to libgit
256 + - blame: move origin-related methods to libgit
257 + - blame: rework methods that determine 'final' commit
258 + - blame: wrap blame_sort and compare_blame_final
259 + - blame: move progess updates to a scoreboard callback
260 + - blame: make sanity_check use a callback in scoreboard
261 + - blame: move no_whole_file_rename flag to scoreboard
262 + - blame: move xdl_opts flags to scoreboard
263 + - blame: move show_root flag to scoreboard
264 + - blame: move reverse flag to scoreboard
265 + - blame: move contents_from to scoreboard
266 + - blame: move copy/move thresholds to scoreboard
267 + - blame: move stat counters to scoreboard
268 + - blame: move scoreboard structure to header
269 + - blame: move origin and entry structures to header
270 + - blame: remove unused parameters
271 + - blame: move textconv_object with related functions
272 + - blame: remove unneeded dependency on blob.h
273 +
274 + The internal logic used in "git blame" has been libified to make it
275 + easier to use by cgit.
276 +
277 +
278 +* jt/send-email-validate-hook (2017-05-16) 1 commit
279 + - send-email: support validate hook
280 +
281 + "git send-email" learned to run sendemail-validate hook to inspect
282 + and reject a message before sending it out.
283 +
284 + Will merge to 'next'.
285
286 --------------------------------------------------
287 [Stalled]
@@ -168,27 +342,6 @@ of the repositories listed at
342 GSoC microproject.
343
344
171 -* jc/bundle (2016-03-03) 6 commits
172 - - index-pack: --clone-bundle option
173 - - Merge branch 'jc/index-pack' into jc/bundle
174 - - bundle v3: the beginning
175 - - bundle: keep a copy of bundle file name in the in-core bundle header
176 - - bundle: plug resource leak
177 - - bundle doc: 'verify' is not about verifying the bundle
178 -
179 - The beginning of "split bundle", which could be one of the
180 - ingredients to allow "git clone" traffic off of the core server
181 - network to CDN.
182 -
183 - This was surrected from a "to be discarded" pile, as from time to
184 - time people wonder about resumable clone that can be primed without
185 - bothering Git servers with dynamic packfile creation, and some
186 - people seem to think that the topic could serve as a useful
187 - building block for that goal. But nothing seem to have happend.
188 - Unless people really want it, I am inclined to discard this topic.
189 - Opinions?
190 -
191 -
345 * ls/filter-process-delayed (2017-03-06) 1 commit
346 - convert: add "status=delayed" to filter process protocol
347
@@ -209,47 +362,116 @@ of the repositories listed at
362 cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
363
364
212 -* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
213 - - grep: use '/' delimiter for paths
214 - - grep: only add delimiter if there isn't one already
365 +--------------------------------------------------
366 +[Cooking]
367
216 - "git grep", when fed a tree-ish as an input, shows each hit
217 - prefixed with "<tree-ish>:<path>:<lineno>:". As <tree-ish> is
218 - almost always either a commit or a tag that points at a commit, the
219 - early part of the output "<tree-ish>:<path>" can be used as the
220 - name of the blob and given to "git show". When <tree-ish> is a
221 - tree given in the extended SHA-1 syntax (e.g. "<commit>:", or
222 - "<commit>:<dir>"), however, this results in a string that does not
223 - name a blob (e.g. "<commit>::<path>" or "<commit>:<dir>:<path>").
224 - "git grep" has been taught to be a bit more intelligent about these
225 - cases and omit a colon (in the former case) or use slash (in the
226 - latter case) to produce "<commit>:<path>" and
227 - "<commit>:<dir>/<path>" that can be used as the name of a blob.
368 +* bw/pathspec-sans-the-index (2017-05-12) 6 commits
369 + - pathspec: convert find_pathspecs_matching_against_index to take an index
370 + - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
371 + - ls-files: prevent prune_cache from overeagerly pruning submodules
372 + - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
373 + - submodule: add die_in_unpopulated_submodule function
374 + - pathspec: provide a more descriptive die message
375
229 - Will discard.
230 - Nobody seems to be championing this change, after asked in all
231 - recent "What's cooking" report:
232 - "Is this good enough with known limitations?"
376 + Simplify parse_pathspec() codepath and stop it from looking at the
377 + default in-core index.
378
379 + Will merge to 'next'.
380
235 -* jc/diff-b-m (2015-02-23) 5 commits
236 - . WIPWIP
237 - . WIP: diff-b-m
238 - . diffcore-rename: allow easier debugging
239 - . diffcore-rename.c: add locate_rename_src()
240 - . diffcore-break: allow debugging
381
242 - "git diff -B -M" produced incorrect patch when the postimage of a
243 - completely rewritten file is similar to the preimage of a removed
244 - file; such a resulting file must not be expressed as a rename from
245 - other place.
382 +* jt/fetch-allow-tip-sha1-implicitly (2017-05-16) 1 commit
383 + - fetch-pack: always allow fetching of literal SHA1s
384 +
385 + There is no good reason why "git fetch $there $sha1" should fail
386 + when the $sha1 names an object at the tip of an advertised ref,
387 + even when the other side hasn't enabled allowTipSHA1InWant.
388 +
389 + Will merge to 'next'.
390 +
391 +
392 +* jc/read-tree-empty-with-m (2017-05-10) 1 commit
393 + - read-tree: "read-tree -m --empty" does not make sense
394 +
395 + "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
396 + --empty if you want to clear the index". With "-m", such a request
397 + will still fail anyway, as you'd need to name at least one tree-ish
398 + to be merged.
399 +
400 + Will merge to 'next'.
401 +
402 +
403 +* ab/perf-wildmatch (2017-05-12) 2 commits
404 + - perf: add test showing exponential growth in path globbing
405 + - perf: add function to setup a fresh test repo
406 +
407 + Add perf-test for wildmatch.
408 +
409 + Will merge to 'next'.
410 +
411 +
412 +* jk/doc-config-include (2017-05-12) 4 commits
413 + - docs/config: consistify include.path examples
414 + - docs/config: avoid the term "expand" for includes
415 + - docs/config: give a relative includeIf example
416 + - docs/config: clarify include/includeIf relationship
417 +
418 + Clarify documentation for include.path and includeIf.<condition>.path
419 + configuration variables.
420 +
421 + Will merge to 'next'.
422 +
423 +
424 +* js/retire-old-remote-spec (2017-05-12) 11 commits
425 + - PREVIEW: remove support for .git/remotes/ and .git/branches/
426 + - PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
427 + - PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
428 + - PREVIEW: remote: remove support for migrating ancient remotes
429 + - PREVIEW: t5516: stop testing .git/branches/ functionality
430 + - PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
431 + - Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
432 + - remote: warn loud and clear when .git/remotes/ is *still* used
433 + - remote: warn loud and clear when .git/branches/ is *still* used
434 + - Documentation: really deprecate .git/remotes/ and .git/branches/
435 + - git-parse-remote: fix highly misleading man page
436 +
437 + Stop reading from .git/remotes/ and .git/branches/, two old ways
438 + that we have been supporting to configure short-hands for fetching
439 + from remote repositories.
440 +
441
247 - The fix in this patch is broken, unfortunately.
442 +* ab/grep-preparatory-cleanup (2017-05-15) 29 commits
443 + - grep: assert that threading is enabled when calling grep_{lock,unlock}
444 + - grep: given --threads with NO_PTHREADS=YesPlease, warn
445 + - pack-objects: fix buggy warning about threads
446 + - pack-objects & index-pack: add test for --threads warning
447 + - test-lib: add a PTHREADS prerequisite
448 + - grep: move is_fixed() earlier to avoid forward declaration
449 + - grep: change internal *pcre* variable & function names to be *pcre1*
450 + - grep: change the internal PCRE macro names to be PCRE1
451 + - grep: factor test for \0 in grep patterns into a function
452 + - grep: remove redundant `regflags &= ~REG_EXTENDED` assignments
453 + - grep: remove redundant regflags assignment under PCRE
454 + - grep: catch a missing enum in switch statement
455 + - perf: add a performance comparison of fixed-string grep
456 + - perf: add a performance comparison test of grep -G, -E and -P
457 + - perf: emit progress output when unpacking & building
458 + - perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
459 + - grep: add tests to fix blind spots with \0 patterns
460 + - grep: prepare for testing binary regexes containing rx metacharacters
461 + - grep: add a test helper function for less verbose -f \0 tests
462 + - grep: add tests for grep pattern types being passed to submodules
463 + - grep: amend submodule recursion test for regex engine testing
464 + - grep: add tests for --threads=N and grep.threads
465 + - grep: change non-ASCII -i test to stop using --debug
466 + - grep: add a test for backreferences in PCRE patterns
467 + - grep: add a test asserting that --perl-regexp dies when !PCRE
468 + - log: add exhaustive tests for pattern style options & config
469 + - test-lib: rename the LIBPCRE prerequisite to PCRE
470 + - grep & rev-list doc: stop promising libpcre for --perl-regexp
471 + - Makefile & configure: reword inaccurate comment about PCRE
472
249 - Will discard.
473 + The internal implementation of "git grep" has seen some clean-up.
474
251 ---------------------------------------------------
252 -[Cooking]
475
476 * ab/compat-regex-update (2017-05-12) 3 commits
477 - DONTMERGE compat/regex: make it compile with -Werror=int-to-pointer-cast
@@ -259,12 +481,8 @@ of the repositories listed at
481 Update compat/regex we borrowed from gawk. It seems that some
482 customizations we made to the older one were dropped by mistake.
483
262 -
263 -* jc/apply-fix-mismerge (2017-05-08) 1 commit
264 - (merged to 'next' on 2017-05-09 at e0b89532d0)
265 - + apply.c: fix whitespace-only mismerge
266 -
267 - Will merge to 'master'.
484 + Will discard.
485 + cf. <CACBZZX4UUwzRQmyH8joYaqHnuVTjVtGBHp+iZKcnAnwoM_ZJhg@mail.gmail.com>
486
487
488 * jt/push-options-doc (2017-05-10) 2 commits
@@ -281,37 +499,17 @@ of the repositories listed at
499 - DONTMERGE: unpack-trees: preserve index extensions
500
501
284 -* sg/clone-refspec-from-command-line-config (2017-05-09) 2 commits
285 - - git-clone --config order & fetching extra refs during initial clone
286 - - clone: respect configured fetch respecs during initial fetch
502 +* sg/clone-refspec-from-command-line-config (2017-05-16) 4 commits
503 + - clone: use free_refspec() to free refspec list
504 + - remote: drop free_refspecs() function
505 + - Documentation/clone: document ignored configuration variables
506 + - clone: respect additional configured fetch refspecs during initial fetch
507
508 "git clone -c var=val" is a way to set configuration variables in
509 the resulting repository, but it is more useful to also make these
510 variables take effect while the initial clone is happening,
511 e.g. these configuration variables could be fetch refspecs.
512
293 - Will merge to 'next'.
294 -
295 -
296 -* jn/clone-add-empty-config-from-command-line (2017-05-02) 1 commit
297 - (merged to 'next' on 2017-05-09 at c56ac3f782)
298 - + clone: handle empty config values in -c
299 -
300 - "git clone --config var=val" is a way to populate the
301 - per-repository configuration file of the new repository, but it did
302 - not work well when val is an empty string. This has been fixed.
303 -
304 - Will merge to 'master'.
305 -
306 -
307 -* jn/credential-doc-on-clear (2017-05-02) 1 commit
308 - (merged to 'next' on 2017-05-09 at 96fa65d122)
309 - + credential doc: make multiple-helper behavior more prominent
310 -
311 - Doc update.
312 -
313 - Will merge to 'master'.
314 -
513
514 * sb/checkout-recurse-submodules (2017-05-04) 3 commits
515 - submodule: properly recurse for read-tree and checkout
@@ -324,15 +522,6 @@ of the repositories listed at
522 Will merge to 'next'.
523
524
327 -* ab/aix-needs-compat-regex (2017-05-04) 1 commit
328 - (merged to 'next' on 2017-05-09 at 881202b6bb)
329 - + config.mak.uname: set NO_REGEX=NeedsStartEnd on AIX
330 -
331 - Build fix.
332 -
333 - Will merge to 'master'.
334 -
335 -
525 * ja/do-not-ask-needless-questions (2017-05-12) 3 commits
526 - git-filter-branch: be more direct in an error message
527 - read-tree -m: make error message for merging 0 trees less smart aleck
@@ -342,7 +531,7 @@ of the repositories listed at
531 not require an answer, which can confuse new users and non native
532 speakers. Attempt to rephrase them.
533
345 - Will merge to 'next', after waiting for a few days.
534 + Will merge to 'next'.
535
536
537 * ab/doc-replace-gmane-links (2017-05-09) 2 commits
@@ -367,7 +556,7 @@ of the repositories listed at
556 that output strings that should not be translated are not
557 translated by mistake), and tell TravisCI to run them.
558
370 - Will merge to 'next' after a few rounds in 'pu'.
559 + Will merge to 'next'.
560
561
562 * bw/dir-c-stops-relying-on-the-index (2017-05-06) 14 commits
@@ -458,18 +647,6 @@ of the repositories listed at
647 Will merge to 'next'.
648
649
461 -* jk/am-leakfix (2017-04-27) 3 commits
462 - (merged to 'next' on 2017-04-30 at 78becd7a96)
463 - + am: shorten ident_split variable name in get_commit_info()
464 - + am: simplify allocations in get_commit_info()
465 - + am: fix commit buffer leak in get_commit_info()
466 -
467 - The codepath in "git am" that is used when running "git rebase"
468 - leaked memory held for the log message of the commits being rebased.
469 -
470 - Will merge to 'master'.
471 -
472 -
650 * js/plug-leaks (2017-05-09) 26 commits
651 - checkout: fix memory leak
652 - submodule_uses_worktrees(): plug memory leak
@@ -503,22 +680,12 @@ of the repositories listed at
680 Will merge to 'next'.
681
682
506 -* sk/status-short-branch-color-config (2017-04-28) 2 commits
507 - (merged to 'next' on 2017-04-30 at 2a7eb05d7b)
508 - + status: add color config slots for branch info in "--short --branch"
509 - + status: fix missing newline when comment chars are disabled
510 -
511 - The colors in which "git status --short --branch" showed the names
512 - of the current branch and its remote-tracking branch are now
513 - configurable.
514 -
515 - Will merge to 'master'.
516 -
517 -
683 * jh/close-index-before-stat (2017-04-28) 1 commit
519 - (merged to 'next' on 2017-04-30 at 918d4f3378)
684 + (merged to 'next' on 2017-05-16 at 0c0372eb02)
685 + read-cache: close index.lock in do_write_index
686
687 + Originally merged to 'next' on 2017-04-30
688 +
689 The timestamp of the index file is now taken after the file is
690 closed, to help Windows, on which a stale timestamp is reported by
691 fstat() on a file that is opened for writing and data was written
@@ -527,20 +694,6 @@ of the repositories listed at
694 Will cook in 'next'.
695
696
530 -* bw/submodule-has-commits-update (2017-05-02) 6 commits
531 - (merged to 'next' on 2017-05-08 at 57267f2277)
532 - + submodule: refactor logic to determine changed submodules
533 - + submodule: improve submodule_has_commits()
534 - + submodule: change string_list changed_submodule_paths
535 - + submodule: remove add_oid_to_argv()
536 - + submodule: rename free_submodules_sha1s()
537 - + submodule: rename add_sha1_to_array()
538 -
539 - Code clean-up and duplicate removal.
540 -
541 - Will merge to 'master'.
542 -
543 -
697 * ls/travis-relays-for-windows-ci (2017-05-04) 2 commits
698 - travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503
699 - travis-ci: handle Git for Windows CI status "failed" explicitly
@@ -575,18 +728,6 @@ of the repositories listed at
728 Will merge to 'next'.
729
730
578 -* dt/gc-ignore-old-gc-logs (2017-04-24) 3 commits
579 - (merged to 'next' on 2017-04-26 at 4f4cab8368)
580 - + test-lib: retire $remove_trash variable
581 - + test-lib.sh: do not barf under --debug at the end of the test
582 - + test-lib: abort when can't remove trash directory
583 -
584 - An attempt to allow us notice "fishy" situation where we fail to
585 - remove the temporary directory used during the test.
586 -
587 - Will merge to 'master'.
588 -
589 -
731 * nd/fopen-errors (2017-05-09) 23 commits
732 - t1308: add a test case on open a config directory
733 - config.c: handle error on failing to fopen()
@@ -617,41 +758,6 @@ of the repositories listed at
758 errors if they are not due to missing files.
759
760
620 -* dt/raise-core-packed-git-limit (2017-04-20) 1 commit
621 - (merged to 'next' on 2017-04-26 at c72dd8c62f)
622 - + Increase core.packedGitLimit
623 -
624 - Raise the default packed-git limit value on larger platforms to
625 - avoid "git fetch" from a (recoverable) failure while "gc" is
626 - running in parallel.
627 -
628 - Will merge to 'master'.
629 -
630 -
631 -* js/larger-timestamps (2017-05-09) 9 commits
632 - (merged to 'next' on 2017-05-09 at ae0603fd3e)
633 - + archive-tar: fix a sparse 'constant too large' warning
634 - (merged to 'next' on 2017-04-28 at b56a0d38cd)
635 - + use uintmax_t for timestamps
636 - + date.c: abort if the system time cannot handle one of our timestamps
637 - + timestamp_t: a new data type for timestamps
638 - + PRItime: introduce a new "printf format" for timestamps
639 - + parse_timestamp(): specify explicitly where we parse timestamps
640 - + t0006 & t5000: skip "far in the future" test when time_t is too limited
641 - + t0006 & t5000: prepare for 64-bit timestamps
642 - + ref-filter: avoid using `unsigned long` for catch-all data type
643 -
644 - Some platforms have ulong that is smaller than time_t, and our
645 - historical use of ulong for timestamp would mean they cannot
646 - represent some timestamp that the platform allows. Invent a
647 - separate and dedicated timestamp_t (so that we can distingiuish
648 - timestamps and a vanilla ulongs, which along is already a good
649 - move), and then declare uintmax_t is the type to be used as the
650 - timestamp_t
651 -
652 - Will merge to 'master'.
653 -
654 -
761 * bc/object-id (2017-05-08) 53 commits
762 - object: convert parse_object* to take struct object_id
763 - tree: convert parse_tree_indirect to struct object_id
@@ -712,33 +818,6 @@ of the repositories listed at
818 Will merge to 'next'.
819
820
715 -* jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit
716 - (merged to 'next' on 2017-04-26 at 45fbe9d57d)
717 - + cache-tree: reject entries with null sha1
718 -
719 - Tighten code to update cache-tree so that we won't accidentally
720 - write out any 0{40} entry in the tree object.
721 -
722 - Will merge to 'master'.
723 -
724 -
725 -* rs/large-zip (2017-05-01) 7 commits
726 - (merged to 'next' on 2017-05-02 at a03574e49b)
727 - + t5004: require 64-bit support for big ZIP tests
728 - + archive-zip: set version field for big files correctly
729 - (merged to 'next' on 2017-04-26 at a6beab60f2)
730 - + archive-zip: support files bigger than 4GB
731 - + archive-zip: support archives bigger than 4GB
732 - + archive-zip: write ZIP dir entry directly to strbuf
733 - + archive-zip: use strbuf for ZIP directory
734 - + archive-zip: add tests for big ZIP archives
735 -
736 - "git archive --format=zip" learned to use zip64 extension when
737 - necessary to go beyond the 4GB limit.
738 -
739 - Will merge to 'master'.
740 -
741 -
821 * jc/checkout-working-tree-only (2017-04-27) 1 commit
822 - checkout: add --working-tree-only option
823
@@ -768,52 +847,26 @@ of the repositories listed at
847 Needs review.
848
849
771 -* jt/use-trailer-api-in-commands (2017-04-26) 1 commit
772 - (merged to 'next' on 2017-04-30 at 006c8d7ebd)
773 - + sequencer: add newline before adding footers
774 -
775 - "git cherry-pick" and other uses of the sequencer machinery
776 - mishandled a trailer block whose last line is an incomplete line.
777 - This has been fixed so that an additional sign-off etc. are added
778 - after completing the existing incomplete line.
779 -
780 - Will merge to 'master'.
781 -
782 -
783 -* ab/clone-no-tags (2017-05-01) 3 commits
784 - (merged to 'next' on 2017-04-30 at 601649896a)
785 - + tests: rename a test having to do with shallow submodules
786 - + clone: add a --no-tags option to clone without tags
787 - + tests: change "cd ... && git fetch" to "cd &&\n\tgit fetch"
788 -
789 - "git clone" learned the "--no-tags" option not to fetch all tags
790 - initially, and also set up the tagopt not to follow any tags in
791 - subsequent fetches.
792 -
793 - Will merge to 'master'.
794 -
795 -
796 -* bw/forking-and-threading (2017-04-25) 13 commits
797 - (merged to 'next' on 2017-04-26 at 89c495e37f)
798 - + run-command: restrict PATH search to executable files
799 - + run-command: expose is_executable function
800 - (merged to 'next' on 2017-04-23 at 7754b5ebc3)
801 - + run-command: block signals between fork and execve
802 - + run-command: add note about forking and threading
803 - + run-command: handle dup2 and close errors in child
804 - + run-command: eliminate calls to error handling functions in child
805 - + run-command: don't die in child when duping /dev/null
806 - + run-command: prepare child environment before forking
807 - + string-list: add string_list_remove function
808 - + run-command: use the async-signal-safe execv instead of execvp
809 - + run-command: prepare command before forking
810 - + t0061: run_command executes scripts without a #! line
811 - + t5550: use write_script to generate post-update hook
850 +* bw/forking-and-threading (2017-05-15) 14 commits
851 + - usage.c: drop set_error_handle()
852 + - run-command: restrict PATH search to executable files
853 + - run-command: expose is_executable function
854 + - run-command: block signals between fork and execve
855 + - run-command: add note about forking and threading
856 + - run-command: handle dup2 and close errors in child
857 + - run-command: eliminate calls to error handling functions in child
858 + - run-command: don't die in child when duping /dev/null
859 + - run-command: prepare child environment before forking
860 + - string-list: add string_list_remove function
861 + - run-command: use the async-signal-safe execv instead of execvp
862 + - run-command: prepare command before forking
863 + - t0061: run_command executes scripts without a #! line
864 + - t5550: use write_script to generate post-update hook
865
866 The "run-command" API implementation has been made more robust
867 against dead-locking in a threaded environment.
868
816 - Will merge to 'master'.
869 + Will merge to 'next'.
870
871
872 * sb/reset-recurse-submodules (2017-04-23) 4 commits
@@ -827,27 +880,14 @@ of the repositories listed at
880 Will merge to 'next'.
881
882
830 -* ls/travis-doc-asciidoctor (2017-04-26) 4 commits
831 - (merged to 'next' on 2017-05-04 at 813ba54fc3)
832 - + travis-ci: check AsciiDoc/AsciiDoctor stderr output
833 - (merged to 'next' on 2017-04-19 at 359c32953b)
834 - + travis-ci: unset compiler for jobs that do not need one
835 - + travis-ci: parallelize documentation build
836 - + travis-ci: build documentation with AsciiDoc and Asciidoctor
837 -
838 - Have Travis CI format the documentation with both AsciiDoc and
839 - AsciiDoctor.
840 -
841 - Will merge to 'master'.
842 -
843 -
844 -* bp/sub-process-convert-filter (2017-05-08) 10 commits
883 +* bp/sub-process-convert-filter (2017-05-15) 11 commits
884 - convert: update subprocess_read_status() to not die on EOF
885 - sub-process: move sub-process functions into separate files
886 - convert: rename reusable sub-process functions
887 - convert: update generic functions to only use generic data structures
888 - convert: separate generic structures and variables from the filter specific ones
889 - convert: split start_multi_file_filter() into two separate functions
890 + - pkt-line: annotate packet_writel with LAST_ARG_MUST_BE_NULL
891 - convert: move packet_write_line() into pkt-line as packet_writel()
892 - pkt-line: add packet_read_line_gently()
893 - pkt-line: fix packet_read_line() to handle len < 0 errors
@@ -872,7 +912,6 @@ of the repositories listed at
912 - revision.c: --indexed-objects add objects from all worktrees
913 - revision.c: refactor add_index_objects_to_pending()
914 - revision.h: new flag in struct rev_info wrt. worktree-related refs
875 - (this branch uses nd/worktree-kill-parse-ref.)
915
916 "git gc" and friends when multiple worktrees are used off of a
917 single repository did not consider the index and per-worktree refs
@@ -881,25 +920,9 @@ of the repositories listed at
920 garbage collection.
921
922 Expecting a reroll.
884 - Waiting for nd/worktree-kill-parse-ref to settle.
923 + Has been waiting for nd/worktree-kill-parse-ref to settle.
924 cf. <CACsJy8ADCVBiLoPg_Tz0L6CMdh_eFmK4RYzfQ-PmUgBK7w9e=A@mail.gmail.com>
925
887 -
888 -* nd/worktree-kill-parse-ref (2017-04-24) 6 commits
889 - (merged to 'next' on 2017-04-26 at b8e40da709)
890 - + refs: kill set_worktree_head_symref()
891 - + worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
892 - + refs: introduce get_worktree_ref_store()
893 - + refs: add REFS_STORE_ALL_CAPS
894 - + refs.c: make submodule ref store hashmap generic
895 - + environment.c: fix potential segfault by get_git_common_dir()
896 - (this branch is used by nd/prune-in-worktree.)
897 -
898 - "git gc" did not interact well with "git worktree"-managed
899 - per-worktree refs.
900 -
901 - Will merge to 'master'.
902 -
926 --------------------------------------------------
927 [Discarded]
928
@@ -935,6 +958,8 @@ of the repositories listed at
958 PCRE2, which has an API different from and incompatible with PCRE,
959 can now be chosen to support "grep -P -e '<pattern>'" and friends.
960
961 + Will be rerolled.
962 +
963
964 * ab/grep-threading-cleanup (2017-04-16) 8 commits
965 . grep: given --threads with NO_PTHREADS=YesPlease, warn
@@ -946,7 +971,7 @@ of the repositories listed at
971 . grep: add tests for --threads=N and grep.threads
972 . grep: assert that threading is enabled when calling grep_{lock,unlock}
973
949 - Code cleanup.
974 + Will be rerolled.
975
976
977 * pb/bisect (2017-02-18) 28 commits
@@ -981,9 +1006,7 @@ of the repositories listed at
1006
1007 Move more parts of "git bisect" to C.
1008
984 - Will discard.
1009 It has been in the stalled state for too long.
986 - Expecting a reroll.
1010 cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
1011 cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
1012 cf. <CAFZEwPNUXcNY9Qdz=_B7q2kQuaecPzJtTMGdv8YMUPEz2vnp8A@mail.gmail.com>
@@ -1001,6 +1024,60 @@ of the repositories listed at
1024
1025 While I agree there is no need to support "--no-no-checkout", this
1026 looks more like "if it looks ugly and unusual, you do not have to
1004 - use it". Perhaps we can drop it?
1027 + use it".
1028
1006 - Will discard.
1029 +
1030 +* jc/bundle (2016-03-03) 6 commits
1031 + . index-pack: --clone-bundle option
1032 + . Merge branch 'jc/index-pack' into jc/bundle
1033 + . bundle v3: the beginning
1034 + . bundle: keep a copy of bundle file name in the in-core bundle header
1035 + . bundle: plug resource leak
1036 + . bundle doc: 'verify' is not about verifying the bundle
1037 +
1038 + The beginning of "split bundle", which could be one of the
1039 + ingredients to allow "git clone" traffic off of the core server
1040 + network to CDN.
1041 +
1042 + This was surrected from a "to be discarded" pile, as from time to
1043 + time people wonder about resumable clone that can be primed without
1044 + bothering Git servers with dynamic packfile creation, and some
1045 + people seem to think that the topic could serve as a useful
1046 + building block for that goal. But nothing seem to have happend.
1047 +
1048 +
1049 +* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
1050 + . grep: use '/' delimiter for paths
1051 + . grep: only add delimiter if there isn't one already
1052 +
1053 + "git grep", when fed a tree-ish as an input, shows each hit
1054 + prefixed with "<tree-ish>:<path>:<lineno>:". As <tree-ish> is
1055 + almost always either a commit or a tag that points at a commit, the
1056 + early part of the output "<tree-ish>:<path>" can be used as the
1057 + name of the blob and given to "git show". When <tree-ish> is a
1058 + tree given in the extended SHA-1 syntax (e.g. "<commit>:", or
1059 + "<commit>:<dir>"), however, this results in a string that does not
1060 + name a blob (e.g. "<commit>::<path>" or "<commit>:<dir>:<path>").
1061 + "git grep" has been taught to be a bit more intelligent about these
1062 + cases and omit a colon (in the former case) or use slash (in the
1063 + latter case) to produce "<commit>:<path>" and
1064 + "<commit>:<dir>/<path>" that can be used as the name of a blob.
1065 +
1066 + Nobody seems to be championing this change, after asked in all
1067 + recent "What's cooking" report:
1068 + "Is this good enough with known limitations?"
1069 +
1070 +
1071 +* jc/diff-b-m (2015-02-23) 5 commits
1072 + . WIPWIP
1073 + . WIP: diff-b-m
1074 + . diffcore-rename: allow easier debugging
1075 + . diffcore-rename.c: add locate_rename_src()
1076 + . diffcore-break: allow debugging
1077 +
1078 + "git diff -B -M" produced incorrect patch when the postimage of a
1079 + completely rewritten file is similar to the preimage of a removed
1080 + file; such a resulting file must not be expressed as a rename from
1081 + other place.
1082 +
1083 + The fix in this patch is broken, unfortunately.