What's cooking (2018/05 #03)
Junio C Hamano committed
May 23, 2018 at 16:06 UTC
7a516be37f6880caa6a4ed8fe2fe4e8ed51e8cd0
1 file changed
+818
-1161
whats-cooking.txt
+818
-1161
@@ -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, #02; Thu, 17)
4
-X-master-at: ccdcbd54c4475c2238b310f7113ab3075b5abc9c
5
-X-next-at: 5d83f92caf205e137a75902ff5658d2d82c898c5
3
+Subject: What's cooking in git.git (May 2018, #03; Wed, 23)
4
+X-master-at: e144d126d74f5d2702870ca9423743102eec6fcd
5
+X-next-at: 671052e690087fed435bbc7ce67a6a0cc77818e0
6
7
-What's cooking in git.git (May 2018, #02; Thu, 17)
7
+What's cooking in git.git (May 2018, #03; Wed, 23)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -20,801 +20,541 @@ of the repositories listed at
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.
23
+* ab/perl-python-attrs (2018-04-27) 3 commits
24
+ (merged to 'next' on 2018-05-08 at b440e9bbb9)
25
+ + .gitattributes: add a diff driver for Python
26
+ + .gitattributes: use the "perl" differ for Perl
27
+ + .gitattributes: add *.pl extension for Perl
28
183
- Will merge to 'master'.
29
+ We learned that our source files with ".pl" and ".py" extensions
30
+ are Perl and Python files respectively and changes to them are
31
+ better viewed as such with appropriate diff drivers.
32
33
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
34
+* ah/misc-doc-updates (2018-05-06) 7 commits
35
+ (merged to 'next' on 2018-05-16 at e2e3b68a66)
36
+ + doc: normalize [--options] to [options] in git-diff
37
+ + doc: add note about shell quoting to revision.txt
38
+ + git-svn: remove ''--add-author-from' for 'commit-diff'
39
+ + doc: add '-d' and '-o' for 'git push'
40
+ + doc: clarify ignore rules for git ls-files
41
+ + doc: align 'diff --no-index' in text and synopsis
42
+ + doc: improve formatting in githooks.txt
43
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.
44
+ Misc doc fixes.
45
46
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).
47
+* ao/config-api-doc (2018-05-11) 1 commit
48
+ (merged to 'next' on 2018-05-22 at a17d6dda92)
49
+ + doc: fix config API documentation about config_with_options
50
51
+ Doc update.
52
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
53
279
- Doc formatting updates.
54
+* bc/asciidoctor-tab-width (2018-05-07) 2 commits
55
+ (merged to 'next' on 2018-05-16 at be2a42c473)
56
+ + Documentation: render revisions correctly under Asciidoctor
57
+ + Documentation: use 8-space tabs with Asciidoctor
58
59
+ Asciidoctor gives a reasonable imitation for AsciiDoc, but does not
60
+ render illustration in a literal block correctly when indented with
61
+ HT by default. The problem is fixed by forcing 8-space tabs.
62
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
63
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.
64
+* bc/format-patch-cover-no-attach (2018-05-02) 1 commit
65
+ (merged to 'next' on 2018-05-16 at fa1ffeb3fe)
66
+ + format-patch: make cover letters always text/plain
67
68
+ "git format-patch --cover --attach" created a broken MIME multipart
69
+ message for the cover letter, which has been fixed by keeping the
70
+ cover letter as plain text file.
71
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
72
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.
73
+* bc/mailmap-self (2018-05-08) 1 commit
74
+ (merged to 'next' on 2018-05-16 at a009c64bd2)
75
+ + mailmap: update brian m. carlson's email address
76
77
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'
78
+* bp/test-drop-caches (2018-05-04) 1 commit
79
+ (merged to 'next' on 2018-05-16 at 0e40ab2408)
80
+ + test-drop-caches: simplify delay loading of NtSetSystemInformation
81
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
82
+ Code simplification.
83
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.
84
85
+* bw/server-options (2018-04-24) 4 commits
86
+ (merged to 'next' on 2018-05-08 at a18ce56f3c)
87
+ + fetch: send server options when using protocol v2
88
+ + ls-remote: send server options when using protocol v2
89
+ + serve: introduce the server-option capability
90
+ + Merge branch 'bw/protocol-v2' into HEAD
91
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
92
+ The transport protocol v2 is getting updated further.
93
332
- Code restructuring, in preparation for further work.
94
95
+* cc/perf-aggregate-unknown-option (2018-04-26) 1 commit
96
+ (merged to 'next' on 2018-05-08 at db7d2870f8)
97
+ + perf/aggregate: use Getopt::Long for option parsing
98
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
99
+ Perf-test helper updates.
100
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.
101
102
+* cc/perf-bisect (2018-05-06) 1 commit
103
+ (merged to 'next' on 2018-05-16 at 5a078a2fdf)
104
+ + perf/bisect_run_script: disable codespeed
105
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
106
+ Performance test updates.
107
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.
108
109
+* ds/lazy-load-trees (2018-05-02) 6 commits
110
+ (merged to 'next' on 2018-05-02 at d54016d9e3)
111
+ + coccinelle: avoid wrong transformation suggestions from commit.cocci
112
+ (merged to 'next' on 2018-04-25 at b90813f421)
113
+ + commit-graph: lazy-load trees for commits
114
+ + treewide: replace maybe_tree with accessor methods
115
+ + commit: create get_commit_tree() method
116
+ + treewide: rename tree to maybe_tree
117
+ + Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees
118
+ (this branch is used by ds/commit-graph-lockfile-fix and ds/generation-numbers.)
119
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
120
+ The code has been taught to use the duplicated information stored
121
+ in the commit-graph file to learn the tree object name for a commit
122
+ to avoid opening and parsing the commit object when it makes sense
123
+ to do so.
124
363
- "git worktree remove" learned that "-f" is a shorthand for
364
- "--force" option, just like for "git worktree add".
125
126
+* em/status-rename-config (2018-05-06) 1 commit
127
+ (merged to 'next' on 2018-05-16 at 33c1cc093c)
128
+ + wt-status: use settings from git_diff_ui_config
129
+ (this branch is used by bp/status-rename-config.)
130
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
131
+ "git status" learned to pay attention to UI related diff
132
+ configuration variables such as diff.renames.
133
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.
134
135
+* en/git-debugger (2018-04-25) 1 commit
136
+ (merged to 'next' on 2018-05-08 at 73369cd1e5)
137
+ + Make running git under other debugger-like programs easy
138
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
139
+ Dev support.
140
380
- Doc formatting fix.
141
142
+* en/rename-directory-detection-reboot (2018-05-08) 36 commits
143
+ (merged to 'next' on 2018-05-08 at be350ebc17)
144
+ + merge-recursive: fix check for skipability of working tree updates
145
+ + merge-recursive: make "Auto-merging" comment show for other merges
146
+ + merge-recursive: fix remainder of was_dirty() to use original index
147
+ + merge-recursive: fix was_tracked() to quit lying with some renamed paths
148
+ + t6046: testcases checking whether updates can be skipped in a merge
149
+ + merge-recursive: avoid triggering add_cacheinfo error with dirty mod
150
+ + merge-recursive: move more is_dirty handling to merge_content
151
+ + merge-recursive: improve add_cacheinfo error handling
152
+ + merge-recursive: avoid spurious rename/rename conflict from dir renames
153
+ + directory rename detection: new testcases showcasing a pair of bugs
154
+ + merge-recursive: fix remaining directory rename + dirty overwrite cases
155
+ + merge-recursive: fix overwriting dirty files involved in renames
156
+ + merge-recursive: avoid clobbering untracked files with directory renames
157
+ + merge-recursive: apply necessary modifications for directory renames
158
+ + merge-recursive: when comparing files, don't include trees
159
+ + merge-recursive: check for file level conflicts then get new name
160
+ + merge-recursive: add computation of collisions due to dir rename & merging
161
+ + merge-recursive: check for directory level conflicts
162
+ + merge-recursive: add get_directory_renames()
163
+ + merge-recursive: make a helper function for cleanup for handle_renames
164
+ + merge-recursive: split out code for determining diff_filepairs
165
+ + merge-recursive: make !o->detect_rename codepath more obvious
166
+ + merge-recursive: fix leaks of allocated renames and diff_filepairs
167
+ + merge-recursive: introduce new functions to handle rename logic
168
+ + merge-recursive: move the get_renames() function
169
+ + directory rename detection: tests for handling overwriting dirty files
170
+ + directory rename detection: tests for handling overwriting untracked files
171
+ + directory rename detection: miscellaneous testcases to complete coverage
172
+ + directory rename detection: testcases exploring possibly suboptimal merges
173
+ + directory rename detection: more involved edge/corner testcases
174
+ + directory rename detection: testcases checking which side did the rename
175
+ + directory rename detection: files/directories in the way of some renames
176
+ + directory rename detection: partially renamed directory testcase/discussion
177
+ + directory rename detection: testcases to avoid taking detection too far
178
+ + directory rename detection: directory splitting testcases
179
+ + directory rename detection: basic testcases
180
+ (this branch is used by bp/merge-rename-config and ma/unpack-trees-free-msgs.)
181
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.
182
+ Rename detection logic in "diff" family that is used in "merge" has
183
+ learned to guess when all of x/a, x/b and x/c have moved to z/a,
184
+ z/b and z/c, it is likely that x/d added in the meantime would also
185
+ want to move to z/d by taking the hint that the entire directory
186
+ 'x' moved to 'z'. A bug causing dirty files involved in a rename
187
+ to be overwritten during merge has also been fixed as part of this
188
+ work. Incidentally, this also avoids updating a file in the
189
+ working tree after a (non-trivial) merge whose result matches what
190
+ our side originally had.
191
387
- Docfix.
192
193
+* en/unpack-trees-split-index-fix (2018-05-02) 1 commit
194
+ (merged to 'next' on 2018-05-16 at 1adff065b2)
195
+ + unpack_trees: fix breakage when o->src_index != o->dst_index
196
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.)
197
+ The split-index feature had a long-standing and dormant bug in
198
+ certain use of the in-core merge machinery, which has been fixed.
199
+ cf. <CACsJy8CeDhrT9GXe9q5gqsAeq_sSQ8jyF2nMOFxzjwKtE31oPQ@mail.gmail.com>
200
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.
201
202
+* fg/completion-external (2018-05-07) 1 commit
203
+ (merged to 'next' on 2018-05-16 at 5d83f92caf)
204
+ + completion: load completion file for external subcommand
205
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.)
206
+ The command line completion mechanism (in contrib/) learned to load
207
+ custom completion file for "git $command" where $command is a
208
+ custom "git-$command" that the end user has on the $PATH when using
209
+ newer version of bash.
210
+ cf. <CAM0VKjkTu+OkLM3gvX73mWugxArCVmqRBmWGHiKuLiLRNkkNow@mail.gmail.com>
211
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.
212
213
+* hn/sort-ls-remote (2018-05-14) 1 commit
214
+ (merged to 'next' on 2018-05-16 at 64336850f2)
215
+ + t5512: run git fetch inside test
216
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
217
+ Hotfix.
218
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.
219
220
+* jk/apply-p-doc (2018-05-11) 1 commit
221
+ (merged to 'next' on 2018-05-22 at 48f280346b)
222
+ + apply: clarify "-p" documentation
223
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
224
+ Doc update.
225
432
- Test cleanup.
226
227
+* js/deprecate-grafts (2018-04-30) 12 commits
228
+ (merged to 'next' on 2018-05-08 at 1d7b31d179)
229
+ + Remove obsolete script to convert grafts to replace refs
230
+ + technical/shallow: describe why shallow cannot use replace refs
231
+ + technical/shallow: stop referring to grafts
232
+ + filter-branch: stop suggesting to use grafts
233
+ + Deprecate support for .git/info/grafts
234
+ + Add a test for `git replace --convert-graft-file`
235
+ + replace: introduce --convert-graft-file
236
+ + replace: prepare create_graft() for converting graft files wholesale
237
+ + replace: "libify" create_graft() and callees
238
+ + replace: avoid using die() to indicate a bug
239
+ + commit: Let the callback of for_each_mergetag return on error
240
+ + argv_array: offer to split a string by whitespace
241
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
242
+ The functionality of "$GIT_DIR/info/grafts" has been superseded by
243
+ the "refs/replace/" mechanism for some time now, but the internal
244
+ code had support for it in many places, which has been cleaned up
245
+ in order to drop support of the "grafts" mechanism.
246
439
- Doc fix.
247
441
---------------------------------------------------
442
-[New Topics]
248
+* js/no-pager-shorthand (2018-05-04) 1 commit
249
+ (merged to 'next' on 2018-05-08 at 10e6031dd1)
250
+ + git: add -P as a short option for --no-pager
251
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
252
+ "git --no-pager cmd" did not have short-and-sweet single letter
253
+ option. Now it does.
254
448
- Hotfix.
255
450
- Will merge to 'master'.
256
+* js/rebase-i-clean-msg-after-fixup-continue (2018-05-02) 4 commits
257
+ (merged to 'next' on 2018-05-08 at 7e684c153d)
258
+ + rebase --skip: clean up commit message after a failed fixup/squash
259
+ + sequencer: always commit without editing when asked for
260
+ + rebase -i: Handle "combination of <n> commits" with GETTEXT_POISON
261
+ + rebase -i: demonstrate bugs with fixup!/squash! commit messages
262
263
+ "git rebase -i" sometimes left intermediate "# This is a
264
+ combination of N commits" message meant for the human consumption
265
+ inside an editor in the final result in certain corner cases, which
266
+ has been fixed.
267
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
268
458
- Hotfix.
269
+* js/rebase-recreate-merge (2018-04-26) 17 commits
270
+ (merged to 'next' on 2018-05-16 at f1aeea2879)
271
+ + rebase -i --rebase-merges: add a section to the man page
272
+ + rebase -i: introduce --rebase-merges=[no-]rebase-cousins
273
+ + pull: accept --rebase=merges to recreate the branch topology
274
+ + rebase --rebase-merges: avoid "empty merges"
275
+ + sequencer: handle post-rewrite for merge commands
276
+ + sequencer: make refs generated by the `label` command worktree-local
277
+ + rebase --rebase-merges: add test for --keep-empty
278
+ + rebase: introduce the --rebase-merges option
279
+ + rebase-helper --make-script: introduce a flag to rebase merges
280
+ + sequencer: fast-forward `merge` commands, if possible
281
+ + sequencer: introduce the `merge` command
282
+ + sequencer: introduce new commands to reset the revision
283
+ + git-rebase--interactive: clarify arguments
284
+ + sequencer: offer helpful advice when a command was rescheduled
285
+ + sequencer: refactor how original todo list lines are accessed
286
+ + sequencer: make rearrange_squash() a bit more obvious
287
+ + sequencer: avoid using errno clobbered by rollback_lock_file()
288
+ (this branch is used by js/sequencer-and-root-commits.)
289
460
- Will merge to 'master'.
290
+ "git rebase" learned "--rebase-merges" to transplant the whole
291
+ topology of commit graph elsewhere.
292
293
463
-* sg/t6500-no-redirect-of-stdin (2018-05-09) 1 commit
464
- - t6050-replace: don't disable stdin for the whole test script
294
+* js/test-unset-prereq (2018-04-30) 1 commit
295
+ (merged to 'next' on 2018-05-08 at 3aecbf25a3)
296
+ + tests: introduce test_unset_prereq, for debugging
297
466
- Test cleanup.
298
+ Test debugging aid.
299
+ cf. <20180507115950.3887-1-szeder.dev@gmail.com>
300
468
- Will merge to 'next'.
301
302
+* nd/completion-aliasfiletype-typofix (2018-05-06) 1 commit
303
+ (merged to 'next' on 2018-05-16 at 045e4ac190)
304
+ + completion: fix misspelled config key aliasesfiletype
305
471
-* ao/config-api-doc (2018-05-11) 1 commit
472
- - doc: fix config API documentation about config_with_options
306
+ Typofix.
307
474
- Doc update.
308
476
- Will merge to 'next'.
309
+* nd/doc-header (2018-05-02) 1 commit
310
+ (merged to 'next' on 2018-05-16 at 0599eb3ec9)
311
+ + doc: keep first level section header in upper case
312
313
+ Doc formatting fix.
314
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'.
315
316
+* nd/pack-format-doc (2018-05-13) 1 commit
317
+ (merged to 'next' on 2018-05-22 at ff2c48f356)
318
+ + pack-format.txt: more details on pack file format
319
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
-
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.
320
+ Doc update.
321
528
- Will merge to 'next'.
322
323
+* nd/pack-objects-pack-struct (2018-04-16) 15 commits
324
+ (merged to 'next' on 2018-05-16 at 171459475d)
325
+ + ci: exercise the whole test suite with uncommon code in pack-objects
326
+ + pack-objects: reorder members to shrink struct object_entry
327
+ + pack-objects: shrink delta_size field in struct object_entry
328
+ + pack-objects: shrink size field in struct object_entry
329
+ + pack-objects: clarify the use of object_entry::size
330
+ + pack-objects: don't check size when the object is bad
331
+ + pack-objects: shrink z_delta_size field in struct object_entry
332
+ + pack-objects: refer to delta objects by index instead of pointer
333
+ + pack-objects: move in_pack out of struct object_entry
334
+ + pack-objects: move in_pack_pos out of struct object_entry
335
+ + pack-objects: use bitfield for object_entry::depth
336
+ + pack-objects: use bitfield for object_entry::dfs_state
337
+ + pack-objects: turn type and in_pack_type to bitfields
338
+ + pack-objects: a bit of document about struct object_entry
339
+ + read-cache.c: make $GIT_TEST_SPLIT_INDEX boolean
340
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
341
+ "git pack-objects" needs to allocate tons of "struct object_entry"
342
+ while doing its work, and shrinking its size helps the performance
343
+ quite a bit.
344
+ cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
345
568
- An API update for handling of refspecs used by fetch & push
569
- codepath.
346
571
- Will merge to 'next'.
347
+* nd/pack-unreachable-objects-doc (2018-05-06) 1 commit
348
+ (merged to 'next' on 2018-05-16 at c4bf977564)
349
+ + pack-objects: validation and documentation about unreachable options
350
351
+ Doc update.
352
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.)
353
578
- Update to ds/generation-numbers topic.
354
+* nd/repack-keep-pack (2018-04-16) 7 commits
355
+ (merged to 'next' on 2018-05-08 at ab906be358)
356
+ + pack-objects: show some progress when counting kept objects
357
+ + gc --auto: exclude base pack if not enough mem to "repack -ad"
358
+ + gc: handle a corner case in gc.bigPackThreshold
359
+ + gc: add gc.bigPackThreshold config
360
+ + gc: add --keep-largest-pack option
361
+ + repack: add --keep-pack option
362
+ + t7700: have closing quote of a test at the beginning of line
363
364
+ "git gc" in a large repository takes a lot of time as it considers
365
+ to repack all objects into one pack by default. The command has
366
+ been taught to pretend as if the largest existing packfile is
367
+ marked with ".keep" so that it is left untouched while objects in
368
+ other packs and loose ones are repacked.
369
+ cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
370
581
-* jk/apply-p-doc (2018-05-11) 1 commit
582
- - apply: clarify "-p" documentation
371
584
- Doc update.
372
+* nd/term-columns (2018-05-13) 2 commits
373
+ (merged to 'next' on 2018-05-22 at e50b727a48)
374
+ + column: fix off-by-one default width
375
+ + pager: set COLUMNS to term_columns()
376
586
- Will merge to 'next'.
377
+ The code did not propagate the terminal width to subprocesses via
378
+ COLUMNS environment variable, which it now does. This caused
379
+ trouble to "git column" helper subprocess when "git tag --column=row"
380
+ tried to list the existing tags on a display with non-default width.
381
382
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
383
+* sb/object-store-replace (2018-05-21) 4 commits
384
+ (merged to 'next' on 2018-05-21 at 4fb28f7b16)
385
+ + get_main_ref_store: BUG() when outside a repository
386
+ (merged to 'next' on 2018-05-18 at c95db04db9)
387
+ + object.c: clear replace map before freeing it
388
+ (merged to 'next' on 2018-05-16 at 41bbedcc81)
389
+ + replace-object.c: remove the_repository from prepare_replace_object
390
+ + object.c: free replace map in raw_object_store_clear
391
595
- Code clean-up to turn history traversal more robust in a
596
- semi-corrupt repository.
392
+ Hotfix.
393
598
- Will merge to 'next'.
394
395
+* sb/oid-object-info (2018-04-26) 9 commits
396
+ (merged to 'next' on 2018-05-08 at f3c08f298e)
397
+ + cache.h: allow oid_object_info to handle arbitrary repositories
398
+ + packfile: add repository argument to cache_or_unpack_entry
399
+ + packfile: add repository argument to unpack_entry
400
+ + packfile: add repository argument to read_object
401
+ + packfile: add repository argument to packed_object_info
402
+ + packfile: add repository argument to packed_to_object_type
403
+ + packfile: add repository argument to retry_bad_packed_offset
404
+ + cache.h: add repository argument to oid_object_info
405
+ + cache.h: add repository argument to oid_object_info_extended
406
+ (this branch is used by sb/object-store-alloc and sb/object-store-grafts.)
407
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
408
+ The codepath around object-info API has been taught to take the
409
+ repository object (which in turn tells the API which object store
410
+ the objects are to be located).
411
605
- Update credential-netrc helper (in contrib/) to allow customizing
606
- the GPG used to decrypt the encrypted .netrc file.
412
608
- Will merge to 'next'.
413
+* sg/t5310-jgit-bitmap-test (2018-05-11) 1 commit
414
+ (merged to 'next' on 2018-05-22 at ef0d86084d)
415
+ + t5310-pack-bitmaps: make JGit tests work with GIT_TEST_SPLIT_INDEX
416
417
+ Test update.
418
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
419
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.
420
+* sg/t5516-fixes (2018-05-11) 2 commits
421
+ (merged to 'next' on 2018-05-22 at 254fa59e3a)
422
+ + t5516-fetch-push: fix broken &&-chain
423
+ + t5516-fetch-push: fix 'push with dry-run' test
424
620
- Will merge to 'next'.
425
+ Test fixes.
426
427
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
428
+* sg/t7005-spaces-in-filenames-cleanup (2018-05-15) 1 commit
429
+ (merged to 'next' on 2018-05-22 at 0bc626c61a)
430
+ + t7005-editor: get rid of the SPACES_IN_FILENAMES prereq
431
630
- Code clean-up to adjust to a more recent lockfile API convention that
631
- allows lockfile instances kept on the stack.
432
+ Test update.
433
633
- Will merge to 'next'.
434
435
+* tb/test-apfs-utf8-normalization (2018-05-02) 1 commit
436
+ (merged to 'next' on 2018-05-16 at feabe72b42)
437
+ + test: correct detection of UTF8_NFD_TO_NFC for APFS
438
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
439
+ A test to see if the filesystem normalizes UTF-8 filename has been
440
+ updated to check what we need to know in a more direct way, i.e. a
441
+ path created in NFC form can be accessed with NFD form (or vice
442
+ versa) to cope with APFS as well as HFS.
443
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.
444
657
- Will merge to 'next'.
445
+* tg/worktree-add-existing-branch (2018-04-30) 4 commits
446
+ (merged to 'next' on 2018-05-08 at 8b76505192)
447
+ + worktree: teach "add" to check out existing branches
448
+ + worktree: factor out dwim_branch function
449
+ + worktree: improve message when creating a new worktree
450
+ + worktree: remove extra members from struct add_opts
451
452
+ "git worktree add" learned to check out an existing branch.
453
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
454
+--------------------------------------------------
455
+[New Topics]
456
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.
457
+* bw/ref-prefix-for-configured-refspec (2018-05-18) 2 commits
458
+ - fetch: generate ref-prefixes when using a configured refspec
459
+ - refspec: consolidate ref-prefix generation logic
460
+ (this branch uses bw/refspec-api.)
461
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.
462
+ "git fetch $there $refspec" that talks over protocol v2 can take
463
+ advantage of server-side ref filtering; the code has been extended
464
+ so that this mechanism triggers also when fetching with configured
465
+ refspec.
466
673
- Will merge to and cook in 'next'.
467
+ Will merge to 'next'.
468
469
676
-* nd/pack-format-doc (2018-05-13) 1 commit
677
- - pack-format.txt: more details on pack file format
470
+* jk/config-blob-sans-repo (2018-05-21) 1 commit
471
+ - config: die when --blob is used outside a repository
472
679
- Doc update.
473
+ Error codepath fix.
474
475
Will merge to 'next'.
476
477
684
-* nd/pack-struct-commit (2018-05-13) 1 commit
685
- - commit.h: rearrange 'index' to shrink struct commit
478
+* jk/snprintf-truncation (2018-05-21) 5 commits
479
+ - fmt_with_err: add a comment that truncation is OK
480
+ - shorten_unambiguous_ref: use xsnprintf
481
+ - fsmonitor: use internal argv_array of struct child_process
482
+ - log_write_email_headers: use strbufs
483
+ - http: use strbufs instead of fixed buffers
484
687
- Memory optimization.
485
+ Avoid unchecked snprintf() to make future code auditing easier.
486
487
Will merge to 'next'.
488
489
692
-* nd/repo-clear-keep-the-index (2018-05-10) 1 commit
693
- - repository: fix free problem with repo_clear(the_repository)
490
+* js/empty-config-section-fix (2018-05-18) 1 commit
491
+ - config: a user-provided invalid section is not a BUG
492
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.
493
+ Error codepath fix.
494
495
Will merge to 'next'.
496
497
702
-* nd/term-columns (2018-05-13) 2 commits
703
- - column: fix off-by-one default width
704
- - pager: set COLUMNS to term_columns()
498
+* ma/config-store-data-clear (2018-05-21) 3 commits
499
+ - config: let `config_store_data_clear()` handle `key`
500
+ - config: let `config_store_data_clear()` handle `value_regex`
501
+ - config: free resources of `struct config_store_data`
502
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.
503
+ Leak plugging.
504
505
Will merge to 'next'.
506
507
714
-* nd/travis-gcc-7 (2018-05-14) 1 commit
715
- - travis-ci: run gcc-7 on linux-gcc jobs
508
+* ma/regex-no-regfree-after-comp-fail (2018-05-21) 1 commit
509
+ - regex: do not call `regfree()` if compilation fails
510
717
- Developer support. Use newer GCC on one of the builds done at
718
- TravisCI.org to get more warnings and errors diagnosed.
511
+ We used to call regfree() after regcomp() failed in some codepaths,
512
+ which have been corrected.
513
514
Will merge to 'next'.
515
516
723
-* rs/no-null-ptr-arith-in-fast-export (2018-05-10) 1 commit
724
- - fast-export: avoid NULL pointer arithmetic
517
+* ma/unpack-trees-free-msgs (2018-05-22) 4 commits
518
+ - unpack_trees_options: free messages when done
519
+ - argv-array: return the pushed string from argv_push*()
520
+ - merge-recursive: provide pair of `unpack_trees_{start,finish}()`
521
+ - merge: setup `opts` later in `checkout_fast_forward()`
522
+ (this branch uses bp/merge-rename-config.)
523
726
- Code clean-up to avoid non-standard-conformant pointer arithmetic.
524
+ Leak plugging.
525
526
Will merge to 'next'.
527
528
731
-* sb/grep-die-on-unreadable-index (2018-05-16) 1 commit
732
- - grep: handle corrupt index files early
733
-
529
+* rm/p4-submit-with-commit-option (2018-05-21) 1 commit
530
+ - git-p4: add options --commit and --disable-rebase
531
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.)
532
+ Needs sign-off.
533
534
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
535
+* bw/remote-curl-compressed-responses (2018-05-23) 2 commits
536
+ - remote-curl: accept compressed responses with protocol v2
537
+ - remote-curl: accept all encodings supported by curl
538
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.
539
+ Our HTTP client code used to advertise that we accept gzip encoding
540
+ from the other side; instead, just let cURL library to advertise
541
+ and negotiate the best one.
542
543
Will merge to 'next'.
544
545
773
-* sb/submodule-update-try-harder (2018-05-16) 1 commit
774
- - git-submodule.sh: try harder to fetch a submodule
546
+* cc/tests-without-assuming-ref-files-backend (2018-05-23) 1 commit
547
+ - t: make many tests depend less on the refs being files
548
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.
549
+ Quite a many tests assumed that newly created refs are made as
550
+ loose refs using the files backend, which have been updated to use
551
+ proper plumbing like rev-parse and update-ref, to avoid breakage
552
+ once we start using different ref backends.
553
554
Will merge to 'next'.
555
785
-
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
-
791
- Will merge to 'next'.
792
-
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
-
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]
556
+--------------------------------------------------
557
+[Stalled]
558
559
* jm/cache-entry-from-mem-pool (2018-05-02) 5 commits
560
- block alloc: add validations around cache_entry lifecyle
@@ -970,502 +710,569 @@ of the repositories listed at
710
--------------------------------------------------
711
[Cooking]
712
973
-* ld/p4-unshelve (2018-05-16) 1 commit
974
- - git-p4: add unshelve command
713
+* sg/t6500-no-redirect-of-stdin (2018-05-09) 1 commit
714
+ (merged to 'next' on 2018-05-22 at 7019b3a1d5)
715
+ + t6050-replace: don't disable stdin for the whole test script
716
976
- "git p4" learned to "unshelve" shelved commit from P4.
717
+ Test cleanup.
718
978
- Will merge to 'next'.
719
+ Will merge to 'master'.
720
721
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
722
+* bc/hash-independent-tests (2018-05-21) 28 commits
723
+ - t5300: abstract away SHA-1-specific constants
724
+ - t4208: abstract away SHA-1-specific constants
725
+ - t4045: abstract away SHA-1-specific constants
726
+ - t4042: abstract away SHA-1-specific constants
727
+ - t4205: sort log output in a hash-independent way
728
+ - t/lib-diff-alternative: abstract away SHA-1-specific constants
729
+ - t4030: abstract away SHA-1-specific constants
730
+ - t4029: abstract away SHA-1-specific constants
731
+ - t4029: fix test indentation
732
+ - t4022: abstract away SHA-1-specific constants
733
+ - t4020: abstract away SHA-1-specific constants
734
+ - t4014: abstract away SHA-1-specific constants
735
+ - t4008: abstract away SHA-1-specific constants
736
+ - t4007: abstract away SHA-1-specific constants
737
+ - t3905: abstract away SHA-1-specific constants
738
+ - t3702: abstract away SHA-1-specific constants
739
+ - t3103: abstract away SHA-1-specific constants
740
+ - t2203: abstract away SHA-1-specific constants
741
+ - t: skip pack tests if not using SHA-1
742
+ - t4044: skip test if not using SHA-1
743
+ - t1512: skip test if not using SHA-1
744
+ - t1007: annotate with SHA1 prerequisite
745
+ - t0000: annotate with SHA1 prerequisite
746
+ - t: switch $_x40 to $OID_REGEX
747
+ - t/test-lib: introduce OID_REGEX
748
+ - t: switch $_z40 to $ZERO_OID
749
+ - t/test-lib: introduce ZERO_OID
750
+ - t/test-lib: add an SHA1 prerequisite
751
987
- The bulk of "git submodule foreach" has been rewritten in C.
752
+ Many tests hardcode the raw object names, which would change once
753
+ we migrate away from SHA-1. While some of them must test against
754
+ exact object names, most of them do not have to use hardcoded
755
+ constants in the test. The latter kind of tests have been updated
756
+ to test the moral equivalent of the original without hardcoding the
757
+ actual object names.
758
989
- Will merge to and cook in 'next'.
759
+ Will merge to 'next'.
760
761
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
762
+* bp/status-rename-config (2018-05-13) 1 commit
763
+ (merged to 'next' on 2018-05-22 at ffcb0a7aa7)
764
+ + add status config and command line options for rename detection
765
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.
766
+ "git status" learned to honor a new status.renames configuration to
767
+ skip rename detection, which could be useful for those who want to
768
+ do so without disabling the default rename detection done by the
769
+ "git diff" command.
770
771
Will merge to 'master'.
772
773
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
774
+* bw/refspec-api (2018-05-18) 36 commits
775
+ - submodule: convert push_unpushed_submodules to take a struct refspec
776
+ - remote: convert check_push_refs to take a struct refspec
777
+ - remote: convert match_push_refs to take a struct refspec
778
+ - http-push: store refspecs in a struct refspec
779
+ - transport: remove transport_verify_remote_names
780
+ - send-pack: store refspecs in a struct refspec
781
+ - transport: convert transport_push to take a struct refspec
782
+ - push: convert to use struct refspec
783
+ - push: check for errors earlier
784
+ - remote: convert match_explicit_refs to take a struct refspec
785
+ - remote: convert get_ref_match to take a struct refspec
786
+ - remote: convert query_refspecs to take a struct refspec
787
+ - remote: convert apply_refspecs to take a struct refspec
788
+ - remote: convert get_stale_heads to take a struct refspec
789
+ - fetch: convert prune_refs to take a struct refspec
790
+ - fetch: convert get_ref_map to take a struct refspec
791
+ - fetch: convert do_fetch to take a struct refspec
792
+ - refspec: remove the deprecated functions
793
+ - fetch: convert refmap to use struct refspec
794
+ - fetch: convert fetch_one to use struct refspec
795
+ - transport-helper: convert to use struct refspec
796
+ - remote: remove add_prune_tags_to_fetch_refspec
797
+ - remote: convert fetch refspecs to struct refspec
798
+ - remote: convert push refspecs to struct refspec
799
+ - fast-export: convert to use struct refspec
800
+ - clone: convert cmd_clone to use refspec_item_init
801
+ - remote: convert match_push_refs to use struct refspec
802
+ - remote: convert check_push_refs to use struct refspec
803
+ - transport: convert transport_push to use struct refspec
804
+ - pull: convert get_tracking_branch to use refspec_item_init
805
+ - submodule--helper: convert push_check to use struct refspec
806
+ - refspec: convert valid_fetch_refspec to use parse_refspec
807
+ - refspec: introduce struct refspec
808
+ - refspec: factor out parsing a single refspec
809
+ - refspec: rename struct refspec to struct refspec_item
810
+ - refspec: move refspec parsing logic into its own file
811
+ (this branch is used by bw/ref-prefix-for-configured-refspec.)
812
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.
813
+ An API update for handling of refspecs used by fetch & push
814
+ codepath.
815
816
Will merge to 'next'.
817
818
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
819
+* ds/commit-graph-lockfile-fix (2018-05-22) 1 commit
820
+ - commit-graph: fix UX issue when .lock file exists
821
+ (this branch uses ds/generation-numbers.)
822
1030
- Misc doc fixes.
823
+ Update to ds/generation-numbers topic.
824
1032
- Will merge to 'master'.
825
+ Will merge to 'next'.
826
827
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
828
+* jk/unavailable-can-be-missing (2018-05-13) 4 commits
829
+ (merged to 'next' on 2018-05-22 at 91980c5d1e)
830
+ + mark_parents_uninteresting(): avoid most allocation
831
+ + mark_parents_uninteresting(): replace list with stack
832
+ + mark_parents_uninteresting(): drop missing object check
833
+ + mark_tree_contents_uninteresting(): drop missing object check
834
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.
835
+ Code clean-up to turn history traversal more robust in a
836
+ semi-corrupt repository.
837
838
Will merge to 'master'.
839
840
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
841
+* lm/credential-netrc (2018-05-14) 2 commits
842
+ (merged to 'next' on 2018-05-23 at c3a0417715)
843
+ + git-credential-netrc: accept gpg option
844
+ + git-credential-netrc: adapt to test framework for git
845
1050
- Code simplification.
846
+ Update credential-netrc helper (in contrib/) to allow customizing
847
+ the GPG used to decrypt the encrypted .netrc file.
848
849
Will merge to 'master'.
850
851
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
852
+* ma/create-pseudoref-with-null-old-oid (2018-05-13) 3 commits
853
+ (merged to 'next' on 2018-05-22 at c751a19b67)
854
+ + refs: handle zero oid for pseudorefs
855
+ + t1400: add tests around adding/deleting pseudorefs
856
+ + refs.c: refer to "object ID", not "sha1", in error messages
857
1059
- Performance test updates.
858
+ "git update-ref A B" is supposed to ensure that ref A does not yet
859
+ exist when B is a NULL OID, but this check was not done correctly
860
+ for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
861
862
Will merge to 'master'.
863
864
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
-
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
-
1075
- Will merge to 'next'..
1076
- "subsititions" needs to be typofixed ;-)
1077
-
1078
-
1079
-
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
-
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.)
865
+* ma/lockfile-cleanup (2018-05-10) 5 commits
866
+ (merged to 'next' on 2018-05-22 at e2efbf0b90)
867
+ + lock_file: move static locks into functions
868
+ + lock_file: make function-local locks non-static
869
+ + refs.c: do not die if locking fails in `delete_pseudoref()`
870
+ + refs.c: do not die if locking fails in `write_pseudoref()`
871
+ + t/helper/test-write-cache: clean up lock-handling
872
1095
- "git status" learned to pay attention to UI related diff
1096
- configuration variables such as diff.renames.
873
+ Code clean-up to adjust to a more recent lockfile API convention that
874
+ allows lockfile instances kept on the stack.
875
876
Will merge to 'master'.
877
878
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
-
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
-
1126
- Expecting a reroll.
1127
- cf. <nycvar.QRO.7.76.6.1805052351560.77@tvgsbejvaqbjf.bet>
1128
-
1129
-
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.)
879
+* nd/commit-util-to-slab (2018-05-21) 15 commits
880
+ - commit.h: delete 'util' field in struct commit
881
+ - merge: use commit-slab in merge remote desc instead of commit->util
882
+ - log: use commit-slab in prepare_bases() instead of commit->util
883
+ - show-branch: note about its object flags usage
884
+ - show-branch: use commit-slab for commit-name instead of commit->util
885
+ - name-rev: use commit-slab for rev-name instead of commit->util
886
+ - bisect.c: use commit-slab for commit weight instead of commit->util
887
+ - revision.c: use commit-slab for show_source
888
+ - sequencer.c: use commit-slab to associate todo items to commits
889
+ - sequencer.c: use commit-slab to mark seen commits
890
+ - shallow.c: use commit-slab for commit depth instead of commit->util
891
+ - describe: use commit-slab for commit names instead of commit->util
892
+ - blame: use commit-slab for blame suspects instead of commit->util
893
+ - commit-slab: support shared commit-slab
894
+ - commit-slab.h: code split
895
1139
- The implementation of "git rebase -i --root" has been updated to use
1140
- the sequencer machinery more.
896
+ The in-core "commit" object had an all-purpose "void *util" field,
897
+ which was tricky to use especially in library-ish part of the
898
+ code. All of the existing uses of the field has been migrated to a
899
+ more dedicated "commit-slab" mechanism and the field is eliminated.
900
901
Will merge to 'next'.
902
903
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
904
+* nd/diff-apply-ita (2018-05-14) 2 commits
905
+ (merged to 'next' on 2018-05-22 at a15cc0ce1c)
906
+ + apply: add --intent-to-add
907
+ + diff: turn --ita-invisible-in-index on by default
908
1152
- Developer support update, by using BUG() macro instead of die() to
1153
- mark codepaths that should not happen more clearly.
909
+ "git diff" compares the index and the working tree. For paths
910
+ added with intent-to-add bit, the command shows the full contents
911
+ of them as added, but the paths themselves were not marked as new
912
+ files. They are now shown as new by default.
913
1155
- Will merge to 'next'.
1156
- Further updates can come on top later.
1157
- cf. <20180507090109.GA367@sigill.intra.peff.net>
914
+ "git apply" learned the "--intent-to-add" option so that an
915
+ otherwise working-tree-only application of a patch will add new
916
+ paths to the index marked with the "intent-to-add" bit.
917
918
+ Will merge to and cook in 'next'.
919
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
920
1166
- Transfer protocol v2 learned to support the partial clone.
921
+* nd/pack-struct-commit (2018-05-13) 1 commit
922
+ (merged to 'next' on 2018-05-22 at 38d8a651f0)
923
+ + commit.h: rearrange 'index' to shrink struct commit
924
1168
- Will merge to 'next'.
925
+ Memory optimization.
926
927
+ Will merge to 'master'.
928
1171
-* ma/doc-expand-tabs (2018-05-02) 1 commit
1172
- - revisions.txt: expand tabs to spaces in diagram
929
1174
- Fix one instance of asciidoctor's misformatting by expanding a tab
1175
- into spaces in a literal block.
930
+* nd/repo-clear-keep-the-index (2018-05-10) 1 commit
931
+ (merged to 'next' on 2018-05-22 at 398c7ac4e9)
932
+ + repository: fix free problem with repo_clear(the_repository)
933
1177
- Will discard. This approach is less maintainable than the approach
1178
- taken by bc/asciidoctor-tab-width topic.
934
+ the_repository->index is not a allocated piece of memory but
935
+ repo_clear() indiscriminately attempted to free(3) it, which has
936
+ been corrected.
937
938
+ Will merge to 'master'.
939
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
940
1185
- Typofix.
941
+* nd/travis-gcc-8 (2018-05-21) 1 commit
942
+ (merged to 'next' on 2018-05-22 at d5d54efa72)
943
+ + travis-ci: run gcc-8 on linux-gcc jobs
944
+
945
+ Developer support. Use newer GCC on one of the builds done at
946
+ TravisCI.org to get more warnings and errors diagnosed.
947
948
Will merge to 'master'.
949
950
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
951
+* rs/no-null-ptr-arith-in-fast-export (2018-05-10) 1 commit
952
+ (merged to 'next' on 2018-05-22 at db60f06bba)
953
+ + fast-export: avoid NULL pointer arithmetic
954
1194
- Doc formatting fix.
955
+ Code clean-up to avoid non-standard-conformant pointer arithmetic.
956
957
Will merge to 'master'.
958
959
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
960
+* sb/grep-die-on-unreadable-index (2018-05-16) 1 commit
961
+ - grep: handle corrupt index files early
962
1203
- Doc update.
963
+ Error behaviour of "git grep" when it cannot read the index was
964
+ inconsistent with other commands that uses the index, which has
965
+ been corrected to error out early.
966
1205
- Will merge to 'master'.
967
+ Will merge to 'next'.
968
969
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.)
970
+* sb/object-store-grafts (2018-05-18) 19 commits
971
+ - commit: allow lookup_commit_graft to handle arbitrary repositories
972
+ - commit: allow prepare_commit_graft to handle arbitrary repositories
973
+ - shallow: migrate shallow information into the object parser
974
+ - path.c: migrate global git_path_* to take a repository argument
975
+ - cache: convert get_graft_file to handle arbitrary repositories
976
+ - commit: convert read_graft_file to handle arbitrary repositories
977
+ - commit: convert register_commit_graft to handle arbitrary repositories
978
+ - commit: convert commit_graft_pos() to handle arbitrary repositories
979
+ - shallow: add repository argument to is_repository_shallow
980
+ - shallow: add repository argument to check_shallow_file_for_update
981
+ - shallow: add repository argument to register_shallow
982
+ - shallow: add repository argument to set_alternate_shallow_file
983
+ - commit: add repository argument to lookup_commit_graft
984
+ - commit: add repository argument to prepare_commit_graft
985
+ - commit: add repository argument to read_graft_file
986
+ - commit: add repository argument to register_commit_graft
987
+ - commit: add repository argument to commit_graft_pos
988
+ - object: move grafts to object parser
989
+ - object-store: move object access functions to object-store.h
990
+ (this branch uses sb/object-store-alloc.)
991
1224
- The conversion to pass "the_repository" and then "a_repository"
1225
- throughout the object access API continues.
992
993
+* sb/submodule-merge-in-merge-recursive (2018-05-18) 3 commits
994
+ - merge-recursive: give notice when submodule commit gets fast-forwarded
995
+ - merge-recursive: i18n submodule merge output and respect verbosity
996
+ - submodule.c: move submodule merging to merge-recursive.c
997
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.)
998
+ By code restructuring of submodule merge in merge-recursive,
999
+ informational messages from the codepath are now given using the
1000
+ same mechanism as other output, and honor the merge.verbosity
1001
+ configuration. The code also learned to give a few new messages
1002
+ when a submodule three-way merge resolves cleanly when one side
1003
+ records a descendant of the commit chosen by the other side.
1004
1238
- "git grep" learned the "--column" option that gives not just the
1239
- line number but the column number of the hit.
1005
+ Will merge to 'next'.
1006
1007
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
1008
+* sb/submodule-update-try-harder (2018-05-16) 1 commit
1009
+ (merged to 'next' on 2018-05-23 at 698e6707d7)
1010
+ + git-submodule.sh: try harder to fetch a submodule
1011
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.
1012
+ "git submodule update" attempts two different kinds of "git fetch"
1013
+ against the upstream repository to grab a commit bound at the
1014
+ submodule's path, but it incorrectly gave up if the first kind
1015
+ (i.e. a normal fetch) failed, making the second "last resort" one
1016
+ (i.e. fetching an exact commit object by object name) ineffective.
1017
+ This has been corrected.
1018
1019
Will merge to 'master'.
1020
1021
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
-
1258
- Will merge to 'master'.
1022
+* tb/grep-only-matching (2018-05-14) 2 commits
1023
+ - builtin/grep.c: teach '-o', '--only-matching' to 'git-grep'
1024
+ - grep.c: extract show_line_header()
1025
+ (this branch uses tb/grep-column.)
1026
1027
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
1028
+* ld/p4-unshelve (2018-05-23) 3 commits
1029
+ - git-p4: unshelve: use action==add instead of rev==none
1030
+ - SQUASH???
1031
+ - git-p4: add unshelve command
1032
1265
- Perf-test helper updates.
1033
+ "git p4" learned to "unshelve" shelved commit from P4.
1034
1267
- Will merge to 'master'.
1035
+ Expecting a reroll.
1036
+ cf. <CAE5ih7_jgrTXv25hYqoq=95H0zArbJAeQO3gO_TRpyLHGfTWUg@mail.gmail.com>
1037
1038
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
1039
+* pc/submodule-helper-foreach (2018-05-11) 4 commits
1040
+ (merged to 'next' on 2018-05-22 at f22659ad46)
1041
+ + submodule: port submodule subcommand 'foreach' from shell to C
1042
+ + submodule foreach: document variable '$displaypath'
1043
+ + submodule foreach: document '$sm_path' instead of '$path'
1044
+ + submodule foreach: correct '$path' in nested submodules from a subdirectory
1045
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.
1046
+ The bulk of "git submodule foreach" has been rewritten in C.
1047
1280
- Will merge to 'master'.
1048
+ Will merge to and cook in 'next'.
1049
1050
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
1051
+* ab/get-short-oid (2018-05-11) 5 commits
1052
+ (merged to 'next' on 2018-05-23 at 07e1908439)
1053
+ + get_short_oid: sort ambiguous objects by type, then SHA-1
1054
+ + sha1-name.c: move around the collect_ambiguous() function
1055
+ + git-p4: change "commitish" typo to "committish"
1056
+ + sha1-array.h: align function arguments
1057
+ + sha1-name.c: remove stray newline
1058
1287
- Test debugging aid.
1059
+ When a short hexadecimal string is used to name an object but there
1060
+ are multiple objects that share the string as the prefix of their
1061
+ names, the code lists these ambiguous candidates in a help message.
1062
+ These object names are now sorted according to their types for
1063
+ easier eyeballing.
1064
1065
Will merge to 'master'.
1290
- cf. <20180507115950.3887-1-szeder.dev@gmail.com>
1066
1067
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
1068
+* cf/submodule-progress-dissociate (2018-05-22) 3 commits
1069
+ (merged to 'next' on 2018-05-22 at 9b3b96c54b)
1070
+ + submodule: add --dissociate option to add/update commands
1071
+ + submodule: add --progress option to add command
1072
+ + submodule: clean up substitutions in script
1073
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.
1074
+ "git submodule update" and "git submodule add" supported the
1075
+ "--reference" option to borrow objects from a neighbouring local
1076
+ repository like "git clone" does, but lacked the more recent
1077
+ invention "--dissociate". Also "git submodule add" has been taught
1078
+ to take the "--progress" option.
1079
1080
Will merge to 'master'.
1303
- cf. <CAM0VKjkTu+OkLM3gvX73mWugxArCVmqRBmWGHiKuLiLRNkkNow@mail.gmail.com>
1081
1082
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
1083
+* dd/send-email-reedit (2018-05-06) 1 commit
1084
+ (merged to 'next' on 2018-05-22 at 1f4c98324f)
1085
+ + git-send-email: allow re-editing of message
1086
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.
1087
+ "git send-email" can sometimes offer confirmation dialog "Send this
1088
+ email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action
1089
+ 'Edit' has been added to this dialog's choice.
1090
1091
Will merge to 'master'.
1092
1093
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
1094
+* js/branch-diff (2018-05-16) 19 commits
1095
+ - fixup! Add a function to solve least-cost assignment problems
1096
+ - completion: support branch-diff
1097
+ - branch-diff: add a man page
1098
+ - branch-diff --dual-color: work around bogus white-space warning
1099
+ - branch-diff: offer to dual-color the diffs
1100
+ - diff: add an internal option to dual-color diffs of diffs
1101
+ - color: provide inverted colors, too
1102
+ - branch-diff: use color for the commit pairs
1103
+ - branch-diff: add tests
1104
+ - branch-diff: do not show "function names" in hunk headers
1105
+ - branch-diff: adjust the output of the commit pairs
1106
+ - branch-diff: suppress the diff headers
1107
+ - branch-diff: indent the diffs just like tbdiff
1108
+ - branch-diff: right-trim commit messages
1109
+ - branch-diff: also show the diff between patches
1110
+ - branch-diff: improve the order of the shown commits
1111
+ - branch-diff: first rudimentary implementation
1112
+ - Add a new builtin: branch-diff
1113
+ - Add a function to solve least-cost assignment problems
1114
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.
1115
+ "git tbdiff" that lets us compare individual patches in two
1116
+ iterations of a topic has been rewritten and made into a built-in
1117
+ command.
1118
1341
- Will merge to 'master'.
1119
+ Expecting a reroll.
1120
+ cf. <nycvar.QRO.7.76.6.1805052351560.77@tvgsbejvaqbjf.bet>
1121
1122
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
1123
+* js/sequencer-and-root-commits (2018-05-06) 6 commits
1124
+ (merged to 'next' on 2018-05-22 at c1a62f5bc9)
1125
+ + rebase --rebase-merges: root commits can be cousins, too
1126
+ + rebase --rebase-merges: a "merge" into a new root is a fast-forward
1127
+ + sequencer: allow introducing new root commits
1128
+ + rebase -i --root: let the sequencer handle even the initial part
1129
+ + sequencer: learn about the special "fake root commit" handling
1130
+ + sequencer: extract helper to update active_cache_tree
1131
1351
- The transport protocol v2 is getting updated further.
1132
+ The implementation of "git rebase -i --root" has been updated to use
1133
+ the sequencer machinery more.
1134
1135
Will merge to 'master'.
1136
1137
1356
-* bc/object-id (2018-05-02) 42 commits
1357
- - merge-one-file: compute empty blob object ID
1358
- - add--interactive: compute the empty tree value
1359
- - Update shell scripts to compute empty tree object ID
1360
- - sha1_file: only expose empty object constants through git_hash_algo
1361
- - dir: use the_hash_algo for empty blob object ID
1362
- - sequencer: use the_hash_algo for empty tree object ID
1363
- - cache-tree: use is_empty_tree_oid
1364
- - sha1_file: convert cached object code to struct object_id
1365
- - builtin/reset: convert use of EMPTY_TREE_SHA1_BIN
1366
- - builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEX
1367
- - wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
1368
- - submodule: convert several uses of EMPTY_TREE_SHA1_HEX
1369
- - sequencer: convert one use of EMPTY_TREE_SHA1_HEX
1370
- - merge: convert empty tree constant to the_hash_algo
1371
- - builtin/merge: switch tree functions to use object_id
1372
- - builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algo
1373
- - sha1-file: add functions for hex empty tree and blob OIDs
1374
- - builtin/receive-pack: avoid hard-coded constants for push certs
1375
- - diff: specify abbreviation size in terms of the_hash_algo
1376
- - upload-pack: replace use of several hard-coded constants
1377
- - revision: replace use of hard-coded constants
1378
- - http: eliminate hard-coded constants
1379
- - dir: convert struct untracked_cache_dir to object_id
1380
- - commit: convert uses of get_sha1_hex to get_oid_hex
1381
- - index-pack: abstract away hash function constant
1382
- - pack-redundant: convert linked lists to use struct object_id
1383
- - Update struct index_state to use struct object_id
1384
- - split-index: convert struct split_index to object_id
1385
- - submodule-config: convert structures to object_id
1386
- - fsck: convert static functions to struct object_id
1387
- - tree-walk: convert get_tree_entry_follow_symlinks to object_id
1388
- - tree-walk: avoid hard-coded 20 constant
1389
- - pack-redundant: abstract away hash algorithm
1390
- - pack-objects: abstract away hash algorithm
1391
- - packfile: abstract away hash constant values
1392
- - packfile: convert find_pack_entry to object_id
1393
- - sha1-file: convert freshen functions to object_id
1394
- - packfile: convert has_sha1_pack to object_id
1395
- - packfile: remove unused member from struct pack_entry
1396
- - Remove unused member in struct object_context
1397
- - server-info: remove unused members from struct pack_info
1398
- - cache: add a function to read an object ID from a buffer
1138
+* js/use-bug-macro (2018-05-10) 5 commits
1139
+ (merged to 'next' on 2018-05-22 at fd848c39ae)
1140
+ + BUG_exit_code: fix sparse "symbol not declared" warning
1141
+ + Convert remaining die*(BUG) messages
1142
+ + Replace all die("BUG: ...") calls by BUG() ones
1143
+ + run-command: use BUG() to report bugs, not die()
1144
+ + test-tool: help verifying BUG() code paths
1145
1400
- Conversion from uchar[20] to struct object_id continues.
1146
+ Developer support update, by using BUG() macro instead of die() to
1147
+ mark codepaths that should not happen more clearly.
1148
1402
- Will merge to 'next'.
1149
+ Will merge to 'master'.
1150
+ Further updates can come on top later.
1151
+ cf. <20180507090109.GA367@sigill.intra.peff.net>
1152
1153
1405
-* sb/oid-object-info (2018-04-26) 9 commits
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.)
1154
+* jt/partial-clone-proto-v2 (2018-05-06) 4 commits
1155
+ (merged to 'next' on 2018-05-23 at f8b3692e8e)
1156
+ + {fetch,upload}-pack: support filter in protocol v2
1157
+ + upload-pack: read config when serving protocol v2
1158
+ + upload-pack: fix error message typo
1159
+ + Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2
1160
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).
1161
+ Transfer protocol v2 learned to support the partial clone.
1162
1163
Will merge to 'master'.
1164
1165
1425
-* en/unpack-trees-split-index-fix (2018-05-02) 1 commit
1426
- (merged to 'next' on 2018-05-16 at 1adff065b2)
1427
- + unpack_trees: fix breakage when o->src_index != o->dst_index
1166
+* ma/doc-expand-tabs (2018-05-02) 1 commit
1167
+ - revisions.txt: expand tabs to spaces in diagram
1168
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.
1169
+ Fix one instance of asciidoctor's misformatting by expanding a tab
1170
+ into spaces in a literal block.
1171
1432
- Will merge to 'master'.
1433
- cf. <CACsJy8CeDhrT9GXe9q5gqsAeq_sSQ8jyF2nMOFxzjwKtE31oPQ@mail.gmail.com>
1172
+ Will discard. This approach is less maintainable than the approach
1173
+ taken by bc/asciidoctor-tab-width topic.
1174
1175
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.)
1176
+* sb/object-store-alloc (2018-05-16) 13 commits
1177
+ - alloc: allow arbitrary repositories for alloc functions
1178
+ - object: allow create_object to handle arbitrary repositories
1179
+ - object: allow grow_object_hash to handle arbitrary repositories
1180
+ - alloc: add repository argument to alloc_commit_index
1181
+ - alloc: add repository argument to alloc_report
1182
+ - alloc: add repository argument to alloc_object_node
1183
+ - alloc: add repository argument to alloc_tag_node
1184
+ - alloc: add repository argument to alloc_commit_node
1185
+ - alloc: add repository argument to alloc_tree_node
1186
+ - alloc: add repository argument to alloc_blob_node
1187
+ - object: add repository argument to grow_object_hash
1188
+ - object: add repository argument to create_object
1189
+ - repository: introduce parsed objects field
1190
+ (this branch is used by sb/object-store-grafts.)
1191
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.
1192
+ The conversion to pass "the_repository" and then "a_repository"
1193
+ throughout the object access API continues.
1194
1446
- Will merge to 'next'.
1195
1196
+* tb/grep-column (2018-05-14) 7 commits
1197
+ - contrib/git-jump/git-jump: jump to match column in addition to line
1198
+ - grep.c: add configuration variables to show matched option
1199
+ - builtin/grep.c: add '--column' option to 'git-grep(1)'
1200
+ - grep.c: display column number of first match
1201
+ - grep.[ch]: extend grep_opt to allow showing matched column
1202
+ - grep.c: expose matched column in match_line()
1203
+ - Documentation/config.txt: camel-case lineNumber for consistency
1204
+ (this branch is used by tb/grep-only-matching.)
1205
+
1206
+ "git grep" learned the "--column" option that gives not just the
1207
+ line number but the column number of the hit.
1208
1449
-* en/git-debugger (2018-04-25) 1 commit
1450
- (merged to 'next' on 2018-05-08 at 73369cd1e5)
1451
- + Make running git under other debugger-like programs easy
1209
1453
- Dev support.
1210
+* bc/object-id (2018-05-02) 42 commits
1211
+ (merged to 'next' on 2018-05-23 at 916bcce829)
1212
+ + merge-one-file: compute empty blob object ID
1213
+ + add--interactive: compute the empty tree value
1214
+ + Update shell scripts to compute empty tree object ID
1215
+ + sha1_file: only expose empty object constants through git_hash_algo
1216
+ + dir: use the_hash_algo for empty blob object ID
1217
+ + sequencer: use the_hash_algo for empty tree object ID
1218
+ + cache-tree: use is_empty_tree_oid
1219
+ + sha1_file: convert cached object code to struct object_id
1220
+ + builtin/reset: convert use of EMPTY_TREE_SHA1_BIN
1221
+ + builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEX
1222
+ + wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
1223
+ + submodule: convert several uses of EMPTY_TREE_SHA1_HEX
1224
+ + sequencer: convert one use of EMPTY_TREE_SHA1_HEX
1225
+ + merge: convert empty tree constant to the_hash_algo
1226
+ + builtin/merge: switch tree functions to use object_id
1227
+ + builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algo
1228
+ + sha1-file: add functions for hex empty tree and blob OIDs
1229
+ + builtin/receive-pack: avoid hard-coded constants for push certs
1230
+ + diff: specify abbreviation size in terms of the_hash_algo
1231
+ + upload-pack: replace use of several hard-coded constants
1232
+ + revision: replace use of hard-coded constants
1233
+ + http: eliminate hard-coded constants
1234
+ + dir: convert struct untracked_cache_dir to object_id
1235
+ + commit: convert uses of get_sha1_hex to get_oid_hex
1236
+ + index-pack: abstract away hash function constant
1237
+ + pack-redundant: convert linked lists to use struct object_id
1238
+ + Update struct index_state to use struct object_id
1239
+ + split-index: convert struct split_index to object_id
1240
+ + submodule-config: convert structures to object_id
1241
+ + fsck: convert static functions to struct object_id
1242
+ + tree-walk: convert get_tree_entry_follow_symlinks to object_id
1243
+ + tree-walk: avoid hard-coded 20 constant
1244
+ + pack-redundant: abstract away hash algorithm
1245
+ + pack-objects: abstract away hash algorithm
1246
+ + packfile: abstract away hash constant values
1247
+ + packfile: convert find_pack_entry to object_id
1248
+ + sha1-file: convert freshen functions to object_id
1249
+ + packfile: convert has_sha1_pack to object_id
1250
+ + packfile: remove unused member from struct pack_entry
1251
+ + Remove unused member in struct object_context
1252
+ + server-info: remove unused members from struct pack_info
1253
+ + cache: add a function to read an object ID from a buffer
1254
+
1255
+ Conversion from uchar[20] to struct object_id continues.
1256
1257
Will merge to 'master'.
1258
1259
1458
-* js/no-pager-shorthand (2018-05-04) 1 commit
1459
- (merged to 'next' on 2018-05-08 at 10e6031dd1)
1460
- + git: add -P as a short option for --no-pager
1260
+* bp/merge-rename-config (2018-05-08) 3 commits
1261
+ (merged to 'next' on 2018-05-22 at 911440a742)
1262
+ + merge: pass aggressive when rename detection is turned off
1263
+ + merge: add merge.renames config setting
1264
+ + merge: update documentation for {merge,diff}.renameLimit
1265
+ (this branch is used by ma/unpack-trees-free-msgs.)
1266
1462
- "git --no-pager cmd" did not have short-and-sweet single letter
1463
- option. Now it does.
1267
+ With merge.renames configuration set to false, the recursive merge
1268
+ strategy can be told not to spend cycles trying to find renamed
1269
+ paths and merge them accordingly.
1270
1271
Will merge to 'master'.
1272
1273
1468
-* sb/diff-color-move-more (2018-04-25) 7 commits
1274
+* sb/diff-color-move-more (2018-05-21) 8 commits
1275
+ - diff: color-moved white space handling options imply color-moved
1276
- diff.c: add --color-moved-ignore-space-delta option
1277
- diff.c: decouple white space treatment from move detection algorithm
1278
- diff.c: add a blocks mode for moved code detection
@@ -1479,7 +1286,7 @@ of the repositories listed at
1286
Will merge to 'next'.
1287
1288
1482
-* ds/generation-numbers (2018-05-02) 11 commits
1289
+* ds/generation-numbers (2018-05-22) 11 commits
1290
- commit-graph.txt: update design document
1291
- merge: check config before loading commits
1292
- commit: use generation number in remove_redundant()
@@ -1489,73 +1296,23 @@ of the repositories listed at
1296
- commit-graph: always load commit-graph information
1297
- commit: use generations in paint_down_to_common()
1298
- commit-graph: compute generation numbers
1492
- - commit: add generation number to struct commmit
1299
+ - commit: add generation number to struct commit
1300
- 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.)
1301
+ (this branch is used by ds/commit-graph-lockfile-fix.)
1302
1303
A recently added "commit-graph" datafile has learned to store
1304
pre-computed generation numbers to speed up the decisions to stop
1305
history traversal.
1306
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'.
1307
+ Will merge to 'next'.
1308
1309
1557
-* nd/command-list (2018-05-10) 13 commits
1310
+* nd/command-list (2018-05-21) 17 commits
1311
- completion: allow to customize the completable command list
1312
+ - completion: add and use --list-cmds=alias
1313
+ - completion: add and use --list-cmds=nohelpers
1314
+ - Move declaration for alias.c to alias.h
1315
+ - completion: reduce completable command list
1316
- completion: let git provide the completable command list
1317
- command-list.txt: documentation and guide line
1318
- help: use command-list.txt for the source of guides
@@ -1576,7 +1333,10 @@ of the repositories listed at
1333
Will merge to 'next'.
1334
1335
1579
-* sg/complete-paths (2018-04-17) 11 commits
1336
+* sg/complete-paths (2018-05-21) 13 commits
1337
+ (merged to 'next' on 2018-05-22 at a00b992aec)
1338
+ + t9902-completion: exercise __git_complete_index_file() directly
1339
+ + completion: don't return with error from __gitcomp_file_direct()
1340
(merged to 'next' on 2018-05-08 at 2a11444f90)
1341
+ completion: fill COMPREPLY directly when completing paths
1342
+ completion: improve handling quoted paths in 'git ls-files's output
@@ -1597,34 +1357,16 @@ of the repositories listed at
1357
1358
1359
* 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
1360
+ (merged to 'next' on 2018-05-23 at 2e9c0daf0b)
1361
+ + builtin/blame: add new coloring scheme config
1362
+ + builtin/blame: highlight recently changed lines
1363
+ + builtin/blame: dim uninteresting metadata lines
1364
1365
"git blame" learns to unhighlight uninteresting metadata from the
1366
originating commit on lines that are the same as the previous one,
1367
and also paint lines in different colors depending on the age of
1368
the commit.
1369
1609
- Will merge to 'next'.
1610
-
1611
-
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
-
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
-
1370
Will merge to 'master'.
1371
1372
@@ -1663,91 +1405,6 @@ of the repositories listed at
1405
1406
Will keep in 'pu'.
1407
1666
-
1667
-* nd/pack-objects-pack-struct (2018-04-16) 15 commits
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
-
1689
- Will merge to 'master'.
1690
- cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
1691
-
1692
-
1693
-* nd/repack-keep-pack (2018-04-16) 7 commits
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
1705
- been taught to pretend as if the largest existing packfile is
1706
- marked with ".keep" so that it is left untouched while objects in
1707
- other packs and loose ones are repacked.
1708
-
1709
- Will merge to 'master'.
1710
- cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
1711
-
1712
-
1713
-* tg/worktree-add-existing-branch (2018-04-30) 4 commits
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
-
1722
- Will merge to 'master'.
1723
-
1724
-
1725
-* js/rebase-recreate-merge (2018-04-26) 17 commits
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
-
1749
- Will merge to 'master'.
1750
-
1408
--------------------------------------------------
1409
[Discarded]
1410