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.