What's cooking (2019/04 #05)

Junio C Hamano committed Apr 25, 2019 at 19:08 UTC 23ba6effff2106be187c0f4893dc3c275675b564
1 file changed +756 -909
whats-cooking.txt
+756 -909
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Apr 2019, #04; Mon, 22)
4 -X-master-at: 14c0f8d3ab6c36672189cd2dd217f4617d12ccba
5 -X-next-at: 7a2cf3c8d2cfe6df8d13e6d8a2e2431b74241674
3 +Subject: What's cooking in git.git (Apr 2019, #05; Thu, 25)
4 +X-master-at: 83232e38648b51abbcbdb56c94632b6906cc85a6
5 +X-next-at: f2820cf01acf778d953a46357a6160ba42711eb1
6
7 -What's cooking in git.git (Apr 2019, #04; Mon, 22)
7 +What's cooking in git.git (Apr 2019, #05; Thu, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,291 +20,566 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* cb/doco-mono (2019-03-13) 2 commits
24 - (merged to 'next' on 2019-04-16 at 91f5d71452)
25 - + doc: format pathnames and URLs as monospace.
26 - + doc/CodingGuidelines: URLs and paths as monospace
23 +* ab/commit-graph-fixes (2019-04-01) 8 commits
24 + (merged to 'next' on 2019-04-16 at 97f4ba02f0)
25 + + commit-graph: improve & i18n error messages
26 + + commit-graph write: don't die if the existing graph is corrupt
27 + + commit-graph verify: detect inability to read the graph
28 + + commit-graph: don't pass filename to load_commit_graph_one_fd_st()
29 + + commit-graph: don't early exit(1) on e.g. "git status"
30 + + commit-graph: fix segfault on e.g. "git status"
31 + + commit-graph tests: test a graph that's too small
32 + + commit-graph tests: split up corrupt_graph_and_verify()
33 + (this branch is used by ds/commit-graph-format-v2.)
34
28 - Clean-up markup in the documentation suite.
35 + Code cleanup with more careful error checking before using data
36 + read from the commit-graph file.
37
38
31 -* da/smerge (2019-04-04) 2 commits
32 - (merged to 'next' on 2019-04-16 at 80bf79fee1)
33 - + contrib/completion: add smerge to the mergetool completion candidates
34 - + mergetools: add support for smerge (Sublime Merge)
39 +* ab/gc-docs (2019-04-08) 11 commits
40 + (merged to 'next' on 2019-04-22 at 02785d40f5)
41 + + gc docs: remove incorrect reference to gc.auto=0
42 + + gc docs: clarify that "gc" doesn't throw away referenced objects
43 + + gc docs: note "gc --aggressive" in "fast-import"
44 + + gc docs: downplay the usefulness of --aggressive
45 + + gc docs: note how --aggressive impacts --window & --depth
46 + + gc docs: fix formatting for "gc.writeCommitGraph"
47 + + gc docs: re-flow the "gc.*" section in "config"
48 + + gc docs: include the "gc.*" section from "config" in "gc"
49 + + gc docs: clean grammar for "gc.bigPackThreshold"
50 + + gc docs: stop noting "repack" flags
51 + + gc docs: modernize the advice for manually running "gc"
52
36 - "git mergetool" learned to offer Sublime Merge (smerge) as one of
37 - its backends.
53 + Update docs around "gc".
54
55
40 -* dl/flex-str-cocci (2019-04-04) 2 commits
41 - (merged to 'next' on 2019-04-16 at e5cb2927b3)
42 - + cocci: FLEX_ALLOC_MEM to FLEX_ALLOC_STR
43 - + midx.c: convert FLEX_ALLOC_MEM to FLEX_ALLOC_STR
56 +* ab/gc-reflog (2019-04-01) 7 commits
57 + (merged to 'next' on 2019-04-16 at aa27f951a8)
58 + + gc: handle & check gc.reflogExpire config
59 + + reflog tests: assert lack of early exit with expiry="never"
60 + + reflog tests: test for the "points nowhere" warning
61 + + reflog tests: make use of "test_config" idiom
62 + + gc: refactor a "call me once" pattern
63 + + gc: convert to using the_hash_algo
64 + + gc: remove redundant check for gc_auto_threshold
65
45 - Code clean-up.
66 + Fix various glitches in "git gc" around reflog handling.
67 +
68 +
69 +* ab/test-lib-pass-trace2-env (2019-04-01) 1 commit
70 + (merged to 'next' on 2019-04-16 at 4dad6d6d7a)
71 + + test-lib: whitelist GIT_TR2_* in the environment
72
73 + Allow tracing of Git executable while running the testsuite.
74
48 -* js/check-docs-exe (2019-04-01) 5 commits
49 - (merged to 'next' on 2019-04-16 at 98570caa8c)
50 - + check-docs: fix for setups where executables have an extension
51 - + check-docs: do not expect guide pages to correspond to commands
52 - + check-docs: really look at the documented commands again
53 - + docs: do not document the `git remote-testgit` command
54 - + docs: move gitremote-helpers into section 7
55 - (this branch is used by js/misc-doc-fixes.)
56 -
57 - Dev support update.
58 -
59 -
60 -* js/spell-out-options-in-tests (2019-04-15) 8 commits
61 - (merged to 'next' on 2019-04-16 at 1cfd7698b6)
62 - + tests: disallow the use of abbreviated options (by default)
63 - + tests (pack-objects): use the full, unabbreviated `--revs` option
64 - + tests (status): spell out the `--find-renames` option in full
65 - + tests (push): do not abbreviate the `--follow-tags` option
66 - + t5531: avoid using an abbreviated option
67 - + t7810: do not abbreviate `--no-exclude-standard` nor `--invert-match`
68 - + tests (rebase): spell out the `--force-rebase` option
69 - + tests (rebase): spell out the `--keep-empty` option
70 - (this branch is tangled with dl/rebase-i-keep-base.)
71 -
72 - The tests have been updated not to rely on the abbreviated option
73 - names the parse-options API offers, to protect us from an
74 - abbreviated form of an option that used to be unique within the
75 - command getting non-unique when a new option that share the same
76 - prefix is added.
77 -
78 -
79 -* js/stash-in-c-pathspec-fix (2019-03-12) 3 commits
80 - (merged to 'next' on 2019-03-20 at e81d08af7a)
81 - + stash: pass pathspec as pointer
82 - + built-in stash: handle :(glob) pathspecs again
83 - + legacy stash: fix "rudimentary backport of -q"
84 - (this branch uses ps/stash-in-c; is tangled with tb/stash-in-c-unused-param-fix and tg/stash-in-c-show-default-to-p-fix.)
85 -
86 - Further fixes to "git stash" reimplemented in C.
87 -
88 -
89 -* nd/include-if-wildmatch (2019-04-01) 1 commit
90 - (merged to 'next' on 2019-04-16 at db8b6a578a)
91 - + config: correct '**' matching in includeIf patterns
92 -
93 - A buglet in configuration parser has been fixed.
94 -
95 -
96 -* nd/interpret-trailers-docfix (2019-04-01) 1 commit
97 - (merged to 'next' on 2019-04-16 at 6a57abc7e6)
98 - + interpret-trailers.txt: start the desc line with a capital letter
99 -
100 - Doc update.
101 -
102 -
103 -* nd/read-tree-reset-doc (2019-04-02) 1 commit
104 - (merged to 'next' on 2019-04-16 at f2bef91774)
105 - + read-tree.txt: clarify --reset and worktree changes
106 -
107 - The documentation for "git read-tree --reset -u" has been updated.
108 -
109 -
110 -* ps/stash-in-c (2019-03-07) 29 commits
111 - (merged to 'next' on 2019-03-11 at f568e3be72)
112 - + tests: add a special setup where stash.useBuiltin is off
113 - + stash: optionally use the scripted version again
114 - + stash: add back the original, scripted `git stash`
115 - + stash: convert `stash--helper.c` into `stash.c`
116 - + stash: replace all `write-tree` child processes with API calls
117 - + stash: optimize `get_untracked_files()` and `check_changes()`
118 - + stash: convert save to builtin
119 - + stash: make push -q quiet
120 - + stash: convert push to builtin
121 - + stash: convert create to builtin
122 - + stash: convert store to builtin
123 - + stash: convert show to builtin
124 - + stash: convert list to builtin
125 - + stash: convert pop to builtin
126 - + stash: convert branch to builtin
127 - + stash: convert drop and clear to builtin
128 - + stash: convert apply to builtin
129 - + stash: mention options in `show` synopsis
130 - + stash: add tests for `git stash show` config
131 - + stash: rename test cases to be more descriptive
132 - + t3903: add test for --intent-to-add file
133 - + t3903: modernize style
134 - + stash: improve option parsing test coverage
135 - + ident: don't require calling prepare_fallback_ident first
136 - + ident: add the ability to provide a "fallback identity"
137 - + strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()`
138 - + strbuf.c: add `strbuf_join_argv()`
139 - + sha1-name.c: add `get_oidf()` which acts like `get_oid()`
140 - + Merge branch 'sd/stash-wo-user-name'
141 - (this branch is used by js/stash-in-c-pathspec-fix, tb/stash-in-c-unused-param-fix and tg/stash-in-c-show-default-to-p-fix.)
142 -
143 - Originally merged to 'next' on 2019-03-07
144 -
145 - "git stash" rewritten in C.
146 -
147 -
148 -* sg/asciidoctor-in-ci (2019-04-05) 6 commits
149 - (merged to 'next' on 2019-04-16 at efdf919c16)
150 - + ci: fix AsciiDoc/Asciidoctor stderr check in the documentation build job
151 - + ci: stick with Asciidoctor v1.5.8 for now
152 - + ci: install Asciidoctor in 'ci/install-dependencies.sh'
153 - + Documentation/technical/protocol-v2.txt: fix formatting
154 - + Documentation/technical/api-config.txt: fix formatting
155 - + Documentation/git-diff-tree.txt: fix formatting
156 -
157 - Update our support to format documentation in the CI environment,
158 - either with AsciiDoc ro Asciidoctor.
159 -
160 -
161 -* tb/stash-in-c-unused-param-fix (2019-03-11) 1 commit
162 - (merged to 'next' on 2019-03-20 at 5ccac5f80d)
163 - + stash: drop unused parameter
164 - (this branch uses ps/stash-in-c; is tangled with js/stash-in-c-pathspec-fix and tg/stash-in-c-show-default-to-p-fix.)
75
166 - Code clean-up.
76 +* ag/sequencer-reduce-rewriting-todo (2019-03-07) 18 commits
77 + (merged to 'next' on 2019-04-10 at 7eab7c7800)
78 + + rebase--interactive: move transform_todo_file()
79 + + sequencer: use edit_todo_list() in complete_action()
80 + + rebase-interactive: rewrite edit_todo_list() to handle the initial edit
81 + + rebase-interactive: append_todo_help() changes
82 + + rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
83 + + sequencer: refactor skip_unnecessary_picks() to work on a todo_list
84 + + rebase--interactive: move rearrange_squash_in_todo_file()
85 + + rebase--interactive: move sequencer_add_exec_commands()
86 + + sequencer: change complete_action() to use the refactored functions
87 + + sequencer: make sequencer_make_script() write its script to a strbuf
88 + + sequencer: refactor rearrange_squash() to work on a todo_list
89 + + sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
90 + + sequencer: refactor check_todo_list() to work on a todo_list
91 + + sequencer: introduce todo_list_write_to_file()
92 + + sequencer: refactor transform_todos() to work on a todo_list
93 + + sequencer: remove the 'arg' field from todo_item
94 + + sequencer: make the todo_list structure public
95 + + sequencer: changes in parse_insn_buffer()
96 + (this branch is used by pw/rebase-i-internal.)
97 +
98 + The scripted version of "git rebase -i" wrote and rewrote the todo
99 + list many times during a single step of its operation, and the
100 + recent C-rewrite made a faithful conversion of the logic to C. The
101 + implementation has been updated to carry necessary information
102 + around in-core to avoid rewriting the same file over and over
103 + unnecessarily.
104 + cf. <20190305191805.13561-1-alban.gruin@gmail.com> (v8)
105 +
106 +
107 +* bc/hash-transition-16 (2019-04-01) 35 commits
108 + (merged to 'next' on 2019-04-16 at 8227fea6fa)
109 + + gitweb: make hash size independent
110 + + Git.pm: make hash size independent
111 + + read-cache: read data in a hash-independent way
112 + + dir: make untracked cache extension hash size independent
113 + + builtin/difftool: use parse_oid_hex
114 + + refspec: make hash size independent
115 + + archive: convert struct archiver_args to object_id
116 + + builtin/get-tar-commit-id: make hash size independent
117 + + get-tar-commit-id: parse comment record
118 + + hash: add a function to lookup hash algorithm by length
119 + + remote-curl: make hash size independent
120 + + http: replace sha1_to_hex
121 + + http: compute hash of downloaded objects using the_hash_algo
122 + + http: replace hard-coded constant with the_hash_algo
123 + + http-walker: replace sha1_to_hex
124 + + http-push: remove remaining uses of sha1_to_hex
125 + + http-backend: allow 64-character hex names
126 + + http-push: convert to use the_hash_algo
127 + + builtin/pull: make hash-size independent
128 + + builtin/am: make hash size independent
129 + + fast-import: replace sha1_to_hex
130 + + fast-import: make hash-size independent
131 + + builtin/name-rev: make hash-size independent
132 + + object-store: rename and expand packed_git's sha1 member
133 + + notes: replace sha1_to_hex
134 + + notes: make hash size independent
135 + + notes-merge: switch to use the_hash_algo
136 + + submodule: avoid hard-coded constants
137 + + pack-bitmap: switch hash tables to use struct object_id
138 + + pack-bitmap: switch hard-coded constants to the_hash_algo
139 + + pack-bitmap: replace sha1_to_hex
140 + + pack-bitmap: convert struct stored_bitmap to object_id
141 + + pack-bitmap: make bitmap header handling hash agnostic
142 + + khash: move oid hash table definition
143 + + t/lib-submodule-update: use appropriate length constant
144 +
145 + Conversion from unsigned char[20] to struct object_id continues.
146 +
147 +
148 +* bc/send-email-qp-cr (2019-04-14) 1 commit
149 + (merged to 'next' on 2019-04-22 at 69398b0ea8)
150 + + send-email: default to quoted-printable when CR is present
151 +
152 + "git send-email" has been taught to use quoted-printable when the
153 + payload contains carriage-return. The use of the mechanism is in
154 + line with the design originally added the codepath that chooses QP
155 + when the payload has overly long lines.
156 +
157 +
158 +* bp/post-index-change-hook (2019-02-15) 1 commit
159 + (merged to 'next' on 2019-03-11 at cb96d1d7c4)
160 + + read-cache: add post-index-change hook
161 +
162 + Originally merged to 'next' on 2019-02-23
163 +
164 + A new hook "post-index-change" is called when the on-disk index
165 + file changes, which can help e.g. a virtualized working tree
166 + implementation.
167 +
168 +
169 +* bs/sendemail-tighten-anything-by (2019-04-04) 1 commit
170 + (merged to 'next' on 2019-04-22 at 0a0680f234)
171 + + send-email: don't cc *-by lines with '-' prefix
172 +
173 + The recently added feature to add addresses that are on
174 + anything-by: trailers in 'git send-email' was found to be way too
175 + eager and considered nonsense strings as if they can be legitimate
176 + beginning of *-by: trailer. This has been tightened.
177 +
178 +
179 +* dk/blame-keep-origin-blob (2019-04-03) 1 commit
180 + (merged to 'next' on 2019-04-16 at 39679dde8b)
181 + + blame.c: don't drop origin blobs as eagerly
182 +
183 + Performance fix around "git blame", especially in a linear history
184 + (which is the norm we should optimize for).
185 +
186 +
187 +* dl/submodule-set-branch (2019-04-10) 3 commits
188 + (merged to 'next' on 2019-04-22 at 3b640715ae)
189 + + submodule: teach set-branch subcommand
190 + + submodule--helper: teach config subcommand --unset
191 + + git-submodule.txt: "--branch <branch>" option defaults to 'master'
192 +
193 + "git submodule" learns "set-branch" subcommand that allows the
194 + submodule.*.branch settings to be modified.
195
196
169 -* tg/stash-in-c-show-default-to-p-fix (2019-03-21) 1 commit
170 - (merged to 'next' on 2019-04-10 at 9489a31a36)
171 - + stash: setup default diff output format if necessary
172 - (this branch uses ps/stash-in-c; is tangled with js/stash-in-c-pathspec-fix and tb/stash-in-c-unused-param-fix.)
197 +* en/fast-import-parsing-fix (2019-04-01) 5 commits
198 + (merged to 'next' on 2019-04-16 at b318831bde)
199 + + fast-import: fix erroneous handling of get-mark with empty orphan commits
200 + + fast-import: only allow cat-blob requests where it makes sense
201 + + fast-import: check most prominent commands first
202 + + git-fast-import.txt: fix wording about where ls command can appear
203 + + t9300: demonstrate bug with get-mark and empty orphan commits
204
174 - A regression fix.
205 + "git fast-import" update.
206
207
177 -* tz/asciidoctor-fixes (2019-04-01) 2 commits
178 - (merged to 'next' on 2019-04-16 at 0cb17f579b)
179 - + Documentation/git-status: fix titles in porcelain v2 section
180 - + Documentation/rev-list-options: wrap --date=<format> block with "--"
208 +* jc/gettext-test-fix (2019-04-15) 1 commit
209 + (merged to 'next' on 2019-04-22 at 7c57deeb04)
210 + + gettext tests: export the restored GIT_TEST_GETTEXT_POISON
211 +
212 + The GETTEXT_POISON test option has been quite broken ever since it
213 + was made runtime-tunable, which has been fixed.
214 +
215 +
216 +* jk/fetch-reachability-error-fix (2019-04-15) 7 commits
217 + (merged to 'next' on 2019-04-22 at b4ce8375c0)
218 + + fetch: do not consider peeled tags as advertised tips
219 + + remote.c: make singular free_ref() public
220 + + fetch: use free_refs()
221 + + pkt-line: prepare buffer before handling ERR packets
222 + + upload-pack: send ERR packet for non-tip objects
223 + + t5530: check protocol response for "not our ref"
224 + + t5516: drop ok=sigpipe from unreachable-want tests
225 +
226 + Code clean-up and a fix for "git fetch" by an explicit object name
227 + (as opposed to fetching refs by name).
228 +
229 +
230 +* jk/revision-rewritten-parents-in-prio-queue (2019-04-04) 1 commit
231 + (merged to 'next' on 2019-04-16 at bdc1465128)
232 + + revision: use a prio_queue to hold rewritten parents
233 +
234 + Performance fix for "rev-list --parents -- pathspec".
235 +
236 +
237 +* jk/server-info-rabbit-hole (2019-04-16) 13 commits
238 + (merged to 'next' on 2019-04-16 at 3dded8be9a)
239 + + update_info_refs(): drop unused force parameter
240 + + server-info: drop objdirlen pointer arithmetic
241 + + server-info: drop nr_alloc struct member
242 + + server-info: use strbuf to read old info/packs file
243 + + server-info: simplify cleanup in parse_pack_def()
244 + + server-info: fix blind pointer arithmetic
245 + + http: simplify parsing of remote objects/info/packs
246 + + packfile: fix pack basename computation
247 + + midx: check both pack and index names for containment
248 + + t5319: drop useless --buffer from cat-file
249 + + t5319: fix bogus cat-file argument
250 + + pack-revindex: open index if necessary
251 + + packfile.h: drop extern from function declarations
252 +
253 + Code clean-up around a much-less-important-than-it-used-to-be
254 + update_server_info() funtion.
255 +
256 +
257 +* jk/unused-params-even-more (2019-03-21) 13 commits
258 + (merged to 'next' on 2019-04-10 at 12edf8872f)
259 + + parse_opt_ref_sorting: always use with NONEG flag
260 + + pretty: drop unused strbuf from parse_padding_placeholder()
261 + + pretty: drop unused "type" parameter in needs_rfc2047_encoding()
262 + + parse-options: drop unused ctx parameter from show_gitcomp()
263 + + fetch_pack(): drop unused parameters
264 + + report_path_error(): drop unused prefix parameter
265 + + unpack-trees: drop unused error_type parameters
266 + + unpack-trees: drop name_entry from traverse_by_cache_tree()
267 + + test-date: drop unused "now" parameter from parse_dates()
268 + + update-index: drop unused prefix_length parameter from do_reupdate()
269 + + log: drop unused "len" from show_tagger()
270 + + log: drop unused rev_info from early output
271 + + revision: drop some unused "revs" parameters
272 +
273 + Code cleanup.
274 +
275 +
276 +* jk/xmalloc (2019-04-12) 4 commits
277 + (merged to 'next' on 2019-04-22 at 1a907289fa)
278 + + progress: use xmalloc/xcalloc
279 + + xdiff: use xmalloc/xrealloc
280 + + xdiff: use git-compat-util
281 + + test-prio-queue: use xmalloc
282 +
283 + The code is updated to check the result of memory allocation before
284 + it is used in more places, by using xmalloc and/or xcalloc calls.
285 +
286 +
287 +* js/difftool-no-index (2019-03-18) 3 commits
288 + (merged to 'next' on 2019-04-16 at 7313f9ff18)
289 + + difftool: allow running outside Git worktrees with --no-index
290 + + parse-options: make OPT_ARGUMENT() more useful
291 + + difftool: remove obsolete (and misleading) comment
292 +
293 + "git difftool" can now run outside a repository.
294 +
295 +
296 +* js/iso8895-test-on-apfs (2019-04-15) 1 commit
297 + (merged to 'next' on 2019-04-22 at c2fadead33)
298 + + t9822: skip tests if file names cannot be ISO-8859-1 encoded
299 +
300 + Test fix on APFS that is incapable of store paths in Latin-1.
301 +
302 +
303 +* js/macos-gettext-build (2019-04-15) 1 commit
304 + (merged to 'next' on 2019-04-22 at de4cbb1431)
305 + + macOS: make sure that gettext is found
306 +
307 + Build with gettext breaks on recent macOS w/ Homebrew when
308 + /usr/local/bin is not on PATH, which has been corrected.
309 +
310 +
311 +* js/t3301-unbreak-notes-test (2019-04-09) 1 commit
312 + (merged to 'next' on 2019-04-22 at a015b00bd9)
313 + + t3301: fix false negative
314 +
315 + Test fix.
316 +
317 +
318 +* js/untracked-cache-allocfix (2019-04-12) 1 commit
319 + (merged to 'next' on 2019-04-22 at 004a544075)
320 + + untracked cache: fix off-by-one
321 + (this branch is used by jk/untracked-cache-more-fixes.)
322 +
323 + An underallocation in the code to read the untracked cache
324 + extension has been corrected.
325 +
326 +
327 +* jt/batch-fetch-blobs-in-diff (2019-04-08) 2 commits
328 + (merged to 'next' on 2019-04-22 at 0598bae567)
329 + + diff: batch fetching of missing blobs
330 + + sha1-file: support OBJECT_INFO_FOR_PREFETCH
331 + (this branch is used by cc/multi-promisor.)
332 +
333 + While running "git diff" in a lazy clone, we can upfront know which
334 + missing blobs we will need, instead of waiting for the on-demand
335 + machinery to discover them one by one. Aim to achieve better
336 + performance by batching the request for these promised blobs.
337 +
338 +
339 +* jt/fetch-no-update-shallow-in-proto-v2 (2019-04-01) 3 commits
340 + (merged to 'next' on 2019-04-16 at 05c5ebe471)
341 + + fetch-pack: respect --no-update-shallow in v2
342 + + fetch-pack: call prepare_shallow_info only if v0
343 + + Merge branch 'jt/test-protocol-version' into jt/fetch-no-update-shallow-in-proto-v2
344 +
345 + Fix for protocol v2 support in "git fetch-pack" of shallow clones.
346 +
347 +
348 +* jt/fetch-pack-wanted-refs-optim (2019-04-01) 1 commit
349 + (merged to 'next' on 2019-04-16 at 051f6bd38a)
350 + + fetch-pack: binary search when storing wanted-refs
351 +
352 + Performance fix around "git fetch" that grabs many refs.
353 +
354 +
355 +* km/t3000-retitle (2019-04-12) 1 commit
356 + (merged to 'next' on 2019-04-22 at 2d5aa01ca6)
357 + + t3000 (ls-files -o): widen description to reflect current tests
358 +
359 + A test update.
360 +
361 +
362 +* nd/checkout-m (2019-03-24) 4 commits
363 + (merged to 'next' on 2019-04-16 at 4d7c322bed)
364 + + checkout: prevent losing staged changes with --merge
365 + + read-tree: add --quiet
366 + + unpack-trees: rename "gently" flag to "quiet"
367 + + unpack-trees: keep gently check inside add_rejected_path
368 +
369 + "git checkout -m <other>" was about carrying the differences
370 + between HEAD and the working-tree files forward while checking out
371 + another branch, and ignored the differences between HEAD and the
372 + index. The command has been taught to abort when the index and the
373 + HEAD are different.
374 +
375 +
376 +* nd/commit-a-with-paths-msg-update (2019-03-22) 1 commit
377 + (merged to 'next' on 2019-04-16 at a36c712b39)
378 + + commit: improve error message in "-a <paths>" case
379 +
380 + The message given when "git commit -a <paths>" errors out has been
381 + updated.
382 +
383 +
384 +* nd/diff-parseopt-4 (2019-03-24) 20 commits
385 + (merged to 'next' on 2019-04-10 at 893b135f10)
386 + + am: avoid diff_opt_parse()
387 + + diff --no-index: use parse_options() instead of diff_opt_parse()
388 + + range-diff: use parse_options() instead of diff_opt_parse()
389 + + diff.c: allow --no-color-moved-ws
390 + + diff-parseopt: convert --color-moved-ws
391 + + diff-parseopt: convert --[no-]color-moved
392 + + diff-parseopt: convert --inter-hunk-context
393 + + diff-parseopt: convert --no-prefix
394 + + diff-parseopt: convert --line-prefix
395 + + diff-parseopt: convert --[src|dst]-prefix
396 + + diff-parseopt: convert --[no-]abbrev
397 + + diff-parseopt: convert --diff-filter
398 + + diff-parseopt: convert --find-object
399 + + diff-parseopt: convert -O
400 + + diff-parseopt: convert --pickaxe-all|--pickaxe-regex
401 + + diff-parseopt: convert -S|-G
402 + + diff-parseopt: convert -l
403 + + diff-parseopt: convert -z
404 + + diff-parseopt: convert --ita-[in]visible-in-index
405 + + diff-parseopt: convert --ws-error-highlight
406 +
407 + Fourth batch to teach the diff machinery to use the parse-options
408 + API.
409 +
410 +
411 +* nd/submodule-foreach-quiet (2019-04-15) 1 commit
412 + (merged to 'next' on 2019-04-22 at bf982bca7b)
413 + + submodule foreach: fix "<command> --quiet" not being respected
414 +
415 + "git submodule foreach <command> --quiet" did not pass the option
416 + down correctly, which has been corrected.
417 +
418 +
419 +* po/describe-not-necessarily-7 (2019-04-08) 1 commit
420 + (merged to 'next' on 2019-04-22 at 65b47ca73f)
421 + + describe doc: remove '7-char' abbreviation reference
422 +
423 + Docfix.
424 +
425 +
426 +* po/rerere-doc-fmt (2019-04-08) 1 commit
427 + (merged to 'next' on 2019-04-22 at 780c0d2450)
428 + + rerere doc: quote `rerere.enabled`
429 +
430 + Docfix.
431 +
432 +
433 +* pw/cherry-pick-continue (2019-03-18) 3 commits
434 + (merged to 'next' on 2019-04-16 at 1bfd7a7179)
435 + + cherry-pick --continue: remember options
436 + + cherry-pick: demonstrate option amnesia
437 + + sequencer: break some long lines
438 +
439 + "git cherry-pick --options A..B", after giving control back to the
440 + user to ask help resolving a conflicted step, did not honor the
441 + options it originally received, which has been corrected.
442 +
443 +
444 +* sg/blame-in-bare-start-at-head (2019-04-08) 1 commit
445 + (merged to 'next' on 2019-04-22 at 159777c280)
446 + + blame: default to HEAD in a bare repo when no start commit is given
447 +
448 + "git blame -- path" in a non-bare repository starts blaming from
449 + the working tree, and the same command in a bare repository errors
450 + out because there is no working tree by definition. The command
451 + has been taught to instead start blaming from the commit at HEAD,
452 + which is more useful.
453 +
454 +
455 +* sg/index-pack-progress (2019-04-01) 1 commit
456 + (merged to 'next' on 2019-04-16 at a10bfdd950)
457 + + index-pack: show progress while checking objects
458 +
459 + A progress indicator has been added to the "index-pack" step, which
460 + often makes users wait for completion during "git clone".
461
182 - Doc updates.
462
184 ---------------------------------------------------
185 -[New Topics]
463 +* sg/overlong-progress-fix (2019-04-15) 4 commits
464 + (merged to 'next' on 2019-04-22 at 69921cdf09)
465 + + progress: break too long progress bar lines
466 + + progress: clear previous progress update dynamically
467 + + progress: assemble percentage and counters in a strbuf before printing
468 + + progress: make display_progress() return void
469
187 -* es/first-contrib-tutorial (2019-04-21) 1 commit
188 - - documentation: add lab for first contribution
470 + Updating the display with progress message has been cleaned up to
471 + deal better with overlong messages.
472
190 - A WIP of a new tutorial targetting specifically aspiring git-core
191 - developers.
473
474 +* sg/test-atexit (2019-03-14) 11 commits
475 + (merged to 'next' on 2019-04-10 at 7839135291)
476 + + t9811-git-p4-label-import: fix pipeline negation
477 + + git p4 test: disable '-x' tracing in the p4d watchdog loop
478 + + git p4 test: simplify timeout handling
479 + + git p4 test: clean up the p4d cleanup functions
480 + + git p4 test: use 'test_atexit' to kill p4d and the watchdog process
481 + + t0301-credential-cache: use 'test_atexit' to stop the credentials helper
482 + + tests: use 'test_atexit' to stop httpd
483 + + git-daemon: use 'test_atexit` to stop 'git-daemon'
484 + + test-lib: introduce 'test_atexit'
485 + + t/lib-git-daemon: make sure to kill the 'git-daemon' process
486 + + test-lib: fix interrupt handling with 'dash' and '--verbose-log -x'
487
194 -* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
195 - - fix cherry-pick/revert status after commit
196 - - commit/reset: try to clean up sequencer state
488 + Test framework update to more robustly clean up leftover files and
489 + processes after tests are done.
490
198 - "git chery-pick" (and "revert" that shares the same runtime engine)
199 - that deals with multiple commits got confused when the final step
200 - gets stopped with a conflict and the user concluded the sequence
201 - with "git commit". Attempt to fix it by cleaning up the state
202 - files used by these commands in such a situation.
491
204 - Will merge to 'next'.
492 +* tg/ls-files-debug-format-fix (2019-04-08) 1 commit
493 + (merged to 'next' on 2019-04-22 at a5ac1ca49f)
494 + + ls-files: use correct format string
495
496 + Debugging code fix.
497
207 -* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
208 - - sequencer: fix cleanup with --signoff and -x
209 - (this branch is used by dl/merge-cleanup-scissors-fix.)
498
211 - "git cherry-pick" run with the "-x" or the "--signoff" option used
212 - to (and more importantly, ought to) clean up the commit log message
213 - with the --cleanup=space option by default, but this has been
214 - broken since late 2017. This has been fixed.
499 +* tz/doc-apostrophe-no-longer-needed (2019-04-10) 1 commit
500 + (merged to 'next' on 2019-04-22 at 8ff03863ce)
501 + + Documentation/git-show-branch: avoid literal {apostrophe}
502
216 - Will merge to 'next'.
503 + Doc formatting fix.
504
505 +--------------------------------------------------
506 +[New Topics]
507
219 -* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
220 - - ref-filter: use correct branch for %(push:track)
508 +* jc/make-dedup-ls-files-output (2019-04-22) 1 commit
509 + - Makefile: dedup list of files obtained from ls-files
510
222 - %(push:track) token used in the --format option to "git
223 - for-each-ref" and friends was not showing the right branch, which
224 - has been fixed.
511 + A "ls-files" that emulates "find" to enumerate files in the working
512 + tree resulted in duplicated Makefile rules that caused the build to
513 + issue an unnecessary warning during a trial build after merge
514 + conflicts are resolved in working tree *.h files but before the
515 + resolved results are added to the index. This has been corrected.
516
517 Will merge to 'next'.
518 + A not-so-low hanging fruit to teach ls-files to dedup either optionally
519 + or always has also been discussed, which probably is a good idea,
520 + to prevent mistakes similar to the bug this topic fixes in the future.
521
522
229 -* cc/aix-has-fileno-as-a-macro (2019-04-19) 1 commit
230 - - Makefile: use fileno macro work around on AIX
523 +* jk/ls-files-doc-markup-fix (2019-04-23) 1 commit
524 + - doc/ls-files: put nested list for "-t" option into block
525
232 - AIX shared the same build issues with other BSDs around fileno(fp),
233 - which has been corrected.
526 + Docfix.
527
528 Will merge to 'next'.
529
530
238 -* jk/prune-optim (2019-04-19) 1 commit
239 - - t5304: add a test for pruning with bitmaps
531 +* jk/p5302-avoid-collision-check-cost (2019-04-23) 1 commit
532 + - p5302: create the repo in each index-pack test
533
241 - A follow-up test for an earlier "git prune" improvements.
534 + Fix index-pack perf test so that the repeated invocations always
535 + run in an empty repository, which emulates the initial clone
536 + situation better.
537
538 Will merge to 'next'.
539
540
246 -* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
247 - - untracked-cache: simplify parsing by dropping "len"
248 - - untracked-cache: simplify parsing by dropping "next"
249 - - untracked-cache: be defensive about missing NULs in index
250 - (this branch uses js/untracked-cache-allocfix.)
541 +* dl/rev-tilde-doc-clarify (2019-04-24) 1 commit
542 + - revisions.txt: mention <rev>~ form
543
252 - Code clean-up.
544 + Docfix.
545
546 Will merge to 'next'.
547
548
257 -* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
258 - - worktree: update is_bare heuristics
549 +* en/unicode-in-refnames (2019-04-24) 1 commit
550 + - Honor core.precomposeUnicode in more places
551
260 - The logic to tell if a Git repository has a working tree protects
261 - "git branch -D" from removing the branch that is currently checked
262 - out by mistake. The implementation of this logic was broken for
263 - repositories with unusual name, which unfortunately is the norm for
264 - submodules these days. This has been fixed.
552 + The names of the refs stored as filesystem entities may become
553 + different from what the end-user expects, just like files in the
554 + working tree gets "renamed", on a filesystem like HFS+. Work it
555 + around by paying attemption to the core.precomposeUnicode
556 + configuration.
557
266 - Will merge to 'next'.
558 + Looked sensible. Ready for next?
559
560
269 -* vk/autoconf-gettext (2019-04-19) 1 commit
270 - - autoconf: #include <libintl.h> when checking for gettext()
561 +* jk/perf-aggregate-wo-libjson (2019-04-24) 1 commit
562 + - t/perf: depend on perl JSON only when using --codespeed
563
272 - The autoconf generated configure script failed to use the right
273 - gettext() implementations from -libintl by ignoring useless stub
274 - implementations shipped in some C library, which has been
564 + The script to aggregate perf result unconditionally depended on
565 + libjson-perl even though it did not have to, which has been
566 corrected.
567
568 Will merge to 'next'.
569
570
280 -* dl/no-extern-in-func-decl (2019-04-21) 4 commits
281 - - cocci: prevent extern function declarations
282 - - *.[ch]: manually align parameter lists
283 - - *.[ch]: remove extern from function declarations using sed
284 - - *.[ch]: remove extern from function declarations using spatch
285 -
286 - Mechanically and systematically drop "extern" from function
287 - declarlation.
288 -
289 - This is the kind of code churn patch that causes heavy conflicts
290 - with multiple topics in flight, which causes conflicts in slightly
291 - different shape when it gets merged with them in different order.
292 - I've queued it moderately early in 'pu' for the night, and I am
293 - reasonably sure the merge of the topic itself is OK, but I do not
294 - have much confidence in the resolutions of conflicts with other
295 - topics later merged to 'pu'.
296 -
297 -
298 -* js/partial-clone-connectivity-check (2019-04-21) 1 commit
299 - - clone: do faster object check for partial clones
571 +* cc/access-on-aix-workaround (2019-04-25) 1 commit
572 + - git-compat-util: work around for access(X_OK) under root
573 + (this branch uses cc/aix-has-fileno-as-a-macro.)
574
301 - During an initial "git clone --depth=..." partial clone, it is
302 - pointless to spend cycles for a large portion of the connectivity
303 - check that enumerates and skips promisor objects (which by
304 - definition is all objects fetched from the other side). This has
305 - been optimized out.
575
307 - Will merge to 'next'.
576 +* dl/difftool-mergetool (2019-04-25) 6 commits
577 + - difftool: fallback on merge.guitool
578 + - difftool: make --gui, --tool and --extcmd mutually exclusive
579 + - mergetool: fallback to tool when guitool unavailable
580 + - mergetool: use get_merge_tool function
581 + - t7610: add mergetool --gui tests
582 + - t7610: unsuppress output
583
584 --------------------------------------------------
585 [Stalled]
@@ -338,7 +613,7 @@ of the repositories listed at
613 WIP for allowing a response to "git fetch" to instruct the bulk of
614 the pack contents to be instead taken from elsewhere (aka CDN).
615
341 - Waiting for the final version.
616 + Still being discussed.
617
618
619 * js/add-i-coalesce-after-editing-hunk (2018-08-28) 1 commit
@@ -351,25 +626,6 @@ of the repositories listed at
626 cf. <e5b2900a-0558-d3bf-8ea1-d526b078bbc2@talktalk.net>
627
628
354 -* ds/midx-expire-repack (2019-01-27) 10 commits
355 - - midx: add test that 'expire' respects .keep files
356 - - multi-pack-index: test expire while adding packs
357 - - midx: implement midx_repack()
358 - - multi-pack-index: prepare 'repack' subcommand
359 - - multi-pack-index: implement 'expire' subcommand
360 - - midx: refactor permutation logic and pack sorting
361 - - midx: simplify computation of pack name lengths
362 - - multi-pack-index: prepare for 'expire' subcommand
363 - - Docs: rearrange subcommands for multi-pack-index
364 - - repack: refactor pack deletion for future use
365 -
366 - "git multi-pack-index expire/repack" are new subcommands that
367 - consult midx file and are used to drop unused pack files and
368 - coalesce small pack files that are still in use.
369 -
370 - Comments?
371 -
372 -
629 * js/protocol-advertise-multi (2018-12-28) 1 commit
630 - protocol: advertise multiple supported versions
631
@@ -403,165 +659,211 @@ of the repositories listed at
659 --------------------------------------------------
660 [Cooking]
661
406 -* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
407 - - send-email: honor transferencoding config option again
662 +* ds/midx-expire-repack (2019-04-25) 11 commits
663 + - t5319-multi-pack-index.sh: test batch size zero
664 + - midx: add test that 'expire' respects .keep files
665 + - multi-pack-index: test expire while adding packs
666 + - midx: implement midx_repack()
667 + - multi-pack-index: prepare 'repack' subcommand
668 + - multi-pack-index: implement 'expire' subcommand
669 + - midx: refactor permutation logic and pack sorting
670 + - midx: simplify computation of pack name lengths
671 + - multi-pack-index: prepare for 'expire' subcommand
672 + - Docs: rearrange subcommands for multi-pack-index
673 + - repack: refactor pack deletion for future use
674
409 - Since "git send-email" learned to take 'auto' as the value for the
410 - transfer-encoding, it by mistake stopped honoring the values given
411 - to the configuration variables sendemail.transferencoding and/or
412 - sendemail.<ident>.transferencoding. Attempt to correct this.
675 + "git multi-pack-index expire/repack" are new subcommands that
676 + consult midx file and are used to drop unused pack files and
677 + coalesce small pack files that are still in use.
678
414 - Not quite.
415 - cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
679 + cf. <20190424151428.170316-1-dstolee@microsoft.com> (v5)
680
681
418 -* jk/xmalloc (2019-04-12) 4 commits
419 - (merged to 'next' on 2019-04-22 at 1a907289fa)
420 - + progress: use xmalloc/xcalloc
421 - + xdiff: use xmalloc/xrealloc
422 - + xdiff: use git-compat-util
423 - + test-prio-queue: use xmalloc
682 +* es/first-contrib-tutorial (2019-04-25) 1 commit
683 + - documentation: add tutorial for first contribution
684
425 - The code is updated to check the result of memory allocation before
426 - it is used in more places, by using xmalloc and/or xcalloc calls.
685 + A new tutorial targetting specifically aspiring git-core
686 + developers.
687
428 - Will merge to 'master'.
688 + cf. <20190423193410.101803-1-emilyshaffer@google.com> (v4)
689
690
431 -* js/untracked-cache-allocfix (2019-04-12) 1 commit
432 - (merged to 'next' on 2019-04-22 at 004a544075)
433 - + untracked cache: fix off-by-one
434 - (this branch is used by jk/untracked-cache-more-fixes.)
691 +* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
692 + - fix cherry-pick/revert status after commit
693 + - commit/reset: try to clean up sequencer state
694
436 - An underallocation in the code to read the untracked cache
437 - extension has been corrected.
695 + "git chery-pick" (and "revert" that shares the same runtime engine)
696 + that deals with multiple commits got confused when the final step
697 + gets stopped with a conflict and the user concluded the sequence
698 + with "git commit". Attempt to fix it by cleaning up the state
699 + files used by these commands in such a situation.
700 +
701 + Will merge to 'next'.
702 +
703 +
704 +* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
705 + (merged to 'next' on 2019-04-25 at cc587fb2b9)
706 + + sequencer: fix cleanup with --signoff and -x
707 + (this branch is used by dl/merge-cleanup-scissors-fix.)
708 +
709 + "git cherry-pick" run with the "-x" or the "--signoff" option used
710 + to (and more importantly, ought to) clean up the commit log message
711 + with the --cleanup=space option by default, but this has been
712 + broken since late 2017. This has been fixed.
713
714 Will merge to 'master'.
715
716
442 -* km/t3000-retitle (2019-04-12) 1 commit
443 - (merged to 'next' on 2019-04-22 at 2d5aa01ca6)
444 - + t3000 (ls-files -o): widen description to reflect current tests
717 +* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
718 + (merged to 'next' on 2019-04-25 at 07db067adc)
719 + + ref-filter: use correct branch for %(push:track)
720
446 - A test update.
721 + %(push:track) token used in the --format option to "git
722 + for-each-ref" and friends was not showing the right branch, which
723 + has been fixed.
724
725 Will merge to 'master'.
726
727
451 -* bc/send-email-qp-cr (2019-04-14) 1 commit
452 - (merged to 'next' on 2019-04-22 at 69398b0ea8)
453 - + send-email: default to quoted-printable when CR is present
728 +* cc/aix-has-fileno-as-a-macro (2019-04-25) 1 commit
729 + (merged to 'next' on 2019-04-25 at f1d6464f98)
730 + + Makefile: use fileno macro work around on AIX
731 + (this branch is used by cc/access-on-aix-workaround.)
732
455 - "git send-email" has been taught to use quoted-printable when the
456 - payload contains carriage-return. The use of the mechanism is in
457 - line with the design originally added the codepath that chooses QP
458 - when the payload has overly long lines.
733 + AIX shared the same build issues with other BSDs around fileno(fp),
734 + which has been corrected.
735
736 Will merge to 'master'.
737
738
463 -* jc/gettext-test-fix (2019-04-15) 1 commit
464 - (merged to 'next' on 2019-04-22 at 7c57deeb04)
465 - + gettext tests: export the restored GIT_TEST_GETTEXT_POISON
739 +* jk/prune-optim (2019-04-19) 1 commit
740 + (merged to 'next' on 2019-04-25 at c50353b27f)
741 + + t5304: add a test for pruning with bitmaps
742
467 - The GETTEXT_POISON test option has been quite broken ever since it
468 - was made runtime-tunable, which has been fixed.
743 + A follow-up test for an earlier "git prune" improvements.
744
745 Will merge to 'master'.
746
747
473 -* jk/fetch-reachability-error-fix (2019-04-15) 7 commits
474 - (merged to 'next' on 2019-04-22 at b4ce8375c0)
475 - + fetch: do not consider peeled tags as advertised tips
476 - + remote.c: make singular free_ref() public
477 - + fetch: use free_refs()
478 - + pkt-line: prepare buffer before handling ERR packets
479 - + upload-pack: send ERR packet for non-tip objects
480 - + t5530: check protocol response for "not our ref"
481 - + t5516: drop ok=sigpipe from unreachable-want tests
748 +* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
749 + (merged to 'next' on 2019-04-25 at a6037ddd54)
750 + + untracked-cache: simplify parsing by dropping "len"
751 + + untracked-cache: simplify parsing by dropping "next"
752 + + untracked-cache: be defensive about missing NULs in index
753
483 - Code clean-up and a fix for "git fetch" by an explicit object name
484 - (as opposed to fetching refs by name).
754 + Code clean-up.
755
756 Will merge to 'master'.
757
758
489 -* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
490 - - pack-objects: write objects packed to trace2
759 +* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
760 + (merged to 'next' on 2019-04-25 at da2c6d684d)
761 + + worktree: update is_bare heuristics
762
492 - The "git pack-objects" command learned to report the number of
493 - objects it packed via the trace2 mechanism.
763 + The logic to tell if a Git repository has a working tree protects
764 + "git branch -D" from removing the branch that is currently checked
765 + out by mistake. The implementation of this logic was broken for
766 + repositories with unusual name, which unfortunately is the norm for
767 + submodules these days. This has been fixed.
768
495 - Will merge to 'next'.
769 + Will merge to 'master'.
770
771
498 -* js/iso8895-test-on-apfs (2019-04-15) 1 commit
499 - (merged to 'next' on 2019-04-22 at c2fadead33)
500 - + t9822: skip tests if file names cannot be ISO-8859-1 encoded
772 +* vk/autoconf-gettext (2019-04-19) 1 commit
773 + (merged to 'next' on 2019-04-25 at 918870cbc2)
774 + + autoconf: #include <libintl.h> when checking for gettext()
775
502 - Test fix on APFS that is incapable of store paths in Latin-1.
776 + The autoconf generated configure script failed to use the right
777 + gettext() implementations from -libintl by ignoring useless stub
778 + implementations shipped in some C library, which has been
779 + corrected.
780
781 Will merge to 'master'.
782
783
507 -* js/macos-gettext-build (2019-04-15) 1 commit
508 - (merged to 'next' on 2019-04-22 at de4cbb1431)
509 - + macOS: make sure that gettext is found
784 +* dl/no-extern-in-func-decl (2019-04-24) 4 commits
785 + - cocci: prevent extern function declarations
786 + - *.[ch]: manually align parameter lists
787 + - *.[ch]: remove extern from function declarations using sed
788 + - *.[ch]: remove extern from function declarations using spatch
789
511 - Build with gettext breaks on recent macOS w/ Homebrew when
512 - /usr/local/bin is not on PATH, which has been corrected.
790 + Mechanically and systematically drop "extern" from function
791 + declarlation.
792 +
793 + Will merge to 'next'.
794 +
795 + This is the kind of code churn patch that causes heavy conflicts
796 + with multiple topics in flight, which causes conflicts in slightly
797 + different shape when it gets merged with them in different order.
798 + I've queued it moderately early in 'pu' for the night, and I am
799 + reasonably sure the merge of the topic itself is OK, but I do not
800 + have much confidence in the resolutions of conflicts with other
801 + topics later merged to 'pu'.
802 +
803 +
804 +* js/partial-clone-connectivity-check (2019-04-21) 1 commit
805 + (merged to 'next' on 2019-04-25 at ebd8b4bffd)
806 + + clone: do faster object check for partial clones
807 +
808 + During an initial "git clone --depth=..." partial clone, it is
809 + pointless to spend cycles for a large portion of the connectivity
810 + check that enumerates and skips promisor objects (which by
811 + definition is all objects fetched from the other side). This has
812 + been optimized out.
813
814 Will merge to 'master'.
815
816
517 -* js/misc-doc-fixes (2019-04-19) 8 commits
518 - - Turn `git serve` into a test helper
519 - - test-tool: handle the `-C <directory>` option just like `git`
520 - - check-docs: do not bother checking for legacy scripts' documentation
521 - - docs: exclude documentation for commands that have been excluded
522 - - check-docs: allow command-list.txt to contain excluded commands
523 - - help -a: do not list commands that are excluded from the build
524 - - Makefile: drop the NO_INSTALL variable
525 - - remote-testgit: move it into the support directory for t5801
817 +* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
818 + - send-email: honor transferencoding config option again
819
527 - "make check-docs", "git help -a", etc. did not account for cases
528 - where a particular build may deliberately omit some subcommands,
529 - which has been corrected.
820 + Since "git send-email" learned to take 'auto' as the value for the
821 + transfer-encoding, it by mistake stopped honoring the values given
822 + to the configuration variables sendemail.transferencoding and/or
823 + sendemail.<ident>.transferencoding. Attempt to correct this.
824
531 - Will merge to 'next'.
825 + Not quite.
826 + cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
827
828
534 -* nd/submodule-foreach-quiet (2019-04-15) 1 commit
535 - (merged to 'next' on 2019-04-22 at bf982bca7b)
536 - + submodule foreach: fix "<command> --quiet" not being respected
829 +* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
830 + (merged to 'next' on 2019-04-25 at e79464c054)
831 + + pack-objects: write objects packed to trace2
832
538 - "git submodule foreach <command> --quiet" did not pass the option
539 - down correctly, which has been corrected.
833 + The "git pack-objects" command learned to report the number of
834 + objects it packed via the trace2 mechanism.
835
836 Will merge to 'master'.
837
838
544 -* bs/sendemail-tighten-anything-by (2019-04-04) 1 commit
545 - (merged to 'next' on 2019-04-22 at 0a0680f234)
546 - + send-email: don't cc *-by lines with '-' prefix
839 +* js/misc-doc-fixes (2019-04-19) 8 commits
840 + (merged to 'next' on 2019-04-25 at 6898f709d0)
841 + + Turn `git serve` into a test helper
842 + + test-tool: handle the `-C <directory>` option just like `git`
843 + + check-docs: do not bother checking for legacy scripts' documentation
844 + + docs: exclude documentation for commands that have been excluded
845 + + check-docs: allow command-list.txt to contain excluded commands
846 + + help -a: do not list commands that are excluded from the build
847 + + Makefile: drop the NO_INSTALL variable
848 + + remote-testgit: move it into the support directory for t5801
849
548 - The recently added feature to add addresses that are on
549 - anything-by: trailers in 'git send-email' was found to be way too
550 - eager and considered nonsense strings as if they can be legitimate
551 - beginning of *-by: trailer. This has been tightened.
850 + "make check-docs", "git help -a", etc. did not account for cases
851 + where a particular build may deliberately omit some subcommands,
852 + which has been corrected.
853
854 Will merge to 'master'.
855
856
857 * dl/warn-tagging-a-tag (2019-04-12) 2 commits
557 - - tag: advise on nested tags
558 - - tag: fix formatting
858 + (merged to 'next' on 2019-04-25 at 8b966d7fe8)
859 + + tag: advise on nested tags
860 + + tag: fix formatting
861
862 "git tag" learned to give an advice suggesting it might be a
863 mistake when creating an annotated or signed tag that points at
864 another tag.
865
564 - Will merge to 'next'.
866 + Will merge to 'master'.
867
868
869 * jc/format-patch-delay-message-id (2019-04-05) 1 commit
@@ -576,47 +878,40 @@ of the repositories listed at
878 Needs tests.
879
880
579 -* jk/revision-rewritten-parents-in-prio-queue (2019-04-04) 1 commit
580 - (merged to 'next' on 2019-04-16 at bdc1465128)
581 - + revision: use a prio_queue to hold rewritten parents
582 -
583 - Performance fix for "rev-list --parents -- pathspec".
584 -
585 - Will merge to 'master'.
586 -
587 -
881 * tb/unexpected (2019-04-10) 7 commits
589 - - rev-list: detect broken root trees
590 - - rev-list: let traversal die when --missing is not in use
591 - - get_commit_tree(): return NULL for broken tree
592 - - list-objects.c: handle unexpected non-tree entries
593 - - list-objects.c: handle unexpected non-blob entries
594 - - t: introduce tests for unexpected object types
595 - - t: move 'hex2oct' into test-lib-functions.sh
882 + (merged to 'next' on 2019-04-25 at c49927fca0)
883 + + rev-list: detect broken root trees
884 + + rev-list: let traversal die when --missing is not in use
885 + + get_commit_tree(): return NULL for broken tree
886 + + list-objects.c: handle unexpected non-tree entries
887 + + list-objects.c: handle unexpected non-blob entries
888 + + t: introduce tests for unexpected object types
889 + + t: move 'hex2oct' into test-lib-functions.sh
890
891 Code tightening against a "wrong" object appearing where an object
892 of a different type is expected, instead of blindly assuming that
893 the connection between objects are correctly made.
894
601 - Will merge to 'next'.
895 + Will merge to 'master'.
896
897
898 * en/merge-directory-renames (2019-04-08) 15 commits
605 - - merge-recursive: switch directory rename detection default
606 - - merge-recursive: give callers of handle_content_merge() access to contents
607 - - merge-recursive: track information associated with directory renames
608 - - t6043: fix copied test description to match its purpose
609 - - merge-recursive: switch from (oid,mode) pairs to a diff_filespec
610 - - merge-recursive: cleanup handle_rename_* function signatures
611 - - merge-recursive: track branch where rename occurred in rename struct
612 - - merge-recursive: remove ren[12]_other fields from rename_conflict_info
613 - - merge-recursive: shrink rename_conflict_info
614 - - merge-recursive: move some struct declarations together
615 - - merge-recursive: use 'ci' for rename_conflict_info variable name
616 - - merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
617 - - merge-recursive: rename diff_filespec 'one' to 'o'
618 - - merge-recursive: rename merge_options argument from 'o' to 'opt'
619 - - Use 'unsigned short' for mode, like diff_filespec does
899 + (merged to 'next' on 2019-04-25 at fd5b4f57b4)
900 + + merge-recursive: switch directory rename detection default
901 + + merge-recursive: give callers of handle_content_merge() access to contents
902 + + merge-recursive: track information associated with directory renames
903 + + t6043: fix copied test description to match its purpose
904 + + merge-recursive: switch from (oid,mode) pairs to a diff_filespec
905 + + merge-recursive: cleanup handle_rename_* function signatures
906 + + merge-recursive: track branch where rename occurred in rename struct
907 + + merge-recursive: remove ren[12]_other fields from rename_conflict_info
908 + + merge-recursive: shrink rename_conflict_info
909 + + merge-recursive: move some struct declarations together
910 + + merge-recursive: use 'ci' for rename_conflict_info variable name
911 + + merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
912 + + merge-recursive: rename diff_filespec 'one' to 'o'
913 + + merge-recursive: rename merge_options argument from 'o' to 'opt'
914 + + Use 'unsigned short' for mode, like diff_filespec does
915
916 "git merge-recursive" backend recently learned a new heuristics to
917 infer file movement based on how other files in the same directory
@@ -627,114 +922,37 @@ of the repositories listed at
922 leave the renamed paths in higher/conflicted stages in the index so
923 that the user can examine and confirm the result.
924
630 - Will merge to 'next'.
631 -
632 -
633 -* jk/server-info-rabbit-hole (2019-04-16) 13 commits
634 - (merged to 'next' on 2019-04-16 at 3dded8be9a)
635 - + update_info_refs(): drop unused force parameter
636 - + server-info: drop objdirlen pointer arithmetic
637 - + server-info: drop nr_alloc struct member
638 - + server-info: use strbuf to read old info/packs file
639 - + server-info: simplify cleanup in parse_pack_def()
640 - + server-info: fix blind pointer arithmetic
641 - + http: simplify parsing of remote objects/info/packs
642 - + packfile: fix pack basename computation
643 - + midx: check both pack and index names for containment
644 - + t5319: drop useless --buffer from cat-file
645 - + t5319: fix bogus cat-file argument
646 - + pack-revindex: open index if necessary
647 - + packfile.h: drop extern from function declarations
648 -
649 - Code clean-up around a much-less-important-than-it-used-to-be
650 - update_server_info() funtion.
651 -
925 Will merge to 'master'.
926
927
928 * jt/clone-server-option (2019-04-18) 2 commits
656 - - clone: send server options when using protocol v2
657 - - transport: die if server options are unsupported
929 + (merged to 'next' on 2019-04-25 at 21f07cc85d)
930 + + clone: send server options when using protocol v2
931 + + transport: die if server options are unsupported
932
933 "git clone" learned a new --server-option option when talking over
934 the protocol version 2.
935
662 - Will merge to 'next'.
663 -
664 -
665 -* po/describe-not-necessarily-7 (2019-04-08) 1 commit
666 - (merged to 'next' on 2019-04-22 at 65b47ca73f)
667 - + describe doc: remove '7-char' abbreviation reference
668 -
669 - Docfix.
670 -
671 - Will merge to 'master'.
672 -
673 -
674 -* po/rerere-doc-fmt (2019-04-08) 1 commit
675 - (merged to 'next' on 2019-04-22 at 780c0d2450)
676 - + rerere doc: quote `rerere.enabled`
677 -
678 - Docfix.
679 -
680 - Will merge to 'master'.
681 -
682 -
683 -* sg/blame-in-bare-start-at-head (2019-04-08) 1 commit
684 - (merged to 'next' on 2019-04-22 at 159777c280)
685 - + blame: default to HEAD in a bare repo when no start commit is given
686 -
687 - "git blame -- path" in a non-bare repository starts blaming from
688 - the working tree, and the same command in a bare repository errors
689 - out because there is no working tree by definition. The command
690 - has been taught to instead start blaming from the commit at HEAD,
691 - which is more useful.
692 -
693 - Will merge to 'master'.
694 -
695 -
696 -* tg/ls-files-debug-format-fix (2019-04-08) 1 commit
697 - (merged to 'next' on 2019-04-22 at a5ac1ca49f)
698 - + ls-files: use correct format string
699 -
700 - Debugging code fix.
701 -
702 - Will merge to 'master'.
703 -
704 -
705 -* tz/doc-apostrophe-no-longer-needed (2019-04-10) 1 commit
706 - (merged to 'next' on 2019-04-22 at 8ff03863ce)
707 - + Documentation/git-show-branch: avoid literal {apostrophe}
708 -
709 - Doc formatting fix.
710 -
936 Will merge to 'master'.
937
938
939 * tz/git-svn-doc-markup-fix (2019-04-10) 1 commit
715 - - Documentation/git-svn: improve asciidoctor compatibility
940 + (merged to 'next' on 2019-04-25 at 3efaa6285c)
941 + + Documentation/git-svn: improve asciidoctor compatibility
942
943 Doc formatting fix.
944
719 - Will merge to 'next'.
720 -
721 -
722 -* js/t3301-unbreak-notes-test (2019-04-09) 1 commit
723 - (merged to 'next' on 2019-04-22 at a015b00bd9)
724 - + t3301: fix false negative
725 -
726 - Test fix.
727 -
945 Will merge to 'master'.
946
947
948 * ss/msvc-path-utils-fix (2019-04-09) 1 commit
732 - - MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
949 + (merged to 'next' on 2019-04-25 at ee2850da18)
950 + + MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
951
952 An earlier update for MinGW and Cygwin accidentally broke MSVC build,
953 which has been fixed.
954
737 - Will merge to 'next'.
955 + Will merge to 'master'.
956
957
958 * cc/multi-promisor (2019-04-15) 17 commits
@@ -755,7 +973,6 @@ of the repositories listed at
973 - fetch-object: make functions return an error code
974 - t0410: remove pipes after git commands
975 - Merge branch 'jt/batch-fetch-blobs-in-diff' into cc/multi-promisor
758 - (this branch uses jt/batch-fetch-blobs-in-diff.)
976
977 Teach the lazy clone machinery that there can be more than one
978 promisor remote and consult them in order when downloading missing
@@ -821,21 +1038,6 @@ of the repositories listed at
1038 cf. <20190411131218.19195-1-pclouds@gmail.com> (restore v2)
1039
1040
824 -* ab/gc-reflog (2019-04-01) 7 commits
825 - (merged to 'next' on 2019-04-16 at aa27f951a8)
826 - + gc: handle & check gc.reflogExpire config
827 - + reflog tests: assert lack of early exit with expiry="never"
828 - + reflog tests: test for the "points nowhere" warning
829 - + reflog tests: make use of "test_config" idiom
830 - + gc: refactor a "call me once" pattern
831 - + gc: convert to using the_hash_algo
832 - + gc: remove redundant check for gc_auto_threshold
833 -
834 - Fix various glitches in "git gc" around reflog handling.
835 -
836 - Will merge to 'master'.
837 -
838 -
1041 * ew/repack-with-bitmaps-by-default (2019-03-18) 3 commits
1042 - pack-objects: default to writing bitmap hash-cache
1043 - t5310: correctly remove bitmaps for jgit test
@@ -848,123 +1050,13 @@ of the repositories listed at
1050 Will merge to 'next'.
1051
1052
851 -* js/difftool-no-index (2019-03-18) 3 commits
852 - (merged to 'next' on 2019-04-16 at 7313f9ff18)
853 - + difftool: allow running outside Git worktrees with --no-index
854 - + parse-options: make OPT_ARGUMENT() more useful
855 - + difftool: remove obsolete (and misleading) comment
856 -
857 - "git difftool" can now run outside a repository.
858 -
859 - Will merge to 'master'.
860 -
861 -
862 -* pw/cherry-pick-continue (2019-03-18) 3 commits
863 - (merged to 'next' on 2019-04-16 at 1bfd7a7179)
864 - + cherry-pick --continue: remember options
865 - + cherry-pick: demonstrate option amnesia
866 - + sequencer: break some long lines
867 -
868 - "git cherry-pick --options A..B", after giving control back to the
869 - user to ask help resolving a conflicted step, did not honor the
870 - options it originally received, which has been corrected.
871 -
872 - Will merge to 'master'.
873 -
874 -
875 -* sg/test-atexit (2019-03-14) 11 commits
876 - (merged to 'next' on 2019-04-10 at 7839135291)
877 - + t9811-git-p4-label-import: fix pipeline negation
878 - + git p4 test: disable '-x' tracing in the p4d watchdog loop
879 - + git p4 test: simplify timeout handling
880 - + git p4 test: clean up the p4d cleanup functions
881 - + git p4 test: use 'test_atexit' to kill p4d and the watchdog process
882 - + t0301-credential-cache: use 'test_atexit' to stop the credentials helper
883 - + tests: use 'test_atexit' to stop httpd
884 - + git-daemon: use 'test_atexit` to stop 'git-daemon'
885 - + test-lib: introduce 'test_atexit'
886 - + t/lib-git-daemon: make sure to kill the 'git-daemon' process
887 - + test-lib: fix interrupt handling with 'dash' and '--verbose-log -x'
888 -
889 - Test framework update to more robustly clean up leftover files and
890 - processes after tests are done.
891 -
892 - Will merge to 'master'.
893 -
894 -
895 -* jc/format-patch-noclobber (2019-02-22) 1 commit
896 - - format-patch: --no-clobber refrains from overwriting output files
897 -
898 - "git format-patch" used to overwrite an existing patch/cover-letter
899 - file. A new "--no-clobber" option stops it.
900 -
901 - Undecided but inclined to discard.
902 -
903 -
904 -* jk/unused-params-even-more (2019-03-21) 13 commits
905 - (merged to 'next' on 2019-04-10 at 12edf8872f)
906 - + parse_opt_ref_sorting: always use with NONEG flag
907 - + pretty: drop unused strbuf from parse_padding_placeholder()
908 - + pretty: drop unused "type" parameter in needs_rfc2047_encoding()
909 - + parse-options: drop unused ctx parameter from show_gitcomp()
910 - + fetch_pack(): drop unused parameters
911 - + report_path_error(): drop unused prefix parameter
912 - + unpack-trees: drop unused error_type parameters
913 - + unpack-trees: drop name_entry from traverse_by_cache_tree()
914 - + test-date: drop unused "now" parameter from parse_dates()
915 - + update-index: drop unused prefix_length parameter from do_reupdate()
916 - + log: drop unused "len" from show_tagger()
917 - + log: drop unused rev_info from early output
918 - + revision: drop some unused "revs" parameters
919 -
920 - Code cleanup.
921 -
922 - Will merge to 'master'.
923 -
924 -
925 -* ab/commit-graph-fixes (2019-04-01) 8 commits
926 - (merged to 'next' on 2019-04-16 at 97f4ba02f0)
927 - + commit-graph: improve & i18n error messages
928 - + commit-graph write: don't die if the existing graph is corrupt
929 - + commit-graph verify: detect inability to read the graph
930 - + commit-graph: don't pass filename to load_commit_graph_one_fd_st()
931 - + commit-graph: don't early exit(1) on e.g. "git status"
932 - + commit-graph: fix segfault on e.g. "git status"
933 - + commit-graph tests: test a graph that's too small
934 - + commit-graph tests: split up corrupt_graph_and_verify()
935 -
936 - Code cleanup with more careful error checking before using data
937 - read from the commit-graph file.
938 -
939 - Will merge to 'master'.
940 -
941 -
942 -* ab/gc-docs (2019-04-08) 11 commits
943 - (merged to 'next' on 2019-04-22 at 02785d40f5)
944 - + gc docs: remove incorrect reference to gc.auto=0
945 - + gc docs: clarify that "gc" doesn't throw away referenced objects
946 - + gc docs: note "gc --aggressive" in "fast-import"
947 - + gc docs: downplay the usefulness of --aggressive
948 - + gc docs: note how --aggressive impacts --window & --depth
949 - + gc docs: fix formatting for "gc.writeCommitGraph"
950 - + gc docs: re-flow the "gc.*" section in "config"
951 - + gc docs: include the "gc.*" section from "config" in "gc"
952 - + gc docs: clean grammar for "gc.bigPackThreshold"
953 - + gc docs: stop noting "repack" flags
954 - + gc docs: modernize the advice for manually running "gc"
955 -
956 - Update docs around "gc".
957 -
958 - Will merge to 'master'.
959 -
960 -
961 -* ab/test-lib-pass-trace2-env (2019-04-01) 1 commit
962 - (merged to 'next' on 2019-04-16 at 4dad6d6d7a)
963 - + test-lib: whitelist GIT_TR2_* in the environment
1053 +* jc/format-patch-noclobber (2019-02-22) 1 commit
1054 + - format-patch: --no-clobber refrains from overwriting output files
1055
965 - Allow tracing of Git executable while running the testsuite.
1056 + "git format-patch" used to overwrite an existing patch/cover-letter
1057 + file. A new "--no-clobber" option stops it.
1058
967 - Will merge to 'master'.
1059 + Undecided but inclined to discard.
1060
1061
1062 * am/p4-branches-excludes (2019-04-02) 8 commits
@@ -982,54 +1074,12 @@ of the repositories listed at
1074 Is this ready for 'next'?
1075
1076
985 -* bc/hash-transition-16 (2019-04-01) 35 commits
986 - (merged to 'next' on 2019-04-16 at 8227fea6fa)
987 - + gitweb: make hash size independent
988 - + Git.pm: make hash size independent
989 - + read-cache: read data in a hash-independent way
990 - + dir: make untracked cache extension hash size independent
991 - + builtin/difftool: use parse_oid_hex
992 - + refspec: make hash size independent
993 - + archive: convert struct archiver_args to object_id
994 - + builtin/get-tar-commit-id: make hash size independent
995 - + get-tar-commit-id: parse comment record
996 - + hash: add a function to lookup hash algorithm by length
997 - + remote-curl: make hash size independent
998 - + http: replace sha1_to_hex
999 - + http: compute hash of downloaded objects using the_hash_algo
1000 - + http: replace hard-coded constant with the_hash_algo
1001 - + http-walker: replace sha1_to_hex
1002 - + http-push: remove remaining uses of sha1_to_hex
1003 - + http-backend: allow 64-character hex names
1004 - + http-push: convert to use the_hash_algo
1005 - + builtin/pull: make hash-size independent
1006 - + builtin/am: make hash size independent
1007 - + fast-import: replace sha1_to_hex
1008 - + fast-import: make hash-size independent
1009 - + builtin/name-rev: make hash-size independent
1010 - + object-store: rename and expand packed_git's sha1 member
1011 - + notes: replace sha1_to_hex
1012 - + notes: make hash size independent
1013 - + notes-merge: switch to use the_hash_algo
1014 - + submodule: avoid hard-coded constants
1015 - + pack-bitmap: switch hash tables to use struct object_id
1016 - + pack-bitmap: switch hard-coded constants to the_hash_algo
1017 - + pack-bitmap: replace sha1_to_hex
1018 - + pack-bitmap: convert struct stored_bitmap to object_id
1019 - + pack-bitmap: make bitmap header handling hash agnostic
1020 - + khash: move oid hash table definition
1021 - + t/lib-submodule-update: use appropriate length constant
1022 -
1023 - Conversion from unsigned char[20] to struct object_id continues.
1024 -
1025 - Will merge to 'master'.
1026 -
1027 -
1077 * cc/replace-graft-peel-tags (2019-04-15) 4 commits
1029 - - replace: peel tag when passing a tag first to --graft
1030 - - replace: peel tag when passing a tag as parent to --graft
1031 - - t6050: redirect expected error output to a file
1032 - - t6050: use test_line_count instead of wc -l
1078 + (merged to 'next' on 2019-04-25 at f8d0db27ba)
1079 + + replace: peel tag when passing a tag first to --graft
1080 + + replace: peel tag when passing a tag as parent to --graft
1081 + + t6050: redirect expected error output to a file
1082 + + t6050: use test_line_count instead of wc -l
1083
1084 When given a tag that points at a commit-ish, "git replace --graft"
1085 failed to peel the tag before writing a replace ref, which did not
@@ -1037,20 +1087,10 @@ of the repositories listed at
1087 mimick only allowed to replace one commit object with another.
1088 This has been fixed.
1089
1040 - Will merge to 'next'.
1041 -
1042 -
1043 -* dk/blame-keep-origin-blob (2019-04-03) 1 commit
1044 - (merged to 'next' on 2019-04-16 at 39679dde8b)
1045 - + blame.c: don't drop origin blobs as eagerly
1046 -
1047 - Performance fix around "git blame", especially in a linear history
1048 - (which is the norm we should optimize for).
1049 -
1090 Will merge to 'master'.
1091
1092
1053 -* dl/rebase-i-keep-base (2019-04-21) 6 commits
1093 +* dl/rebase-i-keep-base (2019-04-25) 6 commits
1094 - rebase: teach rebase --keep-base
1095 - rebase: fast-forward --fork-point in more cases
1096 - rebase: fast-forward --onto in more cases
@@ -1069,86 +1109,42 @@ of the repositories listed at
1109 Will merge to 'next'.
1110
1111
1072 -* en/fast-import-parsing-fix (2019-04-01) 5 commits
1073 - (merged to 'next' on 2019-04-16 at b318831bde)
1074 - + fast-import: fix erroneous handling of get-mark with empty orphan commits
1075 - + fast-import: only allow cat-blob requests where it makes sense
1076 - + fast-import: check most prominent commands first
1077 - + git-fast-import.txt: fix wording about where ls command can appear
1078 - + t9300: demonstrate bug with get-mark and empty orphan commits
1079 -
1080 - "git fast-import" update.
1081 -
1082 - Will merge to 'master'.
1083 -
1084 -
1112 * jh/trace2-sid-fix (2019-04-16) 10 commits
1086 - - trace2: update docs to describe system/global config settings
1087 - - trace2: make SIDs more unique
1088 - - trace2: clarify UTC datetime formatting
1089 - - trace2: report peak memory usage of the process
1090 - - trace2: use system/global config for default trace2 settings
1091 - - config: add read_very_early_config()
1092 - - trace2: find exec-dir before trace2 initialization
1093 - - trace2: add absolute elapsed time to start event
1094 - - trace2: refactor setting process starting time
1095 - - config: initialize opts structure in repo_read_config()
1113 + (merged to 'next' on 2019-04-25 at a5c08f1226)
1114 + + trace2: update docs to describe system/global config settings
1115 + + trace2: make SIDs more unique
1116 + + trace2: clarify UTC datetime formatting
1117 + + trace2: report peak memory usage of the process
1118 + + trace2: use system/global config for default trace2 settings
1119 + + config: add read_very_early_config()
1120 + + trace2: find exec-dir before trace2 initialization
1121 + + trace2: add absolute elapsed time to start event
1122 + + trace2: refactor setting process starting time
1123 + + config: initialize opts structure in repo_read_config()
1124
1125 Polishing of the new trace2 facility continues. The system-level
1126 configuration can specify site-wide trace2 settings, which can be
1127 overridden with per-user configuration and environment variables.
1128
1101 - Will merge to 'next'.
1129 + Will merge to 'master'.
1130 cf. <pull.169.v4.git.gitgitgadget@gmail.com> (v4)
1131
1132
1133 * js/trace2-to-directory (2019-03-22) 1 commit
1106 - - trace2: write to directory targets
1134 + (merged to 'next' on 2019-04-25 at 53adf71c41)
1135 + + trace2: write to directory targets
1136
1137 The trace2 tracing facility learned to auto-generate a filename
1138 when told to log to a directory.
1139
1111 - Will merge to 'next'.
1112 -
1113 -
1114 -* jt/batch-fetch-blobs-in-diff (2019-04-08) 2 commits
1115 - (merged to 'next' on 2019-04-22 at 0598bae567)
1116 - + diff: batch fetching of missing blobs
1117 - + sha1-file: support OBJECT_INFO_FOR_PREFETCH
1118 - (this branch is used by cc/multi-promisor.)
1119 -
1120 - While running "git diff" in a lazy clone, we can upfront know which
1121 - missing blobs we will need, instead of waiting for the on-demand
1122 - machinery to discover them one by one. Aim to achieve better
1123 - performance by batching the request for these promised blobs.
1124 -
1125 - Will merge to 'master'.
1126 -
1127 -
1128 -* jt/fetch-no-update-shallow-in-proto-v2 (2019-04-01) 3 commits
1129 - (merged to 'next' on 2019-04-16 at 05c5ebe471)
1130 - + fetch-pack: respect --no-update-shallow in v2
1131 - + fetch-pack: call prepare_shallow_info only if v0
1132 - + Merge branch 'jt/test-protocol-version' into jt/fetch-no-update-shallow-in-proto-v2
1133 -
1134 - Fix for protocol v2 support in "git fetch-pack" of shallow clones.
1135 -
1136 - Will merge to 'master'.
1137 -
1138 -
1139 -* jt/fetch-pack-wanted-refs-optim (2019-04-01) 1 commit
1140 - (merged to 'next' on 2019-04-16 at 051f6bd38a)
1141 - + fetch-pack: binary search when storing wanted-refs
1142 -
1143 - Performance fix around "git fetch" that grabs many refs.
1144 -
1140 Will merge to 'master'.
1141
1142
1143 * km/empty-repo-is-still-a-repo (2019-04-10) 3 commits
1149 - - add: error appropriately on repository with no commits
1150 - - dir: do not traverse repositories with no commits
1151 - - submodule: refuse to add repository with no commits
1144 + (merged to 'next' on 2019-04-25 at bb3d4406a5)
1145 + + add: error appropriately on repository with no commits
1146 + + dir: do not traverse repositories with no commits
1147 + + submodule: refuse to add repository with no commits
1148
1149 Running "git add" on a repository created inside the current
1150 repository is an explicit indication that the user wants to add it
@@ -1158,61 +1154,6 @@ of the repositories listed at
1154 repository, which is not what the user wants. These problems are
1155 being addressed.
1156
1161 - Will merge to 'next'.
1162 -
1163 -
1164 -* nd/checkout-m (2019-03-24) 4 commits
1165 - (merged to 'next' on 2019-04-16 at 4d7c322bed)
1166 - + checkout: prevent losing staged changes with --merge
1167 - + read-tree: add --quiet
1168 - + unpack-trees: rename "gently" flag to "quiet"
1169 - + unpack-trees: keep gently check inside add_rejected_path
1170 -
1171 - "git checkout -m <other>" was about carrying the differences
1172 - between HEAD and the working-tree files forward while checking out
1173 - another branch, and ignored the differences between HEAD and the
1174 - index. The command has been taught to abort when the index and the
1175 - HEAD are different.
1176 -
1177 - Will merge to 'master'.
1178 -
1179 -
1180 -* nd/commit-a-with-paths-msg-update (2019-03-22) 1 commit
1181 - (merged to 'next' on 2019-04-16 at a36c712b39)
1182 - + commit: improve error message in "-a <paths>" case
1183 -
1184 - The message given when "git commit -a <paths>" errors out has been
1185 - updated.
1186 -
1187 - Will merge to 'master'.
1188 -
1189 -
1190 -* nd/diff-parseopt-4 (2019-03-24) 20 commits
1191 - (merged to 'next' on 2019-04-10 at 893b135f10)
1192 - + am: avoid diff_opt_parse()
1193 - + diff --no-index: use parse_options() instead of diff_opt_parse()
1194 - + range-diff: use parse_options() instead of diff_opt_parse()
1195 - + diff.c: allow --no-color-moved-ws
1196 - + diff-parseopt: convert --color-moved-ws
1197 - + diff-parseopt: convert --[no-]color-moved
1198 - + diff-parseopt: convert --inter-hunk-context
1199 - + diff-parseopt: convert --no-prefix
1200 - + diff-parseopt: convert --line-prefix
1201 - + diff-parseopt: convert --[src|dst]-prefix
1202 - + diff-parseopt: convert --[no-]abbrev
1203 - + diff-parseopt: convert --diff-filter
1204 - + diff-parseopt: convert --find-object
1205 - + diff-parseopt: convert -O
1206 - + diff-parseopt: convert --pickaxe-all|--pickaxe-regex
1207 - + diff-parseopt: convert -S|-G
1208 - + diff-parseopt: convert -l
1209 - + diff-parseopt: convert -z
1210 - + diff-parseopt: convert --ita-[in]visible-in-index
1211 - + diff-parseopt: convert --ws-error-highlight
1212 -
1213 - Fourth batch to teach the diff machinery to use the parse-options
1214 - API.
1215 -
1157 Will merge to 'master'.
1158
1159
@@ -1233,46 +1174,47 @@ of the repositories listed at
1174
1175
1176 * nd/sha1-name-c-wo-the-repository (2019-04-16) 34 commits
1236 - - sha1-name.c: remove the_repo from get_oid_mb()
1237 - - sha1-name.c: remove the_repo from other get_oid_*
1238 - - sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
1239 - - submodule-config.c: use repo_get_oid for reading .gitmodules
1240 - - sha1-name.c: add repo_get_oid()
1241 - - sha1-name.c: remove the_repo from get_oid_with_context_1()
1242 - - sha1-name.c: remove the_repo from resolve_relative_path()
1243 - - sha1-name.c: remove the_repo from diagnose_invalid_index_path()
1244 - - sha1-name.c: remove the_repo from handle_one_ref()
1245 - - sha1-name.c: remove the_repo from get_oid_1()
1246 - - sha1-name.c: remove the_repo from get_oid_basic()
1247 - - sha1-name.c: remove the_repo from get_describe_name()
1248 - - sha1-name.c: remove the_repo from get_oid_oneline()
1249 - - sha1-name.c: add repo_interpret_branch_name()
1250 - - sha1-name.c: remove the_repo from interpret_branch_mark()
1251 - - sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
1252 - - sha1-name.c: remove the_repo from get_short_oid()
1253 - - sha1-name.c: add repo_for_each_abbrev()
1254 - - sha1-name.c: store and use repo in struct disambiguate_state
1255 - - sha1-name.c: add repo_find_unique_abbrev_r()
1256 - - sha1-name.c: remove the_repo from find_abbrev_len_packed()
1257 - - sha1-name.c: remove the_repo from sort_ambiguous()
1258 - - commit.c: add repo_get_commit_tree()
1259 - - commit.cocci: refactor code, avoid double rewrite
1260 - - refs.c: remove the_repo from read_ref_at()
1261 - - refs.c: add repo_dwim_log()
1262 - - refs.c: add repo_dwim_ref()
1263 - - refs.c: remove the_repo from expand_ref()
1264 - - refs.c: remove the_repo from substitute_branch_name()
1265 - - refs.c: add refs_shorten_unambiguous_ref()
1266 - - refs.c: add refs_ref_exists()
1267 - - packfile.c: add repo_approximate_object_count()
1268 - - builtin rebase: use oideq()
1269 - - builtin rebase: use FREE_AND_NULL
1177 + (merged to 'next' on 2019-04-25 at d826918329)
1178 + + sha1-name.c: remove the_repo from get_oid_mb()
1179 + + sha1-name.c: remove the_repo from other get_oid_*
1180 + + sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
1181 + + submodule-config.c: use repo_get_oid for reading .gitmodules
1182 + + sha1-name.c: add repo_get_oid()
1183 + + sha1-name.c: remove the_repo from get_oid_with_context_1()
1184 + + sha1-name.c: remove the_repo from resolve_relative_path()
1185 + + sha1-name.c: remove the_repo from diagnose_invalid_index_path()
1186 + + sha1-name.c: remove the_repo from handle_one_ref()
1187 + + sha1-name.c: remove the_repo from get_oid_1()
1188 + + sha1-name.c: remove the_repo from get_oid_basic()
1189 + + sha1-name.c: remove the_repo from get_describe_name()
1190 + + sha1-name.c: remove the_repo from get_oid_oneline()
1191 + + sha1-name.c: add repo_interpret_branch_name()
1192 + + sha1-name.c: remove the_repo from interpret_branch_mark()
1193 + + sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
1194 + + sha1-name.c: remove the_repo from get_short_oid()
1195 + + sha1-name.c: add repo_for_each_abbrev()
1196 + + sha1-name.c: store and use repo in struct disambiguate_state
1197 + + sha1-name.c: add repo_find_unique_abbrev_r()
1198 + + sha1-name.c: remove the_repo from find_abbrev_len_packed()
1199 + + sha1-name.c: remove the_repo from sort_ambiguous()
1200 + + commit.c: add repo_get_commit_tree()
1201 + + commit.cocci: refactor code, avoid double rewrite
1202 + + refs.c: remove the_repo from read_ref_at()
1203 + + refs.c: add repo_dwim_log()
1204 + + refs.c: add repo_dwim_ref()
1205 + + refs.c: remove the_repo from expand_ref()
1206 + + refs.c: remove the_repo from substitute_branch_name()
1207 + + refs.c: add refs_shorten_unambiguous_ref()
1208 + + refs.c: add refs_ref_exists()
1209 + + packfile.c: add repo_approximate_object_count()
1210 + + builtin rebase: use oideq()
1211 + + builtin rebase: use FREE_AND_NULL
1212
1213 Further code clean-up to allow the lowest level of name-to-object
1214 mapping layer to work with a passed-in repository other than the
1215 default one.
1216
1275 - Will merge to 'next'.
1217 + Will merge to 'master'.
1218
1219
1220 * pw/rebase-i-internal (2019-04-19) 13 commits
@@ -1289,7 +1231,6 @@ of the repositories listed at
1231 - rebase: don't translate trace strings
1232 - sequencer: always discard index after checkout
1233 - Merge branch 'ag/sequencer-reduce-rewriting-todo' into pw/rebase-i-internal
1292 - (this branch uses ag/sequencer-reduce-rewriting-todo.)
1234
1235 The internal implementation of "git rebase -i" has been updated to
1236 avoid forking a separate "rebase--interactive" process.
@@ -1297,29 +1238,6 @@ of the repositories listed at
1238 Will merge to 'next'.
1239
1240
1300 -* sg/index-pack-progress (2019-04-01) 1 commit
1301 - (merged to 'next' on 2019-04-16 at a10bfdd950)
1302 - + index-pack: show progress while checking objects
1303 -
1304 - A progress indicator has been added to the "index-pack" step, which
1305 - often makes users wait for completion during "git clone".
1306 -
1307 - Will merge to 'master'.
1308 -
1309 -
1310 -* sg/overlong-progress-fix (2019-04-15) 4 commits
1311 - (merged to 'next' on 2019-04-22 at 69921cdf09)
1312 - + progress: break too long progress bar lines
1313 - + progress: clear previous progress update dynamically
1314 - + progress: assemble percentage and counters in a strbuf before printing
1315 - + progress: make display_progress() return void
1316 -
1317 - Updating the display with progress message has been cleaned up to
1318 - deal better with overlong messages.
1319 -
1320 - Will merge to 'master'.
1321 -
1322 -
1241 * nd/worktree-name-sanitization (2019-03-20) 2 commits
1242 - SQUASH???
1243 - worktree add: sanitize worktree names
@@ -1329,30 +1247,8 @@ of the repositories listed at
1247 must be a valid refname component. The code now sanitizes the names
1248 given to worktrees, to make sure these refs are well-formed.
1249
1332 -
1333 -* bp/post-index-change-hook (2019-02-15) 1 commit
1334 - (merged to 'next' on 2019-03-11 at cb96d1d7c4)
1335 - + read-cache: add post-index-change hook
1336 -
1337 - Originally merged to 'next' on 2019-02-23
1338 -
1339 - A new hook "post-index-change" is called when the on-disk index
1340 - file changes, which can help e.g. a virtualized working tree
1341 - implementation.
1342 -
1343 - Will merge to 'master'.
1344 -
1345 -
1346 -* dl/submodule-set-branch (2019-04-10) 3 commits
1347 - (merged to 'next' on 2019-04-22 at 3b640715ae)
1348 - + submodule: teach set-branch subcommand
1349 - + submodule--helper: teach config subcommand --unset
1350 - + git-submodule.txt: "--branch <branch>" option defaults to 'master'
1351 -
1352 - "git submodule" learns "set-branch" subcommand that allows the
1353 - submodule.*.branch settings to be modified.
1354 -
1355 - Will merge to 'master'.
1250 + I am inclined to squash the fix at the tip in and merge the result
1251 + to 'next'. Opinions?
1252
1253
1254 * dm/some-stdio-functions-are-macro-on-freebsd (2019-02-01) 1 commit
@@ -1365,20 +1261,17 @@ of the repositories listed at
1261 cf. <49B9198C-53E5-42BD-8834-B1EDEB3332CB@usask.ca>
1262
1263
1368 -* ds/commit-graph-format-v2 (2019-01-29) 8 commits
1369 - - SQUASH : misnamed variables and style fix
1370 - - commit-graph: test verifying a corrupt v2 header
1264 +* ds/commit-graph-format-v2 (2019-04-25) 5 commits
1265 - commit-graph: implement file format version 2
1266 - commit-graph: add --version=<n> option
1267 - commit-graph: create new version flags
1268 - commit-graph: collapse parameters into flags
1269 - commit-graph: return with errors during write
1376 - - Merge branch 'bc/sha-256' into ds/commit-graph-format-v2
1270
1271 Introduce version 2 of the commit-graph format to correct
1272 deficiency in the initial version.
1273
1381 - Needs update before merging to 'next'.
1274 + cf. <pull.112.v2.git.gitgitgadget@gmail.com> (v2)
1275
1276
1277 * br/blame-ignore (2019-04-14) 6 commits
@@ -1411,16 +1304,17 @@ of the repositories listed at
1304
1305
1306 * dl/merge-cleanup-scissors-fix (2019-04-19) 10 commits
1414 - - cherry-pick/revert: add scissors line on merge conflict
1415 - - sequencer.c: save and restore cleanup mode
1416 - - merge: add scissors line on merge conflict
1417 - - merge: cleanup messages like commit
1418 - - parse-options.h: extract common --cleanup option
1419 - - commit: extract cleanup_mode functions to sequencer
1420 - - t7502: clean up style
1421 - - t7604: clean up style
1422 - - t3507: clean up style
1423 - - t7600: clean up style
1307 + (merged to 'next' on 2019-04-25 at 2014eef6b1)
1308 + + cherry-pick/revert: add scissors line on merge conflict
1309 + + sequencer.c: save and restore cleanup mode
1310 + + merge: add scissors line on merge conflict
1311 + + merge: cleanup messages like commit
1312 + + parse-options.h: extract common --cleanup option
1313 + + commit: extract cleanup_mode functions to sequencer
1314 + + t7502: clean up style
1315 + + t7604: clean up style
1316 + + t3507: clean up style
1317 + + t7600: clean up style
1318 (this branch uses pw/sequencer-cleanup-with-signoff-x-fix.)
1319
1320 The list of conflicted paths shown in the editor while concluding a
@@ -1429,7 +1323,7 @@ of the repositories listed at
1323 out just like the list of updated paths and other information to
1324 help the user explain the merge better.
1325
1432 - Will merge to 'next'.
1326 + Will merge to 'master'.
1327
1328
1329 * jn/unknown-index-extensions (2018-11-21) 2 commits
@@ -1440,50 +1334,3 @@ of the repositories listed at
1334 exist is getting revamped.
1335
1336 Expecting a reroll.
1443 -
1444 -
1445 -* ag/sequencer-reduce-rewriting-todo (2019-03-07) 18 commits
1446 - (merged to 'next' on 2019-04-10 at 7eab7c7800)
1447 - + rebase--interactive: move transform_todo_file()
1448 - + sequencer: use edit_todo_list() in complete_action()
1449 - + rebase-interactive: rewrite edit_todo_list() to handle the initial edit
1450 - + rebase-interactive: append_todo_help() changes
1451 - + rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
1452 - + sequencer: refactor skip_unnecessary_picks() to work on a todo_list
1453 - + rebase--interactive: move rearrange_squash_in_todo_file()
1454 - + rebase--interactive: move sequencer_add_exec_commands()
1455 - + sequencer: change complete_action() to use the refactored functions
1456 - + sequencer: make sequencer_make_script() write its script to a strbuf
1457 - + sequencer: refactor rearrange_squash() to work on a todo_list
1458 - + sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
1459 - + sequencer: refactor check_todo_list() to work on a todo_list
1460 - + sequencer: introduce todo_list_write_to_file()
1461 - + sequencer: refactor transform_todos() to work on a todo_list
1462 - + sequencer: remove the 'arg' field from todo_item
1463 - + sequencer: make the todo_list structure public
1464 - + sequencer: changes in parse_insn_buffer()
1465 - (this branch is used by pw/rebase-i-internal.)
1466 -
1467 - The scripted version of "git rebase -i" wrote and rewrote the todo
1468 - list many times during a single step of its operation, and the
1469 - recent C-rewrite made a faithful conversion of the logic to C. The
1470 - implementation has been updated to carry necessary information
1471 - around in-core to avoid rewriting the same file over and over
1472 - unnecessarily.
1473 -
1474 - Will merge to 'master'.
1475 - cf. <20190305191805.13561-1-alban.gruin@gmail.com> (v8)
1476 -
1477 ---------------------------------------------------
1478 -[Discarded]
1479 -
1480 -* js/rev-list-exclude-promisor-objects (2019-04-09) 1 commit
1481 - . rev-list: exclude promisor objects at walk time
1482 -
1483 - "git rev-list --exclude-promisor-objects" learned not to bother
1484 - enumerating all promisor objects, and instead filter these objects
1485 - at walk time for performance.
1486 -
1487 - Discarded; js/partial-clone-connectivity-check replaces this.
1488 - cf. <9856e7fc74f51b60ae162cbed3f5c0cf8c603222.1554757275.git.steadmon@google.com> (v3)
1489 - cf. <20190413053434.GA31884@sigill.intra.peff.net>