What's cooking (2018/06 #07)

Junio C Hamano committed Jun 28, 2018 at 14:27 UTC be70464a91c93a321dc16707dec820870df970d2
1 file changed +394 -452
whats-cooking.txt
+394 -452
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jun 2018, #06; Mon, 25)
4 -X-master-at: ed843436dd4924c10669820cc73daf50f0b4dabd
5 -X-next-at: fe4b3013947290a493c4417c35793593612e592c
3 +Subject: What's cooking in git.git (Jun 2018, #07; Thu, 28)
4 +X-master-at: e3331758f12da22f4103eec7efe1b5304a9be5e9
5 +X-next-at: 9cd7c0d54aa2ac12712fd5611825c618efdaf1e0
6
7 -What's cooking in git.git (Jun 2018, #06; Mon, 25)
7 +What's cooking in git.git (Jun 2018, #07; Thu, 28)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,18 +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 -Git 2.18 turned out to be an unusually large release in the recent
16 -history, with 900+ individual changes, compared to ~500 for a few
17 -releases before that. Thanks, everybody who participated.
18 -
19 -The tip of 'next' hasn't been rewound yet, but I've already reverted
20 -merges of a few topics from there to give them a fresh restart.
21 -
22 -I haven't annotated many topics still in 'pu' with short-term plans
23 -and my assessment on their done-ness. Comments and review summaries
24 -to help deciding are appreciated. I'd like to start accepting new
25 -topics only after getting the classification more-or-less right for
26 -the topics already in flight.
15 +The tip of 'next' has been rewound and it currently has only 4
16 +topics. Quite a many topics are cooking in 'pu' and need to be
17 +sifted into good bins (for 'next') and the remainder. Help is
18 +appreciated in that area ;-)
19
20 You can find the changes described here in the integration branches
21 of the repositories listed at
@@ -33,363 +25,243 @@ of the repositories listed at
25 --------------------------------------------------
26 [Graduated to "master"]
27
36 -* ag/rebase-p (2018-06-01) 4 commits
37 - (merged to 'next' on 2018-06-13 at dd6f8a51d7)
38 - + rebase: remove -p code from git-rebase--interactive.sh
39 - + rebase: use the new git-rebase--preserve-merges.sh
40 - + rebase: strip unused code in git-rebase--preserve-merges.sh
41 - + rebase: introduce a dedicated backend for --preserve-merges
42 - (this branch is used by ag/rebase-i-append-todo-help and ag/rebase-i-rewrite-todo.)
28 +* ab/refspec-init-fix (2018-06-11) 3 commits
29 + (merged to 'next' on 2018-06-13 at 91d71d8435)
30 + + refspec: initalize `refspec_item` in `valid_fetch_refspec()`
31 + + refspec: add back a refspec_item_init() function
32 + + refspec: s/refspec_item_init/&_or_die/g
33
44 - Separate "rebase -p" codepath out of "rebase -i" implementation to
45 - slim down the latter and make it easier to manage.
34 + Make refspec parsing codepath more robust.
35
36
48 -* cc/tests-without-assuming-ref-files-backend (2018-06-04) 1 commit
49 - (merged to 'next' on 2018-06-13 at 7e2f74431c)
50 - + t9104: kosherly remove remote refs
51 -
52 - Instead of mucking with filesystem directly, use plumbing commands
53 - update-ref etc. to manipulate the refs in the tests.
54 -
55 -
56 -* ds/commit-graph-lockfile-fix (2018-05-22) 1 commit
57 - (merged to 'next' on 2018-05-24 at 3d12a02b0c)
58 - + commit-graph: fix UX issue when .lock file exists
59 - (this branch is used by ds/commit-graph-fsck; uses ds/generation-numbers.)
60 -
61 - Update to ds/generation-numbers topic.
62 -
63 -
64 -* ds/generation-numbers (2018-05-22) 11 commits
65 - (merged to 'next' on 2018-05-24 at 56fc38a1b6)
66 - + commit-graph.txt: update design document
67 - + merge: check config before loading commits
68 - + commit: use generation number in remove_redundant()
69 - + commit: add short-circuit to paint_down_to_common()
70 - + commit: use generation numbers for in_merge_bases()
71 - + ref-filter: use generation number for --contains
72 - + commit-graph: always load commit-graph information
73 - + commit: use generations in paint_down_to_common()
74 - + commit-graph: compute generation numbers
75 - + commit: add generation number to struct commit
76 - + ref-filter: fix outdated comment on in_commit_list
77 - (this branch is used by ds/commit-graph-fsck and ds/commit-graph-lockfile-fix.)
78 -
79 - A recently added "commit-graph" datafile has learned to store
80 - pre-computed generation numbers to speed up the decisions to stop
81 - history traversal.
82 -
83 -
84 -* en/merge-recursive-tests (2018-05-28) 5 commits
85 - (merged to 'next' on 2018-06-01 at 8490b560b4)
86 - + t6036: prefer test_when_finished to manual cleanup in following test
87 - + t6036, t6042: prefer test_cmp to sequences of test
88 - + t6036, t6042: prefer test_path_is_file, test_path_is_missing
89 - + t6036, t6042: use test_line_count instead of wc -l
90 - + t6036, t6042: use test_create_repo to keep tests independent
91 -
92 - Clean up tests in t6xxx series about 'merge' command.
93 -
94 -
95 -* en/rename-directory-detection-reboot (2018-06-18) 1 commit
96 - (merged to 'next' on 2018-06-18 at 95c454d3f4)
97 - + merge-recursive: use xstrdup() instead of fixed buffer
98 -
99 - Newly added codepath in merge-recursive had potential buffer
100 - overrun, which has been fixed.
37 +* as/safecrlf-quiet-fix (2018-06-11) 1 commit
38 + (merged to 'next' on 2018-06-13 at b163674843)
39 + + config.c: fix regression for core.safecrlf false
40
41 + Fix for 2.17-era regression around `core.safecrlf`.
42
103 -* jk/show-index (2018-05-29) 2 commits
104 - (merged to 'next' on 2018-06-01 at 4b3382d994)
105 - + show-index: update documentation for index v2
106 - + make show-index a builtin
107 -
108 - Modernize a less often used command.
109 -
110 -
111 -* ls/complete-remote-update-names (2018-06-01) 1 commit
112 - (merged to 'next' on 2018-06-13 at 86b4d23278)
113 - + completion: complete remote names too
114 -
115 - "git remote update" can take both a single remote nickname and a
116 - nickname for remote groups, and the completion script (in contrib/)
117 - has been taught about it.
118 -
119 -
120 -* nd/commit-util-to-slab (2018-05-21) 15 commits
121 - (merged to 'next' on 2018-05-24 at bb5643d75c)
122 - + commit.h: delete 'util' field in struct commit
123 - + merge: use commit-slab in merge remote desc instead of commit->util
124 - + log: use commit-slab in prepare_bases() instead of commit->util
125 - + show-branch: note about its object flags usage
126 - + show-branch: use commit-slab for commit-name instead of commit->util
127 - + name-rev: use commit-slab for rev-name instead of commit->util
128 - + bisect.c: use commit-slab for commit weight instead of commit->util
129 - + revision.c: use commit-slab for show_source
130 - + sequencer.c: use commit-slab to associate todo items to commits
131 - + sequencer.c: use commit-slab to mark seen commits
132 - + shallow.c: use commit-slab for commit depth instead of commit->util
133 - + describe: use commit-slab for commit names instead of commit->util
134 - + blame: use commit-slab for blame suspects instead of commit->util
135 - + commit-slab: support shared commit-slab
136 - + commit-slab.h: code split
137 -
138 - The in-core "commit" object had an all-purpose "void *util" field,
139 - which was tricky to use especially in library-ish part of the
140 - code. All of the existing uses of the field has been migrated to a
141 - more dedicated "commit-slab" mechanism and the field is eliminated.
142 -
143 -
144 -* nd/complete-config-vars (2018-05-29) 13 commits
145 - (merged to 'next' on 2018-06-13 at c2dd5546d0)
146 - + completion: complete general config vars in two steps
147 - + log-tree: allow to customize 'grafted' color
148 - + completion: support case-insensitive config vars
149 - + completion: keep other config var completion in camelCase
150 - + completion: drop the hard coded list of config vars
151 - + am: move advice.amWorkDir parsing back to advice.c
152 - + advice: keep config name in camelCase in advice_config[]
153 - + fsck: produce camelCase config key names
154 - + help: add --config to list all available config
155 - + fsck: factor out msg_id_info[] lazy initialization code
156 - + grep: keep all colors in an array
157 - + Add and use generic name->id mapping code for color slot parsing
158 - + Merge branch 'nd/command-list' into nd/complete-config-vars
159 -
160 - Continuing with the idea to programatically enumerate various
161 - pieces of data required for command line completion, teach the
162 - codebase to report the list of configuration variables
163 - subcommands care about to help complete them.
164 -
165 -
166 -* nd/diff-apply-ita (2018-05-29) 4 commits
167 - (merged to 'next' on 2018-05-30 at f98728de81)
168 - + apply: add --intent-to-add
169 - + t2203: add a test about "diff HEAD" case
170 - + diff: turn --ita-invisible-in-index on by default
171 - + diff: ignore --ita-[in]visible-in-index when diffing worktree-to-tree
172 -
173 - "git diff" compares the index and the working tree. For paths
174 - added with intent-to-add bit, the command shows the full contents
175 - of them as added, but the paths themselves were not marked as new
176 - files. They are now shown as new by default.
177 -
178 - "git apply" learned the "--intent-to-add" option so that an
179 - otherwise working-tree-only application of a patch will add new
180 - paths to the index marked with the "intent-to-add" bit.
181 -
182 -
183 -* nd/reject-empty-shallow-request (2018-06-04) 1 commit
184 - (merged to 'next' on 2018-06-13 at d6b6a1c3a7)
185 - + upload-pack: reject shallow requests that would return nothing
186 -
187 - "git fetch --shallow-since=<cutoff>" that specifies the cut-off
188 - point that is newer than the existing history used to end up
189 - grabbing the entire history. Such a request now errors out.
190 -
191 -
192 -* pc/submodule-helper-foreach (2018-05-11) 4 commits
193 - (merged to 'next' on 2018-05-22 at f22659ad46)
194 - + submodule: port submodule subcommand 'foreach' from shell to C
195 - + submodule foreach: document variable '$displaypath'
196 - + submodule foreach: document '$sm_path' instead of '$path'
197 - + submodule foreach: correct '$path' in nested submodules from a subdirectory
198 -
199 - The bulk of "git submodule foreach" has been rewritten in C.
200 -
201 -
202 -* sb/object-store-alloc (2018-05-16) 13 commits
203 - (merged to 'next' on 2018-06-13 at 2868c2db9d)
204 - + alloc: allow arbitrary repositories for alloc functions
205 - + object: allow create_object to handle arbitrary repositories
206 - + object: allow grow_object_hash to handle arbitrary repositories
207 - + alloc: add repository argument to alloc_commit_index
208 - + alloc: add repository argument to alloc_report
209 - + alloc: add repository argument to alloc_object_node
210 - + alloc: add repository argument to alloc_tag_node
211 - + alloc: add repository argument to alloc_commit_node
212 - + alloc: add repository argument to alloc_tree_node
213 - + alloc: add repository argument to alloc_blob_node
214 - + object: add repository argument to grow_object_hash
215 - + object: add repository argument to create_object
216 - + repository: introduce parsed objects field
217 - (this branch is used by sb/object-store-grafts.)
218 -
219 - The conversion to pass "the_repository" and then "a_repository"
220 - throughout the object access API continues.
43
44 +* jc/clean-after-sanity-tests (2018-06-15) 1 commit
45 + (merged to 'next' on 2018-06-22 at 2df77b8af9)
46 + + tests: clean after SANITY tests
47
223 -* sb/plug-misc-leaks (2018-06-04) 5 commits
224 - (merged to 'next' on 2018-06-13 at bf68cabe28)
225 - + SQUASH: tentatively cast const-ness away when calling free()
226 - + sequencer.c: plug mem leak in git_sequencer_config
227 - (merged to 'next' on 2018-06-04 at fbefac1c7a)
228 - + sequencer.c: plug leaks in do_pick_commit
229 - + submodule--helper: plug mem leak in print_default_remote
230 - + refs/packed-backend.c: close fd of empty file
48 + test cleanup.
49
232 - Misc leak plugging.
50
51 +* jh/partial-clone (2018-06-12) 1 commit
52 + (merged to 'next' on 2018-06-13 at 818f864b0c)
53 + + list-objects: check if filter is NULL before using
54
235 -* sg/update-ref-stdin-cleanup (2018-06-04) 1 commit
236 - (merged to 'next' on 2018-06-13 at 2b9924760d)
237 - + update-ref --stdin: use skip_prefix()
55 + The recent addition of "partial clone" experimental feature kicked
56 + in when it shouldn't, namely, when there is no partial-clone filter
57 + defined even if extensions.partialclone is set.
58
239 - Code cleanup.
59 +
60 +* jk/fetch-all-peeled-fix (2018-06-13) 2 commits
61 + (merged to 'next' on 2018-06-13 at 1333bb9d90)
62 + + fetch-pack: test explicitly that --all can fetch tag references pointing to non-commits
63 + + fetch-pack: don't try to fetch peel values with --all
64 +
65 + "git fetch-pack --all" used to unnecessarily fail upon seeing an
66 + annotated tag that points at an object other than a commit.
67 +
68 +
69 +* ms/send-pack-honor-config (2018-06-12) 1 commit
70 + (merged to 'next' on 2018-06-13 at e2cd933715)
71 + + builtin/send-pack: populate the default configs
72 +
73 + "git send-pack --signed" (hence "git push --signed" over the http
74 + transport) did not read user ident from the config mechanism to
75 + determine whom to sign the push certificate as, which has been
76 + corrected.
77 +
78 +
79 +* nd/completion-negation (2018-06-11) 3 commits
80 + (merged to 'next' on 2018-06-19 at a3be59b450)
81 + + completion: collapse extra --no-.. options
82 + + completion: suppress some -no- options
83 + + parse-options: option to let --git-completion-helper show negative form
84 +
85 + Continuing with the idea to programmatically enumerate various
86 + pieces of data required for command line completion, the codebase
87 + has been taught to enumerate options prefixed with "--no-" to
88 + negate them.
89 +
90 +
91 +* pw/add-p-recount (2018-06-11) 1 commit
92 + (merged to 'next' on 2018-06-19 at 1880ecc3f1)
93 + + add -p: fix counting empty context lines in edited patches
94 +
95 + When user edits the patch in "git add -p" and the user's editor is
96 + set to strip trailing whitespaces indiscriminately, an empty line
97 + that is unchanged in the patch would become completely empty
98 + (instead of a line with a sole SP on it). The code introduced in
99 + Git 2.17 timeframe failed to parse such a patch, but now it learned
100 + to notice the situation and cope with it.
101 +
102 +
103 +* sb/fix-fetching-moved-submodules (2018-06-14) 2 commits
104 + (merged to 'next' on 2018-06-22 at 16039dc62a)
105 + + t5526: test recursive submodules when fetching moved submodules
106 + + submodule: fix NULL correctness in renamed broken submodules
107 +
108 + The code to try seeing if a fetch is necessary in a submodule
109 + during a fetch with --recurse-submodules got confused when the path
110 + to the submodule was changed in the range of commits in the
111 + superproject, sometimes showing "(null)". This has been corrected.
112 +
113 +
114 +* sg/gpg-tests-fix (2018-06-11) 2 commits
115 + (merged to 'next' on 2018-06-13 at f3a05f1c41)
116 + + tests: make forging GPG signed commits and tags more robust
117 + + t7510-signed-commit: use 'test_must_fail'
118 +
119 + Some flaky tests have been fixed.
120 +
121 +
122 +* tz/cred-netrc-cleanup (2018-06-18) 4 commits
123 + (merged to 'next' on 2018-06-22 at a471dd714c)
124 + + git-credential-netrc: make "all" default target of Makefile
125 + + git-credential-netrc: fix exit status when tests fail
126 + + git-credential-netrc: use in-tree Git.pm for tests
127 + + git-credential-netrc: minor whitespace cleanup in test script
128 +
129 + Build and test procedure for netrc credential helper (in contrib/)
130 + has been updated.
131
132 --------------------------------------------------
133 [New Topics]
134
244 -* ld/p423 (2018-06-19) 6 commits
245 - - git-p4: python3: fix octal constants
246 - - git-p4: python3: use print() function
247 - - git-p4: python3: basestring workaround
248 - - git-p4: python3: remove backticks
249 - - git-p4: python3: replace dict.has_key(k) with "k in dict"
250 - - git-p4: python3: replace <> with !=
135 +* ao/config-from-gitmodules (2018-06-26) 6 commits
136 + - submodule-config: reuse config_from_gitmodules in repo_read_gitmodules
137 + - submodule-config: pass repository as argument to config_from_gitmodules
138 + - submodule-config: make 'config_from_gitmodules' private
139 + - submodule-config: add helper to get 'update-clone' config from .gitmodules
140 + - submodule-config: add helper function to get 'fetch' config from .gitmodules
141 + - config: move config_from_gitmodules to submodule-config.c
142
252 - Code preparation to make "git p4" closer to be usable with Python 3.
143 + Tighten the API to make it harder to misuse in-tree .gitmodules
144 + file, even though it shares the same syntax with configuration
145 + files, to read random configuration items from it.
146
147 Will merge to 'next'.
148
149
257 -* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit
258 - - sequencer: do not squash 'reword' commits when we hit conflicts
150 +* as/sequencer-customizable-comment-char (2018-06-28) 1 commit
151 + - sequencer: use configured comment character
152
260 - Bugfix for "rebase -i" corner case regression.
153 + Honor core.commentchar when preparing the list of commits to replay
154 + in "rebase -i".
155 +
156 +
157 +* dj/runtime-prefix (2018-06-26) 1 commit
158 + - Makefile: tweak sed invocation
159 +
160 + POSIX portability fix in Makefile to fix a glitch introduced a few
161 + releases ago.
162
163 Will merge to 'next'.
164
165
265 -* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit
266 - - format-patch: clear UNINTERESTING flag before prepare_bases
166 +* ds/commit-graph (2018-06-28) 1 commit
167 + - commit-graph: fix documentation inconsistencies
168
268 - Recently added "--base" option to "git format-patch" command did
269 - not correctly generate prereq patch ids.
169 + Docfix.
170
171 Will merge to 'next'.
172
173
274 -* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit
275 - - docs: link to gitsubmodules
174 +* en/rebase-i-microfixes (2018-06-27) 3 commits
175 + - git-rebase--merge: modernize "git-$cmd" to "git $cmd"
176 + - Fix use of strategy options with interactive rebases
177 + - t3418: add testcase showing problems with rebase -i and strategy options
178 +
179 + Will merge to 'next'.
180
277 - Docfix.
181 +
182 +* js/enhanced-version-info (2018-06-28) 1 commit
183 + - Makefile: fix the "built from commit" code
184 +
185 + Build fix.
186
187 Will merge to 'next'.
188
189
282 -* bw/ref-in-want (2018-06-21) 8 commits
283 - - fetch-pack: implement ref-in-want
284 - - fetch-pack: put shallow info in output parameter
285 - - fetch: refactor to make function args narrower
286 - - fetch: refactor fetch_refs into two functions
287 - - fetch: refactor the population of peer ref OIDs
288 - - upload-pack: test negotiation with changing repository
289 - - upload-pack: implement ref-in-want
290 - - test-pkt-line: add unpack-sideband subcommand
190 +* js/rebase-recreate-merge (2018-06-27) 1 commit
191 + - rebase: fix documentation formatting
192
193 + Docfix.
194
293 -* en/rebase-consistency (2018-06-21) 7 commits
294 - - git-rebase: make --allow-empty-message the default
295 - - git-rebase.txt: address confusion between --no-ff vs --force-rebase
296 - - git-rebase.txt: document behavioral inconsistencies between modes
297 - - git-rebase: error out when incompatible options passed
298 - - t3422: new testcases for checking when incompatible options passed
299 - - git-rebase.sh: update help messages a bit
300 - - git-rebase.txt: document incompatible options
195 + Will merge to 'next'.
196
197
303 -* jt/remove-pack-bitmap-global (2018-06-21) 2 commits
304 - - pack-bitmap: add free function
305 - - pack-bitmap: remove bitmap_git global variable
198 +* jt/connectivity-check-after-unshallow (2018-06-27) 1 commit
199 + - fetch: when deepening, check connectivity fully
200
201 + "git fetch" failed to correctly validate the set of objects it
202 + received when making a shallow history deeper, which has been
203 + corrected.
204
308 -* sb/submodule-move-head-error-msg (2018-06-25) 1 commit
309 - - submodule.c: report the submodule that an error occurs in
205
311 - Needs a reroll.
312 - cf. <20180622081713.5360-1-szeder.dev@gmail.com>
206 +* jt/fetch-nego-tip (2018-06-27) 1 commit
207 + - fetch-pack: support negotiation tip whitelist
208 + (this branch uses jt/fetch-pack-negotiator.)
209
210 + "git fetch" learned a new option "--negotiation-tip" to limit the
211 + set of commits it tells the other end as "have", to reduce wasted
212 + bandwidth and cycles, which would be helpful when the receiving
213 + repository has a lot of refs that have little to do with the
214 + history at the remote it is fetching from.
215
315 -* bw/protocol-v2 (2018-06-22) 1 commit
316 - - protocol-v2 doc: put HTTP headers after request
216
318 - Doc fix.
217 +* mb/filter-branch-optim (2018-06-26) 1 commit
218 + - filter-branch: skip commits present on --state-branch
219 +
220 + "git filter-branch" when used with the "--state-branch" option
221 + still attempted to rewrite the commits whose filtered result is
222 + known from the previous attempt (which is recorded on the state
223 + branch); the command has been corrected not to waste cycles doing
224 + so.
225
226 Will merge to 'next'.
227
228
323 -* jk/branch-l-1-repurpose (2018-06-22) 1 commit
324 - - branch: make "-l" a synonym for "--list"
325 - (this branch uses jk/branch-l-0-deprecation.)
229 +* ms/core-icase-doc (2018-06-28) 1 commit
230 + - Documentation: declare "core.ignoreCase" as internal variable
231
327 - Updated plan to repurpose the "-l" option to "git branch".
232 + Clarify that setting core.ignoreCase to deviate from reality would
233 + not turn a case-incapable filesystem into a case-capable one.
234
329 - Will hold in 'pu' until jk/branch-l-0-deprecation progresses sufficiently.
235 + Will merge to 'next'.
236
237
332 -* vs/typofixes (2018-06-22) 1 commit
333 - - Documentation: spelling and grammar fixes
238 +* rj/submodule-fsck-skip (2018-06-27) 1 commit
239 + - fsck: check skiplist for object in fsck_blob()
240
335 - Doc fix.
241 + "fsck.skipList" did not prevent a blob object listed there from
242 + being inspected for is contents (e.g. we recently started to
243 + inspect the contents of ".gitmodules" for certain malicious
244 + patterns), which has been corrected.
245
246 Will merge to 'next'.
247
248
340 -* cc/remote-odb (2018-06-25) 9 commits
341 - - Documentation/config: add odb.<name>.promisorRemote
342 - - t0410: test fetching from many promisor remotes
343 - - Use odb.origin.partialclonefilter instead of core.partialclonefilter
344 - - Use remote_odb_get_direct() and has_remote_odb()
345 - - remote-odb: add remote_odb_reinit()
346 - - remote-odb: implement remote_odb_get_many_direct()
347 - - remote-odb: implement remote_odb_get_direct()
348 - - Add initial remote odb support
349 - - fetch-object: make functions return an error code
249 +* tb/grep-only-matching (2018-06-27) 3 commits
250 + - SQUASH??? emerg compilation fix
251 + - grep.c: teach 'git grep --only-matching'
252 + - grep.c: extract show_line_header()
253 + (this branch uses tb/grep-column.)
254
255 + "git grep" learned the "--only-matching" option.
256
352 -* ds/multi-pack-index (2018-06-25) 24 commits
353 - - midx: clear midx on repack
354 - - packfile: skip loading index if in multi-pack-index
355 - - midx: prevent duplicate packfile loads
356 - - midx: use midx in approximate_object_count
357 - - midx: use existing midx when writing new one
358 - - midx: use midx in abbreviation calculations
359 - - midx: read objects from multi-pack-index
360 - - midx: prepare midxed_git struct
361 - - config: create core.multiPackIndex setting
362 - - midx: write object offsets
363 - - midx: write object id fanout chunk
364 - - midx: write object ids in a chunk
365 - - midx: sort and deduplicate objects from packfiles
366 - - midx: read pack names into array
367 - - multi-pack-index: write pack names in chunk
368 - - multi-pack-index: read packfile list
369 - - packfile: generalize pack directory list
370 - - multi-pack-index: expand test data
371 - - multi-pack-index: load into memory
372 - - midx: write header information to lockfile
373 - - multi-pack-index: add 'write' verb
374 - - multi-pack-index: add builtin
375 - - multi-pack-index: add format details
376 - - multi-pack-index: add design document
257
258 +* tz/exclude-doc-smallfixes (2018-06-27) 2 commits
259 + - dir.c: fix typos in core.excludesfile comment
260 + - gitignore.txt: clarify default core.excludesfile path
261
379 -* nd/use-the-index-compat-less (2018-06-25) 13 commits
380 - - wt-status.c: stop using index compat macros
381 - - sha1-name.c: stop using index compat macros
382 - - sequencer.c: stop using index compat macros
383 - - revision.c: stop using index compat macros
384 - - rerere.c: stop using index compat macros
385 - - merge.c: stop using index compat macros
386 - - merge-recursive.c: stop using index compat macros
387 - - entry.c: stop using index compat macros
388 - - diff.c: stop using index compat macros
389 - - diff-lib.c: stop using index compat macros
390 - - check-racy.c: stop using index compat macros
391 - - blame.c: stop using index compat macros
392 - - apply.c: stop using index compat macros
262 + Doc updates.
263 +
264 + Will merge to 'next'.
265
266 --------------------------------------------------
267 [Stalled]
@@ -518,6 +390,185 @@ of the repositories listed at
390 --------------------------------------------------
391 [Cooking]
392
393 +* ld/p423 (2018-06-19) 6 commits
394 + - git-p4: python3: fix octal constants
395 + - git-p4: python3: use print() function
396 + - git-p4: python3: basestring workaround
397 + - git-p4: python3: remove backticks
398 + - git-p4: python3: replace dict.has_key(k) with "k in dict"
399 + - git-p4: python3: replace <> with !=
400 +
401 + Code preparation to make "git p4" closer to be usable with Python 3.
402 +
403 + Will merge to 'next'.
404 +
405 +
406 +* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit
407 + - sequencer: do not squash 'reword' commits when we hit conflicts
408 +
409 + Bugfix for "rebase -i" corner case regression.
410 +
411 + Will merge to 'next'.
412 +
413 +
414 +* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit
415 + - format-patch: clear UNINTERESTING flag before prepare_bases
416 +
417 + Recently added "--base" option to "git format-patch" command did
418 + not correctly generate prereq patch ids.
419 +
420 + Will merge to 'next'.
421 +
422 +
423 +* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit
424 + - docs: link to gitsubmodules
425 +
426 + Docfix.
427 +
428 + Will merge to 'next'.
429 +
430 +
431 +* bw/ref-in-want (2018-06-28) 8 commits
432 + - fetch-pack: implement ref-in-want
433 + - fetch-pack: put shallow info in output parameter
434 + - fetch: refactor to make function args narrower
435 + - fetch: refactor fetch_refs into two functions
436 + - fetch: refactor the population of peer ref OIDs
437 + - upload-pack: test negotiation with changing repository
438 + - upload-pack: implement ref-in-want
439 + - test-pkt-line: add unpack-sideband subcommand
440 +
441 + Protocol v2 has been updated to allow slightly out-of-sync set of
442 + servers to work together to serve a single client, which would be
443 + useful with load-balanced servers that talk smart HTTP transport.
444 +
445 +
446 +* en/rebase-consistency (2018-06-27) 9 commits
447 + - git-rebase: make --allow-empty-message the default
448 + - t3401: add directory rename testcases for rebase and am
449 + - git-rebase.txt: document behavioral differences between modes
450 + - directory-rename-detection.txt: technical docs on abilities and limitations
451 + - git-rebase.txt: address confusion between --no-ff vs --force-rebase
452 + - git-rebase: error out when incompatible options passed
453 + - t3422: new testcases for checking when incompatible options passed
454 + - git-rebase.sh: update help messages a bit
455 + - git-rebase.txt: document incompatible options
456 +
457 + "git rebase" behaved slightly differently depending on which one of
458 + the three backends gets used; this has been documented and an
459 + effort to make them more uniform has begun.
460 +
461 +
462 +* jt/remove-pack-bitmap-global (2018-06-21) 2 commits
463 + - pack-bitmap: add free function
464 + - pack-bitmap: remove bitmap_git global variable
465 +
466 + The effort to move globals to per-repository in-core structure
467 + continues.
468 +
469 +
470 +* sb/submodule-move-head-error-msg (2018-06-25) 1 commit
471 + - submodule.c: report the submodule that an error occurs in
472 +
473 + Needs a reroll.
474 + cf. <20180622081713.5360-1-szeder.dev@gmail.com>
475 +
476 +
477 +* bw/protocol-v2 (2018-06-22) 1 commit
478 + - protocol-v2 doc: put HTTP headers after request
479 +
480 + Doc fix.
481 +
482 + Will merge to 'next'.
483 +
484 +
485 +* jk/branch-l-1-repurpose (2018-06-22) 1 commit
486 + - branch: make "-l" a synonym for "--list"
487 + (this branch uses jk/branch-l-0-deprecation.)
488 +
489 + Updated plan to repurpose the "-l" option to "git branch".
490 +
491 + Will hold in 'pu' until jk/branch-l-0-deprecation progresses sufficiently.
492 +
493 +
494 +* vs/typofixes (2018-06-22) 1 commit
495 + - Documentation: spelling and grammar fixes
496 +
497 + Doc fix.
498 +
499 + Will merge to 'next'.
500 +
501 +
502 +* cc/remote-odb (2018-06-25) 9 commits
503 + . Documentation/config: add odb.<name>.promisorRemote
504 + . t0410: test fetching from many promisor remotes
505 + . Use odb.origin.partialclonefilter instead of core.partialclonefilter
506 + . Use remote_odb_get_direct() and has_remote_odb()
507 + . remote-odb: add remote_odb_reinit()
508 + . remote-odb: implement remote_odb_get_many_direct()
509 + . remote-odb: implement remote_odb_get_direct()
510 + . Add initial remote odb support
511 + . fetch-object: make functions return an error code
512 +
513 + Needs a reroll.
514 +
515 +
516 +* ds/multi-pack-index (2018-06-25) 24 commits
517 + - midx: clear midx on repack
518 + - packfile: skip loading index if in multi-pack-index
519 + - midx: prevent duplicate packfile loads
520 + - midx: use midx in approximate_object_count
521 + - midx: use existing midx when writing new one
522 + - midx: use midx in abbreviation calculations
523 + - midx: read objects from multi-pack-index
524 + - midx: prepare midxed_git struct
525 + - config: create core.multiPackIndex setting
526 + - midx: write object offsets
527 + - midx: write object id fanout chunk
528 + - midx: write object ids in a chunk
529 + - midx: sort and deduplicate objects from packfiles
530 + - midx: read pack names into array
531 + - multi-pack-index: write pack names in chunk
532 + - multi-pack-index: read packfile list
533 + - packfile: generalize pack directory list
534 + - multi-pack-index: expand test data
535 + - multi-pack-index: load into memory
536 + - midx: write header information to lockfile
537 + - multi-pack-index: add 'write' verb
538 + - multi-pack-index: add builtin
539 + - multi-pack-index: add format details
540 + - multi-pack-index: add design document
541 +
542 + When there are too many packfiles in a repository (which is not
543 + recommended), looking up an object in these would require
544 + consulting many pack .idx files; a new mechanism to have a single
545 + file that consolidates all of these .idx files is introduced.
546 +
547 +
548 +* nd/use-the-index-compat-less (2018-06-25) 13 commits
549 + - wt-status.c: stop using index compat macros
550 + - sha1-name.c: stop using index compat macros
551 + - sequencer.c: stop using index compat macros
552 + - revision.c: stop using index compat macros
553 + - rerere.c: stop using index compat macros
554 + - merge.c: stop using index compat macros
555 + - merge-recursive.c: stop using index compat macros
556 + - entry.c: stop using index compat macros
557 + - diff.c: stop using index compat macros
558 + - diff-lib.c: stop using index compat macros
559 + - check-racy.c: stop using index compat macros
560 + - blame.c: stop using index compat macros
561 + - apply.c: stop using index compat macros
562 +
563 + Use of many convenience functions that operate on the_index
564 + "primary in-core index instance" have been rewritten to explicitly
565 + call the coutnerpart functions that take arbitrary index_state and
566 + pass the_index.
567 +
568 + I'd say that alone is a useless code churn, but people seem to be
569 + excited about the change, so it is queued here.
570 +
571 +
572 * tb/grep-column (2018-06-22) 7 commits
573 - contrib/git-jump/git-jump: jump to exact location
574 - grep.c: add configuration variables to show matched option
@@ -526,22 +577,12 @@ of the repositories listed at
577 - grep.[ch]: extend grep_opt to allow showing matched column
578 - grep.c: expose {,inverted} match column in match_line()
579 - Documentation/config.txt: camel-case lineNumber for consistency
580 + (this branch is used by tb/grep-only-matching.)
581
582 "git grep" learned the "--column" option that gives not just the
583 line number but the column number of the hit.
584
533 -
534 -* tz/cred-netrc-cleanup (2018-06-18) 4 commits
535 - (merged to 'next' on 2018-06-22 at a471dd714c)
536 - + git-credential-netrc: make "all" default target of Makefile
537 - + git-credential-netrc: fix exit status when tests fail
538 - + git-credential-netrc: use in-tree Git.pm for tests
539 - + git-credential-netrc: minor whitespace cleanup in test script
540 -
541 - Build and test procedure for netrc credential helper (in contrib/)
542 - has been updated.
543 -
544 - Will merge to 'master'.
585 + Will merge to 'next'.
586
587
588 * jt/fetch-pack-negotiator (2018-06-15) 7 commits
@@ -552,10 +593,13 @@ of the repositories listed at
593 - fetch-pack: directly end negotiation if ACK ready
594 - fetch-pack: clear marks before re-marking
595 - fetch-pack: split up everything_local()
596 + (this branch is used by jt/fetch-nego-tip.)
597
598 Code restructuring and a small fix to transport protocol v2 during
599 fetching.
600
601 + Is this ready for 'next'?
602 +
603
604 * ag/rebase-i-append-todo-help (2018-06-14) 2 commits
605 - rebase--interactive: rewrite append_todo_help() in C
@@ -564,6 +608,9 @@ of the repositories listed at
608
609 Stepwise rewriting of the machinery of "rebase -i" into C continues.
610
611 + Needs a reroll.
612 + cf. <nycvar.QRO.7.76.6.1806261125330.21419@tvgsbejvaqbjf.bet>
613 +
614
615 * ag/rebase-i-rewrite-todo (2018-06-15) 3 commits
616 - rebase--interactive: rewrite the edit-todo functionality in C
@@ -574,25 +621,14 @@ of the repositories listed at
621 Stepwise rewriting of the machinery of "rebase -i" into C continues.
622
623
577 -* sb/fix-fetching-moved-submodules (2018-06-14) 2 commits
578 - (merged to 'next' on 2018-06-22 at 16039dc62a)
579 - + t5526: test recursive submodules when fetching moved submodules
580 - + submodule: fix NULL correctness in renamed broken submodules
581 -
582 - The code to try seeing if a fetch is necessary in a submodule
583 - during a fetch with --recurse-submodules got confused when the path
584 - to the submodule was changed in the range of commits in the
585 - superproject, sometimes showing "(null)". This has been corrected.
586 -
587 - Will merge to 'master'.
588 -
589 -
624 * sb/submodule-core-worktree (2018-06-19) 3 commits
591 - (merged to 'next' on 2018-06-22 at 2f7f263b30)
625 + (merged to 'next' on 2018-06-28 at 96e1a8dbd1)
626 + submodule deinit: unset core.worktree
627 + submodule: ensure core.worktree is set after update
628 + submodule: unset core.worktree if no working tree is present
629
630 + Originally merged to 'next' on 2018-06-22
631 +
632 "git submodule" did not correctly adjust core.worktree setting that
633 indicates whether/where a submodule repository has its associated
634 working tree across various state transitions, which has been
@@ -602,7 +638,7 @@ of the repositories listed at
638
639
640 * ds/ewah-cleanup (2018-06-21) 10 commits
605 - (merged to 'next' on 2018-06-22 at ad0ab374a1)
641 + (merged to 'next' on 2018-06-28 at 9cd7c0d54a)
642 + ewah: delete unused 'rlwit_discharge_empty()'
643 + ewah: drop ewah_serialize_native function
644 + ewah: drop ewah_deserialize function
@@ -614,21 +650,14 @@ of the repositories listed at
650 + ewah/bitmap.c: delete unused 'bitmap_each_bit()'
651 + ewah/bitmap.c: delete unused 'bitmap_clear()'
652
653 + Originally merged to 'next' on 2018-06-22
654 +
655 Remove unused function definitions and declarations from ewah
656 bitmap subsystem.
657
658 Will merge to 'master'.
659
660
623 -* jc/clean-after-sanity-tests (2018-06-15) 1 commit
624 - (merged to 'next' on 2018-06-22 at 2df77b8af9)
625 - + tests: clean after SANITY tests
626 -
627 - test cleanup.
628 -
629 - Will merge to 'master'.
630 -
631 -
661 * is/parsing-line-range (2018-06-15) 2 commits
662 - log: prevent error if line range ends past end of file
663 - blame: prevent error if range ends past end of file
@@ -637,49 +666,8 @@ of the repositories listed at
666 take has been tweaked.
667
668
640 -* ab/refspec-init-fix (2018-06-11) 3 commits
641 - (merged to 'next' on 2018-06-13 at 91d71d8435)
642 - + refspec: initalize `refspec_item` in `valid_fetch_refspec()`
643 - + refspec: add back a refspec_item_init() function
644 - + refspec: s/refspec_item_init/&_or_die/g
645 -
646 - Make refspec parsing codepath more robust.
647 -
648 - Will merge to 'master'.
649 -
650 -
651 -* as/safecrlf-quiet-fix (2018-06-11) 1 commit
652 - (merged to 'next' on 2018-06-13 at b163674843)
653 - + config.c: fix regression for core.safecrlf false
654 -
655 - Fix for 2.17-era regression.
656 -
657 - Will merge to 'master'.
658 -
659 -
660 -* sg/gpg-tests-fix (2018-06-11) 2 commits
661 - (merged to 'next' on 2018-06-13 at f3a05f1c41)
662 - + tests: make forging GPG signed commits and tags more robust
663 - + t7510-signed-commit: use 'test_must_fail'
664 -
665 - Some flaky tests have been fixed.
666 -
667 - Will merge to 'master'.
668 -
669 -
670 -* jk/fetch-all-peeled-fix (2018-06-13) 2 commits
671 - (merged to 'next' on 2018-06-13 at 1333bb9d90)
672 - + fetch-pack: test explicitly that --all can fetch tag references pointing to non-commits
673 - + fetch-pack: don't try to fetch peel values with --all
674 -
675 - "git fetch-pack --all" used to unnecessarily fail upon seeing an
676 - annotated tag that points at an object other than a commit.
677 -
678 - Will merge to 'master'.
679 -
680 -
669 * en/merge-recursive-cleanup (2018-06-12) 6 commits
682 - (merged to 'next' on 2018-06-19 at d175cea416)
670 + (merged to 'next' on 2018-06-28 at 1a3646eb7d)
671 + merge-recursive: add pointer about unduly complex looking code
672 + merge-recursive: rename conflict_rename_*() family of functions
673 + merge-recursive: clarify the rename_dir/RENAME_DIR meaning
@@ -687,30 +675,9 @@ of the repositories listed at
675 + merge-recursive: fix numerous argument alignment issues
676 + merge-recursive: fix miscellaneous grammar error in comment
677
690 - Code cleanup.
691 -
692 - Will merge to 'master'.
693 -
694 -
695 -* jh/partial-clone (2018-06-12) 1 commit
696 - (merged to 'next' on 2018-06-13 at 818f864b0c)
697 - + list-objects: check if filter is NULL before using
698 -
699 - The recent addition of "partial clone" experimental feature kicked
700 - in when it shouldn't, namely, when there is no partial-clone filter
701 - defined even if extensions.partialclone is set.
702 -
703 - Will merge to 'master'.
704 -
678 + Originally merged to 'next' on 2018-06-19
679
706 -* ms/send-pack-honor-config (2018-06-12) 1 commit
707 - (merged to 'next' on 2018-06-13 at e2cd933715)
708 - + builtin/send-pack: populate the default configs
709 -
710 - "git send-pack --signed" (hence "git push --signed" over the http
711 - transport) did not read user ident from the config mechanism to
712 - determine whom to sign the push certificate as, which has been
713 - corrected.
680 + Code cleanup.
681
682 Will merge to 'master'.
683
@@ -726,24 +693,11 @@ of the repositories listed at
693 - checkout tests: index should be clean after dwim checkout
694
695
729 -* pw/add-p-recount (2018-06-11) 1 commit
730 - (merged to 'next' on 2018-06-19 at 1880ecc3f1)
731 - + add -p: fix counting empty context lines in edited patches
732 -
733 - When user edits the patch in "git add -p" and the user's editor is
734 - set to strip trailing whitespaces indiscriminately, an empty line
735 - that is unchanged in the patch would become completely empty
736 - (instead of a line with a sole SP on it). The code introduced in
737 - Git 2.17 timeframe failed to parse such a patch, but now it learned
738 - to notice the situation and cope with it.
739 -
740 - Will merge to 'master'.
741 -
742 -
743 -* ds/commit-graph-fsck (2018-05-29) 20 commits
696 +* ds/commit-graph-fsck (2018-06-27) 22 commits
697 - commit-graph: update design document
698 - gc: automatically write commit-graph files
699 - commit-graph: add '--reachable' option
700 + - commit-graph: use string-list API for input
701 - fsck: verify commit-graph
702 - commit-graph: verify contents match checksum
703 - commit-graph: test for corrupted octopus edge
@@ -761,9 +715,12 @@ of the repositories listed at
715 - commit-graph: parse commit from chosen graph
716 - commit-graph: fix GRAPH_MIN_SIZE
717 - commit-graph: UNLEAK before die()
718 + - t5318-commit-graph.sh: use core.commitGraph
719
765 - Expecting a reroll.
766 - cf. <ba3b8e06-b5e1-99a1-0fe4-ff97d6da8f15@gmail.com>
720 + "git fsck" learns to make sure the optional commit-graph file is in
721 + a sane state.
722 +
723 + Is this ready for 'next'?
724
725
726 * ma/wrapped-info (2018-05-28) 2 commits
@@ -773,44 +730,27 @@ of the repositories listed at
730 An attempt to help making multi-line messages fed to warning(),
731 error(), and friends more easily translatable.
732
776 - Waiting for the discussion to settle.
733 + Will discard and wait for a cleaned-up rewrite.
734 cf. <20180529213957.GF7964@sigill.intra.peff.net>
735
736
780 -* nd/completion-negation (2018-06-11) 3 commits
781 - (merged to 'next' on 2018-06-19 at a3be59b450)
782 - + completion: collapse extra --no-.. options
783 - + completion: suppress some -no- options
784 - + parse-options: option to let --git-completion-helper show negative form
785 -
786 - Continuing with the idea to programatically enumerate various
787 - pieces of data required for command line completion, the codebase
788 - has been taught to enumerate options prefixed with "--no-" to
789 - negate them.
790 -
791 - Will merge to 'master'.
792 -
793 -
794 -* jm/cache-entry-from-mem-pool (2018-06-21) 8 commits
737 +* jm/cache-entry-from-mem-pool (2018-06-28) 8 commits
738 - block alloc: add validations around cache_entry lifecyle
796 - - block alloc: allocate cache entries from mem_pool
739 + - block alloc: allocate cache entries from mem-pool
740 - mem-pool: fill out functionality
798 - - mem-pool: add lifecycle management functions
799 - - mem-pool: tweak math on mp_block allocation size
741 + - mem-pool: add life cycle management functions
742 - mem-pool: only search head block for available space
743 - block alloc: add lifecycle APIs for cache_entry structs
744 + - read-cache: make_cache_entry should take object_id struct
745 - read-cache: teach refresh_cache_entry() to take istate
746
747 For a large tree, the index needs to hold many cache entries
748 allocated on heap. These cache entries are now allocated out of a
749 dedicated memory pool to amortize malloc(3) overhead.
750
808 - Kicked back to 'pu' with a rerolled one.
809 - cf. <20180620201557.77155-1-jamill@microsoft.com>
810 -
751
752 * sb/object-store-grafts (2018-05-18) 19 commits
813 - (merged to 'next' on 2018-06-22 at 386a6cc66a)
753 + (merged to 'next' on 2018-06-28 at 02f70d6302)
754 + commit: allow lookup_commit_graft to handle arbitrary repositories
755 + commit: allow prepare_commit_graft to handle arbitrary repositories
756 + shallow: migrate shallow information into the object parser
@@ -831,6 +771,8 @@ of the repositories listed at
771 + object: move grafts to object parser
772 + object-store: move object access functions to object-store.h
773
774 + Originally merged to 'next' on 2018-06-22
775 +
776 The conversion to pass "the_repository" and then "a_repository"
777 throughout the object access API continues.
778