What's cooking (2016/02 #08)
Junio C Hamano committed
Feb 26, 2016 at 14:10 UTC
590453281da906d5fc7acf361028239586b0b76a
1 file changed
+315
-486
whats-cooking.txt
+315
-486
@@ -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, #07; Thu, 25)
4
-X-master-at: 56f37fda511e1615dc6df86c68f3b841711a7828
5
-X-next-at: 947c399e45ebc1a76d1e80d7152aa630726ed7e6
3
+Subject: What's cooking in git.git (Feb 2016, #08; Fri, 26)
4
+X-master-at: f02fbc4f9433937ee0463d0342d6d7d97e1f6f1e
5
+X-next-at: f92f5fe29a68d654894c6a10c5f5b3f0ce4bb1a5
6
7
-What's cooking in git.git (Feb 2016, #07; Thu, 25)
7
+What's cooking in git.git (Feb 2016, #08; Fri, 26)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,6 +12,24 @@ 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
+v2.8-rc0 has been tagged; this is a preview for the next release.
16
+
17
+In previous cycles, I often left many topics in 'next' when tagging
18
+this zero-th preview, but eventually merged them before the final.
19
+I decided to do things a bit differently for this cycle: a topic,
20
+once it hits 'next', will not be rewound and only refined and
21
+corrected with incremental updates, so the only effect such a late
22
+merge to 'master' before the final is that some topics are not as
23
+widely tested on 'master' before the final one is tagged.
24
+
25
+So this -rc0 is deliberately aggressive in that it includes all
26
+topics that have been cooking in 'next' that I think we can fix bugs
27
+that might still lurking in them before the final (it merges 25
28
+topics since the last batch to 'master'). The topics not merged to
29
+this preview, on the other hand, will not be considered for 2.8
30
+final, even though I might later succumb to the temptation to pick
31
+up ones that are in 'next' as of today ;-)
32
+
33
You can find the changes described here in the integration branches of the
34
repositories listed at
35
@@ -20,106 +38,39 @@ repositories listed at
38
--------------------------------------------------
39
[Graduated to "master"]
40
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
-
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()
41
+* ak/extract-argv0-last-dir-sep (2016-02-19) 1 commit
42
+ (merged to 'next' on 2016-02-24 at f590eb0)
43
+ + exec_cmd.c: use find_last_dir_sep() for code simplification
44
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".
45
+ Code simplification.
46
47
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
48
+* ak/git-strip-extension-from-dashed-command (2016-02-21) 1 commit
49
+ (merged to 'next' on 2016-02-24 at 8a84f91)
50
+ + git.c: simplify stripping extension of a file in handle_builtin()
51
103
- "git rev-parse --git-common-dir" used in the worktree feature
104
- misbehaved when run from a subdirectory.
52
+ Code simplification.
53
54
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"
55
+* dt/initial-ref-xn-commit-doc (2016-02-25) 1 commit
56
+ (merged to 'next' on 2016-02-25 at e32d0f6)
57
+ + refs: document transaction semantics
58
112
- "git worktree add -B <branchname>" did not work.
59
60
+* fa/merge-recursive-no-rename (2016-02-24) 7 commits
61
+ (merged to 'next' on 2016-02-25 at 8f18cc1)
62
+ + t3034: test deprecated interface
63
+ + t3034: test option to disable renames
64
+ + t3034: add rename threshold tests
65
+ + merge-recursive: find-renames resets threshold
66
+ + merge-strategies.txt: fix typo
67
+ (merged to 'next' on 2016-02-18 at dd6125b)
68
+ + merge-recursive: more consistent interface
69
+ + merge-recursive: option to disable renames
70
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
71
+ "git merge-recursive" learned "--no-renames" option to disable its
72
+ rename detection logic.
73
119
- Help those who debug http(s) part of the system.
120
-
121
---------------------------------------------------
122
-[New Topics]
74
75
* jg/credential-cache-chdir-to-sockdir (2016-02-23) 3 commits
76
(merged to 'next' on 2016-02-25 at ad35811)
@@ -132,7 +83,35 @@ repositories listed at
83
filesystem that houses the repository harder; now the process
84
chdir()s to the directory that house its own socket on startup.
85
135
- Will merge to 'master'.
86
+
87
+* jk/epipe-in-async (2016-02-25) 4 commits
88
+ (merged to 'next' on 2016-02-25 at 4482ddf)
89
+ + t5504: handle expected output from SIGPIPE death
90
+ + test_must_fail: report number of unexpected signal
91
+ + fetch-pack: ignore SIGPIPE in sideband demuxer
92
+ + write_or_die: handle EPIPE in async threads
93
+
94
+ Handling of errors while writing into our internal asynchronous
95
+ process has been made more robust, which reduces flakiness in our
96
+ tests.
97
+
98
+
99
+* jk/grep-binary-workaround-in-test (2016-02-23) 2 commits
100
+ (merged to 'next' on 2016-02-25 at 0e96ae8)
101
+ + t9200: avoid grep on non-ASCII data
102
+ + t8005: avoid grep on non-ASCII data
103
+
104
+ Recent versions of GNU grep are pickier when their input contains
105
+ arbitrary binary data, which some of our tests uses. Rewrite the
106
+ tests to sidestep the problem.
107
+
108
+
109
+* jk/more-comments-on-textconv (2016-02-22) 1 commit
110
+ (merged to 'next' on 2016-02-24 at 4ccfdc5)
111
+ + diff: clarify textconv interface
112
+
113
+ The memory ownership rule of fill_textconv() API, which was a bit
114
+ tricky, has been documented a bit better.
115
116
117
* jk/no-diff-emit-common (2016-02-22) 3 commits
@@ -145,114 +124,160 @@ repositories listed at
124
its own "create a fake ancestor file that has the common parts of
125
what both sides have added and do a 3-way merge" logic; this has
126
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
127
+ the fake common ancestor file" approach used in the rest of the
128
system.
129
151
- Will merge to 'master'.
130
131
+* jk/tighten-alloc (2016-02-22) 22 commits
132
+ (merged to 'next' on 2016-02-24 at 78b3251)
133
+ + ewah: convert to REALLOC_ARRAY, etc
134
+ + convert ewah/bitmap code to use xmalloc
135
+ + diff_populate_gitlink: use a strbuf
136
+ + transport_anonymize_url: use xstrfmt
137
+ + git-compat-util: drop mempcpy compat code
138
+ + sequencer: simplify memory allocation of get_message
139
+ + test-path-utils: fix normalize_path_copy output buffer size
140
+ + fetch-pack: simplify add_sought_entry
141
+ + fast-import: simplify allocation in start_packfile
142
+ + write_untracked_extension: use FLEX_ALLOC helper
143
+ + prepare_{git,shell}_cmd: use argv_array
144
+ + use st_add and st_mult for allocation size computation
145
+ + convert trivial cases to FLEX_ARRAY macros
146
+ + use xmallocz to avoid size arithmetic
147
+ + convert trivial cases to ALLOC_ARRAY
148
+ + convert manual allocations to argv_array
149
+ + argv-array: add detach function
150
+ + add helpers for allocating flex-array structs
151
+ + harden REALLOC_ARRAY and xcalloc against size_t overflow
152
+ + tree-diff: catch integer overflow in combine_diff_path allocation
153
+ + add helpers for detecting size_t overflow
154
+ + reflog_expire_cfg: NUL-terminate pattern field
155
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
156
+ Update various codepaths to avoid manually-counted malloc().
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.
158
163
- Will merge to 'master'.
159
+* js/config-set-in-non-repository (2016-02-25) 1 commit
160
+ (merged to 'next' on 2016-02-25 at a675267)
161
+ + git config: report when trying to modify a non-existing repo config
162
163
+ "git config section.var value" to set a value in per-repository
164
+ configuration file failed when it was run outside any repository,
165
+ but didn't say the reason correctly.
166
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
167
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.
168
+* kn/ref-filter-atom-parsing (2016-02-17) 11 commits
169
+ (merged to 'next' on 2016-02-18 at 9606218)
170
+ + ref-filter: introduce objectname_atom_parser()
171
+ + ref-filter: introduce contents_atom_parser()
172
+ + ref-filter: introduce remote_ref_atom_parser()
173
+ + ref-filter: align: introduce long-form syntax
174
+ + ref-filter: introduce align_atom_parser()
175
+ + ref-filter: introduce parse_align_position()
176
+ + ref-filter: introduce color_atom_parser()
177
+ + ref-filter: introduce parsing functions for each valid atom
178
+ + ref-filter: introduce struct used_atom
179
+ + ref-filter: bump 'used_atom' and related code to the top
180
+ + ref-filter: use string_list_split over strbuf_split
181
174
- Will merge to 'master'.
182
+ The ref-filter's format-parsing code has been refactored, in
183
+ preparation for "branch --format" and friends.
184
185
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
186
+* ls/config-origin (2016-02-22) 4 commits
187
+ (merged to 'next' on 2016-02-24 at 239fcc2)
188
+ + config: add '--show-origin' option to print the origin of a config value
189
+ + config: add 'origin_type' to config_source struct
190
+ + rename git_config_from_buf to git_config_from_mem
191
+ + t: do not hide Git's exit code in tests using 'nul_to_q'
192
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".
193
+ The configuration system has been taught to phrase where it found a
194
+ bad configuration variable in a better way in its error messages.
195
+ "git config" learnt a new "--show-origin" option to indicate where
196
+ the values come from.
197
212
- Needs review.
198
199
+* ls/makefile-cflags-developer-tweak (2016-02-25) 1 commit
200
+ (merged to 'next' on 2016-02-25 at 14bb065)
201
+ + add DEVELOPER makefile knob to check for acknowledged warnings
202
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
203
+ There is a new DEVELOPER knob that enables many compiler warning
204
+ options in the Makefile.
205
219
- Will merge to 'master'.
206
207
+* ma/update-hooks-sample-typofix (2016-02-25) 1 commit
208
+ (merged to 'next' on 2016-02-25 at be49c79)
209
+ + templates/hooks: fix minor typo in the sample update-hook
210
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
211
229
- Handling of errors while writing into our internal asynchronous
230
- process has been made more robust, which reduces flakiness in our
231
- tests.
212
+* mg/work-tree-tests (2016-02-20) 1 commit
213
+ (merged to 'next' on 2016-02-25 at ca8cbb0)
214
+ + tests: rename work-tree tests to *work-tree*
215
233
- Will merge to 'master'.
216
+ Traditionally, the tests that try commands that work on the
217
+ contents in the working tree were named with "worktree" in their
218
+ filenames, but with the recent addition of "git worktree"
219
+ subcommand, whose tests are also named similarly, it has become
220
+ harder to tell them apart. The traditional tests have been renamed
221
+ to use "work-tree" instead in an attempt to differentiate them.
222
223
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
224
+* mm/push-default-warning (2016-02-25) 1 commit
225
+ (merged to 'next' on 2016-02-25 at 753352f)
226
+ + push: remove "push.default is unset" warning message
227
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.
228
+ Across the transition at around Git version 2.0, the user used to
229
+ get a pretty loud warning when running "git push" without setting
230
+ push.default configuration variable. We no longer warn, given that
231
+ the transition is over long time ago.
232
244
- Will merge to 'master'.
233
234
+* mm/push-simple-doc (2016-02-23) 1 commit
235
+ (merged to 'next' on 2016-02-25 at dc4f57c)
236
+ + Documentation/git-push: document that 'simple' is the default
237
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
238
+ The documentation did not clearly state that the 'simple' mode is
239
+ now the default for "git push" when push.default configuration is
240
+ not set.
241
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.
242
255
- Will merge to 'master'.
243
+* mm/readme-markdown (2016-02-25) 5 commits
244
+ (merged to 'next' on 2016-02-25 at b8bda29)
245
+ + README.md: move down historical explanation about the name
246
+ + README.md: don't call git stupid in the title
247
+ + README.md: move the link to git-scm.com up
248
+ + README.md: add hyperlinks on filenames
249
+ + README: use markdown syntax
250
+
251
+ README has been renamed to README.md and its contents got tweaked
252
+ slightly to make it easier on the eyes.
253
+
254
+
255
+* ps/config-error (2016-02-22) 15 commits
256
+ (merged to 'next' on 2016-02-25 at b378629)
257
+ + config: rename git_config_set_or_die to git_config_set
258
+ + config: rename git_config_set to git_config_set_gently
259
+ + compat: die when unable to set core.precomposeunicode
260
+ + sequencer: die on config error when saving replay opts
261
+ + init-db: die on config errors when initializing empty repo
262
+ + clone: die on config error in cmd_clone
263
+ + remote: die on config error when manipulating remotes
264
+ + remote: die on config error when setting/adding branches
265
+ + remote: die on config error when setting URL
266
+ + submodule--helper: die on config error when cloning module
267
+ + submodule: die on config error when linking modules
268
+ + branch: die on config error when editing branch description
269
+ + branch: die on config error when unsetting upstream
270
+ + branch: report errors in tracking branch setup
271
+ + config: introduce set_or_die wrappers
272
+
273
+ Many codepaths forget to check return value from git_config_set();
274
+ the function is made to die() to make sure we do not proceed when
275
+ setting a configuration variable failed.
276
+
277
+
278
+* ps/plug-xdl-merge-leak (2016-02-23) 1 commit
279
+ (merged to 'next' on 2016-02-25 at 523609e)
280
+ + xdiff/xmerge: fix memory leak in xdl_merge
281
282
283
* sb/submodule-fetch-nontip (2016-02-24) 1 commit
@@ -265,81 +290,59 @@ repositories listed at
290
that commit that may not be connected to the refs it usually
291
fetches.
292
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
-
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
294
- There is a new DEVELOPER knob that enables many compiler warning
295
- options in the Makefile.
296
-
297
- Will merge to 'master'.
298
-
299
-
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
294
+* sb/submodule-module-list-fix (2016-02-24) 1 commit
295
+ (merged to 'next' on 2016-02-25 at 21be607)
296
+ + submodule helper list: respect correct path prefix
297
304
- Will merge to 'master'.
298
+ A helper function "git submodule" uses since v2.7.0 to list the
299
+ modules that match the pathspec argument given to its subcommands
300
+ (e.g. "submodule add <repo> <path>") has been fixed.
301
302
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
303
+* tb/conversion (2016-02-23) 7 commits
304
+ (merged to 'next' on 2016-02-25 at 1bb466d)
305
+ + convert.c: correct attr_action()
306
+ (merged to 'next' on 2016-02-12 at 6faf27b)
307
+ + convert.c: simplify text_stat
308
+ + convert.c: refactor crlf_action
309
+ + convert.c: use text_eol_is_crlf()
310
+ + convert.c: remove input_crlf_action()
311
+ + convert.c: remove unused parameter 'path'
312
+ + t0027: add tests for get_stream_filter()
313
315
- The end-user facing Porcelain level commands like "diff" and "log"
316
- now enables the rename detection by default.
314
+ Code simplification.
315
318
- Will merge to 'master'.
316
317
+* tg/git-remote (2016-02-16) 4 commits
318
+ (merged to 'next' on 2016-02-18 at 091d43e)
319
+ + remote: use remote_is_configured() for add and rename
320
+ + remote: actually check if remote exits
321
+ + remote: simplify remote_is_configured()
322
+ + remote: use parse_config_key
323
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
324
+ The internal API to interact with "remote.*" configuration
325
+ variables has been streamlined.
326
329
- Move README to README.md and tweak its contents slightly to make it
330
- easier on the eyes.
327
+--------------------------------------------------
328
+[New Topics]
329
332
- Will merge to 'master'.
330
+* jk/credential-clear-config (2016-02-26) 1 commit
331
+ - credential: let empty credential specs reset helper list
332
333
+ The credential.helper configuration variable is cumulative and
334
+ there is no good way to override it from the command line. As
335
+ a special case, giving an empty string as its value now serves
336
+ as the signal to clear the values specified in various files.
337
335
-* mp/upload-pack-use-embedded-args (2016-02-25) 1 commit
336
- - upload-pack: use argv_array for pack_objects
338
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.
339
+* jk/submodule-c-credential (2016-02-25) 1 commit
340
+ - git: submodule honor -c credential.* from command line
341
+ (this branch uses mg/httpd-tests-update-for-apache-2.4.)
342
342
- Will merge to 'next'.
343
+ "git -c credential.<var>=<value> submodule" can now be used to
344
+ propagate configuration variables related to credential helper
345
+ down to the submodules.
346
347
--------------------------------------------------
348
[Stalled]
@@ -393,19 +396,8 @@ repositories listed at
396
Follow-on to dk/gc-idx-wo-pack topic, to clean up stale
397
.bitmap and .keep files.
398
396
- Waiting for a reroll.
397
- ($gmane/284368).
398
-
399
-
400
-* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
401
- - t/lib-git-svn: check same httpd module dirs as lib-httpd
402
- - t/lib-httpd: load mod_unixd
403
-
404
- This is the first two commits in a three-patch series $gmane/266962
405
-
406
- Becoming tired of waiting for a reroll.
407
- with updated log message ($gmane/268061).
408
- Will discard.
399
+ Waiting for a reroll.
400
+ ($gmane/284368).
401
402
403
* jc/diff-b-m (2015-02-23) 5 commits
@@ -426,80 +418,107 @@ repositories listed at
418
--------------------------------------------------
419
[Cooking]
420
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
-
434
- Update of "git submodule" to move pieces of logic to C continues.
435
-
436
- Comments?
437
- ($gmane/286092)
421
+* mg/httpd-tests-update-for-apache-2.4 (2016-02-25) 1 commit
422
+ - t/lib-httpd: load mod_unixd
423
+ (this branch is used by jk/submodule-c-credential.)
424
425
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
426
+* nd/shallow-deepen (2016-02-23) 25 commits
427
+ - fetch, upload-pack: --deepen=N extends shallow boundary by N commits
428
+ - upload-pack: add get_reachable_list()
429
+ - upload-pack: split check_unreachable() in two, prep for get_reachable_list()
430
+ - t5500, t5539: tests for shallow depth excluding a ref
431
+ - clone: define shallow clone boundary with --shallow-exclude
432
+ - fetch: define shallow boundary with --shallow-exclude
433
+ - upload-pack: support define shallow boundary by excluding revisions
434
+ - refs: add expand_ref()
435
+ - t5500, t5539: tests for shallow depth since a specific date
436
+ - clone: define shallow clone boundary based on time with --shallow-since
437
+ - fetch: define shallow boundary with --shallow-since
438
+ - upload-pack: add deepen-since to cut shallow repos based on time
439
+ - shallow.c: implement a generic shallow boundary finder based on rev-list
440
+ - fetch-pack: use a separate flag for fetch in deepening mode
441
+ - fetch-pack: use a common function for verbose printing
442
+ - fetch-pack: use skip_prefix() instead of starts_with()
443
+ - upload-pack: move rev-list code out of check_non_tip()
444
+ - upload-pack: tighten number parsing at "deepen" lines
445
+ - upload-pack: use skip_prefix() instead of starts_with()
446
+ - upload-pack: move "unshallow" sending code out of deepen()
447
+ - upload-pack: remove unused variable "backup"
448
+ - upload-pack: move "shallow" sending code out of deepen()
449
+ - upload-pack: move shallow deepen code out of receive_needs()
450
+ - transport-helper.c: refactor set_helper_option()
451
+ - remote-curl.c: convert fetch_git() to use argv_array
452
444
- Code simplification.
453
+ The existing "git fetch --depth=<n>" option was hard to use
454
+ correctly when making the history of an existing shallow clone
455
+ deeper. A new option, "--deepen=<n>", has been added to make this
456
+ easier to use. "git clone" also learned "--shallow-since=<date>"
457
+ and "--shallow-exclude=<tag>" options to make it easier to specify
458
+ "I am interested only in the recent N months worth of history" and
459
+ "Give me only the history since that version".
460
446
- Will merge to 'master'.
461
+ Needs review.
462
463
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
464
+* jk/pack-idx-corruption-safety (2016-02-25) 3 commits
465
+ (merged to 'next' on 2016-02-26 at ef0d6de)
466
+ + use_pack: handle signed off_t overflow
467
+ + nth_packed_object_offset: bounds-check extended offset
468
+ + t5313: test bounds-checks of corrupted/malicious pack/idx files
469
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.
470
+ The code to read the pack data using the offsets stored in the pack
471
+ idx file has been made more carefully check the validity of the
472
+ data in the idx.
473
457
- Needs a better explanation.
474
+ Will merge to 'master'.
475
476
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()
477
+* mm/diff-renames-default (2016-02-25) 5 commits
478
+ (merged to 'next' on 2016-02-25 at 947c399)
479
+ + diff: activate diff.renames by default
480
+ + log: introduce init_log_defaults()
481
+ + t: add tests for diff.renames (true/false/unset)
482
+ + t4001-diff-rename: wrap file creations in a test
483
+ + Documentation/diff-config: fix description of diff.renames
484
464
- Code simplification.
485
+ The end-user facing Porcelain level commands like "diff" and "log"
486
+ now enables the rename detection by default.
487
488
Will merge to 'master'.
489
490
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
491
+* mp/upload-pack-use-embedded-args (2016-02-25) 1 commit
492
+ (merged to 'next' on 2016-02-26 at f0a54e5)
493
+ + upload-pack: use argv_array for pack_objects
494
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.
495
+ The embedded args argv-array in the child process is used to build
496
+ the command line to run pack-objects instead of using a separate
497
+ array of strings.
498
499
Will merge to 'master'.
500
501
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*
502
+* sb/submodule-init (2016-02-25) 2 commits
503
+ - submodule: port init from shell to C
504
+ - submodule: port resolve_relative_url from shell to C
505
+ (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.)
506
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.
507
+ Update of "git submodule" to move pieces of logic to C continues.
508
492
- Will merge to 'master'.
509
+ Comments?
510
+ ($gmane/286092)
511
512
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
513
+* az/p4-bare-no-rebase (2016-02-19) 1 commit
514
+ - git-p4.py: Don't try to rebase on submit from bare repository
515
499
- The memory ownership rule of fill_textconv() API, which was a bit
500
- tricky, has been documented a bit better.
516
+ "git p4 submit" attempts to do a rebase, which would fail if done
517
+ in a bare repository. Not doing this rebase would paper over the
518
+ failure, which is what this patch does, but it is unclear what the
519
+ side effect of not rebasing is.
520
502
- Will merge to 'master'.
521
+ Needs a better explanation.
522
523
524
* cn/deprecate-ssh-git-url (2016-02-15) 1 commit
@@ -510,78 +529,6 @@ repositories listed at
529
($gmane/286222)
530
531
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
-
524
- "git merge-recursive" learned "--no-renames" option to disable its
525
- rename detection logic.
526
-
527
- Will merge to 'master'.
528
-
529
-
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
-
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
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
-
582
- Will merge to 'master'.
583
-
584
-
532
* ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit
533
- wt-status.c: set commitable bit if there is a meaningful merge.
534
@@ -591,34 +538,6 @@ repositories listed at
538
not give you the correct answer, for example).
539
540
594
-* tg/git-remote (2016-02-16) 4 commits
595
- (merged to 'next' on 2016-02-18 at 091d43e)
596
- + remote: use remote_is_configured() for add and rename
597
- + remote: actually check if remote exits
598
- + remote: simplify remote_is_configured()
599
- + remote: use parse_config_key
600
-
601
- The internal API to interact with "remote.*" configuration
602
- variables has been streamlined.
603
-
604
- Will merge to 'master'.
605
-
606
-
607
-* ls/config-origin (2016-02-22) 4 commits
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
-
619
- Will merge to 'master'.
620
-
621
-
541
* nd/icase (2016-02-15) 12 commits
542
- grep.c: reuse "icase" variable
543
- diffcore-pickaxe: support case insensitive match on non-ascii
@@ -639,22 +558,6 @@ repositories listed at
558
($gmane/286137)
559
560
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
648
- + convert.c: use text_eol_is_crlf()
649
- + convert.c: remove input_crlf_action()
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
-
561
* sb/submodule-parallel-update (2016-02-25) 11 commits
562
- clone: allow an explicit argument for parallel submodule clones
563
- submodule update: expose parallelism to the user
@@ -719,26 +622,6 @@ repositories listed at
622
($gmane/286572)
623
624
722
-* kn/ref-filter-atom-parsing (2016-02-17) 11 commits
723
- (merged to 'next' on 2016-02-18 at 9606218)
724
- + ref-filter: introduce objectname_atom_parser()
725
- + ref-filter: introduce contents_atom_parser()
726
- + ref-filter: introduce remote_ref_atom_parser()
727
- + ref-filter: align: introduce long-form syntax
728
- + ref-filter: introduce align_atom_parser()
729
- + ref-filter: introduce parse_align_position()
730
- + ref-filter: introduce color_atom_parser()
731
- + ref-filter: introduce parsing functions for each valid atom
732
- + ref-filter: introduce struct used_atom
733
- + ref-filter: bump 'used_atom' and related code to the top
734
- + ref-filter: use string_list_split over strbuf_split
735
-
736
- The ref-filter's format-parsing code has been refactored, in
737
- preparation for "branch --format" and friends.
738
-
739
- Will merge to 'master'.
740
-
741
-
625
* ad/cygwin-wants-rename (2015-08-07) 1 commit
626
- config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
627
@@ -770,57 +653,3 @@ repositories listed at
653
git-gui still uses the deprecated syntax, which needs to be fixed
654
before this final step can proceed.
655
($gmane/282594)
773
-
774
---------------------------------------------------
775
-[Discarded]
776
-
777
-* dv/http-try-negotiate-at-least-once (2016-02-02) 1 commit
778
- . remote-curl: don't fall back to Basic auth if we haven't tried Negotiate
779
-
780
- bc/http-empty-auth satisfies the original need that triggered this
781
- topic better.
782
-
783
-
784
-* ep/format-printf (2016-02-11) 22 commits
785
- . wt-status.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
786
- . utf8.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
787
- . transport-helper.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
788
- . trace.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
789
- . strbuf.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
790
- . remote.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
791
- . pkt-line.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
792
- . merge-recursive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
793
- . imap-send.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
794
- . http-backend.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
795
- . fsck.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
796
- . daemon.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
797
- . config.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
798
- . color.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
799
- . cache.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
800
- . builtin/upload-archive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
801
- . builtin/update-index.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
802
- . builtin/receive-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
803
- . builtin/index-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
804
- . argv-array.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
805
- . advice.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
806
- . git-compat-util.h: add the FORMAT_PRINTF macro
807
-
808
- Replace __attribute__((format(printf, a, b))) with
809
- FORMAT_PRINTF(a,b) everywhere in the code.
810
-
811
- It would be a different story if another compiler had the same
812
- feature implemented using a different syntax, in which case we
813
- could use conditionally #define what FORMAT_PRINTF(a,b) expands to,
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.