What's cooking (2016/02 #07)

Junio C Hamano committed Feb 25, 2016 at 15:13 UTC f97dbcdc8e34a037736bba4c9d352f884142d0ce
1 file changed +432 -213
whats-cooking.txt
+432 -213
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Feb 2016, #06; Mon, 22)
4 -X-master-at: 70bd996071bf724a7b151c81a165e8837179d6d7
5 -X-next-at: 5fe9e24d37736b932d9f6fc17afbc616cde818a3
3 +Subject: What's cooking in git.git (Feb 2016, #07; Thu, 25)
4 +X-master-at: 56f37fda511e1615dc6df86c68f3b841711a7828
5 +X-next-at: 947c399e45ebc1a76d1e80d7152aa630726ed7e6
6
7 -What's cooking in git.git (Feb 2016, #06; Mon, 22)
7 +What's cooking in git.git (Feb 2016, #07; Thu, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,11 +12,6 @@ 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 -I originally penciled in -rc0 for today, but let's give a handful of
16 -topics that are cooking in 'next' a few more time and merge them to
17 -'master' before doing so. On the 'maint' front, there is 2.7.2 out,
18 -that merges the fixes accumulated on 'master' so far.
19 -
15 You can find the changes described here in the integration branches of the
16 repositories listed at
17
@@ -25,86 +20,324 @@ repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
28 -* ew/connect-verbose (2016-02-15) 1 commit
29 - (merged to 'next' on 2016-02-18 at 5555b13)
30 - + t5570: add tests for "git {clone,fetch,pull} -v"
23 +* bc/http-empty-auth (2016-02-15) 1 commit
24 + (merged to 'next' on 2016-02-18 at 6d2fc88)
25 + + http: add option to try authentication without username
26 +
27 + Some authentication methods do not need username or password, but
28 + libcurl needs some hint that it needs to perform authentication.
29 + Supplying an empty username and password string is a valid way to
30 + do so, but you can set the http.[<url>.]emptyAuth configuration
31 + variable to achieve the same, if you find it cleaner.
32 +
33 +
34 +* ce/https-public-key-pinning (2016-02-15) 1 commit
35 + (merged to 'next' on 2016-02-18 at f382cf0)
36 + + http: implement public key pinning
37 +
38 + You can now set http.[<url>.]pinnedpubkey to specify the pinned
39 + public key when building with recent enough versions of libcURL.
40 +
41 +
42 +* ew/force-ipv4 (2016-02-12) 1 commit
43 + (merged to 'next' on 2016-02-18 at d0211b0)
44 + + connect & http: support -4 and -6 switches for remote operations
45 +
46 + "git fetch" and friends that make network connections can now be
47 + told to only use ipv4 (or ipv6).
48 +
49 +
50 +* jc/am-i-v-fix (2016-02-17) 3 commits
51 + (merged to 'next' on 2016-02-18 at 331e518)
52 + + am -i: fix "v"iew
53 + + pager: factor out a helper to prepare a child process to run the pager
54 + + pager: lose a separate argv[]
55 +
56 + The "v(iew)" subcommand of the interactive "git am -i" command was
57 + broken in 2.6.0 timeframe when the command was rewritten in C.
58 +
59 +
60 +* jk/lose-name-path (2016-02-12) 5 commits
61 + (merged to 'next' on 2016-02-18 at 85831a6)
62 + + list-objects: pass full pathname to callbacks
63 + + list-objects: drop name_path entirely
64 + + list-objects: convert name_path to a strbuf
65 + + show_object_with_name: simplify by using path_name()
66 + + http-push: stop using name_path
67 +
68 + The "name_path" API was an attempt to reduce the need to construct
69 + the full path out of a series of path components while walking a
70 + tree hierarchy, but over time made less efficient because the path
71 + needs to be flattened, e.g. to be compared with another path that
72 + is already flat. The API has been removed and its users have been
73 + rewritten to simplify the overall code complexity.
74
32 - A missing test for a recent feature has been added.
75 +
76 +* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits
77 + (merged to 'next' on 2016-02-18 at fc7caf4)
78 + + get_sha1: don't die() on bogus search strings
79 + + check_filename: tighten dwim-wildcard ambiguity
80 + + checkout: reorder check_filename conditional
81 +
82 + "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
83 + rev, i.e. the object named by the the pathname with wildcard
84 + characters in a tree object.
85 +
86 +
87 +* nd/exclusion-regression-fix (2016-02-15) 4 commits
88 + (merged to 'next' on 2016-02-18 at 85412ab)
89 + + dir.c: don't exclude whole dir prematurely
90 + + dir.c: support marking some patterns already matched
91 + + dir.c: support tracing exclude
92 + + dir.c: fix match_pathname()
93 +
94 + Another try to add support to the ignore mechanism that lets you
95 + say "this is excluded" and then later say "oh, no, this part (that
96 + is a subset of the previous part) is not excluded".
97 +
98 +
99 +* nd/git-common-dir-fix (2016-02-12) 1 commit
100 + (merged to 'next' on 2016-02-18 at 957afc5)
101 + + rev-parse: take prefix into account in --git-common-dir
102 +
103 + "git rev-parse --git-common-dir" used in the worktree feature
104 + misbehaved when run from a subdirectory.
105
106
35 -* jk/config-include (2016-02-13) 1 commit
36 - (merged to 'next' on 2016-02-18 at 8491d55)
37 - + git-config: better document default behavior for `--include`
107 +* nd/worktree-add-B (2016-02-15) 2 commits
108 + (merged to 'next' on 2016-02-18 at bf77016)
109 + + worktree add -B: do the checkout test before update branch
110 + + worktree: fix "add -B"
111
39 - A belated documentation update clarifies the interaction between
40 - "--file", "--include" and "[include] path = $over_there".
112 + "git worktree add -B <branchname>" did not work.
113
114
43 -* js/git-remote-add-url-insteadof-test (2016-02-17) 1 commit
44 - (merged to 'next' on 2016-02-18 at ef1d82e)
45 - + t5505: 'remote add x y' should work when url.y.insteadOf = x
115 +* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit
116 + (merged to 'next' on 2016-02-18 at 1339fe4)
117 + + remote-curl: include curl_errorstr on SSL setup failures
118
47 - A missing test for a rather old change has been added.
119 + Help those who debug http(s) part of the system.
120
121 --------------------------------------------------
122 [New Topics]
123
52 -* sb/submodule-init (2016-02-19) 2 commits
53 - - submodule: port init from shell to C
54 - - submodule: port resolve_relative_url from shell to C
55 - (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.)
124 +* jg/credential-cache-chdir-to-sockdir (2016-02-23) 3 commits
125 + (merged to 'next' on 2016-02-25 at ad35811)
126 + + credential-cache--daemon: change to the socket dir on startup
127 + + credential-cache--daemon: disallow relative socket path
128 + + credential-cache--daemon: refactor check_socket_directory
129
130 + The "credential-cache" daemon process used to run in whatever
131 + directory it happened to start in, but this made umount(2)ing the
132 + filesystem that houses the repository harder; now the process
133 + chdir()s to the directory that house its own socket on startup.
134
58 -* ak/extract-argv0-last-dir-sep (2016-02-19) 1 commit
59 - - exec_cmd.c: use find_last_dir_sep() for code simplification
135 + Will merge to 'master'.
136
61 - Code simplification.
137
63 - Will merge to 'next'.
138 +* jk/no-diff-emit-common (2016-02-22) 3 commits
139 + (merged to 'next' on 2016-02-24 at 72626ea)
140 + + xdiff: drop XDL_EMIT_COMMON
141 + + merge-tree: drop generate_common strategy
142 + + merge-one-file: use empty blob for add/add base
143
144 + "git merge-tree" used to mishandle "both sides added" conflict with
145 + its own "create a fake ancestor file that has the common parts of
146 + what both sides have added and do a 3-way merge" logic; this has
147 + been updated to use the usual "3-way merge with an empty blob as
148 + the fake common ancestore file" approach used in the rest of the
149 + system.
150
66 -* az/p4-bare-no-rebase (2016-02-19) 1 commit
67 - - git-p4.py: Don't try to rebase on submit from bare repository
151 + Will merge to 'master'.
152
69 - "git p4 submit" attempts to do a rebase, which would fail if done
70 - in a bare repository. Not doing this rebase would paper over the
71 - failure, which is what this patch does, but it is unclear what the
72 - side effect of not rebasing is.
153
74 - Needs a better explanation.
154 +* mm/push-default-warning (2016-02-25) 1 commit
155 + (merged to 'next' on 2016-02-25 at 753352f)
156 + + push: remove "push.default is unset" warning message
157
158 + Across the transition at around Git version 2.0, the user used to
159 + get a pretty loud warning when running "git push" without setting
160 + push.default configuration variable. We started to tone down the
161 + warning message, given that the transition is over long time ago.
162
77 -* ak/git-strip-extension-from-dashed-command (2016-02-21) 1 commit
78 - - git.c: simplify stripping extension of a file in handle_builtin()
163 + Will merge to 'master'.
164
80 - Code simplification.
165 +
166 +* mm/push-simple-doc (2016-02-23) 1 commit
167 + (merged to 'next' on 2016-02-25 at dc4f57c)
168 + + Documentation/git-push: document that 'simple' is the default
169 +
170 + The documentation did not clearly state that the 'simple' mode is
171 + now the default for "git push" when push.default configuration is
172 + not set.
173 +
174 + Will merge to 'master'.
175 +
176 +
177 +* nd/shallow-deepen (2016-02-23) 25 commits
178 + - fetch, upload-pack: --deepen=N extends shallow boundary by N commits
179 + - upload-pack: add get_reachable_list()
180 + - upload-pack: split check_unreachable() in two, prep for get_reachable_list()
181 + - t5500, t5539: tests for shallow depth excluding a ref
182 + - clone: define shallow clone boundary with --shallow-exclude
183 + - fetch: define shallow boundary with --shallow-exclude
184 + - upload-pack: support define shallow boundary by excluding revisions
185 + - refs: add expand_ref()
186 + - t5500, t5539: tests for shallow depth since a specific date
187 + - clone: define shallow clone boundary based on time with --shallow-since
188 + - fetch: define shallow boundary with --shallow-since
189 + - upload-pack: add deepen-since to cut shallow repos based on time
190 + - shallow.c: implement a generic shallow boundary finder based on rev-list
191 + - fetch-pack: use a separate flag for fetch in deepening mode
192 + - fetch-pack: use a common function for verbose printing
193 + - fetch-pack: use skip_prefix() instead of starts_with()
194 + - upload-pack: move rev-list code out of check_non_tip()
195 + - upload-pack: tighten number parsing at "deepen" lines
196 + - upload-pack: use skip_prefix() instead of starts_with()
197 + - upload-pack: move "unshallow" sending code out of deepen()
198 + - upload-pack: remove unused variable "backup"
199 + - upload-pack: move "shallow" sending code out of deepen()
200 + - upload-pack: move shallow deepen code out of receive_needs()
201 + - transport-helper.c: refactor set_helper_option()
202 + - remote-curl.c: convert fetch_git() to use argv_array
203 +
204 + The existing "git fetch --depth=<n>" option was hard to use
205 + correctly when making the history of an existing shallow clone
206 + deeper. A new option, "--deepen=<n>", has been added to make this
207 + easier to use. "git clone" also learned "--shallow-since=<date>"
208 + and "--shallow-exclude=<tag>" options to make it easier to specify
209 + "I am interested only in the recent N months worth of history" and
210 + "Give me only the history since that version".
211 +
212 + Needs review.
213 +
214 +
215 +* ps/plug-xdl-merge-leak (2016-02-23) 1 commit
216 + (merged to 'next' on 2016-02-25 at 523609e)
217 + + xdiff/xmerge: fix memory leak in xdl_merge
218 +
219 + Will merge to 'master'.
220 +
221 +
222 +* jk/epipe-in-async (2016-02-25) 4 commits
223 + (merged to 'next' on 2016-02-25 at 4482ddf)
224 + + t5504: handle expected output from SIGPIPE death
225 + + test_must_fail: report number of unexpected signal
226 + + fetch-pack: ignore SIGPIPE in sideband demuxer
227 + + write_or_die: handle EPIPE in async threads
228 +
229 + Handling of errors while writing into our internal asynchronous
230 + process has been made more robust, which reduces flakiness in our
231 + tests.
232 +
233 + Will merge to 'master'.
234 +
235 +
236 +* js/config-set-in-non-repository (2016-02-25) 1 commit
237 + (merged to 'next' on 2016-02-25 at a675267)
238 + + git config: report when trying to modify a non-existing repo config
239 +
240 + "git config section.var value" to set a value in per-repository
241 + configuration file should have failed when it was run outside any
242 + repository, but didn't.
243 +
244 + Will merge to 'master'.
245 +
246 +
247 +* sb/submodule-module-list-fix (2016-02-24) 1 commit
248 + (merged to 'next' on 2016-02-25 at 21be607)
249 + + submodule helper list: respect correct path prefix
250 +
251 + A helper function "git submodule" uses since v2.7.0 to list the
252 + modules that match the pathspec argument given to its subcommands
253 + (e.g. "submodule add <repo> <path>") has been fixed.
254 +
255 + Will merge to 'master'.
256 +
257 +
258 +* sb/submodule-fetch-nontip (2016-02-24) 1 commit
259 + (merged to 'next' on 2016-02-25 at 1e412f0)
260 + + submodule: try harder to fetch needed sha1 by direct fetching sha1
261 +
262 + When "git submodule update" did not result in fetching the commit
263 + object in the submodule that is referenced by the superproject, the
264 + command learned to retry another fetch, specifically asking for
265 + that commit that may not be connected to the refs it usually
266 + fetches.
267 +
268 + Will merge to 'master'.
269 +
270 +
271 +* dt/initial-ref-xn-commit-doc (2016-02-25) 1 commit
272 + (merged to 'next' on 2016-02-25 at e32d0f6)
273 + + refs: document transaction semantics
274 +
275 + Will merge to 'master'.
276 +
277 +
278 +* jk/pack-idx-corruption-safety (2016-02-25) 3 commits
279 + - use_pack: handle signed off_t overflow
280 + - nth_packed_object_offset: bounds-check extended offset
281 + - t5313: test bounds-checks of corrupted/malicious pack/idx files
282 +
283 + The code to read the pack data using the offsets stored in the pack
284 + idx file has been made more carefully check the validity of the
285 + data in the idx.
286
287 Will merge to 'next'.
288
289
85 -* jk/grep-binary-workaround-in-test (2016-02-21) 2 commits
86 - - t9200: avoid grep on non-ASCII data
87 - - t8005: avoid grep on non-ASCII data
290 +* ls/makefile-cflags-developer-tweak (2016-02-25) 1 commit
291 + (merged to 'next' on 2016-02-25 at 14bb065)
292 + + add DEVELOPER makefile knob to check for acknowledged warnings
293
89 - Will see a reroll.
294 + There is a new DEVELOPER knob that enables many compiler warning
295 + options in the Makefile.
296
297 + Will merge to 'master'.
298
92 -* mg/work-tree-tests (2016-02-20) 1 commit
93 - - tests: rename work-tree tests to *work-tree*
299
95 - Traditionally, the tests that try commands that work on the
96 - contents in the working tree were named with "worktree" in their
97 - filenames, but with the recent addition of "git worktree"
98 - subcommand, whose tests are also named similarly, it has become
99 - harder to tell them apart. The traditional tests have been renamed
100 - to use "work-tree" instead in an attempt to differentiate them.
300 +* ma/update-hooks-sample-typofix (2016-02-25) 1 commit
301 + (merged to 'next' on 2016-02-25 at be49c79)
302 + + templates/hooks: fix minor typo in the sample update-hook
303
304 + Will merge to 'master'.
305
103 -* jk/more-comments-on-textconv (2016-02-22) 1 commit
104 - - diff: clarify textconv interface
306
106 - The memory ownership rule of fill_textconv() API, which was a bit
107 - tricky, has been documented a bit better.
307 +* mm/diff-renames-default (2016-02-25) 5 commits
308 + (merged to 'next' on 2016-02-25 at 947c399)
309 + + diff: activate diff.renames by default
310 + + log: introduce init_log_defaults()
311 + + t: add tests for diff.renames (true/false/unset)
312 + + t4001-diff-rename: wrap file creations in a test
313 + + Documentation/diff-config: fix description of diff.renames
314 +
315 + The end-user facing Porcelain level commands like "diff" and "log"
316 + now enables the rename detection by default.
317 +
318 + Will merge to 'master'.
319 +
320 +
321 +* mm/readme-markdown (2016-02-25) 5 commits
322 + (merged to 'next' on 2016-02-25 at b8bda29)
323 + + README.md: move down historical explanation about the name
324 + + README.md: don't call git stupid in the title
325 + + README.md: move the link to git-scm.com up
326 + + README.md: add hyperlinks on filenames
327 + + README: use markdown syntax
328 +
329 + Move README to README.md and tweak its contents slightly to make it
330 + easier on the eyes.
331 +
332 + Will merge to 'master'.
333 +
334 +
335 +* mp/upload-pack-use-embedded-args (2016-02-25) 1 commit
336 + - upload-pack: use argv_array for pack_objects
337 +
338 + The embedded args argv-array in the child process is used to build
339 + the command line to run pack-objects instead of using a separate
340 + array of strings.
341
342 Will merge to 'next'.
343
@@ -193,174 +426,160 @@ repositories listed at
426 --------------------------------------------------
427 [Cooking]
428
196 -* cn/deprecate-ssh-git-url (2016-02-15) 1 commit
197 - - Disown ssh+git and git+ssh
429 +* sb/submodule-init (2016-02-25) 2 commits
430 + - submodule: port init from shell to C
431 + - submodule: port resolve_relative_url from shell to C
432 + (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.)
433
199 - Needs toning down by replacing the condescendence with an
200 - explanation and enlightenment.
201 - ($gmane/286222)
434 + Update of "git submodule" to move pieces of logic to C continues.
435
436 + Comments?
437 + ($gmane/286092)
438
204 -* nd/git-common-dir-fix (2016-02-12) 1 commit
205 - (merged to 'next' on 2016-02-18 at 957afc5)
206 - + rev-parse: take prefix into account in --git-common-dir
439
208 - "git rev-parse --git-common-dir" used in the worktree feature
209 - misbehaved when run from a subdirectory.
440 +* ak/extract-argv0-last-dir-sep (2016-02-19) 1 commit
441 + (merged to 'next' on 2016-02-24 at f590eb0)
442 + + exec_cmd.c: use find_last_dir_sep() for code simplification
443 +
444 + Code simplification.
445
446 Will merge to 'master'.
447
448
214 -* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit
215 - (merged to 'next' on 2016-02-18 at 1339fe4)
216 - + remote-curl: include curl_errorstr on SSL setup failures
449 +* az/p4-bare-no-rebase (2016-02-19) 1 commit
450 + - git-p4.py: Don't try to rebase on submit from bare repository
451
218 - Help those who debug http(s) part of the system.
452 + "git p4 submit" attempts to do a rebase, which would fail if done
453 + in a bare repository. Not doing this rebase would paper over the
454 + failure, which is what this patch does, but it is unclear what the
455 + side effect of not rebasing is.
456
220 - Will merge to 'master'.
457 + Needs a better explanation.
458
459
223 -* bc/http-empty-auth (2016-02-15) 1 commit
224 - (merged to 'next' on 2016-02-18 at 6d2fc88)
225 - + http: add option to try authentication without username
460 +* ak/git-strip-extension-from-dashed-command (2016-02-21) 1 commit
461 + (merged to 'next' on 2016-02-24 at 8a84f91)
462 + + git.c: simplify stripping extension of a file in handle_builtin()
463
227 - Some authentication methods do not need username or password, but
228 - libcurl needs some hint that it needs to perform authentication.
229 - Supplying an empty username and password string is a valid way to
230 - do so, but you can set the http.[<url>.]emptyAuth configuration
231 - variable to achieve the same, if you find it cleaner.
464 + Code simplification.
465
466 Will merge to 'master'.
467
468
236 -* ce/https-public-key-pinning (2016-02-15) 1 commit
237 - (merged to 'next' on 2016-02-18 at f382cf0)
238 - + http: implement public key pinning
469 +* jk/grep-binary-workaround-in-test (2016-02-23) 2 commits
470 + (merged to 'next' on 2016-02-25 at 0e96ae8)
471 + + t9200: avoid grep on non-ASCII data
472 + + t8005: avoid grep on non-ASCII data
473
240 - You can now set http.[<url>.]pinnedpubkey to specify the pinned
241 - public key when building with recent enough versions of libcURL.
474 + Recent versions of GNU grep are pickier when their input contains
475 + arbitrary binary data, which some of our tests uses. Rewrite the
476 + tests to sidestep the problem.
477
478 Will merge to 'master'.
479
480
246 -* fa/merge-recursive-no-rename (2016-02-22) 4 commits
247 - - merge-recursive: find-renames resets threshold
248 - - merge-strategies.txt: fix typo
249 - (merged to 'next' on 2016-02-18 at dd6125b)
250 - + merge-recursive: more consistent interface
251 - + merge-recursive: option to disable renames
252 -
253 - "git merge-recursive" learned "--no-renames" option to disable its
254 - rename detection logic.
255 -
256 -
257 -* jc/am-i-v-fix (2016-02-17) 3 commits
258 - (merged to 'next' on 2016-02-18 at 331e518)
259 - + am -i: fix "v"iew
260 - + pager: factor out a helper to prepare a child process to run the pager
261 - + pager: lose a separate argv[]
481 +* mg/work-tree-tests (2016-02-20) 1 commit
482 + (merged to 'next' on 2016-02-25 at ca8cbb0)
483 + + tests: rename work-tree tests to *work-tree*
484
263 - The "v(iew)" subcommand of the interactive "git am -i" command was
264 - broken in 2.6.0 timeframe when the command was rewritten in C.
485 + Traditionally, the tests that try commands that work on the
486 + contents in the working tree were named with "worktree" in their
487 + filenames, but with the recent addition of "git worktree"
488 + subcommand, whose tests are also named similarly, it has become
489 + harder to tell them apart. The traditional tests have been renamed
490 + to use "work-tree" instead in an attempt to differentiate them.
491
492 Will merge to 'master'.
493
494
269 -* jk/merge-tree-merge-blobs (2016-02-16) 1 commit
270 - - merge_blobs: use strbuf instead of manually-sized mmfile_t
271 -
272 - "git merge-tree" (a throw-away demonstration) did not work very
273 - well when merging "both sides added a new file at the same path"
274 - case.
275 -
276 - Undecided; we might be better off deleting it altogether.
277 -
278 -
279 -* jk/tighten-alloc (2016-02-19) 21 commits
280 - - ewah: convert to REALLOC_ARRAY, etc
281 - - convert ewah/bitmap code to use xmalloc
282 - - diff_populate_gitlink: use a strbuf
283 - - transport_anonymize_url: use xstrfmt
284 - - git-compat-util: drop mempcpy compat code
285 - - sequencer: simplify memory allocation of get_message
286 - - test-path-utils: fix normalize_path_copy output buffer size
287 - - fetch-pack: simplify add_sought_entry
288 - - fast-import: simplify allocation in start_packfile
289 - - write_untracked_extension: use FLEX_ALLOC helper
290 - - prepare_{git,shell}_cmd: use argv_array
291 - - use st_add and st_mult for allocation size computation
292 - - convert trivial cases to FLEX_ARRAY macros
293 - - use xmallocz to avoid size arithmetic
294 - - convert trivial cases to ALLOC_ARRAY
295 - - convert manual allocations to argv_array
296 - - add helpers for allocating flex-array structs
297 - - harden REALLOC_ARRAY and xcalloc against size_t overflow
298 - - tree-diff: catch integer overflow in combine_diff_path allocation
299 - - add helpers for detecting size_t overflow
300 - - reflog_expire_cfg: NUL-terminate pattern field
495 +* jk/more-comments-on-textconv (2016-02-22) 1 commit
496 + (merged to 'next' on 2016-02-24 at 4ccfdc5)
497 + + diff: clarify textconv interface
498
302 - Update various codepaths to avoid manually-counted malloc().
499 + The memory ownership rule of fill_textconv() API, which was a bit
500 + tricky, has been documented a bit better.
501
502 + Will merge to 'master'.
503
305 -* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits
306 - (merged to 'next' on 2016-02-18 at fc7caf4)
307 - + get_sha1: don't die() on bogus search strings
308 - + check_filename: tighten dwim-wildcard ambiguity
309 - + checkout: reorder check_filename conditional
504
311 - "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
312 - rev, i.e. the object named by the the pathname with wildcard
313 - characters in a tree object.
505 +* cn/deprecate-ssh-git-url (2016-02-15) 1 commit
506 + - Disown ssh+git and git+ssh
507
315 - Will merge to 'master'.
508 + Needs toning down by replacing the condescendence with an
509 + explanation and enlightenment.
510 + ($gmane/286222)
511
512
318 -* nd/exclusion-regression-fix (2016-02-15) 4 commits
319 - (merged to 'next' on 2016-02-18 at 85412ab)
320 - + dir.c: don't exclude whole dir prematurely
321 - + dir.c: support marking some patterns already matched
322 - + dir.c: support tracing exclude
323 - + dir.c: fix match_pathname()
513 +* fa/merge-recursive-no-rename (2016-02-24) 7 commits
514 + (merged to 'next' on 2016-02-25 at 8f18cc1)
515 + + t3034: test deprecated interface
516 + + t3034: test option to disable renames
517 + + t3034: add rename threshold tests
518 + + merge-recursive: find-renames resets threshold
519 + + merge-strategies.txt: fix typo
520 + (merged to 'next' on 2016-02-18 at dd6125b)
521 + + merge-recursive: more consistent interface
522 + + merge-recursive: option to disable renames
523
325 - Another try to add support to the ignore mechanism that lets you
326 - say "this is excluded" and then later say "oh, no, this part (that
327 - is a subset of the previous part) is not excluded".
524 + "git merge-recursive" learned "--no-renames" option to disable its
525 + rename detection logic.
526
527 Will merge to 'master'.
528
529
332 -* nd/worktree-add-B (2016-02-15) 2 commits
333 - (merged to 'next' on 2016-02-18 at bf77016)
334 - + worktree add -B: do the checkout test before update branch
335 - + worktree: fix "add -B"
530 +* jk/tighten-alloc (2016-02-22) 22 commits
531 + (merged to 'next' on 2016-02-24 at 78b3251)
532 + + ewah: convert to REALLOC_ARRAY, etc
533 + + convert ewah/bitmap code to use xmalloc
534 + + diff_populate_gitlink: use a strbuf
535 + + transport_anonymize_url: use xstrfmt
536 + + git-compat-util: drop mempcpy compat code
537 + + sequencer: simplify memory allocation of get_message
538 + + test-path-utils: fix normalize_path_copy output buffer size
539 + + fetch-pack: simplify add_sought_entry
540 + + fast-import: simplify allocation in start_packfile
541 + + write_untracked_extension: use FLEX_ALLOC helper
542 + + prepare_{git,shell}_cmd: use argv_array
543 + + use st_add and st_mult for allocation size computation
544 + + convert trivial cases to FLEX_ARRAY macros
545 + + use xmallocz to avoid size arithmetic
546 + + convert trivial cases to ALLOC_ARRAY
547 + + convert manual allocations to argv_array
548 + + argv-array: add detach function
549 + + add helpers for allocating flex-array structs
550 + + harden REALLOC_ARRAY and xcalloc against size_t overflow
551 + + tree-diff: catch integer overflow in combine_diff_path allocation
552 + + add helpers for detecting size_t overflow
553 + + reflog_expire_cfg: NUL-terminate pattern field
554
337 - "git worktree add -B <branchname>" did not work.
555 + Update various codepaths to avoid manually-counted malloc().
556
557 Will merge to 'master'.
558
559
560 * ps/config-error (2016-02-22) 15 commits
343 - - config: rename git_config_set_or_die to git_config_set
344 - - config: rename git_config_set to git_config_set_gently
345 - - compat: die when unable to set core.precomposeunicode
346 - - sequencer: die on config error when saving replay opts
347 - - init-db: die on config errors when initializing empty repo
348 - - clone: die on config error in cmd_clone
349 - - remote: die on config error when manipulating remotes
350 - - remote: die on config error when setting/adding branches
351 - - remote: die on config error when setting URL
352 - - submodule--helper: die on config error when cloning module
353 - - submodule: die on config error when linking modules
354 - - branch: die on config error when editing branch description
355 - - branch: die on config error when unsetting upstream
356 - - branch: report errors in tracking branch setup
357 - - config: introduce set_or_die wrappers
561 + (merged to 'next' on 2016-02-25 at b378629)
562 + + config: rename git_config_set_or_die to git_config_set
563 + + config: rename git_config_set to git_config_set_gently
564 + + compat: die when unable to set core.precomposeunicode
565 + + sequencer: die on config error when saving replay opts
566 + + init-db: die on config errors when initializing empty repo
567 + + clone: die on config error in cmd_clone
568 + + remote: die on config error when manipulating remotes
569 + + remote: die on config error when setting/adding branches
570 + + remote: die on config error when setting URL
571 + + submodule--helper: die on config error when cloning module
572 + + submodule: die on config error when linking modules
573 + + branch: die on config error when editing branch description
574 + + branch: die on config error when unsetting upstream
575 + + branch: report errors in tracking branch setup
576 + + config: introduce set_or_die wrappers
577
578 Many codepaths forget to check return value from git_config_set();
579 the function is made to die() to make sure we do not proceed when
580 setting a configuration variable failed.
581
363 - Will merge to 'next'.
582 + Will merge to 'master'.
583
584
585 * ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit
@@ -386,44 +605,17 @@ repositories listed at
605
606
607 * ls/config-origin (2016-02-22) 4 commits
389 - - config: add '--show-origin' option to print the origin of a config value
390 - - config: add 'origin_type' to config_source struct
391 - - rename git_config_from_buf to git_config_from_mem
392 - - t: do not hide Git's exit code in tests using 'nul_to_q'
608 + (merged to 'next' on 2016-02-24 at 239fcc2)
609 + + config: add '--show-origin' option to print the origin of a config value
610 + + config: add 'origin_type' to config_source struct
611 + + rename git_config_from_buf to git_config_from_mem
612 + + t: do not hide Git's exit code in tests using 'nul_to_q'
613
614 The configuration system has been taught to phrase where it found a
615 bad configuration variable in a better way in its error messages.
616 "git config" learnt a new "--show-origin" option to indicate where
617 the values come from.
618
399 - Will merge to 'next'.
400 -
401 -
402 -* ew/force-ipv4 (2016-02-12) 1 commit
403 - (merged to 'next' on 2016-02-18 at d0211b0)
404 - + connect & http: support -4 and -6 switches for remote operations
405 -
406 - "git fetch" and friends that make network connections can now be
407 - told to only use ipv4 (or ipv6).
408 -
409 - Will merge to 'master'.
410 -
411 -
412 -* jk/lose-name-path (2016-02-12) 5 commits
413 - (merged to 'next' on 2016-02-18 at 85831a6)
414 - + list-objects: pass full pathname to callbacks
415 - + list-objects: drop name_path entirely
416 - + list-objects: convert name_path to a strbuf
417 - + show_object_with_name: simplify by using path_name()
418 - + http-push: stop using name_path
419 -
420 - The "name_path" API was an attempt to reduce the need to construct
421 - the full path out of a series of path components while walking a
422 - tree hierarchy, but over time made less efficient because the path
423 - needs to be flattened, e.g. to be compared with another path that
424 - is already flat. The API has been removed and its users have been
425 - rewritten to simplify the overall code complexity.
426 -
619 Will merge to 'master'.
620
621
@@ -443,12 +635,13 @@ repositories listed at
635
636 "git grep -i" has been taught to fold case in non-ascii locales.
637
446 - Comments?
638 + Needs review.
639 ($gmane/286137)
640
641
450 -* tb/conversion (2016-02-21) 7 commits
451 - - convert.c: correct attr_action()
642 +* tb/conversion (2016-02-23) 7 commits
643 + (merged to 'next' on 2016-02-25 at 1bb466d)
644 + + convert.c: correct attr_action()
645 (merged to 'next' on 2016-02-12 at 6faf27b)
646 + convert.c: simplify text_stat
647 + convert.c: refactor crlf_action
@@ -457,11 +650,19 @@ repositories listed at
650 + convert.c: remove unused parameter 'path'
651 + t0027: add tests for get_stream_filter()
652
653 + Code simplification.
654 +
655 + Will merge to 'master'.
656 +
657
461 -* sb/submodule-parallel-update (2016-02-19) 7 commits
658 +* sb/submodule-parallel-update (2016-02-25) 11 commits
659 - clone: allow an explicit argument for parallel submodule clones
660 - submodule update: expose parallelism to the user
661 - git submodule update: have a dedicated helper for cloning
662 + - run_processes_parallel: correctly terminate callbacks with an LF
663 + - run_processes_parallel: rename parameters for the callbacks
664 + - run-command: expose default_{start_failure, task_finished}
665 + - run_processes_parallel: treat output of children as byte array
666 - submodule update: direct error message to stderr
667 - fetching submodules: respect `submodule.fetchJobs` config option
668 - submodule-config: drop check against NULL
@@ -472,12 +673,17 @@ repositories listed at
673 advantage of the recently added framework to run download tasks in
674 parallel.
675
676 + Seems to break tests when merged to the tip of 'pu'.
677 +
678
476 -* dt/refs-backend-lmdb (2016-02-19) 28 commits
679 +* dt/refs-backend-lmdb (2016-02-25) 34 commits
680 + - SQUASH??? Minimum compilation band-aid
681 - tests: add ref-storage argument
682 - refs: tests for lmdb backend
683 - refs: add LMDB refs storage backend
480 - - refs: add register_ref_storage_backends()
684 + - refs: break out resolve_ref_unsafe_submodule
685 + - config: read ref storage config on startup
686 + - refs: register ref storage backends
687 - svn: learn ref-storage argument
688 - clone: allow ref storage backend to be set for clone
689 - refs: check submodules' ref storage config
@@ -489,16 +695,19 @@ repositories listed at
695 - refs: allow log-only updates
696 - refs: move duplicate check to common code
697 - refs: make lock generic
492 - - refs: forbid cross-backend ref renames
698 + - refs: handle non-normal ref renames
699 - refs: add method to rename refs
700 - refs: add methods to init refs db
701 - refs: add method for delete_refs
702 - refs: add method for initial ref transaction commit
703 - refs: add methods for reflog
704 - refs: add do_for_each_per_worktree_ref
705 + - refs: reduce the visibility of do_for_each_ref()
706 - refs: add method for do_for_each_ref
707 - refs: add methods for misc ref operations
708 - refs: add a backend method structure with transaction functions
709 + - refs: move resolve_ref_unsafe into common code
710 + - files-backend: break out ref reading
711 - refs: move for_each_*ref* functions into common code
712 - refs: move head_ref{,_submodule} to the common code
713 - Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb
@@ -605,3 +814,13 @@ repositories listed at
814 but because we do not have such a compiler supported, this change
815 is a net negative, churning the code without buying us anything
816 (yet).
817 +
818 +
819 +* jk/merge-tree-merge-blobs (2016-02-16) 1 commit
820 + . merge_blobs: use strbuf instead of manually-sized mmfile_t
821 +
822 + "git merge-tree" (a throw-away demonstration) did not work very
823 + well when merging "both sides added a new file at the same path"
824 + case.
825 +
826 + Solved differently by jk/no-diff-emit-common topic.