What's cooking (2017/03 #01)
Junio C Hamano committed
Mar 1, 2017 at 14:27 UTC
66cf115dc1bd376a9380b8d2355022c620230a31
1 file changed
+251
-558
whats-cooking.txt
+251
-558
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (Feb 2017, #09; Mon, 27)
3
+Subject: What's cooking in git.git (Mar 2017, #01; Wed, 1)
4
X-master-at: 3bc53220cb2dcf709f7a027a3f526befd021d858
5
-X-next-at: 7373a1b73d524fe4dd36076fe0044bc966dc5055
5
+X-next-at: e531d8d3a95fec6ab73587571eb5e2443b8523e7
6
7
-What's cooking in git.git (Feb 2017, #09; Mon, 27)
7
+What's cooking in git.git (Mar 2017, #01; Wed, 1)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,445 +12,270 @@ Here are the topics that have been cooking. Commits prefixed with
12
'+' are in 'next'. The ones marked with '.' do not appear in any of
13
the integration branches, but I am still holding onto them.
14
15
-The first batch post 2.12 is rather a big one (and intentionally
16
-so). Among the notable is that major part of "rebase -i" is now
17
-driven by the sequencer backend (Thanks, Dscho), and the API
18
-implementations of attribute subsystem and ref subsystem have also
19
-been cleaned up (Thanks, Brandon & Michael).
20
-
21
-The tip of 'next' has been rewound.
22
-
15
You can find the changes described here in the integration branches
16
of the repositories listed at
17
18
http://git-blame.blogspot.com/p/git-public-repositories.html
19
20
--------------------------------------------------
29
-[Graduated to "master"]
21
+[New Topics]
22
31
-* bc/blame-doc-fix (2017-02-22) 1 commit
32
- (merged to 'next' on 2017-02-22 at 81c0ff2283)
33
- + Documentation: use brackets for optional arguments
23
+* jk/interpret-branch-name (2017-02-28) 8 commits
24
+ - checkout: restrict @-expansions when finding branch
25
+ - strbuf_check_ref_format(): expand only local branches
26
+ - branch: restrict @-expansions when deleting
27
+ - t3204: test git-branch @-expansion corner cases
28
+ - interpret_branch_name: allow callers to restrict expansions
29
+ - strbuf_branchname: add docstring
30
+ - strbuf_branchname: drop return value
31
+ - interpret_branch_name: move docstring to header file
32
35
- Doc update.
33
+ "git branch @" created refs/heads/@ as a branch, and in general the
34
+ code that handled @{-1} and @{upstream} was a bit too loose in
35
+ disambiguating.
36
+
37
+ Expecting a reroll.
38
+ cf. <20170228123331.wubqplp5zjwzz6is@sigill.intra.peff.net>
39
40
38
-* bc/worktree-doc-fix-detached (2017-02-22) 1 commit
39
- (merged to 'next' on 2017-02-22 at 8257025363)
40
- + Documentation: correctly spell git worktree --detach
41
+* jk/sha1dc (2017-03-01) 7 commits
42
+ - Put sha1dc on a diet
43
+ - sha1dc: avoid 'for' loop initial decl
44
+ - sha1dc: resurrect LICENSE file
45
+ - sha1dc: avoid c99 declaration-after-statement
46
+ - Makefile: add USE_SHA1DC knob
47
+ - sha1dc: adjust header includes for git
48
+ - add collision-detecting sha1 implementation
49
42
- Doc update.
50
+ Borrow "detect attempt to create collisions" variant of SHA-1
51
+ implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft).
52
53
+ Expecting a cleaned-up reroll after discussion settles.
54
+ cf. <CA+55aFxTWqsTTiDKo4DBZT-8Z9t80bGMD3uijzKONa_bYEZABQ@mail.gmail.com>
55
45
-* bw/attr (2017-02-01) 27 commits
46
- (merged to 'next' on 2017-02-14 at d35c1d7e4a)
47
- + attr: reformat git_attr_set_direction() function
48
- + attr: push the bare repo check into read_attr()
49
- + attr: store attribute stack in attr_check structure
50
- + attr: tighten const correctness with git_attr and match_attr
51
- + attr: remove maybe-real, maybe-macro from git_attr
52
- + attr: eliminate global check_all_attr array
53
- + attr: use hashmap for attribute dictionary
54
- + attr: change validity check for attribute names to use positive logic
55
- + attr: pass struct attr_check to collect_some_attrs
56
- + attr: retire git_check_attrs() API
57
- + attr: convert git_check_attrs() callers to use the new API
58
- + attr: convert git_all_attrs() to use "struct attr_check"
59
- + attr: (re)introduce git_check_attr() and struct attr_check
60
- + attr: rename function and struct related to checking attributes
61
- + attr.c: outline the future plans by heavily commenting
62
- + Documentation: fix a typo
63
- + attr.c: add push_stack() helper
64
- + attr: support quoting pathname patterns in C style
65
- + attr.c: plug small leak in parse_attr_line()
66
- + attr.c: tighten constness around "git_attr" structure
67
- + attr.c: simplify macroexpand_one()
68
- + attr.c: mark where #if DEBUG ends more clearly
69
- + attr.c: complete a sentence in a comment
70
- + attr.c: explain the lack of attr-name syntax check in parse_attr()
71
- + attr.c: update a stale comment on "struct match_attr"
72
- + attr.c: use strchrnul() to scan for one line
73
- + commit.c: use strchrnul() to scan for one line
74
-
75
- The gitattributes machinery is being taught to work better in a
76
- multi-threaded environment.
77
-
78
-
79
-* cw/tag-reflog-message (2017-02-08) 1 commit
80
- (merged to 'next' on 2017-02-10 at 3968b3a58b)
81
- + tag: generate useful reflog message
82
-
83
- "git tag" did not leave useful message when adding a new entry to
84
- reflog; this was left unnoticed for a long time because refs/tags/*
85
- doesn't keep reflog by default.
86
-
87
-
88
-* dr/doc-check-ref-format-normalize (2017-02-21) 1 commit
89
- (merged to 'next' on 2017-02-21 at 5e88b7a93d)
90
- + git-check-ref-format: clarify documentation for --normalize
56
92
- Doc update.
57
+* js/travis-32bit-linux (2017-02-28) 1 commit
58
+ - Travis: also test on 32-bit Linux
59
60
+ Add 32-bit Linux variant to the set of platforms to be tested with
61
+ Travis CI.
62
95
-* dt/gc-ignore-old-gc-logs (2017-02-13) 1 commit
96
- (merged to 'next' on 2017-02-16 at 8f48e1b405)
97
- + gc: ignore old gc.log files
63
+ Will merge to 'next'.
64
99
- A "gc.log" file left by a backgrounded "gc --auto" disables further
100
- automatic gc; it has been taught to run at least once a day (by
101
- default) by ignoring a stale "gc.log" file that is too old.
65
66
+* jt/http-base-url-update-upon-redirect (2017-02-28) 1 commit
67
+ - http: attempt updating base URL only if no error
68
104
-* gp/document-dotfiles-in-templates-are-not-copied (2017-02-17) 1 commit
105
- (merged to 'next' on 2017-02-21 at bbfa2bb7d4)
106
- + init: document dotfiles exclusion on template copy
69
+ When a redirected http transport gets an error during the
70
+ redirected request, we ignored the error we got from the server,
71
+ and ended up giving a not-so-useful error message.
72
+
73
+ Will merge to 'next'.
74
+
75
+
76
+* jt/mark-tree-uninteresting-for-uninteresting-commit (2017-02-28) 3 commits
77
+ - upload-pack: compute blob reachability correctly
78
+ - revision: exclude trees/blobs given commit
79
+ - revision: unify {tree,blob}_objects in rev_info
80
+
81
+ The revision/object traversal machinery did not mark all tree and
82
+ blob objects that are contained in an uninteresting commit as
83
+ uninteresting, because that is quite costly. Instead, it only
84
+ marked those that are contained in an uninteresting boundary commit
85
+ as uninteresting.
86
+
87
+
88
+* ps/docs-diffcore (2017-02-28) 2 commits
89
+ - docs/diffcore: unquote "Complete Rewrites" in headers
90
+ - docs/diffcore: fix grammar in diffcore-rename header
91
92
Doc update.
93
94
+ Will merge to 'next'.
95
111
-* jh/preload-index-skip-skip (2017-02-10) 1 commit
112
- (merged to 'next' on 2017-02-16 at 39077062f9)
113
- + preload-index: avoid lstat for skip-worktree items
96
115
- The preload-index code has been taught not to bother with the index
116
- entries that are paths that are not checked out by "sparse checkout".
97
+* rj/remove-unused-mktemp (2017-02-28) 2 commits
98
+ - wrapper.c: remove unused gitmkstemps() function
99
+ - wrapper.c: remove unused git_mkstemp() function
100
101
+ Code cleanup.
102
119
-* jk/alternate-ref-optim (2017-02-08) 11 commits
120
- (merged to 'next' on 2017-02-10 at f26f32cff6)
121
- + receive-pack: avoid duplicates between our refs and alternates
122
- + receive-pack: treat namespace .have lines like alternates
123
- + receive-pack: fix misleading namespace/.have comment
124
- + receive-pack: use oidset to de-duplicate .have lines
125
- + add oidset API
126
- + fetch-pack: cache results of for_each_alternate_ref
127
- + for_each_alternate_ref: replace transport code with for-each-ref
128
- + for_each_alternate_ref: pass name/oid instead of ref struct
129
- + for_each_alternate_ref: use strbuf for path allocation
130
- + for_each_alternate_ref: stop trimming trailing slashes
131
- + for_each_alternate_ref: handle failure from real_pathdup()
103
+ Will merge to 'next'.
104
133
- Optimizes resource usage while enumerating refs from alternate
134
- object store, to help receiving end of "push" that hosts a
135
- repository with many "forks".
105
106
+* sb/submodule-init-url-selection (2017-02-28) 1 commit
107
+ - submodule init: warn about falling back to a local path
108
138
-* jk/delta-chain-limit (2017-01-27) 2 commits
139
- (merged to 'next' on 2017-02-06 at 9ff36ae9b2)
140
- + pack-objects: convert recursion to iteration in break_delta_chain()
141
- + pack-objects: enforce --depth limit in reused deltas
109
+ Give a warning when "git submodule init" decides that the submodule
110
+ in the working tree is its upstream, as it is not a very common
111
+ setup.
112
143
- "git repack --depth=<n>" for a long time busted the specified depth
144
- when reusing delta from existing packs. This has been corrected.
113
+ Will merge to 'next'.
114
115
147
-* jk/describe-omit-some-refs (2017-01-23) 5 commits
148
- (merged to 'next' on 2017-01-23 at f8a14b4996)
149
- + describe: teach describe negative pattern matches
150
- + describe: teach --match to accept multiple patterns
151
- + name-rev: add support to exclude refs by pattern match
152
- + name-rev: extend --refs to accept multiple patterns
153
- + doc: add documentation for OPT_STRING_LIST
154
-
155
- "git describe" and "git name-rev" have been taught to take more
156
- than one refname patterns to restrict the set of refs to base their
157
- naming output on, and also learned to take negative patterns to
158
- name refs not to be used for naming via their "--exclude" option.
159
-
160
-
161
-* jk/grep-no-index-fix (2017-02-14) 7 commits
162
- (merged to 'next' on 2017-02-16 at c84c927fa8)
163
- + grep: treat revs the same for --untracked as for --no-index
164
- + grep: do not diagnose misspelt revs with --no-index
165
- + grep: avoid resolving revision names in --no-index case
166
- + grep: fix "--" rev/pathspec disambiguation
167
- + grep: re-order rev-parsing loop
168
- + grep: do not unnecessarily query repo for "--"
169
- + grep: move thread initialization a little lower
170
-
171
- The code to parse the command line "git grep <patterns>... <rev>
172
- [[--] <pathspec>...]" has been cleaned up, and a handful of bugs
173
- have been fixed (e.g. we used to check "--" if it is a rev).
174
-
175
-
176
-* jk/show-branch-lift-name-len-limit (2017-02-15) 3 commits
177
- (merged to 'next' on 2017-02-16 at 40d22f5f34)
178
- + show-branch: use skip_prefix to drop magic numbers
179
- + show-branch: store resolved head in heap buffer
180
- + show-branch: drop head_len variable
181
-
182
- "git show-branch" expected there were only very short branch names
183
- in the repository and used a fixed-length buffer to hold them
184
- without checking for overflow.
185
-
186
-
187
-* jk/tempfile-ferror-fclose-confusion (2017-02-17) 1 commit
188
- (merged to 'next' on 2017-02-21 at 479ba0131f)
189
- + tempfile: set errno to a known value before calling ferror()
190
-
191
- A caller of tempfile API that uses stdio interface to write to
192
- files may ignore errors while writing, which is detected when
193
- tempfile is closed (with a call to ferror()). By that time, the
194
- original errno that may have told us what went wrong is likely to
195
- be long gone and was overwritten by an irrelevant value.
196
- close_tempfile() now resets errno to EIO to make errno at least
197
- predictable.
198
-
199
-
200
-* jn/remote-helpers-with-git-dir (2017-02-14) 2 commits
201
- (merged to 'next' on 2017-02-16 at c093c543c4)
202
- + remote helpers: avoid blind fall-back to ".git" when setting GIT_DIR
203
- + remote: avoid reading $GIT_DIR config in non-repo
204
-
205
- "git ls-remote" and "git archive --remote" are designed to work
206
- without being in a directory under Git's control. However, recent
207
- updates revealed that we randomly look into a directory called
208
- .git/ without actually doing necessary set-up when working in a
209
- repository. Stop doing so.
210
-
211
-
212
-* js/git-path-in-subdir (2017-02-17) 2 commits
213
- (merged to 'next' on 2017-02-17 at b3c3b2dce6)
214
- + rev-parse: fix several options when running in a subdirectory
215
- + rev-parse tests: add tests executed from a subdirectory
216
-
217
- The "--git-path", "--git-common-dir", and "--shared-index-path"
218
- options of "git rev-parse" did not produce usable output. They are
219
- now updated to show the path to the correct file, relative to where
220
- the caller is.
221
-
222
-
223
-* js/rebase-helper (2017-02-09) 2 commits
224
- (merged to 'next' on 2017-02-14 at ae2474048e)
225
- + rebase -i: use the rebase--helper builtin
226
- + rebase--helper: add a builtin helper for interactive rebases
227
-
228
- "git rebase -i" starts using the recently updated "sequencer" code.
229
-
230
-
231
-* km/delete-ref-reflog-message (2017-02-20) 4 commits
232
- (merged to 'next' on 2017-02-21 at 4ee4ce3f64)
233
- + branch: record creation of renamed branch in HEAD's log
234
- + rename_ref: replace empty message in HEAD's log
235
- + update-ref: pass reflog message to delete_ref()
236
- + delete_ref: accept a reflog message argument
237
-
238
- "git update-ref -d" and other operations to delete references did
239
- not leave any entry in HEAD's reflog when the reference being
240
- deleted was the current branch. This is not a problem in practice
241
- because you do not want to delete the branch you are currently on,
242
- but caused renaming of the current branch to something else not to
243
- be logged in a useful way.
244
-
245
-
246
-* kn/ref-filter-branch-list (2017-02-07) 21 commits
247
- (merged to 'next' on 2017-02-10 at 794bb8284d)
248
- + ref-filter: resurrect "strip" as a synonym to "lstrip"
249
- (merged to 'next' on 2017-01-31 at e7592a5461)
250
- + branch: implement '--format' option
251
- + branch: use ref-filter printing APIs
252
- + branch, tag: use porcelain output
253
- + ref-filter: allow porcelain to translate messages in the output
254
- + ref-filter: add an 'rstrip=<N>' option to atoms which deal with refnames
255
- + ref-filter: modify the 'lstrip=<N>' option to work with negative '<N>'
256
- + ref-filter: Do not abruptly die when using the 'lstrip=<N>' option
257
- + ref-filter: rename the 'strip' option to 'lstrip'
258
- + ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal()
259
- + ref-filter: introduce refname_atom_parser()
260
- + ref-filter: introduce refname_atom_parser_internal()
261
- + ref-filter: make "%(symref)" atom work with the ':short' modifier
262
- + ref-filter: add support for %(upstream:track,nobracket)
263
- + ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
264
- + ref-filter: introduce format_ref_array_item()
265
- + ref-filter: move get_head_description() from branch.c
266
- + ref-filter: modify "%(objectname:short)" to take length
267
- + ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
268
- + ref-filter: include reference to 'used_atom' within 'atom_value'
269
- + ref-filter: implement %(if), %(then), and %(else) atoms
270
-
271
- The code to list branches in "git branch" has been consolidated
272
- with the more generic ref-filter API.
273
-
274
-
275
-* lt/pathspec-negative (2017-02-10) 2 commits
276
- (merged to 'next' on 2017-02-10 at 8ea7874076)
277
- + pathspec: don't error out on all-exclusionary pathspec patterns
278
- + pathspec magic: add '^' as alias for '!'
279
-
280
- The "negative" pathspec feature was somewhat more cumbersome to use
281
- than necessary in that its short-hand used "!" which needed to be
282
- escaped from shells, and it required "exclude from what?" specified.
283
-
284
-
285
-* mh/ref-remove-empty-directory (2017-01-07) 23 commits
286
- (merged to 'next' on 2017-02-10 at bcfd359e95)
287
- + files_transaction_commit(): clean up empty directories
288
- + try_remove_empty_parents(): teach to remove parents of reflogs, too
289
- + try_remove_empty_parents(): don't trash argument contents
290
- + try_remove_empty_parents(): rename parameter "name" -> "refname"
291
- + delete_ref_loose(): inline function
292
- + delete_ref_loose(): derive loose reference path from lock
293
- + log_ref_write_1(): inline function
294
- + log_ref_setup(): manage the name of the reflog file internally
295
- + log_ref_write_1(): don't depend on logfile argument
296
- + log_ref_setup(): pass the open file descriptor back to the caller
297
- + log_ref_setup(): improve robustness against races
298
- + log_ref_setup(): separate code for create vs non-create
299
- + log_ref_write(): inline function
300
- + rename_tmp_log(): improve error reporting
301
- + rename_tmp_log(): use raceproof_create_file()
302
- + lock_ref_sha1_basic(): use raceproof_create_file()
303
- + lock_ref_sha1_basic(): inline constant
304
- + raceproof_create_file(): new function
305
- + safe_create_leading_directories(): set errno on SCLD_EXISTS
306
- + safe_create_leading_directories_const(): preserve errno
307
- + t5505: use "for-each-ref" to test for the non-existence of references
308
- + refname_is_safe(): correct docstring
309
- + files_rename_ref(): tidy up whitespace
310
- (this branch is used by nd/files-backend-git-dir, nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
311
-
312
- Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
313
- once there no longer is any other branch whose name begins with
314
- "foo/", but we didn't do so so far. Now we do.
315
-
316
-
317
-* mh/submodule-hash (2017-02-13) 9 commits
318
- (merged to 'next' on 2017-02-14 at 43f2dcbe29)
319
- + read_loose_refs(): read refs using resolve_ref_recursively()
320
- + files_ref_store::submodule: use NULL for the main repository
321
- + base_ref_store_init(): remove submodule argument
322
- + refs: push the submodule attribute down
323
- + refs: store submodule ref stores in a hashmap
324
- + register_ref_store(): new function
325
- + refs: remove some unnecessary handling of submodule == ""
326
- + refs: make some ref_store lookup functions private
327
- + refs: reorder some function definitions
328
- (this branch is used by nd/files-backend-git-dir, nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
329
-
330
- Code and design clean-up for the refs API.
331
-
332
-
333
-* mm/merge-rename-delete-message (2017-01-30) 1 commit
334
- (merged to 'next' on 2017-02-10 at 8bf8146029)
335
- + merge-recursive: make "CONFLICT (rename/delete)" message show both paths
336
-
337
- When "git merge" detects a path that is renamed in one history
338
- while the other history deleted (or modified) it, it now reports
339
- both paths to help the user understand what is going on in the two
340
- histories being merged.
341
-
342
-
343
-* mm/two-more-xstrfmt (2017-02-16) 2 commits
344
- (merged to 'next' on 2017-02-17 at 2454ee9847)
345
- + bisect_next_all: convert xsnprintf to xstrfmt
346
- + stop_progress_msg: convert xsnprintf to xstrfmt
347
-
348
- Code clean-up and a string truncation fix.
349
-
350
-
351
-* nd/clean-preserve-errno-in-warning (2017-02-16) 1 commit
352
- (merged to 'next' on 2017-02-16 at c0802f7627)
353
- + clean: use warning_errno() when appropriate
354
-
355
- Some warning() messages from "git clean" were updated to show the
356
- errno from failed system calls.
357
-
358
-
359
-* ps/doc-gc-aggressive-depth-update (2017-02-24) 1 commit
360
- (merged to 'next' on 2017-02-24 at f023322bbb)
361
- + docs/git-gc: fix default value for `--aggressiveDepth`
116
+* jc/diff-populate-filespec-size-only-fix (2017-03-01) 1 commit
117
+ - diff: do not short-cut CHECK_SIZE_ONLY check in diff_populate_filespec()
118
363
- Doc update.
119
+ "git diff --quiet" relies on the size field in diff_filespec to be
120
+ correctly populated, but diff_populate_filespec() helper function
121
+ made an incorrect short-cut when asked only to populate the size
122
+ field for paths that need to go through convert_to_git() (e.g. CRLF
123
+ conversion).
124
125
+ Will merge to 'next'.
126
366
-* ps/urlmatch-wildcard (2017-02-01) 5 commits
367
- (merged to 'next' on 2017-02-10 at 2ed9ea48ee)
368
- + urlmatch: allow globbing for the URL host part
369
- + urlmatch: include host in urlmatch ranking
370
- + urlmatch: split host and port fields in `struct url_info`
371
- + urlmatch: enable normalization of URLs with globs
372
- + mailmap: add Patrick Steinhardt's work address
127
374
- The <url> part in "http.<url>.<variable>" configuration variable
375
- can now be spelled with '*' that serves as wildcard.
376
- E.g. "http.https://*.example.com.proxy" can be used to specify the
377
- proxy used for https://a.example.com, https://b.example.com, etc.,
378
- i.e. any host in the example.com domain.
128
+* nd/conditional-config-include (2017-03-01) 4 commits
129
+ - SQUASH???
130
+ - config: add conditional include
131
+ - config.txt: reflow the second include.path paragraph
132
+ - config.txt: clarify multiple key values in include.path
133
134
+ The configuration file learned a new "includeIf.<condition>.path"
135
+ that includes the contents of the given path only when the
136
+ condition holds. This allows you to say "include this work-related
137
+ bit only in the repositories under my ~/work/ directory".
138
381
-* rl/remote-allow-missing-branch-name-merge (2017-02-21) 1 commit
382
- (merged to 'next' on 2017-02-22 at cbe923c8da)
383
- + remote: ignore failure to remove missing branch.<name>.merge
139
+ I think this is almost ready for 'next'.
140
385
- "git remote rm X", when a branch has remote X configured as the
386
- value of its branch.*.remote, tried to remove branch.*.remote and
387
- branch.*.merge and failed if either is unset.
141
142
+* rs/log-email-subject (2017-03-01) 2 commits
143
+ - pretty: use fmt_output_email_subject()
144
+ - log-tree: factor out fmt_output_email_subject()
145
390
-* rt/align-add-i-help-text (2017-02-22) 1 commit
391
- (merged to 'next' on 2017-02-22 at a8573afb9a)
392
- + git add -i: replace \t with blanks in the help message
146
+ Code clean-up.
147
394
- Doc update.
148
+ Will merge to 'next'.
149
+
150
+--------------------------------------------------
151
+[Stalled]
152
153
+* nd/worktree-move (2017-01-27) 7 commits
154
+ . fixup! worktree move: new command
155
+ . worktree remove: new command
156
+ . worktree move: refuse to move worktrees with submodules
157
+ . worktree move: accept destination as directory
158
+ . worktree move: new command
159
+ . worktree.c: add update_worktree_location()
160
+ . worktree.c: add validate_worktree()
161
397
-* sf/putty-w-args (2017-02-10) 5 commits
398
- (merged to 'next' on 2017-02-14 at 7f157e7020)
399
- + connect.c: stop conflating ssh command names and overrides
400
- + connect: Add the envvar GIT_SSH_VARIANT and ssh.variant config
401
- + git_connect(): factor out SSH variant handling
402
- + connect: rename tortoiseplink and putty variables
403
- + connect: handle putty/plink also in GIT_SSH_COMMAND
404
-
405
- The command line options for ssh invocation needs to be tweaked for
406
- some implementations of SSH (e.g. PuTTY plink wants "-P <port>"
407
- while OpenSSH wants "-p <port>" to specify port to connect to), and
408
- the variant was guessed when GIT_SSH environment variable is used
409
- to specify it. The logic to guess now applies to the command
410
- specified by the newer GIT_SSH_COMMAND and also core.sshcommand
411
- configuration variable, and comes with an escape hatch for users to
412
- deal with misdetected cases.
413
-
414
-
415
-* sg/completion (2017-02-13) 22 commits
416
- (merged to 'next' on 2017-02-13 at 118c192874)
417
- + completion: restore removed line continuating backslash
418
- (merged to 'next' on 2017-02-10 at 55b2785d89)
419
- + completion: cache the path to the repository
420
- + completion: extract repository discovery from __gitdir()
421
- + completion: don't guard git executions with __gitdir()
422
- + completion: consolidate silencing errors from git commands
423
- + completion: don't use __gitdir() for git commands
424
- + completion: respect 'git -C <path>'
425
- + rev-parse: add '--absolute-git-dir' option
426
- + completion: fix completion after 'git -C <path>'
427
- + completion: don't offer commands when 'git --opt' needs an argument
428
- + completion: list short refs from a remote given as a URL
429
- + completion: don't list 'HEAD' when trying refs completion outside of a repo
430
- + completion: list refs from remote when remote's name matches a directory
431
- + completion: respect 'git --git-dir=<path>' when listing remote refs
432
- + completion: fix most spots not respecting 'git --git-dir=<path>'
433
- + completion: ensure that the repository path given on the command line exists
434
- + completion tests: add tests for the __git_refs() helper function
435
- + completion tests: check __gitdir()'s output in the error cases
436
- + completion tests: consolidate getting path of current working directory
437
- + completion tests: make the $cur variable local to the test helper functions
438
- + completion tests: don't add test cruft to the test repository
439
- + completion: improve __git_refs()'s in-code documentation
440
- (this branch is used by sg/completion-refs-speedup.)
441
-
442
- Clean-up and updates to command line completion (in contrib/).
443
-
444
-
445
-* vn/xdiff-func-context (2017-01-15) 1 commit
446
- (merged to 'next' on 2017-02-21 at 838eab8d93)
447
- + xdiff -W: relax end-of-file function detection
448
-
449
- "git diff -W" has been taught to handle the case where a new
450
- function is added at the end of the file better.
162
+ "git worktree" learned move and remove subcommands.
163
+
164
+ Tentatively ejected as it seems to break 'pu' when merged.
165
+
166
+
167
+* pb/bisect (2017-02-18) 28 commits
168
+ - fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C
169
+ - bisect--helper: remove the dequote in bisect_start()
170
+ - bisect--helper: retire `--bisect-auto-next` subcommand
171
+ - bisect--helper: retire `--bisect-autostart` subcommand
172
+ - bisect--helper: retire `--bisect-write` subcommand
173
+ - bisect--helper: `bisect_replay` shell function in C
174
+ - bisect--helper: `bisect_log` shell function in C
175
+ - bisect--helper: retire `--write-terms` subcommand
176
+ - bisect--helper: retire `--check-expected-revs` subcommand
177
+ - bisect--helper: `bisect_state` & `bisect_head` shell function in C
178
+ - bisect--helper: `bisect_autostart` shell function in C
179
+ - bisect--helper: retire `--next-all` subcommand
180
+ - bisect--helper: retire `--bisect-clean-state` subcommand
181
+ - bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
182
+ - t6030: no cleanup with bad merge base
183
+ - bisect--helper: `bisect_start` shell function partially in C
184
+ - bisect--helper: `get_terms` & `bisect_terms` shell function in C
185
+ - bisect--helper: `bisect_next_check` & bisect_voc shell function in C
186
+ - bisect--helper: `check_and_set_terms` shell function in C
187
+ - bisect--helper: `bisect_write` shell function in C
188
+ - bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
189
+ - bisect--helper: `bisect_reset` shell function in C
190
+ - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
191
+ - t6030: explicitly test for bisection cleanup
192
+ - bisect--helper: `bisect_clean_state` shell function in C
193
+ - bisect--helper: `write_terms` shell function in C
194
+ - bisect: rewrite `check_term_format` shell function in C
195
+ - bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
196
+
197
+ Move more parts of "git bisect" to C.
198
+
199
+ Expecting a reroll.
200
+ cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
201
+ cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
202
+ cf. <CAFZEwPNUXcNY9Qdz=_B7q2kQuaecPzJtTMGdv8YMUPEz2vnp8A@mail.gmail.com>
203
+
204
+
205
+* ls/filter-process-delayed (2017-01-08) 1 commit
206
+ . convert: add "status=delayed" to filter process protocol
207
+
208
+ Ejected, as does not build when merged to 'pu'.
209
+
210
+
211
+* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
212
+ - grep: use '/' delimiter for paths
213
+ - grep: only add delimiter if there isn't one already
214
+
215
+ "git grep", when fed a tree-ish as an input, shows each hit
216
+ prefixed with "<tree-ish>:<path>:<lineno>:". As <tree-ish> is
217
+ almost always either a commit or a tag that points at a commit, the
218
+ early part of the output "<tree-ish>:<path>" can be used as the
219
+ name of the blob and given to "git show". When <tree-ish> is a
220
+ tree given in the extended SHA-1 syntax (e.g. "<commit>:", or
221
+ "<commit>:<dir>"), however, this results in a string that does not
222
+ name a blob (e.g. "<commit>::<path>" or "<commit>:<dir>:<path>").
223
+ "git grep" has been taught to be a bit more intelligent about these
224
+ cases and omit a colon (in the former case) or use slash (in the
225
+ latter case) to produce "<commit>:<path>" and
226
+ "<commit>:<dir>/<path>" that can be used as the name of a blob.
227
+
228
+ Expecting a reroll? Is this good enough with known limitations?
229
+
230
+
231
+* jc/diff-b-m (2015-02-23) 5 commits
232
+ . WIPWIP
233
+ . WIP: diff-b-m
234
+ - diffcore-rename: allow easier debugging
235
+ - diffcore-rename.c: add locate_rename_src()
236
+ - diffcore-break: allow debugging
237
+
238
+ "git diff -B -M" produced incorrect patch when the postimage of a
239
+ completely rewritten file is similar to the preimage of a removed
240
+ file; such a resulting file must not be expressed as a rename from
241
+ other place.
242
+
243
+ The fix in this patch is broken, unfortunately.
244
+
245
+ Will discard.
246
247
--------------------------------------------------
453
-[New Topics]
248
+[Cooking]
249
+
250
+* cc/split-index-config (2017-03-01) 22 commits
251
+ - Documentation/git-update-index: explain splitIndex.*
252
+ - Documentation/config: add splitIndex.sharedIndexExpire
253
+ - read-cache: use freshen_shared_index() in read_index_from()
254
+ - read-cache: refactor read_index_from()
255
+ - t1700: test shared index file expiration
256
+ - read-cache: unlink old sharedindex files
257
+ - config: add git_config_get_expiry() from gc.c
258
+ - read-cache: touch shared index files when used
259
+ - sha1_file: make check_and_freshen_file() non static
260
+ - Documentation/config: add splitIndex.maxPercentChange
261
+ - t1700: add tests for splitIndex.maxPercentChange
262
+ - read-cache: regenerate shared index if necessary
263
+ - config: add git_config_get_max_percent_split_change()
264
+ - Documentation/git-update-index: talk about core.splitIndex config var
265
+ - Documentation/config: add information for core.splitIndex
266
+ - t1700: add tests for core.splitIndex
267
+ - update-index: warn in case of split-index incoherency
268
+ - read-cache: add and then use tweak_split_index()
269
+ - split-index: add {add,remove}_split_index() functions
270
+ - config: add git_config_get_split_index()
271
+ - t1700: change here document style
272
+ - config: mark an error message up for translation
273
+
274
+ The experimental "split index" feature has gained a few
275
+ configuration variables to make it easier to use.
276
+
277
+ I think this is almost ready for 'next'.
278
+
279
280
* dp/filter-branch-prune-empty (2017-02-23) 4 commits
281
- p7000: add test for filter-branch with --prune-empty
@@ -465,14 +290,15 @@ of the repositories listed at
290
291
292
* jc/config-case-cmdline-take-2 (2017-02-23) 2 commits
468
- - config: use git_config_parse_key() in git_config_parse_parameter()
469
- - config: move a few helper functions up
293
+ (merged to 'next' on 2017-03-01 at 2e9920eeeb)
294
+ + config: use git_config_parse_key() in git_config_parse_parameter()
295
+ + config: move a few helper functions up
296
297
The code to parse "git -c VAR=VAL cmd" and set configuration
298
variable for the duration of cmd had two small bugs, which have
299
been fixed.
300
475
- Will merge to 'next'.
301
+ Will merge to 'master'.
302
This supersedes jc/config-case-cmdline topic that has been discarded.
303
304
@@ -483,6 +309,8 @@ of the repositories listed at
309
A few tests were run conditionally under (rare) conditions where
310
they cannot be run (like running cvs tests under 'root' account).
311
312
+ Will merge to 'next'.
313
+
314
315
* jk/auto-namelen-in-interpret-branch-name (2017-02-27) 1 commit
316
- interpret_branch_name(): handle auto-namelen for @{-1}
@@ -504,14 +332,15 @@ of the repositories listed at
332
333
334
* jk/parse-config-key-cleanup (2017-02-24) 3 commits
507
- - parse_hide_refs_config: tell parse_config_key we don't want a subsection
508
- - parse_config_key: allow matching single-level config
509
- - parse_config_key: use skip_prefix instead of starts_with
335
+ (merged to 'next' on 2017-03-01 at e531d8d3a9)
336
+ + parse_hide_refs_config: tell parse_config_key we don't want a subsection
337
+ + parse_config_key: allow matching single-level config
338
+ + parse_config_key: use skip_prefix instead of starts_with
339
(this branch uses sb/parse-hide-refs-config-cleanup.)
340
341
The "parse_config_key()" API function has been cleaned up.
342
514
- Will merge to 'next'.
343
+ Will merge to 'master'.
344
345
346
* jk/t6300-cleanup (2017-02-27) 1 commit
@@ -553,12 +382,13 @@ of the repositories listed at
382
383
384
* sb/parse-hide-refs-config-cleanup (2017-02-24) 1 commit
556
- - refs: parse_hide_refs_config to use parse_config_key
385
+ (merged to 'next' on 2017-03-01 at fd722ba039)
386
+ + refs: parse_hide_refs_config to use parse_config_key
387
(this branch is used by jk/parse-config-key-cleanup.)
388
389
Code clean-up.
390
561
- Will merge to 'next'.
391
+ Will merge to 'master'.
392
393
394
* sg/clone-refspec-from-command-line-config (2017-02-27) 1 commit
@@ -580,142 +410,8 @@ of the repositories listed at
410
checked out" in more places.
411
412
Needs review.
583
- cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
413
+ cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
414
585
---------------------------------------------------
586
-[Stalled]
587
-
588
-* nd/worktree-move (2017-01-27) 7 commits
589
- . fixup! worktree move: new command
590
- . worktree remove: new command
591
- . worktree move: refuse to move worktrees with submodules
592
- . worktree move: accept destination as directory
593
- . worktree move: new command
594
- . worktree.c: add update_worktree_location()
595
- . worktree.c: add validate_worktree()
596
-
597
- "git worktree" learned move and remove subcommands.
598
-
599
- Tentatively ejected as it seems to break 'pu' when merged.
600
-
601
-
602
-* cc/split-index-config (2016-12-26) 21 commits
603
- - Documentation/git-update-index: explain splitIndex.*
604
- - Documentation/config: add splitIndex.sharedIndexExpire
605
- - read-cache: use freshen_shared_index() in read_index_from()
606
- - read-cache: refactor read_index_from()
607
- - t1700: test shared index file expiration
608
- - read-cache: unlink old sharedindex files
609
- - config: add git_config_get_expiry() from gc.c
610
- - read-cache: touch shared index files when used
611
- - sha1_file: make check_and_freshen_file() non static
612
- - Documentation/config: add splitIndex.maxPercentChange
613
- - t1700: add tests for splitIndex.maxPercentChange
614
- - read-cache: regenerate shared index if necessary
615
- - config: add git_config_get_max_percent_split_change()
616
- - Documentation/git-update-index: talk about core.splitIndex config var
617
- - Documentation/config: add information for core.splitIndex
618
- - t1700: add tests for core.splitIndex
619
- - update-index: warn in case of split-index incoherency
620
- - read-cache: add and then use tweak_split_index()
621
- - split-index: add {add,remove}_split_index() functions
622
- - config: add git_config_get_split_index()
623
- - config: mark an error message up for translation
624
-
625
- The experimental "split index" feature has gained a few
626
- configuration variables to make it easier to use.
627
-
628
- Expecting a reroll.
629
- cf. <20161226102222.17150-1-chriscool@tuxfamily.org>
630
- cf. <a1a44640-ff6c-2294-72ac-46322eff8505@ramsayjones.plus.com>
631
- cf. <CAP8UFD3_1EN=0EsD12Cew1MuW8yhtPAZw0M_g3wmvKFk-uGXxw@mail.gmail.com>
632
- cf. <CAP8UFD1wmbR_rHyqn0q=0hw6-hHYFTzr=3yxS2XS9qTdY1kWFA@mail.gmail.com>
633
- cf. <xmqqbmunq6mg.fsf@gitster.mtv.corp.google.com>
634
- cf. <CAP8UFD0bgxVrc=RGHs1GrZ_5PF4cdfhqXLMiCSJTNw9axrr=_w@mail.gmail.com>
635
-
636
-
637
-* pb/bisect (2017-02-18) 28 commits
638
- - fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C
639
- - bisect--helper: remove the dequote in bisect_start()
640
- - bisect--helper: retire `--bisect-auto-next` subcommand
641
- - bisect--helper: retire `--bisect-autostart` subcommand
642
- - bisect--helper: retire `--bisect-write` subcommand
643
- - bisect--helper: `bisect_replay` shell function in C
644
- - bisect--helper: `bisect_log` shell function in C
645
- - bisect--helper: retire `--write-terms` subcommand
646
- - bisect--helper: retire `--check-expected-revs` subcommand
647
- - bisect--helper: `bisect_state` & `bisect_head` shell function in C
648
- - bisect--helper: `bisect_autostart` shell function in C
649
- - bisect--helper: retire `--next-all` subcommand
650
- - bisect--helper: retire `--bisect-clean-state` subcommand
651
- - bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
652
- - t6030: no cleanup with bad merge base
653
- - bisect--helper: `bisect_start` shell function partially in C
654
- - bisect--helper: `get_terms` & `bisect_terms` shell function in C
655
- - bisect--helper: `bisect_next_check` & bisect_voc shell function in C
656
- - bisect--helper: `check_and_set_terms` shell function in C
657
- - bisect--helper: `bisect_write` shell function in C
658
- - bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
659
- - bisect--helper: `bisect_reset` shell function in C
660
- - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
661
- - t6030: explicitly test for bisection cleanup
662
- - bisect--helper: `bisect_clean_state` shell function in C
663
- - bisect--helper: `write_terms` shell function in C
664
- - bisect: rewrite `check_term_format` shell function in C
665
- - bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
666
-
667
- Move more parts of "git bisect" to C.
668
-
669
- Expecting a reroll.
670
- cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
671
- cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
672
- cf. <CAFZEwPNUXcNY9Qdz=_B7q2kQuaecPzJtTMGdv8YMUPEz2vnp8A@mail.gmail.com>
673
-
674
-
675
-* ls/filter-process-delayed (2017-01-08) 1 commit
676
- . convert: add "status=delayed" to filter process protocol
677
-
678
- Ejected, as does not build when merged to 'pu'.
679
-
680
-
681
-* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
682
- - grep: use '/' delimiter for paths
683
- - grep: only add delimiter if there isn't one already
684
-
685
- "git grep", when fed a tree-ish as an input, shows each hit
686
- prefixed with "<tree-ish>:<path>:<lineno>:". As <tree-ish> is
687
- almost always either a commit or a tag that points at a commit, the
688
- early part of the output "<tree-ish>:<path>" can be used as the
689
- name of the blob and given to "git show". When <tree-ish> is a
690
- tree given in the extended SHA-1 syntax (e.g. "<commit>:", or
691
- "<commit>:<dir>"), however, this results in a string that does not
692
- name a blob (e.g. "<commit>::<path>" or "<commit>:<dir>:<path>").
693
- "git grep" has been taught to be a bit more intelligent about these
694
- cases and omit a colon (in the former case) or use slash (in the
695
- latter case) to produce "<commit>:<path>" and
696
- "<commit>:<dir>/<path>" that can be used as the name of a blob.
697
-
698
- Expecting a reroll? Is this good enough with known limitations?
699
-
700
-
701
-* jc/diff-b-m (2015-02-23) 5 commits
702
- . WIPWIP
703
- . WIP: diff-b-m
704
- - diffcore-rename: allow easier debugging
705
- - diffcore-rename.c: add locate_rename_src()
706
- - diffcore-break: allow debugging
707
-
708
- "git diff -B -M" produced incorrect patch when the postimage of a
709
- completely rewritten file is similar to the preimage of a removed
710
- file; such a resulting file must not be expressed as a rename from
711
- other place.
712
-
713
- The fix in this patch is broken, unfortunately.
714
-
715
- Will discard.
716
-
717
---------------------------------------------------
718
-[Cooking]
415
416
* jh/send-email-one-cc (2017-02-27) 1 commit
417
- send-email: only allow one address per body tag
@@ -739,35 +435,37 @@ of the repositories listed at
435
436
437
* jk/ident-empty (2017-02-23) 4 commits
742
- - ident: do not ignore empty config name/email
743
- - ident: reject all-crud ident name
744
- - ident: handle NULL email when complaining of empty name
745
- - ident: mark error messages for translation
438
+ (merged to 'next' on 2017-03-01 at ff80031ce6)
439
+ + ident: do not ignore empty config name/email
440
+ + ident: reject all-crud ident name
441
+ + ident: handle NULL email when complaining of empty name
442
+ + ident: mark error messages for translation
443
444
user.email that consists of only cruft chars should have
445
consistently errored out, but didn't.
446
750
- Will merge to 'next'.
447
+ Will merge to 'master'.
448
449
450
* jt/upload-pack-error-report (2017-02-23) 1 commit
754
- - upload-pack: report "not our ref" to client
451
+ (merged to 'next' on 2017-03-01 at aea583dbe5)
452
+ + upload-pack: report "not our ref" to client
453
454
"git upload-pack", which is a counter-part of "git fetch", did not
455
report a request for a ref that was not advertised as invalid.
456
This is generally not a problem (because "git fetch" will stop
457
before making such a request), but is the right thing to do.
458
761
- Will merge to 'next'.
459
+ Will merge to 'master'.
460
461
764
-* ah/doc-ls-files-quotepath (2017-02-22) 1 commit
765
- - Documentation: clarify core.quotePath and update git-ls-files doc
462
+* ah/doc-ls-files-quotepath (2017-02-28) 3 commits
463
+ - SQUASH???
464
+ - Documentation: Link descriptions of -z to core.quotePath
465
+ - Documentation: Improve description for core.quotePath
466
467
Documentation for "git ls-files" did not refer to core.quotePath
468
769
- Reroll exists but not picked up yet.
770
-
469
470
* jh/memihash-opt (2017-02-17) 5 commits
471
- name-hash: remember previous dir_entry during lazy_init_name_hash
@@ -907,8 +605,7 @@ of the repositories listed at
605
Needs review.
606
607
910
-* tg/stash-push (2017-02-27) 7 commits
911
- - SQUASH???
608
+* tg/stash-push (2017-02-28) 6 commits
609
- stash: allow pathspecs in the no verb form
610
- stash: use stash_push for no verb form
611
- stash: teach 'push' (and 'create_stash') to honor pathspec
@@ -919,9 +616,7 @@ of the repositories listed at
616
Allow "git stash" to take pathspec so that the local changes can be
617
stashed away only partially.
618
922
- Expecting a reroll.
923
- I think this is almost there.
924
- cf. <20170225213306.2410-1-t.gummerer@gmail.com>
619
+ Will merge to 'next'.
620
621
622
* bc/object-id (2017-02-22) 19 commits
@@ -1083,5 +778,3 @@ of the repositories listed at
778
779
Will discard.
780
There may be third-party scripts that are dot-sourcing this one.
1086
-
1087
-