What's cooking (2017/01 #06)
Junio C Hamano committed
Jan 31, 2017 at 14:00 UTC
677358c8285b58a5e8499d6ecbdb5b00849598bf
1 file changed
+482
-368
whats-cooking.txt
+482
-368
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (Jan 2017, #05; Thu, 26)
4
-X-master-at: 4e59582ff70d299f5a88449891e78d15b4b3fabe
5
-X-next-at: 5f4715cea687c4077e2acd25706e1369a5cb338e
3
+Subject: What's cooking in git.git (Jan 2017, #06; Tue, 31)
4
+X-master-at: 8f60064c1f538f06e1c579cbd9840b86b10bcd3d
5
+X-next-at: d13081a61a6c1d42f310f616f74992dc2def6583
6
7
-What's cooking in git.git (Jan 2017, #05; Thu, 26)
7
+What's cooking in git.git (Jan 2017, #06; Tue, 31)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,129 +12,385 @@ 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
+Two biggies from Dscho are now in 'master'. Another thanks goes to
16
+him for pointing out that I had a wrong version of isatty() fix
17
+earlier in 'maint' and 'master', which is now fixed by merging the
18
+updated one in both of these branches. Please give the tip of
19
+'maint' a quick look, as I want to tag and push out 2.11.1 later
20
+this week, probably at the same time as 2.12-rc0 goes out.
21
+
22
You can find the changes described here in the integration branches
23
of the repositories listed at
24
25
http://git-blame.blogspot.com/p/git-public-repositories.html
26
27
+--------------------------------------------------
28
+[Graduated to "master"]
29
+
30
+* bw/push-submodule-only (2016-12-20) 3 commits
31
+ (merged to 'next' on 2017-01-23 at d6cd1c60ae)
32
+ + push: add option to push only submodules
33
+ + submodules: add RECURSE_SUBMODULES_ONLY value
34
+ + transport: reformat flag #defines to be more readable
35
+
36
+ "git submodule push" learned "--recurse-submodules=only option to
37
+ push submodules out without pushing the top-level superproject.
38
+
39
+
40
+* jk/clear-delta-base-cache-fix (2017-01-19) 1 commit
41
+ (merged to 'next' on 2017-01-23 at 5f4af2b0a5)
42
+ + clear_delta_base_cache(): don't modify hashmap while iterating
43
+
44
+ A crashing bug introduced in v2.11 timeframe has been found (it is
45
+ triggerable only in fast-import) and fixed.
46
+
47
+
48
+* jk/coding-guidelines-update (2017-01-17) 1 commit
49
+ (merged to 'next' on 2017-01-23 at 8c57afa288)
50
+ + CodingGuidelines: clarify multi-line brace style
51
+
52
+ Developer doc update.
53
+
54
+
55
+* jk/fsck-connectivity-check-fix (2017-01-26) 9 commits
56
+ (merged to 'next' on 2017-01-26 at dd03f7a17f)
57
+ + fsck: lazily load types under --connectivity-only
58
+ + fsck: move typename() printing to its own function
59
+ (merged to 'next' on 2017-01-25 at f3d7d93785)
60
+ + t1450: use "mv -f" within loose object directory
61
+ (merged to 'next' on 2017-01-23 at e8e9b76b84)
62
+ + fsck: check HAS_OBJ more consistently
63
+ + fsck: do not fallback "git fsck <bogus>" to "git fsck"
64
+ + fsck: tighten error-checks of "git fsck <head>"
65
+ + fsck: prepare dummy objects for --connectivity-check
66
+ + fsck: report trees as dangling
67
+ + t1450: clean up sub-objects in duplicate-entry test
68
+
69
+ "git fsck --connectivity-check" was not working at all.
70
+
71
+
72
+* jk/loose-object-fsck (2017-01-15) 6 commits
73
+ (merged to 'next' on 2017-01-23 at 4302ad090d)
74
+ + fsck: detect trailing garbage in all object types
75
+ + fsck: parse loose object paths directly
76
+ + sha1_file: add read_loose_object() function
77
+ + t1450: test fsck of packed objects
78
+ + sha1_file: fix error message for alternate objects
79
+ + t1450: refactor loose-object removal
80
+
81
+ "git fsck" inspects loose objects more carefully now.
82
+
83
+
84
+* jk/vreport-sanitize (2017-01-11) 2 commits
85
+ (merged to 'next' on 2017-01-18 at 4bbf370981)
86
+ + vreport: sanitize ASCII control chars
87
+ + Revert "vreportf: avoid intermediate buffer"
88
+
89
+ An error message with an ASCII control character like '\r' in it
90
+ can alter the message to hide its early part, which is problematic
91
+ when a remote side gives such an error message that the local side
92
+ will relay with a "remote: " prefix.
93
+
94
+
95
+* js/difftool-builtin (2017-01-25) 4 commits
96
+ (merged to 'next' on 2017-01-25 at 87d2a0976a)
97
+ + difftool: hack around -Wzero-length-format warning
98
+ (merged to 'next' on 2017-01-23 at 6f4810dbd9)
99
+ + difftool: retire the scripted version
100
+ + difftool: implement the functionality in the builtin
101
+ + difftool: add a skeleton for the upcoming builtin
102
+
103
+ Rewrite a scripted porcelain "git difftool" in C.
104
+
105
+
106
+* js/exec-path-coverity-workaround (2017-01-09) 2 commits
107
+ (merged to 'next' on 2017-01-23 at bf5dfbf860)
108
+ + git_exec_path: do not return the result of getenv()
109
+ + git_exec_path: avoid Coverity warning about unfree()d result
110
+
111
+ Code cleanup.
112
+ Split out of another topic.
113
+
114
+
115
+* js/mingw-isatty (2017-01-18) 1 commit
116
+ (merged to 'next' on 2017-01-23 at ae0f80e058)
117
+ + mingw: follow-up to "replace isatty() hack"
118
+
119
+ An update to a topic that is already in 'master'.
120
+
121
+
122
+* js/remote-rename-with-half-configured-remote (2017-01-19) 2 commits
123
+ (merged to 'next' on 2017-01-23 at a1b655dbac)
124
+ + remote rename: more carefully determine whether a remote is configured
125
+ + remote rename: demonstrate a bogus "remote exists" bug
126
+
127
+ With anticipatory tweaking for remotes defined in ~/.gitconfig
128
+ (e.g. "remote.origin.prune" set to true, even though there may or
129
+ may not actually be "origin" remote defined in a particular Git
130
+ repository), "git remote rename" and other commands misinterpreted
131
+ and behaved as if such a non-existing remote actually existed.
132
+
133
+
134
+* js/sequencer-i-countdown-3 (2017-01-17) 38 commits
135
+ (merged to 'next' on 2017-01-23 at 251dd15139)
136
+ + sequencer (rebase -i): write out the final message
137
+ + sequencer (rebase -i): write the progress into files
138
+ + sequencer (rebase -i): show the progress
139
+ + sequencer (rebase -i): suggest --edit-todo upon unknown command
140
+ + sequencer (rebase -i): show only failed cherry-picks' output
141
+ + sequencer (rebase -i): show only failed `git commit`'s output
142
+ + sequencer: use run_command() directly
143
+ + sequencer: update reading author-script
144
+ + sequencer (rebase -i): differentiate between comments and 'noop'
145
+ + sequencer (rebase -i): implement the 'drop' command
146
+ + sequencer (rebase -i): allow rescheduling commands
147
+ + sequencer (rebase -i): respect strategy/strategy_opts settings
148
+ + sequencer (rebase -i): respect the rebase.autostash setting
149
+ + sequencer (rebase -i): run the post-rewrite hook, if needed
150
+ + sequencer (rebase -i): record interrupted commits in rewritten, too
151
+ + sequencer (rebase -i): copy commit notes at end
152
+ + sequencer (rebase -i): set the reflog message consistently
153
+ + sequencer (rebase -i): refactor setting the reflog message
154
+ + sequencer (rebase -i): allow fast-forwarding for edit/reword
155
+ + sequencer (rebase -i): implement the 'reword' command
156
+ + sequencer (rebase -i): leave a patch upon error
157
+ + sequencer (rebase -i): update refs after a successful rebase
158
+ + sequencer (rebase -i): the todo can be empty when continuing
159
+ + sequencer (rebase -i): skip some revert/cherry-pick specific code path
160
+ + sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed
161
+ + sequencer (rebase -i): allow continuing with staged changes
162
+ + sequencer (rebase -i): write an author-script file
163
+ + sequencer (rebase -i): implement the short commands
164
+ + sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
165
+ + sequencer (rebase -i): write the 'done' file
166
+ + sequencer (rebase -i): learn about the 'verbose' mode
167
+ + sequencer (rebase -i): implement the 'exec' command
168
+ + sequencer (rebase -i): implement the 'edit' command
169
+ + sequencer (rebase -i): implement the 'noop' command
170
+ + sequencer: support a new action: 'interactive rebase'
171
+ + sequencer: use a helper to find the commit message
172
+ + sequencer: move "else" keyword onto the same line as preceding brace
173
+ + sequencer: avoid unnecessary curly braces
174
+
175
+ The sequencer machinery has been further enhanced so that a later
176
+ set of patches can start using it to reimplement "rebase -i".
177
+ I think I've said everything that needs to be said on this topic.
178
+
179
+
180
+* ls/travis-p4-on-macos (2017-01-23) 1 commit
181
+ (merged to 'next' on 2017-01-23 at 2d51987faa)
182
+ + travis-ci: fix Perforce install on macOS
183
+
184
+ Update the definition of the MacOSX test environment used by
185
+ TravisCI.
186
+
187
+
188
+* rs/qsort-s (2017-01-23) 5 commits
189
+ (merged to 'next' on 2017-01-23 at 7e2813848b)
190
+ + ref-filter: use QSORT_S in ref_array_sort()
191
+ + string-list: use QSORT_S in string_list_sort()
192
+ + perf: add basic sort performance test
193
+ + add QSORT_S
194
+ + compat: add qsort_s()
195
+
196
+ A few codepaths had to rely on a global variable when sorting
197
+ elements of an array because sort(3) API does not allow extra data
198
+ to be passed to the comparison function. Use qsort_s() when
199
+ natively available, and a fallback implementation of it when not,
200
+ to eliminate the need, which is a prerequisite for making the
201
+ codepath reentrant.
202
+
203
+
204
+* sb/in-core-index-doc (2017-01-19) 4 commits
205
+ (merged to 'next' on 2017-01-23 at 30224463e8)
206
+ + documentation: retire unfinished documentation
207
+ + cache.h: document add_[file_]to_index
208
+ + cache.h: document remove_index_entry_at
209
+ + cache.h: document index_name_pos
210
+
211
+ Documentation and in-code comments updates.
212
+
213
+
214
+* sb/retire-convert-objects-from-contrib (2017-01-19) 1 commit
215
+ (merged to 'next' on 2017-01-23 at decc1e237d)
216
+ + contrib: remove git-convert-objects
217
+
218
+ Remove an ancient tool left in contrib/.
219
+
220
+
221
+* st/verify-tag (2017-01-18) 6 commits
222
+ (merged to 'next' on 2017-01-23 at 2810959427)
223
+ + t/t7004-tag: Add --format specifier tests
224
+ + t/t7030-verify-tag: Add --format specifier tests
225
+ + builtin/tag: add --format argument for tag -v
226
+ + builtin/verify-tag: add --format to verify-tag
227
+ + ref-filter: add function to print single ref_array_item
228
+ + gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag
229
+
230
+ "git tag" and "git verify-tag" learned to put GPG verification
231
+ status in their "--format=<placeholders>" output format.
232
+
233
+
234
+* vp/show-ref-verify-head (2017-01-23) 6 commits
235
+ (merged to 'next' on 2017-01-23 at af6dd9d239)
236
+ + show-ref: remove a stale comment
237
+ + show-ref: remove dead `if (verify)' check
238
+ + show-ref: detect dangling refs under --verify as well
239
+ + show-ref: move --quiet handling into show_one()
240
+ + show-ref: allow -d to work with --verify
241
+ + show-ref: accept HEAD with --verify
242
+
243
+ "git show-ref HEAD" used with "--verify" because the user is not
244
+ interested in seeing refs/remotes/origin/HEAD, and used with
245
+ "--head" because the user does not want HEAD to be filtered out,
246
+ i.e. "git show-ref --head --verify HEAD", did not work as expected.
247
+
248
--------------------------------------------------
249
[New Topics]
250
23
-* js/mingw-hooks-with-exe-suffix (2017-01-26) 1 commit
24
- - mingw: allow hooks to be .exe files
251
+* cw/doc-sign-off (2017-01-27) 1 commit
252
+ - doc: clarify distinction between sign-off and pgp-signing
253
26
- Names of the various hook scripts must be spelled exactly, but on
27
- Windows, an .exe binary must be named with .exe suffix; notice
28
- $GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook.
254
+ Doc update.
255
256
Will merge to 'next'.
257
258
33
-* js/retire-relink (2017-01-25) 2 commits
34
- - relink: really remove the command
35
- - relink: retire the command
259
+* jk/delta-chain-limit (2017-01-27) 2 commits
260
+ - pack-objects: convert recursion to iteration in break_delta_chain()
261
+ - pack-objects: enforce --depth limit in reused deltas
262
37
- Cruft removal.
263
+ "git repack --depth=<n>" for a long time busted the specified depth
264
+ when reusing delta from existing packs. This has been corrected.
265
266
Will merge to 'next'.
267
268
42
-* js/status-pre-rebase-i (2017-01-26) 1 commit
43
- - status: be prepared for not-yet-started interactive rebase
269
+* js/re-running-failed-tests (2017-01-27) 1 commit
270
+ - t/Makefile: add a rule to re-run previously-failed tests
271
45
- After starting "git rebase -i", which first opens the user's editor
46
- to edit the series of patches to apply, but before saving the
47
- contents of that file, "git status" failed to show the current
48
- state (i.e. you are in an interactive rebase session, but you have
49
- applied no steps yet) correctly.
272
+ "make -C t failed" will now run only the tests that failed in the
273
+ previous run. This is usable only when prove is not use, and gives
274
+ a useless error message when run after "make clean".
275
276
Will merge to 'next'.
277
278
54
-* ps/urlmatch-wildcard (2017-01-26) 5 commits
55
- - SQUASH???
56
- - urlmatch: allow globbing for the URL host part
57
- - urlmatch: split host and port fields in `struct url_info`
58
- - urlmatch: enable normalization of URLs with globs
59
- - mailmap: add Patrick Steinhardt's work address
279
+* js/unzip-in-usr-bin-workaround (2017-01-27) 1 commit
280
+ - test-lib: on FreeBSD, look for unzip(1) in /usr/local/bin/
281
61
- The <url> part in "http.<url>.<variable>" configuration variable
62
- can now be spelled with '*' that serves as wildcard.
63
- E.g. "http.https://*.example.com.proxy" can be used to specify the
64
- proxy used for https://a.example.com, https://b.example.com, etc.,
65
- i.e. any host in the example.com domain.
282
+ Test tweak for FreeBSD where /usr/bin/unzip is unsuitable to run
283
+ our tests but /usr/local/bin/unzip is usable.
284
285
+ Will merge to 'next'.
286
68
-* rs/absolute-pathdup (2017-01-26) 2 commits
69
- - use absolute_pathdup()
70
- - abspath: add absolute_pathdup()
287
72
- Code cleanup.
288
+* gv/mingw-p4-mapuser (2017-01-30) 1 commit
289
+ - git-p4: fix git-p4.mapUser on Windows
290
+
291
+ "git p4" did not work well with multiple git-p4.mapUser entries on
292
+ Windows.
293
294
Will merge to 'next'.
295
296
77
-* sb/submodule-recursive-absorb (2017-01-26) 3 commits
78
- - submodule absorbing: fix worktree/gitdir pointers recursively for non-moves
79
- - cache.h: expose the dying procedure for reading gitlinks
80
- - setup: add gentle version of resolve_git_dir
297
+* hv/mingw-help-is-executable (2017-01-30) 1 commit
298
+ - help: improve is_executable() on Windows
299
82
- When a submodule "sub", which has another submodule "module" nested
83
- within it, is "absorbed" into the top-level superproject, the inner
84
- submodule "module" is left in a strange state.
300
+ "git help" enumerates executable files in $PATH; the implementation
301
+ of "is this file executable?" on Windows has been optimized.
302
303
Will merge to 'next'.
304
305
89
-* sb/submodule-update-initial-runs-custom-script (2017-01-26) 1 commit
90
- - submodule update: run custom update script for initial populating as well
306
+* cw/log-updates-for-all-refs-really (2017-01-31) 3 commits
307
+ - update-ref: add test cases for bare repository
308
+ - refs: add option core.logAllRefUpdates = always
309
+ - config: add markup to core.logAllRefUpdates doc
310
92
- The user can specify a custom update method that is run when
93
- "submodule update" updates an already checked out submodule. This
94
- was ignored when checking the submodule out for the first time and
95
- we instead always just checked out the commit that is bound to the
96
- path in the superproject's index.
311
+ The "core.logAllRefUpdates" that used to be boolean has been
312
+ enhanced to take 'always' as well, to record ref updates to refs
313
+ other than the ones that are expected to be updated (i.e. branches,
314
+ remote-tracking branches and notes).
315
316
Will merge to 'next'.
317
318
101
-* sf/putty-w-args (2017-01-26) 3 commits
102
- - connect: support GIT_SSH_VARIANT and ssh.variant
103
- - connect: rename tortoiseplink and putty variables
104
- - connect: handle putty/plink also in GIT_SSH_COMMAND
319
+* mm/merge-rename-delete-message (2017-01-30) 1 commit
320
+ - merge-recursive: make "CONFLICT (rename/delete)" message show both paths
321
106
- The command line options for ssh invocation needs to be tweaked for
107
- some implementations of SSH (e.g. PuTTY plink wants "-P <port>"
108
- while OpenSSH wants "-p <port>" to specify port to connect to), and
109
- the variant was guessed when GIT_SSH environment variable is used
110
- to specify it. Extend the guess to the command specified by the
111
- newer GIT_SSH_COMMAND and also core.sshcommand configuration
112
- variable, and give an escape hatch for users to deal with
113
- misdetected cases.
322
115
- Expecting a reroll of the last step.
323
+* mm/reset-facl-before-umask-test (2017-01-30) 1 commit
324
+ - t0001: don't let a default ACL interfere with the umask test
325
117
---------------------------------------------------
118
-[Stalled]
326
+ Test tweaks for those who have default ACL in their git source tree
327
+ that interfere with the umask test.
328
120
-* jc/diff-b-m (2015-02-23) 5 commits
121
- . WIPWIP
122
- . WIP: diff-b-m
123
- - diffcore-rename: allow easier debugging
124
- - diffcore-rename.c: add locate_rename_src()
125
- - diffcore-break: allow debugging
329
+ Will merge to 'next'.
330
127
- "git diff -B -M" produced incorrect patch when the postimage of a
128
- completely rewritten file is similar to the preimage of a removed
129
- file; such a resulting file must not be expressed as a rename from
130
- other place.
331
132
- The fix in this patch is broken, unfortunately.
332
+* rs/object-id (2017-01-30) 3 commits
333
+ - checkout: convert post_checkout_hook() to struct object_id
334
+ - use oidcpy() for copying hashes between instances of struct object_id
335
+ - use oid_to_hex_r() for converting struct object_id hashes to hex strings
336
134
- Will discard.
337
+ "uchar [40]" to "struct object_id" conversion continues.
338
+
339
+ Will merge to 'next'.
340
+
341
+
342
+* rs/swap (2017-01-30) 5 commits
343
+ - graph: use SWAP macro
344
+ - diff: use SWAP macro
345
+ - use SWAP macro
346
+ - apply: use SWAP macro
347
+ - add SWAP macro
348
+
349
+ Code clean-up.
350
+
351
+ Will merge to 'next'.
352
+
353
+
354
+* pl/complete-diff-submodule-diff (2017-01-30) 1 commit
355
+ - Completion: Add support for --submodule=diff
356
+
357
+ The command line completion (in contrib/) learned that
358
+ "git diff --submodule=" can take "diff" as a recently added option.
359
+
360
+ Will merge to 'next'.
361
+
362
+
363
+* rs/receive-pack-cleanup (2017-01-30) 1 commit
364
+ - receive-pack: call string_list_clear() unconditionally
365
+
366
+ Code clean-up.
367
+
368
+ Will merge to 'next'.
369
+
370
+
371
+* sb/submodule-add-force (2016-11-29) 1 commit
372
+ + submodule add: extend force flag to add existing repos
373
+ (this branch is used by sb/push-make-submodule-check-the-default.)
374
+
375
+ "git submodule add" used to be confused and refused to add a
376
+ locally created repository; users can now use "--force" option
377
+ to add them.
378
+
379
+ Will merge to 'next'.
380
381
--------------------------------------------------
137
-[Cooking]
382
+[Stalled]
383
+
384
+* ls/p4-path-encoding (2016-12-18) 1 commit
385
+ - git-p4: fix git-p4.pathEncoding for removed files
386
+
387
+ When "git p4" imports changelist that removes paths, it failed to
388
+ convert pathnames when the p4 used encoding different from the one
389
+ used on the Git side. This has been corrected.
390
+
391
+ Will be rerolled.
392
+ cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com>
393
+
394
395
* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
396
- grep: use '/' delimiter for paths
@@ -156,172 +412,177 @@ of the repositories listed at
412
Waiting for the review discussion to settle, followed by a reroll.
413
414
159
-* vp/show-ref-verify-head (2017-01-23) 6 commits
160
- (merged to 'next' on 2017-01-23 at af6dd9d239)
161
- + show-ref: remove a stale comment
162
- + show-ref: remove dead `if (verify)' check
163
- + show-ref: detect dangling refs under --verify as well
164
- + show-ref: move --quiet handling into show_one()
165
- + show-ref: allow -d to work with --verify
166
- + show-ref: accept HEAD with --verify
415
+* mh/ref-remove-empty-directory (2017-01-07) 23 commits
416
+ - files_transaction_commit(): clean up empty directories
417
+ - try_remove_empty_parents(): teach to remove parents of reflogs, too
418
+ - try_remove_empty_parents(): don't trash argument contents
419
+ - try_remove_empty_parents(): rename parameter "name" -> "refname"
420
+ - delete_ref_loose(): inline function
421
+ - delete_ref_loose(): derive loose reference path from lock
422
+ - log_ref_write_1(): inline function
423
+ - log_ref_setup(): manage the name of the reflog file internally
424
+ - log_ref_write_1(): don't depend on logfile argument
425
+ - log_ref_setup(): pass the open file descriptor back to the caller
426
+ - log_ref_setup(): improve robustness against races
427
+ - log_ref_setup(): separate code for create vs non-create
428
+ - log_ref_write(): inline function
429
+ - rename_tmp_log(): improve error reporting
430
+ - rename_tmp_log(): use raceproof_create_file()
431
+ - lock_ref_sha1_basic(): use raceproof_create_file()
432
+ - lock_ref_sha1_basic(): inline constant
433
+ - raceproof_create_file(): new function
434
+ - safe_create_leading_directories(): set errno on SCLD_EXISTS
435
+ - safe_create_leading_directories_const(): preserve errno
436
+ - t5505: use "for-each-ref" to test for the non-existence of references
437
+ - refname_is_safe(): correct docstring
438
+ - files_rename_ref(): tidy up whitespace
439
168
- "git show-ref HEAD" used with "--verify" because the user is not
169
- interested in seeing refs/remotes/origin/HEAD, and used with
170
- "--head" because the user does not want HEAD to be filtered out,
171
- i.e. "git show-ref --head --verify HEAD", did not work as expected.
440
+ Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
441
+ once there no longer is any other branch whose name begins with
442
+ "foo/", but we didn't do so so far. Now we do.
443
173
- Will merge to 'master'.
444
+ Expecting a reroll.
445
+ cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu>
446
447
176
-* bc/use-asciidoctor-opt (2017-01-26) 9 commits
177
- - SQUASH???
178
- - Documentation: implement linkgit macro for Asciidoctor
179
- - Makefile: add a knob to enable the use of Asciidoctor
180
- - Documentation: move dblatex arguments into variable
181
- - Documentation: add XSLT to fix DocBook for Texinfo
182
- - Documentation: sort sources for gitman.texi
183
- - Documentation: remove unneeded argument in cat-texi.perl
184
- - Documentation: modernize cat-texi.perl
185
- - Documentation: fix warning in cat-texi.perl
448
+* jc/diff-b-m (2015-02-23) 5 commits
449
+ . WIPWIP
450
+ . WIP: diff-b-m
451
+ - diffcore-rename: allow easier debugging
452
+ - diffcore-rename.c: add locate_rename_src()
453
+ - diffcore-break: allow debugging
454
187
- Asciidoctor, an alternative reimplementation of AsciiDoc, still
188
- needs some changes to work with documents meant to be formatted
189
- with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of
190
- the box to document our pages is getting closer to reality.
455
+ "git diff -B -M" produced incorrect patch when the postimage of a
456
+ completely rewritten file is similar to the preimage of a removed
457
+ file; such a resulting file must not be expressed as a rename from
458
+ other place.
459
460
+ The fix in this patch is broken, unfortunately.
461
193
-* ls/travis-p4-on-macos (2017-01-23) 1 commit
194
- (merged to 'next' on 2017-01-23 at 2d51987faa)
195
- + travis-ci: fix Perforce install on macOS
462
+ Will discard.
463
197
- Update the definition of the MacOSX test environment used by
198
- TravisCI.
464
+--------------------------------------------------
465
+[Cooking]
466
200
- Will merge to 'master'.
467
+* js/mingw-hooks-with-exe-suffix (2017-01-30) 1 commit
468
+ - mingw: allow hooks to be .exe files
469
470
+ Names of the various hook scripts must be spelled exactly, but on
471
+ Windows, an .exe binary must be named with .exe suffix; notice
472
+ $GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook.
473
203
-* rs/qsort-s (2017-01-23) 5 commits
204
- (merged to 'next' on 2017-01-23 at 7e2813848b)
205
- + ref-filter: use QSORT_S in ref_array_sort()
206
- + string-list: use QSORT_S in string_list_sort()
207
- + perf: add basic sort performance test
208
- + add QSORT_S
209
- + compat: add qsort_s()
474
+ Will merge to 'next'.
475
211
- A few codepaths had to rely on a global variable when sorting
212
- elements of an array because sort(3) API does not allow extra data
213
- to be passed to the comparison function. Use qsort_s() when
214
- natively available, and a fallback implementation of it when not,
215
- to eliminate the need, which is a prerequisite for making the
216
- codepath reentrant.
476
218
- Will merge to 'master'.
477
+* js/retire-relink (2017-01-25) 2 commits
478
+ - relink: really remove the command
479
+ - relink: retire the command
480
481
+ Cruft removal.
482
221
-* jk/coding-guidelines-update (2017-01-17) 1 commit
222
- (merged to 'next' on 2017-01-23 at 8c57afa288)
223
- + CodingGuidelines: clarify multi-line brace style
483
+ Will merge to 'next'.
484
225
- Developer doc update.
485
+
486
+* js/status-pre-rebase-i (2017-01-26) 1 commit
487
+ (merged to 'next' on 2017-01-31 at 09e51b2e39)
488
+ + status: be prepared for not-yet-started interactive rebase
489
+
490
+ After starting "git rebase -i", which first opens the user's editor
491
+ to edit the series of patches to apply, but before saving the
492
+ contents of that file, "git status" failed to show the current
493
+ state (i.e. you are in an interactive rebase session, but you have
494
+ applied no steps yet) correctly.
495
496
Will merge to 'master'.
497
498
230
-* jk/fsck-connectivity-check-fix (2017-01-26) 9 commits
231
- (merged to 'next' on 2017-01-26 at dd03f7a17f)
232
- + fsck: lazily load types under --connectivity-only
233
- + fsck: move typename() printing to its own function
234
- (merged to 'next' on 2017-01-25 at f3d7d93785)
235
- + t1450: use "mv -f" within loose object directory
236
- (merged to 'next' on 2017-01-23 at e8e9b76b84)
237
- + fsck: check HAS_OBJ more consistently
238
- + fsck: do not fallback "git fsck <bogus>" to "git fsck"
239
- + fsck: tighten error-checks of "git fsck <head>"
240
- + fsck: prepare dummy objects for --connectivity-check
241
- + fsck: report trees as dangling
242
- + t1450: clean up sub-objects in duplicate-entry test
499
+* ps/urlmatch-wildcard (2017-01-31) 5 commits
500
+ . urlmatch: allow globbing for the URL host part
501
+ . urlmatch: include host in urlmatch ranking
502
+ . urlmatch: split host and port fields in `struct url_info`
503
+ . urlmatch: enable normalization of URLs with globs
504
+ . mailmap: add Patrick Steinhardt's work address
505
244
- "git fsck --connectivity-check" was not working at all.
506
+ The <url> part in "http.<url>.<variable>" configuration variable
507
+ can now be spelled with '*' that serves as wildcard.
508
+ E.g. "http.https://*.example.com.proxy" can be used to specify the
509
+ proxy used for https://a.example.com, https://b.example.com, etc.,
510
+ i.e. any host in the example.com domain.
511
246
- Will merge to 'master'.
512
+ With the update it still seems to fail the same t5551#31
513
+ cf. <cover.1485853153.git.ps@pks.im>
514
515
249
-* js/exec-path-coverity-workaround (2017-01-09) 2 commits
250
- (merged to 'next' on 2017-01-23 at bf5dfbf860)
251
- + git_exec_path: do not return the result of getenv()
252
- + git_exec_path: avoid Coverity warning about unfree()d result
516
+* rs/absolute-pathdup (2017-01-27) 2 commits
517
+ (merged to 'next' on 2017-01-31 at f751f64876)
518
+ + use absolute_pathdup()
519
+ + abspath: add absolute_pathdup()
520
521
Code cleanup.
522
523
Will merge to 'master'.
257
- Split out of another topic.
524
525
260
-* js/mingw-isatty (2017-01-18) 1 commit
261
- (merged to 'next' on 2017-01-23 at ae0f80e058)
262
- + mingw: follow-up to "replace isatty() hack"
526
+* sb/submodule-recursive-absorb (2017-01-26) 3 commits
527
+ (merged to 'next' on 2017-01-31 at 0a24cfd06b)
528
+ + submodule absorbing: fix worktree/gitdir pointers recursively for non-moves
529
+ + cache.h: expose the dying procedure for reading gitlinks
530
+ + setup: add gentle version of resolve_git_dir
531
264
- An update to a topic that is already in 'master'.
532
+ When a submodule "sub", which has another submodule "module" nested
533
+ within it, is "absorbed" into the top-level superproject, the inner
534
+ submodule "module" is left in a strange state.
535
536
Will merge to 'master'.
537
538
269
-* js/sequencer-i-countdown-3 (2017-01-17) 38 commits
270
- (merged to 'next' on 2017-01-23 at 251dd15139)
271
- + sequencer (rebase -i): write out the final message
272
- + sequencer (rebase -i): write the progress into files
273
- + sequencer (rebase -i): show the progress
274
- + sequencer (rebase -i): suggest --edit-todo upon unknown command
275
- + sequencer (rebase -i): show only failed cherry-picks' output
276
- + sequencer (rebase -i): show only failed `git commit`'s output
277
- + sequencer: use run_command() directly
278
- + sequencer: update reading author-script
279
- + sequencer (rebase -i): differentiate between comments and 'noop'
280
- + sequencer (rebase -i): implement the 'drop' command
281
- + sequencer (rebase -i): allow rescheduling commands
282
- + sequencer (rebase -i): respect strategy/strategy_opts settings
283
- + sequencer (rebase -i): respect the rebase.autostash setting
284
- + sequencer (rebase -i): run the post-rewrite hook, if needed
285
- + sequencer (rebase -i): record interrupted commits in rewritten, too
286
- + sequencer (rebase -i): copy commit notes at end
287
- + sequencer (rebase -i): set the reflog message consistently
288
- + sequencer (rebase -i): refactor setting the reflog message
289
- + sequencer (rebase -i): allow fast-forwarding for edit/reword
290
- + sequencer (rebase -i): implement the 'reword' command
291
- + sequencer (rebase -i): leave a patch upon error
292
- + sequencer (rebase -i): update refs after a successful rebase
293
- + sequencer (rebase -i): the todo can be empty when continuing
294
- + sequencer (rebase -i): skip some revert/cherry-pick specific code path
295
- + sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed
296
- + sequencer (rebase -i): allow continuing with staged changes
297
- + sequencer (rebase -i): write an author-script file
298
- + sequencer (rebase -i): implement the short commands
299
- + sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
300
- + sequencer (rebase -i): write the 'done' file
301
- + sequencer (rebase -i): learn about the 'verbose' mode
302
- + sequencer (rebase -i): implement the 'exec' command
303
- + sequencer (rebase -i): implement the 'edit' command
304
- + sequencer (rebase -i): implement the 'noop' command
305
- + sequencer: support a new action: 'interactive rebase'
306
- + sequencer: use a helper to find the commit message
307
- + sequencer: move "else" keyword onto the same line as preceding brace
308
- + sequencer: avoid unnecessary curly braces
539
+* sb/submodule-update-initial-runs-custom-script (2017-01-26) 1 commit
540
+ (merged to 'next' on 2017-01-31 at d794f894c6)
541
+ + submodule update: run custom update script for initial populating as well
542
310
- The sequencer machinery has been further enhanced so that a later
311
- set of patches can start using it to reimplement "rebase -i".
543
+ The user can specify a custom update method that is run when
544
+ "submodule update" updates an already checked out submodule. This
545
+ was ignored when checking the submodule out for the first time and
546
+ we instead always just checked out the commit that is bound to the
547
+ path in the superproject's index.
548
549
Will merge to 'master'.
314
- I think I've said everything that needs to be said on this topic.
550
551
317
-* jk/clear-delta-base-cache-fix (2017-01-19) 1 commit
318
- (merged to 'next' on 2017-01-23 at 5f4af2b0a5)
319
- + clear_delta_base_cache(): don't modify hashmap while iterating
552
+* sf/putty-w-args (2017-01-26) 3 commits
553
+ - connect: support GIT_SSH_VARIANT and ssh.variant
554
+ - connect: rename tortoiseplink and putty variables
555
+ - connect: handle putty/plink also in GIT_SSH_COMMAND
556
321
- A crashing bug introduced in v2.11 timeframe has been found (it is
322
- triggerable only in fast-import) and fixed.
557
+ The command line options for ssh invocation needs to be tweaked for
558
+ some implementations of SSH (e.g. PuTTY plink wants "-P <port>"
559
+ while OpenSSH wants "-p <port>" to specify port to connect to), and
560
+ the variant was guessed when GIT_SSH environment variable is used
561
+ to specify it. Extend the guess to the command specified by the
562
+ newer GIT_SSH_COMMAND and also core.sshcommand configuration
563
+ variable, and give an escape hatch for users to deal with
564
+ misdetected cases.
565
324
- Will merge to 'master'.
566
+ Expecting a reroll of the last step to plug new memory leak.
567
+ cf. <xmqqpoj8z7su.fsf@gitster.mtv.corp.google.com>
568
+
569
+
570
+* bc/use-asciidoctor-opt (2017-01-31) 8 commits
571
+ - Documentation: implement linkgit macro for Asciidoctor
572
+ - Makefile: add a knob to enable the use of Asciidoctor
573
+ - Documentation: move dblatex arguments into variable
574
+ - Documentation: add XSLT to fix DocBook for Texinfo
575
+ - Documentation: sort sources for gitman.texi
576
+ - Documentation: remove unneeded argument in cat-texi.perl
577
+ - Documentation: modernize cat-texi.perl
578
+ - Documentation: fix warning in cat-texi.perl
579
+
580
+ Asciidoctor, an alternative reimplementation of AsciiDoc, still
581
+ needs some changes to work with documents meant to be formatted
582
+ with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of
583
+ the box to document our pages is getting closer to reality.
584
+
585
+ Will merge to 'next'.
586
587
588
* jk/describe-omit-some-refs (2017-01-23) 5 commits
@@ -337,78 +598,30 @@ of the repositories listed at
598
naming output on, and also learned to take negative patterns to
599
name refs not to be used for naming via their "--exclude" option.
600
340
- Will merge to 'next'.
341
-
342
-
343
-* js/remote-rename-with-half-configured-remote (2017-01-19) 2 commits
344
- (merged to 'next' on 2017-01-23 at a1b655dbac)
345
- + remote rename: more carefully determine whether a remote is configured
346
- + remote rename: demonstrate a bogus "remote exists" bug
347
-
348
- With anticipatory tweaking for remotes defined in ~/.gitconfig
349
- (e.g. "remote.origin.prune" set to true, even though there may or
350
- may not actually be "origin" remote defined in a particular Git
351
- repository), "git remote rename" and other commands misinterpreted
352
- and behaved as if such a non-existing remote actually existed.
353
-
354
- Will merge to 'master'.
355
-
356
-
357
-* sb/in-core-index-doc (2017-01-19) 4 commits
358
- (merged to 'next' on 2017-01-23 at 30224463e8)
359
- + documentation: retire unfinished documentation
360
- + cache.h: document add_[file_]to_index
361
- + cache.h: document remove_index_entry_at
362
- + cache.h: document index_name_pos
363
-
364
- Documentation and in-code comments updates.
365
-
366
- Will merge to 'master'.
367
-
368
-
369
-* sb/retire-convert-objects-from-contrib (2017-01-19) 1 commit
370
- (merged to 'next' on 2017-01-23 at decc1e237d)
371
- + contrib: remove git-convert-objects
372
-
373
- Remove an ancient tool left in contrib/.
374
-
375
- Will merge to 'master'.
601
+ Will cook in 'next'.
602
603
378
-* ep/commit-static-buf-cleanup (2017-01-13) 2 commits
379
- - builtin/commit.c: switch to xstrfmt(), instead of snprintf()
380
- - builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
604
+* ep/commit-static-buf-cleanup (2017-01-31) 2 commits
605
+ (merged to 'next' on 2017-01-31 at 02d3c25219)
606
+ + builtin/commit.c: switch to strbuf, instead of snprintf()
607
+ + builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
608
609
Code clean-up.
610
384
- Expecting a reroll.
385
- The tip one would instead be done with strbuf.
386
- cf. <CA+EOSB=4-TKpi6mr-yVbwRsFrVzE=vo4Y9Qm3VMm7pn=UB1_hQ@mail.gmail.com>
387
-
388
-
389
-* jk/vreport-sanitize (2017-01-11) 2 commits
390
- (merged to 'next' on 2017-01-18 at 4bbf370981)
391
- + vreport: sanitize ASCII control chars
392
- + Revert "vreportf: avoid intermediate buffer"
393
-
394
- An error message with an ASCII control character like '\r' in it
395
- can alter the message to hide its early part, which is problematic
396
- when a remote side gives such an error message that the local side
397
- will relay with a "remote: " prefix.
398
-
611
Will merge to 'master'.
612
613
614
* sb/unpack-trees-super-prefix (2017-01-25) 4 commits
403
- - unpack-trees: support super-prefix option
404
- - t1001: modernize style
405
- - t1000: modernize style
406
- - read-tree: use OPT_BOOL instead of OPT_SET_INT
615
+ (merged to 'next' on 2017-01-31 at dabe6ca2b1)
616
+ + unpack-trees: support super-prefix option
617
+ + t1001: modernize style
618
+ + t1000: modernize style
619
+ + read-tree: use OPT_BOOL instead of OPT_SET_INT
620
621
"git read-tree" and its underlying unpack_trees() machinery learned
622
to report problematic paths prefixed with the --super-prefix option.
623
411
- Will merge to 'next'.
624
+ Will merge to 'master'.
625
626
627
* sb/submodule-doc (2017-01-12) 3 commits
@@ -454,20 +667,6 @@ of the repositories listed at
667
Expecting a reroll.
668
669
457
-* jk/loose-object-fsck (2017-01-15) 6 commits
458
- (merged to 'next' on 2017-01-23 at 4302ad090d)
459
- + fsck: detect trailing garbage in all object types
460
- + fsck: parse loose object paths directly
461
- + sha1_file: add read_loose_object() function
462
- + t1450: test fsck of packed objects
463
- + sha1_file: fix error message for alternate objects
464
- + t1450: refactor loose-object removal
465
-
466
- "git fsck" inspects loose objects more carefully now.
467
-
468
- Will merge to 'master'.
469
-
470
-
670
* vn/xdiff-func-context (2017-01-15) 1 commit
671
- xdiff -W: relax end-of-file function detection
672
@@ -480,46 +679,14 @@ of the repositories listed at
679
being discussed.
680
681
483
-* mh/ref-remove-empty-directory (2017-01-07) 23 commits
484
- - files_transaction_commit(): clean up empty directories
485
- - try_remove_empty_parents(): teach to remove parents of reflogs, too
486
- - try_remove_empty_parents(): don't trash argument contents
487
- - try_remove_empty_parents(): rename parameter "name" -> "refname"
488
- - delete_ref_loose(): inline function
489
- - delete_ref_loose(): derive loose reference path from lock
490
- - log_ref_write_1(): inline function
491
- - log_ref_setup(): manage the name of the reflog file internally
492
- - log_ref_write_1(): don't depend on logfile argument
493
- - log_ref_setup(): pass the open file descriptor back to the caller
494
- - log_ref_setup(): improve robustness against races
495
- - log_ref_setup(): separate code for create vs non-create
496
- - log_ref_write(): inline function
497
- - rename_tmp_log(): improve error reporting
498
- - rename_tmp_log(): use raceproof_create_file()
499
- - lock_ref_sha1_basic(): use raceproof_create_file()
500
- - lock_ref_sha1_basic(): inline constant
501
- - raceproof_create_file(): new function
502
- - safe_create_leading_directories(): set errno on SCLD_EXISTS
503
- - safe_create_leading_directories_const(): preserve errno
504
- - t5505: use "for-each-ref" to test for the non-existence of references
505
- - refname_is_safe(): correct docstring
506
- - files_rename_ref(): tidy up whitespace
507
-
508
- Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
509
- once there no longer is any other branch whose name begins with
510
- "foo/", but we didn't do so so far. Now we do.
511
-
512
- Expecting a reroll.
513
- cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu>
514
-
515
-
682
* ls/filter-process-delayed (2017-01-08) 1 commit
683
. convert: add "status=delayed" to filter process protocol
684
685
Ejected, as does not build when merged to 'pu'.
686
687
522
-* nd/worktree-move (2017-01-09) 6 commits
688
+* nd/worktree-move (2017-01-27) 7 commits
689
+ - fixup! worktree move: new command
690
- worktree remove: new command
691
- worktree move: refuse to move worktrees with submodules
692
- worktree move: accept destination as directory
@@ -542,7 +709,8 @@ of the repositories listed at
709
rather limiting. A mechanism to customize the set of colors has
710
been introduced.
711
545
- Will merge to 'next'.
712
+ Reported to break "add -p".
713
+ cf. <20170128040709.tqx4u45ktgpkbfm4@sigill.intra.peff.net>
714
715
716
* cc/split-index-config (2016-12-26) 21 commits
@@ -576,58 +744,20 @@ of the repositories listed at
744
cf. <a1a44640-ff6c-2294-72ac-46322eff8505@ramsayjones.plus.com>
745
746
579
-* bw/push-submodule-only (2016-12-20) 3 commits
580
- (merged to 'next' on 2017-01-23 at d6cd1c60ae)
581
- + push: add option to push only submodules
582
- + submodules: add RECURSE_SUBMODULES_ONLY value
583
- + transport: reformat flag #defines to be more readable
584
-
585
- "git submodule push" learned "--recurse-submodules=only option to
586
- push submodules out without pushing the top-level superproject.
587
-
588
- Will merge to 'master'.
589
-
590
-
591
-* ls/p4-path-encoding (2016-12-18) 1 commit
592
- - git-p4: fix git-p4.pathEncoding for removed files
593
-
594
- When "git p4" imports changelist that removes paths, it failed to
595
- convert pathnames when the p4 used encoding different from the one
596
- used on the Git side. This has been corrected.
597
-
598
- Will be rerolled.
599
- cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com>
600
-
601
-
602
-* js/difftool-builtin (2017-01-25) 4 commits
603
- (merged to 'next' on 2017-01-25 at 87d2a0976a)
604
- + difftool: hack around -Wzero-length-format warning
605
- (merged to 'next' on 2017-01-23 at 6f4810dbd9)
606
- + difftool: retire the scripted version
607
- + difftool: implement the functionality in the builtin
608
- + difftool: add a skeleton for the upcoming builtin
609
-
610
- Rewrite a scripted porcelain "git difftool" in C.
611
-
612
- Will merge to 'master'.
613
-
614
-
615
-* sb/push-make-submodule-check-the-default (2017-01-26) 3 commits
747
+* sb/push-make-submodule-check-the-default (2017-01-26) 2 commits
748
(merged to 'next' on 2017-01-26 at 5f4715cea6)
749
+ Revert "push: change submodule default to check when submodules exist"
750
(merged to 'next' on 2016-12-12 at 1863e05af5)
751
+ push: change submodule default to check when submodules exist
620
- + submodule add: extend force flag to add existing repos
752
+ (this branch uses sb/submodule-add-force.)
753
754
Turn the default of "push.recurseSubmodules" to "check" when
755
submodules seem to be in use.
756
625
- I'll probably remove the tip-two commits and advance the bottom one
626
- separately.
757
+ Retracted.
758
759
629
-* kn/ref-filter-branch-list (2017-01-10) 21 commits
630
- - SQUASH???
760
+* kn/ref-filter-branch-list (2017-01-31) 20 commits
761
- branch: implement '--format' option
762
- branch: use ref-filter printing APIs
763
- branch, tag: use porcelain output
@@ -652,8 +782,7 @@ of the repositories listed at
782
The code to list branches in "git branch" has been consolidated
783
with the more generic ref-filter API.
784
655
- I think this is almost ready. Will wait for a few days, squash
656
- fixes in if needed and merge to 'next'.
785
+ Will merge to 'next'.
786
787
788
* jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit
@@ -706,21 +835,6 @@ of the repositories listed at
835
cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
836
837
709
-* st/verify-tag (2017-01-18) 6 commits
710
- (merged to 'next' on 2017-01-23 at 2810959427)
711
- + t/t7004-tag: Add --format specifier tests
712
- + t/t7030-verify-tag: Add --format specifier tests
713
- + builtin/tag: add --format argument for tag -v
714
- + builtin/verify-tag: add --format to verify-tag
715
- + ref-filter: add function to print single ref_array_item
716
- + gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag
717
-
718
- "git tag" and "git verify-tag" learned to put GPG verification
719
- status in their "--format=<placeholders>" output format.
720
-
721
- Will merge to 'master'.
722
-
723
-
838
* jc/merge-drop-old-syntax (2015-04-29) 1 commit
839
(merged to 'next' on 2016-12-05 at 041946dae0)
840
+ merge: drop 'git merge <message> HEAD <commit>' syntax