What's cooking (2018/05 #02)
Junio C Hamano committed
May 17, 2018 at 15:00 UTC
2b048814472b7dfc0e8ca250786c59c6bf0bc10a
1 file changed
+1272
-886
whats-cooking.txt
+1272
-886
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (May 2018, #01; Mon, 7)
4
-X-master-at: 1f1cddd558b54bb0ce19c8ace353fd07b758510d
5
-X-next-at: d54016d9e3a3ac00b0483d3779ff96f3882b7094
3
+Subject: What's cooking in git.git (May 2018, #02; Thu, 17)
4
+X-master-at: ccdcbd54c4475c2238b310f7113ab3075b5abc9c
5
+X-next-at: 5d83f92caf205e137a75902ff5658d2d82c898c5
6
7
-What's cooking in git.git (May 2018, #01; Mon, 7)
7
+What's cooking in git.git (May 2018, #02; Thu, 17)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -17,284 +17,839 @@ of the repositories listed at
17
18
http://git-blame.blogspot.com/p/git-public-repositories.html
19
20
+--------------------------------------------------
21
+[Graduated to "master"]
22
+
23
+* hn/sort-ls-remote (2018-04-09) 1 commit
24
+ (merged to 'next' on 2018-04-30 at 244ca5d30a)
25
+ + ls-remote: create '--sort' option
26
+
27
+ "git ls-remote" learned an option to allow sorting its output based
28
+ on the refnames being shown.
29
+
30
+
31
+* sb/object-store-replace (2018-04-12) 15 commits
32
+ (merged to 'next' on 2018-04-25 at 9a213fb505)
33
+ + replace-object: allow lookup_replace_object to handle arbitrary repositories
34
+ + replace-object: allow do_lookup_replace_object to handle arbitrary repositories
35
+ + replace-object: allow prepare_replace_object to handle arbitrary repositories
36
+ + refs: allow for_each_replace_ref to handle arbitrary repositories
37
+ + refs: store the main ref store inside the repository struct
38
+ + replace-object: add repository argument to lookup_replace_object
39
+ + replace-object: add repository argument to do_lookup_replace_object
40
+ + replace-object: add repository argument to prepare_replace_object
41
+ + refs: add repository argument to for_each_replace_ref
42
+ + refs: add repository argument to get_main_ref_store
43
+ + replace-object: check_replace_refs is safe in multi repo environment
44
+ + replace-object: eliminate replace objects prepared flag
45
+ + object-store: move lookup_replace_object to replace-object.h
46
+ + replace-object: move replace_map to object store
47
+ + replace_object: use oidmap
48
+ (this branch is used by sb/object-store-alloc and sb/oid-object-info.)
49
+
50
+ The effort to pass the repository in-core structure throughout the
51
+ API continues. This round deals with the code that implements the
52
+ refs/replace/ mechanism.
53
+
54
+
55
+* ab/git-svn-get-record-typofix (2018-04-09) 1 commit
56
+ (merged to 'next' on 2018-04-30 at 23f875f6b9)
57
+ + git-svn: avoid warning on undef readline()
58
+
59
+ "git svn" had a minor thinko/typo which has been fixed.
60
+
61
+
62
+* ab/nuke-emacs-contrib (2018-04-16) 1 commit
63
+ (merged to 'next' on 2018-04-25 at 9b133d8a65)
64
+ + git{,-blame}.el: remove old bitrotting Emacs code
65
+
66
+ The scripts in contrib/emacs/ have outlived their usefulness and
67
+ have been replaced with a stub that errors out and tells the user
68
+ there are replacements.
69
+
70
+
71
+* ab/simplify-perl-makefile (2018-04-19) 2 commits
72
+ (merged to 'next' on 2018-04-25 at 906cf21682)
73
+ + Makefile: mark perllibdir as a .PHONY target
74
+ (merged to 'next' on 2018-04-17 at 4448756934)
75
+ + perl: fix installing modules from contrib
76
+
77
+ Recent simplification of build procedure forgot a bit of tweak to
78
+ the build procedure of contrib/mw-to-git/
79
+
80
+
81
+* bt/gpg-interface (2018-04-16) 7 commits
82
+ (merged to 'next' on 2018-04-30 at 50c507b7d8)
83
+ + gpg-interface: find the last gpg signature line
84
+ + gpg-interface: extract gpg line matching helper
85
+ + gpg-interface: fix const-correctness of "eol" pointer
86
+ + gpg-interface: use size_t for signature buffer size
87
+ + gpg-interface: modernize function declarations
88
+ + gpg-interface: handle bool user.signingkey
89
+ + t7004: fix mistaken tag name
90
+
91
+ What is queued here is only the obviously correct and
92
+ uncontroversial code clean-up part, which is an earlier 7 patches,
93
+ of a larger series.
94
+
95
+ The remainder that is not queued introduces a few configuration
96
+ variables to deal with e-signature backends with different
97
+ signature format.
98
+
99
+
100
+* bw/protocol-v2 (2018-03-15) 35 commits
101
+ (merged to 'next' on 2018-04-11 at 23ee234a2c)
102
+ + remote-curl: don't request v2 when pushing
103
+ + remote-curl: implement stateless-connect command
104
+ + http: eliminate "# service" line when using protocol v2
105
+ + http: don't always add Git-Protocol header
106
+ + http: allow providing extra headers for http requests
107
+ + remote-curl: store the protocol version the server responded with
108
+ + remote-curl: create copy of the service name
109
+ + pkt-line: add packet_buf_write_len function
110
+ + transport-helper: introduce stateless-connect
111
+ + transport-helper: refactor process_connect_service
112
+ + transport-helper: remove name parameter
113
+ + connect: don't request v2 when pushing
114
+ + connect: refactor git_connect to only get the protocol version once
115
+ + fetch-pack: support shallow requests
116
+ + fetch-pack: perform a fetch using v2
117
+ + upload-pack: introduce fetch server command
118
+ + push: pass ref prefixes when pushing
119
+ + fetch: pass ref prefixes when fetching
120
+ + ls-remote: pass ref prefixes when requesting a remote's refs
121
+ + transport: convert transport_get_remote_refs to take a list of ref prefixes
122
+ + transport: convert get_refs_list to take a list of ref prefixes
123
+ + connect: request remote refs using v2
124
+ + ls-refs: introduce ls-refs server command
125
+ + serve: introduce git-serve
126
+ + test-pkt-line: introduce a packet-line test helper
127
+ + protocol: introduce enum protocol_version value protocol_v2
128
+ + transport: store protocol version
129
+ + connect: discover protocol version outside of get_remote_heads
130
+ + connect: convert get_remote_heads to use struct packet_reader
131
+ + transport: use get_refs_via_connect to get refs
132
+ + upload-pack: factor out processing lines
133
+ + upload-pack: convert to a builtin
134
+ + pkt-line: add delim packet support
135
+ + pkt-line: allow peeking a packet line without consuming it
136
+ + pkt-line: introduce packet_read_with_status
137
+ (this branch is used by bw/server-options and jt/partial-clone-proto-v2.)
138
+
139
+ The beginning of the next-gen transfer protocol.
140
+
141
+
142
+* dj/runtime-prefix (2018-04-24) 7 commits
143
+ (merged to 'next' on 2018-04-25 at e7e635a70e)
144
+ + Makefile: quote $INSTLIBDIR when passing it to sed
145
+ + Makefile: remove unused @@PERLLIBDIR@@ substitution variable
146
+ (merged to 'next' on 2018-04-17 at a69aaa7a22)
147
+ + mingw/msvc: use the new-style RUNTIME_PREFIX helper
148
+ + exec_cmd: provide a new-style RUNTIME_PREFIX helper for Windows
149
+ + exec_cmd: RUNTIME_PREFIX on some POSIX systems
150
+ + Makefile: add Perl runtime prefix support
151
+ + Makefile: generate Perl header from template file
152
+ (this branch is tangled with js/runtime-prefix.)
153
+
154
+ A build-time option has been added to allow Git to be told to refer
155
+ to its associated files relative to the main binary, in the same
156
+ way that has been possible on Windows for quite some time, for
157
+ Linux, BSDs and Darwin.
158
+
159
+
160
+* ds/commit-graph (2018-04-11) 16 commits
161
+ (merged to 'next' on 2018-04-25 at 18af3d28d9)
162
+ + commit-graph: implement "--append" option
163
+ + commit-graph: build graph from starting commits
164
+ + commit-graph: read only from specific pack-indexes
165
+ + commit: integrate commit graph with commit parsing
166
+ + commit-graph: close under reachability
167
+ + commit-graph: add core.commitGraph setting
168
+ + commit-graph: implement git commit-graph read
169
+ + commit-graph: implement git-commit-graph write
170
+ + commit-graph: implement write_commit_graph()
171
+ + commit-graph: create git-commit-graph builtin
172
+ + graph: add commit graph design document
173
+ + commit-graph: add format document
174
+ + csum-file: refactor finalize_hashfile() method
175
+ + csum-file: rename hashclose() to finalize_hashfile()
176
+ + Merge branch 'jk/cached-commit-buffer' into HEAD
177
+ + Merge branch 'jt/binsearch-with-fanout' into HEAD
178
+ (this branch is used by ds/generation-numbers and ds/lazy-load-trees.)
179
+
180
+ Precompute and store information necessary for ancestry traversal
181
+ in a separate file to optimize graph walking.
182
+
183
+ Will merge to 'master'.
184
+
185
+
186
+* jc/parseopt-expiry-errors (2018-04-23) 2 commits
187
+ (merged to 'next' on 2018-04-30 at 637085f3d8)
188
+ + parseopt: handle malformed --expire arguments more nicely
189
+ + gc: do not upcase error message shown with die()
190
+
191
+ "git gc --prune=nonsense" spent long time repacking and then
192
+ silently failed when underlying "git prune --expire=nonsense"
193
+ failed to parse its command line. This has been corrected.
194
+
195
+
196
+* js/colored-push-errors (2018-04-24) 4 commits
197
+ (merged to 'next' on 2018-04-30 at 31076c52a2)
198
+ + config: document the settings to colorize push errors/hints
199
+ + push: test to verify that push errors are colored
200
+ + push: colorize errors
201
+ + color: introduce support for colorizing stderr
202
+
203
+ Error messages from "git push" can be painted for more visibility.
204
+
205
+
206
+* js/empty-config-section-fix (2018-04-09) 15 commits
207
+ (merged to 'next' on 2018-04-25 at 1690df3e5f)
208
+ + git_config_set: reuse empty sections
209
+ + git config --unset: remove empty sections (in the common case)
210
+ + git_config_set: make use of the config parser's event stream
211
+ + git_config_set: do not use a state machine
212
+ + config_set_store: rename some fields for consistency
213
+ + config: avoid using the global variable `store`
214
+ + config: introduce an optional event stream while parsing
215
+ + t1300: `--unset-all` can leave an empty section behind (bug)
216
+ + t1300: add a few more hairy examples of sections becoming empty
217
+ + t1300: remove unreasonable expectation from TODO
218
+ + t1300: avoid relying on a bug
219
+ + config --replace-all: avoid extra line breaks
220
+ + t1300: demonstrate that --replace-all can "invent" newlines
221
+ + t1300: rename it to reflect that `repo-config` was deprecated
222
+ + git_config_set: fix off-by-two
223
+
224
+ "git config --unset a.b", when "a.b" is the last variable in an
225
+ otherwise empty section "a", left an empty section "a" behind, and
226
+ worse yet, a subsequent "git config a.c value" did not reuse that
227
+ empty shell and instead created a new one. These have been
228
+ (partially) corrected.
229
+
230
+
231
+* js/ident-date-fix (2018-04-19) 1 commit
232
+ (merged to 'next' on 2018-04-30 at d50ec2f4c1)
233
+ + sequencer: reset the committer date before commits
234
+
235
+ During a "rebase -i" session, the code could give older timestamp
236
+ to commits created by later "pick" than an earlier "reword", which
237
+ has been corrected.
238
+
239
+
240
+* js/runtime-prefix (2018-04-24) 8 commits
241
+ (merged to 'next' on 2018-04-30 at c6cfccf40e)
242
+ + Avoid multiple PREFIX definitions
243
+ + git_setup_gettext: plug memory leak
244
+ + gettext: avoid initialization if the locale dir is not present
245
+ (merged to 'next' on 2018-04-17 at a69aaa7a22)
246
+ + mingw/msvc: use the new-style RUNTIME_PREFIX helper
247
+ + exec_cmd: provide a new-style RUNTIME_PREFIX helper for Windows
248
+ + exec_cmd: RUNTIME_PREFIX on some POSIX systems
249
+ + Makefile: add Perl runtime prefix support
250
+ + Makefile: generate Perl header from template file
251
+ (this branch is tangled with dj/runtime-prefix.)
252
+
253
+
254
+* ls/checkout-encoding (2018-04-16) 10 commits
255
+ (merged to 'next' on 2018-04-25 at e0f8554b2a)
256
+ + convert: add round trip check based on 'core.checkRoundtripEncoding'
257
+ + convert: add tracing for 'working-tree-encoding' attribute
258
+ + convert: check for detectable errors in UTF encodings
259
+ + convert: add 'working-tree-encoding' attribute
260
+ + utf8: add function to detect a missing UTF-16/32 BOM
261
+ + utf8: add function to detect prohibited UTF-16/32 BOM
262
+ + utf8: teach same_encoding() alternative UTF encoding names
263
+ + strbuf: add a case insensitive starts_with()
264
+ + strbuf: add xstrdup_toupper()
265
+ + strbuf: remove unnecessary NUL assignment in xstrdup_tolower()
266
+
267
+ The new "checkout-encoding" attribute can ask Git to convert the
268
+ contents to the specified encoding when checking out to the working
269
+ tree (and the other way around when checking in).
270
+
271
+
272
+* ma/double-dashes-in-docs (2018-04-18) 4 commits
273
+ (merged to 'next' on 2018-04-25 at aaac2dc63c)
274
+ + git-submodule.txt: quote usage in monospace, drop backslash
275
+ + git-[short]log.txt: unify quoted standalone --
276
+ + doc: convert [\--] to [--]
277
+ + doc: convert \--option to --option
278
+
279
+ Doc formatting updates.
280
+
281
+
282
+* ma/fast-export-skip-merge-fix (2018-04-21) 1 commit
283
+ (merged to 'next' on 2018-04-30 at f7fca02ab1)
284
+ + fast-export: fix regression skipping some merge-commits
285
+
286
+ "git fast-export" had a regression in v2.15.0 era where it skipped
287
+ some merge commits in certain cases, which has been corrected.
288
+
289
+
290
+* ma/http-walker-no-partial (2018-04-24) 2 commits
291
+ (merged to 'next' on 2018-04-30 at 4582c99ba8)
292
+ + walker: drop fields of `struct walker` which are always 1
293
+ + http-fetch: make `-a` standard behavior
294
+
295
+ "git http-fetch" (deprecated) had an optional and experimental
296
+ "feature" to fetch only commits and/or trees, which nobody used.
297
+ This has been removed.
298
+
299
+
300
+* nd/submodule-status-fix (2018-04-19) 1 commit
301
+ (merged to 'next' on 2018-04-30 at 34d1f9ca83)
302
+ + submodule--helper: don't print null in 'submodule status'
303
+
304
+ "git submodule status" did not check the symbolic revision name it
305
+ computed for the submodule HEAD is not the NULL, and threw it at
306
+ printf routines, which has been corrected.
307
+
308
+
309
+* nd/warn-more-for-devs (2018-04-16) 4 commits
310
+ (merged to 'next' on 2018-04-25 at 2978e61414)
311
+ + Makefile: add a DEVOPTS to get all of -Wextra
312
+ + Makefile: add a DEVOPTS to suppress -Werror under DEVELOPER
313
+ + Makefile: detect compiler and enable more warnings in DEVELOPER=1
314
+ + connect.c: mark die_initial_contact() NORETURN
315
+
316
+ The build procedure "make DEVELOPER=YesPlease" learned to enable a
317
+ bit more warning options depending on the compiler used to help
318
+ developers more. There also is "make DEVOPTS=tokens" knob
319
+ available now, for those who want to help fixing warnings we
320
+ usually ignore, for example.
321
+
322
+
323
+* ot/libify-get-ref-atom-value (2018-03-29) 6 commits
324
+ (merged to 'next' on 2018-04-25 at 056bcaa69c)
325
+ + ref-filter: libify get_ref_atom_value()
326
+ + ref-filter: add return value to parsers
327
+ + ref-filter: change parsing function error handling
328
+ + ref-filter: add return value && strbuf to handlers
329
+ + ref-filter: start adding strbufs with errors
330
+ + ref-filter: add shortcut to work with strbufs
331
+
332
+ Code restructuring, in preparation for further work.
333
+
334
+
335
+* sa/send-email-dedup-some-headers (2018-04-19) 1 commit
336
+ (merged to 'next' on 2018-04-30 at 2a1fd8217e)
337
+ + send-email: avoid duplicate In-Reply-To/References
338
+
339
+ When fed input that already has In-Reply-To: and/or References:
340
+ headers and told to add the same information, "git send-email"
341
+ added these headers separately, instead of appending to an existing
342
+ one, which is a violation of the RFC. This has been corrected.
343
+
344
+
345
+* sb/submodule-move-nested (2018-03-29) 6 commits
346
+ (merged to 'next' on 2018-04-25 at 86b177433a)
347
+ + submodule: fixup nested submodules after moving the submodule
348
+ + submodule-config: remove submodule_from_cache
349
+ + submodule-config: add repository argument to submodule_from_{name, path}
350
+ + submodule-config: allow submodule_free to handle arbitrary repositories
351
+ + grep: remove "repo" arg from non-supporting funcs
352
+ + submodule.h: drop declaration of connect_work_tree_and_git_dir
353
+
354
+ Moving a submodule that itself has submodule in it with "git mv"
355
+ forgot to make necessary adjustment to the nested sub-submodules;
356
+ now the codepath learned to recurse into the submodules.
357
+
358
+
359
+* sb/worktree-remove-opt-force (2018-04-18) 1 commit
360
+ (merged to 'next' on 2018-04-25 at 0367d52a4b)
361
+ + worktree: accept -f as short for --force for removal
362
+
363
+ "git worktree remove" learned that "-f" is a shorthand for
364
+ "--force" option, just like for "git worktree add".
365
+
366
+
367
+* sg/completion-clear-cached (2018-04-18) 1 commit
368
+ (merged to 'next' on 2018-04-25 at 9178da6c3d)
369
+ + completion: reduce overhead of clearing cached --options
370
+
371
+ The completion script (in contrib/) learned to clear cached list of
372
+ command line options upon dot-sourcing it again in a more efficient
373
+ way.
374
+
375
+
376
+* sg/doc-gc-quote-mismatch-fix (2018-04-18) 1 commit
377
+ (merged to 'next' on 2018-04-25 at bc3d1abf45)
378
+ + docs/git-gc: fix minor rendering issue
379
+
380
+ Doc formatting fix.
381
+
382
+
383
+* so/glossary-ancestor (2018-04-17) 1 commit
384
+ (merged to 'next' on 2018-04-25 at 0a849fee00)
385
+ + glossary: substitute "ancestor" for "direct ancestor" in 'push' description.
386
+
387
+ Docfix.
388
+
389
+
390
+* tb/config-default (2018-04-23) 3 commits
391
+ (merged to 'next' on 2018-04-25 at 59bb6beb2a)
392
+ + builtin/config: introduce `color` type specifier
393
+ + config.c: introduce 'git_config_color' to parse ANSI colors
394
+ + builtin/config: introduce `--default`
395
+ (this branch uses tb/config-type.)
396
+
397
+ "git config --get" learned the "--default" option, to help the
398
+ calling script. Building on top of the tb/config-type topic, the
399
+ "git config" learns "--type=color" type. Taken together, you can
400
+ do things like "git config --get foo.color --default blue" and get
401
+ the ANSI color sequence for the color given to foo.color variable,
402
+ or "blue" if the variable does not exist.
403
+
404
+
405
+* tb/config-type (2018-04-19) 2 commits
406
+ (merged to 'next' on 2018-04-25 at fe69e93c82)
407
+ + builtin/config.c: support `--type=<type>` as preferred alias for `--<type>`
408
+ + builtin/config.c: treat type specifiers singularly
409
+ (this branch is used by tb/config-default.)
410
+
411
+ The "git config" command uses separate options e.g. "--int",
412
+ "--bool", etc. to specify what type the caller wants the value to
413
+ be interpreted as. A new "--type=<typename>" option has been
414
+ introduced, which would make it cleaner to define new types.
415
+
416
+
417
+* tg/demote-stash-save-in-completion (2018-04-20) 2 commits
418
+ (merged to 'next' on 2018-04-30 at 93d0af5375)
419
+ + completion: make stash -p and alias for stash push -p
420
+ + completion: stop showing 'save' for stash by default
421
+
422
+ The command line completion (in contrib/) has been taught that "git
423
+ stash save" has been deprecated ("git stash push" is the preferred
424
+ spelling in the new world) and does not offer it as a possible
425
+ completion candidate when "git stash push" can be.
426
+
427
+
428
+* tq/t1510 (2018-04-17) 1 commit
429
+ (merged to 'next' on 2018-04-25 at 5710c81979)
430
+ + t1510-repo-setup.sh: remove useless mkdir
431
+
432
+ Test cleanup.
433
+
434
+
435
+* tz/doc-git-urls-reference (2018-04-20) 1 commit
436
+ (merged to 'next' on 2018-04-30 at 39926c99fd)
437
+ + doc/clone: update caption for GIT URLS cross-reference
438
+
439
+ Doc fix.
440
+
441
--------------------------------------------------
442
[New Topics]
443
23
-* tb/test-apfs-utf8-normalization (2018-05-02) 1 commit
24
- - test: correct detection of UTF8_NFD_TO_NFC for APFS
444
+* hn/sort-ls-remote (2018-05-14) 1 commit
445
+ (merged to 'next' on 2018-05-16 at 64336850f2)
446
+ + t5512: run git fetch inside test
447
+
448
+ Hotfix.
449
+
450
+ Will merge to 'master'.
451
26
- A test to see if the filesystem normalizes UTF-8 filename has been
27
- updated to check what we need to know in a more direct way, i.e. a
28
- path created in NFC form can be accessed with NFD form (or vice
29
- versa) to cope with APFS as well as HFS.
452
+
453
+* sb/object-store-replace (2018-05-10) 2 commits
454
+ (merged to 'next' on 2018-05-16 at 41bbedcc81)
455
+ + replace-object.c: remove the_repository from prepare_replace_object
456
+ + object.c: free replace map in raw_object_store_clear
457
+
458
+ Hotfix.
459
+
460
+ Will merge to 'master'.
461
+
462
+
463
+* sg/t6500-no-redirect-of-stdin (2018-05-09) 1 commit
464
+ - t6050-replace: don't disable stdin for the whole test script
465
+
466
+ Test cleanup.
467
468
Will merge to 'next'.
469
470
34
-* ab/get-short-oid (2018-05-02) 12 commits
35
- - get_short_oid: document & warn if we ignore the type selector
36
- - config doc: document core.disambiguate
37
- - get_short_oid / peel_onion: ^{commit} should be commit, not committish
38
- - get_short_oid / peel_onion: ^{tree} should be tree, not treeish
39
- - get_short_oid: learn to disambiguate by ^{blob}
40
- - get_short_oid: learn to disambiguate by ^{tag}
41
- - get_short_oid: sort ambiguous objects by type, then SHA-1
42
- - sha1-name.c: move around the collect_ambiguous() function
43
- - cache.h: add comment explaining the order in object_type
44
- - git-p4: change "commitish" typo to "committish"
45
- - sha1-array.h: align function arguments
46
- - sha1-name.c: remove stray newline
471
+* ao/config-api-doc (2018-05-11) 1 commit
472
+ - doc: fix config API documentation about config_with_options
473
+
474
+ Doc update.
475
+
476
+ Will merge to 'next'.
477
+
478
+
479
+* bc/hash-independent-tests (2018-05-16) 28 commits
480
+ - t5300: abstract away SHA-1-specific constants
481
+ - t4208: abstract away SHA-1-specific constants
482
+ - t4045: abstract away SHA-1-specific constants
483
+ - t4042: abstract away SHA-1-specific constants
484
+ - t4205: sort log output in a hash-independent way
485
+ - t/lib-diff-alternative: abstract away SHA-1-specific constants
486
+ - t4030: abstract away SHA-1-specific constants
487
+ - t4029: abstract away SHA-1-specific constants
488
+ - t4029: fix test indentation
489
+ - t4022: abstract away SHA-1-specific constants
490
+ - t4020: abstract away SHA-1-specific constants
491
+ - t4014: abstract away SHA-1-specific constants
492
+ - t4008: abstract away SHA-1-specific constants
493
+ - t4007: abstract away SHA-1-specific constants
494
+ - t3905: abstract away SHA-1-specific constants
495
+ - t3702: abstract away SHA-1-specific constants
496
+ - t3103: abstract away SHA-1-specific constants
497
+ - t2203: abstract away SHA-1-specific constants
498
+ - t: skip pack tests if not using SHA-1
499
+ - t4044: skip test if not using SHA-1
500
+ - t1512: skip test if not using SHA-1
501
+ - t1007: annotate with SHA1 prerequisite
502
+ - t0000: annotate with SHA1 prerequisite
503
+ - t: switch $_x40 to $OID_REGEX
504
+ - t/test-lib: introduce OID_REGEX
505
+ - t: switch $_z40 to $ZERO_OID
506
+ - t/test-lib: introduce ZERO_OID
507
+ - t/test-lib: add an SHA1 prerequisite
508
+
509
+ Many tests hardcode the raw object names, which would change once
510
+ we migrate away from SHA-1. While some of them must test against
511
+ exact object names, most of them do not have to use hardcoded
512
+ constants in the test. The latter kind of tests have been updated
513
+ to test the moral equivalent of the original without hardcoding the
514
+ actual object names.
515
+
516
+ Will merge to 'next'.
517
518
49
-* ah/misc-doc-updates (2018-05-06) 7 commits
50
- - doc: normalize [--options] to [options] in git-diff
51
- - doc: add note about shell quoting to revision.txt
52
- - git-svn: remove ''--add-author-from' for 'commit-diff'
53
- - doc: add '-d' and '-o' for 'git push'
54
- - doc: clarify ignore rules for git ls-files
55
- - doc: align 'diff --no-index' in text and synopsis
56
- - doc: improve formatting in githooks.txt
519
+* bp/status-rename-config (2018-05-13) 1 commit
520
+ - add status config and command line options for rename detection
521
+ (this branch uses em/status-rename-config.)
522
58
- Misc doc fixes.
523
+ "git status" learned to honor a new status.renames configuration to
524
+ skip rename detection, which could be useful for those who want to
525
+ do so without disabling the default rename detection done by the
526
+ "git diff" command.
527
528
Will merge to 'next'.
529
530
63
-* bc/format-patch-cover-no-attach (2018-05-02) 1 commit
64
- - format-patch: make cover letters always text/plain
65
-
66
- "git format-patch --cover --attach" created a broken MIME multipart
67
- message for the cover letter, which has been fixed by keeping the
68
- cover letter as plain text file.
531
+* bw/refspec-api (2018-05-16) 35 commits
532
+ - submodule: convert push_unpushed_submodules to take a struct refspec
533
+ - remote: convert check_push_refs to take a struct refspec
534
+ - remote: convert match_push_refs to take a struct refspec
535
+ - http-push: store refspecs in a struct refspec
536
+ - transport: remove transport_verify_remote_names
537
+ - send-pack: store refspecs in a struct refspec
538
+ - transport: convert transport_push to take a struct refspec
539
+ - push: convert to use struct refspec
540
+ - push: check for errors earlier
541
+ - remote: convert match_explicit_refs to take a struct refspec
542
+ - remote: convert get_ref_match to take a struct refspec
543
+ - remote: convert query_refspecs to take a struct refspec
544
+ - remote: convert apply_refspecs to take a struct refspec
545
+ - remote: convert get_stale_heads to take a struct refspec
546
+ - fetch: convert prune_refs to take a struct refspec
547
+ - fetch: convert get_ref_map to take a struct refspec
548
+ - fetch: convert do_fetch to take a struct refspec
549
+ - refspec: remove the deprecated functions
550
+ - fetch: convert refmap to use struct refspec
551
+ - fetch: convert fetch_one to use struct refspec
552
+ - transport-helper: convert to use struct refspec
553
+ - remote: convert fetch refspecs to struct refspec
554
+ - remote: convert push refspecs to struct refspec
555
+ - fast-export: convert to use struct refspec
556
+ - clone: convert cmd_clone to use refspec_item_init
557
+ - remote: convert match_push_refs to use struct refspec
558
+ - remote: convert check_push_refs to use struct refspec
559
+ - transport: convert transport_push to use struct refspec
560
+ - pull: convert get_tracking_branch to use refspec_item_init
561
+ - submodule--helper: convert push_check to use struct refspec
562
+ - refspec: convert valid_fetch_refspec to use parse_refspec
563
+ - refspec: introduce struct refspec
564
+ - refspec: rename struct refspec to struct refspec_item
565
+ - refspec: factor out parsing a single refspec
566
+ - refspec: move refspec parsing logic into its own file
567
+
568
+ An API update for handling of refspecs used by fetch & push
569
+ codepath.
570
571
Will merge to 'next'.
572
573
73
-* bp/test-drop-caches (2018-05-04) 1 commit
74
- - test-drop-caches: simplify delay loading of NtSetSystemInformation
574
+* ds/commit-graph-lockfile-fix (2018-05-11) 1 commit
575
+ - commit-graph: fix UX issue when .lock file exists
576
+ (this branch uses ds/generation-numbers and ds/lazy-load-trees.)
577
76
- Code simplification.
578
+ Update to ds/generation-numbers topic.
579
+
580
+
581
+* jk/apply-p-doc (2018-05-11) 1 commit
582
+ - apply: clarify "-p" documentation
583
+
584
+ Doc update.
585
586
Will merge to 'next'.
587
588
81
-* cc/perf-bisect (2018-05-06) 1 commit
82
- - perf/bisect_run_script: disable codespeed
589
+* jk/unavailable-can-be-missing (2018-05-13) 4 commits
590
+ - mark_parents_uninteresting(): avoid most allocation
591
+ - mark_parents_uninteresting(): replace list with stack
592
+ - mark_parents_uninteresting(): drop missing object check
593
+ - mark_tree_contents_uninteresting(): drop missing object check
594
84
- Performance test updates.
595
+ Code clean-up to turn history traversal more robust in a
596
+ semi-corrupt repository.
597
598
Will merge to 'next'.
599
600
89
-* cf/submodule-progress-dissociate (2018-05-04) 3 commits
90
- - submodule: add --dissociate option to add/update commands
91
- - submodule: add --progress option to add command
92
- - submodule: clean up subsititions in script
601
+* lm/credential-netrc (2018-05-14) 2 commits
602
+ - git-credential-netrc: accept gpg option
603
+ - git-credential-netrc: adapt to test framework for git
604
94
- "git submodule update" and "git submodule add" supported the
95
- "--reference" option to borrow objects from a neighbouring local
96
- repository like "git clone" does, but lacked the more recent
97
- invention "--dissociate". Also "git submodule add" has been taught
98
- to take the "--progress" option.
605
+ Update credential-netrc helper (in contrib/) to allow customizing
606
+ the GPG used to decrypt the encrypted .netrc file.
607
100
- Is this ready for 'next'? Should "git submodule -h" list the new
101
- options in its short help?
608
+ Will merge to 'next'.
609
610
104
-* dd/send-email-reedit (2018-05-06) 1 commit
105
- - git-send-email: allow re-editing of message
611
+* ma/create-pseudoref-with-null-old-oid (2018-05-13) 3 commits
612
+ - refs: handle zero oid for pseudorefs
613
+ - t1400: add tests around adding/deleting pseudorefs
614
+ - refs.c: refer to "object ID", not "sha1", in error messages
615
107
- "git send-email" can sometimes offer confirmation dialog "Send this
108
- email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action
109
- 'Edit' has been added to this dialog's choice.
110
-
111
- Waiting briefly for an ack or two.
112
- cf. <xmqq4ljlsahj.fsf@gitster-ct.c.googlers.com>
616
+ "git update-ref A B" is supposed to ensure that ref A does not yet
617
+ exist when B is a NULL OID, but this check was not done correctly
618
+ for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
619
620
+ Will merge to 'next'.
621
115
-* em/status-rename-config (2018-05-06) 1 commit
116
- - wt-status: use settings from git_diff_ui_config
622
118
- "git status" learned to pay attention to UI related diff
119
- configuration variables such as diff.renames.
623
+* ma/lockfile-cleanup (2018-05-10) 5 commits
624
+ - lock_file: move static locks into functions
625
+ - lock_file: make function-local locks non-static
626
+ - refs.c: do not die if locking fails in `delete_pseudoref()`
627
+ - refs.c: do not die if locking fails in `write_pseudoref()`
628
+ - t/helper/test-write-cache: clean up lock-handling
629
+
630
+ Code clean-up to adjust to a more recent lockfile API convention that
631
+ allows lockfile instances kept on the stack.
632
633
Will merge to 'next'.
634
635
124
-* jm/cache-entry-from-mem-pool (2018-05-02) 5 commits
125
- - block alloc: add validations around cache_entry lifecyle
126
- - block alloc: allocate cache entries from mem_pool
127
- - mem-pool: fill out functionality
128
- - block alloc: add lifecycle APIs for cache_entry structs
129
- - read-cache: teach refresh_cache_entry() to take istate
636
+* nd/commit-util-to-slab (2018-05-14) 14 commits
637
+ - commit.h: delete 'util' field in struct commit
638
+ - merge: use commit-slab in merge remote desc instead of commit->util
639
+ - log: use commit-slab in prepare_bases() instead of commit->util
640
+ - show-branch: use commit-slab for commit-name instead of commit->util
641
+ - name-rev: use commit-slab for rev-name instead of commit->util
642
+ - bisect.c: use commit-slab for commit weight instead of commit->util
643
+ - revision.c: use commit-slab for show_source
644
+ - sequencer.c: use commit-slab to associate todo items to commits
645
+ - sequencer.c: use commit-slab to mark seen commits
646
+ - shallow.c: use commit-slab for commit depth instead of commit->util
647
+ - describe: use commit-slab for commit names instead of commit->util
648
+ - blame: use commit-slab for blame suspects instead of commit->util
649
+ - commit-slab: support shared commit-slab
650
+ - commit-slab.h: code split
651
+
652
+ The in-core "commit" object had an all-purpose "void *util" field,
653
+ which was tricky to use especially in library-ish part of the
654
+ code. All of the existing uses of the field has been migrated to a
655
+ more dedicated "commit-slab" mechanism and the field is eliminated.
656
131
- For a large tree, the index needs to hold many cache entries
132
- allocated on heap. These cache entries are now allocated out of a
133
- dedicated memory pool to amortize malloc(3) overhead.
657
+ Will merge to 'next'.
658
135
- Needs review.
136
- Is the "caller always knows which pool an entry came from and calls
137
- the right kind of free" a feasible approach?
659
660
+* nd/diff-apply-ita (2018-05-14) 2 commits
661
+ - apply: add --intent-to-add
662
+ - diff: turn --ita-invisible-in-index on by default
663
140
-* js/branch-diff (2018-05-06) 18 commits
141
- - completion: support branch-diff
142
- - branch-diff: add a man page
143
- - branch-diff --dual-color: work around bogus white-space warning
144
- - branch-diff: offer to dual-color the diffs
145
- - diff: add an internal option to dual-color diffs of diffs
146
- - color: provide inverted colors, too
147
- - branch-diff: use color for the commit pairs
148
- - branch-diff: add tests
149
- - branch-diff: do not show "function names" in hunk headers
150
- - branch-diff: adjust the output of the commit pairs
151
- - branch-diff: suppress the diff headers
152
- - branch-diff: indent the diffs just like tbdiff
153
- - branch-diff: right-trim commit messages
154
- - branch-diff: also show the diff between patches
155
- - branch-diff: improve the order of the shown commits
156
- - branch-diff: first rudimentary implementation
157
- - Add a new builtin: branch-diff
158
- - Add a function to solve least-cost assignment problems
664
+ "git diff" compares the index and the working tree. For paths
665
+ added with intent-to-add bit, the command shows the full contents
666
+ of them as added, but the paths themselves were not marked as new
667
+ files. They are now shown as new by default.
668
160
- "git tbdiff" that lets us compare individual patches in two
161
- iterations of a topic has been rewritten and made into a built-in
162
- command.
669
+ "git apply" learned the "--intent-to-add" option so that an
670
+ otherwise working-tree-only application of a patch will add new
671
+ paths to the index marked with the "intent-to-add" bit.
672
164
- Expecting a reroll.
165
- cf. <nycvar.QRO.7.76.6.1805052351560.77@tvgsbejvaqbjf.bet>
673
+ Will merge to and cook in 'next'.
674
675
168
-* js/sequencer-and-root-commits (2018-05-06) 6 commits
169
- - rebase --rebase-merges: root commits can be cousins, too
170
- - rebase --rebase-merges: a "merge" into a new root is a fast-forward
171
- - sequencer: allow introducing new root commits
172
- - rebase -i --root: let the sequencer handle even the initial part
173
- - sequencer: learn about the special "fake root commit" handling
174
- - sequencer: extract helper to update active_cache_tree
175
- (this branch uses js/rebase-recreate-merge.)
676
+* nd/pack-format-doc (2018-05-13) 1 commit
677
+ - pack-format.txt: more details on pack file format
678
177
- The implementation of "git rebase -i --root" has been updaed to use
178
- the sequencer machinery more.
679
+ Doc update.
680
681
Will merge to 'next'.
682
683
183
-* js/use-bug-macro (2018-05-06) 4 commits
184
- - Convert remaining die*(BUG) messages
185
- - Replace all die("BUG: ...") calls by BUG() ones
186
- - run-command: use BUG() to report bugs, not die()
187
- - test-tool: help verifying BUG() code paths
684
+* nd/pack-struct-commit (2018-05-13) 1 commit
685
+ - commit.h: rearrange 'index' to shrink struct commit
686
687
+ Memory optimization.
688
190
-* jt/partial-clone-proto-v2 (2018-05-06) 4 commits
191
- - {fetch,upload}-pack: support filter in protocol v2
192
- - upload-pack: read config when serving protocol v2
193
- - upload-pack: fix error message typo
194
- - Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2
195
- (this branch uses bw/protocol-v2; is tangled with bw/server-options.)
689
+ Will merge to 'next'.
690
197
- Transfer protocol v2 learned to support the partial clone.
691
+
692
+* nd/repo-clear-keep-the-index (2018-05-10) 1 commit
693
+ - repository: fix free problem with repo_clear(the_repository)
694
+
695
+ the_repository->index is not a allocated piece of memory but
696
+ repo_clear() indiscriminately attempted to free(3) it, which has
697
+ been corrected.
698
699
Will merge to 'next'.
700
701
202
-* ma/doc-expand-tabs (2018-05-02) 1 commit
203
- - revisions.txt: expand tabs to spaces in diagram
702
+* nd/term-columns (2018-05-13) 2 commits
703
+ - column: fix off-by-one default width
704
+ - pager: set COLUMNS to term_columns()
705
205
- Fix one instance of asciidoctor's misformatting by expanding a tab
206
- into spaces in a literal block.
706
+ The code did not propagate the terminal width to subprocesses via
707
+ COLUMNS environment variable, which it now does. This caused
708
+ trouble to "git column" helper subprocess when "git tag --column=row"
709
+ tried to list the existing tags on a display with non-default width.
710
208
- Will discard. This approach is less maintainable than the approach
209
- taken by bc/asciidoctor-tab-width topic.
711
+ Will merge to 'next'.
712
713
212
-* nd/completion-aliasfiletype-typofix (2018-05-06) 1 commit
213
- - completion: fix misspelled config key aliasesfiletype
714
+* nd/travis-gcc-7 (2018-05-14) 1 commit
715
+ - travis-ci: run gcc-7 on linux-gcc jobs
716
215
- Typofix.
717
+ Developer support. Use newer GCC on one of the builds done at
718
+ TravisCI.org to get more warnings and errors diagnosed.
719
720
Will merge to 'next'.
721
722
220
-* nd/doc-header (2018-05-02) 1 commit
221
- - doc: keep first level section header in upper case
723
+* rs/no-null-ptr-arith-in-fast-export (2018-05-10) 1 commit
724
+ - fast-export: avoid NULL pointer arithmetic
725
223
- Doc formatting fix.
726
+ Code clean-up to avoid non-standard-conformant pointer arithmetic.
727
728
Will merge to 'next'.
729
730
228
-* nd/pack-unreachable-objects-doc (2018-05-06) 1 commit
229
- - pack-objects: validation and documentation about unreachable options
230
-
231
- Doc update.
731
+* sb/grep-die-on-unreadable-index (2018-05-16) 1 commit
732
+ - grep: handle corrupt index files early
733
+
734
+
735
+* sb/object-store-grafts (2018-05-16) 19 commits
736
+ - commit: allow lookup_commit_graft to handle arbitrary repositories
737
+ - commit: allow prepare_commit_graft to handle arbitrary repositories
738
+ - shallow: migrate shallow information into the object parser
739
+ - path.c: migrate git_path_ to take a repository argument
740
+ - cache: convert get_graft_file to handle arbitrary repositories
741
+ - commit: convert read_graft_file to handle arbitrary repositories
742
+ - commit: convert register_commit_graft to handle arbitrary repositories
743
+ - commit: convert commit_graft_pos() to handle arbitrary repositories
744
+ - shallow: add repository argument to is_repository_shallow
745
+ - shallow: add repository argument to check_shallow_file_for_update
746
+ - shallow: add repository argument to register_shallow
747
+ - shallow: add repository argument to set_alternate_shallow_file
748
+ - commit: add repository argument to lookup_commit_graft
749
+ - commit: add repository argument to prepare_commit_graft
750
+ - commit: add repository argument to read_graft_file
751
+ - commit: add repository argument to register_commit_graft
752
+ - commit: add repository argument to commit_graft_pos
753
+ - object: move grafts to object parser
754
+ - object-store: move object access functions to object-store.h
755
+ (this branch uses sb/object-store-alloc and sb/oid-object-info.)
756
+
757
+
758
+* sb/submodule-merge-in-merge-recursive (2018-05-16) 3 commits
759
+ - merge-recursive: give notice when submodule commit gets fast-forwarded
760
+ - merge-recursive: i18n submodule merge output and respect verbosity
761
+ - submodule.c: move submodule merging to merge-recursive.c
762
+
763
+ By code restructuring of submodule merge in merge-recursive,
764
+ informational messages from the codepath are now given using the
765
+ same mechanism as other output, and honor the merge.verbosity
766
+ configuration. The code also learned to give a few new messages
767
+ when a submodule three-way merge resolves cleanly when one side
768
+ records a descendant of the commit chosen by the other side.
769
770
Will merge to 'next'.
771
772
236
-* sb/object-store-alloc (2018-05-02) 14 commits
237
- - alloc.c: include alloc.h
238
- - alloc: allow arbitrary repositories for alloc functions
239
- - object: allow create_object to handle arbitrary repositories
240
- - object: allow grow_object_hash to handle arbitrary repositories
241
- - alloc: add repository argument to alloc_commit_index
242
- - alloc: add repository argument to alloc_report
243
- - alloc: add repository argument to alloc_object_node
244
- - alloc: add repository argument to alloc_tag_node
245
- - alloc: add repository argument to alloc_commit_node
246
- - alloc: add repository argument to alloc_tree_node
247
- - alloc: add repository argument to alloc_blob_node
248
- - object: add repository argument to grow_object_hash
249
- - object: add repository argument to create_object
250
- - repository: introduce object parser field
251
- (this branch uses sb/object-store-replace and sb/oid-object-info.)
773
+* sb/submodule-update-try-harder (2018-05-16) 1 commit
774
+ - git-submodule.sh: try harder to fetch a submodule
775
253
- The conversion to pass "the_repository" and then "a_repository"
254
- throughout the object access API continues.
776
+ "git submodule update" attempts two different kinds of "git fetch"
777
+ against the upstream repository to grab a commit bound at the
778
+ submodule's path, but it incorrectly gave up if the first kind
779
+ (i.e. a normal fetch) failed, making the second "last resort" one
780
+ (i.e. fetching an exact commit object by object name) ineffective.
781
+ This has been corrected.
782
783
+ Will merge to 'next'.
784
257
-* tb/grep-column (2018-05-06) 7 commits
258
- - contrib/git-jump/git-jump: jump to match column in addition to line
259
- - grep.c: add configuration variables to show matched option
260
- - builtin/grep.c: add '--column' option to 'git-grep(1)'
261
- - grep.c: display column number of first match
262
- - grep.[ch]: extend grep_opt to allow showing matched column
263
- - grep.c: expose matched column in match_line()
264
- - Documentation/config.txt: camel-case lineNumber for consistency
785
266
- "git grep" learned the "--column" option that gives not just the
267
- line number but the column number of the hit.
786
+* sg/t5310-jgit-bitmap-test (2018-05-11) 1 commit
787
+ - t5310-pack-bitmaps: make JGit tests work with GIT_TEST_SPLIT_INDEX
788
789
+ Test update.
790
270
-* bc/asciidoctor-tab-width (2018-05-07) 2 commits
271
- - Documentation: render revisions correctly under Asciidoctor
272
- - Documentation: use 8-space tabs with Asciidoctor
791
+ Will merge to 'next'.
792
274
- Asciidoctor gives a reasonable imitation for AsciiDoc, but does not
275
- render illustration in a literal block correctly when indented with
276
- HT by default. The problem is fixed by forcing 8-space tabs.
793
+
794
+* sg/t5516-fixes (2018-05-11) 2 commits
795
+ - t5516-fetch-push: fix broken &&-chain
796
+ - t5516-fetch-push: fix 'push with dry-run' test
797
+
798
+ Test fixes.
799
800
Will merge to 'next'.
801
802
281
-* bc/mailmap-self (2018-05-07) 1 commit
282
- - mailmap: update brian m. carlson's email address
803
+* sg/t7005-spaces-in-filenames-cleanup (2018-05-15) 1 commit
804
+ - t7005-editor: get rid of the SPACES_IN_FILENAMES prereq
805
+
806
+ Test update.
807
808
Will merge to 'next'.
809
810
+
811
+* tb/grep-only-matching (2018-05-14) 2 commits
812
+ - builtin/grep.c: teach '-o', '--only-matching' to 'git-grep'
813
+ - grep.c: extract show_line_header()
814
+ (this branch uses tb/grep-column.)
815
+
816
--------------------------------------------------
817
[Stalled]
818
289
-* pc/submodule-helper-foreach (2018-02-02) 5 commits
290
- - submodule: port submodule subcommand 'foreach' from shell to C
291
- - submodule foreach: document variable '$displaypath'
292
- - submodule foreach: clarify the '$toplevel' variable documentation
293
- - submodule foreach: document '$sm_path' instead of '$path'
294
- - submodule foreach: correct '$path' in nested submodules from a subdirectory
819
+* jm/cache-entry-from-mem-pool (2018-05-02) 5 commits
820
+ - block alloc: add validations around cache_entry lifecyle
821
+ - block alloc: allocate cache entries from mem_pool
822
+ - mem-pool: fill out functionality
823
+ - block alloc: add lifecycle APIs for cache_entry structs
824
+ - read-cache: teach refresh_cache_entry() to take istate
825
+
826
+ For a large tree, the index needs to hold many cache entries
827
+ allocated on heap. These cache entries are now allocated out of a
828
+ dedicated memory pool to amortize malloc(3) overhead.
829
+
830
+ Needs review.
831
+ Is the "caller always knows which pool an entry came from and calls
832
+ the right kind of free" a feasible approach?
833
+ Oh, another thing, there is "lifecyle" typo in the title.
834
296
- Expecting a response to review comments
297
- e.g. cf. <20180206150044.1bffbb573c088d38c8e44bf5@google.com>
835
+
836
+* ab/fetch-tags-noclobber (2018-05-16) 9 commits
837
+ - fixup! push tests: assert re-pushing annotated tags
838
+ - fetch: stop clobbering existing tags without --force
839
+ - fetch tests: add a test clobbering tag behavior
840
+ - fetch tests: correct a comment "remove it" -> "remove them"
841
+ - push doc: correct lies about how push refspecs work
842
+ - push tests: assert re-pushing annotated tags
843
+ - push tests: add more testing for forced tag pushing
844
+ - push tests: fix logic error in "push" test assertion
845
+ - push tests: remove redundant 'git push' invocation
846
+
847
+ Expecting a reboot of the discussion to take it to some conclusion
848
+ and then a reroll.
849
+ cf. <f3b891c3-381f-de42-51d8-24fdfbca91d2@gmail.com>
850
+ cf. <xmqq603yn50l.fsf@gitster-ct.c.googlers.com>
851
+ cf. <xmqqzi1alodz.fsf@gitster-ct.c.googlers.com>
852
+ cf. <xmqqvabylnbi.fsf@gitster-ct.c.googlers.com>
853
854
855
* pw/add-p-select (2018-03-16) 3 commits
@@ -342,15 +897,6 @@ of the repositories listed at
897
Seems to break a few tests.
898
899
345
-* ld/p4-unshelve (2018-02-22) 1 commit
346
- - git-p4: add unshelve command
347
-
348
- "git p4" learned to "unshelve" shelved commit from P4.
349
-
350
- Will hold, perhaps drop and use format-change that uses a proper "diff".
351
- cf. <CAE5ih7_ooDMqVtTMoQ70s5XCkncr04HY0JkqSp1UmKQeG81oaA@mail.gmail.com>
352
-
353
-
900
* av/fsmonitor-updates (2018-01-04) 6 commits
901
- fsmonitor: use fsmonitor data in `git diff`
902
- fsmonitor: remove debugging lines from t/t7519-status-fsmonitor.sh
@@ -386,289 +932,423 @@ of the repositories listed at
932
- SQUASH???
933
- http-backend: respect CONTENT_LENGTH as specified by rfc3875
934
389
- The http-backend (used for smart-http transport) used to slurp the
390
- whole input until EOF, without paying attention to CONTENT_LENGTH
391
- that is supplied in the environment and instead expecting the Web
392
- server to close the input stream. This has been fixed.
935
+ The http-backend (used for smart-http transport) used to slurp the
936
+ whole input until EOF, without paying attention to CONTENT_LENGTH
937
+ that is supplied in the environment and instead expecting the Web
938
+ server to close the input stream. This has been fixed.
939
+
940
+ Expecting a reroll.
941
+ Suggested fixes to be used when rerolling is queued, but I'd
942
+ prefer _not_ squashing them myself.
943
+
944
+ Also, it may be too complex solution for the problem.
945
+ cf. <20171204171308.GA13332@sigill.intra.peff.net>
946
+
947
+
948
+* jk/drop-ancient-curl (2017-08-09) 5 commits
949
+ - http: #error on too-old curl
950
+ - curl: remove ifdef'd code never used with curl >=7.19.4
951
+ - http: drop support for curl < 7.19.4
952
+ - http: drop support for curl < 7.16.0
953
+ - http: drop support for curl < 7.11.1
954
+
955
+ Some code in http.c that has bitrot is being removed.
956
+
957
+ Expecting a reroll.
958
+
959
+
960
+* mk/use-size-t-in-zlib (2017-08-10) 1 commit
961
+ . zlib.c: use size_t for size
962
+
963
+ The wrapper to call into zlib followed our long tradition to use
964
+ "unsigned long" for sizes of regions in memory, which have been
965
+ updated to use "size_t".
966
+
967
+ Needs resurrecting by making sure the fix is good and still applies
968
+ (or adjusted to today's codebase).
969
+
970
+--------------------------------------------------
971
+[Cooking]
972
+
973
+* ld/p4-unshelve (2018-05-16) 1 commit
974
+ - git-p4: add unshelve command
975
+
976
+ "git p4" learned to "unshelve" shelved commit from P4.
977
+
978
+ Will merge to 'next'.
979
+
980
+
981
+* pc/submodule-helper-foreach (2018-05-11) 4 commits
982
+ - submodule: port submodule subcommand 'foreach' from shell to C
983
+ - submodule foreach: document variable '$displaypath'
984
+ - submodule foreach: document '$sm_path' instead of '$path'
985
+ - submodule foreach: correct '$path' in nested submodules from a subdirectory
986
+
987
+ The bulk of "git submodule foreach" has been rewritten in C.
988
+
989
+ Will merge to and cook in 'next'.
990
+
991
+
992
+* tb/test-apfs-utf8-normalization (2018-05-02) 1 commit
993
+ (merged to 'next' on 2018-05-16 at feabe72b42)
994
+ + test: correct detection of UTF8_NFD_TO_NFC for APFS
995
+
996
+ A test to see if the filesystem normalizes UTF-8 filename has been
997
+ updated to check what we need to know in a more direct way, i.e. a
998
+ path created in NFC form can be accessed with NFD form (or vice
999
+ versa) to cope with APFS as well as HFS.
1000
+
1001
+ Will merge to 'master'.
1002
+
1003
+
1004
+* ab/get-short-oid (2018-05-11) 5 commits
1005
+ - get_short_oid: sort ambiguous objects by type, then SHA-1
1006
+ - sha1-name.c: move around the collect_ambiguous() function
1007
+ - git-p4: change "commitish" typo to "committish"
1008
+ - sha1-array.h: align function arguments
1009
+ - sha1-name.c: remove stray newline
1010
+
1011
+ When a short hexadecimal string is used to name an object but there
1012
+ are multiple objects that share the string as the prefix of their
1013
+ names, the code lists these ambiguous candidates in a help message.
1014
+ These object names are now sorted according to their types for
1015
+ easier eyeballing.
1016
+
1017
+ Will merge to 'next'.
1018
+
1019
+
1020
+* ah/misc-doc-updates (2018-05-06) 7 commits
1021
+ (merged to 'next' on 2018-05-16 at e2e3b68a66)
1022
+ + doc: normalize [--options] to [options] in git-diff
1023
+ + doc: add note about shell quoting to revision.txt
1024
+ + git-svn: remove ''--add-author-from' for 'commit-diff'
1025
+ + doc: add '-d' and '-o' for 'git push'
1026
+ + doc: clarify ignore rules for git ls-files
1027
+ + doc: align 'diff --no-index' in text and synopsis
1028
+ + doc: improve formatting in githooks.txt
1029
+
1030
+ Misc doc fixes.
1031
+
1032
+ Will merge to 'master'.
1033
+
1034
+
1035
+* bc/format-patch-cover-no-attach (2018-05-02) 1 commit
1036
+ (merged to 'next' on 2018-05-16 at fa1ffeb3fe)
1037
+ + format-patch: make cover letters always text/plain
1038
+
1039
+ "git format-patch --cover --attach" created a broken MIME multipart
1040
+ message for the cover letter, which has been fixed by keeping the
1041
+ cover letter as plain text file.
1042
+
1043
+ Will merge to 'master'.
1044
+
1045
394
- Expecting a reroll.
395
- Suggested fixes to be used when rerolling is queued, but I'd
396
- prefer _not_ squashing them myself.
1046
+* bp/test-drop-caches (2018-05-04) 1 commit
1047
+ (merged to 'next' on 2018-05-16 at 0e40ab2408)
1048
+ + test-drop-caches: simplify delay loading of NtSetSystemInformation
1049
398
- Also, it may be too complex solution for the problem.
399
- cf. <20171204171308.GA13332@sigill.intra.peff.net>
1050
+ Code simplification.
1051
1052
+ Will merge to 'master'.
1053
402
-* jk/drop-ancient-curl (2017-08-09) 5 commits
403
- - http: #error on too-old curl
404
- - curl: remove ifdef'd code never used with curl >=7.19.4
405
- - http: drop support for curl < 7.19.4
406
- - http: drop support for curl < 7.16.0
407
- - http: drop support for curl < 7.11.1
1054
409
- Some code in http.c that has bitrot is being removed.
1055
+* cc/perf-bisect (2018-05-06) 1 commit
1056
+ (merged to 'next' on 2018-05-16 at 5a078a2fdf)
1057
+ + perf/bisect_run_script: disable codespeed
1058
411
- Expecting a reroll.
1059
+ Performance test updates.
1060
1061
+ Will merge to 'master'.
1062
414
-* mk/use-size-t-in-zlib (2017-08-10) 1 commit
415
- . zlib.c: use size_t for size
1063
417
- The wrapper to call into zlib followed our long tradition to use
418
- "unsigned long" for sizes of regions in memory, which have been
419
- updated to use "size_t".
1064
+* cf/submodule-progress-dissociate (2018-05-04) 3 commits
1065
+ - submodule: add --dissociate option to add/update commands
1066
+ - submodule: add --progress option to add command
1067
+ - submodule: clean up subsititions in script
1068
421
- Needs resurrecting by making sure the fix is good and still applies
422
- (or adjusted to today's codebase).
1069
+ "git submodule update" and "git submodule add" supported the
1070
+ "--reference" option to borrow objects from a neighbouring local
1071
+ repository like "git clone" does, but lacked the more recent
1072
+ invention "--dissociate". Also "git submodule add" has been taught
1073
+ to take the "--progress" option.
1074
424
---------------------------------------------------
425
-[Cooking]
1075
+ Will merge to 'next'..
1076
+ "subsititions" needs to be typofixed ;-)
1077
+
1078
427
-* cc/perf-aggregate-unknown-option (2018-04-26) 1 commit
428
- - perf/aggregate: use Getopt::Long for option parsing
1079
430
- Perf-test helper updates.
1080
+* dd/send-email-reedit (2018-05-06) 1 commit
1081
+ - git-send-email: allow re-editing of message
1082
+
1083
+ "git send-email" can sometimes offer confirmation dialog "Send this
1084
+ email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action
1085
+ 'Edit' has been added to this dialog's choice.
1086
1087
Will merge to 'next'.
1088
1089
435
-* ab/perl-python-attrs (2018-04-27) 3 commits
436
- - .gitattributes: add a diff driver for Python
437
- - .gitattributes: use the "perl" differ for Perl
438
- - .gitattributes: add *.pl extension for Perl
1090
+* em/status-rename-config (2018-05-06) 1 commit
1091
+ (merged to 'next' on 2018-05-16 at 33c1cc093c)
1092
+ + wt-status: use settings from git_diff_ui_config
1093
+ (this branch is used by bp/status-rename-config.)
1094
440
- We learned that our source files with ".pl" and ".py" extensions
441
- are Perl and Python files respectively and changes to them are
442
- better viewed as such with appropriate diff drivers.
1095
+ "git status" learned to pay attention to UI related diff
1096
+ configuration variables such as diff.renames.
1097
444
- Will merge to 'next'.
1098
+ Will merge to 'master'.
1099
1100
447
-* js/test-unset-prereq (2018-04-30) 1 commit
448
- - tests: introduce test_unset_prereq, for debugging
1101
+* js/branch-diff (2018-05-16) 19 commits
1102
+ - fixup! Add a function to solve least-cost assignment problems
1103
+ - completion: support branch-diff
1104
+ - branch-diff: add a man page
1105
+ - branch-diff --dual-color: work around bogus white-space warning
1106
+ - branch-diff: offer to dual-color the diffs
1107
+ - diff: add an internal option to dual-color diffs of diffs
1108
+ - color: provide inverted colors, too
1109
+ - branch-diff: use color for the commit pairs
1110
+ - branch-diff: add tests
1111
+ - branch-diff: do not show "function names" in hunk headers
1112
+ - branch-diff: adjust the output of the commit pairs
1113
+ - branch-diff: suppress the diff headers
1114
+ - branch-diff: indent the diffs just like tbdiff
1115
+ - branch-diff: right-trim commit messages
1116
+ - branch-diff: also show the diff between patches
1117
+ - branch-diff: improve the order of the shown commits
1118
+ - branch-diff: first rudimentary implementation
1119
+ - Add a new builtin: branch-diff
1120
+ - Add a function to solve least-cost assignment problems
1121
450
- Test debugging aid.
1122
+ "git tbdiff" that lets us compare individual patches in two
1123
+ iterations of a topic has been rewritten and made into a built-in
1124
+ command.
1125
452
- Will merge to 'next'.
453
- cf. <20180507115950.3887-1-szeder.dev@gmail.com>
1126
+ Expecting a reroll.
1127
+ cf. <nycvar.QRO.7.76.6.1805052351560.77@tvgsbejvaqbjf.bet>
1128
1129
456
-* fg/completion-external (2018-04-30) 1 commit
457
- - completion: load completion file for external subcommand
1130
+* js/sequencer-and-root-commits (2018-05-06) 6 commits
1131
+ - rebase --rebase-merges: root commits can be cousins, too
1132
+ - rebase --rebase-merges: a "merge" into a new root is a fast-forward
1133
+ - sequencer: allow introducing new root commits
1134
+ - rebase -i --root: let the sequencer handle even the initial part
1135
+ - sequencer: learn about the special "fake root commit" handling
1136
+ - sequencer: extract helper to update active_cache_tree
1137
+ (this branch uses js/rebase-recreate-merge.)
1138
459
- The command line completion mechanism (in contrib/) learned to load
460
- custom completion file for "git $command" where $command is a
461
- custom "git-$command" that the end user has on the $PATH when using
462
- newer version of bash.
1139
+ The implementation of "git rebase -i --root" has been updated to use
1140
+ the sequencer machinery more.
1141
1142
Will merge to 'next'.
465
- cf. <CAM0VKjkTu+OkLM3gvX73mWugxArCVmqRBmWGHiKuLiLRNkkNow@mail.gmail.com>
1143
1144
468
-* ma/double-dashes-in-docs (2018-04-18) 4 commits
469
- (merged to 'next' on 2018-04-25 at aaac2dc63c)
470
- + git-submodule.txt: quote usage in monospace, drop backslash
471
- + git-[short]log.txt: unify quoted standalone --
472
- + doc: convert [\--] to [--]
473
- + doc: convert \--option to --option
1145
+* js/use-bug-macro (2018-05-10) 5 commits
1146
+ - BUG_exit_code: fix sparse "symbol not declared" warning
1147
+ - Convert remaining die*(BUG) messages
1148
+ - Replace all die("BUG: ...") calls by BUG() ones
1149
+ - run-command: use BUG() to report bugs, not die()
1150
+ - test-tool: help verifying BUG() code paths
1151
475
- Doc formatting updates.
1152
+ Developer support update, by using BUG() macro instead of die() to
1153
+ mark codepaths that should not happen more clearly.
1154
477
- Will merge to 'master'.
1155
+ Will merge to 'next'.
1156
+ Further updates can come on top later.
1157
+ cf. <20180507090109.GA367@sigill.intra.peff.net>
1158
1159
480
-* sb/worktree-remove-opt-force (2018-04-18) 1 commit
481
- (merged to 'next' on 2018-04-25 at 0367d52a4b)
482
- + worktree: accept -f as short for --force for removal
1160
+* jt/partial-clone-proto-v2 (2018-05-06) 4 commits
1161
+ - {fetch,upload}-pack: support filter in protocol v2
1162
+ - upload-pack: read config when serving protocol v2
1163
+ - upload-pack: fix error message typo
1164
+ - Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2
1165
484
- "git worktree remove" learned that "-f" is a shorthand for
485
- "--force" option, just like for "git worktree add".
1166
+ Transfer protocol v2 learned to support the partial clone.
1167
487
- Will merge to 'master'.
1168
+ Will merge to 'next'.
1169
1170
490
-* sg/completion-clear-cached (2018-04-18) 1 commit
491
- (merged to 'next' on 2018-04-25 at 9178da6c3d)
492
- + completion: reduce overhead of clearing cached --options
1171
+* ma/doc-expand-tabs (2018-05-02) 1 commit
1172
+ - revisions.txt: expand tabs to spaces in diagram
1173
494
- The completion script (in contrib/) learned to clear cached list of
495
- command line options upon dot-sourcing it again in a more efficient
496
- way.
1174
+ Fix one instance of asciidoctor's misformatting by expanding a tab
1175
+ into spaces in a literal block.
1176
498
- Will merge to 'master'.
1177
+ Will discard. This approach is less maintainable than the approach
1178
+ taken by bc/asciidoctor-tab-width topic.
1179
1180
501
-* sg/doc-gc-quote-mismatch-fix (2018-04-18) 1 commit
502
- (merged to 'next' on 2018-04-25 at bc3d1abf45)
503
- + docs/git-gc: fix minor rendering issue
1181
+* nd/completion-aliasfiletype-typofix (2018-05-06) 1 commit
1182
+ (merged to 'next' on 2018-05-16 at 045e4ac190)
1183
+ + completion: fix misspelled config key aliasesfiletype
1184
505
- Doc formatting fix.
1185
+ Typofix.
1186
1187
Will merge to 'master'.
1188
1189
510
-* js/ident-date-fix (2018-04-19) 1 commit
511
- (merged to 'next' on 2018-04-30 at d50ec2f4c1)
512
- + sequencer: reset the committer date before commits
1190
+* nd/doc-header (2018-05-02) 1 commit
1191
+ (merged to 'next' on 2018-05-16 at 0599eb3ec9)
1192
+ + doc: keep first level section header in upper case
1193
514
- During a "rebase -i" session, the code could give older timestamp
515
- to commits created by later "pick" than an earlier "reword", which
516
- has been corrected.
1194
+ Doc formatting fix.
1195
1196
Will merge to 'master'.
1197
1198
521
-* nd/submodule-status-fix (2018-04-19) 1 commit
522
- (merged to 'next' on 2018-04-30 at 34d1f9ca83)
523
- + submodule--helper: don't print null in 'submodule status'
1199
+* nd/pack-unreachable-objects-doc (2018-05-06) 1 commit
1200
+ (merged to 'next' on 2018-05-16 at c4bf977564)
1201
+ + pack-objects: validation and documentation about unreachable options
1202
525
- "git submodule status" did not check the symbolic revision name it
526
- computed for the submodule HEAD is not the NULL, and threw it at
527
- printf routines, which has been corrected.
1203
+ Doc update.
1204
1205
Will merge to 'master'.
1206
1207
532
-* sa/send-email-dedup-some-headers (2018-04-19) 1 commit
533
- (merged to 'next' on 2018-04-30 at 2a1fd8217e)
534
- + send-email: avoid duplicate In-Reply-To/References
535
-
536
- When fed input that already has In-Reply-To: and/or References:
537
- headers and told to add the same information, "git send-email"
538
- added these headers separately, instead of appending to an existing
539
- one, which is a violation of the RFC. This has been corrected.
540
-
541
- Will merge to 'master'.
1208
+* sb/object-store-alloc (2018-05-16) 13 commits
1209
+ - alloc: allow arbitrary repositories for alloc functions
1210
+ - object: allow create_object to handle arbitrary repositories
1211
+ - object: allow grow_object_hash to handle arbitrary repositories
1212
+ - alloc: add repository argument to alloc_commit_index
1213
+ - alloc: add repository argument to alloc_report
1214
+ - alloc: add repository argument to alloc_object_node
1215
+ - alloc: add repository argument to alloc_tag_node
1216
+ - alloc: add repository argument to alloc_commit_node
1217
+ - alloc: add repository argument to alloc_tree_node
1218
+ - alloc: add repository argument to alloc_blob_node
1219
+ - object: add repository argument to grow_object_hash
1220
+ - object: add repository argument to create_object
1221
+ - repository: introduce parsed objects field
1222
+ (this branch is used by sb/object-store-grafts; uses sb/oid-object-info.)
1223
1224
+ The conversion to pass "the_repository" and then "a_repository"
1225
+ throughout the object access API continues.
1226
544
-* tg/demote-stash-save-in-completion (2018-04-20) 2 commits
545
- (merged to 'next' on 2018-04-30 at 93d0af5375)
546
- + completion: make stash -p and alias for stash push -p
547
- + completion: stop showing 'save' for stash by default
1227
549
- The command line completion (in contrib/) has been taught that "git
550
- stash save" has been deprecated ("git stash push" is the preferred
551
- spelling in the new world) and does not offer it as a possible
552
- completion candidate when "git stash push" can be.
1228
+* tb/grep-column (2018-05-14) 7 commits
1229
+ - contrib/git-jump/git-jump: jump to match column in addition to line
1230
+ - grep.c: add configuration variables to show matched option
1231
+ - builtin/grep.c: add '--column' option to 'git-grep(1)'
1232
+ - grep.c: display column number of first match
1233
+ - grep.[ch]: extend grep_opt to allow showing matched column
1234
+ - grep.c: expose matched column in match_line()
1235
+ - Documentation/config.txt: camel-case lineNumber for consistency
1236
+ (this branch is used by tb/grep-only-matching.)
1237
554
- Will merge to 'master'.
1238
+ "git grep" learned the "--column" option that gives not just the
1239
+ line number but the column number of the hit.
1240
1241
557
-* tz/doc-git-urls-reference (2018-04-20) 1 commit
558
- (merged to 'next' on 2018-04-30 at 39926c99fd)
559
- + doc/clone: update caption for GIT URLS cross-reference
1242
+* bc/asciidoctor-tab-width (2018-05-07) 2 commits
1243
+ (merged to 'next' on 2018-05-16 at be2a42c473)
1244
+ + Documentation: render revisions correctly under Asciidoctor
1245
+ + Documentation: use 8-space tabs with Asciidoctor
1246
561
- Doc fix.
1247
+ Asciidoctor gives a reasonable imitation for AsciiDoc, but does not
1248
+ render illustration in a literal block correctly when indented with
1249
+ HT by default. The problem is fixed by forcing 8-space tabs.
1250
1251
Will merge to 'master'.
1252
1253
566
-* js/deprecate-grafts (2018-04-30) 12 commits
567
- - Remove obsolete script to convert grafts to replace refs
568
- - technical/shallow: describe why shallow cannot use replace refs
569
- - technical/shallow: stop referring to grafts
570
- - filter-branch: stop suggesting to use grafts
571
- - Deprecate support for .git/info/grafts
572
- - Add a test for `git replace --convert-graft-file`
573
- - replace: introduce --convert-graft-file
574
- - replace: prepare create_graft() for converting graft files wholesale
575
- - replace: "libify" create_graft() and callees
576
- - replace: avoid using die() to indicate a bug
577
- - commit: Let the callback of for_each_mergetag return on error
578
- - argv_array: offer to split a string by whitespace
579
-
580
- The functionality of "$GIT_DIR/info/grafts" has been superseded by
581
- the "refs/replace/" mechanism for some time now, but the internal
582
- code had support for it in many places, which has been cleaned up
583
- in order to drop support of the "grafts" mechanism.
1254
+* bc/mailmap-self (2018-05-08) 1 commit
1255
+ (merged to 'next' on 2018-05-16 at a009c64bd2)
1256
+ + mailmap: update brian m. carlson's email address
1257
585
- Will merge to 'next'.
1258
+ Will merge to 'master'.
1259
1260
588
-* js/rebase-i-clean-msg-after-fixup-continue (2018-05-02) 4 commits
589
- - rebase --skip: clean up commit message after a failed fixup/squash
590
- - sequencer: always commit without editing when asked for
591
- - rebase -i: Handle "combination of <n> commits" with GETTEXT_POISON
592
- - rebase -i: demonstrate bugs with fixup!/squash! commit messages
1261
+* cc/perf-aggregate-unknown-option (2018-04-26) 1 commit
1262
+ (merged to 'next' on 2018-05-08 at db7d2870f8)
1263
+ + perf/aggregate: use Getopt::Long for option parsing
1264
594
- "git rebase -i" sometimes left intermediate "# This is a
595
- combination of N commits" message meant for the human consumption
596
- inside an editor in the final result in certain corner cases, which
597
- has been fixed.
1265
+ Perf-test helper updates.
1266
599
- Will merge to 'next'.
1267
+ Will merge to 'master'.
1268
1269
602
-* ma/fast-export-skip-merge-fix (2018-04-21) 1 commit
603
- (merged to 'next' on 2018-04-30 at f7fca02ab1)
604
- + fast-export: fix regression skipping some merge-commits
1270
+* ab/perl-python-attrs (2018-04-27) 3 commits
1271
+ (merged to 'next' on 2018-05-08 at b440e9bbb9)
1272
+ + .gitattributes: add a diff driver for Python
1273
+ + .gitattributes: use the "perl" differ for Perl
1274
+ + .gitattributes: add *.pl extension for Perl
1275
606
- "git fast-export" had a regression in v2.15.0 era where it skipped
607
- some merge commits in certain cases, which has been corrected.
1276
+ We learned that our source files with ".pl" and ".py" extensions
1277
+ are Perl and Python files respectively and changes to them are
1278
+ better viewed as such with appropriate diff drivers.
1279
1280
Will merge to 'master'.
1281
1282
612
-* bw/server-options (2018-04-24) 4 commits
613
- - fetch: send server options when using protocol v2
614
- - ls-remote: send server options when using protocol v2
615
- - serve: introduce the server-option capability
616
- - Merge branch 'bw/protocol-v2' into HEAD
617
- (this branch uses bw/protocol-v2; is tangled with jt/partial-clone-proto-v2.)
1283
+* js/test-unset-prereq (2018-04-30) 1 commit
1284
+ (merged to 'next' on 2018-05-08 at 3aecbf25a3)
1285
+ + tests: introduce test_unset_prereq, for debugging
1286
619
- The transport protocol v2 is getting updated further.
1287
+ Test debugging aid.
1288
621
- Will merge to 'next'.
1289
+ Will merge to 'master'.
1290
+ cf. <20180507115950.3887-1-szeder.dev@gmail.com>
1291
1292
624
-* jc/parseopt-expiry-errors (2018-04-23) 2 commits
625
- (merged to 'next' on 2018-04-30 at 637085f3d8)
626
- + parseopt: handle malformed --expire arguments more nicely
627
- + gc: do not upcase error message shown with die()
1293
+* fg/completion-external (2018-05-07) 1 commit
1294
+ (merged to 'next' on 2018-05-16 at 5d83f92caf)
1295
+ + completion: load completion file for external subcommand
1296
629
- "git gc --prune=nonsense" spent long time repacking and then
630
- silently failed when underlying "git prune --expire=nonsense"
631
- failed to parse its command line. This has been corrected.
1297
+ The command line completion mechanism (in contrib/) learned to load
1298
+ custom completion file for "git $command" where $command is a
1299
+ custom "git-$command" that the end user has on the $PATH when using
1300
+ newer version of bash.
1301
1302
Will merge to 'master'.
1303
+ cf. <CAM0VKjkTu+OkLM3gvX73mWugxArCVmqRBmWGHiKuLiLRNkkNow@mail.gmail.com>
1304
1305
636
-* js/colored-push-errors (2018-04-24) 4 commits
637
- (merged to 'next' on 2018-04-30 at 31076c52a2)
638
- + config: document the settings to colorize push errors/hints
639
- + push: test to verify that push errors are colored
640
- + push: colorize errors
641
- + color: introduce support for colorizing stderr
1306
+* js/deprecate-grafts (2018-04-30) 12 commits
1307
+ (merged to 'next' on 2018-05-08 at 1d7b31d179)
1308
+ + Remove obsolete script to convert grafts to replace refs
1309
+ + technical/shallow: describe why shallow cannot use replace refs
1310
+ + technical/shallow: stop referring to grafts
1311
+ + filter-branch: stop suggesting to use grafts
1312
+ + Deprecate support for .git/info/grafts
1313
+ + Add a test for `git replace --convert-graft-file`
1314
+ + replace: introduce --convert-graft-file
1315
+ + replace: prepare create_graft() for converting graft files wholesale
1316
+ + replace: "libify" create_graft() and callees
1317
+ + replace: avoid using die() to indicate a bug
1318
+ + commit: Let the callback of for_each_mergetag return on error
1319
+ + argv_array: offer to split a string by whitespace
1320
643
- Error messages from "git push" can be painted for more visibility.
1321
+ The functionality of "$GIT_DIR/info/grafts" has been superseded by
1322
+ the "refs/replace/" mechanism for some time now, but the internal
1323
+ code had support for it in many places, which has been cleaned up
1324
+ in order to drop support of the "grafts" mechanism.
1325
1326
Will merge to 'master'.
1327
1328
648
-* js/runtime-prefix (2018-04-24) 8 commits
649
- (merged to 'next' on 2018-04-30 at c6cfccf40e)
650
- + Avoid multiple PREFIX definitions
651
- + git_setup_gettext: plug memory leak
652
- + gettext: avoid initialization if the locale dir is not present
653
- (merged to 'next' on 2018-04-17 at a69aaa7a22)
654
- + mingw/msvc: use the new-style RUNTIME_PREFIX helper
655
- + exec_cmd: provide a new-style RUNTIME_PREFIX helper for Windows
656
- + exec_cmd: RUNTIME_PREFIX on some POSIX systems
657
- + Makefile: add Perl runtime prefix support
658
- + Makefile: generate Perl header from template file
659
- (this branch is tangled with dj/runtime-prefix.)
1329
+* js/rebase-i-clean-msg-after-fixup-continue (2018-05-02) 4 commits
1330
+ (merged to 'next' on 2018-05-08 at 7e684c153d)
1331
+ + rebase --skip: clean up commit message after a failed fixup/squash
1332
+ + sequencer: always commit without editing when asked for
1333
+ + rebase -i: Handle "combination of <n> commits" with GETTEXT_POISON
1334
+ + rebase -i: demonstrate bugs with fixup!/squash! commit messages
1335
+
1336
+ "git rebase -i" sometimes left intermediate "# This is a
1337
+ combination of N commits" message meant for the human consumption
1338
+ inside an editor in the final result in certain corner cases, which
1339
+ has been fixed.
1340
1341
Will merge to 'master'.
1342
1343
664
-* ma/http-walker-no-partial (2018-04-24) 2 commits
665
- (merged to 'next' on 2018-04-30 at 4582c99ba8)
666
- + walker: drop fields of `struct walker` which are always 1
667
- + http-fetch: make `-a` standard behaviour
1344
+* bw/server-options (2018-04-24) 4 commits
1345
+ (merged to 'next' on 2018-05-08 at a18ce56f3c)
1346
+ + fetch: send server options when using protocol v2
1347
+ + ls-remote: send server options when using protocol v2
1348
+ + serve: introduce the server-option capability
1349
+ + Merge branch 'bw/protocol-v2' into HEAD
1350
669
- "git http-fetch" (deprecated) had an optional and experimental
670
- "feature" to fetch only commits and/or trees, which nobody used.
671
- This has been removed.
1351
+ The transport protocol v2 is getting updated further.
1352
1353
Will merge to 'master'.
1354
@@ -719,409 +1399,231 @@ of the repositories listed at
1399
1400
Conversion from uchar[20] to struct object_id continues.
1401
1402
+ Will merge to 'next'.
1403
+
1404
1405
* sb/oid-object-info (2018-04-26) 9 commits
724
- - cache.h: allow oid_object_info to handle arbitrary repositories
725
- - packfile: add repository argument to cache_or_unpack_entry
726
- - packfile: add repository argument to unpack_entry
727
- - packfile: add repository argument to read_object
728
- - packfile: add repository argument to packed_object_info
729
- - packfile: add repository argument to packed_to_object_type
730
- - packfile: add repository argument to retry_bad_packed_offset
731
- - cache.h: add repository argument to oid_object_info
732
- - cache.h: add repository argument to oid_object_info_extended
733
- (this branch is used by sb/object-store-alloc; uses sb/object-store-replace.)
1406
+ (merged to 'next' on 2018-05-08 at f3c08f298e)
1407
+ + cache.h: allow oid_object_info to handle arbitrary repositories
1408
+ + packfile: add repository argument to cache_or_unpack_entry
1409
+ + packfile: add repository argument to unpack_entry
1410
+ + packfile: add repository argument to read_object
1411
+ + packfile: add repository argument to packed_object_info
1412
+ + packfile: add repository argument to packed_to_object_type
1413
+ + packfile: add repository argument to retry_bad_packed_offset
1414
+ + cache.h: add repository argument to oid_object_info
1415
+ + cache.h: add repository argument to oid_object_info_extended
1416
+ (this branch is used by sb/object-store-alloc and sb/object-store-grafts.)
1417
1418
The codepath around object-info API has been taught to take the
1419
repository object (which in turn tells the API which object store
1420
the objects are to be located).
1421
739
- Will merge to 'next'.
1422
+ Will merge to 'master'.
1423
1424
1425
* en/unpack-trees-split-index-fix (2018-05-02) 1 commit
743
- - unpack_trees: fix breakage when o->src_index != o->dst_index
1426
+ (merged to 'next' on 2018-05-16 at 1adff065b2)
1427
+ + unpack_trees: fix breakage when o->src_index != o->dst_index
1428
1429
The split-index feature had a long-standing and dormant bug in
1430
certain use of the in-core merge machinery, which has been fixed.
1431
748
- Will merge to 'next'.
1432
+ Will merge to 'master'.
1433
cf. <CACsJy8CeDhrT9GXe9q5gqsAeq_sSQ8jyF2nMOFxzjwKtE31oPQ@mail.gmail.com>
1434
1435
752
-* bp/merge-rename-config (2018-05-04) 3 commits
1436
+* bp/merge-rename-config (2018-05-08) 3 commits
1437
- merge: pass aggressive when rename detection is turned off
1438
- merge: add merge.renames config setting
1439
- merge: update documentation for {merge,diff}.renameLimit
1440
(this branch uses en/rename-directory-detection-reboot.)
1441
1442
+ With merge.renames configuration set to false, the recursive merge
1443
+ strategy can be told not to spend cycles trying to find renamed
1444
+ paths and merge them accordingly.
1445
+
1446
+ Will merge to 'next'.
1447
+
1448
1449
* en/git-debugger (2018-04-25) 1 commit
760
- - Make running git under other debugger-like programs easy
1450
+ (merged to 'next' on 2018-05-08 at 73369cd1e5)
1451
+ + Make running git under other debugger-like programs easy
1452
1453
Dev support.
1454
764
- Will merge to 'next'.
1455
+ Will merge to 'master'.
1456
1457
1458
* js/no-pager-shorthand (2018-05-04) 1 commit
768
- - git: add -P as a short option for --no-pager
1459
+ (merged to 'next' on 2018-05-08 at 10e6031dd1)
1460
+ + git: add -P as a short option for --no-pager
1461
1462
"git --no-pager cmd" did not have short-and-sweet single letter
1463
option. Now it does.
1464
773
- Will merge to 'next'.
1465
+ Will merge to 'master'.
1466
1467
1468
* sb/diff-color-move-more (2018-04-25) 7 commits
1469
- diff.c: add --color-moved-ignore-space-delta option
1470
- diff.c: decouple white space treatment from move detection algorithm
779
- - diff.c: add a blocks mode for moved code detection
780
- - diff.c: adjust hash function signature to match hashmap expectation
781
- - diff.c: do not pass diff options as keydata to hashmap
782
- - xdiff/xdiffi.c: remove unneeded function declarations
783
- - xdiff/xdiff.h: remove unused flags
784
-
785
- "git diff --color-moved" feature has further been tweaked.
786
-
787
-
788
-* so/glossary-ancestor (2018-04-17) 1 commit
789
- (merged to 'next' on 2018-04-25 at 0a849fee00)
790
- + glossary: substitute "ancestor" for "direct ancestor" in 'push' description.
791
-
792
- Docfix.
793
-
794
- Will merge to 'master'.
795
-
796
-
797
-* bt/gpg-interface (2018-04-16) 7 commits
798
- (merged to 'next' on 2018-04-30 at 50c507b7d8)
799
- + gpg-interface: find the last gpg signature line
800
- + gpg-interface: extract gpg line matching helper
801
- + gpg-interface: fix const-correctness of "eol" pointer
802
- + gpg-interface: use size_t for signature buffer size
803
- + gpg-interface: modernize function declarations
804
- + gpg-interface: handle bool user.signingkey
805
- + t7004: fix mistaken tag name
806
-
807
- What is queued here is only the obviously correct and
808
- uncontroversial code clean-up part, which is an earlier 7 patches,
809
- of a larger series.
810
-
811
- The remainder that is not queued introduces a few configuration
812
- variables to deal with e-signature backends with different
813
- signature format.
814
-
815
- Will merge to 'master'.
816
-
817
-
818
-* ds/generation-numbers (2018-05-02) 11 commits
819
- - commit-graph.txt: update design document
820
- - merge: check config before loading commits
821
- - commit: use generation number in remove_redundant()
822
- - commit: add short-circuit to paint_down_to_common()
823
- - commit: use generation numbers for in_merge_bases()
824
- - ref-filter: use generation number for --contains
825
- - commit-graph: always load commit-graph information
826
- - commit: use generations in paint_down_to_common()
827
- - commit-graph: compute generation numbers
828
- - commit: add generation number to struct commmit
829
- - ref-filter: fix outdated comment on in_commit_list
830
- (this branch uses ds/commit-graph and ds/lazy-load-trees.)
831
-
832
- A recently added "commit-graph" datafile has learned to store
833
- pre-computed generation numbers to speed up the decisions to stop
834
- history traversal.
835
-
836
- Is this ready for 'next'?
837
-
838
-
839
-* en/rename-directory-detection-reboot (2018-04-25) 36 commits
840
- - merge-recursive: fix check for skipability of working tree updates
841
- - merge-recursive: make "Auto-merging" comment show for other merges
842
- - merge-recursive: fix remainder of was_dirty() to use original index
843
- - merge-recursive: fix was_tracked() to quit lying with some renamed paths
844
- - t6046: testcases checking whether updates can be skipped in a merge
845
- - merge-recursive: avoid triggering add_cacheinfo error with dirty mod
846
- - merge-recursive: move more is_dirty handling to merge_content
847
- - merge-recursive: improve add_cacheinfo error handling
848
- - merge-recursive: avoid spurious rename/rename conflict from dir renames
849
- - directory rename detection: new testcases showcasing a pair of bugs
850
- - merge-recursive: fix remaining directory rename + dirty overwrite cases
851
- - merge-recursive: fix overwriting dirty files involved in renames
852
- - merge-recursive: avoid clobbering untracked files with directory renames
853
- - merge-recursive: apply necessary modifications for directory renames
854
- - merge-recursive: when comparing files, don't include trees
855
- - merge-recursive: check for file level conflicts then get new name
856
- - merge-recursive: add computation of collisions due to dir rename & merging
857
- - merge-recursive: check for directory level conflicts
858
- - merge-recursive: add get_directory_renames()
859
- - merge-recursive: make a helper function for cleanup for handle_renames
860
- - merge-recursive: split out code for determining diff_filepairs
861
- - merge-recursive: make !o->detect_rename codepath more obvious
862
- - merge-recursive: fix leaks of allocated renames and diff_filepairs
863
- - merge-recursive: introduce new functions to handle rename logic
864
- - merge-recursive: move the get_renames() function
865
- - directory rename detection: tests for handling overwriting dirty files
866
- - directory rename detection: tests for handling overwriting untracked files
867
- - directory rename detection: miscellaneous testcases to complete coverage
868
- - directory rename detection: testcases exploring possibly suboptimal merges
869
- - directory rename detection: more involved edge/corner testcases
870
- - directory rename detection: testcases checking which side did the rename
871
- - directory rename detection: files/directories in the way of some renames
872
- - directory rename detection: partially renamed directory testcase/discussion
873
- - directory rename detection: testcases to avoid taking detection too far
874
- - directory rename detection: directory splitting testcases
875
- - directory rename detection: basic testcases
876
- (this branch is used by bp/merge-rename-config.)
877
-
878
- Rename detection logic in "diff" family that is used in "merge" has
879
- learned to guess when all of x/a, x/b and x/c have moved to z/a,
880
- z/b and z/c, it is likely that x/d added in the meantime would also
881
- want to move to z/d by taking the hint that the entire directory
882
- 'x' moved to 'z'. Incidentally, this avoids updating a file in the
883
- working tree after a (non-trivial) merge whose result matches what
884
- our side originally had.
885
-
886
- Will merge to 'next'.
887
-
888
-
889
-* nd/command-list (2018-04-30) 10 commits
890
- - completion: let git provide the completable command list
891
- - help: use command-list.txt for the source of guides
892
- - help: add "-a --verbose" to list all commands with synopsis
893
- - git: support --list-cmds=list-<category>
894
- - completion: implement and use --list-cmds=main,others
895
- - git.c: convert --list-*builtins to --list-cmds=*
896
- - Remove common-cmds.h
897
- - help: use command-list.h for common command list
898
- - generate-cmds.sh: export all commands to command-list.h
899
- - generate-cmds.sh: factor out synopsis extract code
900
-
901
- The list of commands with their various attributes were spread
902
- across a few places in the build procedure, but it now is getting a
903
- bit more consolidated to allow more automation.
904
-
905
- Is this ready for 'next'.
906
-
907
-
908
-* sb/object-store-replace (2018-04-12) 15 commits
909
- (merged to 'next' on 2018-04-25 at 9a213fb505)
910
- + replace-object: allow lookup_replace_object to handle arbitrary repositories
911
- + replace-object: allow do_lookup_replace_object to handle arbitrary repositories
912
- + replace-object: allow prepare_replace_object to handle arbitrary repositories
913
- + refs: allow for_each_replace_ref to handle arbitrary repositories
914
- + refs: store the main ref store inside the repository struct
915
- + replace-object: add repository argument to lookup_replace_object
916
- + replace-object: add repository argument to do_lookup_replace_object
917
- + replace-object: add repository argument to prepare_replace_object
918
- + refs: add repository argument to for_each_replace_ref
919
- + refs: add repository argument to get_main_ref_store
920
- + replace-object: check_replace_refs is safe in multi repo environment
921
- + replace-object: eliminate replace objects prepared flag
922
- + object-store: move lookup_replace_object to replace-object.h
923
- + replace-object: move replace_map to object store
924
- + replace_object: use oidmap
925
- (this branch is used by sb/object-store-alloc and sb/oid-object-info.)
926
-
927
- The effort to pass the repository in-core structure throughout the
928
- API continues. This round deals with the code that implements the
929
- refs/replace/ mechanism.
930
-
931
- Will merge to 'master'.
932
-
933
-
934
-* sg/complete-paths (2018-04-17) 11 commits
935
- - completion: fill COMPREPLY directly when completing paths
936
- - completion: improve handling quoted paths in 'git ls-files's output
937
- - completion: remove repeated dirnames with 'awk' during path completion
938
- - t9902-completion: ignore COMPREPLY element order in some tests
939
- - completion: use 'awk' to strip trailing path components
940
- - completion: let 'ls-files' and 'diff-index' filter matching paths
941
- - completion: improve handling quoted paths on the command line
942
- - completion: support completing non-ASCII pathnames
943
- - completion: simplify prefix path component handling during path completion
944
- - completion: move __git_complete_index_file() next to its helpers
945
- - t9902-completion: add tests demonstrating issues with quoted pathnames
946
-
947
- Command line completion (in contrib/) learned to complete pathnames
948
- for various commands better.
949
-
950
- Will merge to 'next'.
951
-
952
-
953
-* tq/t1510 (2018-04-17) 1 commit
954
- (merged to 'next' on 2018-04-25 at 5710c81979)
955
- + t1510-repo-setup.sh: remove useless mkdir
956
-
957
- Test cleanup.
958
-
959
- Will merge to 'master'.
960
-
961
-
962
-* sb/blame-color (2018-04-24) 3 commits
963
- - builtin/blame: add new coloring scheme config
964
- - builtin/blame: highlight recently changed lines
965
- - builtin/blame: dim uninteresting metadata lines
966
-
967
- "git blame" learns to unhighlight uninteresting metadata from the
968
- originating commit on lines that are the same as the previous one,
969
- and also paint lines in different colors depending on the age of
970
- the commit.
971
-
972
- Is this ready for 'next'?
973
-
974
-
975
-* ab/simplify-perl-makefile (2018-04-19) 2 commits
976
- (merged to 'next' on 2018-04-25 at 906cf21682)
977
- + Makefile: mark perllibdir as a .PHONY target
978
- (merged to 'next' on 2018-04-17 at 4448756934)
979
- + perl: fix installing modules from contrib
980
-
981
- Recent simplification of build procedure forgot a bit of tweak to
982
- the build procedure of contrib/mw-to-git/
983
-
984
- Will merge to 'master'.
985
-
986
-
987
-* ds/lazy-load-trees (2018-05-02) 6 commits
988
- (merged to 'next' on 2018-05-02 at d54016d9e3)
989
- + coccinelle: avoid wrong transformation suggestions from commit.cocci
990
- (merged to 'next' on 2018-04-25 at b90813f421)
991
- + commit-graph: lazy-load trees for commits
992
- + treewide: replace maybe_tree with accessor methods
993
- + commit: create get_commit_tree() method
994
- + treewide: rename tree to maybe_tree
995
- + Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees
996
- (this branch is used by ds/generation-numbers; uses ds/commit-graph.)
997
-
998
- The code has been taught to use the duplicated information stored
999
- in the commit-graph file to learn the tree object name for a commit
1000
- to avoid opening and parsing the commit object when it makes sense
1001
- to do so.
1002
-
1003
- Will merge to 'master'.
1004
-
1005
-
1006
-* ab/git-svn-get-record-typofix (2018-04-09) 1 commit
1007
- (merged to 'next' on 2018-04-30 at 23f875f6b9)
1008
- + git-svn: avoid warning on undef readline()
1009
-
1010
- "git svn" had a minor thinko/typo which has been fixed.
1011
-
1012
- Will merge to 'master'.
1013
-
1014
-
1015
-* hn/sort-ls-remote (2018-04-09) 1 commit
1016
- (merged to 'next' on 2018-04-30 at 244ca5d30a)
1017
- + ls-remote: create '--sort' option
1018
-
1019
- "git ls-remote" learned an option to allow sorting its output based
1020
- on the refnames being shown.
1021
-
1022
- Will merge to 'master'.
1023
-
1024
-
1025
-* js/empty-config-section-fix (2018-04-09) 15 commits
1026
- (merged to 'next' on 2018-04-25 at 1690df3e5f)
1027
- + git_config_set: reuse empty sections
1028
- + git config --unset: remove empty sections (in the common case)
1029
- + git_config_set: make use of the config parser's event stream
1030
- + git_config_set: do not use a state machine
1031
- + config_set_store: rename some fields for consistency
1032
- + config: avoid using the global variable `store`
1033
- + config: introduce an optional event stream while parsing
1034
- + t1300: `--unset-all` can leave an empty section behind (bug)
1035
- + t1300: add a few more hairy examples of sections becoming empty
1036
- + t1300: remove unreasonable expectation from TODO
1037
- + t1300: avoid relying on a bug
1038
- + config --replace-all: avoid extra line breaks
1039
- + t1300: demonstrate that --replace-all can "invent" newlines
1040
- + t1300: rename it to reflect that `repo-config` was deprecated
1041
- + git_config_set: fix off-by-two
1471
+ - diff.c: add a blocks mode for moved code detection
1472
+ - diff.c: adjust hash function signature to match hashmap expectation
1473
+ - diff.c: do not pass diff options as keydata to hashmap
1474
+ - xdiff/xdiffi.c: remove unneeded function declarations
1475
+ - xdiff/xdiff.h: remove unused flags
1476
1043
- "git config --unset a.b", when "a.b" is the last variable in an
1044
- otherwise empty section "a", left an empty section "a" behind, and
1045
- worse yet, a subsequent "git config a.c value" did not reuse that
1046
- empty shell and instead created a new one. These have been
1047
- (partially) corrected.
1477
+ "git diff --color-moved" feature has further been tweaked.
1478
1049
- Will merge to 'master'.
1479
+ Will merge to 'next'.
1480
1481
1052
-* nd/warn-more-for-devs (2018-04-16) 4 commits
1053
- (merged to 'next' on 2018-04-25 at 2978e61414)
1054
- + Makefile: add a DEVOPTS to get all of -Wextra
1055
- + Makefile: add a DEVOPTS to suppress -Werror under DEVELOPER
1056
- + Makefile: detect compiler and enable more warnings in DEVELOPER=1
1057
- + connect.c: mark die_initial_contact() NORETURN
1482
+* ds/generation-numbers (2018-05-02) 11 commits
1483
+ - commit-graph.txt: update design document
1484
+ - merge: check config before loading commits
1485
+ - commit: use generation number in remove_redundant()
1486
+ - commit: add short-circuit to paint_down_to_common()
1487
+ - commit: use generation numbers for in_merge_bases()
1488
+ - ref-filter: use generation number for --contains
1489
+ - commit-graph: always load commit-graph information
1490
+ - commit: use generations in paint_down_to_common()
1491
+ - commit-graph: compute generation numbers
1492
+ - commit: add generation number to struct commmit
1493
+ - ref-filter: fix outdated comment on in_commit_list
1494
+ (this branch is used by ds/commit-graph-lockfile-fix; uses ds/lazy-load-trees.)
1495
1059
- The build procedure "make DEVELOPER=YesPlease" learned to enable a
1060
- bit more warning options depending on the compiler used to help
1061
- developers more. There also is "make DEVOPTS=tokens" knob
1062
- available now, for those who want to help fixing warnings we
1063
- usually ignore, for example.
1496
+ A recently added "commit-graph" datafile has learned to store
1497
+ pre-computed generation numbers to speed up the decisions to stop
1498
+ history traversal.
1499
+
1500
+ Is this ready for 'next' with ds/commit-graph-lockfile-fix?
1501
+ A commit with triple 'm' needs its title amended, though.
1502
+
1503
+
1504
+* en/rename-directory-detection-reboot (2018-05-08) 36 commits
1505
+ (merged to 'next' on 2018-05-08 at be350ebc17)
1506
+ + merge-recursive: fix check for skipability of working tree updates
1507
+ + merge-recursive: make "Auto-merging" comment show for other merges
1508
+ + merge-recursive: fix remainder of was_dirty() to use original index
1509
+ + merge-recursive: fix was_tracked() to quit lying with some renamed paths
1510
+ + t6046: testcases checking whether updates can be skipped in a merge
1511
+ + merge-recursive: avoid triggering add_cacheinfo error with dirty mod
1512
+ + merge-recursive: move more is_dirty handling to merge_content
1513
+ + merge-recursive: improve add_cacheinfo error handling
1514
+ + merge-recursive: avoid spurious rename/rename conflict from dir renames
1515
+ + directory rename detection: new testcases showcasing a pair of bugs
1516
+ + merge-recursive: fix remaining directory rename + dirty overwrite cases
1517
+ + merge-recursive: fix overwriting dirty files involved in renames
1518
+ + merge-recursive: avoid clobbering untracked files with directory renames
1519
+ + merge-recursive: apply necessary modifications for directory renames
1520
+ + merge-recursive: when comparing files, don't include trees
1521
+ + merge-recursive: check for file level conflicts then get new name
1522
+ + merge-recursive: add computation of collisions due to dir rename & merging
1523
+ + merge-recursive: check for directory level conflicts
1524
+ + merge-recursive: add get_directory_renames()
1525
+ + merge-recursive: make a helper function for cleanup for handle_renames
1526
+ + merge-recursive: split out code for determining diff_filepairs
1527
+ + merge-recursive: make !o->detect_rename codepath more obvious
1528
+ + merge-recursive: fix leaks of allocated renames and diff_filepairs
1529
+ + merge-recursive: introduce new functions to handle rename logic
1530
+ + merge-recursive: move the get_renames() function
1531
+ + directory rename detection: tests for handling overwriting dirty files
1532
+ + directory rename detection: tests for handling overwriting untracked files
1533
+ + directory rename detection: miscellaneous testcases to complete coverage
1534
+ + directory rename detection: testcases exploring possibly suboptimal merges
1535
+ + directory rename detection: more involved edge/corner testcases
1536
+ + directory rename detection: testcases checking which side did the rename
1537
+ + directory rename detection: files/directories in the way of some renames
1538
+ + directory rename detection: partially renamed directory testcase/discussion
1539
+ + directory rename detection: testcases to avoid taking detection too far
1540
+ + directory rename detection: directory splitting testcases
1541
+ + directory rename detection: basic testcases
1542
+ (this branch is used by bp/merge-rename-config.)
1543
+
1544
+ Rename detection logic in "diff" family that is used in "merge" has
1545
+ learned to guess when all of x/a, x/b and x/c have moved to z/a,
1546
+ z/b and z/c, it is likely that x/d added in the meantime would also
1547
+ want to move to z/d by taking the hint that the entire directory
1548
+ 'x' moved to 'z'. A bug causing dirty files involved in a rename
1549
+ to be overwritten during merge has also been fixed as part of this
1550
+ work. Incidentally, this also avoids updating a file in the
1551
+ working tree after a (non-trivial) merge whose result matches what
1552
+ our side originally had.
1553
1554
Will merge to 'master'.
1555
1556
1068
-* sb/submodule-move-nested (2018-03-29) 6 commits
1069
- (merged to 'next' on 2018-04-25 at 86b177433a)
1070
- + submodule: fixup nested submodules after moving the submodule
1071
- + submodule-config: remove submodule_from_cache
1072
- + submodule-config: add repository argument to submodule_from_{name, path}
1073
- + submodule-config: allow submodule_free to handle arbitrary repositories
1074
- + grep: remove "repo" arg from non-supporting funcs
1075
- + submodule.h: drop declaration of connect_work_tree_and_git_dir
1557
+* nd/command-list (2018-05-10) 13 commits
1558
+ - completion: allow to customize the completable command list
1559
+ - completion: let git provide the completable command list
1560
+ - command-list.txt: documentation and guide line
1561
+ - help: use command-list.txt for the source of guides
1562
+ - help: add "-a --verbose" to list all commands with synopsis
1563
+ - git: support --list-cmds=list-<category>
1564
+ - completion: implement and use --list-cmds=main,others
1565
+ - git --list-cmds: collect command list in a string_list
1566
+ - git.c: convert --list-* to --list-cmds=*
1567
+ - Remove common-cmds.h
1568
+ - help: use command-list.h for common command list
1569
+ - generate-cmds.sh: export all commands to command-list.h
1570
+ - generate-cmds.sh: factor out synopsis extract code
1571
1077
- Moving a submodule that itself has submodule in it with "git mv"
1078
- forgot to make necessary adjustment to the nested sub-submodules;
1079
- now the codepath learned to recurse into the submodules.
1572
+ The list of commands with their various attributes were spread
1573
+ across a few places in the build procedure, but it now is getting a
1574
+ bit more consolidated to allow more automation.
1575
1081
- Will merge to 'master'.
1576
+ Will merge to 'next'.
1577
1578
1084
-* tb/config-type (2018-04-19) 2 commits
1085
- (merged to 'next' on 2018-04-25 at fe69e93c82)
1086
- + builtin/config.c: support `--type=<type>` as preferred alias for `--<type>`
1087
- + builtin/config.c: treat type specifiers singularly
1088
- (this branch is used by tb/config-default.)
1579
+* sg/complete-paths (2018-04-17) 11 commits
1580
+ (merged to 'next' on 2018-05-08 at 2a11444f90)
1581
+ + completion: fill COMPREPLY directly when completing paths
1582
+ + completion: improve handling quoted paths in 'git ls-files's output
1583
+ + completion: remove repeated dirnames with 'awk' during path completion
1584
+ + t9902-completion: ignore COMPREPLY element order in some tests
1585
+ + completion: use 'awk' to strip trailing path components
1586
+ + completion: let 'ls-files' and 'diff-index' filter matching paths
1587
+ + completion: improve handling quoted paths on the command line
1588
+ + completion: support completing non-ASCII pathnames
1589
+ + completion: simplify prefix path component handling during path completion
1590
+ + completion: move __git_complete_index_file() next to its helpers
1591
+ + t9902-completion: add tests demonstrating issues with quoted pathnames
1592
1090
- The "git config" command uses separate options e.g. "--int",
1091
- "--bool", etc. to specify what type the caller wants the value to
1092
- be interpreted as. A new "--type=<typename>" option has been
1093
- introduced, which would make it cleaner to define new types.
1593
+ Command line completion (in contrib/) learned to complete pathnames
1594
+ for various commands better.
1595
1596
Will merge to 'master'.
1597
1598
1098
-* tb/config-default (2018-04-23) 3 commits
1099
- (merged to 'next' on 2018-04-25 at 59bb6beb2a)
1100
- + builtin/config: introduce `color` type specifier
1101
- + config.c: introduce 'git_config_color' to parse ANSI colors
1102
- + builtin/config: introduce `--default`
1103
- (this branch uses tb/config-type.)
1599
+* sb/blame-color (2018-04-24) 3 commits
1600
+ - builtin/blame: add new coloring scheme config
1601
+ - builtin/blame: highlight recently changed lines
1602
+ - builtin/blame: dim uninteresting metadata lines
1603
1105
- "git config --get" learned the "--default" option, to help the
1106
- calling script. Building on top of the tb/config-type topic, the
1107
- "git config" learns "--type=color" type. Taken together, you can
1108
- do things like "git config --get foo.color --default blue" and get
1109
- the ANSI color sequence for the color given to foo.color variable,
1110
- or "blue" if the variable does not exist.
1604
+ "git blame" learns to unhighlight uninteresting metadata from the
1605
+ originating commit on lines that are the same as the previous one,
1606
+ and also paint lines in different colors depending on the age of
1607
+ the commit.
1608
1112
- Will merge to 'master'.
1609
+ Will merge to 'next'.
1610
1611
1115
-* ot/libify-get-ref-atom-value (2018-03-29) 6 commits
1116
- (merged to 'next' on 2018-04-25 at 056bcaa69c)
1117
- + ref-filter: libify get_ref_atom_value()
1118
- + ref-filter: add return value to parsers
1119
- + ref-filter: change parsing function error handling
1120
- + ref-filter: add return value && strbuf to handlers
1121
- + ref-filter: start adding strbufs with errors
1122
- + ref-filter: add shortcut to work with strbufs
1612
+* ds/lazy-load-trees (2018-05-02) 6 commits
1613
+ (merged to 'next' on 2018-05-02 at d54016d9e3)
1614
+ + coccinelle: avoid wrong transformation suggestions from commit.cocci
1615
+ (merged to 'next' on 2018-04-25 at b90813f421)
1616
+ + commit-graph: lazy-load trees for commits
1617
+ + treewide: replace maybe_tree with accessor methods
1618
+ + commit: create get_commit_tree() method
1619
+ + treewide: rename tree to maybe_tree
1620
+ + Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees
1621
+ (this branch is used by ds/commit-graph-lockfile-fix and ds/generation-numbers.)
1622
1124
- Code restructuring, in preparation for further work.
1623
+ The code has been taught to use the duplicated information stored
1624
+ in the commit-graph file to learn the tree object name for a commit
1625
+ to avoid opening and parsing the commit object when it makes sense
1626
+ to do so.
1627
1628
Will merge to 'master'.
1629
@@ -1140,6 +1642,7 @@ of the repositories listed at
1642
is used.
1643
1644
Will cook in 'next'.
1645
+ Perhaps merge to 'master' immediately after 2.18 release?
1646
1647
1648
* jk/branch-l-1-removal (2018-03-26) 1 commit
@@ -1161,70 +1664,41 @@ of the repositories listed at
1664
Will keep in 'pu'.
1665
1666
1164
-* dj/runtime-prefix (2018-04-24) 7 commits
1165
- (merged to 'next' on 2018-04-25 at e7e635a70e)
1166
- + Makefile: quote $INSTLIBDIR when passing it to sed
1167
- + Makefile: remove unused @@PERLLIBDIR@@ substitution variable
1168
- (merged to 'next' on 2018-04-17 at a69aaa7a22)
1169
- + mingw/msvc: use the new-style RUNTIME_PREFIX helper
1170
- + exec_cmd: provide a new-style RUNTIME_PREFIX helper for Windows
1171
- + exec_cmd: RUNTIME_PREFIX on some POSIX systems
1172
- + Makefile: add Perl runtime prefix support
1173
- + Makefile: generate Perl header from template file
1174
- (this branch is tangled with js/runtime-prefix.)
1175
-
1176
- A build-time option has been added to allow Git to be told to refer
1177
- to its associated files relative to the main binary, in the same
1178
- way that has been possible on Windows for quite some time, for
1179
- Linux, BSDs and Darwin.
1180
-
1181
- Will merge to 'master'.
1182
-
1183
-
1184
-* ab/nuke-emacs-contrib (2018-04-16) 1 commit
1185
- (merged to 'next' on 2018-04-25 at 9b133d8a65)
1186
- + git{,-blame}.el: remove old bitrotting Emacs code
1187
-
1188
- The scripts in contrib/emacs/ have outlived their usefulness and
1189
- have been replaced with a stub that errors out and tells the user
1190
- there are replacements.
1191
-
1192
- Will merge to 'master'.
1193
-
1194
-
1667
* nd/pack-objects-pack-struct (2018-04-16) 15 commits
1196
- - ci: exercise the whole test suite with uncommon code in pack-objects
1197
- - pack-objects: reorder members to shrink struct object_entry
1198
- - pack-objects: shrink delta_size field in struct object_entry
1199
- - pack-objects: shrink size field in struct object_entry
1200
- - pack-objects: clarify the use of object_entry::size
1201
- - pack-objects: don't check size when the object is bad
1202
- - pack-objects: shrink z_delta_size field in struct object_entry
1203
- - pack-objects: refer to delta objects by index instead of pointer
1204
- - pack-objects: move in_pack out of struct object_entry
1205
- - pack-objects: move in_pack_pos out of struct object_entry
1206
- - pack-objects: use bitfield for object_entry::depth
1207
- - pack-objects: use bitfield for object_entry::dfs_state
1208
- - pack-objects: turn type and in_pack_type to bitfields
1209
- - pack-objects: a bit of document about struct object_entry
1210
- - read-cache.c: make $GIT_TEST_SPLIT_INDEX boolean
1668
+ (merged to 'next' on 2018-05-16 at 171459475d)
1669
+ + ci: exercise the whole test suite with uncommon code in pack-objects
1670
+ + pack-objects: reorder members to shrink struct object_entry
1671
+ + pack-objects: shrink delta_size field in struct object_entry
1672
+ + pack-objects: shrink size field in struct object_entry
1673
+ + pack-objects: clarify the use of object_entry::size
1674
+ + pack-objects: don't check size when the object is bad
1675
+ + pack-objects: shrink z_delta_size field in struct object_entry
1676
+ + pack-objects: refer to delta objects by index instead of pointer
1677
+ + pack-objects: move in_pack out of struct object_entry
1678
+ + pack-objects: move in_pack_pos out of struct object_entry
1679
+ + pack-objects: use bitfield for object_entry::depth
1680
+ + pack-objects: use bitfield for object_entry::dfs_state
1681
+ + pack-objects: turn type and in_pack_type to bitfields
1682
+ + pack-objects: a bit of document about struct object_entry
1683
+ + read-cache.c: make $GIT_TEST_SPLIT_INDEX boolean
1684
1685
"git pack-objects" needs to allocate tons of "struct object_entry"
1686
while doing its work, and shrinking its size helps the performance
1687
quite a bit.
1688
1216
- Will merge to 'next'.
1689
+ Will merge to 'master'.
1690
cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
1691
1692
1693
* nd/repack-keep-pack (2018-04-16) 7 commits
1221
- - pack-objects: show some progress when counting kept objects
1222
- - gc --auto: exclude base pack if not enough mem to "repack -ad"
1223
- - gc: handle a corner case in gc.bigPackThreshold
1224
- - gc: add gc.bigPackThreshold config
1225
- - gc: add --keep-largest-pack option
1226
- - repack: add --keep-pack option
1227
- - t7700: have closing quote of a test at the beginning of line
1694
+ (merged to 'next' on 2018-05-08 at ab906be358)
1695
+ + pack-objects: show some progress when counting kept objects
1696
+ + gc --auto: exclude base pack if not enough mem to "repack -ad"
1697
+ + gc: handle a corner case in gc.bigPackThreshold
1698
+ + gc: add gc.bigPackThreshold config
1699
+ + gc: add --keep-largest-pack option
1700
+ + repack: add --keep-pack option
1701
+ + t7700: have closing quote of a test at the beginning of line
1702
1703
"git gc" in a large repository takes a lot of time as it considers
1704
to repack all objects into one pack by default. The command has
@@ -1232,134 +1706,46 @@ of the repositories listed at
1706
marked with ".keep" so that it is left untouched while objects in
1707
other packs and loose ones are repacked.
1708
1235
- Will merge to 'next'.
1236
- cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
1237
-
1238
-
1239
-* ds/commit-graph (2018-04-11) 16 commits
1240
- (merged to 'next' on 2018-04-25 at 18af3d28d9)
1241
- + commit-graph: implement "--append" option
1242
- + commit-graph: build graph from starting commits
1243
- + commit-graph: read only from specific pack-indexes
1244
- + commit: integrate commit graph with commit parsing
1245
- + commit-graph: close under reachability
1246
- + commit-graph: add core.commitGraph setting
1247
- + commit-graph: implement git commit-graph read
1248
- + commit-graph: implement git-commit-graph write
1249
- + commit-graph: implement write_commit_graph()
1250
- + commit-graph: create git-commit-graph builtin
1251
- + graph: add commit graph design document
1252
- + commit-graph: add format document
1253
- + csum-file: refactor finalize_hashfile() method
1254
- + csum-file: rename hashclose() to finalize_hashfile()
1255
- + Merge branch 'jk/cached-commit-buffer' into HEAD
1256
- + Merge branch 'jt/binsearch-with-fanout' into HEAD
1257
- (this branch is used by ds/generation-numbers and ds/lazy-load-trees.)
1258
-
1259
- Precompute and store information necessary for ancestry traversal
1260
- in a separate file to optimize graph walking.
1261
-
1709
Will merge to 'master'.
1710
+ cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
1711
1712
1713
* tg/worktree-add-existing-branch (2018-04-30) 4 commits
1266
- - worktree: teach "add" to check out existing branches
1267
- - worktree: factor out dwim_branch function
1268
- - worktree: improve message when creating a new worktree
1269
- - worktree: remove extra members from struct add_opts
1714
+ (merged to 'next' on 2018-05-08 at 8b76505192)
1715
+ + worktree: teach "add" to check out existing branches
1716
+ + worktree: factor out dwim_branch function
1717
+ + worktree: improve message when creating a new worktree
1718
+ + worktree: remove extra members from struct add_opts
1719
1720
"git worktree add" learned to check out an existing branch.
1721
1273
- Will merge to 'next'.
1722
+ Will merge to 'master'.
1723
1724
1725
* js/rebase-recreate-merge (2018-04-26) 17 commits
1277
- - rebase -i --rebase-merges: add a section to the man page
1278
- - rebase -i: introduce --rebase-merges=[no-]rebase-cousins
1279
- - pull: accept --rebase=merges to recreate the branch topology
1280
- - rebase --rebase-merges: avoid "empty merges"
1281
- - sequencer: handle post-rewrite for merge commands
1282
- - sequencer: make refs generated by the `label` command worktree-local
1283
- - rebase --rebase-merges: add test for --keep-empty
1284
- - rebase: introduce the --rebase-merges option
1285
- - rebase-helper --make-script: introduce a flag to rebase merges
1286
- - sequencer: fast-forward `merge` commands, if possible
1287
- - sequencer: introduce the `merge` command
1288
- - sequencer: introduce new commands to reset the revision
1289
- - git-rebase--interactive: clarify arguments
1290
- - sequencer: offer helpful advice when a command was rescheduled
1291
- - sequencer: refactor how original todo list lines are accessed
1292
- - sequencer: make rearrange_squash() a bit more obvious
1293
- - sequencer: avoid using errno clobbered by rollback_lock_file()
1726
+ (merged to 'next' on 2018-05-16 at f1aeea2879)
1727
+ + rebase -i --rebase-merges: add a section to the man page
1728
+ + rebase -i: introduce --rebase-merges=[no-]rebase-cousins
1729
+ + pull: accept --rebase=merges to recreate the branch topology
1730
+ + rebase --rebase-merges: avoid "empty merges"
1731
+ + sequencer: handle post-rewrite for merge commands
1732
+ + sequencer: make refs generated by the `label` command worktree-local
1733
+ + rebase --rebase-merges: add test for --keep-empty
1734
+ + rebase: introduce the --rebase-merges option
1735
+ + rebase-helper --make-script: introduce a flag to rebase merges
1736
+ + sequencer: fast-forward `merge` commands, if possible
1737
+ + sequencer: introduce the `merge` command
1738
+ + sequencer: introduce new commands to reset the revision
1739
+ + git-rebase--interactive: clarify arguments
1740
+ + sequencer: offer helpful advice when a command was rescheduled
1741
+ + sequencer: refactor how original todo list lines are accessed
1742
+ + sequencer: make rearrange_squash() a bit more obvious
1743
+ + sequencer: avoid using errno clobbered by rollback_lock_file()
1744
(this branch is used by js/sequencer-and-root-commits.)
1745
1746
"git rebase" learned "--rebase-merges" to transplant the whole
1747
topology of commit graph elsewhere.
1748
1299
- Will merge to 'next'.
1300
-
1301
-
1302
-* bw/protocol-v2 (2018-03-15) 35 commits
1303
- (merged to 'next' on 2018-04-11 at 23ee234a2c)
1304
- + remote-curl: don't request v2 when pushing
1305
- + remote-curl: implement stateless-connect command
1306
- + http: eliminate "# service" line when using protocol v2
1307
- + http: don't always add Git-Protocol header
1308
- + http: allow providing extra headers for http requests
1309
- + remote-curl: store the protocol version the server responded with
1310
- + remote-curl: create copy of the service name
1311
- + pkt-line: add packet_buf_write_len function
1312
- + transport-helper: introduce stateless-connect
1313
- + transport-helper: refactor process_connect_service
1314
- + transport-helper: remove name parameter
1315
- + connect: don't request v2 when pushing
1316
- + connect: refactor git_connect to only get the protocol version once
1317
- + fetch-pack: support shallow requests
1318
- + fetch-pack: perform a fetch using v2
1319
- + upload-pack: introduce fetch server command
1320
- + push: pass ref prefixes when pushing
1321
- + fetch: pass ref prefixes when fetching
1322
- + ls-remote: pass ref prefixes when requesting a remote's refs
1323
- + transport: convert transport_get_remote_refs to take a list of ref prefixes
1324
- + transport: convert get_refs_list to take a list of ref prefixes
1325
- + connect: request remote refs using v2
1326
- + ls-refs: introduce ls-refs server command
1327
- + serve: introduce git-serve
1328
- + test-pkt-line: introduce a packet-line test helper
1329
- + protocol: introduce enum protocol_version value protocol_v2
1330
- + transport: store protocol version
1331
- + connect: discover protocol version outside of get_remote_heads
1332
- + connect: convert get_remote_heads to use struct packet_reader
1333
- + transport: use get_refs_via_connect to get refs
1334
- + upload-pack: factor out processing lines
1335
- + upload-pack: convert to a builtin
1336
- + pkt-line: add delim packet support
1337
- + pkt-line: allow peeking a packet line without consuming it
1338
- + pkt-line: introduce packet_read_with_status
1339
- (this branch is used by bw/server-options and jt/partial-clone-proto-v2.)
1340
-
1341
- The beginning of the next-gen transfer protocol.
1342
-
1343
- Will merge to 'master'.
1344
-
1345
-
1346
-* ls/checkout-encoding (2018-04-16) 10 commits
1347
- (merged to 'next' on 2018-04-25 at e0f8554b2a)
1348
- + convert: add round trip check based on 'core.checkRoundtripEncoding'
1349
- + convert: add tracing for 'working-tree-encoding' attribute
1350
- + convert: check for detectable errors in UTF encodings
1351
- + convert: add 'working-tree-encoding' attribute
1352
- + utf8: add function to detect a missing UTF-16/32 BOM
1353
- + utf8: add function to detect prohibited UTF-16/32 BOM
1354
- + utf8: teach same_encoding() alternative UTF encoding names
1355
- + strbuf: add a case insensitive starts_with()
1356
- + strbuf: add xstrdup_toupper()
1357
- + strbuf: remove unnecessary NUL assignment in xstrdup_tolower()
1358
-
1359
- The new "checkout-encoding" attribute can ask Git to convert the
1360
- contents to the specified encoding when checking out to the working
1361
- tree (and the other way around when checking in).
1362
-
1749
Will merge to 'master'.
1750
1751
--------------------------------------------------