What's cooking (2019/12 #01)

Junio C Hamano committed Dec 2, 2019 at 06:08 UTC 86559a5ed775f2dd21cb86491fba72d7013719e2
1 file changed +852 -720
whats-cooking.txt
+852 -720
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Nov 2019, #04; Mon, 25)
4 -X-master-at: d9f6f3b6195a0ca35642561e530798ad1469bd41
5 -X-next-at: 34dc348eaf04483f062911e310f14c9f4e8ddf1e
3 +Subject: What's cooking in git.git (Dec 2019, #01; Mon, 2)
4 +X-master-at: 228f53135a4a41a37b6be8e4d6e2b6153db4a8ed
5 +X-next-at: e41a19f04e19db375f8e58b74c6cb9d3a1495be5
6
7 -What's cooking in git.git (Nov 2019, #04; Mon, 25)
7 +What's cooking in git.git (Dec 2019, #01; Mon, 2)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,9 +12,10 @@ Here are the topics that have been cooking. Commits prefixed with
12 '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 -Quite a many topics are now marked to be merged to 'master', which
16 -may happen sometime next week (I'll be mostly offline this week).
17 -Please stop me if I mistakenly marked some that are not quite ready.
15 +The second batch of topics are now in 'master'; this was a rather
16 +large update, so there might be some fallout. Many topics are still
17 +in 'next' to be merged to 'master' soonish, and many others are
18 +waiting to be in 'next'.
19
20 You can find the changes described here in the integration branches
21 of the repositories listed at
@@ -22,1083 +23,1214 @@ of the repositories listed at
23 http://git-blame.blogspot.com/p/git-public-repositories.html
24
25 --------------------------------------------------
25 -[New Topics]
26 +[Graduated to "master"]
27
27 -* ds/commit-graph-delay-gen-progress (2019-11-22) 2 commits
28 - - commit-graph: use start_delayed_progress()
29 - - progress: create GIT_PROGRESS_DELAY
28 +* ar/install-doc-update-cmds-needing-the-shell (2019-11-15) 1 commit
29 + (merged to 'next' on 2019-11-19 at 216468eb98)
30 + + INSTALL: use existing shell scripts as example
31
31 - One kind of progress messages were always given during commit-graph
32 - generation, instead of following the "if it takes more than two
33 - seconds, show progress" pattern, which has been corrected.
32 + Doc update.
33
34
36 -* ds/sparse-cone (2019-11-22) 19 commits
37 - - sparse-checkout: check for dirty status
38 - - sparse-checkout: update working directory in-process for 'init'
39 - - sparse-checkout: cone mode should not interact with .gitignore
40 - - sparse-checkout: write using lockfile
41 - - sparse-checkout: use in-process update for disable subcommand
42 - - sparse-checkout: update working directory in-process
43 - - sparse-checkout: sanitize for nested folders
44 - - unpack-trees: add progress to clear_ce_flags()
45 - - unpack-trees: hash less in cone mode
46 - - sparse-checkout: init and set in cone mode
47 - - sparse-checkout: use hashmaps for cone patterns
48 - - sparse-checkout: add 'cone' mode
49 - - trace2: add region in clear_ce_flags
50 - - sparse-checkout: create 'disable' subcommand
51 - - sparse-checkout: add '--stdin' option to set subcommand
52 - - sparse-checkout: 'set' subcommand
53 - - clone: add --sparse mode
54 - - sparse-checkout: create 'init' subcommand
55 - - sparse-checkout: create builtin with 'list' subcommand
35 +* cb/curl-use-xmalloc (2019-11-07) 1 commit
36 + (merged to 'next' on 2019-11-19 at 1c587d0775)
37 + + remote-curl: unbreak http.extraHeader with custom allocators
38
57 - Management of sparsely checked-out working tree has gained a
58 - dedicated "sparse-checkout" command.
39 + HTTP transport had possible allocator/deallocator mismatch, which
40 + has been corrected.
41
42
61 -* dl/range-diff-with-notes (2019-11-21) 10 commits
62 - (merged to 'next' on 2019-11-25 at dd6dad97c1)
63 - + format-patch: pass notes configuration to range-diff
64 - + range-diff: pass through --notes to `git log`
65 - + range-diff: output `## Notes ##` header
66 - + t3206: range-diff compares logs with commit notes
67 - + t3206: s/expected/expect/
68 - + t3206: disable parameter substitution in heredoc
69 - + t3206: remove spaces after redirect operators
70 - + pretty-options.txt: --notes accepts a ref instead of treeish
71 - + rev-list-options.txt: remove reference to --show-notes
72 - + argv-array: add space after `while`
43 +* dd/sequencer-utf8 (2019-11-11) 8 commits
44 + (merged to 'next' on 2019-11-19 at 9432ddc32c)
45 + + sequencer: reencode commit message for am/rebase --show-current-patch
46 + + sequencer: reencode old merge-commit message
47 + + sequencer: reencode squashing commit's message
48 + + sequencer: reencode revert/cherry-pick's todo list
49 + + sequencer: reencode to utf-8 before arrange rebase's todo list
50 + + t3900: demonstrate git-rebase problem with multi encoding
51 + + configure.ac: define ICONV_OMITS_BOM if necessary
52 + + t0028: eliminate non-standard usage of printf
53
74 - "git range-diff" learned to take the "--notes=<ref>" and the
75 - "--no-notes" options to control the commit notes included in the
76 - log message that gets compared.
54 + Handling of commit objects that use non UTF-8 encoding during
55 + "rebase -i" has been improved.
56
78 - Will merge to 'master'.
57
58 +* dj/typofix-merge-strat (2019-11-11) 1 commit
59 + (merged to 'next' on 2019-11-19 at 5b6c0cf125)
60 + + merge-strategies: fix typo "reflected to" to "reflected in"
61
81 -* jc/azure-ci-osx-fix-fix (2019-11-20) 1 commit
82 - (merged to 'next' on 2019-11-25 at 7de6356e67)
83 - + ci(osx): update homebrew-cask repository with less noise
62 + Typofix.
63
85 - CI jobs for macOS has been made less chatty when updating perforce
86 - package used during testing.
64
88 - Will merge to 'master'.
65 +* dl/complete-rebase-onto (2019-11-12) 1 commit
66 + (merged to 'next' on 2019-11-19 at ba53946a3b)
67 + + completion: learn to complete `git rebase --onto=`
68
69 + The completion script (in contrib/) learned that the "--onto"
70 + option of "git rebase" can take its argument as the value of the
71 + option.
72
91 -* jk/fail-show-toplevel-outside-working-tree (2019-11-20) 1 commit
92 - (merged to 'next' on 2019-11-25 at cd97ae38bc)
93 - + rev-parse: make --show-toplevel without a worktree an error
73
95 - "git rev-parse --show-toplevel" run outside of any working tree did
96 - not error out, which has been corrected.
74 +* dl/doc-diff-no-index-implies-exit-code (2019-11-02) 1 commit
75 + (merged to 'next' on 2019-11-19 at e2b2181e28)
76 + + git-diff.txt: document return code of `--no-index`
77
98 - Will merge to 'master'.
78 + Doc update.
79
80
101 -* pb/submodule-update-fetches (2019-11-24) 1 commit
102 - (merged to 'next' on 2019-11-25 at 7736f98351)
103 - + doc: mention that 'git submodule update' fetches missing commits
81 +* ds/test-read-graph (2019-11-13) 1 commit
82 + (merged to 'next' on 2019-11-19 at 80152fc082)
83 + + test-tool: use 'read-graph' helper
84
105 - Doc update.
85 + Dev support for commit-graph feature.
86
107 - Will merge to 'master'.
87
88 +* en/doc-typofix (2019-11-10) 10 commits
89 + (merged to 'next' on 2019-11-19 at e7bfe50de5)
90 + + Fix spelling errors in no-longer-updated-from-upstream modules
91 + + multimail: fix a few simple spelling errors
92 + + sha1dc: fix trivial comment spelling error
93 + + Fix spelling errors in test commands
94 + + Fix spelling errors in messages shown to users
95 + + Fix spelling errors in names of tests
96 + + Fix spelling errors in comments of testcases
97 + + Fix spelling errors in code comments
98 + + Fix spelling errors in documentation outside of Documentation/
99 + + Documentation: fix a bunch of typos, both old and new
100
110 -* sg/unpack-progress-throughput (2019-11-20) 1 commit
111 - (merged to 'next' on 2019-11-25 at 0418db6a27)
112 - + builtin/unpack-objects.c: show throughput progress
101 + Docfix.
102
114 - "git unpack-objects" used to show progress based only on the number
115 - of received and unpacked objects, which stalled when it has to
116 - handle an unusually large object. It now shows the throughput as
117 - well.
103
119 - Will merge to 'master'.
104 +* en/misc-doc-fixes (2019-11-07) 3 commits
105 + (merged to 'next' on 2019-11-19 at 7222cf3720)
106 + + name-hash.c: remove duplicate word in comment
107 + + hashmap: fix documentation misuses of -> versus .
108 + + git-filter-branch.txt: correct argument name typo
109
110 + Misc doc fixes.
111
122 -* dl/test-cleanup (2019-11-23) 22 commits
123 - - t7700: stop losing return codes of git commands
124 - - t7700: s/test -f/test_path_is_file/
125 - - t7700: move keywords onto their own line
126 - - t7700: remove spaces after redirect operators
127 - - t7700: drop redirections to /dev/null
128 - - t7501: stop losing return codes of git commands
129 - - t7501: remove spaces after redirect operators
130 - - t5703: stop losing return codes of git commands
131 - - t5703: simplify one-time-sed generation logic
132 - - t5317: use ! grep to check for no matching lines
133 - - t5317: stop losing return codes of git commands
134 - - t4138: stop losing return codes of git commands
135 - - t4015: use test_write_lines()
136 - - t4015: stop losing return codes of git commands
137 - - t3600: comment on inducing SIGPIPE in `git rm`
138 - - t3600: stop losing return codes of git commands
139 - - t3600: use test_line_count() where possible
140 - - t3301: stop losing return codes of git commands
141 - - t0090: stop losing return codes of git commands
142 - - t0014: remove git command upstream of pipe
143 - - apply-one-time-sed.sh: modernize style
144 - - lib-bash.sh: move `then` onto its own line
112
146 - Test cleanup.
113 +* en/t6024-style (2019-11-07) 1 commit
114 + (merged to 'next' on 2019-11-19 at b41c2ed21b)
115 + + t6024: modernize style
116 +
117 + Test updates.
118
148 - Will merge to 'next'.
119
120 +* es/myfirstcontrib-updates (2019-11-02) 3 commits
121 + (merged to 'next' on 2019-11-19 at 41d70e1db4)
122 + + myfirstcontrib: hint to find gitgitgadget allower
123 + + myfirstcontrib: add dependency installation step
124 + + myfirstcontrib: add 'psuh' to command-list.txt
125
151 -* tg/perf-remove-stale-result (2019-11-21) 1 commit
152 - - perf-lib: remove old result files before running tests
126 + Doc updates.
127
154 - PerfTest cleanup.
128
156 - Expecting a reroll.
157 - cf. <20191122081108.GA38815@cat>
129 +* hw/config-doc-in-header (2019-10-24) 1 commit
130 + (merged to 'next' on 2019-11-19 at 7f314c649e)
131 + + config: move documentation to config.h
132
133 + Follow recent push to move API docs from Documentation/ to header
134 + files and update config.h
135
160 -* us/unpack-trees-fsmonitor (2019-11-21) 1 commit
161 - - unpack-trees: skip stat on fsmonitor-valid files
162 - (this branch uses jc/fsmonitor-sanity-fix.)
136
164 - Users of oneway_merge() (like "reset --hard") learned to take
165 - advantage of fsmonitor to avoid unnecessary lstat(2) calls.
137 +* jc/fsmonitor-sanity-fix (2019-11-13) 1 commit
138 + (merged to 'next' on 2019-11-19 at 1fceb9b55b)
139 + + fsmonitor: do not compare bitmap size with size of split index
140 + (this branch is used by us/unpack-trees-fsmonitor.)
141
167 - Will merge to 'next'.
142 + Remove an incorrect BUG() that should not trigger.
143
144
170 -* ds/fsmonitor-testing (2019-11-22) 11 commits
171 - - test-lib: clear watchman watches at test completion
172 - - t7519: disable external GIT_TEST_FSMONITOR variable
173 - - t7063: disable fsmonitor with status cache
174 - - tests: disable fsmonitor in submodule tests
175 - - t3600-rm.sh: disable fsmonitor when deleting populated submodule
176 - - t3030-merge-recursive.sh: disable fsmonitor when tweaking GIT_WORK_TREE
177 - - fsmonitor: disable fsmonitor with worktrees
178 - - t1510-repo-setup.sh: disable fsmonitor if no .git dir
179 - - t1301-shared-repo.sh: disable FSMONITOR
180 - - fsmonitor: do not output to stderr for tests
181 - - fsmonitor: disable in a bare repo
145 +* jc/log-graph-simplify (2019-11-13) 14 commits
146 + (merged to 'next' on 2019-11-19 at de6360c648)
147 + + t4215: use helper function to check output
148 + (merged to 'next' on 2019-11-10 at 79d2b8ff98)
149 + + graph: fix coloring of octopus dashes
150 + + graph: flatten edges that fuse with their right neighbor
151 + + graph: smooth appearance of collapsing edges on commit lines
152 + + graph: rename `new_mapping` to `old_mapping`
153 + + graph: commit and post-merge lines for left-skewed merges
154 + + graph: tidy up display of left-skewed merges
155 + + graph: example of graph output that can be simplified
156 + + graph: extract logic for moving to GRAPH_PRE_COMMIT state
157 + + graph: remove `mapping_idx` and `graph_update_width()`
158 + + graph: reduce duplication in `graph_insert_into_new_columns()`
159 + + graph: reuse `find_new_column_by_commit()`
160 + + graph: handle line padding in `graph_next_line()`
161 + + graph: automatically track display width of graph lines
162
183 - Updates around testing fsmoitor integration.
163 + The implementation of "git log --graph" got refactored and then its
164 + output got simplified.
165 +
166 +
167 +* jk/cleanup-object-parsing-and-fsck (2019-10-28) 23 commits
168 + (merged to 'next' on 2019-11-10 at 50b2267a2a)
169 + + fsck: accept an oid instead of a "struct tree" for fsck_tree()
170 + + fsck: accept an oid instead of a "struct commit" for fsck_commit()
171 + + fsck: accept an oid instead of a "struct tag" for fsck_tag()
172 + + fsck: rename vague "oid" local variables
173 + + fsck: don't require an object struct in verify_headers()
174 + + fsck: don't require an object struct for fsck_ident()
175 + + fsck: drop blob struct from fsck_finish()
176 + + fsck: accept an oid instead of a "struct blob" for fsck_blob()
177 + + fsck: don't require an object struct for report()
178 + + fsck: only require an oid for skiplist functions
179 + + fsck: only provide oid/type in fsck_error callback
180 + + fsck: don't require object structs for display functions
181 + + fsck: use oids rather than objects for object_name API
182 + + fsck_describe_object(): build on our get_object_name() primitive
183 + + fsck: unify object-name code
184 + + fsck: require an actual buffer for non-blobs
185 + + fsck: stop checking tag->tagged
186 + + fsck: stop checking commit->parent counts
187 + + fsck: stop checking commit->tree value
188 + + commit, tag: don't set parsed bit for parse failures
189 + + parse_tag_buffer(): treat NULL tag pointer as parse error
190 + + parse_commit_buffer(): treat lookup_tree() failure as parse error
191 + + parse_commit_buffer(): treat lookup_commit() failure as parse error
192 +
193 + Originally merged to 'next' on 2019-10-30
194 +
195 + Crufty code and logic accumulated over time around the object
196 + parsing and low-level object access used in "git fsck" have been
197 + cleaned up.
198 +
199 +
200 +* jk/gitweb-anti-xss (2019-11-18) 4 commits
201 + (merged to 'next' on 2019-11-19 at 69ef04c013)
202 + + gitweb: escape URLs generated by href()
203 + + t/gitweb-lib.sh: set $REQUEST_URI
204 + + t/gitweb-lib.sh: drop confusing quotes
205 + + t9502: pass along all arguments in xss helper
206 +
207 + Some codepaths in "gitweb" that forgot to escape URLs generated
208 + based on end-user input have been corrected.
209 +
210 +
211 +* jk/optim-in-pack-idx-conversion (2019-11-12) 1 commit
212 + (merged to 'next' on 2019-11-19 at a81ebc7b8d)
213 + + pack-objects: avoid pointless oe_map_new_pack() calls
214 +
215 + Code clean-up.
216 +
217 +
218 +* jk/remove-sha1-to-hex (2019-11-13) 2 commits
219 + (merged to 'next' on 2019-11-19 at fb68824870)
220 + + hex: drop sha1_to_hex()
221 + + hex: drop sha1_to_hex_r()
222 +
223 + Code clean-up.
224 +
225 +
226 +* jk/send-pack-remote-failure (2019-11-13) 1 commit
227 + (merged to 'next' on 2019-11-19 at d02c0107ee)
228 + + send-pack: check remote ref status on pack-objects failure
229 +
230 + Error handling after "git push" finishes sending the packdata and
231 + waits for the response to the remote side has been improved.
232 +
233 +
234 +* js/complete-svn-recursive (2019-11-13) 1 commit
235 + (merged to 'next' on 2019-11-19 at fa2a97911c)
236 + + completion: tab-complete "git svn --recursive"
237 +
238 + The completion script (in contrib/) has been taught that "git svn"
239 + supports the "--recursive" option.
240 +
241 +
242 +* js/fetch-multi-lockfix (2019-11-06) 2 commits
243 + (merged to 'next' on 2019-11-19 at b9683b7ec9)
244 + + fetch: avoid locking issues between fetch.jobs/fetch.writeCommitGraph
245 + + fetch: add the command-line option `--write-commit-graph`
246 +
247 + Fetching from multiple remotes into the same repository in parallel
248 + had a bad interaction with the recent change to (optionally) update
249 + the commit-graph after a fetch job finishes, as these parallel
250 + fetches compete with each other. Which has been corrected.
251 +
252 +
253 +* js/git-path-head-dot-lock-fix (2019-10-29) 2 commits
254 + (merged to 'next' on 2019-11-19 at b406944979)
255 + + git_path(): handle `.lock` files correctly
256 + + t1400: wrap setup code in test case
257 +
258 + "git rev-parse --git-path HEAD.lock" did not give the right path
259 + when run in a secondary worktree.
260 +
261 +
262 +* js/vreportf-wo-buffering (2019-11-02) 1 commit
263 + (merged to 'next' on 2019-11-19 at cae61b9899)
264 + + vreportf(): avoid relying on stdio buffering
265 +
266 + Messages from die() etc. can be mixed up from multiple processes
267 + without even line buffering on Windows, which has been worked
268 + around.
269
185 - Will merge to 'next'.
270
271 +* jt/fetch-remove-lazy-fetch-plugging (2019-11-13) 3 commits
272 + (merged to 'next' on 2019-11-19 at 1b26c28dcd)
273 + + promisor-remote: remove fetch_if_missing=0
274 + + clone: remove fetch_if_missing=0
275 + + fetch: remove fetch_if_missing=0
276
188 -* hi/gpg-optional-pkfp-fix (2019-11-23) 2 commits
189 - (merged to 'next' on 2019-11-25 at b0d668176f)
190 - + gpg-interface: limit search for primary key fingerprint
191 - + gpg-interface: refactor the free-and-xmemdupz pattern
277 + "git fetch" codepath had a big "do not lazily fetch missing objects
278 + when I ask if something exists" switch. This has been corrected by
279 + marking the "does this thing exist?" calls with "if not please do not
280 + lazily fetch it" flag.
281
193 - The code to parse GPG output used to assume incorrectly that the
194 - finterprint for the primary key would always be present for a valid
195 - signature, which has been corrected.
282
197 - Will merge to 'master'.
283 +* kw/fsmonitor-watchman-fix (2019-11-06) 1 commit
284 + (merged to 'next' on 2019-11-19 at ee786a5c39)
285 + + fsmonitor: fix watchman integration
286
287 + The watchman integration for fsmonitor was racy, which has been
288 + corrected to be more conservative.
289
200 -* hv/assume-priumax-is-available-anywhere (2019-11-25) 1 commit
201 - - git-compat-util.h: drop the `PRIuMAX` and other fallback definitions
290
203 - We have had compatibility fallback macro definitions for "PRIuMAX",
204 - "PRIu32", etc. but did not for "PRIdMAX", while the code used the
205 - last one apparently without any hiccup reported recently. The
206 - fallback macro definitions for these <inttypes.h> macros that must
207 - appear in C99 systems have been removed.
291 +* ln/userdiff-elixir (2019-11-10) 1 commit
292 + (merged to 'next' on 2019-11-19 at 6318918ba8)
293 + + userdiff: add Elixir to supported userdiff languages
294
209 - Will merge to 'next'.
295 + The patterns to detect function boundary for Elixir language has
296 + been added.
297
298
212 -* js/git-svn-use-rebase-merges (2019-11-23) 1 commit
213 - (merged to 'next' on 2019-11-25 at 9585fe30f8)
214 - + git svn: stop using `rebase --preserve-merges`
299 +* ma/bisect-doc-sample-update (2019-10-29) 1 commit
300 + (merged to 'next' on 2019-11-19 at bde6adce1b)
301 + + Documentation/git-bisect.txt: add --no-ff to merge command
302
216 - Prepare further for "rebase --preserve-merges" deprecation.
303 + "git merge --no-commit" needs "--no-ff" if you do not want to move
304 + HEAD, which has been corrected in the manual page for "git bisect".
305
218 - Will merge to 'master'.
306
307 +* ma/t7004 (2019-11-14) 1 commit
308 + (merged to 'next' on 2019-11-19 at 789a0a0f05)
309 + + t7004: check existence of correct tag
310
221 -* js/mingw-inherit-only-std-handles (2019-11-23) 4 commits
222 - - mingw: restrict file handle inheritance only on Windows 7 and later
223 - - mingw: spawned processes need to inherit only standard handles
224 - - mingw: work around incorrect standard handles
225 - - mingw: demonstrate that all file handles are inherited by child processes
311 + Test fix.
312
227 - Work around a issue where a FD that is left open when spawning a
228 - child process and is kept open in the child can interfere with the
229 - operation in the parent process on Windows.
313
231 - Will merge to 'next'.
314 +* mr/clone-dir-exists-to-path-exists (2019-10-29) 1 commit
315 + (merged to 'next' on 2019-11-19 at 07b6ab25de)
316 + + clone: rename static function `dir_exists()`.
317
318 + Code cleanup.
319
234 -* mg/doc-submodule-status-cached (2019-11-24) 1 commit
235 - (merged to 'next' on 2019-11-25 at fa833392a3)
236 - + doc: document 'git submodule status --cached'
320
238 - "git submodule status" and "git submodule status --cached" show
239 - different things, but the documentation did not cover them
240 - correctly, which has been corrected.
321 +* nn/doc-rebase-merges (2019-11-12) 1 commit
322 + (merged to 'next' on 2019-11-19 at db74ff488c)
323 + + doc: improve readability of --rebase-merges in git-rebase
324
242 - Will merge to 'master'.
325 + Doc update.
326
327
245 -* mg/submodule-status-from-a-subdirectory (2019-11-25) 1 commit
246 - - submodule: fix 'submodule status' when called from a subdirectory
328 +* ns/test-desc-typofix (2019-11-07) 1 commit
329 + (merged to 'next' on 2019-11-19 at 804861f385)
330 + + t: fix typo in test descriptions
331
248 - "git submodule status" that is run from a subdirectory of the
249 - superproject did not work well, which has been corrected.
332 + Typofix.
333
251 - Will merge to 'next'.
334
335 +* pb/help-list-gitsubmodules-among-guides (2019-10-29) 1 commit
336 + (merged to 'next' on 2019-11-19 at 3c6f5c1901)
337 + + help: add gitsubmodules to the list of guides
338
254 -* mh/clear-topo-walk-upon-reset (2019-11-25) 2 commits
255 - - revision: free topo_walk_info before creating a new one in init_topo_walk
256 - - revision: clear the topo-walk flags in reset_revision_walk
339 + Help update.
340
258 - The revision walking machinery uses resources like per-object flag
259 - bits that need to be reset before a new iteration of walking
260 - begins, but the resources related to topological walk were not
261 - cleared correctly, which has been corrected.
341
263 - Will merge to 'next'.
342 +* pb/no-recursive-reset-hard-in-worktree-add (2019-10-30) 1 commit
343 + (merged to 'next' on 2019-11-19 at cdfb0643e9)
344 + + worktree: teach "add" to ignore submodule.recurse config
345
346 + "git worktree add" internally calls "reset --hard" that should not
347 + descend into submodules, even when submodule.recurse configuration
348 + is set, but it was affected. This has been corrected.
349
266 -* nl/reset-patch-takes-a-tree (2019-11-25) 1 commit
267 - (merged to 'next' on 2019-11-25 at 34dc348eaf)
268 - + reset: parse rev as tree-ish in patch mode
350
270 - "git reset --patch $object" without any pathspec should allow a
271 - tree object to be given, but incorrectly required a committish,
272 - which has been corrected.
351 +* py/shortlog-list-options-for-log (2019-11-10) 1 commit
352 + (merged to 'next' on 2019-11-19 at 92a10e39f7)
353 + + git-shortlog.txt: include commit limiting options
354
274 - Will merge to 'master'.
355 + Documentation pages for "git shortlog" now lists commit limiting
356 + options explicitly.
357
358
277 -* pw/sequencer-compare-with-right-parent-to-check-empty-commits (2019-11-23) 1 commit
278 - (merged to 'next' on 2019-11-25 at a4e4f06286)
279 - + sequencer: fix empty commit check when amending
359 +* rj/bundle-ui-updates (2019-11-11) 3 commits
360 + (merged to 'next' on 2019-11-19 at d88f626256)
361 + + bundle-verify: add --quiet
362 + + bundle-create: progress output control
363 + + bundle: framework for options before bundle file
364
281 - The sequencer machinery compared the HEAD and the state it is
282 - attempting to commit to decide if the result would be a no-op
283 - commit, even when amending a commit, which was incorrect, and
284 - has been corrected.
365 + "git bundle" has been taught to use the parse options API. "git
366 + bundle verify" learned "--quiet" and "git bundle create" learned
367 + options to control the progress output.
368
286 - Will merge to 'master'.
369
370 +* rs/parse-options-dup-null-fix (2019-11-13) 1 commit
371 + (merged to 'next' on 2019-11-19 at 73040e1605)
372 + + parse-options: avoid arithmetic on pointer that's potentially NULL
373
289 -* sg/assume-no-todo-update-in-cherry-pick (2019-11-24) 1 commit
290 - - sequencer: don't re-read todo for revert and cherry-pick
374 + Code cleanup.
375
292 - While running "revert" or "cherry-pick --edit" for multiple
293 - commits, a recent regression incorrectly detected "nothing to
294 - commit, working tree clean", instead of replaying the commits,
295 - which has been corrected.
376
297 - Will merge to 'next'.
377 +* rs/skip-iprefix (2019-11-10) 2 commits
378 + (merged to 'next' on 2019-11-19 at c87ae31b14)
379 + + convert: use skip_iprefix() in validate_encoding()
380 + + utf8: use skip_iprefix() in same_utf_encoding()
381
382 + Code simplification.
383
300 -* sg/test-bool-env (2019-11-23) 2 commits
301 - - t5608-clone-2gb.sh: turn GIT_TEST_CLONE_2GB into a bool
302 - - tests: add 'test_bool_env' to catch non-bool GIT_TEST_* values
384
304 - Recently we have declared that GIT_TEST_* variables take the
305 - usual boolean values (it used to be that some used "non-empty
306 - means true" and taking GIT_TEST_VAR=YesPlease as true); make
307 - sure we notice and fail when non-bool strings are given to
308 - these variables.
385 +* rs/trace2-dots (2019-11-06) 1 commit
386 + (merged to 'next' on 2019-11-19 at a045233ad0)
387 + + trace2: add dots directly to strbuf in perf_fmt_prepare()
388
310 - Will merge to 'next'.
389 + Code cleanup.
390
312 ---------------------------------------------------
313 -[Stalled]
391
315 -* js/advise-rebase-skip (2019-10-23) 3 commits
316 - - commit: give correct advice for empty commit during a rebase
317 - - sequencer: export the function to get the path of `.git/rebase-merge/`
318 - - cherry-pick: add test for `--skip` advice in `git commit`
392 +* rs/use-copy-array-in-mingw-shell-command-preparation (2019-11-13) 1 commit
393 + (merged to 'next' on 2019-11-19 at 52ee6a8887)
394 + + mingw: use COPY_ARRAY for copying array
395
320 - The logic used in "git commit" to give hints and errors depending
321 - on what operation was in progress learned to distinguish rebase and
322 - cherry-pick better.
396 + Code cleanup.
397
324 - Kicked back to 'pu'.
325 - cf. <nycvar.QRO.7.76.6.1911081508560.46@tvgsbejvaqbjf.bet>
398
399 +* rt/fetch-message-fix (2019-11-02) 1 commit
400 + (merged to 'next' on 2019-11-19 at 69eb337cd8)
401 + + fetch.c: fix typo in a warning message
402
328 -* vn/reset-deleted-ita (2019-07-26) 1 commit
329 - - reset: unstage empty deleted ita files
403 + A small message update.
404
331 - "git reset HEAD [<pathspec>]" did not reset an empty file that was
332 - added with the intent-to-add bit.
405
334 - Expecting a reroll.
406 +* sg/blame-indent-heuristics-is-now-the-default (2019-10-29) 1 commit
407 + (merged to 'next' on 2019-11-19 at 68e60f08cc)
408 + + builtin/blame.c: remove '--indent-heuristic' from usage string
409
410 + Message update.
411
337 -* jn/unknown-index-extensions (2018-11-21) 2 commits
338 - - index: offer advice for unknown index extensions
339 - - index: do not warn about unrecognized extensions
412
341 - A bit too alarming warning given when unknown index extensions
342 - exist is getting revamped.
413 +* sg/skip-skipped-prereq (2019-11-13) 1 commit
414 + (merged to 'next' on 2019-11-19 at 10d344fed7)
415 + + test-lib: don't check prereqs of test cases that won't be run anyway
416
344 - Expecting a reroll.
417 + Test update to avoid wasted cycles.
418
419
347 -* jc/format-patch-delay-message-id (2019-04-05) 1 commit
348 - - format-patch: move message-id and related headers to the end
420 +* tg/stash-refresh-index (2019-11-14) 1 commit
421 + (merged to 'next' on 2019-11-19 at 4d67af8d3f)
422 + + stash: make sure we have a valid index before writing it
423
350 - The location "git format-patch --thread" adds the Message-Id:
351 - header in the series of header fields has been moved down, which
352 - may help working around a suspected bug in GMail MSA, reported at
353 - <CAHk-=whP1stFZNAaJiMi5eZ9rj0MRt20Y_yHVczZPH+O01d+sA@mail.gmail.com>
424 + Recent update to "git stash pop" made the command empty the index
425 + when run with the "--quiet" option, which has been corrected.
426
355 - Waiting for feedback to see if it truly helps.
356 - Needs tests.
427 +--------------------------------------------------
428 +[New Topics]
429
430 +* ds/commit-graph-delay-gen-progress (2019-11-27) 2 commits
431 + - commit-graph: use start_delayed_progress()
432 + - progress: create GIT_PROGRESS_DELAY
433
359 -* js/protocol-advertise-multi (2018-12-28) 1 commit
360 - - protocol: advertise multiple supported versions
434 + One kind of progress messages were always given during commit-graph
435 + generation, instead of following the "if it takes more than two
436 + seconds, show progress" pattern, which has been corrected.
437
362 - The transport layer has been updated so that the protocol version
363 - used can be negotiated between the parties, by the initiator
364 - listing the protocol versions it is willing to talk, and the other
365 - side choosing from one of them.
438 + Will merge to 'next'.
439
367 - Expecting a reroll.
368 - cf. <CANq=j3u-zdb_FvNJGPCmygNMScseav63GhVvBX3NcVS4f7TejA@mail.gmail.com>
440
441 +* ds/sparse-cone (2019-11-22) 19 commits
442 + - sparse-checkout: check for dirty status
443 + - sparse-checkout: update working directory in-process for 'init'
444 + - sparse-checkout: cone mode should not interact with .gitignore
445 + - sparse-checkout: write using lockfile
446 + - sparse-checkout: use in-process update for disable subcommand
447 + - sparse-checkout: update working directory in-process
448 + - sparse-checkout: sanitize for nested folders
449 + - unpack-trees: add progress to clear_ce_flags()
450 + - unpack-trees: hash less in cone mode
451 + - sparse-checkout: init and set in cone mode
452 + - sparse-checkout: use hashmaps for cone patterns
453 + - sparse-checkout: add 'cone' mode
454 + - trace2: add region in clear_ce_flags
455 + - sparse-checkout: create 'disable' subcommand
456 + - sparse-checkout: add '--stdin' option to set subcommand
457 + - sparse-checkout: 'set' subcommand
458 + - clone: add --sparse mode
459 + - sparse-checkout: create 'init' subcommand
460 + - sparse-checkout: create builtin with 'list' subcommand
461
371 -* mk/use-size-t-in-zlib (2018-10-15) 1 commit
372 - - zlib.c: use size_t for size
462 + Management of sparsely checked-out working tree has gained a
463 + dedicated "sparse-checkout" command.
464
374 - The wrapper to call into zlib followed our long tradition to use
375 - "unsigned long" for sizes of regions in memory, which have been
376 - updated to use "size_t".
465 + How well is this topic done at this point?
466
378 ---------------------------------------------------
379 -[Cooking]
467
381 -* rs/skip-iprefix (2019-11-10) 2 commits
382 - (merged to 'next' on 2019-11-19 at c87ae31b14)
383 - + convert: use skip_iprefix() in validate_encoding()
384 - + utf8: use skip_iprefix() in same_utf_encoding()
468 +* dl/range-diff-with-notes (2019-11-21) 10 commits
469 + (merged to 'next' on 2019-11-25 at dd6dad97c1)
470 + + format-patch: pass notes configuration to range-diff
471 + + range-diff: pass through --notes to `git log`
472 + + range-diff: output `## Notes ##` header
473 + + t3206: range-diff compares logs with commit notes
474 + + t3206: s/expected/expect/
475 + + t3206: disable parameter substitution in heredoc
476 + + t3206: remove spaces after redirect operators
477 + + pretty-options.txt: --notes accepts a ref instead of treeish
478 + + rev-list-options.txt: remove reference to --show-notes
479 + + argv-array: add space after `while`
480
386 - Code simplification.
481 + "git range-diff" learned to take the "--notes=<ref>" and the
482 + "--no-notes" options to control the commit notes included in the
483 + log message that gets compared.
484
485 Will merge to 'master'.
486
487
391 -* dj/typofix-merge-strat (2019-11-11) 1 commit
392 - (merged to 'next' on 2019-11-19 at 5b6c0cf125)
393 - + merge-strategies: fix typo "reflected to" to "reflected in"
488 +* jc/azure-ci-osx-fix-fix (2019-11-20) 1 commit
489 + (merged to 'next' on 2019-11-25 at 7de6356e67)
490 + + ci(osx): update homebrew-cask repository with less noise
491
395 - Typofix.
492 + CI jobs for macOS has been made less chatty when updating perforce
493 + package used during testing.
494
495 Will merge to 'master'.
496
497
400 -* jh/userdiff-python-async (2019-11-20) 1 commit
401 - (merged to 'next' on 2019-11-25 at 74e4a4ed9f)
402 - + userdiff: support Python async functions
498 +* jk/fail-show-toplevel-outside-working-tree (2019-11-20) 1 commit
499 + (merged to 'next' on 2019-11-25 at cd97ae38bc)
500 + + rev-parse: make --show-toplevel without a worktree an error
501
404 - The userdiff machinery has been taught that "async def" is another
405 - way to begin a "function" in Python.
502 + "git rev-parse --show-toplevel" run outside of any working tree did
503 + not error out, which has been corrected.
504
505 Will merge to 'master'.
506
507
410 -* rj/bundle-ui-updates (2019-11-11) 3 commits
411 - (merged to 'next' on 2019-11-19 at d88f626256)
412 - + bundle-verify: add --quiet
413 - + bundle-create: progress output control
414 - + bundle: framework for options before bundle file
508 +* pb/submodule-update-fetches (2019-11-24) 1 commit
509 + (merged to 'next' on 2019-11-25 at 7736f98351)
510 + + doc: mention that 'git submodule update' fetches missing commits
511
416 - "git bundle" has been taught to use the parse options API. "git
417 - bundle verify" learned "--quiet" and "git bundle create" learned
418 - options to control the progress output.
512 + Doc update.
513
514 Will merge to 'master'.
515
516
423 -* ar/install-doc-update-cmds-needing-the-shell (2019-11-15) 1 commit
424 - (merged to 'next' on 2019-11-19 at 216468eb98)
425 - + INSTALL: use existing shell scripts as example
517 +* sg/unpack-progress-throughput (2019-11-20) 1 commit
518 + (merged to 'next' on 2019-11-25 at 0418db6a27)
519 + + builtin/unpack-objects.c: show throughput progress
520
427 - Doc update.
521 + "git unpack-objects" used to show progress based only on the number
522 + of received and unpacked objects, which stalled when it has to
523 + handle an unusually large object. It now shows the throughput as
524 + well.
525
526 Will merge to 'master'.
527
528
432 -* dl/complete-rebase-onto (2019-11-12) 1 commit
433 - (merged to 'next' on 2019-11-19 at ba53946a3b)
434 - + completion: learn to complete `git rebase --onto=`
529 +* dl/test-cleanup (2019-11-29) 26 commits
530 + - t7700: stop losing return codes of git commands
531 + - t7700: make references to SHA-1 generic
532 + - t7700: replace egrep with grep
533 + - t7700: consolidate code into test_has_duplicate_object()
534 + - t7700: consolidate code into test_no_missing_in_packs()
535 + - t7700: s/test -f/test_path_is_file/
536 + - t7700: move keywords onto their own line
537 + - t7700: remove spaces after redirect operators
538 + - t7700: drop redirections to /dev/null
539 + - t7501: stop losing return codes of git commands
540 + - t7501: remove spaces after redirect operators
541 + - t5703: stop losing return codes of git commands
542 + - t5703: simplify one-time-sed generation logic
543 + - t5317: use ! grep to check for no matching lines
544 + - t5317: stop losing return codes of git commands
545 + - t4138: stop losing return codes of git commands
546 + - t4015: use test_write_lines()
547 + - t4015: stop losing return codes of git commands
548 + - t3600: comment on inducing SIGPIPE in `git rm`
549 + - t3600: stop losing return codes of git commands
550 + - t3600: use test_line_count() where possible
551 + - t3301: stop losing return codes of git commands
552 + - t0090: stop losing return codes of git commands
553 + - t0014: remove git command upstream of pipe
554 + - apply-one-time-sed.sh: modernize style
555 + - lib-bash.sh: move `then` onto its own line
556
436 - The completion script (in contrib/) learned that the "--onto"
437 - option of "git rebase" can take its argument as the value of the
438 - option.
557 + Test cleanup.
558
440 - Will merge to 'master'.
559 + Will merge to 'next'.
560
561
443 -* dl/pretty-reference (2019-11-20) 11 commits
444 - - SubmittingPatches: use `--pretty=reference`
445 - - pretty: implement 'reference' format
446 - - pretty: add struct cmt_fmt_map::default_date_mode_type
447 - - pretty: provide short date format
448 - - t4205: cover `git log --reflog -z` blindspot
449 - - pretty.c: inline initalize format_context
450 - - revision: make get_revision_mark() return const pointer
451 - - completion: complete `tformat:` pretty format
452 - - SubmittingPatches: remove dq from commit reference
453 - - pretty-formats.txt: use generic terms for hash
454 - - SubmittingPatches: use generic terms for hash
562 +* tg/perf-remove-stale-result (2019-11-27) 1 commit
563 + - perf-lib: use a single filename for all measurement types
564
456 - "git log" family learned "--pretty=ref" that gives the name of a
457 - commit in the format that is often used to refer to it in log
458 - messages.
565 + PerfTest fix to avoid stale result mixed up with the latest round
566 + of test results.
567
460 - Willl merge to 'next'.
568 + Will merge to 'next'.
569
570
463 -* ds/test-read-graph (2019-11-13) 1 commit
464 - (merged to 'next' on 2019-11-19 at 80152fc082)
465 - + test-tool: use 'read-graph' helper
571 +* us/unpack-trees-fsmonitor (2019-11-21) 1 commit
572 + (merged to 'next' on 2019-11-27 at 4c06f74957)
573 + + unpack-trees: skip stat on fsmonitor-valid files
574
467 - Dev support for commit-graph feature.
575 + Users of oneway_merge() (like "reset --hard") learned to take
576 + advantage of fsmonitor to avoid unnecessary lstat(2) calls.
577
578 Will merge to 'master'.
579
580
472 -* hw/doc-in-header (2019-11-18) 20 commits
473 - - trace2: move doc to trace2.h
474 - - submodule-config: move doc to submodule-config.h
475 - - tree-walk: move doc to tree-walk.h
476 - - trace: move doc to trace.h
477 - - run-command: move doc to run-command.h
478 - - parse-options: add link to doc file in parse-options.h
479 - - credential: move doc to credential.h
480 - - argv-array: move doc to argv-array.h
481 - - cache: move doc to cache.h
482 - - sigchain: move doc to sigchain.h
483 - - pathspec: move doc to pathspec.h
484 - - revision: move doc to revision.h
485 - - attr: move doc to attr.h
486 - - refs: move doc to refs.h
487 - - remote: move doc to remote.h and refspec.h
488 - - sha1-array: move doc to sha1-array.h
489 - - merge: move doc to ll-merge.h
490 - - graph: move doc to graph.h and graph.c
491 - - dir: move doc to dir.h
492 - - diff: move doc to diff.h and diffcore.h
581 +* ds/fsmonitor-testing (2019-11-22) 11 commits
582 + - test-lib: clear watchman watches at test completion
583 + - t7519: disable external GIT_TEST_FSMONITOR variable
584 + - t7063: disable fsmonitor with status cache
585 + - tests: disable fsmonitor in submodule tests
586 + - t3600-rm.sh: disable fsmonitor when deleting populated submodule
587 + - t3030-merge-recursive.sh: disable fsmonitor when tweaking GIT_WORK_TREE
588 + - fsmonitor: disable fsmonitor with worktrees
589 + - t1510-repo-setup.sh: disable fsmonitor if no .git dir
590 + - t1301-shared-repo.sh: disable FSMONITOR
591 + - fsmonitor: do not output to stderr for tests
592 + - fsmonitor: disable in a bare repo
593
594 + Updates around testing fsmoitor integration.
595
495 -* jc/fsmonitor-sanity-fix (2019-11-13) 1 commit
496 - (merged to 'next' on 2019-11-19 at 1fceb9b55b)
497 - + fsmonitor: do not compare bitmap size with size of split index
498 - (this branch is used by us/unpack-trees-fsmonitor.)
596 + Will merge to 'next'.
597
500 - Remove an incorrect BUG() that should not trigger.
598 +
599 +* hi/gpg-optional-pkfp-fix (2019-11-23) 2 commits
600 + (merged to 'next' on 2019-11-25 at b0d668176f)
601 + + gpg-interface: limit search for primary key fingerprint
602 + + gpg-interface: refactor the free-and-xmemdupz pattern
603 + (this branch is used by hi/gpg-use-check-signature.)
604 +
605 + The code to parse GPG output used to assume incorrectly that the
606 + finterprint for the primary key would always be present for a valid
607 + signature, which has been corrected.
608
609 Will merge to 'master'.
610
611
505 -* jk/gitweb-anti-xss (2019-11-18) 4 commits
506 - (merged to 'next' on 2019-11-19 at 69ef04c013)
507 - + gitweb: escape URLs generated by href()
508 - + t/gitweb-lib.sh: set $REQUEST_URI
509 - + t/gitweb-lib.sh: drop confusing quotes
510 - + t9502: pass along all arguments in xss helper
612 +* hv/assume-priumax-is-available-anywhere (2019-11-25) 1 commit
613 + (merged to 'next' on 2019-11-27 at caac4f633d)
614 + + git-compat-util.h: drop the `PRIuMAX` and other fallback definitions
615
512 - Some codepaths in "gitweb" that forgot to escape URLs generated
513 - based on end-user input have been corrected.
616 + We have had compatibility fallback macro definitions for "PRIuMAX",
617 + "PRIu32", etc. but did not for "PRIdMAX", while the code used the
618 + last one apparently without any hiccup reported recently. The
619 + fallback macro definitions for these <inttypes.h> macros that must
620 + appear in C99 systems have been removed.
621
622 Will merge to 'master'.
623
624
518 -* jk/optim-in-pack-idx-conversion (2019-11-12) 1 commit
519 - (merged to 'next' on 2019-11-19 at a81ebc7b8d)
520 - + pack-objects: avoid pointless oe_map_new_pack() calls
625 +* js/git-svn-use-rebase-merges (2019-11-23) 1 commit
626 + (merged to 'next' on 2019-11-25 at 9585fe30f8)
627 + + git svn: stop using `rebase --preserve-merges`
628
522 - Code clean-up.
629 + Prepare further for "rebase --preserve-merges" deprecation.
630
631 Will merge to 'master'.
632
633
527 -* jk/remove-sha1-to-hex (2019-11-13) 2 commits
528 - (merged to 'next' on 2019-11-19 at fb68824870)
529 - + hex: drop sha1_to_hex()
530 - + hex: drop sha1_to_hex_r()
634 +* js/mingw-inherit-only-std-handles (2019-12-02) 6 commits
635 + - mingw: translate ERROR_SUCCESS to errno = 0
636 + (merged to 'next' on 2019-12-02 at 798a952eca)
637 + + mingw: do set `errno` correctly when trying to restrict handle inheritance
638 + (merged to 'next' on 2019-11-27 at 4736894af6)
639 + + mingw: restrict file handle inheritance only on Windows 7 and later
640 + + mingw: spawned processes need to inherit only standard handles
641 + + mingw: work around incorrect standard handles
642 + + mingw: demonstrate that all file handles are inherited by child processes
643
532 - Code clean-up.
644 + Work around a issue where a FD that is left open when spawning a
645 + child process and is kept open in the child can interfere with the
646 + operation in the parent process on Windows.
647
534 - Will merge to 'master'.
648 + Will wait for a bit before merging to 'next'.
649
650
537 -* jk/send-pack-remote-failure (2019-11-13) 1 commit
538 - (merged to 'next' on 2019-11-19 at d02c0107ee)
539 - + send-pack: check remote ref status on pack-objects failure
651 +* mg/doc-submodule-status-cached (2019-11-24) 1 commit
652 + (merged to 'next' on 2019-11-25 at fa833392a3)
653 + + doc: document 'git submodule status --cached'
654
541 - Error handling after "git push" finishes sending the packdata and
542 - waits for the response to the remote side has been improved.
655 + "git submodule status" and "git submodule status --cached" show
656 + different things, but the documentation did not cover them
657 + correctly, which has been corrected.
658
659 Will merge to 'master'.
660
661
547 -* js/builtin-add-i-cmds (2019-11-18) 8 commits
548 - - built-in add -i: offer the `quit` command
549 - - built-in add -i: re-implement the `diff` command
550 - - built-in add -i: implement the `patch` command
551 - - built-in add -i: re-implement `add-untracked` in C
552 - - built-in add -i: re-implement `revert` in C
553 - - built-in add -i: implement the `update` command
554 - - built-in add -i: prepare for multi-selection commands
555 - - built-in add -i: allow filtering the modified files list
556 - (this branch uses js/builtin-add-i.)
662 +* mg/submodule-status-from-a-subdirectory (2019-11-25) 1 commit
663 + (merged to 'next' on 2019-11-27 at 24cb2d79ff)
664 + + submodule: fix 'submodule status' when called from a subdirectory
665
558 - "git add -i" that is getting rewritten in C has been extended to
559 - cover subcommands other than the "patch".
666 + "git submodule status" that is run from a subdirectory of the
667 + superproject did not work well, which has been corrected.
668
669 + Will merge to 'master'.
670
562 -* js/complete-svn-recursive (2019-11-13) 1 commit
563 - (merged to 'next' on 2019-11-19 at fa2a97911c)
564 - + completion: tab-complete "git svn --recursive"
671
566 - The completion script (in contrib/) has been taught that "git svn"
567 - supports the "--recursive" option.
672 +* mh/clear-topo-walk-upon-reset (2019-11-25) 2 commits
673 + (merged to 'next' on 2019-11-27 at 15871c1c2a)
674 + + revision: free topo_walk_info before creating a new one in init_topo_walk
675 + + revision: clear the topo-walk flags in reset_revision_walk
676 +
677 + The revision walking machinery uses resources like per-object flag
678 + bits that need to be reset before a new iteration of walking
679 + begins, but the resources related to topological walk were not
680 + cleared correctly, which has been corrected.
681
682 Will merge to 'master'.
683
684
572 -* js/rebase-r-safer-label (2019-11-18) 2 commits
573 - (merged to 'next' on 2019-11-21 at 791d51b0d7)
574 - + rebase -r: let `label` generate safer labels
575 - + rebase-merges: move labels' whitespace mangling into `label_oid()`
576 - (this branch is used by dd/rebase-merge-reserves-onto-label.)
685 +* nl/reset-patch-takes-a-tree (2019-11-25) 1 commit
686 + (merged to 'next' on 2019-11-25 at 34dc348eaf)
687 + + reset: parse rev as tree-ish in patch mode
688
578 - A label used in the todo list that are generated by "git rebase
579 - --rebase-merges" is used as a part of a refname; the logic to come
580 - up with the label has been tightened to avoid names that cannot be
581 - used as such.
689 + "git reset --patch $object" without any pathspec should allow a
690 + tree object to be given, but incorrectly required a committish,
691 + which has been corrected.
692
693 Will merge to 'master'.
694
695
586 -* dd/rebase-merge-reserves-onto-label (2019-11-20) 1 commit
587 - (merged to 'next' on 2019-11-21 at a6e4e5af0a)
588 - + sequencer: handle rebase-merges for "onto" message
589 - (this branch uses js/rebase-r-safer-label.)
696 +* pw/sequencer-compare-with-right-parent-to-check-empty-commits (2019-11-23) 1 commit
697 + (merged to 'next' on 2019-11-25 at a4e4f06286)
698 + + sequencer: fix empty commit check when amending
699
591 - The logic to avoid duplicate label names generated by "git rebase
592 - --rebase-merges" forgot that the machinery itself uses "onto" as a
593 - label name, which must be avoided by auto-generated labels, which
700 + The sequencer machinery compared the HEAD and the state it is
701 + attempting to commit to decide if the result would be a no-op
702 + commit, even when amending a commit, which was incorrect, and
703 has been corrected.
704
705 Will merge to 'master'.
706
707
599 -* ma/config-bool-valex (2019-11-14) 8 commits
600 - - builtin/config: die if "value_regex" doesn't canonicalize as boolean
601 - - builtin/config: warn if "value_regex" doesn't canonicalize as boolean
602 - - builtin/config: canonicalize "value_regex" with `--type=bool-or-int`
603 - - builtin/config: canonicalize "value_regex" with `--type=bool`
604 - - builtin/config: collect "value_regexp" data in a struct
605 - - builtin/config: extract `handle_value_regex()` from `get_value()`
606 - - t1300: modernize part of script
607 - - config: make `git_parse_maybe_bool_text()` public
708 +* sg/assume-no-todo-update-in-cherry-pick (2019-11-24) 1 commit
709 + (merged to 'next' on 2019-11-27 at 6908186f85)
710 + + sequencer: don't re-read todo for revert and cherry-pick
711 +
712 + While running "revert" or "cherry-pick --edit" for multiple
713 + commits, a recent regression incorrectly detected "nothing to
714 + commit, working tree clean", instead of replaying the commits,
715 + which has been corrected.
716 +
717 + Will merge to 'master'.
718 +
719 +
720 +* sg/test-bool-env (2019-11-23) 2 commits
721 + (merged to 'next' on 2019-11-27 at e1874e422f)
722 + + t5608-clone-2gb.sh: turn GIT_TEST_CLONE_2GB into a bool
723 + + tests: add 'test_bool_env' to catch non-bool GIT_TEST_* values
724
725 + Recently we have declared that GIT_TEST_* variables take the
726 + usual boolean values (it used to be that some used "non-empty
727 + means true" and taking GIT_TEST_VAR=YesPlease as true); make
728 + sure we notice and fail when non-bool strings are given to
729 + these variables.
730
610 -* ma/t7004 (2019-11-14) 1 commit
611 - (merged to 'next' on 2019-11-19 at 789a0a0f05)
612 - + t7004: check existence of correct tag
731 + Will merge to 'master'.
732
614 - Test fix.
733
616 - Will merge to 'master'.
734 +* as/t7812-missing-redirects-fix (2019-12-01) 2 commits
735 + - t7812: expect failure for grep -i with invalid UTF-8 data
736 + - t7812: add missing redirects
737
738 + Test fix.
739
619 -* nn/doc-rebase-merges (2019-11-12) 1 commit
620 - (merged to 'next' on 2019-11-19 at db74ff488c)
621 - + doc: improve readability of --rebase-merges in git-rebase
740 + Will merge to 'next'.
741
623 - Doc update.
742
625 - Will merge to 'master'.
743 +* jk/perf-wo-git-dot-pm (2019-11-27) 1 commit
744 + - t/perf: don't depend on Git.pm
745
746 + Test cleanup.
747
628 -* rs/parse-options-dup-null-fix (2019-11-13) 1 commit
629 - (merged to 'next' on 2019-11-19 at 73040e1605)
630 - + parse-options: avoid arithmetic on pointer that's potentially NULL
748 + Will merge to 'next'.
749
632 - Code cleanup.
750
634 - Will merge to 'master'.
751 +* jt/clone-recursesub-ref-advise (2019-11-27) 2 commits
752 + - submodule--helper: advise on fatal alternate error
753 + - Documentation: explain submodule.alternateErrorStrategy
754
755 + The interaction between "git clone --recurse-submodules" and
756 + alternate object store was ill-designed. The documentation and
757 + code have been taught to make more clear recommendations when the
758 + users see failures.
759
637 -* rs/use-copy-array-in-mingw-shell-command-preparation (2019-11-13) 1 commit
638 - (merged to 'next' on 2019-11-19 at 52ee6a8887)
639 - + mingw: use COPY_ARRAY for copying array
760 + Will merge to 'next'.
761
641 - Code cleanup.
762
643 - Will merge to 'master'.
763 +* ra/t5150-depends-on-perl (2019-11-27) 1 commit
764 + . t5150: skip request-pull test if Perl is disabled
765
766 + Some Porcelain commands are written in Perl, and tests on them are
767 + expected not to work when the platform lacks a working perl.
768
646 -* sg/name-rev-wo-recursion (2019-11-13) 13 commits
647 - - name-rev: cleanup name_ref()
648 - - name-rev: eliminate recursion in name_rev()
649 - - name-rev: drop name_rev()'s 'generation' and 'distance' parameters
650 - - name-rev: restructure creating/updating 'struct rev_name' instances
651 - - name-rev: restructure parsing commits and applying date cutoff
652 - - name-rev: pull out deref handling from the recursion
653 - - name-rev: extract creating/updating a 'struct name_rev' into a helper
654 - - t6120: add a test to cover inner conditions in 'git name-rev's name_rev()
655 - - name-rev: use sizeof(*ptr) instead of sizeof(type) in allocation
656 - - name-rev: avoid unnecessary cast in name_ref()
657 - - name-rev: use strbuf_strip_suffix() in get_rev_name()
658 - - t6120-describe: modernize the 'check_describe' helper
659 - - t6120-describe: correct test repo history graph in comment
769 + Redo.
770
771
662 -* sg/skip-skipped-prereq (2019-11-13) 1 commit
663 - (merged to 'next' on 2019-11-19 at 10d344fed7)
664 - + test-lib: don't check prereqs of test cases that won't be run anyway
772 +* rs/simplify-prepare-cmd (2019-11-27) 1 commit
773 + - run-command: use prepare_git_cmd() in prepare_cmd()
774
666 - Test update to avoid wasted cycles.
775 + Code cleanup.
776
668 - Will merge to 'master'.
777 + Will merge to 'next'.
778
779
671 -* tg/stash-refresh-index (2019-11-14) 1 commit
672 - (merged to 'next' on 2019-11-19 at 4d67af8d3f)
673 - + stash: make sure we have a valid index before writing it
780 +* rs/test-cleanup (2019-11-30) 7 commits
781 + - t7811: don't create unused file
782 + - t9300: don't create unused file
783 + - test: use test_must_be_empty F instead of test_cmp empty F
784 + - test: use test_must_be_empty F instead of test -z $(cat F)
785 + - t1400: use test_must_be_empty
786 + - t1410: use test_line_count
787 + - t1512: use test_line_count
788
675 - Recent update to "git stash pop" made the command empty the index
676 - when run with the "--quiet" option, which has been corrected.
789 + Test cleanup.
790
678 - Will merge to 'master'.
791 + Will merge to 'next'.
792
793
681 -* am/pathspec-from-file (2019-11-20) 6 commits
682 - - commit: support the --pathspec-from-file option
683 - - doc: commit: synchronize <pathspec> description
684 - - reset: support the `--pathspec-from-file` option
685 - - doc: reset: synchronize <pathspec> description
686 - - pathspec: add new function to parse file
687 - - parse-options.h: add new options `--pathspec-from-file`, `--pathspec-file-nul`
794 +* rs/use-skip-prefix-more (2019-11-27) 5 commits
795 + - name-rev: use skip_prefix() instead of starts_with()
796 + - push: use skip_prefix() instead of starts_with()
797 + - shell: use skip_prefix() instead of starts_with()
798 + - fmt-merge-msg: use skip_prefix() instead of starts_with()
799 + - fetch: use skip_prefix() instead of starts_with()
800
689 - A few commands learned to take the pathspec from the
690 - standard input or a named file, instead of taking it as the command
691 - line arguments.
801 + Code cleanup.
802
803 Will merge to 'next'.
804
805
696 -* cb/curl-use-xmalloc (2019-11-07) 1 commit
697 - (merged to 'next' on 2019-11-19 at 1c587d0775)
698 - + remote-curl: unbreak http.extraHeader with custom allocators
806 +* sg/test-squelch-noise-in-commit-bulk (2019-11-27) 1 commit
807 + - test-lib-functions: suppress a 'git rev-parse' error in 'test_commit_bulk'
808
700 - HTTP transport had possible allocator/deallocator mismatch, which
701 - has been corrected.
809 + Code cleanup.
810
703 - Will merge to 'master'.
811 + Will merge to 'next'.
812
813
706 -* ec/fetch-mark-common-refs-trace2 (2019-11-20) 1 commit
707 - (merged to 'next' on 2019-11-25 at c2b8e1546c)
708 - + fetch: add trace2 instrumentation
814 +* ag/sequencer-continue-leakfix (2019-11-30) 1 commit
815 + - sequencer: fix a memory leak in sequencer_continue()
816
710 - Trace2 annotation.
817 + Leakfix.
818
712 - Will merge to 'master'.
819 + Will merge to 'next'.
820
821
715 -* en/misc-doc-fixes (2019-11-07) 3 commits
716 - (merged to 'next' on 2019-11-19 at 7222cf3720)
717 - + name-hash.c: remove duplicate word in comment
718 - + hashmap: fix documentation misuses of -> versus .
719 - + git-filter-branch.txt: correct argument name typo
822 +* bc/t9001-zsh-in-posix-emulation-mode (2019-11-30) 1 commit
823 + - t9001: avoid including non-trailing NUL bytes in variables
824
721 - Misc doc fixes.
825 + Test portability fix.
826
723 - Will merge to 'master'.
827 + Will merge to 'next'.
828
829
726 -* en/t6024-style (2019-11-07) 1 commit
727 - (merged to 'next' on 2019-11-19 at b41c2ed21b)
728 - + t6024: modernize style
830 +* cs/store-packfiles-in-hashmap (2019-12-01) 1 commit
831 + - packfile.c: speed up loading lots of packfiles
832
730 - Test updates.
833 + In a repository with many packfiles, the cost of the procedure that
834 + avoids registering the same packfile twice was unnecessarily high
835 + by using an inefficient search algorithm, which has been corrected.
836
732 - Will merge to 'master'.
837 + Will merge to 'next'.
838
839
735 -* ep/guard-kset-tar-headers (2019-11-07) 1 commit
736 - (merged to 'next' on 2019-11-21 at 6c9574b01d)
737 - + kset.h, tar.h: add missing header guard to prevent multiple inclusion
840 +* dd/time-reentrancy (2019-12-01) 3 commits
841 + - mingw: use {gm,local}time_s as backend for {gm,local}time_r
842 + - archive-zip.c: switch to reentrant localtime_r
843 + - date.c: switch to reentrant {gm,local}time_r
844
739 - Code clean-up.
845 + Avoid gmtime() and localtime() and prefer their reentrant
846 + counterparts.
847
741 - Will merge to 'master'.
848 + Will merge to 'next'.
849
850
744 -* js/fetch-multi-lockfix (2019-11-06) 2 commits
745 - (merged to 'next' on 2019-11-19 at b9683b7ec9)
746 - + fetch: avoid locking issues between fetch.jobs/fetch.writeCommitGraph
747 - + fetch: add the command-line option `--write-commit-graph`
851 +* em/test-skip-regex-illseq (2019-11-30) 1 commit
852 + - t4210: skip i18n tests that don't work on FreeBSD
853
749 - Fetching from multiple remotes into the same repository in parallel
750 - had a bad interaction with the recent change to (optionally) update
751 - the commit-graph after a fetch job finishes, as these parallel
752 - fetches compete with each other. Which has been corrected.
854 + Test portability fix.
855
754 - Will merge to 'master'.
856 + Will merge to 'next'.
857
858
757 -* jt/fetch-remove-lazy-fetch-plugging (2019-11-13) 3 commits
758 - (merged to 'next' on 2019-11-19 at 1b26c28dcd)
759 - + promisor-remote: remove fetch_if_missing=0
760 - + clone: remove fetch_if_missing=0
761 - + fetch: remove fetch_if_missing=0
859 +* hi/gpg-use-check-signature (2019-11-30) 1 commit
860 + - gpg-interface: prefer check_signature() for GPG verification
861 + (this branch uses hi/gpg-optional-pkfp-fix.)
862
763 - "git fetch" codepath had a big "do not lazily fetch missing objects
764 - when I ask if something exists" switch. This has been corrected by
765 - marking the "does this thing exist?" calls with "if not please do not
766 - lazily fetch it" flag.
863 + Hide lower-level verify_signed-buffer() API as a pure helper to
864 + implement the public check_signature() function, in order to
865 + encourage new callers to use the correct and more strict
866 + validation.
867
768 - Will merge to 'master'.
868 + Will merge to 'next'.
869
870
771 -* kw/fsmonitor-watchman-fix (2019-11-06) 1 commit
772 - (merged to 'next' on 2019-11-19 at ee786a5c39)
773 - + fsmonitor: fix watchman integration
871 +* hi/grep-do-not-return-void (2019-11-30) 1 commit
872 + - grep: don't return an expression from pcre2_free()
873
775 - The watchman integration for fsmonitor was racy, which has been
776 - corrected to be more conservative.
874 + Code cleanup.
875
778 - Will merge to 'master'.
876 + Will merge to 'next'.
877
878
781 -* ln/userdiff-elixir (2019-11-10) 1 commit
782 - (merged to 'next' on 2019-11-19 at 6318918ba8)
783 - + userdiff: add Elixir to supported userdiff languages
879 +* jk/lore-is-the-archive (2019-11-30) 2 commits
880 + - doc: replace public-inbox links with lore.kernel.org
881 + - doc: recommend lore.kernel.org over public-inbox.org
882
785 - The patterns to detect function boundary for Elixir language has
786 - been added.
883 + Doc update for the mailing list archiving and nntp service.
884
788 - Will merge to 'master'.
885 + Will merge to 'next'.
886
887
791 -* ns/test-desc-typofix (2019-11-07) 1 commit
792 - (merged to 'next' on 2019-11-19 at 804861f385)
793 - + t: fix typo in test descriptions
888 +* jk/send-pack-check-negative-with-quick (2019-11-30) 1 commit
889 + - send-pack: use OBJECT_INFO_QUICK to check negative objects
890
795 - Typofix.
891 + Performance tweak on "git push" into a repository with many refs
892 + that point at objects we have never heard of.
893
797 - Will merge to 'master'.
894 + Will merge to 'next'.
895
896
800 -* py/shortlog-list-options-for-log (2019-11-10) 1 commit
801 - (merged to 'next' on 2019-11-19 at 92a10e39f7)
802 - + git-shortlog.txt: include commit limiting options
897 +* sg/osx-force-gcc-9 (2019-11-29) 1 commit
898 + - ci: build Git with GCC 9 in the 'osx-gcc' build job
899
804 - Documentation pages for "git shortlog" now lists commit limiting
805 - options explicitly.
900 + TravisCI update.
901
807 - Will merge to 'master'.
902 + Will merge to 'next'.
903
904 +--------------------------------------------------
905 +[Stalled]
906
810 -* rs/trace2-dots (2019-11-06) 1 commit
811 - (merged to 'next' on 2019-11-19 at a045233ad0)
812 - + trace2: add dots directly to strbuf in perf_fmt_prepare()
907 +* po/bundle-doc-clonable (2019-10-21) 1 commit
908 + - Doc: Bundle file usage
909
814 - Code cleanup.
910 + Doc update.
911
816 - Will merge to 'master'.
912 + Expecting a reroll.
913
914
819 -* dd/sequencer-utf8 (2019-11-11) 8 commits
820 - (merged to 'next' on 2019-11-19 at 9432ddc32c)
821 - + sequencer: reencode commit message for am/rebase --show-current-patch
822 - + sequencer: reencode old merge-commit message
823 - + sequencer: reencode squashing commit's message
824 - + sequencer: reencode revert/cherry-pick's todo list
825 - + sequencer: reencode to utf-8 before arrange rebase's todo list
826 - + t3900: demonstrate git-rebase problem with multi encoding
827 - + configure.ac: define ICONV_OMITS_BOM if necessary
828 - + t0028: eliminate non-standard usage of printf
915 +* js/advise-rebase-skip (2019-10-23) 3 commits
916 + - commit: give correct advice for empty commit during a rebase
917 + - sequencer: export the function to get the path of `.git/rebase-merge/`
918 + - cherry-pick: add test for `--skip` advice in `git commit`
919
830 - Handling of commit objects that use non UTF-8 encoding during
831 - "rebase -i" has been improved.
920 + The logic used in "git commit" to give hints and errors depending
921 + on what operation was in progress learned to distinguish rebase and
922 + cherry-pick better.
923
833 - Will merge to 'master'.
924 + Kicked back to 'pu'.
925 + cf. <nycvar.QRO.7.76.6.1911081508560.46@tvgsbejvaqbjf.bet>
926
927
836 -* dl/t5520-cleanup (2019-11-21) 15 commits
837 - - t5520: replace `! git` with `test_must_fail git`
838 - - t5520: remove redundant lines in test cases
839 - - t5520: replace $(cat ...) comparison with test_cmp
840 - - t5520: don't put git in upstream of pipe
841 - - t5520: test single-line files by git with test_cmp
842 - - t5520: use test_cmp_rev where possible
843 - - t5520: replace test -{n,z} with test-lib functions
844 - - t5520: use test_line_count where possible
845 - - t5520: remove spaces after redirect operator
846 - - t5520: replace test -f with test-lib functions
847 - - t5520: let sed open its own input
848 - - t5520: use sq for test case names
849 - - t5520: improve test style
850 - - t: teach test_cmp_rev to accept ! for not-equals
851 - - t0000: test multiple local assignment
928 +* vn/reset-deleted-ita (2019-07-26) 1 commit
929 + - reset: unstage empty deleted ita files
930
853 - Test cleanup.
931 + "git reset HEAD [<pathspec>]" did not reset an empty file that was
932 + added with the intent-to-add bit.
933
855 - Will merge to 'next'.
934 + Expecting a reroll.
935
936
858 -* js/builtin-add-i (2019-11-18) 9 commits
859 - (merged to 'next' on 2019-11-21 at caefa55b89)
860 - + built-in add -i: implement the `help` command
861 - + built-in add -i: use color in the main loop
862 - + built-in add -i: support `?` (prompt help)
863 - + built-in add -i: show unique prefixes of the commands
864 - + built-in add -i: implement the main loop
865 - + built-in add -i: color the header in the `status` command
866 - + built-in add -i: implement the `status` command
867 - + diff: export diffstat interface
868 - + Start to implement a built-in version of `git add --interactive`
869 - (this branch is used by js/builtin-add-i-cmds.)
937 +* jn/unknown-index-extensions (2018-11-21) 2 commits
938 + - index: offer advice for unknown index extensions
939 + - index: do not warn about unrecognized extensions
940
871 - The beginning of rewriting "git add -i" in C.
941 + A bit too alarming warning given when unknown index extensions
942 + exist is getting revamped.
943
873 - Will merge to 'master'.
944 + Expecting a reroll.
945
946
876 -* es/myfirstcontrib-updates (2019-11-02) 3 commits
877 - (merged to 'next' on 2019-11-19 at 41d70e1db4)
878 - + myfirstcontrib: hint to find gitgitgadget allower
879 - + myfirstcontrib: add dependency installation step
880 - + myfirstcontrib: add 'psuh' to command-list.txt
947 +* jc/format-patch-delay-message-id (2019-04-05) 1 commit
948 + - format-patch: move message-id and related headers to the end
949
882 - Doc updates.
950 + The location "git format-patch --thread" adds the Message-Id:
951 + header in the series of header fields has been moved down, which
952 + may help working around a suspected bug in GMail MSA, reported at
953 + <CAHk-=whP1stFZNAaJiMi5eZ9rj0MRt20Y_yHVczZPH+O01d+sA@mail.gmail.com>
954
884 - Will merge to 'master'.
955 + Waiting for feedback to see if it truly helps.
956 + Needs tests.
957
958
887 -* rt/fetch-message-fix (2019-11-02) 1 commit
888 - (merged to 'next' on 2019-11-19 at 69eb337cd8)
889 - + fetch.c: fix typo in a warning message
959 +* js/protocol-advertise-multi (2018-12-28) 1 commit
960 + - protocol: advertise multiple supported versions
961
891 - A small message update.
962 + The transport layer has been updated so that the protocol version
963 + used can be negotiated between the parties, by the initiator
964 + listing the protocol versions it is willing to talk, and the other
965 + side choosing from one of them.
966
893 - Will merge to 'master'.
967 + Expecting a reroll.
968 + cf. <CANq=j3u-zdb_FvNJGPCmygNMScseav63GhVvBX3NcVS4f7TejA@mail.gmail.com>
969 +
970 +
971 +* mk/use-size-t-in-zlib (2018-10-15) 1 commit
972 + - zlib.c: use size_t for size
973
974 + The wrapper to call into zlib followed our long tradition to use
975 + "unsigned long" for sizes of regions in memory, which have been
976 + updated to use "size_t".
977
896 -* ra/rebase-i-more-options (2019-11-25) 7 commits
897 - - rebase -i: finishing touches to --reset-author-date
898 - - rebase: add --reset-author-date
899 - - rebase -i: support --ignore-date
900 - - sequencer: rename amend_author to author_to_rename
901 - - rebase -i: support --committer-date-is-author-date
902 - - sequencer: allow callers of read_author_script() to ignore fields
903 - - rebase -i: add --ignore-whitespace flag
978 +--------------------------------------------------
979 +[Cooking]
980
905 - "git rebase -i" learned a few options that are known by "git
906 - rebase" proper.
981 +* jh/userdiff-python-async (2019-11-20) 1 commit
982 + (merged to 'next' on 2019-11-25 at 74e4a4ed9f)
983 + + userdiff: support Python async functions
984
908 - Will merge to 'next'.
985 + The userdiff machinery has been taught that "async def" is another
986 + way to begin a "function" in Python.
987
988 + Will merge to 'master'.
989
911 -* en/doc-typofix (2019-11-10) 10 commits
912 - (merged to 'next' on 2019-11-19 at e7bfe50de5)
913 - + Fix spelling errors in no-longer-updated-from-upstream modules
914 - + multimail: fix a few simple spelling errors
915 - + sha1dc: fix trivial comment spelling error
916 - + Fix spelling errors in test commands
917 - + Fix spelling errors in messages shown to users
918 - + Fix spelling errors in names of tests
919 - + Fix spelling errors in comments of testcases
920 - + Fix spelling errors in code comments
921 - + Fix spelling errors in documentation outside of Documentation/
922 - + Documentation: fix a bunch of typos, both old and new
990
924 - Docfix.
991 +* dl/pretty-reference (2019-11-20) 11 commits
992 + - SubmittingPatches: use `--pretty=reference`
993 + - pretty: implement 'reference' format
994 + - pretty: add struct cmt_fmt_map::default_date_mode_type
995 + - pretty: provide short date format
996 + - t4205: cover `git log --reflog -z` blindspot
997 + - pretty.c: inline initalize format_context
998 + - revision: make get_revision_mark() return const pointer
999 + - completion: complete `tformat:` pretty format
1000 + - SubmittingPatches: remove dq from commit reference
1001 + - pretty-formats.txt: use generic terms for hash
1002 + - SubmittingPatches: use generic terms for hash
1003
926 - Will merge to 'master'.
1004 + "git log" family learned "--pretty=ref" that gives the name of a
1005 + commit in the format that is often used to refer to it in log
1006 + messages.
1007
1008 + Will merge to 'next'.
1009
929 -* dl/doc-diff-no-index-implies-exit-code (2019-11-02) 1 commit
930 - (merged to 'next' on 2019-11-19 at e2b2181e28)
931 - + git-diff.txt: document return code of `--no-index`
1010
933 - Doc update.
1011 +* hw/doc-in-header (2019-11-18) 20 commits
1012 + - trace2: move doc to trace2.h
1013 + - submodule-config: move doc to submodule-config.h
1014 + - tree-walk: move doc to tree-walk.h
1015 + - trace: move doc to trace.h
1016 + - run-command: move doc to run-command.h
1017 + - parse-options: add link to doc file in parse-options.h
1018 + - credential: move doc to credential.h
1019 + - argv-array: move doc to argv-array.h
1020 + - cache: move doc to cache.h
1021 + - sigchain: move doc to sigchain.h
1022 + - pathspec: move doc to pathspec.h
1023 + - revision: move doc to revision.h
1024 + - attr: move doc to attr.h
1025 + - refs: move doc to refs.h
1026 + - remote: move doc to remote.h and refspec.h
1027 + - sha1-array: move doc to sha1-array.h
1028 + - merge: move doc to ll-merge.h
1029 + - graph: move doc to graph.h and graph.c
1030 + - dir: move doc to dir.h
1031 + - diff: move doc to diff.h and diffcore.h
1032
935 - Will merge to 'master'.
1033
1034 +* js/builtin-add-i-cmds (2019-12-01) 9 commits
1035 + - built-in add -i: offer the `quit` command
1036 + - built-in add -i: re-implement the `diff` command
1037 + - built-in add -i: implement the `patch` command
1038 + - built-in add -i: re-implement `add-untracked` in C
1039 + - built-in add -i: re-implement `revert` in C
1040 + - built-in add -i: implement the `update` command
1041 + - built-in add -i: prepare for multi-selection commands
1042 + - built-in add -i: allow filtering the modified files list
1043 + - add-interactive: make sure to release `rev.prune_data`
1044 + (this branch uses js/builtin-add-i.)
1045
938 -* dl/submodule-set-url (2019-10-30) 1 commit
939 - - submodule: teach set-url subcommand
1046 + "git add -i" that is getting rewritten in C has been extended to
1047 + cover subcommands other than the "patch".
1048
941 - "git submodule" learned a subcommand "set-url".
1049 + Will merge to 'next'.
1050
1051
944 -* js/vreportf-wo-buffering (2019-11-02) 1 commit
945 - (merged to 'next' on 2019-11-19 at cae61b9899)
946 - + vreportf(): avoid relying on stdio buffering
1052 +* js/rebase-r-safer-label (2019-11-18) 2 commits
1053 + (merged to 'next' on 2019-11-21 at 791d51b0d7)
1054 + + rebase -r: let `label` generate safer labels
1055 + + rebase-merges: move labels' whitespace mangling into `label_oid()`
1056 + (this branch is used by dd/rebase-merge-reserves-onto-label.)
1057
948 - Messages from die() etc. can be mixed up from multiple processes
949 - without even line buffering on Windows, which has been worked
950 - around.
1058 + A label used in the todo list that are generated by "git rebase
1059 + --rebase-merges" is used as a part of a refname; the logic to come
1060 + up with the label has been tightened to avoid names that cannot be
1061 + used as such.
1062
1063 Will merge to 'master'.
1064
1065
955 -* ma/bisect-doc-sample-update (2019-10-29) 1 commit
956 - (merged to 'next' on 2019-11-19 at bde6adce1b)
957 - + Documentation/git-bisect.txt: add --no-ff to merge command
1066 +* dd/rebase-merge-reserves-onto-label (2019-11-20) 1 commit
1067 + (merged to 'next' on 2019-11-21 at a6e4e5af0a)
1068 + + sequencer: handle rebase-merges for "onto" message
1069 + (this branch uses js/rebase-r-safer-label.)
1070
959 - "git merge --no-commit" needs "--no-ff" if you do not want to move
960 - HEAD, which has been corrected in the manual page for "git bisect".
1071 + The logic to avoid duplicate label names generated by "git rebase
1072 + --rebase-merges" forgot that the machinery itself uses "onto" as a
1073 + label name, which must be avoided by auto-generated labels, which
1074 + has been corrected.
1075
1076 Will merge to 'master'.
1077
1078
965 -* mr/clone-dir-exists-to-path-exists (2019-10-29) 1 commit
966 - (merged to 'next' on 2019-11-19 at 07b6ab25de)
967 - + clone: rename static function `dir_exists()`.
1079 +* ma/config-bool-valex (2019-11-14) 8 commits
1080 + - builtin/config: die if "value_regex" doesn't canonicalize as boolean
1081 + - builtin/config: warn if "value_regex" doesn't canonicalize as boolean
1082 + - builtin/config: canonicalize "value_regex" with `--type=bool-or-int`
1083 + - builtin/config: canonicalize "value_regex" with `--type=bool`
1084 + - builtin/config: collect "value_regexp" data in a struct
1085 + - builtin/config: extract `handle_value_regex()` from `get_value()`
1086 + - t1300: modernize part of script
1087 + - config: make `git_parse_maybe_bool_text()` public
1088
969 - Code cleanup.
1089 + "git config" can be told to affect the existing entries that
1090 + "match" the given value via its value_regex argument. It learned
1091 + to normalize the value set in the configuration and the value given
1092 + from the command line before computing they "match", e.g. "true" in
1093 + the configuration file can now match with "yes" given from the
1094 + command line.
1095
971 - Will merge to 'master'.
1096 + Needs a bit more work?
1097 + cf. <CAN0heSrtwi9V607vBX9PMSfNLQ8iGcno6_iGuR4Fs8ndGxqh8A@mail.gmail.com>
1098
1099
974 -* pb/help-list-gitsubmodules-among-guides (2019-10-29) 1 commit
975 - (merged to 'next' on 2019-11-19 at 3c6f5c1901)
976 - + help: add gitsubmodules to the list of guides
1100 +* sg/name-rev-wo-recursion (2019-11-13) 13 commits
1101 + - name-rev: cleanup name_ref()
1102 + - name-rev: eliminate recursion in name_rev()
1103 + - name-rev: drop name_rev()'s 'generation' and 'distance' parameters
1104 + - name-rev: restructure creating/updating 'struct rev_name' instances
1105 + - name-rev: restructure parsing commits and applying date cutoff
1106 + - name-rev: pull out deref handling from the recursion
1107 + - name-rev: extract creating/updating a 'struct name_rev' into a helper
1108 + - t6120: add a test to cover inner conditions in 'git name-rev's name_rev()
1109 + - name-rev: use sizeof(*ptr) instead of sizeof(type) in allocation
1110 + - name-rev: avoid unnecessary cast in name_ref()
1111 + - name-rev: use strbuf_strip_suffix() in get_rev_name()
1112 + - t6120-describe: modernize the 'check_describe' helper
1113 + - t6120-describe: correct test repo history graph in comment
1114
978 - Help update.
1115 + Redo "git name-rev" to avoid recursive calls.
1116
980 - Will merge to 'master'.
1117 + Looks more-or-less ready for 'next'?
1118 + cf. <20191127181322.171734-1-jonathantanmy@google.com>
1119 + cf. <20191127180210.168901-1-jonathantanmy@google.com>
1120 + cf. <20191112103821.30265-1-szeder.dev@gmail.com>
1121
1122
983 -* pb/no-recursive-reset-hard-in-worktree-add (2019-10-30) 1 commit
984 - (merged to 'next' on 2019-11-19 at cdfb0643e9)
985 - + worktree: teach "add" to ignore submodule.recurse config
1123 +* am/pathspec-from-file (2019-11-20) 6 commits
1124 + (merged to 'next' on 2019-11-27 at ee131b80fb)
1125 + + commit: support the --pathspec-from-file option
1126 + + doc: commit: synchronize <pathspec> description
1127 + + reset: support the `--pathspec-from-file` option
1128 + + doc: reset: synchronize <pathspec> description
1129 + + pathspec: add new function to parse file
1130 + + parse-options.h: add new options `--pathspec-from-file`, `--pathspec-file-nul`
1131
987 - "git worktree add" internally calls "reset --hard" that should not
988 - descend into submodules, even when submodule.recurse configuration
989 - is set, but it was affected. This has been corrected.
1132 + A few commands learned to take the pathspec from the
1133 + standard input or a named file, instead of taking it as the command
1134 + line arguments.
1135
1136 Will merge to 'master'.
1137
1138
994 -* sg/blame-indent-heuristics-is-now-the-default (2019-10-29) 1 commit
995 - (merged to 'next' on 2019-11-19 at 68e60f08cc)
996 - + builtin/blame.c: remove '--indent-heuristic' from usage string
1139 +* ec/fetch-mark-common-refs-trace2 (2019-11-20) 1 commit
1140 + (merged to 'next' on 2019-11-25 at c2b8e1546c)
1141 + + fetch: add trace2 instrumentation
1142
998 - Message update.
1143 + Trace2 annotation.
1144
1145 Will merge to 'master'.
1146
1147
1003 -* jk/cleanup-object-parsing-and-fsck (2019-10-28) 23 commits
1004 - (merged to 'next' on 2019-11-10 at 50b2267a2a)
1005 - + fsck: accept an oid instead of a "struct tree" for fsck_tree()
1006 - + fsck: accept an oid instead of a "struct commit" for fsck_commit()
1007 - + fsck: accept an oid instead of a "struct tag" for fsck_tag()
1008 - + fsck: rename vague "oid" local variables
1009 - + fsck: don't require an object struct in verify_headers()
1010 - + fsck: don't require an object struct for fsck_ident()
1011 - + fsck: drop blob struct from fsck_finish()
1012 - + fsck: accept an oid instead of a "struct blob" for fsck_blob()
1013 - + fsck: don't require an object struct for report()
1014 - + fsck: only require an oid for skiplist functions
1015 - + fsck: only provide oid/type in fsck_error callback
1016 - + fsck: don't require object structs for display functions
1017 - + fsck: use oids rather than objects for object_name API
1018 - + fsck_describe_object(): build on our get_object_name() primitive
1019 - + fsck: unify object-name code
1020 - + fsck: require an actual buffer for non-blobs
1021 - + fsck: stop checking tag->tagged
1022 - + fsck: stop checking commit->parent counts
1023 - + fsck: stop checking commit->tree value
1024 - + commit, tag: don't set parsed bit for parse failures
1025 - + parse_tag_buffer(): treat NULL tag pointer as parse error
1026 - + parse_commit_buffer(): treat lookup_tree() failure as parse error
1027 - + parse_commit_buffer(): treat lookup_commit() failure as parse error
1028 -
1029 - Originally merged to 'next' on 2019-10-30
1148 +* ep/guard-kset-tar-headers (2019-11-07) 1 commit
1149 + (merged to 'next' on 2019-11-21 at 6c9574b01d)
1150 + + kset.h, tar.h: add missing header guard to prevent multiple inclusion
1151
1031 - Crufty code and logic accumulated over time around the object
1032 - parsing and low-level object access used in "git fsck" have been
1033 - cleaned up.
1152 + Code clean-up.
1153
1154 Will merge to 'master'.
1155
1156
1038 -* po/bundle-doc-clonable (2019-10-21) 1 commit
1039 - - Doc: Bundle file usage
1157 +* dl/t5520-cleanup (2019-11-21) 15 commits
1158 + (merged to 'next' on 2019-11-27 at 523d920acf)
1159 + + t5520: replace `! git` with `test_must_fail git`
1160 + + t5520: remove redundant lines in test cases
1161 + + t5520: replace $(cat ...) comparison with test_cmp
1162 + + t5520: don't put git in upstream of pipe
1163 + + t5520: test single-line files by git with test_cmp
1164 + + t5520: use test_cmp_rev where possible
1165 + + t5520: replace test -{n,z} with test-lib functions
1166 + + t5520: use test_line_count where possible
1167 + + t5520: remove spaces after redirect operator
1168 + + t5520: replace test -f with test-lib functions
1169 + + t5520: let sed open its own input
1170 + + t5520: use sq for test case names
1171 + + t5520: improve test style
1172 + + t: teach test_cmp_rev to accept ! for not-equals
1173 + + t0000: test multiple local assignment
1174
1041 - Doc update.
1175 + Test cleanup.
1176
1043 - Expecting a reroll.
1177 + Will merge to 'master'.
1178
1179
1046 -* hw/config-doc-in-header (2019-10-24) 1 commit
1047 - (merged to 'next' on 2019-11-19 at 7f314c649e)
1048 - + config: move documentation to config.h
1180 +* js/builtin-add-i (2019-11-18) 9 commits
1181 + (merged to 'next' on 2019-11-21 at caefa55b89)
1182 + + built-in add -i: implement the `help` command
1183 + + built-in add -i: use color in the main loop
1184 + + built-in add -i: support `?` (prompt help)
1185 + + built-in add -i: show unique prefixes of the commands
1186 + + built-in add -i: implement the main loop
1187 + + built-in add -i: color the header in the `status` command
1188 + + built-in add -i: implement the `status` command
1189 + + diff: export diffstat interface
1190 + + Start to implement a built-in version of `git add --interactive`
1191 + (this branch is used by js/builtin-add-i-cmds.)
1192
1050 - Follow recent push to move API docs from Documentation/ to header
1051 - files and update config.h
1193 + The beginning of rewriting "git add -i" in C.
1194
1195 Will merge to 'master'.
1196
1197
1056 -* jc/log-graph-simplify (2019-11-13) 14 commits
1057 - (merged to 'next' on 2019-11-19 at de6360c648)
1058 - + t4215: use helper function to check output
1059 - (merged to 'next' on 2019-11-10 at 79d2b8ff98)
1060 - + graph: fix coloring of octopus dashes
1061 - + graph: flatten edges that fuse with their right neighbor
1062 - + graph: smooth appearance of collapsing edges on commit lines
1063 - + graph: rename `new_mapping` to `old_mapping`
1064 - + graph: commit and post-merge lines for left-skewed merges
1065 - + graph: tidy up display of left-skewed merges
1066 - + graph: example of graph output that can be simplified
1067 - + graph: extract logic for moving to GRAPH_PRE_COMMIT state
1068 - + graph: remove `mapping_idx` and `graph_update_width()`
1069 - + graph: reduce duplication in `graph_insert_into_new_columns()`
1070 - + graph: reuse `find_new_column_by_commit()`
1071 - + graph: handle line padding in `graph_next_line()`
1072 - + graph: automatically track display width of graph lines
1198 +* ra/rebase-i-more-options (2019-11-25) 7 commits
1199 + (merged to 'next' on 2019-11-27 at e8a6d1e281)
1200 + + rebase -i: finishing touches to --reset-author-date
1201 + + rebase: add --reset-author-date
1202 + + rebase -i: support --ignore-date
1203 + + sequencer: rename amend_author to author_to_rename
1204 + + rebase -i: support --committer-date-is-author-date
1205 + + sequencer: allow callers of read_author_script() to ignore fields
1206 + + rebase -i: add --ignore-whitespace flag
1207
1074 - The implementation of "git log --graph" got refactored and then its
1075 - output got simplified.
1208 + "git rebase -i" learned a few options that are known by "git
1209 + rebase" proper.
1210
1211 Will merge to 'master'.
1212
1213
1080 -* js/git-path-head-dot-lock-fix (2019-10-29) 2 commits
1081 - (merged to 'next' on 2019-11-19 at b406944979)
1082 - + git_path(): handle `.lock` files correctly
1083 - + t1400: wrap setup code in test case
1214 +* dl/submodule-set-url (2019-10-30) 1 commit
1215 + - submodule: teach set-url subcommand
1216
1085 - "git rev-parse --git-path HEAD.lock" did not give the right path
1086 - when run in a secondary worktree.
1217 + "git submodule" learned a subcommand "set-url".
1218
1088 - Will merge to 'master'.
1219 + Will merge to 'next'.
1220
1221
1222 * ag/sequencer-todo-updates (2019-11-25) 5 commits
1092 - - sequencer: directly call pick_commits() from complete_action()
1093 - - rebase: fill `squash_onto' in get_replay_opts()
1094 - - sequencer: move the code writing total_nr on the disk to a new function
1095 - - sequencer: update `done_nr' when skipping commands in a todo list
1096 - - sequencer: update `total_nr' when adding an item to a todo list
1223 + (merged to 'next' on 2019-11-27 at 3258d51dfc)
1224 + + sequencer: directly call pick_commits() from complete_action()
1225 + + rebase: fill `squash_onto' in get_replay_opts()
1226 + + sequencer: move the code writing total_nr on the disk to a new function
1227 + + sequencer: update `done_nr' when skipping commands in a todo list
1228 + + sequencer: update `total_nr' when adding an item to a todo list
1229
1230 Reduce unnecessary reading of state variables back from the disk
1099 - during sequener operation.
1231 + during sequencer operation.
1232
1101 - Will merge to 'next'.
1233 + Will merge to 'master'.
1234
1235
1236 * mt/threaded-grep-in-object-store (2019-10-02) 11 commits