What's cooking (2017/04 #05)

Junio C Hamano committed Apr 25, 2017 at 22:14 UTC 563ff008742d989b3577bc41f434313c4e2a77bd
1 file changed +571 -485
whats-cooking.txt
+571 -485
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Apr 2017, #04; Wed, 19)
4 -X-master-at: 6a2c2f8d34fa1e8f3bb85d159d354810ed63692e
5 -X-next-at: b4426549316a3855d2b022fb331e7173b26879d0
3 +Subject: What's cooking in git.git (Apr 2017, #05; Tue, 25)
4 +X-master-at: e2cb6ab84c94f147f1259260961513b40c36108a
5 +X-next-at: 87b477812d19226f71786936237a1aa4e7df378e
6
7 -What's cooking in git.git (Apr 2017, #04; Wed, 19)
7 +What's cooking in git.git (Apr 2017, #05; Tue, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,246 +20,463 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* ab/grep-plug-pathspec-leak (2017-04-16) 1 commit
24 - (merged to 'next' on 2017-04-18 at d8f00b5e44)
25 - + grep: plug a trivial memory leak
23 +* jh/verify-index-checksum-only-in-fsck (2017-04-15) 1 commit
24 + (merged to 'next' on 2017-04-19 at a089b97d34)
25 + + read-cache: force_verify_index_checksum
26
27 - Call clear_pathspec() to release resources immediately before the
28 - cmd_grep() function returns.
27 + The index file has a trailing SHA-1 checksum to detect file
28 + corruption, and historically we checked it every time the index
29 + file is used. Omit the validation during normal use, and instead
30 + verify only in "git fsck".
31
32 + There is an update to the test script as a follow-up.
33
31 -* ah/diff-files-ours-theirs-doc (2017-04-13) 1 commit
32 - (merged to 'next' on 2017-04-18 at a4f80f0c3f)
33 - + diff-files: document --ours etc.
34
35 - The diff options "--ours", "--theirs" exist for quite some time.
36 - But so far they were not documented. Now they are.
35 +* bw/submodule-with-bs-path (2017-04-16) 1 commit
36 + (merged to 'next' on 2017-04-19 at 692775477b)
37 + + submodule: prevent backslash expantion in submodule names
38
39 + "git submodule" script does not work well with strange pathnames.
40 + Protect it from a path with slashes in them, at least.
41
39 -* bc/object-id (2017-03-31) 20 commits
40 - (merged to 'next' on 2017-04-16 at b16f1899dd)
41 - + Documentation: update and rename api-sha1-array.txt
42 - + Rename sha1_array to oid_array
43 - + Convert sha1_array_for_each_unique and for_each_abbrev to object_id
44 - + Convert sha1_array_lookup to take struct object_id
45 - + Convert remaining callers of sha1_array_lookup to object_id
46 - + Make sha1_array_append take a struct object_id *
47 - + sha1-array: convert internal storage for struct sha1_array to object_id
48 - + builtin/pull: convert to struct object_id
49 - + submodule: convert check_for_new_submodule_commits to object_id
50 - + sha1_name: convert disambiguate_hint_fn to take object_id
51 - + sha1_name: convert struct disambiguate_state to object_id
52 - + test-sha1-array: convert most code to struct object_id
53 - + parse-options-cb: convert sha1_array_append caller to struct object_id
54 - + fsck: convert init_skiplist to struct object_id
55 - + builtin/receive-pack: convert portions to struct object_id
56 - + builtin/pull: convert portions to struct object_id
57 - + builtin/diff: convert to struct object_id
58 - + Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ
59 - + Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ
60 - + Define new hash-size constants for allocating memory
42
62 - Conversion from unsigned char [40] to struct object_id continues.
43 +* dt/http-postbuffer-can-be-large (2017-04-13) 1 commit
44 + (merged to 'next' on 2017-04-19 at dc9de26fc9)
45 + + http.postbuffer: allow full range of ssize_t values
46
47 + Allow the http.postbuffer configuration variable to be set to a
48 + size that can be expressed in size_t, which can be larger than
49 + ulong on some platforms.
50 +
51 +
52 +* dt/xgethostname-nul-termination (2017-04-18) 2 commits
53 + (merged to 'next' on 2017-04-19 at 4035f442cc)
54 + + xgethostname: handle long hostnames
55 + + use HOST_NAME_MAX to size buffers for gethostname(2)
56 +
57 + gethostname(2) may not NUL terminate the buffer if hostname does
58 + not fit; unfortunately there is no easy way to see if our buffer
59 + was too small, but at least this will make sure we will not end up
60 + using garbage past the end of the buffer.
61
65 -* bw/attr-pathspec (2017-04-16) 1 commit
66 - (merged to 'next' on 2017-04-18 at 2644ca1269)
67 - + pathspec: fix segfault in clear_pathspec
62
69 - Hotfix for a topic already in 'master'.
63 +* jh/string-list-micro-optim (2017-04-15) 1 commit
64 + (merged to 'next' on 2017-04-19 at 2a5e339df9)
65 + + string-list: use ALLOC_GROW macro when reallocing string_list
66
67 + The string-list API used a custom reallocation strategy that was
68 + very inefficient, instead of using the usual ALLOC_GROW() macro,
69 + which has been fixed.
70
72 -* bw/push-options-recursively-to-submodules (2017-04-11) 5 commits
73 - (merged to 'next' on 2017-04-16 at d4d657724b)
74 - + push: propagate remote and refspec with --recurse-submodules
75 - + submodule--helper: add push-check subcommand
76 - + remote: expose parse_push_refspec function
77 - + push: propagate push-options with --recurse-submodules
78 - + push: unmark a local variable as static
71
80 - "git push --recurse-submodules --push-option=<string>" learned to
81 - propagate the push option recursively down to pushes in submodules.
72 +* jh/unpack-trees-micro-optim (2017-04-15) 1 commit
73 + (merged to 'next' on 2017-04-19 at 970c47a2f9)
74 + + unpack-trees: avoid duplicate ODB lookups during checkout
75
76 + In a 2- and 3-way merge of trees, more than one source trees often
77 + end up sharing an identical subtree; optimize by not reading the
78 + same tree multiple times in such a case.
79
84 -* bw/submodule-is-active (2017-04-13) 1 commit
85 - (merged to 'next' on 2017-04-18 at 25b05ec29e)
86 - + submodule--helper: fix typo in is_active error message
80
88 - Error message fix.
81 +* jk/loose-object-fsck (2017-04-16) 1 commit
82 + (merged to 'next' on 2017-04-19 at 0cc7810018)
83 + + sha1_file: remove an used fd variable
84
85 + Code cleanup.
86
91 -* dt/gc-ignore-old-gc-logs (2017-04-16) 1 commit
92 - (merged to 'next' on 2017-04-18 at caadf4ff66)
93 - + t6500: wait for detached auto gc at the end of the test script
87
95 - Hotfix for a topic already in 'master'.
88 +* jk/ls-files-recurse-submodules-fix (2017-04-18) 2 commits
89 + (merged to 'next' on 2017-04-19 at d4682ceaae)
90 + + ls-files: fix path used when recursing into submodules
91 + + ls-files: fix recurse-submodules with nested submodules
92
93 + "ls-files --recurse-submodules" did not quite work well in a
94 + project with nested submodules.
95
98 -* jh/memihash-opt (2017-04-18) 4 commits
99 - (merged to 'next' on 2017-04-18 at 6555be6bab)
100 - + p0004: make perf test executable
101 - (merged to 'next' on 2017-04-15 at 6bfc58e19a)
102 - + t3008: skip lazy-init test on a single-core box
103 - + test-online-cpus: helper to return cpu count
104 - (merged to 'next' on 2017-04-11 at ec5a6f2818)
105 - + name-hash: fix buffer overrun
96 +
97 +* jk/quarantine-received-objects (2017-04-16) 3 commits
98 + (merged to 'next' on 2017-04-19 at 2c6fcf1d6d)
99 + + refs: reject ref updates while GIT_QUARANTINE_PATH is set
100 + + receive-pack: document user-visible quarantine effects
101 + + receive-pack: drop tmp_objdir_env from run_update_hook
102 +
103 + Add finishing touches to a recent topic.
104 +
105 +
106 +* jk/snprintf-cleanups (2017-04-17) 1 commit
107 + (merged to 'next' on 2017-04-19 at 4a18ea9971)
108 + + replace: plug a memory leak
109
110 Hotfix for a topic that is already in 'master'.
111
112
110 -* jk/no-looking-at-dotgit-outside-repo (2017-04-16) 2 commits
111 - (merged to 'next' on 2017-04-18 at 68260787ad)
112 - + test-read-cache: setup git dir
113 - + has_sha1_file: don't bother if we are not in a repository
114 -
115 - Clean up fallouts from recent tightening of the set-up sequence,
116 - where Git barfs when repository information is accessed without
117 - first ensuring that it was started in a repository.
118 -
119 -
120 -* ld/p4-current-branch-fix (2017-04-16) 3 commits
121 - (merged to 'next' on 2017-04-18 at 9e74a2609e)
122 - + git-p4: don't use name-rev to get current branch
123 - + git-p4: add read_pipe_text() internal function
124 - + git-p4: add failing test for name-rev rather than symbolic-ref
125 -
126 - "git p4" used "name-rev HEAD" when it wants to learn what branch is
127 - checked out; it should use "symbolic-ref HEAD".
128 -
129 -
130 -* lt/mailinfo-in-body-header-continuation (2017-04-11) 1 commit
131 - (merged to 'next' on 2017-04-16 at b2f51f0780)
132 - + mailinfo: fix in-body header continuations
133 -
134 - If a patch e-mail had its first paragraph after an in-body header
135 - indented (even after a blank line after the in-body header line),
136 - the indented line was mistook as a continuation of the in-body
137 - header. This has been fixed.
138 -
139 -
140 -* nd/files-backend-git-dir (2017-04-14) 28 commits
141 - (merged to 'next' on 2017-04-18 at 79292aac69)
142 - + refs.h: add a note about sorting order of for_each_ref_*
143 - + t1406: new tests for submodule ref store
144 - + t1405: some basic tests on main ref store
145 - + t/helper: add test-ref-store to test ref-store functions
146 - + refs: delete pack_refs() in favor of refs_pack_refs()
147 - + files-backend: avoid ref api targeting main ref store
148 - + refs: new transaction related ref-store api
149 - + refs: add new ref-store api
150 - + refs: rename get_ref_store() to get_submodule_ref_store() and make it public
151 - + files-backend: replace submodule_allowed check in files_downcast()
152 - + refs: move submodule code out of files-backend.c
153 - + path.c: move some code out of strbuf_git_path_submodule()
154 - + refs.c: make get_main_ref_store() public and use it
155 - + refs.c: kill register_ref_store(), add register_submodule_ref_store()
156 - + refs.c: flatten get_ref_store() a bit
157 - + refs: rename lookup_ref_store() to lookup_submodule_ref_store()
158 - + refs.c: introduce get_main_ref_store()
159 - + files-backend: remove the use of git_path()
160 - + files-backend: add and use files_ref_path()
161 - + files-backend: add and use files_reflog_path()
162 - + files-backend: move "logs/" out of TMP_RENAMED_LOG
163 - + files-backend: convert git_path() to strbuf_git_path()
164 - + files-backend: make sure files_rename_ref() always reach the end
165 - + files-backend: add and use files_packed_refs_path()
166 - + files-backend: delete dead code in files_init_db()
167 - + files-backend.c: delete dead code in files_ref_iterator_begin()
168 - + files-backend: make files_log_ref_write() static
169 - + refs.h: add forward declaration for structs used in this file
170 - (this branch is used by mh/separate-ref-cache, nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
171 -
172 - The "submodule" specific field in the ref_store structure is
173 - replaced with a more generic "gitdir" that can later be used also
174 - when dealing with ref_store that represents the set of refs visible
175 - from the other worktrees.
176 -
177 -
178 -* sb/submodule-rm-absorb (2017-04-13) 1 commit
179 - (merged to 'next' on 2017-04-18 at 179081f848)
180 - + submodule.c: add missing ' in error messages
181 -
182 - Error message fix.
183 -
184 -
185 -* sb/submodule-short-status (2017-03-29) 7 commits
186 - (merged to 'next' on 2017-04-16 at 24e18f4a4a)
187 - + submodule.c: correctly handle nested submodules in is_submodule_modified
188 - + short status: improve reporting for submodule changes
189 - + submodule.c: stricter checking for submodules in is_submodule_modified
190 - + submodule.c: port is_submodule_modified to use porcelain 2
191 - + submodule.c: convert is_submodule_modified to use strbuf_getwholeline
192 - + submodule.c: factor out early loop termination in is_submodule_modified
193 - + submodule.c: use argv_array in is_submodule_modified
194 -
195 - The output from "git status --short" has been extended to show
196 - various kinds of dirtyness in submodules differently; instead of to
197 - "M" for modified, 'm' and '?' can be shown to signal changes only
198 - to the working tree of the submodule but not the commit that is
199 - checked out.
200 -
201 -
202 -* sf/putty-w-args (2017-04-16) 1 commit
203 - (merged to 'next' on 2017-04-18 at cbf042088c)
204 - + connect.c: handle errors from split_cmdline
205 -
206 - Hotfix for a topic already in 'master'.
207 -
208 -
209 -* va/i18n-perl-scripts (2017-04-13) 1 commit
210 - (merged to 'next' on 2017-04-18 at 89f1c77091)
211 - + git-add--interactive.perl: add missing dot in a message
212 -
213 - Message fix.
214 -
215 -
216 -* vn/revision-shorthand-for-side-branch-log (2017-04-16) 1 commit
217 - (merged to 'next' on 2017-04-18 at 9fbe55bfef)
218 - + doc/revisions: remove brackets from rev^-n shorthand
113 +* jt/fetch-pack-error-reporting (2017-04-17) 1 commit
114 + (merged to 'next' on 2017-04-19 at 6da61f7236)
115 + + fetch-pack: show clearer error message upon ERR
116 +
117 + "git fetch-pack" was not prepared to accept ERR packet that the
118 + upload-pack can send with a human-readable error message. It
119 + showed the packet contents with ERR prefix, so there was no data
120 + loss, but it was redundant to say "ERR" in an error message.
121 +
122 +
123 +* km/t1400-modernization (2017-04-16) 1 commit
124 + (merged to 'next' on 2017-04-19 at 7490be39bf)
125 + + t1400: use consistent style for test_expect_success calls
126 +
127 + Code cleanup.
128 +
129 +
130 +* nd/conditional-config-include (2017-04-14) 2 commits
131 + (merged to 'next' on 2017-04-19 at 2e94c40b46)
132 + + config: resolve symlinks in conditional include's patterns
133 + + path.c: and an option to call real_path() in expand_user_path()
134 +
135 + $GIT_DIR may in some cases be normalized with all symlinks resolved
136 + while "gitdir" path expansion in the pattern does not receive the
137 + same treatment, leading to incorrect mismatch. This has been fixed.
138 +
139 +
140 +* rs/misc-cppcheck-fixes (2017-04-17) 3 commits
141 + (merged to 'next' on 2017-04-19 at e8fca7f593)
142 + + server-info: avoid calling fclose(3) twice in update_info_file()
143 + + files_for_each_reflog_ent_reverse(): close stream and free strbuf on error
144 + + am: close stream on error, but not stdin
145 +
146 + Various small fixes.
147 +
148 +
149 +* sb/checkout-recurse-submodules (2017-04-17) 1 commit
150 + (merged to 'next' on 2017-04-19 at 414e18fd9b)
151 + + submodule: remove a superfluous second check for the "new" variable
152 +
153 + Code cleanup.
154 +
155 +
156 +* sr/http-proxy-configuration-fix (2017-04-13) 2 commits
157 + (merged to 'next' on 2017-04-19 at d8f507e951)
158 + + http: fix the silent ignoring of proxy misconfiguraion
159 + + http: honor empty http.proxy option to bypass proxy
160 +
161 + "http.proxy" set to an empty string is used to disable the usage of
162 + proxy. We broke this early last year.
163 +
164 +
165 +* tb/doc-eol-normalization (2017-04-13) 1 commit
166 + (merged to 'next' on 2017-04-19 at fe15d04d0a)
167 + + gitattributes.txt: document how to normalize the line endings
168 +
169 + Doc update.
170 +
171 +
172 +* xy/format-patch-base (2017-04-17) 1 commit
173 + (merged to 'next' on 2017-04-19 at c10723d486)
174 + + doc: trivial typo in git-format-patch.txt
175
176 Doc cleanup.
177
178 --------------------------------------------------
179 [New Topics]
180
225 -* ab/push-cas-doc-n-test (2017-04-19) 1 commit
226 - - push: document & test --force-with-lease with multiple remotes
181 +* jh/verify-index-checksum-only-in-fsck (2017-04-25) 1 commit
182 + - t1450: avoid use of "sed" on the index, which is a binary file
183
228 - Doc update.
184 + Update an unportable constructin a new test.
185 +
186 + Will merge to 'next' and then to 'master'.
187 +
188 +
189 +* dt/gc-ignore-old-gc-logs (2017-04-24) 3 commits
190 + - test-lib: retire $remove_trash variable
191 + - test-lib.sh: do not barf under --debug at the end of the test
192 + - test-lib: abort when can't remove trash directory
193 +
194 + An attempt to allow us notice "fishy" situation where we fail to
195 + remove the temporary directory used during the test.
196
197 Will merge to 'next'.
198
199
233 -* jk/parse-options-no-no-no (2017-04-19) 2 commits
234 - - SQUASH???
235 - - parse-options: disallow double-negations of options starting with no-
200 +* jk/war-on-git-path (2017-04-20) 6 commits
201 + (merged to 'next' on 2017-04-23 at 212e0a58ff)
202 + + am: drop "dir" parameter from am_state_init
203 + + replace strbuf_addstr(git_path()) with git_path_buf()
204 + + replace xstrdup(git_path(...)) with git_pathdup(...)
205 + + use git_path_* helper functions
206 + + branch: add edit_description() helper
207 + + bisect: add git_path_bisect_terms helper
208
237 - Command line options that begin with "--no-" (e.g. "--no-checkout"
238 - option of "git clone") can be negated by removing "--no-"; we
239 - historically also allowed prefixing an extra "no" to the option
240 - (e.g. "--no-no-checkout"), which made the command line look ugly
241 - and unusual. This proposes to forbid it.
209 + While handy, "git_path()" is a dangerous function to use as a
210 + callsite that uses it safely one day can be broken by changes
211 + to other code that calls it. Reduction of its use continues.
212
243 - While I agree there is no need to support "--no-no-checkout", this
244 - looks more like "if it looks ugly and unusual, you do not have to
245 - use it". Perhaps we can drop it?
213 + Will merge to 'master'.
214
215
248 -* ss/gitmodules-ignore-doc (2017-04-19) 1 commit
249 - - gitmodules: clarify the ignore option values
216 +* nd/fopen-errors (2017-04-23) 17 commits
217 + - warn_failure_to_open_read_optional_path(): a new helper
218 + - t1308: add a test case on open a config directory
219 + - config.c: handle error on failing to fopen()
220 + - xdiff-interface.c: report errno on failure to stat() or fopen()
221 + - wt-status.c: report error on failure to fopen()
222 + - server-info: report error on failure to fopen()
223 + - sequencer.c: report error on failure to fopen()
224 + - rerere.c: report correct errno
225 + - rerere.c: report error on failure to fopen()
226 + - remote.c: report error on failure to fopen()
227 + - commit.c: report error on failure to fopen() the graft file
228 + - log: report errno on failure to fopen() a file
229 + - clone: use xfopen() instead of fopen()
230 + - blame: report error on open if graft_file is a directory
231 + - bisect: report on fopen() error
232 + - config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
233 + - git_fopen: fix a sparse 'not declared' warning
234
251 - Doc update.
235 + We often try to open a file for reading whose existence is
236 + optional, and silently ignore errors from open/fopen; report such
237 + errors if they are not due to missing files.
238 +
239 + Expecting a reroll that would be much simplified thanks to a higher
240 + level helper.
241 +
242 + cf. <xmqqk26e5swj.fsf@gitster.mtv.corp.google.com>
243 + cf. <CACsJy8D1LuH6qVp15MSkCM_oQphVUUK0r9SeKC5AzX+9Xi2dcw@mail.gmail.com>
244 +
245 +
246 +* dt/raise-core-packed-git-limit (2017-04-20) 1 commit
247 + - Increase core.packedGitLimit
248 +
249 + Raise the default packed-git limit value on larger platforms to
250 + avoid "git fetch" from a (recoverable) failure while "gc" is
251 + running in parallel.
252
253 Will merge to 'next'.
254
255
256 -* ss/submodule-shallow-doc (2017-04-19) 1 commit
257 - - gitmodules: clarify what history depth a shallow clone has
256 +* jk/complete-checkout-sans-dwim-remote (2017-04-23) 1 commit
257 + - completion: optionally disable checkout DWIM
258
259 - Doc update.
259 + Completion for "git checkout <branch>" that auto-creates the branch
260 + out of a remote tracking branch can now be disabled, as this
261 + completion often gets in the way when completing to checkout an
262 + existing local branch that happens to share the same prefix with
263 + bunch of remote tracking branches.
264
265 Will merge to 'next'.
266
267 +
268 +* jk/update-links-in-docs (2017-04-20) 6 commits
269 + (merged to 'next' on 2017-04-23 at f64249bbdf)
270 + + docs/bisect-lk2009: update java code conventions link
271 + + docs/bisect-lk2009: update nist report link
272 + + docs/archimport: quote sourcecontrol.net reference
273 + + gitcore-tutorial: update broken link
274 + + doc: replace or.cz gitwiki link with git.wiki.kernel.org
275 + + doc: use https links to avoid http redirect
276 +
277 + Many stale HTTP(s) links have been updated in our documentation.
278 +
279 + Will merge to 'next'.
280 +
281 +
282 +* js/larger-timestamps (2017-04-24) 8 commits
283 + - use uintmax_t for timestamps
284 + - date.c: abort if the system time cannot handle one of our timestamps
285 + - timestamp_t: introduce a new data type for timestamps
286 + - PRItime: introduce a new "printf format" for timestamps
287 + - parse_timestamp(): specify explicitly where we parse timestamps
288 + - t0006 & t5000: skip "far in the future" test when time_t is too limited
289 + - t0006 & t5000: prepare for 64-bit timestamps
290 + - ref-filter: avoid using `unsigned long` for catch-all data type
291 +
292 + Some platforms have ulong that is smaller than time_t, and our
293 + historical use of ulong for timestamp would mean they cannot
294 + represent some timestamp that the platform allows. Invent a
295 + separate and dedicated timestamp_t (so that we can distingiuish
296 + timestamps and a vanilla ulongs, which along is already a good
297 + move), and then declare uintmax_t is the type to be used as the
298 + timestamp_t
299 +
300 + At v5.
301 + cf. <cover.1493042239.git.johannes.schindelin@gmx.de>
302 +
303 +
304 +* sf/putty-w-args (2017-04-20) 1 commit
305 + (merged to 'next' on 2017-04-23 at fdafbe6b73)
306 + + connect.c: fix leak in handle_ssh_variant
307 +
308 + Plug a memleak.
309 +
310 + Will merge to 'next'.
311 +
312 +
313 +* ab/align-perf-descriptions (2017-04-23) 1 commit
314 + - t/perf: correctly align non-ASCII descriptions in output
315 +
316 + Output from perf tests have been updated to align their titles.
317 +
318 + Will merge to 'next'.
319 +
320 +
321 +* ab/grep-pcre-v2 (2017-04-25) 19 commits
322 + - Makefile & configure: make PCRE v2 the default PCRE implementation
323 + - grep: remove support for concurrent use of both PCRE v1 & v2
324 + - grep: add support for PCRE v2
325 + - grep: add support for the PCRE v1 JIT API
326 + - perf: add a performance comparison test of grep -E and -P
327 + - grep: change the internal PCRE code & header names to be PCRE1
328 + - grep: change the internal PCRE macro names to be PCRE1
329 + - test-lib: rename the LIBPCRE prerequisite to PCRE
330 + - grep: make grep.patternType=[pcre|pcre1] a synonym for "perl"
331 + - grep & rev-list doc: stop promising libpcre for --perl-regexp
332 + - log: add -P as a synonym for --perl-regexp
333 + - log: add exhaustive tests for pattern style options & config
334 + - grep: add a test for backreferences in PCRE patterns
335 + - Makefile & configure: reword outdated comment about PCRE
336 + - grep: remove redundant `regflags &= ~REG_EXTENDED` assignments
337 + - grep: remove redundant regflags assignment under PCRE
338 + - grep: submodule-related case statements should die if new fields are added
339 + - grep: add tests for grep pattern types being passed to submodules
340 + - grep: amend submodule recursion test in preparation for rx engine testing
341 +
342 + PCRE2, which has an API different from and incompatible with PCRE,
343 + can now be chosen to support "grep -P -e '<pattern>'" and friends.
344 +
345 +
346 +* bc/object-id (2017-04-23) 53 commits
347 + - object: convert parse_object* to take struct object_id
348 + - tree: convert parse_tree_indirect to struct object_id
349 + - sequencer: convert do_recursive_merge to struct object_id
350 + - diff-lib: convert do_diff_cache to struct object_id
351 + - builtin/ls-tree: convert to struct object_id
352 + - merge: convert checkout_fast_forward to struct object_id
353 + - sequencer: convert fast_forward_to to struct object_id
354 + - builtin/ls-files: convert overlay_tree_on_cache to object_id
355 + - builtin/read-tree: convert to struct object_id
356 + - sha1_name: convert internals of peel_onion to object_id
357 + - upload-pack: convert remaining parse_object callers to object_id
358 + - revision: convert remaining parse_object callers to object_id
359 + - revision: rename add_pending_sha1 to add_pending_oid
360 + - http-push: convert process_ls_object and descendants to object_id
361 + - refs/files-backend: convert many internals to struct object_id
362 + - refs: convert struct ref_update to use struct object_id
363 + - ref-filter: convert some static functions to struct object_id
364 + - Convert struct ref_array_item to struct object_id
365 + - Convert the verify_pack callback to struct object_id
366 + - Convert lookup_tag to struct object_id
367 + - log-tree: convert to struct object_id
368 + - Convert lookup_tree to struct object_id
369 + - builtin/reflog: convert tree_is_complete to take struct object_id
370 + - tree: convert read_tree_1 to use struct object_id internally
371 + - Convert lookup_blob to struct object_id
372 + - Convert remaining callers of lookup_blob to object_id
373 + - builtin/unpack-objects: convert to struct object_id
374 + - pack: convert struct pack_idx_entry to struct object_id
375 + - Convert lookup_commit* to struct object_id
376 + - Convert remaining callers of lookup_commit_reference* to object_id
377 + - builtin/tag: convert to struct object_id
378 + - sequencer: convert some functions to struct object_id
379 + - shallow: convert shallow registration functions to object_id
380 + - revision: convert prepare_show_merge to struct object_id
381 + - notes-utils: convert internals to struct object_id
382 + - http-push: convert some static functions to struct object_id
383 + - tag: convert parse_tag_buffer to struct object_id
384 + - builtin/verify-commit: convert to struct object_id
385 + - reflog_expire: convert to struct object_id
386 + - parse-options-cb: convert to struct object_id
387 + - notes-cache: convert to struct object_id
388 + - submodule: convert merge_submodule to use struct object_id
389 + - fast-import: convert to struct object_id
390 + - fast-import: convert internal structs to struct object_id
391 + - builtin/rev-parse: convert to struct object_id
392 + - builtin/blame: convert static function to struct object_id
393 + - branch: convert to struct object_id
394 + - bundle: convert to struct object_id
395 + - builtin/prune: convert to struct object_id
396 + - builtin/name-rev: convert to struct object_id
397 + - Convert struct cache_tree to use struct object_id
398 + - Clean up outstanding object_id transforms.
399 + - fetch-pack: convert to struct object_id
400 +
401 + Conversion from uchar[20] to struct object_id continues.
402 +
403 +
404 +* jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit
405 + - cache-tree: reject entries with null sha1
406 +
407 + Tighten code to update cache-tree so that we won't accidentally
408 + write out any 0{40} entry in the tree object.
409 +
410 +
411 +* rg/a-the-typo (2017-04-23) 1 commit
412 + - NEEDSSIGNOFF: fix minor typing mistakes
413 +
414 + Typofix.
415 +
416 + Needs sign-off.
417 +
418 +
419 +* jk/prio-queue-avoid-swap-with-self (2017-04-24) 1 commit
420 + - prio_queue_reverse: don't swap elements with themselves
421 +
422 + Code clean-up.
423 +
424 + Will merge to 'next'.
425 +
426 +
427 +* jk/submodule-init-segv-fix (2017-04-24) 1 commit
428 + - submodule_init: die cleanly on submodules without url defined
429 +
430 + Fix a segv in 'submodule init' when url is not given for a submodule.
431 +
432 + Will merge to 'next'.
433 +
434 +
435 +* rs/large-zip (2017-04-24) 5 commits
436 + - archive-zip: support files bigger than 4GB
437 + - archive-zip: support archives bigger than 4GB
438 + - archive-zip: write ZIP dir entry directly to strbuf
439 + - archive-zip: use strbuf for ZIP directory
440 + - archive-zip: add tests for big ZIP archives
441 +
442 + "git archive --format=zip" learned to use zip64 extension when
443 + necessary to go beyond the 4GB limit.
444 +
445 + Will merge to 'next'.
446 +
447 +
448 +* jc/checkout-working-tree-only (2017-04-25) 1 commit
449 + - checkout: add --working-tree-only option
450 +
451 + "git checkout <tree-ish> <pathspec>" learned a variant that does
452 + not update the index when doing its thing.
453 +
454 +
455 +* js/rebase-i-final (2017-04-25) 9 commits
456 + - rebase -i: rearrange fixup/squash lines using the rebase--helper
457 + - t3415: test fixup with wrapped oneline
458 + - rebase -i: skip unnecessary picks using the rebase--helper
459 + - rebase -i: check for missing commits in the rebase--helper
460 + - t3404: relax rebase.missingCommitsCheck tests
461 + - rebase -i: also expand/collapse the SHA-1s via the rebase--helper
462 + - rebase -i: do not invent onelines when expanding/collapsing SHA-1s
463 + - rebase -i: remove useless indentation
464 + - rebase -i: generate the script via rebase--helper
465 +
466 + The final batch to "git rebase -i" updates to move more code from
467 + the shell script to C.
468 +
469 +
470 +* jt/use-trailer-api-in-commands (2017-04-25) 2 commits
471 + - SQUASH??? suggested by jrnieder
472 + - sequencer: require trailing NL in footers
473 +
474 + "git cherry-pick" and other uses of the sequencer machinery
475 + mishandled a trailer block whose last line is an incomplete line.
476 + This has been fixed so that an additional sign-off etc. are added
477 + after completing the existing incomplete line.
478 +
479 +
480 --------------------------------------------------
481 [Stalled]
482
@@ -293,52 +510,39 @@ of the repositories listed at
510 cf. <xmqq60jmnmef.fsf@junio-linux.mtv.corp.google.com>
511
512
296 -* nd/worktree-move (2017-01-27) 7 commits
297 - . fixup! worktree move: new command
298 - . worktree remove: new command
299 - . worktree move: refuse to move worktrees with submodules
300 - . worktree move: accept destination as directory
301 - . worktree move: new command
302 - . worktree.c: add update_worktree_location()
303 - . worktree.c: add validate_worktree()
304 -
305 - "git worktree" learned move and remove subcommands.
306 -
307 - Tentatively ejected as it seems to break 'pu' when merged.
308 -
309 -
513 * pb/bisect (2017-02-18) 28 commits
311 - - fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C
312 - - bisect--helper: remove the dequote in bisect_start()
313 - - bisect--helper: retire `--bisect-auto-next` subcommand
314 - - bisect--helper: retire `--bisect-autostart` subcommand
315 - - bisect--helper: retire `--bisect-write` subcommand
316 - - bisect--helper: `bisect_replay` shell function in C
317 - - bisect--helper: `bisect_log` shell function in C
318 - - bisect--helper: retire `--write-terms` subcommand
319 - - bisect--helper: retire `--check-expected-revs` subcommand
320 - - bisect--helper: `bisect_state` & `bisect_head` shell function in C
321 - - bisect--helper: `bisect_autostart` shell function in C
322 - - bisect--helper: retire `--next-all` subcommand
323 - - bisect--helper: retire `--bisect-clean-state` subcommand
324 - - bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
325 - - t6030: no cleanup with bad merge base
326 - - bisect--helper: `bisect_start` shell function partially in C
327 - - bisect--helper: `get_terms` & `bisect_terms` shell function in C
328 - - bisect--helper: `bisect_next_check` & bisect_voc shell function in C
329 - - bisect--helper: `check_and_set_terms` shell function in C
330 - - bisect--helper: `bisect_write` shell function in C
331 - - bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
332 - - bisect--helper: `bisect_reset` shell function in C
333 - - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
334 - - t6030: explicitly test for bisection cleanup
335 - - bisect--helper: `bisect_clean_state` shell function in C
336 - - bisect--helper: `write_terms` shell function in C
337 - - bisect: rewrite `check_term_format` shell function in C
338 - - bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
514 + . fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C
515 + . bisect--helper: remove the dequote in bisect_start()
516 + . bisect--helper: retire `--bisect-auto-next` subcommand
517 + . bisect--helper: retire `--bisect-autostart` subcommand
518 + . bisect--helper: retire `--bisect-write` subcommand
519 + . bisect--helper: `bisect_replay` shell function in C
520 + . bisect--helper: `bisect_log` shell function in C
521 + . bisect--helper: retire `--write-terms` subcommand
522 + . bisect--helper: retire `--check-expected-revs` subcommand
523 + . bisect--helper: `bisect_state` & `bisect_head` shell function in C
524 + . bisect--helper: `bisect_autostart` shell function in C
525 + . bisect--helper: retire `--next-all` subcommand
526 + . bisect--helper: retire `--bisect-clean-state` subcommand
527 + . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
528 + . t6030: no cleanup with bad merge base
529 + . bisect--helper: `bisect_start` shell function partially in C
530 + . bisect--helper: `get_terms` & `bisect_terms` shell function in C
531 + . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
532 + . bisect--helper: `check_and_set_terms` shell function in C
533 + . bisect--helper: `bisect_write` shell function in C
534 + . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
535 + . bisect--helper: `bisect_reset` shell function in C
536 + . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
537 + . t6030: explicitly test for bisection cleanup
538 + . bisect--helper: `bisect_clean_state` shell function in C
539 + . bisect--helper: `write_terms` shell function in C
540 + . bisect: rewrite `check_term_format` shell function in C
541 + . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
542
543 Move more parts of "git bisect" to C.
544
545 + Ejected from 'pu', as it overlaps and gets in the way of bc/object-id topic.
546 Expecting a reroll.
547 cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
548 cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
@@ -384,112 +588,125 @@ of the repositories listed at
588 --------------------------------------------------
589 [Cooking]
590
387 -* df/dir-iter-remove-subtree (2017-04-19) 5 commits
388 - - remove_subtree(): reimplement using iterators
389 - - dir_iterator: rewrite state machine model
390 - - dir_iterator: refactor dir_iterator_advance
391 - - remove_subtree(): test removing nested directories
392 - - dir_iterator: add tests for dir_iterator API
591 +* nd/worktree-move (2017-04-20) 6 commits
592 + - worktree remove: new command
593 + - worktree move: refuse to move worktrees with submodules
594 + - worktree move: accept destination as directory
595 + - worktree move: new command
596 + - worktree.c: add update_worktree_location()
597 + - worktree.c: add validate_worktree()
598
394 - Update the dir-iterator API and use it to reimplement
395 - remove_subtree().
599 + "git worktree" learned move and remove subcommands.
600
397 - Almost there except for a minor nit.
398 - GSoC microproject.
601 + cf. <20170420101024.7593-1-pclouds@gmail.com>
602 + cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
603 + cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
604
605
401 -* jk/ls-files-recurse-submodules-fix (2017-04-18) 2 commits
402 - (merged to 'next' on 2017-04-19 at d4682ceaae)
403 - + ls-files: fix path used when recursing into submodules
404 - + ls-files: fix recurse-submodules with nested submodules
606 +* ab/push-cas-doc-n-test (2017-04-19) 1 commit
607 + (merged to 'next' on 2017-04-23 at 0ef31ab624)
608 + + push: document & test --force-with-lease with multiple remotes
609
406 - "ls-files --recurse-submodules" did not quite work well in a
407 - project with nested submodules.
610 + Doc update.
611
612 Will merge to 'master'.
613
614
412 -* jt/fetch-pack-error-reporting (2017-04-17) 1 commit
413 - (merged to 'next' on 2017-04-19 at 6da61f7236)
414 - + fetch-pack: show clearer error message upon ERR
615 +* jk/parse-options-no-no-no (2017-04-19) 2 commits
616 + - SQUASH???
617 + - parse-options: disallow double-negations of options starting with no-
618
416 - "git fetch-pack" was not prepared to accept ERR packet that the
417 - upload-pack can send with a human-readable error message. It
418 - showed the packet contents with ERR prefix, so there was no data
419 - loss, but it was redundant to say "ERR" in an error message.
619 + Command line options that begin with "--no-" (e.g. "--no-checkout"
620 + option of "git clone") can be negated by removing "--no-"; we
621 + historically also allowed prefixing an extra "no" to the option
622 + (e.g. "--no-no-checkout"), which made the command line look ugly
623 + and unusual. This proposes to forbid it.
624
421 - Will merge to 'master'.
625 + While I agree there is no need to support "--no-no-checkout", this
626 + looks more like "if it looks ugly and unusual, you do not have to
627 + use it". Perhaps we can drop it?
628
629
424 -* nd/conditional-config-in-early-config (2017-04-19) 3 commits
425 - - config: correct file reading order in read_early_config()
426 - - config: handle conditional include when $GIT_DIR is not set up
427 - - config: prepare to pass more info in git_config_with_options()
630 +* ss/gitmodules-ignore-doc (2017-04-19) 1 commit
631 + (merged to 'next' on 2017-04-23 at 3963ab5013)
632 + + gitmodules: clarify the ignore option values
633
429 - The recently introduced conditional inclusion of configuration did
430 - not work well when early-config mechanism was involved.
634 + Doc update.
635
432 - Will merge to 'next'.
636 + Will merge to 'master'.
637
638
435 -* sb/checkout-recurse-submodules (2017-04-17) 1 commit
436 - (merged to 'next' on 2017-04-19 at 414e18fd9b)
437 - + submodule: remove a superfluous second check for the "new" variable
639 +* ss/submodule-shallow-doc (2017-04-19) 1 commit
640 + (merged to 'next' on 2017-04-23 at 56a80f913d)
641 + + gitmodules: clarify what history depth a shallow clone has
642
439 - Code cleanup.
643 + Doc update.
644
645 Will merge to 'master'.
646
647
444 -* xy/format-patch-base (2017-04-17) 1 commit
445 - (merged to 'next' on 2017-04-19 at c10723d486)
446 - + doc: trivial typo in git-format-patch.txt
648 +* df/dir-iter-remove-subtree (2017-04-19) 5 commits
649 + - remove_subtree(): reimplement using iterators
650 + - dir_iterator: rewrite state machine model
651 + - dir_iterator: refactor dir_iterator_advance
652 + - remove_subtree(): test removing nested directories
653 + - dir_iterator: add tests for dir_iterator API
654
448 - Doc cleanup.
655 + Update the dir-iterator API and use it to reimplement
656 + remove_subtree().
657
450 - Will merge to 'master'.
658 + Almost there except for a minor nit.
659 + GSoC microproject.
660
661
453 -* jk/snprintf-cleanups (2017-04-17) 1 commit
454 - (merged to 'next' on 2017-04-19 at 4a18ea9971)
455 - + replace: plug a memory leak
662 +* nd/conditional-config-in-early-config (2017-04-19) 3 commits
663 + (merged to 'next' on 2017-04-23 at 1803ee72a9)
664 + + config: correct file reading order in read_early_config()
665 + + config: handle conditional include when $GIT_DIR is not set up
666 + + config: prepare to pass more info in git_config_with_options()
667
457 - Hotfix for a topic that is already in 'master'.
668 + The recently introduced conditional inclusion of configuration did
669 + not work well when early-config mechanism was involved.
670
671 Will merge to 'master'.
672
673
674 * ab/clone-no-tags (2017-04-19) 1 commit
463 - - clone: add a --no-tags option to clone without tags
675 + (merged to 'next' on 2017-04-23 at c6329b0f7c)
676 + + clone: add a --no-tags option to clone without tags
677
678 "git clone" learned the "--no-tags" option not to fetch all tags
679 initially, and also set up the tagopt not to follow any tags in
680 subsequent fetches.
681
469 - Will merge to 'next'.
682 + Will merge to 'master'.
683
684
472 -* ab/completion-push-delete-ref (2017-04-18) 1 commit
473 - - completion: expand "push --delete <remote> <ref>" for refs on that <remote>
685 +* ab/completion-push-delete-ref (2017-04-23) 1 commit
686 + (merged to 'next' on 2017-04-23 at e227df80bf)
687 + + completion: expand "push --delete <remote> <ref>" for refs on that <remote>
688
689 The completion script (in contrib/) learned to complete "git push
690 --delete b<TAB>" to complete branch name to be deleted.
691
478 - Will merge to 'next'.
692 + Will merge to 'master'.
693
694
481 -* bw/forking-and-threading (2017-04-19) 11 commits
482 - - run-command: block signals between fork and execve
483 - - run-command: add note about forking and threading
484 - - run-command: handle dup2 and close errors in child
485 - - run-command: eliminate calls to error handling functions in child
486 - - run-command: don't die in child when duping /dev/null
487 - - run-command: prepare child environment before forking
488 - - string-list: add string_list_remove function
489 - - run-command: use the async-signal-safe execv instead of execvp
490 - - run-command: prepare command before forking
491 - - t0061: run_command executes scripts without a #! line
492 - - t5550: use write_script to generate post-update hook
695 +* bw/forking-and-threading (2017-04-25) 13 commits
696 + - run-command: restrict PATH search to executable files
697 + - run-command: expose is_executable function
698 + (merged to 'next' on 2017-04-23 at 7754b5ebc3)
699 + + run-command: block signals between fork and execve
700 + + run-command: add note about forking and threading
701 + + run-command: handle dup2 and close errors in child
702 + + run-command: eliminate calls to error handling functions in child
703 + + run-command: don't die in child when duping /dev/null
704 + + run-command: prepare child environment before forking
705 + + string-list: add string_list_remove function
706 + + run-command: use the async-signal-safe execv instead of execvp
707 + + run-command: prepare command before forking
708 + + t0061: run_command executes scripts without a #! line
709 + + t5550: use write_script to generate post-update hook
710
711 The "run-command" APIimplementation has been made more robust
712 against dead-locking in a threaded environment.
@@ -497,7 +714,7 @@ of the repositories listed at
714 Will merge to 'next'.
715
716
500 -* sb/reset-recurse-submodules (2017-04-18) 4 commits
717 +* sb/reset-recurse-submodules (2017-04-23) 4 commits
718 - builtin/reset: add --recurse-submodules switch
719 - submodule.c: submodule_move_head works with broken submodules
720 - submodule.c: uninitialized submodules are ignored in recursive commands
@@ -506,53 +723,6 @@ of the repositories listed at
723 "git reset" learned "--recurse-submodules" option.
724
725
509 -* dt/xgethostname-nul-termination (2017-04-18) 2 commits
510 - (merged to 'next' on 2017-04-19 at 4035f442cc)
511 - + xgethostname: handle long hostnames
512 - + use HOST_NAME_MAX to size buffers for gethostname(2)
513 -
514 - gethostname(2) may not NUL terminate the buffer if hostname does
515 - not fit; unfortunately there is no easy way to see if our buffer
516 - was too small, but at least this will make sure we will not end up
517 - using garbage past the end of the buffer.
518 -
519 - Will merge to 'master'.
520 -
521 -
522 -* jh/string-list-micro-optim (2017-04-15) 1 commit
523 - (merged to 'next' on 2017-04-19 at 2a5e339df9)
524 - + string-list: use ALLOC_GROW macro when reallocing string_list
525 -
526 - The string-list API used a custom reallocation strategy that was
527 - very inefficient, instead of using the usual ALLOC_GROW() macro,
528 - which has been fixed.
529 -
530 - Will merge to 'master'.
531 -
532 -
533 -* jh/unpack-trees-micro-optim (2017-04-15) 1 commit
534 - (merged to 'next' on 2017-04-19 at 970c47a2f9)
535 - + unpack-trees: avoid duplicate ODB lookups during checkout
536 -
537 - In a 2- and 3-way merge of trees, more than one source trees often
538 - end up sharing an identical subtree; optimize by not reading the
539 - same tree multiple times in such a case.
540 -
541 - Will merge to 'master'.
542 -
543 -
544 -* jh/verify-index-checksum-only-in-fsck (2017-04-15) 1 commit
545 - (merged to 'next' on 2017-04-19 at a089b97d34)
546 - + read-cache: force_verify_index_checksum
547 -
548 - The index file has a trailing SHA-1 checksum to detect file
549 - corruption, and historically we checked it every time the index
550 - file is used. Omit the validation during normal use, and instead
551 - verify only in "git fsck".
552 -
553 - Will merge to 'master'.
554 -
555 -
726 * ls/travis-doc-asciidoctor (2017-04-16) 3 commits
727 (merged to 'next' on 2017-04-19 at 359c32953b)
728 + travis-ci: unset compiler for jobs that do not need one
@@ -562,7 +732,8 @@ of the repositories listed at
732 Have Travis CI format the documentation with both AsciiDoc and
733 AsciiDoctor.
734
565 - Will merge to 'master'.
735 + Will hold in 'next' waiting for a small update.
736 + cf. <25191991-F4EA-4D91-B291-854F46A34DC2@gmail.com>
737
738
739 * mg/status-in-progress-info (2017-04-14) 1 commit
@@ -575,54 +746,23 @@ of the repositories listed at
746 cf. <xmqqwpajikd2.fsf@gitster.mtv.corp.google.com>
747
748
578 -* nd/conditional-config-include (2017-04-14) 2 commits
579 - (merged to 'next' on 2017-04-19 at 2e94c40b46)
580 - + config: resolve symlinks in conditional include's patterns
581 - + path.c: and an option to call real_path() in expand_user_path()
582 -
583 - $GIT_DIR may in some cases be normalized with all symlinks resolved
584 - while "gitdir" path expansion in the pattern does not receive the
585 - same treatment, leading to incorrect mismatch. This has been fixed.
586 -
587 - Will merge to 'master'.
588 -
589 -
590 -* nd/worktree-add-lock (2017-04-16) 2 commits
591 - - SQUASH???
592 - - worktree add: add --lock option
749 +* nd/worktree-add-lock (2017-04-20) 1 commit
750 + (merged to 'next' on 2017-04-23 at 160b955fbb)
751 + + worktree add: add --lock option
752
753 Allow to lock a worktree immediately after it's created. This helps
754 prevent a race between "git worktree add; git worktree lock" and
755 "git worktree prune".
756
598 - Waiting for a response to SQUASH???
757 + Will merge to 'master'.
758
759
760 * ps/pathspec-empty-prefix-origin (2017-04-14) 1 commit
602 - - pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix
761 + (merged to 'next' on 2017-04-23 at b91098d1f7)
762 + + pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix
763
764 A recent update broke "git add -p ../foo" from a subdirectory.
765
606 - Will merge to 'next'.
607 -
608 -
609 -* sr/http-proxy-configuration-fix (2017-04-13) 2 commits
610 - (merged to 'next' on 2017-04-19 at d8f507e951)
611 - + http: fix the silent ignoring of proxy misconfiguraion
612 - + http: honor empty http.proxy option to bypass proxy
613 -
614 - "http.proxy" set to an empty string is used to disable the usage of
615 - proxy. We broke this early last year.
616 -
617 - Will merge to 'master'.
618 -
619 -
620 -* tb/doc-eol-normalization (2017-04-13) 1 commit
621 - (merged to 'next' on 2017-04-19 at fe15d04d0a)
622 - + gitattributes.txt: document how to normalize the line endings
623 -
624 - Doc update.
625 -
766 Will merge to 'master'.
767
768
@@ -638,17 +778,18 @@ of the repositories listed at
778
779
780 * jh/add-index-entry-optim (2017-04-19) 5 commits
641 - - read-cache: speed up has_dir_name (part 2)
642 - - read-cache: speed up has_dir_name (part 1)
643 - - read-cache: speed up add_index_entry during checkout
644 - - p0006-read-tree-checkout: perf test to time read-tree
645 - - read-cache: add strcmp_offset function
781 + (merged to 'next' on 2017-04-23 at 295d4066a8)
782 + + read-cache: speed up has_dir_name (part 2)
783 + + read-cache: speed up has_dir_name (part 1)
784 + + read-cache: speed up add_index_entry during checkout
785 + + p0006-read-tree-checkout: perf test to time read-tree
786 + + read-cache: add strcmp_offset function
787
788 "git checkout" that handles a lot of paths has been optimized by
789 reducing the number of unnecessary checks of paths in the
790 has_dir_name() function.
791
651 - Will merge to 'next'.
792 + Will merge to 'master'.
793
794
795 * ab/grep-threading-cleanup (2017-04-16) 8 commits
@@ -662,94 +803,35 @@ of the repositories listed at
803 - grep: assert that threading is enabled when calling grep_{lock,unlock}
804
805
665 -* bw/submodule-with-bs-path (2017-04-16) 1 commit
666 - (merged to 'next' on 2017-04-19 at 692775477b)
667 - + submodule: prevent backslash expantion in submodule names
668 -
669 - "git submodule" script does not work well with strange pathnames.
670 - Protect it from a path with slashes in them, at least.
671 -
672 - Will merge to 'master'.
673 -
674 -
675 -* jk/loose-object-fsck (2017-04-16) 1 commit
676 - (merged to 'next' on 2017-04-19 at 0cc7810018)
677 - + sha1_file: remove an used fd variable
678 -
679 - Code cleanup.
680 -
681 - Will merge to 'master'.
682 -
683 -
684 -* jk/quarantine-received-objects (2017-04-16) 3 commits
685 - (merged to 'next' on 2017-04-19 at 2c6fcf1d6d)
686 - + refs: reject ref updates while GIT_QUARANTINE_PATH is set
687 - + receive-pack: document user-visible quarantine effects
688 - + receive-pack: drop tmp_objdir_env from run_update_hook
689 -
690 - Add finishing touches to a recent topic.
691 -
692 - Will merge to 'master'.
693 -
694 -
806 * ls/travis-coccicheck (2017-04-16) 1 commit
696 - - travis-ci: add static analysis build job to run coccicheck
807 + (merged to 'next' on 2017-04-23 at fa42ffe6b2)
808 + + travis-ci: add static analysis build job to run coccicheck
809
810 Travis CI learns to run coccicheck.
811
700 - Will merge to 'next'.
701 -
702 -
703 -* rs/misc-cppcheck-fixes (2017-04-17) 3 commits
704 - (merged to 'next' on 2017-04-19 at e8fca7f593)
705 - + server-info: avoid calling fclose(3) twice in update_info_file()
706 - + files_for_each_reflog_ent_reverse(): close stream and free strbuf on error
707 - + am: close stream on error, but not stdin
708 -
709 - Various small fixes.
710 -
711 - Will merge to 'master'.
712 -
713 -
714 -* km/t1400-modernization (2017-04-16) 1 commit
715 - (merged to 'next' on 2017-04-19 at 7490be39bf)
716 - + t1400: use consistent style for test_expect_success calls
717 -
718 - Code cleanup.
719 -
720 - Will merge to 'master'.
721 -
722 -
723 -* dt/http-postbuffer-can-be-large (2017-04-13) 1 commit
724 - (merged to 'next' on 2017-04-19 at dc9de26fc9)
725 - + http.postbuffer: allow full range of ssize_t values
726 -
727 - Allow the http.postbuffer configuration variable to be set to a
728 - size that can be expressed in size_t, which can be larger than
729 - ulong on some platforms.
730 -
812 Will merge to 'master'.
813
814
815 * pc/t2027-git-to-pipe-cleanup (2017-04-14) 1 commit
735 - - t2027: avoid using pipes
816 + (merged to 'next' on 2017-04-23 at b5c28345a9)
817 + + t2027: avoid using pipes
818
819 Having a git command on the upstream side of a pipe in a test
820 script will hide the exit status from the command, which may cause
821 us to fail to notice a breakage; rewrite tests in a script to avoid
822 this issue.
823
742 - Will merge to 'next'.
824 + Will merge to 'master'.
825
826
745 -* bp/sub-process-convert-filter (2017-03-30) 8 commits
746 - - convert: update subprocess_read_status to not die on EOF
827 +* bp/sub-process-convert-filter (2017-04-23) 8 commits
828 + - convert: update subprocess_read_status() to not die on EOF
829 - sub-process: move sub-process functions into separate files
830 - convert: rename reusable sub-process functions
831 - convert: update generic functions to only use generic data structures
832 - convert: separate generic structures and variables from the filter specific ones
751 - - convert: split start_multi_file_filter() into two separate functions
752 - - convert: move packet_write_list() into pkt-line.c as packet_writel()
833 + - convert: split start_multi_file_filter into two separate functions
834 + - convert: move packet_write_list() into pkt-line as packet_writel()
835 - pkt-line: add packet_read_line_gently()
836
837 Code from "conversion using external process" codepath has been
@@ -759,14 +841,14 @@ of the repositories listed at
841 cf. <20170407120354.17736-1-benpeart@microsoft.com>
842
843
762 -* cc/split-index-config (2017-03-30) 1 commit
763 - - read-cache: avoid using git_path() in freshen_shared_index()
844 +* cc/split-index-config (2017-04-20) 1 commit
845 + (merged to 'next' on 2017-04-23 at 5996ddc3f2)
846 + + read-cache: avoid using git_path() in freshen_shared_index()
847
848 The split-index code configuration code used an unsafe git_path()
849 function without copying its result out.
850
768 - Needs to be explained better.
769 - The code looked OK, though.
851 + Will merge to 'master'.
852
853
854 * mg/name-rev-debug (2017-03-31) 4 commits
@@ -783,31 +865,32 @@ of the repositories listed at
865
866
867 * mh/separate-ref-cache (2017-04-16) 20 commits
786 - - do_for_each_entry_in_dir(): delete function
787 - - files_pack_refs(): use reference iteration
788 - - commit_packed_refs(): use reference iteration
789 - - cache_ref_iterator_begin(): make function smarter
790 - - get_loose_ref_cache(): new function
791 - - get_loose_ref_dir(): function renamed from get_loose_refs()
792 - - do_for_each_entry_in_dir(): eliminate `offset` argument
793 - - refs: handle "refs/bisect/" in `loose_fill_ref_dir()`
794 - - ref-cache: use a callback function to fill the cache
795 - - refs: record the ref_store in ref_cache, not ref_dir
796 - - ref-cache: introduce a new type, ref_cache
797 - - refs: split `ref_cache` code into separate files
798 - - ref-cache: rename `remove_entry()` to `remove_entry_from_dir()`
799 - - ref-cache: rename `find_ref()` to `find_ref_entry()`
800 - - ref-cache: rename `add_ref()` to `add_ref_entry()`
801 - - refs_verify_refname_available(): use function in more places
802 - - refs_verify_refname_available(): implement once for all backends
803 - - refs_ref_iterator_begin(): new function
804 - - refs_read_raw_ref(): new function
805 - - get_ref_dir(): don't call read_loose_refs() for "refs/bisect"
868 + (merged to 'next' on 2017-04-23 at bd74983456)
869 + + do_for_each_entry_in_dir(): delete function
870 + + files_pack_refs(): use reference iteration
871 + + commit_packed_refs(): use reference iteration
872 + + cache_ref_iterator_begin(): make function smarter
873 + + get_loose_ref_cache(): new function
874 + + get_loose_ref_dir(): function renamed from get_loose_refs()
875 + + do_for_each_entry_in_dir(): eliminate `offset` argument
876 + + refs: handle "refs/bisect/" in `loose_fill_ref_dir()`
877 + + ref-cache: use a callback function to fill the cache
878 + + refs: record the ref_store in ref_cache, not ref_dir
879 + + ref-cache: introduce a new type, ref_cache
880 + + refs: split `ref_cache` code into separate files
881 + + ref-cache: rename `remove_entry()` to `remove_entry_from_dir()`
882 + + ref-cache: rename `find_ref()` to `find_ref_entry()`
883 + + ref-cache: rename `add_ref()` to `add_ref_entry()`
884 + + refs_verify_refname_available(): use function in more places
885 + + refs_verify_refname_available(): implement once for all backends
886 + + refs_ref_iterator_begin(): new function
887 + + refs_read_raw_ref(): new function
888 + + get_ref_dir(): don't call read_loose_refs() for "refs/bisect"
889
890 The internals of the refs API around the cached refs has been
891 streamlined.
892
810 - Will merge to 'next'.
893 + Will merge to 'master'.
894
895
896 * ja/doc-l10n (2017-03-20) 3 commits
@@ -818,7 +901,7 @@ of the repositories listed at
901 A proposal to use po4a to localize our manual pages.
902
903
821 -* nd/prune-in-worktree (2017-04-19) 12 commits
904 +* nd/prune-in-worktree (2017-04-24) 12 commits
905 - rev-list: expose and document --single-worktree
906 - revision.c: --reflog add HEAD reflog from all worktrees
907 - files-backend: make reflog iterator go through per-worktree reflog
@@ -839,13 +922,16 @@ of the repositories listed at
922 objects that are in use only in other worktrees to be subject to
923 garbage collection.
924
925 + Expecting a reroll.
926 Waiting for nd/worktree-kill-parse-ref to settle.
927 + cf. <CACsJy8ADCVBiLoPg_Tz0L6CMdh_eFmK4RYzfQ-PmUgBK7w9e=A@mail.gmail.com>
928
929
845 -* nd/worktree-kill-parse-ref (2017-04-16) 5 commits
930 +* nd/worktree-kill-parse-ref (2017-04-24) 6 commits
931 - refs: kill set_worktree_head_symref()
932 - worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
933 - refs: introduce get_worktree_ref_store()
934 + - refs: add REFS_STORE_ALL_CAPS
935 - refs.c: make submodule ref store hashmap generic
936 - environment.c: fix potential segfault by get_git_common_dir()
937 (this branch is used by nd/prune-in-worktree.)