What's cooking (2018/11 #04)

Junio C Hamano committed Nov 13, 2018 at 23:01 UTC 8364e13a5d52ecc14e24a1e4f572bc3bda795975
1 file changed +708 -685
whats-cooking.txt
+708 -685
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Nov 2018, #03; Wed, 7)
4 -X-master-at: 8858448bb49332d353febc078ce4a3abcc962efe
5 -X-next-at: 8438c0b2453a7207c9c45756f5e37dfe283db602
3 +Subject: What's cooking in git.git (Nov 2018, #04; Tue, 13)
4 +X-master-at: d166e6afe5f257217836ef24a73764eba390c58d
5 +X-next-at: 17fedb746fde9e40924a6ce11c0976a097eb126b
6
7 -What's cooking in git.git (Nov 2018, #03; Wed, 7)
7 +What's cooking in git.git (Nov 2018, #04; Tue, 13)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,294 +20,696 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* en/merge-cleanup-more (2018-10-18) 2 commits
24 - (merged to 'next' on 2018-10-26 at c706319c26)
25 - + merge-recursive: avoid showing conflicts with merge branch before HEAD
26 - + merge-recursive: improve auto-merging messages with path collisions
27 - (this branch is used by en/merge-path-collision.)
23 +* ab/pack-tests-cleanup (2018-10-31) 3 commits
24 + (merged to 'next' on 2018-11-03 at b4a39595bb)
25 + + index-pack tests: don't leave test repo dirty at end
26 + + pack-objects tests: don't leave test .git corrupt at end
27 + + pack-objects test: modernize style
28
29 - Further clean-up of merge-recursive machinery.
29 + A couple of tests used to leave the repository in a state that is
30 + deliberately corrupt, which have been corrected.
31
32
32 -* jc/http-curlver-warnings (2018-10-26) 1 commit
33 - (merged to 'next' on 2018-10-26 at 870e125cec)
34 - + http: give curl version warnings consistently
35 - (this branch uses js/mingw-http-ssl; is tangled with nd/config-split.)
33 +* ag/rebase-i-in-c (2018-11-05) 1 commit
34 + (merged to 'next' on 2018-11-06 at 8fa9d64898)
35 + + sequencer.c: remove a stray semicolon
36
37 - Warning message fix.
37 + Code clean-up for a topic already in 'master'.
38
39
40 -* js/mingw-http-ssl (2018-10-26) 3 commits
41 - (merged to 'next' on 2018-10-26 at 318e82e101)
42 - + http: when using Secure Channel, ignore sslCAInfo by default
43 - + http: add support for disabling SSL revocation checks in cURL
44 - + http: add support for selecting SSL backends at runtime
45 - (this branch is used by jc/http-curlver-warnings and nd/config-split.)
40 +* ag/rev-parse-all-exclude-fix (2018-11-01) 1 commit
41 + (merged to 'next' on 2018-11-03 at 49730558fa)
42 + + rev-parse: clear --exclude list after 'git rev-parse --all'
43
47 - On platforms with recent cURL library, http.sslBackend configuration
48 - variable can be used to choose a different SSL backend at runtime.
49 - The Windows port uses this mechanism to switch between OpenSSL and
50 - Secure Channel while talking over the HTTPS protocol.
44 + "git rev-parse --exclude=* --branches --branches" (i.e. first
45 + saying "add only things that do not match '*' out of all branches"
46 + and then adding all branches, without any exclusion this time")
47 + worked as expected, but "--exclude=* --all --all" did not work the
48 + same way, which has been fixed.
49
50
53 -* js/mingw-ns-filetime (2018-10-24) 3 commits
54 - (merged to 'next' on 2018-10-29 at 4563a0d9d0)
55 - + mingw: implement nanosecond-precision file times
56 - + mingw: replace MSVCRT's fstat() with a Win32-based implementation
57 - + mingw: factor out code to set stat() data
51 +* al/send-email-auto-cte-fixup (2018-11-02) 1 commit
52 + (merged to 'next' on 2018-11-05 at 4ecb1133ce)
53 + + send-email: avoid empty transfer encoding header
54
59 - Windows port learned to use nano-second resolution file timestamps.
55 + "git send-email --transfer-encoding=..." in recent versions of Git
56 + sometimes produced an empty "Content-Transfer-Encoding:" header,
57 + which has been corrected.
58
59
62 -* js/remote-archive-dwimfix (2018-10-26) 1 commit
63 - (merged to 'next' on 2018-10-26 at f5bf6946bd)
64 - + archive: initialize archivers earlier
60 +* ao/submodule-wo-gitmodules-checked-out (2018-10-31) 10 commits
61 + (merged to 'next' on 2018-11-03 at 00c3377ef0)
62 + + t/helper: add test-submodule-nested-repo-config
63 + + submodule: support reading .gitmodules when it's not in the working tree
64 + + submodule: add a helper to check if it is safe to write to .gitmodules
65 + + t7506: clean up .gitmodules properly before setting up new scenario
66 + + submodule: use the 'submodule--helper config' command
67 + + submodule--helper: add a new 'config' subcommand
68 + + t7411: be nicer to future tests and really clean things up
69 + + t7411: merge tests 5 and 6
70 + + submodule: factor out a config_set_in_gitmodules_file_gently function
71 + + submodule: add a print_config_from_gitmodules() helper
72 + (this branch is used by sb/submodule-recursive-fetch-gets-the-tip.)
73
66 - The logic to determine the archive type "git archive" uses did not
67 - correctly kick in for "git archive --remote", which has been
68 - corrected.
74 + The submodule support has been updated to read from the blob at
75 + HEAD:.gitmodules when the .gitmodules file is missing from the
76 + working tree.
77
78
71 -* js/shallow-and-fetch-prune (2018-10-25) 3 commits
72 - (merged to 'next' on 2018-10-26 at 93b7196560)
73 - + repack -ad: prune the list of shallow commits
74 - + shallow: offer to prune only non-existing entries
75 - + repack: point out a bug handling stale shallow info
79 +* bp/add-diff-files-optim (2018-11-03) 1 commit
80 + (merged to 'next' on 2018-11-06 at cdaeb7924a)
81 + + add: speed up cmd_add() by utilizing read_cache_preload()
82
77 - "git repack" in a shallow clone did not correctly update the
78 - shallow points in the repository, leading to a repository that
79 - does not pass fsck.
83 + "git add" needs to internally run "diff-files" equivalent, and the
84 + codepath learned the same optimization as "diff-files" has to run
85 + lstat(2) in parallel to find which paths have been updated in the
86 + working tree.
87
88
82 -* jt/upload-pack-v2-fix-shallow (2018-10-19) 3 commits
83 - (merged to 'next' on 2018-10-29 at d9010b3c7b)
84 - + upload-pack: clear flags before each v2 request
85 - + upload-pack: make want_obj not global
86 - + upload-pack: make have_obj not global
89 +* bp/refresh-index-using-preload (2018-11-06) 2 commits
90 + (merged to 'next' on 2018-11-06 at d9b9d8f559)
91 + + refresh_index: remove unnecessary calls to preload_index()
92 + (merged to 'next' on 2018-11-01 at 289e6bcece)
93 + + speed up refresh_index() by utilizing preload_index()
94
88 - "git fetch" over protocol v2 into a shallow repository failed to
89 - fetch full history behind a new tip of history that was diverged
90 - before the cut-off point of the history that was previously fetched
91 - shallowly.
95 + The helper function to refresh the cached stat information in the
96 + in-core index has learned to perform the lstat() part of the
97 + operation in parallel on multi-core platforms.
98
99
94 -* jw/send-email-no-auth (2018-10-23) 1 commit
95 - (merged to 'next' on 2018-10-29 at a3fbbdb889)
96 - + send-email: explicitly disable authentication
100 +* bp/reset-quiet (2018-10-24) 3 commits
101 + (merged to 'next' on 2018-10-29 at 71f4fbc802)
102 + + reset: warn when refresh_index() takes more than 2 seconds
103 + + reset: add new reset.quiet config setting
104 + + reset: don't compute unstaged changes after reset when --quiet
105 + (this branch is used by nd/config-split.)
106
98 - "git send-email" learned to disable SMTP authentication via the
99 - "--smtp-auth=none" option, even when the smtp username is given
100 - (which turns the authentication on by default).
107 + "git reset --quiet" no longer runs "update-index --refresh"
108 + internally, which shifts the refresh cost away from the command.
109
110
103 -* md/exclude-promisor-objects-fix (2018-10-23) 2 commits
104 - (merged to 'next' on 2018-10-29 at fb36a5dcbe)
105 - + exclude-promisor-objects: declare when option is allowed
106 - + Documentation/git-log.txt: do not show --exclude-promisor-objects
111 +* ds/add-missing-tags (2018-11-03) 3 commits
112 + (merged to 'next' on 2018-11-05 at 8388baf76d)
113 + + remote: make add_missing_tags() linear
114 + + test-reach: test get_reachable_subset
115 + + commit-reach: implement get_reachable_subset
116
108 - Operations on promisor objects make sense in the context of only a
109 - small subset of the commands that internally use the revisions
110 - machinery, but the "--exclude-promisor-objects" option were taken
111 - and led to nonsense results by commands like "log", to which it
112 - didn't make much sense. This has been corrected.
117 + The history traversal used to implement the tag-following has been
118 + optimized by introducing a new helper.
119
120
115 -* mg/gpg-fingerprint (2018-10-23) 3 commits
116 - (merged to 'next' on 2018-10-26 at 1e219cb754)
117 - + gpg-interface.c: obtain primary key fingerprint as well
118 - + gpg-interface.c: support getting key fingerprint via %GF format
119 - + gpg-interface.c: use flags to determine key/signer info presence
120 - (this branch uses mg/gpg-parse-tighten; is tangled with jc/gpg-cocci-preincr.)
121 +* ds/test-multi-pack-index (2018-10-26) 4 commits
122 + (merged to 'next' on 2018-11-03 at 624c415a45)
123 + + packfile: close multi-pack-index in close_all_packs
124 + + multi-pack-index: define GIT_TEST_MULTI_PACK_INDEX
125 + + midx: close multi-pack-index on repack
126 + + midx: fix broken free() in close_midx()
127
122 - New "--pretty=format:" placeholders %GF and %GP that show the GPG
123 - key fingerprints have been invented.
128 + Tests for the recently introduced multi-pack index machinery.
129
130
126 -* mg/gpg-parse-tighten (2018-10-22) 1 commit
127 - (merged to 'next' on 2018-10-26 at efdec77193)
128 - + gpg-interface.c: detect and reject multiple signatures on commits
129 - (this branch is used by jc/gpg-cocci-preincr and mg/gpg-fingerprint.)
131 +* jc/war-on-string-list (2018-11-01) 1 commit
132 + (merged to 'next' on 2018-11-03 at 2ff65073f1)
133 + + fetch: replace string-list used as a look-up table with a hashmap
134
131 - Detect and reject a signature block that has more than one GPG
132 - signature.
135 + Replace three string-list instances used as look-up tables in "git
136 + fetch" with hashmaps.
137
138
135 -* nd/completion-negation (2018-10-22) 1 commit
136 - (merged to 'next' on 2018-10-29 at 87e73b0c72)
137 - + completion: fix __gitcomp_builtin no longer consider extra options
139 +* jk/detect-truncated-zlib-input (2018-10-31) 4 commits
140 + (merged to 'next' on 2018-11-03 at 4952b4412b)
141 + + Adjust for 2.19.x series
142 + + cat-file: handle streaming failures consistently
143 + + check_stream_sha1(): handle input underflow
144 + + t1450: check large blob in trailing-garbage test
145
139 - The command line completion machinery (in contrib/) has been
140 - updated to allow the completion script to tweak the list of options
141 - that are reported by the parse-options machinery correctly.
146 + A regression in Git 2.12 era made "git fsck" fall into an infinite
147 + loop while processing truncated loose objects.
148
149
144 -* nd/submodule-unused-vars (2018-10-22) 1 commit
145 - (merged to 'next' on 2018-10-29 at 33641dcc89)
146 - + submodule.c: remove some of the_repository references
150 +* jk/misc-unused-fixes (2018-11-07) 4 commits
151 + (merged to 'next' on 2018-11-07 at 8438c0b245)
152 + + approxidate: fix NULL dereference in date_time()
153 + (merged to 'next' on 2018-11-05 at 03429f23c4)
154 + + pathspec: handle non-terminated strings with :(attr)
155 + + approxidate: handle pending number for "specials"
156 + + rev-list: handle flags for --indexed-objects
157
148 - Code clean-up.
158 + Assorted fixes for bugs found while auditing -Wunused-parameter
159 + warnings.
160
161
151 -* nd/unpack-trees-with-cache-tree (2018-10-22) 1 commit
152 - (merged to 'next' on 2018-10-29 at de51b606da)
153 - + read-cache: use of memory after it is freed
162 +* jk/proto-v2-ref-prefix-fix (2018-10-31) 2 commits
163 + (merged to 'next' on 2018-11-03 at 3a203db692)
164 + + ls-remote: pass heads/tags prefixes to transport
165 + + ls-remote: do not send ref prefixes for patterns
166
155 - Trivial bugfix.
167 + "git ls-remote $there foo" was broken by recent update for the
168 + protocol v2 and stopped showing refs that match 'foo' that are not
169 + refs/{heads,tags}/foo, which has been fixed.
170
171
158 -* rj/header-cleanup (2018-10-29) 3 commits
159 - (merged to 'next' on 2018-11-01 at 975e56048f)
160 - + commit-reach.h: add missing declarations (hdr-check)
161 - + ewok_rlw.h: add missing 'inline' to function definition
162 - + fetch-object.h: add missing declaration (hdr-check)
172 +* jk/stream-pack-non-delta-clarification (2018-10-31) 1 commit
173 + (merged to 'next' on 2018-11-03 at bd386692c8)
174 + + read_istream_pack_non_delta(): document input handling
175
164 - Code cleanup.
176 + Additional comment on a tricky piece of code to help developers.
177 +
178 +
179 +* jk/xdiff-interface (2018-11-05) 9 commits
180 + (merged to 'next' on 2018-11-05 at 0edd69cdad)
181 + + xdiff-interface: drop parse_hunk_header()
182 + + range-diff: use a hunk callback
183 + + diff: convert --check to use a hunk callback
184 + + combine-diff: use an xdiff hunk callback
185 + + diff: use hunk callback for word-diff
186 + + diff: discard hunk headers for patch-ids earlier
187 + + diff: avoid generating unused hunk header lines
188 + + xdiff-interface: provide a separate consume callback for hunks
189 + + xdiff: provide a separate emit callback for hunks
190 +
191 + The interface into "xdiff" library used to discover the offset and
192 + size of a generated patch hunk by first formatting it into the
193 + textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers
194 + out. A new interface has been introduced to allow callers a more
195 + direct access to them.
196 +
197 +
198 +* js/mingw-isatty-and-dup2 (2018-10-31) 1 commit
199 + (merged to 'next' on 2018-11-03 at 0616899d9e)
200 + + mingw: fix isatty() after dup2()
201 +
202 + Windows fix.
203 +
204 +
205 +* js/mingw-perl5lib (2018-10-31) 4 commits
206 + (merged to 'next' on 2018-11-03 at 2fa516f3ae)
207 + + mingw: unset PERL5LIB by default
208 + + config: move Windows-specific config settings into compat/mingw.c
209 + + config: allow for platform-specific core.* config settings
210 + + config: rename `dummy` parameter to `cb` in git_default_config()
211 +
212 + Windows fix.
213 +
214 +
215 +* js/mingw-utf8-env (2018-10-31) 2 commits
216 + (merged to 'next' on 2018-11-03 at f6c5a8b609)
217 + + mingw: reencode environment variables on the fly (UTF-16 <-> UTF-8)
218 + + t7800: fix quoting
219 +
220 + Windows fix.
221 +
222 +
223 +* js/rebase-p-tests (2018-11-02) 3 commits
224 + (merged to 'next' on 2018-11-03 at fc8d97465f)
225 + + tests: optionally skip `git rebase -p` tests
226 + + t3418: decouple test cases from a previous `rebase -p` test case
227 + + t3404: decouple some test cases from outcomes of previous test cases
228 +
229 + In preparation to the day when we can deprecate and remove the
230 + "rebase -p", make sure we can skip and later remove tests for
231 + it.
232 +
233 +
234 +* jt/tighten-fetch-proto-v2-response (2018-11-01) 1 commit
235 + (merged to 'next' on 2018-11-03 at 310fe3f2c3)
236 + + fetch-pack: be more precise in parsing v2 response
237 +
238 + "git fetch" was a bit loose in parsing resposes from the other side
239 + when talking over the protocol v2.
240 +
241 +
242 +* ma/sequencer-do-reset-saner-loop-termination (2018-10-31) 1 commit
243 + (merged to 'next' on 2018-11-03 at 99da78997d)
244 + + sequencer: break out of loop explicitly
245 +
246 + Code readability fix.
247 +
248 +
249 +* nb/worktree-api-doc (2018-10-31) 2 commits
250 + (merged to 'next' on 2018-11-03 at de9befb1f3)
251 + + worktree: rename is_worktree_locked to worktree_lock_reason
252 + + worktree: update documentation for lock_reason and lock_reason_valid
253 +
254 + Code readability fix.
255 +
256 +
257 +* nd/complete-format-patch (2018-11-06) 1 commit
258 + (merged to 'next' on 2018-11-06 at 7f4c58c9d0)
259 + + completion: use __gitcomp_builtin for format-patch
260 +
261 + The support for format-patch (and send-email) by the command-line
262 + completion script (in contrib/) has been simplified a bit.
263 +
264 +
265 +* nd/config-split (2018-10-29) 79 commits
266 + (merged to 'next' on 2018-11-03 at a336559101)
267 + + config.txt: remove config/dummy.txt
268 + + config.txt: move worktree.* to a separate file
269 + + config.txt: move web.* to a separate file
270 + + config.txt: move versionsort.* to a separate file
271 + + config.txt: move user.* to a separate file
272 + + config.txt: move url.* to a separate file
273 + + config.txt: move uploadpack.* to a separate file
274 + + config.txt: move uploadarchive.* to a separate file
275 + + config.txt: move transfer.* to a separate file
276 + + config.txt: move tag.* to a separate file
277 + + config.txt: move submodule.* to a separate file
278 + + config.txt: move stash.* to a separate file
279 + + config.txt: move status.* to a separate file
280 + + config.txt: move splitIndex.* to a separate file
281 + + config.txt: move showBranch.* to a separate file
282 + + config.txt: move sequencer.* to a separate file
283 + + config.txt: move sendemail-config.txt to config/
284 + + config.txt: move reset.* to a separate file
285 + + config.txt: move rerere.* to a separate file
286 + + config.txt: move repack.* to a separate file
287 + + config.txt: move remotes.* to a separate file
288 + + config.txt: move remote.* to a separate file
289 + + config.txt: move receive-config.txt to config/
290 + + config.txt: move rebase-config.txt to config/
291 + + config.txt: move push-config.txt to config/
292 + + config.txt: move pull-config.txt to config/
293 + + config.txt: move protocol.* to a separate file
294 + + config.txt: move pretty.* to a separate file
295 + + config.txt: move pager.* to a separate file
296 + + config.txt: move pack.* to a separate file
297 + + config.txt: move notes.* to a separate file
298 + + config.txt: move mergetool.* to a separate file
299 + + config.txt: move merge-config.txt to config/
300 + + config.txt: move man.* to a separate file
301 + + config.txt: move mailmap.* to a separate file
302 + + config.txt: move mailinfo.* to a separate file
303 + + config.txt: move log.* to a separate file
304 + + config.txt: move interactive.* to a separate file
305 + + config.txt: move instaweb.* to a separate file
306 + + config.txt: move init.* to a separate file
307 + + config.txt: move index.* to a separate file
308 + + git-imap-send.txt: move imap.* to a separate file
309 + + config.txt: move i18n.* to a separate file
310 + + config.txt: move http.* to a separate file
311 + + config.txt: move ssh.* to a separate file
312 + + config.txt: move help.* to a separate file
313 + + config.txt: move guitool.* to a separate file
314 + + config.txt: move gui-config.txt to config/
315 + + config.txt: move gpg.* to a separate file
316 + + config.txt: move grep.* to a separate file
317 + + config.txt: move gitweb.* to a separate file
318 + + config.txt: move gitcvs-config.txt to config/
319 + + config.txt: move gc.* to a separate file
320 + + config.txt: move fsck.* to a separate file
321 + + config.txt: move fmt-merge-msg-config.txt to config/
322 + + config.txt: move format-config.txt to config/
323 + + config.txt: move filter.* to a separate file
324 + + config.txt: move fetch-config.txt to config/
325 + + config.txt: move fastimport.* to a separate file
326 + + config.txt: move difftool.* to a separate file
327 + + config.txt: move diff-config.txt to config/
328 + + config.txt: move completion.* to a separate file
329 + + config.txt: move credential.* to a separate file
330 + + config.txt: move commit.* to a separate file
331 + + config.txt: move column.* to a separate file
332 + + config.txt: move color.* to a separate file
333 + + config.txt: move clean.* to a separate file
334 + + config.txt: move checkout.* to a separate file
335 + + config.txt: move browser.* to a separate file
336 + + config.txt: move branch.* to a separate file
337 + + config.txt: move blame.* to a separate file
338 + + config.txt: move apply.* to a separate file
339 + + config.txt: move am.* to a separate file
340 + + config.txt: move alias.* to a separate file
341 + + config.txt: move add.* to a separate file
342 + + config.txt: move core.* to a separate file
343 + + config.txt: move advice.* to a separate file
344 + + Update makefile in preparation for Documentation/config/*.txt
345 + + Merge branches 'bp/reset-quiet' and 'js/mingw-http-ssl' into nd/config-split
346 + (this branch uses bp/reset-quiet.)
347
348 + Split the overly large Documentation/config.txt file into million
349 + little pieces. This potentially allows each individual piece
350 + included into the manual page of the command it affects more easily.
351
167 -* sb/submodule-url-to-absolute (2018-10-18) 1 commit
168 - (merged to 'next' on 2018-10-29 at 4264c150cb)
169 - + submodule helper: convert relative URL to absolute URL if needed
352 + This is a painful conversions while many other topics in flight
353 + wants to add to or edit the documentation of configuration
354 + variables.
355
171 - Some codepaths failed to form a proper URL when .gitmodules record
172 - the URL to a submodule repository as relative to the repository of
173 - superproject, which has been corrected.
356
357 +* nd/per-worktree-config (2018-10-22) 2 commits
358 + (merged to 'next' on 2018-11-01 at 3746343ca8)
359 + + worktree: add per-worktree config files
360 + + t1300: extract and use test_cmp_config()
361
176 -* sg/test-rebase-editor-fix (2018-10-29) 1 commit
177 - (merged to 'next' on 2018-11-01 at 271e0fc663)
178 - + t3404-rebase-interactive: test abbreviated commands
362 + A fourth class of configuration files (in addition to the
363 + traditional "system wide", "per user in the $HOME directory" and
364 + "per repository in the $GIT_DIR/config") has been introduced so
365 + that different worktrees that share the same repository (hence the
366 + same $GIT_DIR/config file) can use different customization.
367
368
181 -* sg/test-verbose-log (2018-10-30) 1 commit
182 - (merged to 'next' on 2018-11-01 at 0c4a18a71f)
183 - + test-lib: introduce the '-V' short option for '--verbose-log'
369 +* nd/per-worktree-ref-iteration (2018-11-05) 9 commits
370 + (merged to 'next' on 2018-11-06 at 53803cedf3)
371 + + git-worktree.txt: correct linkgit command name
372 + (merged to 'next' on 2018-11-03 at 4cbe49a704)
373 + + reflog expire: cover reflog from all worktrees
374 + + fsck: check HEAD and reflog from other worktrees
375 + + fsck: move fsck_head_link() to get_default_heads() to avoid some globals
376 + + revision.c: better error reporting on ref from different worktrees
377 + + revision.c: correct a parameter name
378 + + refs: new ref types to make per-worktree refs visible to all worktrees
379 + + Add a place for (not) sharing stuff between worktrees
380 + + refs.c: indent with tabs, not spaces
381
185 - Our test scripts can now take the '-V' option as a synonym for the
186 - '--verbose-log' option.
382 + The code to traverse objects for reachability, used to decide what
383 + objects are unreferenced and expendable, have been taught to also
384 + consider per-worktree refs of other worktrees as starting points to
385 + prevent data loss.
386
387
189 -* ss/travis-ci-force-vm-mode (2018-10-26) 1 commit
190 - (merged to 'next' on 2018-11-01 at 8596bb2a65)
191 - + travis-ci: no longer use containers
192 - (this branch is used by sg/travis-install-dependencies.)
388 +* nd/tree-walk-path-exclusion (2018-11-05) 1 commit
389 + (merged to 'next' on 2018-11-06 at 6499b2d327)
390 + + tree-walk.c: fix overoptimistic inclusion in :(exclude) matching
391
194 - The "container" mode of TravisCI is going away. Our .travis.yml
195 - file is getting prepared for the transition.
392 + Pathspec matching against a tree object were buggy when negative
393 + pathspec elements were involved, which has been fixed.
394
395
198 -* tb/char-may-be-unsigned (2018-10-26) 1 commit
199 - (merged to 'next' on 2018-11-01 at 9e14f289f8)
200 - + path.c: char is not (always) signed
396 +* nd/wildmatch-double-asterisk (2018-10-29) 1 commit
397 + (merged to 'next' on 2018-11-01 at 627186d020)
398 + + wildmatch: change behavior of "foo**bar" in WM_PATHNAME mode
399
202 - Build portability fix.
400 + A pattern with '**' that does not have a slash on either side used
401 + to be an invalid one, but the code now treats such double-asterisks
402 + the same way as two normal asterisks that happen to be adjacent to
403 + each other.
404 +
405 +
406 +* pw/am-rebase-read-author-script (2018-11-01) 5 commits
407 + (merged to 'next' on 2018-11-03 at bb6c32fe16)
408 + + sequencer: use read_author_script()
409 + + add read_author_script() to libgit
410 + + am: rename read_author_script()
411 + + am: improve author-script error reporting
412 + + am: don't die in read_author_script()
413 +
414 + Unify code to read the author-script used in "git am" and the
415 + commands that use the sequencer machinery, e.g. "git rebase -i".
416 +
417 +
418 +* sg/travis-install-dependencies (2018-11-02) 1 commit
419 + (merged to 'next' on 2018-11-06 at b86e3a2792)
420 + + travis-ci: install packages in 'ci/install-dependencies.sh'
421 +
422 + The procedure to install dependencies before testing at Travis CI
423 + is getting revamped for both simplicity and flexibility, taking
424 + advantage of the recent move to the vm-based environment.
425 +
426 +
427 +* sh/mingw-safer-compat-poll (2018-11-05) 1 commit
428 + (merged to 'next' on 2018-11-05 at 933a940a68)
429 + + poll: use GetTickCount64() to avoid wrap-around issues
430 +
431 + Windows fix.
432
433 --------------------------------------------------
434 [New Topics]
435
207 -* jk/misc-unused-fixes (2018-11-07) 4 commits
208 - (merged to 'next' on 2018-11-07 at 8438c0b245)
209 - + approxidate: fix NULL dereference in date_time()
210 - (merged to 'next' on 2018-11-05 at 03429f23c4)
211 - + pathspec: handle non-terminated strings with :(attr)
212 - + approxidate: handle pending number for "specials"
213 - + rev-list: handle flags for --indexed-objects
436 +* js/rebase-autostash-detach-fix (2018-11-08) 2 commits
437 + - built-in rebase --autostash: leave the current branch alone if possible
438 + - built-in rebase: demonstrate regression with --autostash
439
215 - Assorted fixes for bugs found while auditing -Wunused-parameter
216 - warnings.
440 + "git rebase --autostash" did not correctly re-attach the HEAD at times.
441
218 - Will merge to 'master'.
442 + Will merge to 'next'.
443 +
444 +
445 +* en/rebase-merge-on-sequencer (2018-11-08) 2 commits
446 + - rebase: implement --merge via git-rebase--interactive
447 + - git-rebase, sequencer: extend --quiet option for the interactive machinery
448 +
449 + "git rebase --merge" as been reimplemented by reusing the internal
450 + machinery used for "git rebase -i".
451 +
452 +
453 +* js/mailmap (2018-11-12) 1 commit
454 + - Update .mailmap
455 +
456 + Update the mailmap to unify multiple entries for the authors with
457 + commits since v2.10.
458 +
459 + Will merge to 'next'.
460 +
461 +
462 +* fc/http-version (2018-11-09) 1 commit
463 + - http: add support selecting http version
464 +
465 + The "http.version" configuration variable can be used with recent
466 + enough cURL library to force the version of HTTP used to talk when
467 + fetching and pushing.
468 +
469 + Will merge to 'next'.
470 +
471 +
472 +* ag/p3400-force-checkout (2018-11-12) 1 commit
473 + - p3400: replace calls to `git checkout -b' by `git checkout -B'
474 +
475 + Perf test tweak.
476 +
477 + Will merge to 'next'.
478 +
479 +
480 +* cb/notes-freeing-always-null-fix (2018-11-13) 1 commit
481 + - builtin/notes: remove unnecessary free
482 +
483 + Code cleanup.
484 +
485 + Will merge to 'next'.
486 +
487 +
488 +* dl/remote-save-to-push (2018-11-13) 1 commit
489 + - remote: add --save-to-push option to git remote set-url
490 +
491 + "git remote set-url" learned a new option that moves existing value
492 + of the URL field to pushURL field of the remote before replacing
493 + the URL field with a new value.
494 +
495 + Undecided.
496 +
497 +
498 +* jk/loose-object-cache (2018-11-13) 9 commits
499 + - fetch-pack: drop custom loose object cache
500 + - sha1-file: use loose object cache for quick existence check
501 + - object-store: provide helpers for loose_objects_cache
502 + - sha1-file: use an object_directory for the main object dir
503 + - handle alternates paths the same as the main object dir
504 + - sha1_file_name(): overwrite buffer instead of appending
505 + - rename "alternate_object_database" to "object_directory"
506 + - submodule--helper: prefer strip_suffix() to ends_with()
507 + - fsck: do not reuse child_process structs
508 +
509 + Code clean-up with optimization for the codepath that checks
510 + (non-)existence of loose objects.
511 +
512 + Will merge to 'next'.
513 +
514 +
515 +* js/apply-recount-allow-noop (2018-11-13) 1 commit
516 + - apply --recount: allow "no-op hunks"
517 +
518 + When editing a patch in a "git add -i" session, a hunk could be
519 + made to no-op. The "git apply" program used to reject a patch with
520 + such a no-op hunk to catch user mistakes, but it is now updated to
521 + explicitly allow a no-op hunk in an edited patch.
522 +
523 + Will merge to 'next'.
524 +
525 +
526 +* js/builtin-rebase-perf-fix (2018-11-13) 3 commits
527 + - built-in rebase: reinstate `checkout -q` behavior where appropriate
528 + - rebase: prepare reset_head() for more flags
529 + - rebase: consolidate clean-up code before leaving reset_head()
530 +
531 + Code clean-up with correction to make the reimplemented "git
532 + rebase" a more faithful rewrite of the original, which also regains
533 + performance.
534 +
535 + Will merge to 'next'.
536 +
537 +
538 +* js/protocol-advertise-multi (2018-11-13) 2 commits
539 + - SQUASH??? apply cocci fix
540 + - protocol: advertise multiple supported versions
541 +
542 + The transport layer has been updated so that the protocol version
543 + used can be negotiated between the parties, by the initiator
544 + listing the protocol versions it is willing to talk, and the other
545 + side choosing from one of them.
546 +
547 +
548 +* js/rebase-r-and-merge-head (2018-11-13) 5 commits
549 + - status: rebase and merge can be in progress at the same time
550 + - built-in rebase --skip/--abort: clean up stale .git/<name> files
551 + - rebase -i: include MERGE_HEAD into files to clean up
552 + - rebase -r: do not write MERGE_HEAD unless needed
553 + - rebase -r: demonstrate bug with conflicting merges
554 +
555 + Bugfix for the recently graduated "git rebase --rebase-merges".
556 +
557 + Will merge to 'next'.
558 +
559 +
560 +* js/smart-http-detect-remote-error (2018-11-13) 1 commit
561 + - remote-curl: die on server-side errors
562 +
563 + Some errors from the other side coming over smart HTTP transport
564 + were not noticed, which has been corrected.
565 +
566 + Will merge to 'next'.
567 +
568 +
569 +* nb/branch-show-other-worktrees-head (2018-11-12) 2 commits
570 + - branch: mark and colorize a branch differently if it is checked out in a linked worktree
571 + - ref-filter: add worktree atom
572 +
573 + "git branch --list" learned to show branches that are checked out
574 + in other worktrees connected to the same repository prefixed with
575 + '+', similar to the way the currently checked out branch is shown
576 + with '*' in front.
577 +
578 + Expecting a reroll.
579 +
580 +
581 +* nd/command-list-gen-fix (2018-11-12) 1 commit
582 + - build: fix broken command-list.h generation with core.autocrlf
583 +
584 + Build tweak.
585 +
586 + Will merge to 'next'.
587 +
588 +
589 +* nd/format-patch-cover-letter-stat-width (2018-11-13) 1 commit
590 + - format-patch: respect --stat in cover letter's diffstat
591 +
592 + "git format-patch --stat=<width>" can be used to specify the width
593 + used by the diffstat (shown in the cover letter).
594 +
595 + Will merge to 'next'.
596 +
597 +
598 +* nd/the-index (2018-11-12) 22 commits
599 + - rebase-interactive.c: remove the_repository references
600 + - rerere.c: remove the_repository references
601 + - pack-*.c: remove the_repository references
602 + - pack-check.c: remove the_repository references
603 + - notes-cache.c: remove the_repository references
604 + - line-log.c: remove the_repository reference
605 + - diff-lib.c: remove the_repository references
606 + - delta-islands.c: remove the_repository references
607 + - cache-tree.c: remove the_repository references
608 + - bundle.c: remove the_repository references
609 + - branch.c: remove the_repository reference
610 + - bisect.c: remove the_repository reference
611 + - blame.c: remove implicit dependency the_repository
612 + - sequencer.c: remove implicit dependency on the_repository
613 + - sequencer.c: remove implicit dependency on the_index
614 + - transport.c: remove implicit dependency on the_index
615 + - notes-merge.c: remove implicit dependency the_repository
616 + - notes-merge.c: remove implicit dependency on the_index
617 + - list-objects.c: reduce the_repository references
618 + - list-objects-filter.c: remove implicit dependency on the_index
619 + - wt-status.c: remove implicit dependency the_repository
620 + - wt-status.c: remove implicit dependency on the_index
621 +
622 + More codepaths become aware of working with in-core repository
623 + instance other than the default "the_repository".
624 +
625 + Will merge to 'next'.
626 +
627 +
628 +* ot/ref-filter-object-info (2018-11-12) 5 commits
629 + - ref-filter: add docs for new options
630 + - ref-filter: add tests for deltabase
631 + - ref-filter: add deltabase option
632 + - ref-filter: add tests for objectsize:disk
633 + - ref-filter: add objectsize:disk option
634 +
635 + The "--format=<placeholder>" option of for-each-ref, branch and tag
636 + learned to show a few more traits of objects that can be learned by
637 + the object_info API.
638
639 + Will merge to 'next'.
640
221 -* jk/xdiff-interface (2018-11-05) 9 commits
222 - (merged to 'next' on 2018-11-05 at 0edd69cdad)
223 - + xdiff-interface: drop parse_hunk_header()
224 - + range-diff: use a hunk callback
225 - + diff: convert --check to use a hunk callback
226 - + combine-diff: use an xdiff hunk callback
227 - + diff: use hunk callback for word-diff
228 - + diff: discard hunk headers for patch-ids earlier
229 - + diff: avoid generating unused hunk header lines
230 - + xdiff-interface: provide a separate consume callback for hunks
231 - + xdiff: provide a separate emit callback for hunks
641
233 - The interface into "xdiff" library used to discover the offset and
234 - size of a generated patch hunk by first formatting it into the
235 - textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers
236 - out. A new interface has been introduced to allow callers a more
237 - direct access to them.
642 +* ra/rev-parse-exclude-glob (2018-11-13) 2 commits
643 + - refs: fix some exclude patterns being ignored
644 + - refs: show --exclude failure with --branches/tags/remotes=glob
645
239 - Will merge to 'master'.
646 + "rev-parse --exclude=<pattern> --branches=<pattern>" etc. did not
647 + quite work, which has been corrected.
648
649 + Will merge to 'next'.
650
242 -* al/send-email-auto-cte-fixup (2018-11-02) 1 commit
243 - (merged to 'next' on 2018-11-05 at 4ecb1133ce)
244 - + send-email: avoid empty transfer encoding header
651
246 - "git send-email --transfer-encoding=..." in recent versions of Git
247 - sometimes produced an empty "Content-Transfer-Encoding:" header,
248 - which has been corrected.
652 +* sb/cocci-pending (2018-11-11) 1 commit
653 + - coccicheck: introduce 'pending' semantic patches
654
250 - Will merge to 'master'.
655 + A coding convention around the Coccinelle semantic patches to have
656 + two classes to ease code migration process has been proposed and
657 + its support has been added to the Makefile.
658
659 + Will merge to 'next'.
660
253 -* bp/add-diff-files-optim (2018-11-03) 1 commit
254 - (merged to 'next' on 2018-11-06 at cdaeb7924a)
255 - + add: speed up cmd_add() by utilizing read_cache_preload()
661
257 - "git add" needs to internally run "diff-files" equivalent, and the
258 - codepath learned the same optimization as "diff-files" has to run
259 - lstat(2) in parallel to find which paths have been updated in the
260 - working tree.
662 +* tb/print-size-t-with-uintmax-format (2018-11-12) 1 commit
663 + - Upcast size_t variables to uintmax_t when printing
664
262 - Will merge to 'master'.
665 + Code preparation to replace ulong vars with size_t vars where
666 + appropriate.
667
668 + Will merge to 'next'.
669
265 -* ds/add-missing-tags (2018-11-03) 3 commits
266 - (merged to 'next' on 2018-11-05 at 8388baf76d)
267 - + remote: make add_missing_tags() linear
268 - + test-reach: test get_reachable_subset
269 - + commit-reach: implement get_reachable_subset
670
271 - The history traversal used to implement the tag-following has been
272 - optimized by introducing a new helper.
671 +* tb/xcurl-off-t (2018-11-12) 1 commit
672 + - remote-curl.c: xcurl_off_t is not portable (on 32 bit platfoms)
673
274 - Will merge to 'master'.
674 + The xcurl_off_t() helper function is used to cast size_t to
675 + curl_off_t, but some compilers gave warnings against the code to
676 + ensure the casting is done without wraparound, when size_t is
677 + narrower than curl_off_t. This warning has been squelched.
678
679 + Will merge to 'next'.
680
277 -* ag/rebase-i-in-c (2018-11-05) 1 commit
278 - (merged to 'next' on 2018-11-06 at 8fa9d64898)
279 - + sequencer.c: remove a stray semicolon
681 +--------------------------------------------------
682 +[Stalled]
683
281 - Code clean-up for a topic already in 'master'.
684 +* lt/date-human (2018-07-09) 1 commit
685 + - Add 'human' date format
686
283 - Will merge to 'master'.
687 + A new date format "--date=human" that morphs its output depending
688 + on how far the time is from the current time has been introduced.
689 + "--date=auto" can be used to use this new format when the output is
690 + goint to the pager or to the terminal and otherwise the default
691 + format.
692
693 +--------------------------------------------------
694 +[Cooking]
695
696 * jk/curl-ldflags (2018-11-05) 1 commit
287 - - build: link with curl-defined linker flags
697 + (merged to 'next' on 2018-11-13 at d1387a3aa0)
698 + + build: link with curl-defined linker flags
699
700 The way -lcurl library gets linked has been simplified by taking
701 advantage of the fact that we can just ask curl-config command how.
702
292 - Will merge to 'next'.
703 + Will merge to 'master'.
704
705
706 * mg/gpg-fingerprint-test (2018-11-05) 2 commits
296 - - t/t7510-signed-commit.sh: add signing subkey to Eris Discordia key
297 - - t/t7510-signed-commit.sh: Add %GP to custom format checks
707 + (merged to 'next' on 2018-11-13 at 71f11020c4)
708 + + t/t7510-signed-commit.sh: add signing subkey to Eris Discordia key
709 + + t/t7510-signed-commit.sh: Add %GP to custom format checks
710
711 Add a few tests for a topic already in 'master'.
712
301 - Will merge to 'next'.
302 -
303 -
304 -* nd/tree-walk-path-exclusion (2018-11-05) 1 commit
305 - (merged to 'next' on 2018-11-06 at 6499b2d327)
306 - + tree-walk.c: fix overoptimistic inclusion in :(exclude) matching
307 -
308 - Pathspec matching against a tree object were buggy when negative
309 - pathspec elements were involved, which has been fixed.
310 -
713 Will merge to 'master'.
714
715
@@ -315,36 +717,41 @@ of the repositories listed at
717 - diff: differentiate error handling in parse_color_moved_ws
718
719
318 -* ab/range-diff-no-patch (2018-11-07) 1 commit
319 - - range-diff: add a --no-patch option to show a summary
720 +* ab/range-diff-no-patch (2018-11-12) 4 commits
721 + - SQUASH???
722 + - range-diff: make diff option behavior (e.g. --stat) consistent
723 + - range-diff: fix regression in passing along diff options
724 + - range-diff doc: add a section about output stability
725
321 - "range-diff" learns the "--no-patch" option, which can be used to
322 - get a high-level overview without the actual line-by-line patch
323 - difference shown.
726 + The "--no-patch" option, which can be used to get a high-level
727 + overview without the actual line-by-line patch difference shown, of
728 + the "range-diff" command was earlier broken, which has been
729 + corrected.
730
325 - Will merge to 'next'.
731 + Waiting for a response to squashable fix.
732
733
734 * jk/unused-parameter-fixes (2018-11-06) 14 commits
329 - - midx: double-check large object write loop
330 - - assert NOARG/NONEG behavior of parse-options callbacks
331 - - parse-options: drop OPT_DATE()
332 - - apply: return -1 from option callback instead of calling exit(1)
333 - - cat-file: report an error on multiple --batch options
334 - - tag: mark "--message" option with NONEG
335 - - show-branch: mark --reflog option as NONEG
336 - - format-patch: mark "--no-numbered" option with NONEG
337 - - status: mark --find-renames option with NONEG
338 - - cat-file: mark batch options with NONEG
339 - - pack-objects: mark index-version option as NONEG
340 - - ls-files: mark exclude options as NONEG
341 - - am: handle --no-patch-format option
342 - - apply: mark include/exclude options as NONEG
735 + (merged to 'next' on 2018-11-13 at 8d3625b4ae)
736 + + midx: double-check large object write loop
737 + + assert NOARG/NONEG behavior of parse-options callbacks
738 + + parse-options: drop OPT_DATE()
739 + + apply: return -1 from option callback instead of calling exit(1)
740 + + cat-file: report an error on multiple --batch options
741 + + tag: mark "--message" option with NONEG
742 + + show-branch: mark --reflog option as NONEG
743 + + format-patch: mark "--no-numbered" option with NONEG
744 + + status: mark --find-renames option with NONEG
745 + + cat-file: mark batch options with NONEG
746 + + pack-objects: mark index-version option as NONEG
747 + + ls-files: mark exclude options as NONEG
748 + + am: handle --no-patch-format option
749 + + apply: mark include/exclude options as NONEG
750
751 Various functions have been audited for "-Wunused-parameter" warnings
752 and bugs in them got fixed.
753
347 - Will merge to 'next'.
754 + Will merge to 'master'.
755
756
757 * ds/push-squelch-ambig-warning (2018-11-07) 1 commit
@@ -355,70 +762,38 @@ of the repositories listed at
762 which was unnecessary (as it knew that it is feeding raw object
763 names). This has been optimized out.
764
765 + Will merge to 'next'.
766 +
767
768 * jk/verify-sig-merge-into-void (2018-11-07) 3 commits
360 - - pull: handle --verify-signatures for unborn branch
361 - - merge: handle --verify-signatures for unborn branch
362 - - merge: extract verify_merge_signature() helper
769 + (merged to 'next' on 2018-11-13 at a207be60ed)
770 + + pull: handle --verify-signatures for unborn branch
771 + + merge: handle --verify-signatures for unborn branch
772 + + merge: extract verify_merge_signature() helper
773
774 "git merge" and "git pull" that merges into an unborn branch used
775 to completely ignore "--verify-signatures", which has been
776 corrected.
777
368 - Will merge to 'next'.
778 + Will merge to 'master'.
779
780
781 * js/mingw-res-rebuild (2018-11-07) 1 commit
372 - - Windows: force-recompile git.res for differing architectures
782 + (merged to 'next' on 2018-11-13 at fb736827d1)
783 + + Windows: force-recompile git.res for differing architectures
784
785 Windows build update.
786
376 - Will merge to 'next'.
377 -
378 ---------------------------------------------------
379 -[Stalled]
380 -
381 -* lt/date-human (2018-07-09) 1 commit
382 - - Add 'human' date format
383 -
384 - A new date format "--date=human" that morphs its output depending
385 - on how far the time is from the current time has been introduced.
386 - "--date=auto" can be used to use this new format when the output is
387 - goint to the pager or to the terminal and otherwise the default
388 - format.
787 + Will merge to 'master'.
788
390 ---------------------------------------------------
391 -[Cooking]
789
393 -* ab/dynamic-gettext-poison (2018-11-02) 1 commit
790 +* ab/dynamic-gettext-poison (2018-11-09) 2 commits
791 + - Makefile: ease dynamic-gettext-poison transition
792 - i18n: make GETTEXT_POISON a runtime option
793
794 On hold.
397 - cf. <20181102163725.GY30222@szeder.dev>
398 -
399 -
400 -* js/rebase-p-tests (2018-11-02) 3 commits
401 - (merged to 'next' on 2018-11-03 at fc8d97465f)
402 - + tests: optionally skip `git rebase -p` tests
403 - + t3418: decouple test cases from a previous `rebase -p` test case
404 - + t3404: decouple some test cases from outcomes of previous test cases
405 -
406 - In preparation to the day when we can deprecate and remove the
407 - "rebase -p", make sure we can skip and later remove tests for
408 - it.
409 -
410 - Will merge to 'master'.
411 -
412 -
413 -* sg/travis-install-dependencies (2018-11-02) 1 commit
414 - (merged to 'next' on 2018-11-06 at b86e3a2792)
415 - + travis-ci: install packages in 'ci/install-dependencies.sh'
416 -
417 - The procedure to install dependencies before testing at Travis CI
418 - is getting revamped for both simplicity and flexibility, taking
419 - advantage of the recent move to the vm-based environment.
420 -
421 - Will merge to 'master'.
795 + The tip one may be controversial, but at least it would get me going.
796 + cf. <xmqqpnvg8d5z.fsf@gitster-ct.c.googlers.com>
797
798
799 * ab/push-dwim-dst (2018-10-29) 9 commits
@@ -455,7 +830,7 @@ of the repositories listed at
830 diagnosed as an error, not swept under the rug silently.
831
832
458 -* nd/i18n (2018-11-06) 16 commits
833 +* nd/i18n (2018-11-12) 16 commits
834 - fsck: mark strings for translation
835 - fsck: reduce word legos to help i18n
836 - parse-options.c: mark more strings for translation
@@ -464,165 +839,38 @@ of the repositories listed at
839 - repack: mark more strings for translation
840 - remote.c: mark messages for translation
841 - remote.c: turn some error() or die() to BUG()
467 - - reflog: mark strings for translation
468 - - read-cache.c: add missing colon separators
469 - - read-cache.c: mark more strings for translation
470 - - read-cache.c: turn die("internal error") to BUG()
471 - - attr.c: mark more string for translation
472 - - archive.c: mark more strings for translation
473 - - alias.c: mark split_cmdline_strerror() strings for translation
474 - - git.c: mark more strings for translation
475 -
476 - More _("i18n") markings.
477 -
478 -
479 -* nd/pthreads (2018-11-05) 14 commits
480 - - Clean up pthread_create() error handling
481 - - read-cache.c: initialize copy_len to shut up gcc 8
482 - - read-cache.c: reduce branching based on HAVE_THREADS
483 - - read-cache.c: remove #ifdef NO_PTHREADS
484 - - pack-objects: remove #ifdef NO_PTHREADS
485 - - preload-index.c: remove #ifdef NO_PTHREADS
486 - - grep: clean up num_threads handling
487 - - grep: remove #ifdef NO_PTHREADS
488 - - attr.c: remove #ifdef NO_PTHREADS
489 - - name-hash.c: remove #ifdef NO_PTHREADS
490 - - index-pack: remove #ifdef NO_PTHREADS
491 - - send-pack.c: move async's #ifdef NO_PTHREADS back to run-command.c
492 - - run-command.h: include thread-utils.h instead of pthread.h
493 - - thread-utils: macros to unconditionally compile pthreads API
494 -
495 - The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS".
496 -
497 - Will merge to 'next'.
498 -
499 -
500 -* nd/wildmatch-double-asterisk (2018-10-29) 1 commit
501 - (merged to 'next' on 2018-11-01 at 627186d020)
502 - + wildmatch: change behavior of "foo**bar" in WM_PATHNAME mode
503 -
504 - A pattern with '**' that does not have a slash on either side used
505 - to be an invalid one, but the code now treats such double-asterisks
506 - the same way as two normal asterisks that happen to be adjacent to
507 - each other.
508 -
509 - Will merge to 'master'.
510 -
511 -
512 -* bp/refresh-index-using-preload (2018-11-06) 2 commits
513 - (merged to 'next' on 2018-11-06 at d9b9d8f559)
514 - + refresh_index: remove unnecessary calls to preload_index()
515 - (merged to 'next' on 2018-11-01 at 289e6bcece)
516 - + speed up refresh_index() by utilizing preload_index()
517 -
518 - The helper function to refresh the cached stat information in the
519 - in-core index has learned to perform the lstat() part of the
520 - operation in parallel on multi-core platforms.
521 -
522 - Will merge to 'master'.
523 -
524 -
525 -* ab/pack-tests-cleanup (2018-10-31) 3 commits
526 - (merged to 'next' on 2018-11-03 at b4a39595bb)
527 - + index-pack tests: don't leave test repo dirty at end
528 - + pack-objects tests: don't leave test .git corrupt at end
529 - + pack-objects test: modernize style
530 -
531 - A couple of tests used to leave the repository in a state that is
532 - deliberately corrupt, which have been corrected.
533 -
534 - Will merge to 'master'.
535 -
536 -
537 -* jk/detect-truncated-zlib-input (2018-10-31) 4 commits
538 - (merged to 'next' on 2018-11-03 at 4952b4412b)
539 - + Adjust for 2.19.x series
540 - + cat-file: handle streaming failures consistently
541 - + check_stream_sha1(): handle input underflow
542 - + t1450: check large blob in trailing-garbage test
543 -
544 - A regression in Git 2.12 era made "git fsck" fall into an infinite
545 - loop while processing truncated loose objects.
546 -
547 - Will merge to 'master'.
548 -
549 -
550 -* jk/proto-v2-ref-prefix-fix (2018-10-31) 2 commits
551 - (merged to 'next' on 2018-11-03 at 3a203db692)
552 - + ls-remote: pass heads/tags prefixes to transport
553 - + ls-remote: do not send ref prefixes for patterns
554 -
555 - "git ls-remote $there foo" was broken by recent update for the
556 - protocol v2 and stopped showing refs that match 'foo' that are not
557 - refs/{heads,tags}/foo, which has been fixed.
558 -
559 - Will merge to 'master'.
560 -
561 -
562 -* jk/stream-pack-non-delta-clarification (2018-10-31) 1 commit
563 - (merged to 'next' on 2018-11-03 at bd386692c8)
564 - + read_istream_pack_non_delta(): document input handling
565 -
566 - Additional comment on a tricky piece of code to help developers.
567 -
568 - Will merge to 'master'.
569 -
570 -
571 -* js/mingw-isatty-and-dup2 (2018-10-31) 1 commit
572 - (merged to 'next' on 2018-11-03 at 0616899d9e)
573 - + mingw: fix isatty() after dup2()
574 -
575 - Windows fix.
576 -
577 - Will merge to 'master'.
578 -
579 -
580 -* js/mingw-perl5lib (2018-10-31) 4 commits
581 - (merged to 'next' on 2018-11-03 at 2fa516f3ae)
582 - + mingw: unset PERL5LIB by default
583 - + config: move Windows-specific config settings into compat/mingw.c
584 - + config: allow for platform-specific core.* config settings
585 - + config: rename `dummy` parameter to `cb` in git_default_config()
586 -
587 - Windows fix.
588 -
589 - Will merge to 'master'.
590 -
591 -
592 -* js/mingw-utf8-env (2018-10-31) 2 commits
593 - (merged to 'next' on 2018-11-03 at f6c5a8b609)
594 - + mingw: reencode environment variables on the fly (UTF-16 <-> UTF-8)
595 - + t7800: fix quoting
596 -
597 - Windows fix.
598 -
599 - Will merge to 'master'.
600 -
601 -
602 -* ma/sequencer-do-reset-saner-loop-termination (2018-10-31) 1 commit
603 - (merged to 'next' on 2018-11-03 at 99da78997d)
604 - + sequencer: break out of loop explicitly
605 -
606 - Code readability fix.
607 -
608 - Will merge to 'master'.
609 -
610 -
611 -* nb/worktree-api-doc (2018-10-31) 2 commits
612 - (merged to 'next' on 2018-11-03 at de9befb1f3)
613 - + worktree: rename is_worktree_locked to worktree_lock_reason
614 - + worktree: update documentation for lock_reason and lock_reason_valid
842 + - reflog: mark strings for translation
843 + - read-cache.c: add missing colon separators
844 + - read-cache.c: mark more strings for translation
845 + - read-cache.c: turn die("internal error") to BUG()
846 + - attr.c: mark more string for translation
847 + - archive.c: mark more strings for translation
848 + - alias.c: mark split_cmdline_strerror() strings for translation
849 + - git.c: mark more strings for translation
850
616 - Code readability fix.
851 + More _("i18n") markings.
852
618 - Will merge to 'master'.
853 + Will merge to 'next'.
854
855
621 -* sh/mingw-safer-compat-poll (2018-11-05) 1 commit
622 - (merged to 'next' on 2018-11-05 at 933a940a68)
623 - + poll: use GetTickCount64() to avoid wrap-around issues
856 +* nd/pthreads (2018-11-05) 14 commits
857 + (merged to 'next' on 2018-11-13 at bb6914b3f8)
858 + + Clean up pthread_create() error handling
859 + + read-cache.c: initialize copy_len to shut up gcc 8
860 + + read-cache.c: reduce branching based on HAVE_THREADS
861 + + read-cache.c: remove #ifdef NO_PTHREADS
862 + + pack-objects: remove #ifdef NO_PTHREADS
863 + + preload-index.c: remove #ifdef NO_PTHREADS
864 + + grep: clean up num_threads handling
865 + + grep: remove #ifdef NO_PTHREADS
866 + + attr.c: remove #ifdef NO_PTHREADS
867 + + name-hash.c: remove #ifdef NO_PTHREADS
868 + + index-pack: remove #ifdef NO_PTHREADS
869 + + send-pack.c: move async's #ifdef NO_PTHREADS back to run-command.c
870 + + run-command.h: include thread-utils.h instead of pthread.h
871 + + thread-utils: macros to unconditionally compile pthreads API
872
625 - Windows fix.
873 + The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS".
874
875 Will merge to 'master'.
876
@@ -657,9 +905,9 @@ of the repositories listed at
905 cf. <20181030220817.61691-1-sbeller@google.com>
906
907
660 -* en/merge-path-collision (2018-11-05) 10 commits
661 - - fixup! merge-recursive: improve rename/rename(1to2)/add[/add] handling
662 - - fixup! merge-recursive: fix rename/add conflict handling
908 +* en/merge-path-collision (2018-11-08) 10 commits
909 + - merge-recursive: combine error handling
910 + - t6036, t6043: increase code coverage for file collision handling
911 - merge-recursive: improve rename/rename(1to2)/add[/add] handling
912 - merge-recursive: use handle_file_collision for add/add conflicts
913 - merge-recursive: improve handling for rename/rename(2to1) conflicts
@@ -667,163 +915,11 @@ of the repositories listed at
915 - merge-recursive: new function for better colliding conflict resolutions
916 - merge-recursive: increase marker length with depth of recursion
917 - t6036, t6042: testcases for rename collision of already conflicting files
670 - - Add testcases for consistency in file collision conflict handling
918 + - t6042: add tests for consistency in file collision conflict handling
919
920 Updates for corner cases in merge-recursive.
921
674 -
675 -* jt/tighten-fetch-proto-v2-response (2018-11-01) 1 commit
676 - (merged to 'next' on 2018-11-03 at 310fe3f2c3)
677 - + fetch-pack: be more precise in parsing v2 response
678 -
679 - "git fetch" was a bit loose in parsing resposes from the other side
680 - when talking over the protocol v2.
681 -
682 - Will merge to 'master'.
683 -
684 -
685 -* nd/complete-format-patch (2018-11-06) 1 commit
686 - (merged to 'next' on 2018-11-06 at 7f4c58c9d0)
687 - + completion: use __gitcomp_builtin for format-patch
688 -
689 - The support for format-patch (and send-email) by the command-line
690 - completion script (in contrib/) has been simplified a bit.
691 -
692 - Will merge to 'master'.
693 -
694 -
695 -* nd/config-split (2018-10-29) 79 commits
696 - (merged to 'next' on 2018-11-03 at a336559101)
697 - + config.txt: remove config/dummy.txt
698 - + config.txt: move worktree.* to a separate file
699 - + config.txt: move web.* to a separate file
700 - + config.txt: move versionsort.* to a separate file
701 - + config.txt: move user.* to a separate file
702 - + config.txt: move url.* to a separate file
703 - + config.txt: move uploadpack.* to a separate file
704 - + config.txt: move uploadarchive.* to a separate file
705 - + config.txt: move transfer.* to a separate file
706 - + config.txt: move tag.* to a separate file
707 - + config.txt: move submodule.* to a separate file
708 - + config.txt: move stash.* to a separate file
709 - + config.txt: move status.* to a separate file
710 - + config.txt: move splitIndex.* to a separate file
711 - + config.txt: move showBranch.* to a separate file
712 - + config.txt: move sequencer.* to a separate file
713 - + config.txt: move sendemail-config.txt to config/
714 - + config.txt: move reset.* to a separate file
715 - + config.txt: move rerere.* to a separate file
716 - + config.txt: move repack.* to a separate file
717 - + config.txt: move remotes.* to a separate file
718 - + config.txt: move remote.* to a separate file
719 - + config.txt: move receive-config.txt to config/
720 - + config.txt: move rebase-config.txt to config/
721 - + config.txt: move push-config.txt to config/
722 - + config.txt: move pull-config.txt to config/
723 - + config.txt: move protocol.* to a separate file
724 - + config.txt: move pretty.* to a separate file
725 - + config.txt: move pager.* to a separate file
726 - + config.txt: move pack.* to a separate file
727 - + config.txt: move notes.* to a separate file
728 - + config.txt: move mergetool.* to a separate file
729 - + config.txt: move merge-config.txt to config/
730 - + config.txt: move man.* to a separate file
731 - + config.txt: move mailmap.* to a separate file
732 - + config.txt: move mailinfo.* to a separate file
733 - + config.txt: move log.* to a separate file
734 - + config.txt: move interactive.* to a separate file
735 - + config.txt: move instaweb.* to a separate file
736 - + config.txt: move init.* to a separate file
737 - + config.txt: move index.* to a separate file
738 - + git-imap-send.txt: move imap.* to a separate file
739 - + config.txt: move i18n.* to a separate file
740 - + config.txt: move http.* to a separate file
741 - + config.txt: move ssh.* to a separate file
742 - + config.txt: move help.* to a separate file
743 - + config.txt: move guitool.* to a separate file
744 - + config.txt: move gui-config.txt to config/
745 - + config.txt: move gpg.* to a separate file
746 - + config.txt: move grep.* to a separate file
747 - + config.txt: move gitweb.* to a separate file
748 - + config.txt: move gitcvs-config.txt to config/
749 - + config.txt: move gc.* to a separate file
750 - + config.txt: move fsck.* to a separate file
751 - + config.txt: move fmt-merge-msg-config.txt to config/
752 - + config.txt: move format-config.txt to config/
753 - + config.txt: move filter.* to a separate file
754 - + config.txt: move fetch-config.txt to config/
755 - + config.txt: move fastimport.* to a separate file
756 - + config.txt: move difftool.* to a separate file
757 - + config.txt: move diff-config.txt to config/
758 - + config.txt: move completion.* to a separate file
759 - + config.txt: move credential.* to a separate file
760 - + config.txt: move commit.* to a separate file
761 - + config.txt: move column.* to a separate file
762 - + config.txt: move color.* to a separate file
763 - + config.txt: move clean.* to a separate file
764 - + config.txt: move checkout.* to a separate file
765 - + config.txt: move browser.* to a separate file
766 - + config.txt: move branch.* to a separate file
767 - + config.txt: move blame.* to a separate file
768 - + config.txt: move apply.* to a separate file
769 - + config.txt: move am.* to a separate file
770 - + config.txt: move alias.* to a separate file
771 - + config.txt: move add.* to a separate file
772 - + config.txt: move core.* to a separate file
773 - + config.txt: move advice.* to a separate file
774 - + Update makefile in preparation for Documentation/config/*.txt
775 - + Merge branches 'bp/reset-quiet' and 'js/mingw-http-ssl' into nd/config-split
776 - (this branch uses bp/reset-quiet.)
777 -
778 - Split the overly large Documentation/config.txt file into million
779 - little pieces. This potentially allows each individual piece
780 - included into the manual page of the command it affects more easily.
781 -
782 - Will merge to 'master'.
783 -
784 - This is a painful conversions while many other topics in flight
785 - wants to add to or edit the documentation of configuration
786 - variables.
787 -
788 -
789 -* nd/per-worktree-config (2018-10-22) 2 commits
790 - (merged to 'next' on 2018-11-01 at 3746343ca8)
791 - + worktree: add per-worktree config files
792 - + t1300: extract and use test_cmp_config()
793 -
794 - A fourth class of configuration files (in addition to the
795 - traditional "system wide", "per user in the $HOME directory" and
796 - "per repository in the $GIT_DIR/config") has been introduced so
797 - that different worktrees that share the same repository (hence the
798 - same $GIT_DIR/config file) can use different customization.
799 -
800 - Will merge to 'master'.
801 -
802 -
803 -* ag/rev-parse-all-exclude-fix (2018-11-01) 1 commit
804 - (merged to 'next' on 2018-11-03 at 49730558fa)
805 - + rev-parse: clear --exclude list after 'git rev-parse --all'
806 -
807 - "git rev-parse --exclude=* --branches --branches" (i.e. first
808 - saying "add only things that do not match '*' out of all branches"
809 - and then adding all branches, without any exclusion this time")
810 - worked as expected, but "--exclude=* --all --all" did not work the
811 - same way, which has been fixed.
812 -
813 - Will merge to 'master'.
814 -
815 -
816 -* bp/reset-quiet (2018-10-24) 3 commits
817 - (merged to 'next' on 2018-10-29 at 71f4fbc802)
818 - + reset: warn when refresh_index() takes more than 2 seconds
819 - + reset: add new reset.quiet config setting
820 - + reset: don't compute unstaged changes after reset when --quiet
821 - (this branch is used by nd/config-split.)
822 -
823 - "git reset --quiet" no longer runs "update-index --refresh"
824 - internally, which shifts the refresh cost away from the command.
825 -
826 - Will merge to 'master'.
922 + Will merge to 'next'.
923
924
925 * sd/stash-wo-user-name (2018-11-02) 1 commit
@@ -832,20 +928,6 @@ of the repositories listed at
928 An early part of a wip.
929
930
835 -* pw/am-rebase-read-author-script (2018-11-01) 5 commits
836 - (merged to 'next' on 2018-11-03 at bb6c32fe16)
837 - + sequencer: use read_author_script()
838 - + add read_author_script() to libgit
839 - + am: rename read_author_script()
840 - + am: improve author-script error reporting
841 - + am: don't die in read_author_script()
842 -
843 - Unify code to read the author-script used in "git am" and the
844 - commands that use the sequencer machinery, e.g. "git rebase -i".
845 -
846 - Will merge to 'master'.
847 -
848 -
931 * bc/sha-256 (2018-11-05) 12 commits
932 - hash: add an SHA-256 implementation using OpenSSL
933 - sha256: add an SHA-256 implementation using libgcrypt
@@ -865,25 +947,30 @@ of the repositories listed at
947
948
949 * js/vsts-ci (2018-10-16) 13 commits
868 - - travis: fix skipping tagged releases
869 - - README: add a build badge (status of the Azure Pipelines build)
870 - - tests: record more stderr with --write-junit-xml in case of failure
871 - - tests: include detailed trace logs with --write-junit-xml upon failure
872 - - git-p4: use `test_atexit` to kill the daemon
873 - - git-daemon: use `test_atexit` in the tests
874 - - tests: introduce `test_atexit`
875 - - ci: add a build definition for Azure DevOps
876 - - ci/lib.sh: add support for Azure Pipelines
877 - - tests: optionally write results as JUnit-style .xml
878 - - test-date: add a subcommand to measure times in shell scripts
879 - - ci/lib.sh: encapsulate Travis-specific things
880 - - ci: rename the library of common functions
950 + . travis: fix skipping tagged releases
951 + . README: add a build badge (status of the Azure Pipelines build)
952 + . tests: record more stderr with --write-junit-xml in case of failure
953 + . tests: include detailed trace logs with --write-junit-xml upon failure
954 + . git-p4: use `test_atexit` to kill the daemon
955 + . git-daemon: use `test_atexit` in the tests
956 + . tests: introduce `test_atexit`
957 + . ci: add a build definition for Azure DevOps
958 + . ci/lib.sh: add support for Azure Pipelines
959 + . tests: optionally write results as JUnit-style .xml
960 + . test-date: add a subcommand to measure times in shell scripts
961 + . ci/lib.sh: encapsulate Travis-specific things
962 + . ci: rename the library of common functions
963
964 Prepare to run test suite on Azure DevOps.
965
884 - On hold, monitoring the discussion.
885 - cf. <nycvar.QRO.7.76.6.1810151657080.4546@tvgsbejvaqbjf.bet>
886 - cf. <nycvar.QRO.7.76.6.1810261033440.4546@tvgsbejvaqbjf.bet>
966 + Ejected out of 'pu', as doing so seems to help other topics get
967 + tested at TravisCI.
968 +
969 + https://travis-ci.org/git/git/builds/452713184 is a sample of a
970 + build whose tests on 4 hang (with this series in). Ejecting it
971 + gave us https://travis-ci.org/git/git/builds/452778963 which still
972 + shows breakages from other topics not yet in 'next', but at least
973 + the tests do not stall.
974
975
976 * du/branch-show-current (2018-10-26) 1 commit
@@ -903,16 +990,6 @@ of the repositories listed at
990 updated to use "size_t".
991
992
906 -* jc/war-on-string-list (2018-11-01) 1 commit
907 - (merged to 'next' on 2018-11-03 at 2ff65073f1)
908 - + fetch: replace string-list used as a look-up table with a hashmap
909 -
910 - Replace three string-list instances used as look-up tables in "git
911 - fetch" with hashmaps.
912 -
913 - Will merge to 'master'.
914 -
915 -
993 * js/remote-archive-v2 (2018-09-28) 4 commits
994 (merged to 'next' on 2018-10-12 at 5f34377f60)
995 + archive: allow archive over HTTP(S) with proto v2
@@ -930,23 +1007,23 @@ of the repositories listed at
1007 Breaks interoperability.
1008
1009
933 -* ag/sequencer-reduce-rewriting-todo (2018-10-09) 16 commits
1010 +* ag/sequencer-reduce-rewriting-todo (2018-11-12) 16 commits
1011 . rebase--interactive: move transform_todo_file() to rebase--interactive.c
1012 . sequencer: fix a call to error() in transform_todo_file()
1013 . sequencer: use edit_todo_list() in complete_action()
1014 . rebase-interactive: rewrite edit_todo_list() to handle the initial edit
1015 . rebase-interactive: append_todo_help() changes
939 - . rebase-interactive: use todo_list_transform() in edit_todo_list()
1016 + . rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
1017 . sequencer: refactor skip_unnecessary_picks() to work on a todo_list
1018 . sequencer: change complete_action() to use the refactored functions
1019 . sequencer: make sequencer_make_script() write its script to a strbuf
943 - . sequencer: refactor transform_todos() to work on a todo_list
1020 . sequencer: refactor rearrange_squash() to work on a todo_list
1021 . sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
1022 . sequencer: refactor check_todo_list() to work on a todo_list
1023 + . sequencer: introduce todo_list_write_to_file()
1024 + . sequencer: refactor transform_todos() to work on a todo_list
1025 . sequencer: make the todo_list structure public
948 - . sequencer: clear the number of items of a todo_list before parsing
949 - . Merge branch 'ag/rebase-i-in-c' into ag/sequencer-reduce-rewriting-todo
1026 + . sequencer: changes in parse_insn_buffer()
1027
1028 The scripted version of "git rebase -i" wrote and rewrote the todo
1029 list many times during a single step of its operation, and the
@@ -955,56 +1032,24 @@ of the repositories listed at
1032 around in-core to avoid rewriting the same file over and over
1033 unnecessarily.
1034
958 - A reroll exists but is based on a stale codebase and is painful to
959 - merge.
960 -
961 -
962 -* ds/test-multi-pack-index (2018-10-26) 4 commits
963 - (merged to 'next' on 2018-11-03 at 624c415a45)
964 - + packfile: close multi-pack-index in close_all_packs
965 - + multi-pack-index: define GIT_TEST_MULTI_PACK_INDEX
966 - + midx: close multi-pack-index on repack
967 - + midx: fix broken free() in close_midx()
968 -
969 - Tests for the recently introduced multi-pack index machinery.
970 -
971 - Will merge to 'master'.
972 -
973 -
974 -* nd/per-worktree-ref-iteration (2018-11-05) 9 commits
975 - (merged to 'next' on 2018-11-06 at 53803cedf3)
976 - + git-worktree.txt: correct linkgit command name
977 - (merged to 'next' on 2018-11-03 at 4cbe49a704)
978 - + reflog expire: cover reflog from all worktrees
979 - + fsck: check HEAD and reflog from other worktrees
980 - + fsck: move fsck_head_link() to get_default_heads() to avoid some globals
981 - + revision.c: better error reporting on ref from different worktrees
982 - + revision.c: correct a parameter name
983 - + refs: new ref types to make per-worktree refs visible to all worktrees
984 - + Add a place for (not) sharing stuff between worktrees
985 - + refs.c: indent with tabs, not spaces
986 -
987 - The code to traverse objects for reachability, used to decide what
988 - objects are unreferenced and expendable, have been taught to also
989 - consider per-worktree refs of other worktrees as starting points to
990 - prevent data loss.
991 -
992 - Will merge to 'master'.
1035 + With too many topics in-flight that touch sequencer and rebaser,
1036 + this need to wait giving precedence to other topics that fix bugs.
1037
1038
1039 * ds/reachable-topo-order (2018-11-02) 7 commits
996 - - t6012: make rev-list tests more interesting
997 - - revision.c: generation-based topo-order algorithm
998 - - commit/revisions: bookkeeping before refactoring
999 - - revision.c: begin refactoring --topo-order logic
1000 - - test-reach: add rev-list tests
1001 - - test-reach: add run_three_modes method
1002 - - prio-queue: add 'peek' operation
1040 + (merged to 'next' on 2018-11-13 at 4155d01aee)
1041 + + t6012: make rev-list tests more interesting
1042 + + revision.c: generation-based topo-order algorithm
1043 + + commit/revisions: bookkeeping before refactoring
1044 + + revision.c: begin refactoring --topo-order logic
1045 + + test-reach: add rev-list tests
1046 + + test-reach: add run_three_modes method
1047 + + prio-queue: add 'peek' operation
1048
1049 The revision walker machinery learned to take advantage of the
1050 commit generation numbers stored in the commit-graph file.
1051
1007 - Will merge to 'next'.
1052 + Will merge to 'master'.
1053
1054
1055 * sb/submodule-recursive-fetch-gets-the-tip (2018-10-31) 11 commits
@@ -1019,7 +1064,6 @@ of the repositories listed at
1064 - submodule.c: fix indentation
1065 - sha1-array: provide oid_array_filter
1066 - Merge branch 'ao/submodule-wo-gitmodules-checked-out' into sb/submodule-recursive-fetch-gets-the-tip
1022 - (this branch uses ao/submodule-wo-gitmodules-checked-out.)
1067
1068 "git fetch --recurse-submodules" may not fetch the necessary commit
1069 that is bound to the superproject, which is getting corrected.
@@ -1038,27 +1082,6 @@ of the repositories listed at
1082 cf. <e5b2900a-0558-d3bf-8ea1-d526b078bbc2@talktalk.net>
1083
1084
1041 -* ao/submodule-wo-gitmodules-checked-out (2018-10-31) 10 commits
1042 - (merged to 'next' on 2018-11-03 at 00c3377ef0)
1043 - + t/helper: add test-submodule-nested-repo-config
1044 - + submodule: support reading .gitmodules when it's not in the working tree
1045 - + submodule: add a helper to check if it is safe to write to .gitmodules
1046 - + t7506: clean up .gitmodules properly before setting up new scenario
1047 - + submodule: use the 'submodule--helper config' command
1048 - + submodule--helper: add a new 'config' subcommand
1049 - + t7411: be nicer to future tests and really clean things up
1050 - + t7411: merge tests 5 and 6
1051 - + submodule: factor out a config_set_in_gitmodules_file_gently function
1052 - + submodule: add a print_config_from_gitmodules() helper
1053 - (this branch is used by sb/submodule-recursive-fetch-gets-the-tip.)
1054 -
1055 - The submodule support has been updated to read from the blob at
1056 - HEAD:.gitmodules when the .gitmodules file is missing from the
1057 - working tree.
1058 -
1059 - Will merge to 'master'.
1060 -
1061 -
1085 * ps/stash-in-c (2018-10-15) 21 commits
1086 - stash: replace all `write-tree` child processes with API calls
1087 - stash: optimize `get_untracked_files()` and `check_changes()`