What's cooking (2018/07 #03)

Junio C Hamano committed Jul 25, 2018 at 15:06 UTC 417fa7cd28255e5e824d68c77c98eff232f2b12f
1 file changed +966 -936
whats-cooking.txt
+966 -936
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jul 2018, #02; Wed, 18)
4 -X-master-at: b7bd9486b055c3f967a870311e704e3bb0654e4f
5 -X-next-at: 5c9ce644c390ec4ef3ba4adc94e7f4af17ade36b
3 +Subject: What's cooking in git.git (Jul 2018, #03; Wed, 25)
4 +X-master-at: ffc6fa0e396238de3a30623912980263b4f283ab
5 +X-next-at: a71716f1adea8665ad1231d8d929021f562d287b
6
7 -What's cooking in git.git (Jul 2018, #02; Wed, 18)
7 +What's cooking in git.git (Jul 2018, #03; Wed, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -30,255 +30,729 @@ of the repositories listed at
30 --------------------------------------------------
31 [Graduated to "master"]
32
33 -* ao/config-from-gitmodules (2018-06-26) 6 commits
34 - (merged to 'next' on 2018-07-11 at 5d88dc6fb7)
35 - + submodule-config: reuse config_from_gitmodules in repo_read_gitmodules
36 - + submodule-config: pass repository as argument to config_from_gitmodules
37 - + submodule-config: make 'config_from_gitmodules' private
38 - + submodule-config: add helper to get 'update-clone' config from .gitmodules
39 - + submodule-config: add helper function to get 'fetch' config from .gitmodules
40 - + config: move config_from_gitmodules to submodule-config.c
33 +* ag/rebase-p (2018-07-06) 1 commit
34 + (merged to 'next' on 2018-07-18 at c36ebba99b)
35 + + git-rebase--preserve-merges: fix formatting of todo help message
36
42 - Tighten the API to make it harder to misuse in-tree .gitmodules
43 - file, even though it shares the same syntax with configuration
44 - files, to read random configuration items from it.
37 + The help message shown in the editor to edit todo list in "rebase -p"
38 + has regressed recently, which has been corrected.
39
40
47 -* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit
48 - (merged to 'next' on 2018-06-29 at da6f49d292)
49 - + docs: link to gitsubmodules
41 +* as/sequencer-customizable-comment-char (2018-07-16) 1 commit
42 + (merged to 'next' on 2018-07-18 at 4163e23f29)
43 + + sequencer: use configured comment character
44
51 - Docfix.
45 + Honor core.commentchar when preparing the list of commits to replay
46 + in "rebase -i".
47
48
54 -* bw/protocol-v2 (2018-06-22) 1 commit
55 - (merged to 'next' on 2018-06-29 at 78090cc343)
56 - + protocol-v2 doc: put HTTP headers after request
49 +* bb/pedantic (2018-07-09) 8 commits
50 + (merged to 'next' on 2018-07-18 at e9d075e8ed)
51 + + utf8.c: avoid char overflow
52 + + string-list.c: avoid conversion from void * to function pointer
53 + + sequencer.c: avoid empty statements at top level
54 + + convert.c: replace "\e" escapes with "\033".
55 + + fixup! refs/refs-internal.h: avoid forward declaration of an enum
56 + + refs/refs-internal.h: avoid forward declaration of an enum
57 + + fixup! connect.h: avoid forward declaration of an enum
58 + + connect.h: avoid forward declaration of an enum
59 + (this branch is used by bb/make-developer-pedantic.)
60
58 - Doc fix.
61 + The codebase has been updated to compile cleanly with -pedantic
62 + option.
63
64
61 -* dj/runtime-prefix (2018-06-26) 1 commit
62 - (merged to 'next' on 2018-07-11 at 27d99fef94)
63 - + Makefile: tweak sed invocation
65 +* bb/unicode-11-width (2018-07-09) 1 commit
66 + (merged to 'next' on 2018-07-18 at 075648ed37)
67 + + unicode: update the width tables to Unicode 11
68
65 - POSIX portability fix in Makefile to fix a glitch introduced a few
66 - releases ago.
69 + The character display width table has been updated to match the
70 + latest Unicode standard.
71
72
69 -* ds/commit-graph (2018-06-28) 1 commit
70 - (merged to 'next' on 2018-07-11 at d579f733ed)
71 - + commit-graph: fix documentation inconsistencies
73 +* bc/send-email-auto-cte (2018-07-09) 4 commits
74 + (merged to 'next' on 2018-07-18 at d16c2a301a)
75 + + docs: correct RFC specifying email line length
76 + + send-email: automatically determine transfer-encoding
77 + + send-email: accept long lines with suitable transfer encoding
78 + + send-email: add an auto option for transfer encoding
79
73 - Docfix.
80 + The content-transfer-encoding of the message "git send-email" sends
81 + out by default was 8bit, which can cause trouble when there is an
82 + overlong line to bust RFC 5322/2822 limit. A new option 'auto' to
83 + automatically switch to quoted-printable when there is such a line
84 + in the payload has been introduced and is made the default.
85
86
76 -* ds/ewah-cleanup (2018-06-21) 10 commits
77 - (merged to 'next' on 2018-06-28 at 9cd7c0d54a)
78 - + ewah: delete unused 'rlwit_discharge_empty()'
79 - + ewah: drop ewah_serialize_native function
80 - + ewah: drop ewah_deserialize function
81 - + ewah_io: delete unused 'ewah_serialize()'
82 - + ewah_bitmap: delete unused 'ewah_or()'
83 - + ewah_bitmap: delete unused 'ewah_not()'
84 - + ewah_bitmap: delete unused 'ewah_and_not()'
85 - + ewah_bitmap: delete unused 'ewah_and()'
86 - + ewah/bitmap.c: delete unused 'bitmap_each_bit()'
87 - + ewah/bitmap.c: delete unused 'bitmap_clear()'
87 +* bp/log-ref-write-fd-with-strbuf (2018-07-10) 1 commit
88 + (merged to 'next' on 2018-07-18 at 25a3a99528)
89 + + convert log_ref_write_fd() to use strbuf
90
89 - Originally merged to 'next' on 2018-06-22
91 + Code clean-up.
92
91 - Remove unused function definitions and declarations from ewah
92 - bitmap subsystem.
93
94 +* bw/ref-in-want (2018-06-28) 8 commits
95 + (merged to 'next' on 2018-07-18 at 7e9f8db37c)
96 + + fetch-pack: implement ref-in-want
97 + + fetch-pack: put shallow info in output parameter
98 + + fetch: refactor to make function args narrower
99 + + fetch: refactor fetch_refs into two functions
100 + + fetch: refactor the population of peer ref OIDs
101 + + upload-pack: test negotiation with changing repository
102 + + upload-pack: implement ref-in-want
103 + + test-pkt-line: add unpack-sideband subcommand
104 + (this branch is used by bw/fetch-pack-i18n, jt/connectivity-check-after-unshallow, jt/partial-clone-fsck-connectivity and jt/tags-to-promised-blobs-fix.)
105
95 -* en/merge-recursive-cleanup (2018-06-12) 6 commits
96 - (merged to 'next' on 2018-06-28 at 1a3646eb7d)
97 - + merge-recursive: add pointer about unduly complex looking code
98 - + merge-recursive: rename conflict_rename_*() family of functions
99 - + merge-recursive: clarify the rename_dir/RENAME_DIR meaning
100 - + merge-recursive: align labels with their respective code blocks
101 - + merge-recursive: fix numerous argument alignment issues
102 - + merge-recursive: fix miscellaneous grammar error in comment
106 + Protocol v2 has been updated to allow slightly out-of-sync set of
107 + servers to work together to serve a single client, which would be
108 + useful with load-balanced servers that talk smart HTTP transport.
109
104 - Originally merged to 'next' on 2018-06-19
110
106 - Code cleanup.
111 +* en/apply-comment-fix (2018-06-28) 1 commit
112 + (merged to 'next' on 2018-07-18 at 31d818f17d)
113 + + apply: fix grammar error in comment
114
115
109 -* en/rebase-i-microfixes (2018-06-27) 3 commits
110 - (merged to 'next' on 2018-07-11 at d913ca0f77)
111 - + git-rebase--merge: modernize "git-$cmd" to "git $cmd"
112 - + Fix use of strategy options with interactive rebases
113 - + t3418: add testcase showing problems with rebase -i and strategy options
116 +* en/rebase-consistency (2018-06-27) 9 commits
117 + (merged to 'next' on 2018-07-18 at d597206c79)
118 + + git-rebase: make --allow-empty-message the default
119 + + t3401: add directory rename testcases for rebase and am
120 + + git-rebase.txt: document behavioral differences between modes
121 + + directory-rename-detection.txt: technical docs on abilities and limitations
122 + + git-rebase.txt: address confusion between --no-ff vs --force-rebase
123 + + git-rebase: error out when incompatible options passed
124 + + t3422: new testcases for checking when incompatible options passed
125 + + git-rebase.sh: update help messages a bit
126 + + git-rebase.txt: document incompatible options
127
115 - Will merge to 'master'.
128 + "git rebase" behaved slightly differently depending on which one of
129 + the three backends gets used; this has been documented and an
130 + effort to make them more uniform has begun.
131
132
118 -* jk/branch-l-0-deprecation (2018-06-22) 3 commits
119 - (merged to 'next' on 2018-06-29 at fac676dfb9)
120 - + branch: deprecate "-l" option
121 - + t: switch "branch -l" to "branch --create-reflog"
122 - + t3200: unset core.logallrefupdates when testing reflog creation
123 - (this branch is used by jk/branch-l-1-repurpose.)
133 +* en/t5407-rebase-m-fix (2018-06-28) 1 commit
134 + (merged to 'next' on 2018-07-18 at 459875daeb)
135 + + t5407: fix test to cover intended arguments
136
125 - The "-l" option in "git branch -l" is an unfortunate short-hand for
126 - "--create-reflog", but many users, both old and new, somehow expect
127 - it to be something else, perhaps "--list". This step warns when "-l"
128 - is used as a short-hand for "--create-reflog" and warns about the
129 - future repurposing of the it when it is used.
137
138 +* es/test-lint-one-shot-export (2018-07-16) 5 commits
139 + (merged to 'next' on 2018-07-18 at 26a6124963)
140 + + t/check-non-portable-shell: detect "FOO=bar shell_func"
141 + + t/check-non-portable-shell: make error messages more compact
142 + + t/check-non-portable-shell: stop being so polite
143 + + t6046/t9833: fix use of "VAR=VAL cmd" with a shell function
144 + + Merge branch 'jc/t3404-one-shot-export-fix' into es/test-lint-one-shot-export
145 + (this branch uses jc/t3404-one-shot-export-fix.)
146
132 -* js/enhanced-version-info (2018-06-29) 1 commit
133 - (merged to 'next' on 2018-07-11 at 815b2ea2bc)
134 - + Makefile: fix the "built from commit" code
147 + Look for broken use of "VAR=VAL shell_func" in test scripts as part
148 + of test-lint.
149
136 - Build fix.
150
151 +* hs/push-cert-check-cleanup (2018-07-11) 2 commits
152 + (merged to 'next' on 2018-07-18 at 1ed25fbd77)
153 + + gpg-interface: make parse_gpg_output static and remove from interface header
154 + + builtin/receive-pack: use check_signature from gpg-interface
155 + (this branch is used by hs/gpgsm.)
156
139 -* js/rebase-recreate-merge (2018-06-27) 1 commit
140 - (merged to 'next' on 2018-07-11 at eb8f33aaef)
141 - + rebase: fix documentation formatting
157 + Code clean-up.
158
143 - Docfix.
159
160 +* jc/t3404-one-shot-export-fix (2018-07-12) 1 commit
161 + (merged to 'next' on 2018-07-18 at e15a79dca7)
162 + + t3404: fix use of "VAR=VAL cmd" with a shell function
163 + (this branch is used by es/test-lint-one-shot-export.)
164
146 -* jt/remove-pack-bitmap-global (2018-06-21) 2 commits
147 - (merged to 'next' on 2018-06-29 at 852857b04e)
148 - + pack-bitmap: add free function
149 - + pack-bitmap: remove bitmap_git global variable
165 + Correct a broken use of "VAR=VAL shell_func" in a test.
166
151 - The effort to move globals to per-repository in-core structure
152 - continues.
167
168 +* jk/empty-pick-fix (2018-07-11) 2 commits
169 + (merged to 'next' on 2018-07-18 at 43bfa862f2)
170 + + sequencer: don't say BUG on bogus input
171 + + sequencer: handle empty-set cases consistently
172
155 -* ld/p423 (2018-06-19) 6 commits
156 - (merged to 'next' on 2018-06-29 at af76acb664)
157 - + git-p4: python3: fix octal constants
158 - + git-p4: python3: use print() function
159 - + git-p4: python3: basestring workaround
160 - + git-p4: python3: remove backticks
161 - + git-p4: python3: replace dict.has_key(k) with "k in dict"
162 - + git-p4: python3: replace <> with !=
173 + Handling of an empty range by "git cherry-pick" was inconsistent
174 + depending on how the range ended up to be empty, which has been
175 + corrected.
176
164 - Code preparation to make "git p4" closer to be usable with Python 3.
177
178 +* jk/fetch-all-peeled-fix (2018-07-06) 1 commit
179 + (merged to 'next' on 2018-07-18 at d06c6f1665)
180 + + t5500: prettify non-commit tag tests
181
167 -* mb/filter-branch-optim (2018-06-26) 1 commit
168 - (merged to 'next' on 2018-07-11 at e43a0136c2)
169 - + filter-branch: skip commits present on --state-branch
182 + Test modernization.
183
171 - "git filter-branch" when used with the "--state-branch" option
172 - still attempted to rewrite the commits whose filtered result is
173 - known from the previous attempt (which is recorded on the state
174 - branch); the command has been corrected not to waste cycles doing
175 - so.
184
185 +* jk/for-each-ref-icase (2018-07-03) 3 commits
186 + (merged to 'next' on 2018-07-18 at 4c86d62adb)
187 + + ref-filter: avoid backend filtering with --ignore-case
188 + + for-each-ref: consistently pass WM_IGNORECASE flag
189 + + t6300: add a test for --ignore-case
190
178 -* ms/core-icase-doc (2018-06-28) 1 commit
179 - (merged to 'next' on 2018-07-11 at 8f0d71c32d)
180 - + Documentation: declare "core.ignoreCase" as internal variable
191 + The "--ignore-case" option of "git for-each-ref" (and its friends)
192 + did not work correctly, which has been fixed.
193
182 - Clarify that setting core.ignoreCase to deviate from reality would
183 - not turn a case-incapable filesystem into a case-capable one.
194
195 +* jt/connectivity-check-after-unshallow (2018-07-03) 1 commit
196 + (merged to 'next' on 2018-07-18 at 8e7ee889c3)
197 + + fetch-pack: write shallow, then check connectivity
198 + (this branch is used by jt/partial-clone-fsck-connectivity and jt/tags-to-promised-blobs-fix; uses bw/ref-in-want; is tangled with bw/fetch-pack-i18n.)
199 +
200 + "git fetch" failed to correctly validate the set of objects it
201 + received when making a shallow history deeper, which has been
202 + corrected.
203
186 -* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit
187 - (merged to 'next' on 2018-06-29 at 538337be74)
188 - + sequencer: do not squash 'reword' commits when we hit conflicts
204
190 - Bugfix for "rebase -i" corner case regression.
205 +* jt/partial-clone-fsck-connectivity (2018-07-09) 2 commits
206 + (merged to 'next' on 2018-07-18 at 968fd9c9f0)
207 + + clone: check connectivity even if clone is partial
208 + + upload-pack: send refs' objects despite "filter"
209 + (this branch is used by jt/tags-to-promised-blobs-fix; uses bw/ref-in-want and jt/connectivity-check-after-unshallow; is tangled with bw/fetch-pack-i18n.)
210
211 + Partial clone support of "git clone" has been updated to correctly
212 + validate the objects it receives from the other side. The server
213 + side has been corrected to send objects that are directly
214 + requested, even if they may match the filtering criteria (e.g. when
215 + doing a "lazy blob" partial clone).
216
193 -* sb/mailmap (2018-06-29) 1 commit
194 - (merged to 'next' on 2018-07-11 at d9dc53e374)
195 - + .mailmap: merge different spellings of names
217
197 - Will merge to 'master'.
218 +* kn/userdiff-php (2018-07-06) 2 commits
219 + (merged to 'next' on 2018-07-18 at 9a533dc33a)
220 + + userdiff: support new keywords in PHP hunk header
221 + + t4018: add missing test cases for PHP
222 +
223 + The userdiff pattern for .php has been updated.
224 +
225 +
226 +* mh/fast-import-no-diff-delta-empty (2018-07-06) 1 commit
227 + (merged to 'next' on 2018-07-18 at eb393871f4)
228 + + fast-import: do not call diff_delta() with empty buffer
229 +
230 + "git fast-import" has been updated to avoid attempting to create
231 + delta against a zero-byte-long string, which is pointless.
232 +
233 +
234 +* mk/merge-in-sparse-checkout (2018-07-11) 1 commit
235 + (merged to 'next' on 2018-07-18 at d2a6d2684d)
236 + + unpack-trees: do not fail reset because of unmerged skipped entry
237 +
238 + "git reset --merge" (hence "git merge ---abort") and "git reset --hard"
239 + had trouble working correctly in a sparsely checked out working
240 + tree after a conflict, which has been corrected.
241 +
242 +
243 +* nd/command-list (2018-07-16) 1 commit
244 + (merged to 'next' on 2018-07-18 at 77ed2a3914)
245 + + vcbuild/README: update to accommodate for missing common-cmds.h
246 +
247 + Build doc update for Windows.
248 +
249 +
250 +* rj/submodule-fsck-skip (2018-07-03) 1 commit
251 + (merged to 'next' on 2018-07-11 at 985f88cf7e)
252 + + fsck: check skiplist for object in fsck_blob()
253 +
254 + "fsck.skipList" did not prevent a blob object listed there from
255 + being inspected for is contents (e.g. we recently started to
256 + inspect the contents of ".gitmodules" for certain malicious
257 + patterns), which has been corrected.
258 +
259 +
260 +* sb/blame-color (2018-07-16) 1 commit
261 + (merged to 'next' on 2018-07-18 at c319268502)
262 + + blame: prefer xsnprintf to strcpy for colors
263 + (this branch is used by jk/banned-function.)
264 +
265 + Code clean-up.
266 +
267
268 +* sb/submodule-move-head-error-msg (2018-06-25) 1 commit
269 + (merged to 'next' on 2018-07-18 at 9e213ad1aa)
270 + + submodule.c: report the submodule that an error occurs in
271 +
272 + "git checkout --recurse-submodules another-branch" did not report
273 + in which submodule it failed to update the working tree, which
274 + resulted in an unhelpful error message.
275 +
276 +
277 +* tb/config-default (2018-07-06) 1 commit
278 + (merged to 'next' on 2018-07-18 at 7994476f6f)
279 + + builtin/config: work around an unsized array forward declaration
280 +
281 + Compilation fix.
282 +
283 +
284 +* wc/find-commit-with-pattern-on-detached-head (2018-07-12) 1 commit
285 + (merged to 'next' on 2018-07-18 at 334d2420c0)
286 + + sha1-name.c: for ":/", find detached HEAD commits
287 +
288 + "git rev-parse ':/substring'" did not consider the history leading
289 + only to HEAD when looking for a commit with the given substring,
290 + when the HEAD is detached. This has been fixed.
291 +
292 +--------------------------------------------------
293 +[New Topics]
294 +
295 +* ds/commit-graph-with-grafts (2018-07-19) 8 commits
296 + - commit-graph: close_commit_graph before shallow walk
297 + - commit-graph: not compatible with uninitialized repo
298 + - commit-graph: not compatible with grafts
299 + - commit-graph: not compatible with replace objects
300 + - test-repository: properly init repo
301 + - commit-graph: update design document
302 + - refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback
303 + - refs.c: migrate internal ref iteration to pass thru repository argument
304 + (this branch uses ds/commit-graph-fsck, jt/commit-graph-per-object-store and sb/object-store-lookup; is tangled with ds/reachable.)
305 +
306 + The recently introduced commit-graph auxiliary data is incompatible
307 + with mechanisms such as replace & grafts that "breaks" immutable
308 + nature of the object reference relationship. Disable optimizations
309 + based on its use (and updating existing commit-graph) when these
310 + incompatible features are in use in the repository.
311 +
312 + Will merge to 'next'.
313 +
314 +
315 +* jk/core-use-replace-refs (2018-07-18) 3 commits
316 + - add core.usereplacerefs config option
317 + - check_replace_refs: rename to read_replace_refs
318 + - check_replace_refs: fix outdated comment
319 +
320 + A new configuration variable core.usereplacerefs has been added,
321 + primarily to help server installations that want to ignore the
322 + replace mechanism altogether.
323 +
324 + Will merge to 'next'.
325 +
326 +
327 +* nd/i18n (2018-07-23) 23 commits
328 + - transport-helper.c: mark more strings for translation
329 + - transport.c: mark more strings for translation
330 + - sha1-file.c: mark more strings for translation
331 + - sequencer.c: mark more strings for translation
332 + - replace-object.c: mark more strings for translation
333 + - refspec.c: mark more strings for translation
334 + - refs.c: mark more strings for translation
335 + - pkt-line.c: mark more strings for translation
336 + - object.c: mark more strings for translation
337 + - exec-cmd.c: mark more strings for translation
338 + - environment.c: mark more strings for translation
339 + - dir.c: mark more strings for translation
340 + - convert.c: mark more strings for translation
341 + - connect.c: mark more strings for translation
342 + - config.c: mark more strings for translation
343 + - commit-graph.c: mark more strings for translation
344 + - builtin/replace.c: mark more strings for translation
345 + - builtin/pack-objects.c: mark more strings for translation
346 + - builtin/grep.c: mark strings for translation
347 + - builtin/config.c: mark more strings for translation
348 + - archive-zip.c: mark more strings for translation
349 + - archive-tar.c: mark more strings for translation
350 + - Update messages in preparation for i18n
351 +
352 + Many more strings are prepared for l10n.
353 +
354 + Will merge to 'next'.
355 +
356 +
357 +* sb/histogram-less-memory (2018-07-23) 4 commits
358 + - xdiff/histogram: remove tail recursion
359 + - xdiff/xhistogram: move index allocation into find_lcs
360 + - xdiff/xhistogram: factor out memory cleanup into free_index()
361 + - xdiff/xhistogram: pass arguments directly to fall_back_to_classic_diff
362 +
363 + "git diff --histogram" had a bad memory usage pattern, which has
364 + been rearranged to reduce the peak usage.
365 +
366 + Will merge to 'next'.
367 +
368 +
369 +* bb/make-developer-pedantic (2018-07-25) 1 commit
370 + - Makefile: add a DEVOPTS flag to get pedantic compilation
371 +
372 + "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
373 + with -pedantic option, which may catch more problematic program
374 + constructs and potential bugs.
375 +
376 + Will merge to 'next' and then to 'master'.
377 +
378 +
379 +* bw/clone-ref-prefixes (2018-07-20) 1 commit
380 + - clone: send ref-prefixes when using protocol v2
381 +
382 + The wire-protocol v2 relies on the client to send "ref prefixes" to
383 + limit the bandwidth spent on the initial ref advertisement. "git
384 + clone" when learned to speak v2 forgot to do so, which has been
385 + corrected.
386 +
387 + Will merge to 'next'.
388 +
389 +
390 +* bw/fetch-pack-i18n (2018-07-23) 1 commit
391 + - fetch-pack: mark die strings for translation
392 +
393 + i18n updates.
394 +
395 + Will merge to 'next' and then to 'master'.
396 +
397 +
398 +* bw/protocol-v2 (2018-07-24) 1 commit
399 + - pack-protocol: mention and point to docs for protocol v2
400 +
401 + Doc update.
402 +
403 + Will merge to 'next' and then to 'master'.
404 +
405 +
406 +* ds/reachable (2018-07-20) 18 commits
407 + - commit-reach: use can_all_from_reach
408 + - commit-reach: make can_all_from_reach... linear
409 + - commit-reach: replace ref_newer logic
410 + - test-reach: test commit_contains
411 + - test-reach: test can_all_from_reach_with_flags
412 + - test-reach: test reduce_heads
413 + - test-reach: test get_merge_bases_many
414 + - test-reach: test is_descendant_of
415 + - test-reach: test in_merge_bases
416 + - test-reach: create new test tool for ref_newer
417 + - commit-reach: move can_all_from_reach_with_flags
418 + - upload-pack: generalize commit date cutoff
419 + - upload-pack: refactor ok_to_give_up()
420 + - upload-pack: make reachable() more generic
421 + - commit-reach: move commit_contains from ref-filter
422 + - commit-reach: move ref_newer from remote.c
423 + - commit.h: remove method declarations
424 + - commit-reach: move walk methods from commit.c
425 + (this branch uses ds/commit-graph-fsck, jt/commit-graph-per-object-store and sb/object-store-lookup; is tangled with ds/commit-graph-with-grafts.)
426 +
427 + The code for computing history reachability has been shuffled,
428 + obtained a bunch of new tests to cover them, and then being
429 + improved.
430 +
431 + Stuck in review?
432 + cf. <20180723203500.231932-1-jonathantanmy@google.com>
433 + cf. <20180723204112.233274-1-jonathantanmy@google.com>
434 + cf. <CAGZ79kb7tWV=cmboA+nsChAUaiC+fVVM-GBCuWfsypC+-wyaVg@mail.gmail.com>
435 +
436 +
437 +* en/merge-recursive-skip-fix (2018-07-23) 2 commits
438 + - merge-recursive: preserve skip_worktree bit when necessary
439 + - t3507: add a testcase showing failure with sparse checkout
440 +
441 + When the sparse checkout feature is in use, "git cherry-pick" and
442 + other mergy operations lost the skip_worktree bit when a path that
443 + is excluded from checkout requires content level merge, which is
444 + resolved as the same as the HEAD version, without materializing the
445 + merge result in the working tree, which made the path appear as
446 + deleted. This has been corrected by preserving the skip_worktree
447 + bit (and not materializing the file in the working tree).
448 +
449 + Stuck in review?
450 + cf. <75aa297e-4857-d92a-7041-618ff3b0b77a@gmail.com>
451 +
452 +
453 +* es/format-patch-interdiff (2018-07-23) 6 commits
454 + - format-patch: allow --interdiff to apply to a lone-patch
455 + - log-tree: show_log: make commentary block delimiting reusable
456 + - interdiff: teach show_interdiff() to indent interdiff
457 + - format-patch: teach --interdiff to respect -v/--reroll-count
458 + - format-patch: add --interdiff option to embed diff in cover letter
459 + - format-patch: allow additional generated content in make_cover_letter()
460 + (this branch is used by es/format-patch-rangediff.)
461 +
462 + "git format-patch" learned a new "--interdiff" option to explain
463 + the difference between this version and the previous atttempt in
464 + the cover letter (or after the tree-dashes as a comment).
465 +
466 + Stuck in review?
467 + cf. <CAPig+cSuYUYSPTuKx08wcmQM-G12_-W2T4BS07fA=6grM1b8Gw@mail.gmail.com>
468 +
469 +
470 +* es/format-patch-rangediff (2018-07-25) 10 commits
471 + - format-patch: allow --range-diff to apply to a lone-patch
472 + - format-patch: add --creation-factor tweak for --range-diff
473 + - format-patch: teach --range-diff to respect -v/--reroll-count
474 + - format-patch: extend --range-diff to accept revision range
475 + - format-patch: add --range-diff option to embed diff in cover letter
476 + - range-diff: relieve callers of low-level configuration burden
477 + - range-diff: publish default creation factor
478 + - range-diff: respect diff_option.file rather than assuming 'stdout'
479 + - Merge branch 'es/format-patch-interdiff' into es/format-patch-rangediff
480 + - Merge branch 'js/range-diff' into es/format-patch-rangediff
481 + (this branch uses es/format-patch-interdiff and js/range-diff.)
482 +
483 + "git format-patch" learned a new "--range-diff" option to explain
484 + the difference between this version and the previous atttempt in
485 + the cover letter (or after the tree-dashes as a comment).
486 +
487 + Need to wait for the prereq topics to solidify a bit more.
488 +
489 +
490 +* jk/banned-function (2018-07-24) 5 commits
491 + - banned.h: mark strncpy() as banned
492 + - banned.h: mark sprintf() as banned
493 + - banned.h: mark strcat() as banned
494 + - automatically ban strcpy()
495 + - Merge branch 'sb/blame-color' into jk/banned-function
496 +
497 + It is too easy to misuse system API functions such as strcat();
498 + these selected functions are now forbidden in this codebase and
499 + will cause a compilation failure.
500 +
501 + Will merge to 'next'.
502 +
503 +
504 +* jk/size-t (2018-07-24) 6 commits
505 + - strbuf_humanise: use unsigned variables
506 + - pass st.st_size as hint for strbuf_readlink()
507 + - strbuf_readlink: use ssize_t
508 + - strbuf: use size_t for length in intermediate variables
509 + - reencode_string: use size_t for string lengths
510 + - reencode_string: use st_add/st_mult helpers
511 +
512 + Code clean-up to use size_t/ssize_t when they are the right type.
513 +
514 + Will merge to 'next'.
515 +
516 +
517 +* js/t7406-recursive-submodule-update-order-fix (2018-07-23) 1 commit
518 + - t7406: avoid failures solely due to timing issues
519 +
520 + Test fix.
521 +
522 + Will merge to 'next' and then to 'master'.
523 +
524 +
525 +* js/vscode (2018-07-23) 9 commits
526 + - vscode: let cSpell work on commit messages, too
527 + - vscode: add a dictionary for cSpell
528 + - vscode: use 8-space tabs, no trailing ws, etc for Git's source code
529 + - vscode: wrap commit messages at column 72 by default
530 + - vscode: only overwrite C/C++ settings
531 + - mingw: define WIN32 explicitly
532 + - cache.h: extract enum declaration from inside a struct declaration
533 + - vscode: hard-code a couple defines
534 + - contrib: add a script to initialize VS Code configuration
535 +
536 + Add a script (in contrib/) to help users of VSCode work better with
537 + our codebase.
538 +
539 + Stuck in review?
540 + cf. <20180723165719.GA16420@aiede.svl.corp.google.com>
541 + cf. <20180723174108.GA9285@aiede.svl.corp.google.com>
542 +
543 +
544 +* jt/tag-following-with-proto-v2-fix (2018-07-24) 2 commits
545 + - fetch: send "refs/tags/" prefix upon CLI refspecs
546 + - t5702: test fetch with multiple refspecs at a time
547 +
548 + The wire-protocol v2 relies on the client to send "ref prefixes" to
549 + limit the bandwidth spent on the initial ref advertisement. "git
550 + fetch $remote branch:branch" that asks tags that point into the
551 + history leading to the "branch" automatically followed sent to
552 + narrow prefix and broke the tag following, which has been fixed.
553 +
554 + Will merge to 'next'.
555 +
556 +
557 +* nd/pack-deltify-regression-fix (2018-07-23) 1 commit
558 + - pack-objects: fix performance issues on packing large deltas
559 +
560 + In a recent update in 2.18 era, "git pack-objects" started
561 + producing a larger than necessary packfiles by missing
562 + opportunities to use large deltas.
563 +
564 + Will merge to and cook in 'next'.
565 +
566 +
567 +* sb/trailers-docfix (2018-07-20) 1 commit
568 + - Documentation/git-interpret-trailers: explain possible values
569 +
570 + Doc update.
571 +
572 + Will merge to 'next' and then to 'master'.
573 +
574 +
575 +* sg/coccicheck-updates (2018-07-23) 5 commits
576 + - coccinelle: extract dedicated make target to clean Coccinelle's results
577 + - coccinelle: put sane filenames into output patches
578 + - coccinelle: exclude sha1dc source files from static analysis
579 + - coccinelle: use $(addsuffix) in 'coccicheck' make target
580 + - coccinelle: mark the 'coccicheck' make target as .PHONY
581 +
582 + Update the way we use Coccinelle to find out-of-style code that
583 + need to be modernised.
584 +
585 + Will merge to 'next'.
586 +
587 +
588 +* sg/fast-import-dump-refs-on-checkpoint-fix (2018-07-20) 1 commit
589 + - t9300: wait for background fast-import process to die after killing it
590 +
591 + Test update.
592 +
593 + Will merge to 'next' and then to 'master'.
594 +
595 +
596 +* sg/travis-cocci-diagnose-failure (2018-07-23) 2 commits
597 + - travis-ci: fail if Coccinelle static analysis found something to transform
598 + - travis-ci: run Coccinelle static analysis with two parallel jobs
599 +
600 + Update the way we run static analysis tool at TravisCI to make it
601 + easier to use its findings.
602 +
603 + Will merge to 'next' and then to 'master'.
604 +
605 +
606 +* ab/newhash-is-sha256 (2018-07-25) 1 commit
607 + - doc hash-function-transition: note the lack of a changelog
608 +
609 + Documentation update.
610 +
611 + Waiting for another attempt for the second part.
612 +
613 +
614 +* bb/redecl-enum-fix (2018-07-25) 1 commit
615 + - packfile: drop a repeated enum declaration
616 +
617 + Compilation fix.
618 +
619 +
620 +* es/diff-color-move-fix (2018-07-25) 1 commit
621 + - diff: --color-moved: rename "dimmed_zebra" to "dimmed-zebra"
622 +
623 + One of the "diff --color-moved" mode "dimmed_zebra" that was named
624 + in an unusual way has been deprecated and replaced by
625 + "dimmed-zebra".
626 +
627 + Will merge to 'next' and then to 'master'.
628 +
629 +
630 +* jh/structured-logging (2018-07-25) 25 commits
631 + - structured-logging: add config data facility
632 + - structured-logging: t0420 tests for interacitve child_summary
633 + - structured-logging: t0420 tests for child process detail events
634 + - structured-logging: add child process classification
635 + - structured-logging: add detail-events for child processes
636 + - structured-logging: add structured logging to remote-curl
637 + - structured-logging: t0420 tests for aux-data
638 + - structured-logging: add aux-data for size of sparse-checkout file
639 + - structured-logging: add aux-data for index size
640 + - structured-logging: add aux-data facility
641 + - structured-logging: t0420 tests for timers
642 + - structured-logging: add timer around preload_index
643 + - structured-logging: add timer around wt-status functions
644 + - structured-logging: add timer around do_write_index
645 + - structured-logging: add timer around do_read_index
646 + - structured-logging: add timer facility
647 + - structured-logging: add detail-event for lazy_init_name_hash
648 + - structured-logging: add detail-event facility
649 + - structured-logging: t0420 basic tests
650 + - structured-logging: set sub_command field for checkout command
651 + - structured-logging: set sub_command field for branch command
652 + - structured-logging: add session-id to log events
653 + - structured-logging: add structured logging framework
654 + - structured-logging: add STRUCTURED_LOGGING=1 to Makefile
655 + - structured-logging: design document
656 + (this branch uses jh/json-writer.)
657 +
658 + X-Gah.
659 +
660 +--------------------------------------------------
661 +[Stalled]
662 +
663 +* pw/add-p-select (2018-03-16) 3 commits
664 + - add -p: optimize line selection for short hunks
665 + - add -p: allow line selection to be inverted
666 + - add -p: select individual hunk lines
667 +
668 + "git add -p" interactive interface learned to let users choose
669 + individual added/removed lines to be used in the operation, instead
670 + of accepting or rejecting a whole hunk.
671 +
672 + Expecting a reroll to reignite the discussion.
673 + cf. <9895c7b7-eac4-28c1-90c6-443acd1131b7@talktalk.net>
674 +
675 +
676 +* hn/bisect-first-parent (2018-04-21) 1 commit
677 + - bisect: create 'bisect_flags' parameter in find_bisection()
678 +
679 + Preliminary code update to allow passing more flags down the
680 + bisection codepath in the future.
681 +
682 + We do not add random code that does not have real users to our
683 + codebase, so let's have it wait until such a real code materializes
684 + before too long.
685 +
686 +
687 +* av/fsmonitor-updates (2018-01-04) 6 commits
688 + - fsmonitor: use fsmonitor data in `git diff`
689 + - fsmonitor: remove debugging lines from t/t7519-status-fsmonitor.sh
690 + - fsmonitor: make output of test-dump-fsmonitor more concise
691 + - fsmonitor: update helper tool, now that flags are filled later
692 + - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid
693 + - dir.c: update comments to match argument name
694 +
695 + Code clean-up on fsmonitor integration, plus optional utilization
696 + of the fsmonitor data in diff-files.
697 +
698 + Waiting for an update.
699 + cf. <alpine.DEB.2.21.1.1801042335130.32@MININT-6BKU6QN.europe.corp.microsoft.com>
700 +
701 +
702 +* pb/bisect-helper-2 (2018-07-23) 8 commits
703 + - t6030: make various test to pass GETTEXT_POISON tests
704 + - bisect--helper: `bisect_start` shell function partially in C
705 + - bisect--helper: `get_terms` & `bisect_terms` shell function in C
706 + - bisect--helper: `bisect_next_check` shell function in C
707 + - bisect--helper: `check_and_set_terms` shell function in C
708 + - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
709 + - bisect--helper: `bisect_write` shell function in C
710 + - bisect--helper: `bisect_reset` shell function in C
711
200 -* sb/object-store-grafts (2018-05-18) 19 commits
201 - (merged to 'next' on 2018-06-28 at 02f70d6302)
202 - + commit: allow lookup_commit_graft to handle arbitrary repositories
203 - + commit: allow prepare_commit_graft to handle arbitrary repositories
204 - + shallow: migrate shallow information into the object parser
205 - + path.c: migrate global git_path_* to take a repository argument
206 - + cache: convert get_graft_file to handle arbitrary repositories
207 - + commit: convert read_graft_file to handle arbitrary repositories
208 - + commit: convert register_commit_graft to handle arbitrary repositories
209 - + commit: convert commit_graft_pos() to handle arbitrary repositories
210 - + shallow: add repository argument to is_repository_shallow
211 - + shallow: add repository argument to check_shallow_file_for_update
212 - + shallow: add repository argument to register_shallow
213 - + shallow: add repository argument to set_alternate_shallow_file
214 - + commit: add repository argument to lookup_commit_graft
215 - + commit: add repository argument to prepare_commit_graft
216 - + commit: add repository argument to read_graft_file
217 - + commit: add repository argument to register_commit_graft
218 - + commit: add repository argument to commit_graft_pos
219 - + object: move grafts to object parser
220 - + object-store: move object access functions to object-store.h
221 - (this branch is used by jt/commit-graph-per-object-store and sb/object-store-lookup.)
222 -
223 - Originally merged to 'next' on 2018-06-22
224 -
225 - The conversion to pass "the_repository" and then "a_repository"
226 - throughout the object access API continues.
227 -
228 -
229 -* sb/submodule-core-worktree (2018-06-19) 3 commits
230 - (merged to 'next' on 2018-06-28 at 96e1a8dbd1)
231 - + submodule deinit: unset core.worktree
232 - + submodule: ensure core.worktree is set after update
233 - + submodule: unset core.worktree if no working tree is present
234 -
235 - Originally merged to 'next' on 2018-06-22
236 -
237 - "git submodule" did not correctly adjust core.worktree setting that
238 - indicates whether/where a submodule repository has its associated
239 - working tree across various state transitions, which has been
240 - corrected.
712 + Expecting a reroll.
713 + cf. <0102015f5e5ee171-f30f4868-886f-47a1-a4e4-b4936afc545d-000000@eu-west-1.amazonses.com>
714
715 + I just rebased the topic to a newer base as it did not build
716 + standalone with the base I originally queued the topic on, but
717 + otherwise there is no update to address any of the review comments
718 + in the thread above---we are still waiting for a reroll.
719
243 -* tb/grep-column (2018-06-22) 7 commits
244 - (merged to 'next' on 2018-06-29 at 25dc70426e)
245 - + contrib/git-jump/git-jump: jump to exact location
246 - + grep.c: add configuration variables to show matched option
247 - + builtin/grep.c: add '--column' option to 'git-grep(1)'
248 - + grep.c: display column number of first match
249 - + grep.[ch]: extend grep_opt to allow showing matched column
250 - + grep.c: expose {,inverted} match column in match_line()
251 - + Documentation/config.txt: camel-case lineNumber for consistency
252 - (this branch is used by tb/grep-only-matching.)
720
254 - "git grep" learned the "--column" option that gives not just the
255 - line number but the column number of the hit.
721 +* mk/http-backend-content-length (2018-06-11) 3 commits
722 + - http-backend: respect CONTENT_LENGTH for receive-pack
723 + - http-backend: respect CONTENT_LENGTH as specified by rfc3875
724 + - http-backend: cleanup writing to child process
725
726 + The http-backend (used for smart-http transport) used to slurp the
727 + whole input until EOF, without paying attention to CONTENT_LENGTH
728 + that is supplied in the environment and instead expecting the Web
729 + server to close the input stream. This has been fixed.
730
258 -* tz/exclude-doc-smallfixes (2018-06-27) 2 commits
259 - (merged to 'next' on 2018-07-11 at 5134f1ca72)
260 - + dir.c: fix typos in core.excludesfile comment
261 - + gitignore.txt: clarify default core.excludesfile path
731
263 - Doc updates.
732 +* jk/drop-ancient-curl (2017-08-09) 5 commits
733 + - http: #error on too-old curl
734 + - curl: remove ifdef'd code never used with curl >=7.19.4
735 + - http: drop support for curl < 7.19.4
736 + - http: drop support for curl < 7.16.0
737 + - http: drop support for curl < 7.11.1
738
739 + Some code in http.c that has bitrot is being removed.
740
266 -* vs/typofixes (2018-06-22) 1 commit
267 - (merged to 'next' on 2018-06-29 at 665c8db2f7)
268 - + Documentation: spelling and grammar fixes
741 + Expecting a reroll.
742
270 - Doc fix.
743
744 +* mk/use-size-t-in-zlib (2017-08-10) 1 commit
745 + . zlib.c: use size_t for size
746
273 -* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit
274 - (merged to 'next' on 2018-06-29 at 0dffc46ce2)
275 - + format-patch: clear UNINTERESTING flag before prepare_bases
747 + The wrapper to call into zlib followed our long tradition to use
748 + "unsigned long" for sizes of regions in memory, which have been
749 + updated to use "size_t".
750
277 - Recently added "--base" option to "git format-patch" command did
278 - not correctly generate prereq patch ids.
751 + Needs resurrecting by making sure the fix is good and still applies
752 + (or adjusted to today's codebase).
753
754 --------------------------------------------------
281 -[New Topics]
755 +[Cooking]
756
757 * am/sequencer-author-script-fix (2018-07-18) 1 commit
758 - sequencer.c: terminate the last line of author-script properly
@@ -295,7 +769,8 @@ of the repositories listed at
769
770
771 * bc/sequencer-export-work-tree-as-well (2018-07-16) 1 commit
298 - - sequencer: pass absolute GIT_WORK_TREE to exec commands
772 + (merged to 'next' on 2018-07-24 at 0b83ade721)
773 + + sequencer: pass absolute GIT_WORK_TREE to exec commands
774
775 "git rebase" started exporting GIT_DIR environment variable and
776 exposing it to hook scripts when part of it got rewritten in C.
@@ -305,15 +780,16 @@ of the repositories listed at
780 operate on different repository, but the current behaviour is
781 already broken for them anyway.
782
308 - Will merge to 'next'.
783 + Will merge to 'master'.
784
785
786 * bp/test-drop-caches-for-windows (2018-07-12) 1 commit
312 - - handle lower case drive letters on Windows
787 + (merged to 'next' on 2018-07-24 at 257bb336c6)
788 + + handle lower case drive letters on Windows
789
790 A test helper update for Windows.
791
316 - Will merge to 'next'.
792 + Will merge to 'master'.
793
794
795 * en/abort-df-conflict-fixes (2018-07-16) 2 commits
@@ -329,40 +805,26 @@ of the repositories listed at
805
806
807 * es/chain-lint-in-subshell (2018-07-17) 10 commits
332 - - t/chainlint: add chainlint "specialized" test cases
333 - - t/chainlint: add chainlint "complex" test cases
334 - - t/chainlint: add chainlint "cuddled" test cases
335 - - t/chainlint: add chainlint "loop" and "conditional" test cases
336 - - t/chainlint: add chainlint "nested subshell" test cases
337 - - t/chainlint: add chainlint "one-liner" test cases
338 - - t/chainlint: add chainlint "whitespace" test cases
339 - - t/chainlint: add chainlint "basic" test cases
340 - - t/Makefile: add machinery to check correctness of chainlint.sed
341 - - t/test-lib: teach --chain-lint to detect broken &&-chains in subshells
808 + (merged to 'next' on 2018-07-24 at 9370bbdfaf)
809 + + t/chainlint: add chainlint "specialized" test cases
810 + + t/chainlint: add chainlint "complex" test cases
811 + + t/chainlint: add chainlint "cuddled" test cases
812 + + t/chainlint: add chainlint "loop" and "conditional" test cases
813 + + t/chainlint: add chainlint "nested subshell" test cases
814 + + t/chainlint: add chainlint "one-liner" test cases
815 + + t/chainlint: add chainlint "whitespace" test cases
816 + + t/chainlint: add chainlint "basic" test cases
817 + + t/Makefile: add machinery to check correctness of chainlint.sed
818 + + t/test-lib: teach --chain-lint to detect broken &&-chains in subshells
819 (this branch uses es/test-fixes.)
820
821 Look for broken "&&" chains that are hidden in subshell, many of
822 which have been found and corrected.
823
347 - Will merge to 'next'.
348 -
349 -
350 -* es/test-lint-one-shot-export (2018-07-16) 5 commits
351 - (merged to 'next' on 2018-07-18 at 26a6124963)
352 - + t/check-non-portable-shell: detect "FOO=bar shell_func"
353 - + t/check-non-portable-shell: make error messages more compact
354 - + t/check-non-portable-shell: stop being so polite
355 - + t6046/t9833: fix use of "VAR=VAL cmd" with a shell function
356 - + Merge branch 'jc/t3404-one-shot-export-fix' into es/test-lint-one-shot-export
357 - (this branch uses jc/t3404-one-shot-export-fix.)
358 -
359 - Look for broken use of "vAR=VAL shell_func" in test scripts as part
360 - of test-lint.
361 -
824 Will merge to 'master'.
825
826
365 -* hs/gpgsm (2018-07-18) 7 commits
827 +* hs/gpgsm (2018-07-20) 7 commits
828 - gpg-interface t: extend the existing GPG tests with GPGSM
829 - gpg-interface: introduce new signature format "x509" using gpgsm
830 - gpg-interface: introduce new config to select per gpg format program
@@ -370,7 +832,6 @@ of the repositories listed at
832 - gpg-interface: introduce an abstraction for multiple gpg formats
833 - t/t7510: check the validation of the new config gpg.format
834 - gpg-interface: add new config to select how to sign a commit
373 - (this branch uses hs/push-cert-check-cleanup.)
835
836 Teach "git tag -s" etc. a few configuration varaibles (gpg.format
837 that can be set to "openpgp" or "x509", and gpg.<format>.program
@@ -378,41 +839,31 @@ of the repositories listed at
839 to allow x.509 certs with CMS via "gpgsm" to be used instead of
840 openpgp via "gnupg".
841
381 - I think this round is mostly ready, except for a minor nit in the
382 - last step. I do not mind merging this to 'next' and leave fixing
383 - of the test to a later clean-up.
384 -
385 -
386 -* jc/t3404-one-shot-export-fix (2018-07-12) 1 commit
387 - (merged to 'next' on 2018-07-18 at e15a79dca7)
388 - + t3404: fix use of "VAR=VAL cmd" with a shell function
389 - (this branch is used by es/test-lint-one-shot-export.)
390 -
391 - Correct a broken use of "VAR=VAL shell_func" in a test.
392 -
393 - Will merge to 'master'.
842 + Will merge to 'next'.
843
844
845 * jk/has-uncommitted-changes-fix (2018-07-11) 1 commit
397 - - has_uncommitted_changes(): fall back to empty tree
846 + (merged to 'next' on 2018-07-24 at 2ea14c0afb)
847 + + has_uncommitted_changes(): fall back to empty tree
848
849 "git pull --rebase" on a corrupt HEAD caused a segfault. In
850 general we substitute an empty tree object when running the in-core
851 equivalent of the diff-index command, and the codepath has been
852 corrected to do so as well to fix this issue.
853
404 - Will merge to 'next'.
854 + Will merge to 'master'.
855
856
857 * jm/send-email-tls-auth-on-batch (2018-07-16) 1 commit
408 - - send-email: fix tls AUTH when sending batch
858 + (merged to 'next' on 2018-07-24 at fb3e653f44)
859 + + send-email: fix tls AUTH when sending batch
860
861 "git send-email" when using in a batched mode that limits the
862 number of messages sent in a single SMTP session lost the contents
863 of the variable used to choose between tls/ssl, unable to send the
864 second and later batches, which has been fixed.
865
415 - Will merge to 'next'.
866 + Will merge to 'master'.
867
868 This is marked to be merged to 'next' already, but I do not mind
869 getting an updated version with an improved log message before that
@@ -431,23 +882,25 @@ of the repositories listed at
882 point running gc to improve the situation); we used to exit with
883 failure in such a case.
884
434 - Under discussion.
885 + Stuck in review?
886 cf. <20180717201348.GD26218@sigill.intra.peff.net>
887
888
889 * js/rebase-merge-octopus (2018-07-11) 3 commits
439 - - rebase --rebase-merges: adjust man page for octopus support
440 - - rebase --rebase-merges: add support for octopus merges
441 - - merge: allow reading the merge commit message from a file
890 + (merged to 'next' on 2018-07-24 at 14ad8699de)
891 + + rebase --rebase-merges: adjust man page for octopus support
892 + + rebase --rebase-merges: add support for octopus merges
893 + + merge: allow reading the merge commit message from a file
894
895 "git rebase --rebase-merges" mode now handles octopus merges as
896 well.
897
446 - Will merge to 'next'.
898 + Will merge to 'master'.
899
900
901 * jt/fetch-negotiator-skipping (2018-07-16) 1 commit
450 - - negotiator/skipping: skip commits during fetch
902 + (merged to 'next' on 2018-07-24 at 8e25a49405)
903 + + negotiator/skipping: skip commits during fetch
904 (this branch uses jt/fetch-pack-negotiator; is tangled with jt/fetch-nego-tip.)
905
906 Add a server-side knob to skip commits in exponential/fibbonacci
@@ -456,39 +909,21 @@ of the repositories listed at
909 transfer, instead of going back one commit a time during common
910 ancestor discovery during the "git fetch" transaction.
911
459 - Will merge to 'next'.
912 + Will merge to 'master'.
913
914
915 * jt/tags-to-promised-blobs-fix (2018-07-16) 2 commits
463 - - tag: don't warn if target is missing but promised
464 - - revision: tolerate promised targets of tags
465 - (this branch uses bw/ref-in-want, jt/connectivity-check-after-unshallow and jt/partial-clone-fsck-connectivity.)
916 + (merged to 'next' on 2018-07-24 at 8d7e78a671)
917 + + tag: don't warn if target is missing but promised
918 + + revision: tolerate promised targets of tags
919
920 The lazy clone support had a few places where missing but promised
921 objects were not correctly tolerated, which have been fixed.
922
470 - Will merge to 'next'.
471 -
472 -
473 -* nd/command-list (2018-07-16) 1 commit
474 - (merged to 'next' on 2018-07-18 at 77ed2a3914)
475 - + vcbuild/README: update to accommodate for missing common-cmds.h
476 -
477 - Build doc update for Windows.
478 -
479 - Will merge to 'master'.
480 -
481 -
482 -* sb/blame-color (2018-07-16) 1 commit
483 - (merged to 'next' on 2018-07-18 at c319268502)
484 - + blame: prefer xsnprintf to strcpy for colors
485 -
486 - Code clean-up.
487 -
923 Will merge to 'master'.
924
925
491 -* sb/submodule-update-in-c (2018-07-17) 6 commits
926 +* sb/submodule-update-in-c (2018-07-18) 6 commits
927 - submodule--helper: introduce new update-module-mode helper
928 - builtin/submodule--helper: factor out method to update a single submodule
929 - builtin/submodule--helper: store update_clone information in a struct
@@ -503,15 +938,16 @@ of the repositories listed at
938
939
940 * sg/httpd-test-unflake (2018-07-12) 3 commits
506 - - t/lib-httpd: avoid occasional failures when checking access.log
507 - - t/lib-httpd: add the strip_access_log() helper function
508 - - t5541: clean up truncating access log
941 + (merged to 'next' on 2018-07-24 at b7df820256)
942 + + t/lib-httpd: avoid occasional failures when checking access.log
943 + + t/lib-httpd: add the strip_access_log() helper function
944 + + t5541: clean up truncating access log
945
946 httpd tests saw occasional breakage due to the way its access log
947 gets inspected by the tests, which has been updated to make them
948 less flaky.
949
514 - Will merge to 'next'.
950 + Will merge to 'master'.
951
952
953 * sl/commit-dry-run-with-short-output-fix (2018-07-17) 3 commits
@@ -519,8 +955,11 @@ of the repositories listed at
955 - wt-status: teach wt_status_collect about merges in progress
956 - t7501: add merge conflict tests for dry run
957
522 - Under discussion.
523 - cf. <xmqqpnzlpyux.fsf@gitster-ct.c.googlers.com>
958 + "git commit --dry-run" gave a correct exit status even during a
959 + conflict resolution toward a merge, but it did not with the
960 + "--short" option, which has been corrected.
961 +
962 + Will merge to 'next'.
963
964
965 * tg/rerere (2018-07-16) 11 commits
@@ -537,436 +976,241 @@ of the repositories listed at
976 - rerere: unify error messages when read_cache fails
977
978
540 -* wc/find-commit-with-pattern-on-detached-head (2018-07-12) 1 commit
541 - (merged to 'next' on 2018-07-18 at 334d2420c0)
542 - + sha1-name.c: for ":/", find detached HEAD commits
543 -
544 - "git rev-parse ':/substring'" did not consider the history leading
545 - only to HEAD when looking for a commit with the given substring,
546 - when the HEAD is detached. This has been fixed.
547 -
548 - Will merge to 'master'.
549 -
550 -
979 * jk/ui-color-always-to-auto (2018-07-18) 1 commit
980 - Documentation: fix --color option formatting
981
554 ---------------------------------------------------
555 -[Stalled]
556 -
557 -* pw/add-p-select (2018-03-16) 3 commits
558 - - add -p: optimize line selection for short hunks
559 - - add -p: allow line selection to be inverted
560 - - add -p: select individual hunk lines
561 -
562 - "git add -p" interactive interface learned to let users choose
563 - individual added/removed lines to be used in the operation, instead
564 - of accepting or rejecting a whole hunk.
565 -
566 - Expecting a reroll to reignite the discussion.
567 - cf. <9895c7b7-eac4-28c1-90c6-443acd1131b7@talktalk.net>
568 -
569 -
570 -* hn/bisect-first-parent (2018-04-21) 1 commit
571 - - bisect: create 'bisect_flags' parameter in find_bisection()
572 -
573 - Preliminary code update to allow passing more flags down the
574 - bisection codepath in the future.
575 -
576 - We do not add random code that does not have real users to our
577 - codebase, so let's have it wait until such a real code materializes
578 - before too long.
579 -
982 + Doc formatting fix.
983
581 -* av/fsmonitor-updates (2018-01-04) 6 commits
582 - - fsmonitor: use fsmonitor data in `git diff`
583 - - fsmonitor: remove debugging lines from t/t7519-status-fsmonitor.sh
584 - - fsmonitor: make output of test-dump-fsmonitor more concise
585 - - fsmonitor: update helper tool, now that flags are filled later
586 - - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid
587 - - dir.c: update comments to match argument name
588 -
589 - Code clean-up on fsmonitor integration, plus optional utilization
590 - of the fsmonitor data in diff-files.
591 -
592 - Waiting for an update.
593 - cf. <alpine.DEB.2.21.1.1801042335130.32@MININT-6BKU6QN.europe.corp.microsoft.com>
594 -
595 -
596 -* pb/bisect-helper-2 (2018-06-13) 8 commits
597 - - t6030: make various test to pass GETTEXT_POISON tests
598 - - bisect--helper: `bisect_start` shell function partially in C
599 - - bisect--helper: `get_terms` & `bisect_terms` shell function in C
600 - - bisect--helper: `bisect_next_check` shell function in C
601 - - bisect--helper: `check_and_set_terms` shell function in C
602 - - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
603 - - bisect--helper: `bisect_write` shell function in C
604 - - bisect--helper: `bisect_reset` shell function in C
605 -
606 - Expecting a reroll.
607 - cf. <0102015f5e5ee171-f30f4868-886f-47a1-a4e4-b4936afc545d-000000@eu-west-1.amazonses.com>
608 -
609 - I just rebased the topic to a newer base as it did not build
610 - standalone with the base I originally queued the topic on, but
611 - otherwise there is no update to address any of the review comments
612 - in the thread above---we are still waiting for a reroll.
613 -
614 -
615 -* mk/http-backend-content-length (2018-06-11) 3 commits
616 - - http-backend: respect CONTENT_LENGTH for receive-pack
617 - - http-backend: respect CONTENT_LENGTH as specified by rfc3875
618 - - http-backend: cleanup writing to child process
619 -
620 - The http-backend (used for smart-http transport) used to slurp the
621 - whole input until EOF, without paying attention to CONTENT_LENGTH
622 - that is supplied in the environment and instead expecting the Web
623 - server to close the input stream. This has been fixed.
624 -
625 -
626 -* jk/drop-ancient-curl (2017-08-09) 5 commits
627 - - http: #error on too-old curl
628 - - curl: remove ifdef'd code never used with curl >=7.19.4
629 - - http: drop support for curl < 7.19.4
630 - - http: drop support for curl < 7.16.0
631 - - http: drop support for curl < 7.11.1
632 -
633 - Some code in http.c that has bitrot is being removed.
634 -
635 - Expecting a reroll.
636 -
637 -
638 -* mk/use-size-t-in-zlib (2017-08-10) 1 commit
639 - . zlib.c: use size_t for size
640 -
641 - The wrapper to call into zlib followed our long tradition to use
642 - "unsigned long" for sizes of regions in memory, which have been
643 - updated to use "size_t".
644 -
645 - Needs resurrecting by making sure the fix is good and still applies
646 - (or adjusted to today's codebase).
984 + Will merge to 'next' and then to 'master'.
985
648 ---------------------------------------------------
649 -[Cooking]
986
987 * jh/json-writer (2018-07-16) 1 commit
988 - json_writer: new routines to create JSON data
989 + (this branch is used by jh/structured-logging.)
990
991 Preparatory code to later add json output for telemetry data.
992
656 - A series on top that adds telemetry data exists but hasn't been
657 - picked up yet.
993 + Will merge to 'next'.
994
995
996 * ag/rebase-i-in-c (2018-07-10) 13 commits
997 - rebase -i: rewrite the rest of init_revisions_and_shortrevisions in C
998 - rebase -i: implement the logic to initialize the variable $revision in C
663 - - rebase--interactive: remove unused modes and functions
664 - - rebase--interactive: rewrite complete_action() in C
665 - - sequencer: change the way skip_unnecessary_picks() returns its result
666 - - sequencer: refactor append_todo_help() to write its message to a buffer
667 - - rebase -i: rewrite checkout_onto() in C
668 - - rebase -i: rewrite setup_reflog_action() in C
669 - - sequencer: add a new function to silence a command, except if it fails
670 - - rebase-interactive: rewrite the edit-todo functionality in C
671 - - editor: add a function to launch the sequence editor
672 - - rebase--interactive: rewrite append_todo_help() in C
673 - - sequencer: make two functions and an enum from sequencer.c public
674 -
675 - Piecemeal rewrite of the remaining "rebase -i" machinery in C.
676 -
677 - Expecting a reroll.
678 -
679 - The early parts of the series seem solidifying; perhaps with a
680 - reroll or two, they become 'next' material?
681 -
682 -
683 -* en/apply-comment-fix (2018-06-28) 1 commit
684 - (merged to 'next' on 2018-07-18 at 31d818f17d)
685 - + apply: fix grammar error in comment
686 -
687 - Will merge to 'master'.
688 -
689 -
690 -* en/t5407-rebase-m-fix (2018-06-28) 1 commit
691 - (merged to 'next' on 2018-07-18 at 459875daeb)
692 - + t5407: fix test to cover intended arguments
693 -
694 - Will merge to 'master'.
695 -
696 -
697 -* sb/object-store-lookup (2018-06-29) 33 commits
698 - - commit.c: allow lookup_commit_reference to handle arbitrary repositories
699 - - commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories
700 - - tag.c: allow deref_tag to handle arbitrary repositories
701 - - object.c: allow parse_object to handle arbitrary repositories
702 - - object.c: allow parse_object_buffer to handle arbitrary repositories
703 - - commit.c: allow get_cached_commit_buffer to handle arbitrary repositories
704 - - commit.c: allow set_commit_buffer to handle arbitrary repositories
705 - - commit.c: migrate the commit buffer to the parsed object store
706 - - commit-slabs: remove realloc counter outside of slab struct
707 - - commit.c: allow parse_commit_buffer to handle arbitrary repositories
708 - - tag: allow parse_tag_buffer to handle arbitrary repositories
709 - - tag: allow lookup_tag to handle arbitrary repositories
710 - - commit: allow lookup_commit to handle arbitrary repositories
711 - - tree: allow lookup_tree to handle arbitrary repositories
712 - - blob: allow lookup_blob to handle arbitrary repositories
713 - - object: allow lookup_object to handle arbitrary repositories
714 - - object: allow object_as_type to handle arbitrary repositories
715 - - tag: add repository argument to deref_tag
716 - - tag: add repository argument to parse_tag_buffer
717 - - tag: add repository argument to lookup_tag
718 - - commit: add repository argument to get_cached_commit_buffer
719 - - commit: add repository argument to set_commit_buffer
720 - - commit: add repository argument to parse_commit_buffer
721 - - commit: add repository argument to lookup_commit
722 - - commit: add repository argument to lookup_commit_reference
723 - - commit: add repository argument to lookup_commit_reference_gently
724 - - tree: add repository argument to lookup_tree
725 - - blob: add repository argument to lookup_blob
726 - - object: add repository argument to object_as_type
727 - - object: add repository argument to parse_object_buffer
728 - - object: add repository argument to lookup_object
729 - - object: add repository argument to parse_object
730 - - Merge branch 'sb/object-store-grafts' into sb/object-store-lookup
731 - (this branch is used by jt/commit-graph-per-object-store.)
732 -
733 - lookup_commit_reference() and friends have been updated to find
734 - in-core object for a specific in-core repository instance.
735 -
736 - Will merge to 'next'.
737 -
738 -
739 -* ag/rebase-p (2018-07-06) 1 commit
740 - (merged to 'next' on 2018-07-18 at c36ebba99b)
741 - + git-rebase--preserve-merges: fix formatting of todo help message
742 -
743 - The help message shown in the editor to edit todo list in "rebase -p"
744 - has regressed recently, which has been corrected.
745 -
746 - Will merge to 'master'.
747 -
748 -
749 -* bb/pedantic (2018-07-09) 8 commits
750 - (merged to 'next' on 2018-07-18 at e9d075e8ed)
751 - + utf8.c: avoid char overflow
752 - + string-list.c: avoid conversion from void * to function pointer
753 - + sequencer.c: avoid empty statements at top level
754 - + convert.c: replace "\e" escapes with "\033".
755 - + fixup! refs/refs-internal.h: avoid forward declaration of an enum
756 - + refs/refs-internal.h: avoid forward declaration of an enum
757 - + fixup! connect.h: avoid forward declaration of an enum
758 - + connect.h: avoid forward declaration of an enum
999 + - rebase--interactive: remove unused modes and functions
1000 + - rebase--interactive: rewrite complete_action() in C
1001 + - sequencer: change the way skip_unnecessary_picks() returns its result
1002 + - sequencer: refactor append_todo_help() to write its message to a buffer
1003 + - rebase -i: rewrite checkout_onto() in C
1004 + - rebase -i: rewrite setup_reflog_action() in C
1005 + - sequencer: add a new function to silence a command, except if it fails
1006 + - rebase-interactive: rewrite the edit-todo functionality in C
1007 + - editor: add a function to launch the sequence editor
1008 + - rebase--interactive: rewrite append_todo_help() in C
1009 + - sequencer: make two functions and an enum from sequencer.c public
1010
760 - The codebase has been updated to compile cleanly with -pedantic
761 - option.
1011 + Piecemeal rewrite of the remaining "rebase -i" machinery in C.
1012
763 - Will merge to 'master'.
1013 + A reroll (which is rumored to be quite good) exists, but hasn't
1014 + been picked up yet.
1015
1016
766 -* bb/unicode-11-width (2018-07-09) 1 commit
767 - (merged to 'next' on 2018-07-18 at 075648ed37)
768 - + unicode: update the width tables to Unicode 11
1017 +* sb/object-store-lookup (2018-06-29) 33 commits
1018 + (merged to 'next' on 2018-07-24 at dd96e29376)
1019 + + commit.c: allow lookup_commit_reference to handle arbitrary repositories
1020 + + commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories
1021 + + tag.c: allow deref_tag to handle arbitrary repositories
1022 + + object.c: allow parse_object to handle arbitrary repositories
1023 + + object.c: allow parse_object_buffer to handle arbitrary repositories
1024 + + commit.c: allow get_cached_commit_buffer to handle arbitrary repositories
1025 + + commit.c: allow set_commit_buffer to handle arbitrary repositories
1026 + + commit.c: migrate the commit buffer to the parsed object store
1027 + + commit-slabs: remove realloc counter outside of slab struct
1028 + + commit.c: allow parse_commit_buffer to handle arbitrary repositories
1029 + + tag: allow parse_tag_buffer to handle arbitrary repositories
1030 + + tag: allow lookup_tag to handle arbitrary repositories
1031 + + commit: allow lookup_commit to handle arbitrary repositories
1032 + + tree: allow lookup_tree to handle arbitrary repositories
1033 + + blob: allow lookup_blob to handle arbitrary repositories
1034 + + object: allow lookup_object to handle arbitrary repositories
1035 + + object: allow object_as_type to handle arbitrary repositories
1036 + + tag: add repository argument to deref_tag
1037 + + tag: add repository argument to parse_tag_buffer
1038 + + tag: add repository argument to lookup_tag
1039 + + commit: add repository argument to get_cached_commit_buffer
1040 + + commit: add repository argument to set_commit_buffer
1041 + + commit: add repository argument to parse_commit_buffer
1042 + + commit: add repository argument to lookup_commit
1043 + + commit: add repository argument to lookup_commit_reference
1044 + + commit: add repository argument to lookup_commit_reference_gently
1045 + + tree: add repository argument to lookup_tree
1046 + + blob: add repository argument to lookup_blob
1047 + + object: add repository argument to object_as_type
1048 + + object: add repository argument to parse_object_buffer
1049 + + object: add repository argument to lookup_object
1050 + + object: add repository argument to parse_object
1051 + + Merge branch 'sb/object-store-grafts' into sb/object-store-lookup
1052 + (this branch is used by ds/commit-graph-with-grafts, ds/reachable and jt/commit-graph-per-object-store.)
1053
770 - The character display width table has been updated to match the
771 - latest Unicode standard.
1054 + lookup_commit_reference() and friends have been updated to find
1055 + in-core object for a specific in-core repository instance.
1056
1057 Will merge to 'master'.
1058
1059
1060 * bc/object-id (2018-07-16) 16 commits
777 - - pretty: switch hard-coded constants to the_hash_algo
778 - - sha1-file: convert constants to uses of the_hash_algo
779 - - log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexsz
780 - - diff: switch GIT_SHA1_HEXSZ to use the_hash_algo
781 - - builtin/merge-recursive: make hash independent
782 - - builtin/merge: switch to use the_hash_algo
783 - - builtin/fmt-merge-msg: make hash independent
784 - - builtin/update-index: simplify parsing of cacheinfo
785 - - builtin/update-index: convert to using the_hash_algo
786 - - refs/files-backend: use the_hash_algo for writing refs
787 - - sha1-name: use the_hash_algo when parsing object names
788 - - strbuf: allocate space with GIT_MAX_HEXSZ
789 - - commit: express tree entry constants in terms of the_hash_algo
790 - - hex: switch to using the_hash_algo
791 - - tree-walk: replace hard-coded constants with the_hash_algo
792 - - cache: update object ID functions for the_hash_algo
1061 + (merged to 'next' on 2018-07-24 at 23680778a9)
1062 + + pretty: switch hard-coded constants to the_hash_algo
1063 + + sha1-file: convert constants to uses of the_hash_algo
1064 + + log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexsz
1065 + + diff: switch GIT_SHA1_HEXSZ to use the_hash_algo
1066 + + builtin/merge-recursive: make hash independent
1067 + + builtin/merge: switch to use the_hash_algo
1068 + + builtin/fmt-merge-msg: make hash independent
1069 + + builtin/update-index: simplify parsing of cacheinfo
1070 + + builtin/update-index: convert to using the_hash_algo
1071 + + refs/files-backend: use the_hash_algo for writing refs
1072 + + sha1-name: use the_hash_algo when parsing object names
1073 + + strbuf: allocate space with GIT_MAX_HEXSZ
1074 + + commit: express tree entry constants in terms of the_hash_algo
1075 + + hex: switch to using the_hash_algo
1076 + + tree-walk: replace hard-coded constants with the_hash_algo
1077 + + cache: update object ID functions for the_hash_algo
1078
1079 Conversion from uchar[40] to struct object_id continues.
1080
796 - Will merge to 'next'.
797 -
798 -
799 -* bc/send-email-auto-cte (2018-07-09) 4 commits
800 - (merged to 'next' on 2018-07-18 at d16c2a301a)
801 - + docs: correct RFC specifying email line length
802 - + send-email: automatically determine transfer-encoding
803 - + send-email: accept long lines with suitable transfer encoding
804 - + send-email: add an auto option for transfer encoding
805 -
806 - The content-transfer-encoding of the message "git send-email" sends
807 - out by default was 8bit, which can cause trouble when there is an
808 - overlong line to bust RFC 5322/2822 limit. A new option 'auto' to
809 - automatically switch to quoted-printable when there is such a line
810 - in the payload has been introduced and is made the default.
811 -
1081 Will merge to 'master'.
1082
1083
1084 * en/dirty-merge-fixes (2018-07-11) 9 commits
816 - - merge: fix misleading pre-merge check documentation
817 - - merge-recursive: enforce rule that index matches head before merging
818 - - t6044: add more testcases with staged changes before a merge is invoked
819 - - merge-recursive: fix assumption that head tree being merged is HEAD
820 - - merge-recursive: make sure when we say we abort that we actually abort
821 - - t6044: add a testcase for index matching head, when head doesn't match HEAD
822 - - t6044: verify that merges expected to abort actually abort
823 - - index_has_changes(): avoid assuming operating on the_index
824 - - read-cache.c: move index_has_changes() from merge.c
1085 + (merged to 'next' on 2018-07-24 at 7b6ca3507c)
1086 + + merge: fix misleading pre-merge check documentation
1087 + + merge-recursive: enforce rule that index matches head before merging
1088 + + t6044: add more testcases with staged changes before a merge is invoked
1089 + + merge-recursive: fix assumption that head tree being merged is HEAD
1090 + + merge-recursive: make sure when we say we abort that we actually abort
1091 + + t6044: add a testcase for index matching head, when head doesn't match HEAD
1092 + + t6044: verify that merges expected to abort actually abort
1093 + + index_has_changes(): avoid assuming operating on the_index
1094 + + read-cache.c: move index_has_changes() from merge.c
1095
1096 The recursive merge strategy did not properly ensure there was no
1097 change between HEAD and the index before performing its operation,
1098 which has been corrected.
1099
830 - Will merge to 'next'.
1100 + Will merge to 'master'.
1101
1102
1103 * en/t6036-merge-recursive-tests (2018-07-11) 6 commits
834 - - t6036: add a failed conflict detection case: regular files, different modes
835 - - t6036: add a failed conflict detection case with conflicting types
836 - - t6036: add a failed conflict detection case with submodule add/add
837 - - t6036: add a failed conflict detection case with submodule modify/modify
838 - - t6036: add a failed conflict detection case with symlink add/add
839 - - t6036: add a failed conflict detection case with symlink modify/modify
1104 + (merged to 'next' on 2018-07-24 at 75055cb6e1)
1105 + + t6036: add a failed conflict detection case: regular files, different modes
1106 + + t6036: add a failed conflict detection case with conflicting types
1107 + + t6036: add a failed conflict detection case with submodule add/add
1108 + + t6036: add a failed conflict detection case with submodule modify/modify
1109 + + t6036: add a failed conflict detection case with symlink add/add
1110 + + t6036: add a failed conflict detection case with symlink modify/modify
1111
1112 Tests to cover various conflicting cases have been added for
1113 merge-recursive.
1114
844 - Will merge to 'next'.
1115 + Will merge to 'master'.
1116
1117
1118 * en/t6036-recursive-corner-cases (2018-07-12) 2 commits
848 - - t6036: fix broken && chain in sub-shell
849 - - t6036: add lots of detail for directory/file conflicts in recursive case
1119 + (merged to 'next' on 2018-07-24 at b7b3514ef4)
1120 + + t6036: fix broken && chain in sub-shell
1121 + + t6036: add lots of detail for directory/file conflicts in recursive case
1122
1123 Tests to cover more D/F conflict cases have been added for
1124 merge-recursive.
1125
854 - Will merge to 'next'.
1126 + Will merge to 'master'.
1127
1128
1129 * en/t6042-insane-merge-rename-testcases (2018-07-03) 3 commits
858 - - t6042: add testcase covering long chains of rename conflicts
859 - - t6042: add testcase covering rename/rename(2to1)/delete/delete conflict
860 - - t6042: add testcase covering rename/add/delete conflict type
1130 + (merged to 'next' on 2018-07-24 at 65c80f72da)
1131 + + t6042: add testcase covering long chains of rename conflicts
1132 + + t6042: add testcase covering rename/rename(2to1)/delete/delete conflict
1133 + + t6042: add testcase covering rename/add/delete conflict type
1134
1135 Various glitches in the heuristics of merge-recursive strategy have
1136 been documented in new tests.
1137
865 - Will merge to 'next'.
1138 + Will merge to 'master'.
1139
1140 I am not sure if there is a single "correct" answer everybody can
1141 agree on for each of these "insane" cases, though.
1142
1143
1144 * en/t7405-recursive-submodule-conflicts (2018-07-11) 3 commits
872 - - t7405: verify 'merge --abort' works after submodule/path conflicts
873 - - t7405: add a directory/submodule conflict
874 - - t7405: add a file/submodule conflict
1145 + (merged to 'next' on 2018-07-24 at 6cb7d02298)
1146 + + t7405: verify 'merge --abort' works after submodule/path conflicts
1147 + + t7405: add a directory/submodule conflict
1148 + + t7405: add a file/submodule conflict
1149
1150 Tests to cover conflict cases that involve submodules have been
1151 added for merge-recursive.
1152
879 - Will merge to 'next'.
1153 + Will merge to 'master'.
1154
1155
1156 * es/test-fixes (2018-07-17) 26 commits
883 - - t5608: fix broken &&-chain
884 - - t9119: fix broken &&-chains
885 - - t9000-t9999: fix broken &&-chains
886 - - t7000-t7999: fix broken &&-chains
887 - - t6000-t6999: fix broken &&-chains
888 - - t5000-t5999: fix broken &&-chains
889 - - t4000-t4999: fix broken &&-chains
890 - - t3030: fix broken &&-chains
891 - - t3000-t3999: fix broken &&-chains
892 - - t2000-t2999: fix broken &&-chains
893 - - t1000-t1999: fix broken &&-chains
894 - - t0000-t0999: fix broken &&-chains
895 - - t9814: simplify convoluted check that command correctly errors out
896 - - t9001: fix broken "invoke hook" test
897 - - t7810: use test_expect_code() instead of hand-rolled comparison
898 - - t7400: fix broken "submodule add/reconfigure --force" test
899 - - t7201: drop pointless "exit 0" at end of subshell
900 - - t6036: fix broken "merge fails but has appropriate contents" tests
901 - - t5505: modernize and simplify hard-to-digest test
902 - - t5406: use write_script() instead of birthing shell script manually
903 - - t5405: use test_must_fail() instead of checking exit code manually
904 - - t/lib-submodule-update: fix "absorbing" test
905 - - t: drop unnecessary terminating semicolon in subshell
906 - - t: use sane_unset() rather than 'unset' with broken &&-chain
907 - - t: use test_write_lines() instead of series of 'echo' commands
908 - - t: use test_might_fail() instead of manipulating exit code manually
1157 + (merged to 'next' on 2018-07-24 at fd6796a3ef)
1158 + + t5608: fix broken &&-chain
1159 + + t9119: fix broken &&-chains
1160 + + t9000-t9999: fix broken &&-chains
1161 + + t7000-t7999: fix broken &&-chains
1162 + + t6000-t6999: fix broken &&-chains
1163 + + t5000-t5999: fix broken &&-chains
1164 + + t4000-t4999: fix broken &&-chains
1165 + + t3030: fix broken &&-chains
1166 + + t3000-t3999: fix broken &&-chains
1167 + + t2000-t2999: fix broken &&-chains
1168 + + t1000-t1999: fix broken &&-chains
1169 + + t0000-t0999: fix broken &&-chains
1170 + + t9814: simplify convoluted check that command correctly errors out
1171 + + t9001: fix broken "invoke hook" test
1172 + + t7810: use test_expect_code() instead of hand-rolled comparison
1173 + + t7400: fix broken "submodule add/reconfigure --force" test
1174 + + t7201: drop pointless "exit 0" at end of subshell
1175 + + t6036: fix broken "merge fails but has appropriate contents" tests
1176 + + t5505: modernize and simplify hard-to-digest test
1177 + + t5406: use write_script() instead of birthing shell script manually
1178 + + t5405: use test_must_fail() instead of checking exit code manually
1179 + + t/lib-submodule-update: fix "absorbing" test
1180 + + t: drop unnecessary terminating semicolon in subshell
1181 + + t: use sane_unset() rather than 'unset' with broken &&-chain
1182 + + t: use test_write_lines() instead of series of 'echo' commands
1183 + + t: use test_might_fail() instead of manipulating exit code manually
1184 (this branch is used by es/chain-lint-in-subshell.)
1185
1186 Test clean-up and corrections.
1187
913 - Will merge to 'next'.
914 -
915 -
916 -* jk/empty-pick-fix (2018-07-11) 2 commits
917 - (merged to 'next' on 2018-07-18 at 43bfa862f2)
918 - + sequencer: don't say BUG on bogus input
919 - + sequencer: handle empty-set cases consistently
920 -
921 - Handling of an empty range by "git cherry-pick" was inconsistent
922 - depending on how the range ended up to be empty, which has been
923 - corrected.
924 -
925 - Will merge to 'master'.
926 -
927 -
928 -* jk/fetch-all-peeled-fix (2018-07-06) 1 commit
929 - (merged to 'next' on 2018-07-18 at d06c6f1665)
930 - + t5500: prettify non-commit tag tests
931 -
932 - Test modernization.
933 -
934 - Will merge to 'master'.
935 -
936 -
937 -* jk/for-each-ref-icase (2018-07-03) 3 commits
938 - (merged to 'next' on 2018-07-18 at 4c86d62adb)
939 - + ref-filter: avoid backend filtering with --ignore-case
940 - + for-each-ref: consistently pass WM_IGNORECASE flag
941 - + t6300: add a test for --ignore-case
942 -
943 - The "--ignore-case" option of "git for-each-ref" (and its friends)
944 - did not work correctly, which has been fixed.
945 -
1188 Will merge to 'master'.
1189
1190
1191 * jk/fsck-gitmodules-gently (2018-07-16) 6 commits
950 - - fsck: downgrade gitmodulesParse default to "info"
951 - - fsck: split ".gitmodules too large" error from parse failure
952 - - fsck: silence stderr when parsing .gitmodules
953 - - config: add options parameter to git_config_from_mem
954 - - config: add CONFIG_ERROR_SILENT handler
955 - - config: turn die_on_error into caller-facing enum
1192 + (merged to 'next' on 2018-07-24 at 5b15c800db)
1193 + + fsck: downgrade gitmodulesParse default to "info"
1194 + + fsck: split ".gitmodules too large" error from parse failure
1195 + + fsck: silence stderr when parsing .gitmodules
1196 + + config: add options parameter to git_config_from_mem
1197 + + config: add CONFIG_ERROR_SILENT handler
1198 + + config: turn die_on_error into caller-facing enum
1199
1200 Recent "security fix" to pay attention to contents of ".gitmodules"
1201 while accepting "git push" was a bit overly strict than necessary,
1202 which has been adjusted.
1203
961 - Will merge to 'next'.
1204 + Will merge to 'master'.
1205
1206
964 -* js/range-diff (2018-07-09) 20 commits
1207 +* js/range-diff (2018-07-25) 21 commits
1208 + - range-diff: use dim/bold cues to improve dual color mode
1209 - range-diff: make --dual-color the default mode
1210 - range-diff: left-pad patch numbers
1211 - completion: support `git range-diff`
968 - - range-diff: add a man page
969 - - range-diff --dual-color: work around bogus white-space warning
1212 + - range-diff: populate the man page
1213 + - range-diff --dual-color: fix bogus white-space warning
1214 - range-diff: offer to dual-color the diffs
1215 - diff: add an internal option to dual-color diffs of diffs
1216 - color: add the meta color GIT_COLOR_REVERSE
@@ -982,79 +1226,65 @@ of the repositories listed at
1226 - range-diff: first rudimentary implementation
1227 - Introduce `range-diff` to compare iterations of a topic branch
1228 - linear-assignment: a function to solve least-cost assignment problems
1229 + (this branch is used by es/format-patch-rangediff.)
1230
1231 "git tbdiff" that lets us compare individual patches in two
1232 iterations of a topic has been rewritten and made into a built-in
1233 command.
1234
990 - Supersedes js/branch-diff topic that added a similar command under
991 - a different name.
1235 + Undecided.
1236 +
1237 + Many "The feature is useful" comments without much real review; we
1238 + know the feature is great as this mimicks tbdiff already so that is
1239 + not news.
1240 +
1241 + I've squashed an obvious documentation fix in before rebasing the
1242 + other topic that depends on it. I _think_ we would probably be
1243 + better off to _disable_ whitespace-error coloring altogether when
1244 + showing diff-of-diff, and get rid of the workaround that only is
1245 + applicable to the context lines of the outer diff (unless we first
1246 + define how whitespace errors in diff-of-diff should be colored and
1247 + implement it correctly, that is, but after seeing these two
1248 + attempts, it seems that is harder than it is worth).
1249
1250
1251 * jt/commit-graph-per-object-store (2018-07-17) 7 commits
995 - - commit-graph: add repo arg to graph readers
996 - - commit-graph: store graph in struct object_store
997 - - commit-graph: add free_commit_graph
998 - - commit-graph: add missing forward declaration
999 - - object-store: add missing include
1000 - - commit-graph: refactor preparing commit graph
1001 - - Merge branch 'ds/commit-graph-fsck' into jt/commit-graph-per-object-store
1002 - (this branch uses ds/commit-graph-fsck and sb/object-store-lookup.)
1252 + (merged to 'next' on 2018-07-24 at 090d1a4d59)
1253 + + commit-graph: add repo arg to graph readers
1254 + + commit-graph: store graph in struct object_store
1255 + + commit-graph: add free_commit_graph
1256 + + commit-graph: add missing forward declaration
1257 + + object-store: add missing include
1258 + + commit-graph: refactor preparing commit graph
1259 + + Merge branch 'ds/commit-graph-fsck' into jt/commit-graph-per-object-store
1260 + (this branch is used by ds/commit-graph-with-grafts and ds/reachable; uses ds/commit-graph-fsck and sb/object-store-lookup.)
1261
1262 The singleton commit-graph in-core instance is made per in-core
1263 repository instance.
1264
1007 - Will merge to 'next'.
1008 -
1009 -
1010 -* jt/partial-clone-fsck-connectivity (2018-07-09) 2 commits
1011 - (merged to 'next' on 2018-07-18 at 968fd9c9f0)
1012 - + clone: check connectivity even if clone is partial
1013 - + upload-pack: send refs' objects despite "filter"
1014 - (this branch is used by jt/tags-to-promised-blobs-fix; uses bw/ref-in-want and jt/connectivity-check-after-unshallow.)
1015 -
1016 - Partial clone support of "git clone" has been updated to correctly
1017 - validate the objects it receives from the other side. The server
1018 - side has been corrected to send objects that are directly
1019 - requested, even if they may match the filtering criteria (e.g. when
1020 - doing a "lazy blob" partial clone).
1021 -
1265 Will merge to 'master'.
1266
1267
1268 * kg/gc-auto-windows-workaround (2018-07-09) 1 commit
1026 - - gc --auto: release pack files before auto packing
1269 + (merged to 'next' on 2018-07-24 at 71c05d27b6)
1270 + + gc --auto: release pack files before auto packing
1271
1272 "git gc --auto" opens file descriptors for the packfiles before
1273 spawning "git repack/prune", which would upset Windows that does
1274 not want a process to work on a file that is open by another
1275 process. The issue has been worked around.
1276
1033 - Will merge to 'next'.
1034 -
1035 -
1036 -* kn/userdiff-php (2018-07-06) 2 commits
1037 - (merged to 'next' on 2018-07-18 at 9a533dc33a)
1038 - + userdiff: support new keywords in PHP hunk header
1039 - + t4018: add missing test cases for PHP
1040 -
1041 - The userdiff pattern for .php has been updated.
1042 -
1277 Will merge to 'master'.
1278
1279
1280 * lt/date-human (2018-07-09) 1 commit
1281 - Add 'human' date format
1282
1049 -
1050 -* mh/fast-import-no-diff-delta-empty (2018-07-06) 1 commit
1051 - (merged to 'next' on 2018-07-18 at eb393871f4)
1052 - + fast-import: do not call diff_delta() with empty buffer
1053 -
1054 - "git fast-import" has been updated to avoid attempting to create
1055 - delta against a zero-byte-long string, which is pointless.
1056 -
1057 - Will merge to 'master'.
1283 + A new date format "--date=human" that morphs its output depending
1284 + on how far the time is from the current time has been introduced.
1285 + "--date=auto" can be used to use this new format when the output is
1286 + goint to the pager or to the terminal and otherwise the default
1287 + format.
1288
1289
1290 * ot/ref-filter-object-info (2018-07-17) 5 commits
@@ -1073,82 +1303,20 @@ of the repositories listed at
1303 What's the doneness of this one?
1304
1305
1076 -* pk/rebase-in-c (2018-07-09) 4 commits
1306 +* pk/rebase-in-c (2018-07-23) 4 commits
1307 - builtin/rebase: support running "git rebase <upstream>"
1308 - sequencer: refactor the code to detach HEAD to checkout.c
1309 - rebase: refactor common shell functions into their own file
1310 - rebase: start implementing it as a builtin
1311
1312 Piecemeal rewrite of the "rebase" machinery in C.
1083 -
1313 Expecting a reroll, but it seems that this is getting quite close.
1314 cf. <CAOZc8M8YmLwJOzG-1jyz8ft4W_tJMwNs6kSV8inX1q_zmDW8Sg@mail.gmail.com>
1315
1316
1088 -* tb/config-default (2018-07-06) 1 commit
1089 - (merged to 'next' on 2018-07-18 at 7994476f6f)
1090 - + builtin/config: work around an unsized array forward declaration
1091 -
1092 - Compilation fix.
1093 -
1094 - Will merge to 'master'.
1095 -
1096 -
1097 -* bp/log-ref-write-fd-with-strbuf (2018-07-10) 1 commit
1098 - (merged to 'next' on 2018-07-18 at 25a3a99528)
1099 - + convert log_ref_write_fd() to use strbuf
1100 -
1101 - Code clean-up.
1102 -
1103 - Will merge to 'master'.
1104 -
1105 -
1106 -* hs/push-cert-check-cleanup (2018-07-11) 2 commits
1107 - (merged to 'next' on 2018-07-18 at 1ed25fbd77)
1108 - + gpg-interface: make parse_gpg_output static and remove from interface header
1109 - + builtin/receive-pack: use check_signature from gpg-interface
1110 - (this branch is used by hs/gpgsm.)
1111 -
1112 - Code clean-up.
1113 -
1114 - Will merge to 'master'.
1115 -
1116 -
1117 -* mk/merge-in-sparse-checkout (2018-07-11) 1 commit
1118 - (merged to 'next' on 2018-07-18 at d2a6d2684d)
1119 - + unpack-trees: do not fail reset because of unmerged skipped entry
1120 -
1121 - "git reset --merge" (hence "git merge ---abort") and "git reset --hard"
1122 - had trouble working correctly in a sparsely checked out working
1123 - tree after a conflict, which has been corrected.
1124 -
1125 - Will merge to 'master'.
1126 -
1127 -
1128 -* as/sequencer-customizable-comment-char (2018-07-16) 1 commit
1129 - (merged to 'next' on 2018-07-18 at 4163e23f29)
1130 - + sequencer: use configured comment character
1131 -
1132 - Honor core.commentchar when preparing the list of commits to replay
1133 - in "rebase -i".
1134 -
1135 - Will merge to 'master'.
1136 -
1137 -
1138 -* jt/connectivity-check-after-unshallow (2018-07-03) 1 commit
1139 - (merged to 'next' on 2018-07-18 at 8e7ee889c3)
1140 - + fetch-pack: write shallow, then check connectivity
1141 - (this branch is used by jt/partial-clone-fsck-connectivity and jt/tags-to-promised-blobs-fix; uses bw/ref-in-want.)
1142 -
1143 - "git fetch" failed to correctly validate the set of objects it
1144 - received when making a shallow history deeper, which has been
1145 - corrected.
1146 -
1147 - Will merge to 'master'.
1148 -
1149 -
1317 * jt/fetch-nego-tip (2018-07-03) 1 commit
1151 - - fetch-pack: support negotiation tip whitelist
1318 + (merged to 'next' on 2018-07-24 at a9e299006d)
1319 + + fetch-pack: support negotiation tip whitelist
1320 (this branch uses jt/fetch-pack-negotiator; is tangled with jt/fetch-negotiator-skipping.)
1321
1322 "git fetch" learned a new option "--negotiation-tip" to limit the
@@ -1157,72 +1325,16 @@ of the repositories listed at
1325 repository has a lot of refs that have little to do with the
1326 history at the remote it is fetching from.
1327
1160 - Will merge to 'next'.
1161 -
1162 -
1163 -* rj/submodule-fsck-skip (2018-07-03) 1 commit
1164 - (merged to 'next' on 2018-07-11 at 985f88cf7e)
1165 - + fsck: check skiplist for object in fsck_blob()
1166 -
1167 - "fsck.skipList" did not prevent a blob object listed there from
1168 - being inspected for is contents (e.g. we recently started to
1169 - inspect the contents of ".gitmodules" for certain malicious
1170 - patterns), which has been corrected.
1171 -
1328 Will merge to 'master'.
1329
1330
1331 * tb/grep-only-matching (2018-07-09) 2 commits
1176 - - grep.c: teach 'git grep --only-matching'
1177 - - grep.c: extract show_line_header()
1332 + (merged to 'next' on 2018-07-24 at 7e878b9d95)
1333 + + grep.c: teach 'git grep --only-matching'
1334 + + grep.c: extract show_line_header()
1335
1336 "git grep" learned the "--only-matching" option.
1337
1181 - Will merge to 'next'.
1182 -
1183 -
1184 -* bw/ref-in-want (2018-06-28) 8 commits
1185 - (merged to 'next' on 2018-07-18 at 7e9f8db37c)
1186 - + fetch-pack: implement ref-in-want
1187 - + fetch-pack: put shallow info in output parameter
1188 - + fetch: refactor to make function args narrower
1189 - + fetch: refactor fetch_refs into two functions
1190 - + fetch: refactor the population of peer ref OIDs
1191 - + upload-pack: test negotiation with changing repository
1192 - + upload-pack: implement ref-in-want
1193 - + test-pkt-line: add unpack-sideband subcommand
1194 - (this branch is used by jt/connectivity-check-after-unshallow, jt/partial-clone-fsck-connectivity and jt/tags-to-promised-blobs-fix.)
1195 -
1196 - Protocol v2 has been updated to allow slightly out-of-sync set of
1197 - servers to work together to serve a single client, which would be
1198 - useful with load-balanced servers that talk smart HTTP transport.
1199 -
1200 - Will merge to 'master'.
1201 -
1202 -
1203 -* en/rebase-consistency (2018-06-27) 9 commits
1204 - (merged to 'next' on 2018-07-18 at d597206c79)
1205 - + git-rebase: make --allow-empty-message the default
1206 - + t3401: add directory rename testcases for rebase and am
1207 - + git-rebase.txt: document behavioral differences between modes
1208 - + directory-rename-detection.txt: technical docs on abilities and limitations
1209 - + git-rebase.txt: address confusion between --no-ff vs --force-rebase
1210 - + git-rebase: error out when incompatible options passed
1211 - + t3422: new testcases for checking when incompatible options passed
1212 - + git-rebase.sh: update help messages a bit
1213 - + git-rebase.txt: document incompatible options
1214 -
1215 - "git rebase" behaved slightly differently depending on which one of
1216 - the three backends gets used; this has been documented and an
1217 - effort to make them more uniform has begun.
1218 -
1219 - Will merge to 'master'.
1220 -
1221 -
1222 -* sb/submodule-move-head-error-msg (2018-06-25) 1 commit
1223 - (merged to 'next' on 2018-07-18 at 9e213ad1aa)
1224 - + submodule.c: report the submodule that an error occurs in
1225 -
1338 Will merge to 'master'.
1339
1340
@@ -1246,7 +1358,7 @@ of the repositories listed at
1358 - fetch-object: make functions return an error code
1359
1360
1249 -* ds/multi-pack-index (2018-07-12) 23 commits
1361 +* ds/multi-pack-index (2018-07-20) 23 commits
1362 - midx: clear midx on repack
1363 - packfile: skip loading index if in multi-pack-index
1364 - midx: prevent duplicate packfile loads
@@ -1276,87 +1388,89 @@ of the repositories listed at
1388 consulting many pack .idx files; a new mechanism to have a single
1389 file that consolidates all of these .idx files is introduced.
1390
1279 - What's the doneness of this one? I vaguely recall that there was
1280 - an objection against the concept as a whole (i.e. there is a way
1281 - with less damage to gain the same object-abbrev performance); has
1282 - it (and if anything else, they) been resolved in satisfactory
1283 - fashion?
1391 + Ready to move to 'next', with some known issues to be followed up?
1392 + cf. <xmqqefg8uplg.fsf@gitster-ct.c.googlers.com>
1393 + cf. <CAPig+cTU--KrGcv4C_CwBZEuec4dgm_tJqL=CFWKT6vxxR016w@mail.gmail.com>
1394
1395
1396 * jt/fetch-pack-negotiator (2018-06-15) 7 commits
1287 - - fetch-pack: introduce negotiator API
1288 - - fetch-pack: move common check and marking together
1289 - - fetch-pack: make negotiation-related vars local
1290 - - fetch-pack: use ref adv. to prune "have" sent
1291 - - fetch-pack: directly end negotiation if ACK ready
1292 - - fetch-pack: clear marks before re-marking
1293 - - fetch-pack: split up everything_local()
1397 + (merged to 'next' on 2018-07-24 at 438efcd6b1)
1398 + + fetch-pack: introduce negotiator API
1399 + + fetch-pack: move common check and marking together
1400 + + fetch-pack: make negotiation-related vars local
1401 + + fetch-pack: use ref adv. to prune "have" sent
1402 + + fetch-pack: directly end negotiation if ACK ready
1403 + + fetch-pack: clear marks before re-marking
1404 + + fetch-pack: split up everything_local()
1405 (this branch is used by jt/fetch-nego-tip and jt/fetch-negotiator-skipping.)
1406
1407 Code restructuring and a small fix to transport protocol v2 during
1408 fetching.
1409
1299 - Will merge to 'next'.
1410 + Will merge to 'master'.
1411
1412
1413 * is/parsing-line-range (2018-06-15) 2 commits
1303 - - log: prevent error if line range ends past end of file
1304 - - blame: prevent error if range ends past end of file
1414 + (merged to 'next' on 2018-07-24 at a06b453f32)
1415 + + log: prevent error if line range ends past end of file
1416 + + blame: prevent error if range ends past end of file
1417
1418 Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log"
1419 take has been tweaked.
1420
1309 - Will merge to 'next'.
1421 + Will merge to 'master'.
1422
1423
1424 * ab/checkout-default-remote (2018-06-11) 8 commits
1313 - - checkout & worktree: introduce checkout.defaultRemote
1314 - - checkout: add advice for ambiguous "checkout <branch>"
1315 - - builtin/checkout.c: use "ret" variable for return
1316 - - checkout: pass the "num_matches" up to callers
1317 - - checkout.c: change "unique" member to "num_matches"
1318 - - checkout.c: introduce an *_INIT macro
1319 - - checkout.h: wrap the arguments to unique_tracking_name()
1320 - - checkout tests: index should be clean after dwim checkout
1425 + (merged to 'next' on 2018-07-24 at 6ef645f485)
1426 + + checkout & worktree: introduce checkout.defaultRemote
1427 + + checkout: add advice for ambiguous "checkout <branch>"
1428 + + builtin/checkout.c: use "ret" variable for return
1429 + + checkout: pass the "num_matches" up to callers
1430 + + checkout.c: change "unique" member to "num_matches"
1431 + + checkout.c: introduce an *_INIT macro
1432 + + checkout.h: wrap the arguments to unique_tracking_name()
1433 + + checkout tests: index should be clean after dwim checkout
1434
1435 "git checkout" and "git worktree add" learned to honor
1436 checkout.defaultRemote when auto-vivifying a local branch out of a
1437 remote tracking branch in a repository with multiple remotes that
1438 have tracking branches that share the same names.
1439
1327 - Will merge to 'next'.
1440 + Will merge to 'master'.
1441
1442
1443 * ds/commit-graph-fsck (2018-07-16) 23 commits
1331 - - coccinelle: update commit.cocci
1332 - - commit-graph: update design document
1333 - - gc: automatically write commit-graph files
1334 - - commit-graph: add '--reachable' option
1335 - - commit-graph: use string-list API for input
1336 - - fsck: verify commit-graph
1337 - - commit-graph: verify contents match checksum
1338 - - commit-graph: test for corrupted octopus edge
1339 - - commit-graph: verify commit date
1340 - - commit-graph: verify generation number
1341 - - commit-graph: verify parent list
1342 - - commit-graph: verify root tree OIDs
1343 - - commit-graph: verify objects exist
1344 - - commit-graph: verify corrupt OID fanout and lookup
1345 - - commit-graph: verify required chunks are present
1346 - - commit-graph: verify catches corrupt signature
1347 - - commit-graph: add 'verify' subcommand
1348 - - commit-graph: load a root tree from specific graph
1349 - - commit: force commit to parse from object database
1350 - - commit-graph: parse commit from chosen graph
1351 - - commit-graph: fix GRAPH_MIN_SIZE
1352 - - commit-graph: UNLEAK before die()
1353 - - t5318-commit-graph.sh: use core.commitGraph
1354 - (this branch is used by jt/commit-graph-per-object-store.)
1444 + (merged to 'next' on 2018-07-24 at 6a802adc7a)
1445 + + coccinelle: update commit.cocci
1446 + + commit-graph: update design document
1447 + + gc: automatically write commit-graph files
1448 + + commit-graph: add '--reachable' option
1449 + + commit-graph: use string-list API for input
1450 + + fsck: verify commit-graph
1451 + + commit-graph: verify contents match checksum
1452 + + commit-graph: test for corrupted octopus edge
1453 + + commit-graph: verify commit date
1454 + + commit-graph: verify generation number
1455 + + commit-graph: verify parent list
1456 + + commit-graph: verify root tree OIDs
1457 + + commit-graph: verify objects exist
1458 + + commit-graph: verify corrupt OID fanout and lookup
1459 + + commit-graph: verify required chunks are present
1460 + + commit-graph: verify catches corrupt signature
1461 + + commit-graph: add 'verify' subcommand
1462 + + commit-graph: load a root tree from specific graph
1463 + + commit: force commit to parse from object database
1464 + + commit-graph: parse commit from chosen graph
1465 + + commit-graph: fix GRAPH_MIN_SIZE
1466 + + commit-graph: UNLEAK before die()
1467 + + t5318-commit-graph.sh: use core.commitGraph
1468 + (this branch is used by ds/commit-graph-with-grafts, ds/reachable and jt/commit-graph-per-object-store.)
1469
1470 "git fsck" learns to make sure the optional commit-graph file is in
1471 a sane state.
1472
1359 - Will merge to 'next'.
1473 + Will merge to 'master'.
1474
1475
1476 * ma/wrapped-info (2018-05-28) 2 commits
@@ -1371,123 +1485,39 @@ of the repositories listed at
1485
1486
1487 * jm/cache-entry-from-mem-pool (2018-07-03) 8 commits
1374 - - block alloc: add validations around cache_entry lifecyle
1375 - - block alloc: allocate cache entries from mem_pool
1376 - - mem-pool: fill out functionality
1377 - - mem-pool: add life cycle management functions
1378 - - mem-pool: only search head block for available space
1379 - - block alloc: add lifecycle APIs for cache_entry structs
1380 - - read-cache: teach make_cache_entry to take object_id
1381 - - read-cache: teach refresh_cache_entry to take istate
1488 + (merged to 'next' on 2018-07-24 at 9be51a88dc)
1489 + + block alloc: add validations around cache_entry lifecyle
1490 + + block alloc: allocate cache entries from mem_pool
1491 + + mem-pool: fill out functionality
1492 + + mem-pool: add life cycle management functions
1493 + + mem-pool: only search head block for available space
1494 + + block alloc: add lifecycle APIs for cache_entry structs
1495 + + read-cache: teach make_cache_entry to take object_id
1496 + + read-cache: teach refresh_cache_entry to take istate
1497
1498 For a large tree, the index needs to hold many cache entries
1499 allocated on heap. These cache entries are now allocated out of a
1500 dedicated memory pool to amortize malloc(3) overhead.
1501
1387 - Will merge to 'next'.
1502 + Will merge to 'master'.
1503
1504 This makes each cache-entry larger by either 4 or 8 bytes, which is
1505 a bit sad, though.
1506
1507
1393 -* sb/diff-color-move-more (2018-07-17) 9 commits
1394 - - diff.c: add white space mode to move detection that allows indent changes
1395 - - diff.c: factor advance_or_nullify out of mark_color_as_moved
1396 - - diff.c: decouple white space treatment from move detection algorithm
1397 - - diff.c: add a blocks mode for moved code detection
1398 - - diff.c: adjust hash function signature to match hashmap expectation
1399 - - diff.c: do not pass diff options as keydata to hashmap
1400 - - t4015: avoid git as a pipe input
1401 - - xdiff/xdiffi.c: remove unneeded function declarations
1402 - - xdiff/xdiff.h: remove unused flags
1508 +* sb/diff-color-move-more (2018-07-19) 10 commits
1509 + (merged to 'next' on 2018-07-24 at 89c893cab2)
1510 + + diff.c: offer config option to control ws handling in move detection
1511 + + diff.c: add white space mode to move detection that allows indent changes
1512 + + diff.c: factor advance_or_nullify out of mark_color_as_moved
1513 + + diff.c: decouple white space treatment from move detection algorithm
1514 + + diff.c: add a blocks mode for moved code detection
1515 + + diff.c: adjust hash function signature to match hashmap expectation
1516 + + diff.c: do not pass diff options as keydata to hashmap
1517 + + t4015: avoid git as a pipe input
1518 + + xdiff/xdiffi.c: remove unneeded function declarations
1519 + + xdiff/xdiff.h: remove unused flags
1520
1521 "git diff --color-moved" feature has further been tweaked.
1522
1406 - Will merge to 'next'.
1407 -
1408 ---------------------------------------------------
1409 -[Discarded]
1410 -
1411 -* ag/rebase-i-append-todo-help (2018-06-14) 2 commits
1412 - . rebase--interactive: rewrite append_todo_help() in C
1413 - . Merge branch 'ag/rebase-p' into ag/rebase-i-append-todo-help
1414 - (this branch is used by ag/rebase-i-rewrite-todo.)
1415 -
1416 - Stepwise rewriting of the machinery of "rebase -i" into C continues.
1417 -
1418 - Now part of ag/rebase-i-in-c
1419 -
1420 -
1421 -* ag/rebase-i-rewrite-todo (2018-06-15) 3 commits
1422 - . rebase--interactive: rewrite the edit-todo functionality in C
1423 - . editor: add a function to launch the sequence editor
1424 - . Merge branch 'bc/t3430-fixup' into ag/rebase-i-rewrite-todo
1425 - (this branch uses ag/rebase-i-append-todo-help.)
1426 -
1427 - Stepwise rewriting of the machinery of "rebase -i" into C continues.
1428 -
1429 - Now part of ag/rebase-i-in-c
1430 -
1431 -
1432 -* ab/fetch-tags-noclobber (2018-05-16) 9 commits
1433 - - fixup! push tests: assert re-pushing annotated tags
1434 - - fetch: stop clobbering existing tags without --force
1435 - - fetch tests: add a test clobbering tag behavior
1436 - - fetch tests: correct a comment "remove it" -> "remove them"
1437 - - push doc: correct lies about how push refspecs work
1438 - - push tests: assert re-pushing annotated tags
1439 - - push tests: add more testing for forced tag pushing
1440 - - push tests: fix logic error in "push" test assertion
1441 - - push tests: remove redundant 'git push' invocation
1442 -
1443 - Discarded per request.
1444 - cf. <87po09cnir.fsf@evledraar.gmail.com>
1445 -
1446 -
1447 -* nd/use-the-index-compat-less (2018-06-25) 13 commits
1448 - . wt-status.c: stop using index compat macros
1449 - . sha1-name.c: stop using index compat macros
1450 - . sequencer.c: stop using index compat macros
1451 - . revision.c: stop using index compat macros
1452 - . rerere.c: stop using index compat macros
1453 - . merge.c: stop using index compat macros
1454 - . merge-recursive.c: stop using index compat macros
1455 - . entry.c: stop using index compat macros
1456 - . diff.c: stop using index compat macros
1457 - . diff-lib.c: stop using index compat macros
1458 - . check-racy.c: stop using index compat macros
1459 - . blame.c: stop using index compat macros
1460 - . apply.c: stop using index compat macros
1461 -
1462 - Retracted to be replaced with a more vertical approach where the
1463 - lower-level helper functions are taught to be capable of working on
1464 - an istate instance that is not the_index first, and then upwards to
1465 - support the application layer that wants to work on an arbitrary
1466 - istate instance, as the goal is not a mechanical replacement of
1467 - foo_cache(...) to foo_index(&the_index, ...).
1468 -
1469 -
1470 -* js/branch-diff (2018-05-16) 19 commits
1471 - . fixup! Add a function to solve least-cost assignment problems
1472 - . completion: support branch-diff
1473 - . branch-diff: add a man page
1474 - . branch-diff --dual-color: work around bogus white-space warning
1475 - . branch-diff: offer to dual-color the diffs
1476 - . diff: add an internal option to dual-color diffs of diffs
1477 - . color: provide inverted colors, too
1478 - . branch-diff: use color for the commit pairs
1479 - . branch-diff: add tests
1480 - . branch-diff: do not show "function names" in hunk headers
1481 - . branch-diff: adjust the output of the commit pairs
1482 - . branch-diff: suppress the diff headers
1483 - . branch-diff: indent the diffs just like tbdiff
1484 - . branch-diff: right-trim commit messages
1485 - . branch-diff: also show the diff between patches
1486 - . branch-diff: improve the order of the shown commits
1487 - . branch-diff: first rudimentary implementation
1488 - . Add a new builtin: branch-diff
1489 - . Add a function to solve least-cost assignment problems
1490 -
1491 - "git tbdiff" that lets us compare individual patches in two
1492 - iterations of a topic has been rewritten and made into a built-in
1493 - command.
1523 + Will merge to 'master'.