What's cooking (2017/08 #07)

Junio C Hamano committed Aug 26, 2017 at 23:15 UTC 9c96b7b55200fe6c038dd5110a0d85a6a5414188
1 file changed +302 -412
whats-cooking.txt
+302 -412
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Aug 2017, #06; Thu, 24)
4 -X-master-at: 3dc57ebfbd1bf30b9a6987f551af9b74641382a9
5 -X-next-at: eb51544efa2177e71821426b32f8c0299705a996
3 +Subject: What's cooking in git.git (Aug 2017, #07; Sat, 26)
4 +X-master-at: 238e487ea943f80734cc6dad665e7238b8cbc7ff
5 +X-next-at: f28d330327670643ea4cc6f8feceac4024df00a0
6
7 -What's cooking in git.git (Aug 2017, #06; Thu, 24)
7 +What's cooking in git.git (Aug 2017, #07; Sat, 26)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -27,242 +27,346 @@ of the repositories listed at
27 --------------------------------------------------
28 [Graduated to "master"]
29
30 -* ah/doc-empty-string-is-false (2017-08-14) 1 commit
31 - (merged to 'next' on 2017-08-19 at df47ffeffa)
32 - + doc: clarify "config --bool" behaviour with empty string
33 -
34 - Doc update.
30 +* bc/vcs-svn-cleanup (2017-08-20) 2 commits
31 + (merged to 'next' on 2017-08-22 at d8494b5d5b)
32 + + vcs-svn: rename repo functions to "svn_repo"
33 + + vcs-svn: remove unused prototypes
34 + (this branch is used by bc/hash-algo and jn/vcs-svn-cleanup.)
35
36 + Code clean-up.
37
37 -* as/grep-quiet-no-match-exit-code-fix (2017-08-17) 1 commit
38 - (merged to 'next' on 2017-08-19 at 362f88fb41)
39 - + git-grep: correct exit code with --quiet and -L
38
41 - "git grep -L" and "git grep --quiet -L" reported different exit
42 - codes; this has been corrected.
39 +* bw/submodule-config-cleanup (2017-08-03) 17 commits
40 + (merged to 'next' on 2017-08-24 at e35d58c4c6)
41 + + submodule: remove gitmodules_config
42 + + unpack-trees: improve loading of .gitmodules
43 + + submodule-config: lazy-load a repository's .gitmodules file
44 + + submodule-config: move submodule-config functions to submodule-config.c
45 + + submodule-config: remove support for overlaying repository config
46 + + diff: stop allowing diff to have submodules configured in .git/config
47 + + submodule: remove submodule_config callback routine
48 + + unpack-trees: don't respect submodule.update
49 + + submodule: don't rely on overlayed config when setting diffopts
50 + + fetch: don't overlay config with submodule-config
51 + + submodule--helper: don't overlay config in update-clone
52 + + submodule--helper: don't overlay config in remote_submodule_branch
53 + + add, reset: ensure submodules can be added or reset
54 + + submodule: don't use submodule_from_name
55 + + t7411: check configuration parsing errors
56 + + Merge branch 'bc/object-id' into bw/submodule-config-cleanup
57 + + Merge branch 'bw/grep-recurse-submodules' into bw/submodule-config-cleanup
58
59 + Code clean-up to avoid mixing values read from the .gitmodules file
60 + and values read from the .git/config file.
61 + So, after the recent discussion around submodule.<name>.update (and
62 + its resolution "use submodule.<name>.active; "reset --hard" must
63 + ignore the .update thing"), this is now good to go, I presume?
64 + Please yell at me that I am clueless if that is not the case ;-)
65
45 -* cc/subprocess-handshake-missing-capabilities (2017-08-16) 1 commit
46 - (merged to 'next' on 2017-08-19 at c512710fda)
47 - + sub-process: print the cmd when a capability is unsupported
66
49 - When handshake with a subprocess filter notices that the process
50 - asked for an unknown capability, Git did not report what program
51 - the offending subprocess was running. This has been corrected.
67 +* jc/cutoff-config (2017-08-22) 6 commits
68 + (merged to 'next' on 2017-08-24 at 2dcbf9ae04)
69 + + rerere: allow approxidate in gc.rerereResolved/gc.rerereUnresolved
70 + + rerere: represent time duration in timestamp_t internally
71 + + t4200: parameterize "rerere gc" custom expiry test
72 + + t4200: gather "rerere gc" together
73 + + t4200: make "rerere gc" test more robust
74 + + t4200: give us a clean slate after "rerere gc" tests
75
53 - We may want a follow-up fix to tighten the error checking, though.
76 + "[gc] rerereResolved = 5.days" used to be invalid, as the variable
77 + is defined to take an integer counting the number of days. It now
78 + is allowed.
79
80
56 -* hv/t5526-andand-chain-fix (2017-08-17) 1 commit
57 - (merged to 'next' on 2017-08-19 at fa95053653)
58 - + t5526: fix some broken && chains
81 +* jk/trailers-parse (2017-08-20) 9 commits
82 + (merged to 'next' on 2017-08-22 at 2d4d937141)
83 + + doc/interpret-trailers: fix "the this" typo
84 + (merged to 'next' on 2017-08-19 at faa63f8196)
85 + + pretty: support normalization options for %(trailers)
86 + + t4205: refactor %(trailers) tests
87 + + pretty: move trailer formatting to trailer.c
88 + + interpret-trailers: add --parse convenience option
89 + + interpret-trailers: add an option to unfold values
90 + + interpret-trailers: add an option to show only existing trailers
91 + + interpret-trailers: add an option to show only the trailers
92 + + trailer: put process_trailers() options into a struct
93
60 - Test fix.
94 + "git interpret-trailers" has been taught a "--parse" and a few
95 + other options to make it easier for scripts to grab existing
96 + trailer lines from a commit log message.
97 + Possible leftover bits are mentioned in
98 + cf. <20170820094009.z23wclpku35txflg@sigill.intra.peff.net>
99
100
63 -* jc/diff-sane-truncate-no-more (2017-08-17) 1 commit
64 - (merged to 'next' on 2017-08-19 at 3ba3980eed)
65 - + diff: retire sane_truncate_fn
101 +* jn/vcs-svn-cleanup (2017-08-23) 4 commits
102 + (merged to 'next' on 2017-08-24 at c184f08f5f)
103 + + vcs-svn: move remaining repo_tree functions to fast_export.h
104 + + vcs-svn: remove repo_delete wrapper function
105 + + vcs-svn: remove custom mode constants
106 + + vcs-svn: remove more unused prototypes and declarations
107 + (this branch uses bc/vcs-svn-cleanup; is tangled with bc/hash-algo.)
108
109 Code clean-up.
110
111
70 -* jc/simplify-progress (2017-08-19) 1 commit
71 - (merged to 'next' on 2017-08-22 at 9077ff6912)
72 - + progress: simplify "delayed" progress API
73 -
74 - The API to start showing progress meter after a short delay has
75 - been simplified.
76 -
77 -
78 -* jk/doc-the-this (2017-08-20) 1 commit
79 - (merged to 'next' on 2017-08-22 at 6625e50025)
80 - + doc: fix typo in sendemail.identity
81 -
82 - Doc clean-up.
83 -
84 -
85 -* jt/sha1-file-cleanup (2017-08-11) 2 commits
86 - (merged to 'next' on 2017-08-19 at 93f4c94578)
87 - + sha1_file: remove read_packed_sha1()
88 - + sha1_file: set whence in storage-specific info fn
89 - (this branch is used by jt/packmigrate.)
112 +* js/gitweb-raw-blob-link-in-history (2017-08-22) 1 commit
113 + (merged to 'next' on 2017-08-23 at 16258266e2)
114 + + gitweb: add 'raw' blob_plain link in history overview
115
91 - Preparatory code clean-up.
116 + "gitweb" shows a link to visit the 'raw' contents of blbos in the
117 + history overview page.
118
119
94 -* kd/stash-with-bash-4.4 (2017-08-14) 1 commit
95 - (merged to 'next' on 2017-08-19 at 79b2c4b052)
96 - + stash: prevent warning about null bytes in input
120 +* jt/diff-color-move-fix (2017-08-16) 3 commits
121 + (merged to 'next' on 2017-08-19 at 6ae3831c8c)
122 + + diff: define block by number of alphanumeric chars
123 + + diff: respect MIN_BLOCK_LENGTH for last block
124 + + diff: avoid redundantly clearing a flag
125 + (this branch uses sb/diff-color-move.)
126
98 - bash 4.4 or newer gave a warning on NUL byte in command
99 - substitution done in "git stash"; this has been squelched.
127 + A handful of bugfixes and an improvement to "diff --color-moved".
128
129
102 -* ks/prepare-commit-msg-sample-fix (2017-08-14) 1 commit
103 - (merged to 'next' on 2017-08-19 at e75c30de64)
104 - + hook: use correct logical variable
130 +* jt/doc-pack-objects-fix (2017-08-23) 1 commit
131 + (merged to 'next' on 2017-08-24 at 7e4c3c0c9f)
132 + + Doc: clarify that pack-objects makes packs, plural
133
106 - An "oops" fix to a topic that is already in 'master'.
134 + Doc updates.
135
136
109 -* kw/commit-keep-index-when-pre-commit-is-not-run (2017-08-16) 1 commit
110 - (merged to 'next' on 2017-08-19 at 2b5a25e5ae)
111 - + commit: skip discarding the index if there is no pre-commit hook
137 +* jt/packmigrate (2017-08-23) 23 commits
138 + (merged to 'next' on 2017-08-24 at 34a628ae6c)
139 + + pack: move for_each_packed_object()
140 + + pack: move has_pack_index()
141 + + pack: move has_sha1_pack()
142 + + pack: move find_pack_entry() and make it global
143 + + pack: move find_sha1_pack()
144 + + pack: move find_pack_entry_one(), is_pack_valid()
145 + + pack: move check_pack_index_ptr(), nth_packed_object_offset()
146 + + pack: move nth_packed_object_{sha1,oid}
147 + + pack: move clear_delta_base_cache(), packed_object_info(), unpack_entry()
148 + + pack: move unpack_object_header()
149 + + pack: move get_size_from_delta()
150 + + pack: move unpack_object_header_buffer()
151 + + pack: move {,re}prepare_packed_git and approximate_object_count
152 + + pack: move install_packed_git()
153 + + pack: move add_packed_git()
154 + + pack: move unuse_pack()
155 + + pack: move use_pack()
156 + + pack: move pack-closing functions
157 + + pack: move release_pack_memory()
158 + + pack: move open_pack_index(), parse_pack_index()
159 + + pack: move pack_report()
160 + + pack: move static state variables
161 + + pack: move pack name-related functions
162
113 - "git commit" used to discard the index and re-read from the filesystem
114 - just in case the pre-commit hook has updated it in the middle; this
115 - has been optimized out when we know we do not run the pre-commit hook.
163 + Code movement to make it easier to hack later.
164
165
118 -* kw/rebase-progress (2017-08-14) 2 commits
119 - (merged to 'next' on 2017-08-19 at 1958f378dd)
120 - + rebase: turn on progress option by default for format-patch
121 - + format-patch: have progress option while generating patches
166 +* jt/stash-tests (2017-08-19) 3 commits
167 + (merged to 'next' on 2017-08-22 at 0b022697aa)
168 + + stash: add a test for stashing in a detached state
169 + + stash: add a test for when apply fails during stash branch
170 + + stash: add a test for stash create with no files
171
123 - "git rebase", especially when it is run by mistake and ends up
124 - trying to replay many changes, spent long time in silence. The
125 - command has been taught to show progress report when it spends
126 - long time preparing these many changes to replay (which would give
127 - the user a chance to abort with ^C).
172 + Test update to improve coverage for "git stash" operations.
173
174
130 -* lg/merge-signoff (2017-07-25) 1 commit
131 - (merged to 'next' on 2017-08-19 at cb53d7b026)
132 - + merge: add a --signoff flag
175 +* kw/write-index-reduce-alloc (2017-08-21) 3 commits
176 + (merged to 'next' on 2017-08-24 at 29f7daad85)
177 + + read-cache: avoid allocating every ondisk entry when writing
178 + + read-cache: fix memory leak in do_write_index
179 + + perf: add test for writing the index
180
134 - "git merge" learned a "--signoff" option to add the Signed-off-by:
135 - trailer with the committer's name.
181 + We used to spend more than necessary cycles allocating and freeing
182 + piece of memory while writing each index entry out. This has been
183 + optimized.
184
185
138 -* mg/format-ref-doc-fix (2017-08-18) 2 commits
139 - (merged to 'next' on 2017-08-19 at 6490525c54)
140 - + Documentation/git-for-each-ref: clarify peeling of tags for --format
141 - + Documentation: use proper wording for ref format strings
186 +* mg/killed-merge (2017-08-23) 4 commits
187 + (merged to 'next' on 2017-08-24 at 5db37fc192)
188 + + merge: save merge state earlier
189 + + merge: split write_merge_state in two
190 + + merge: clarify call chain
191 + + Documentation/git-merge: explain --continue
192
143 - Doc fix.
193 + Killing "git merge --edit" before the editor returns control left
194 + the repository in a state with MERGE_MSG but without MERGE_HEAD,
195 + which incorrectly tells the subsequent "git commit" that there was
196 + a squash merge in progress. This has been fixed.
197
198
146 -* nm/stash-untracked (2017-08-11) 1 commit
147 - (merged to 'next' on 2017-08-19 at 70990d7eb3)
148 - + stash: clean untracked files before reset
199 +* mh/ref-lock-entry (2017-08-23) 1 commit
200 + (merged to 'next' on 2017-08-24 at 67760267f4)
201 + + refs: retry acquiring reference locks for 100ms
202
150 - "git stash -u" used the contents of the committed version of the
151 - ".gitignore" file to decide which paths are ignored, even when the
152 - file has local changes. The command has been taught to instead use
153 - the locally modified contents.
203 + The code to acquire a lock on a reference (e.g. while accepting a
204 + push from a client) used to immediately fail when the reference is
205 + already locked---now it waits for a very short while and retries,
206 + which can make it succeed if the lock holder was holding it during
207 + a read-only operation.
208
209
156 -* rs/commit-h-single-parent-cleanup (2017-08-19) 1 commit
157 - (merged to 'next' on 2017-08-22 at 7db01c4035)
158 - + commit: remove unused inline function single_parent()
210 +* pb/trailers-from-command-line (2017-08-14) 4 commits
211 + (merged to 'next' on 2017-08-19 at b12342e49e)
212 + + interpret-trailers: fix documentation typo
213 + + interpret-trailers: add options for actions
214 + + trailers: introduce struct new_trailer_item
215 + + trailers: export action enums and corresponding lookup functions
216
160 - Code clean-up.
217 + "git interpret-trailers" learned to take the trailer specifications
218 + from the command line that overrides the configured values.
219
220
163 -* rs/object-id (2017-08-14) 1 commit
164 - (merged to 'next' on 2017-08-19 at 0f7283cd19)
165 - + tree-walk: convert fill_tree_descriptor() to object_id
221 +* po/object-id (2017-08-20) 6 commits
222 + (merged to 'next' on 2017-08-23 at 0faff383a8)
223 + + sha1_file: convert index_stream to struct object_id
224 + + sha1_file: convert hash_sha1_file_literally to struct object_id
225 + + sha1_file: convert index_fd to struct object_id
226 + + sha1_file: convert index_path to struct object_id
227 + + read-cache: convert to struct object_id
228 + + builtin/hash-object: convert to struct object_id
229
230 Conversion from uchar[20] to struct object_id continues.
231
232
170 -* rs/t1002-do-not-use-sum (2017-08-15) 1 commit
171 - (merged to 'next' on 2017-08-19 at 15b2a5f21b)
172 - + t1002: stop using sum(1)
233 +* sb/diff-color-move (2017-06-30) 26 commits
234 + (merged to 'next' on 2017-08-19 at a239d031bc)
235 + + diff: document the new --color-moved setting
236 + + diff.c: add dimming to moved line detection
237 + + diff.c: color moved lines differently, plain mode
238 + + diff.c: color moved lines differently
239 + + diff.c: buffer all output if asked to
240 + + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY
241 + + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_STAT_SEP
242 + + diff.c: convert word diffing to use emit_diff_symbol
243 + + diff.c: convert show_stats to use emit_diff_symbol
244 + + diff.c: convert emit_binary_diff_body to use emit_diff_symbol
245 + + submodule.c: migrate diff output to use emit_diff_symbol
246 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_REWRITE_DIFF
247 + + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_BINARY_FILES
248 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_HEADER
249 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_FILEPAIR_{PLUS, MINUS}
250 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_INCOMPLETE
251 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_WORDS[_PORCELAIN]
252 + + diff.c: migrate emit_line_checked to use emit_diff_symbol
253 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF
254 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_FRAGINFO
255 + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER
256 + + diff.c: introduce emit_diff_symbol
257 + + diff.c: factor out diff_flush_patch_all_file_pairs
258 + + diff.c: move line ending check into emit_hunk_header
259 + + diff.c: readability fix
260 + + Merge branch 'sb/hashmap-customize-comparison' into sb/diff-color-move
261 + (this branch is used by jt/diff-color-move-fix.)
262
174 - Test simplification.
263 + "git diff" has been taught to optionally paint new lines that are
264 + the same as deleted lines elsewhere differently from genuinely new
265 + lines.
266
267
177 -* sb/sha1-file-cleanup (2017-08-15) 1 commit
178 - (merged to 'next' on 2017-08-19 at 85898d1e7c)
179 - + sha1_file: make read_info_alternates static
268 +* tb/apply-with-crlf (2017-08-19) 2 commits
269 + (merged to 'next' on 2017-08-22 at f92bf67061)
270 + + apply: file commited with CRLF should roundtrip diff and apply
271 + + convert: add SAFE_CRLF_KEEP_CRLF
272 + (this branch is tangled with jc/apply-with-crlf.)
273
181 - Code clean-up.
274 + "git apply" that is used as a better "patch -p1" failed to apply a
275 + taken from a file with CRLF line endings to a file with CRLF line
276 + endings. The root cause was because it misused convert_to_git()
277 + that tried to do "safe-crlf" processing by looking at the index
278 + entry at the same path, which is a nonsense---in that mode, "apply"
279 + is not working on the data in (or derived from) the index at all.
280 + This has been fixed.
281
282 +--------------------------------------------------
283 +[New Topics]
284
184 -* sb/submodule-parallel-update (2017-08-17) 1 commit
185 - (merged to 'next' on 2017-08-19 at c023a834f0)
186 - + submodule.sh: remove unused variable
285 +* jk/drop-sha1-entry-pos (2017-08-25) 1 commit
286 + (merged to 'next' on 2017-08-25 at 7ef03bb281)
287 + + sha1-lookup: remove sha1_entry_pos() from header file
288
289 Code clean-up.
290
291 + Will merge to 'master'.
292
191 -* tc/curl-with-backports (2017-08-11) 2 commits
192 - (merged to 'next' on 2017-08-22 at 06c21e1eb9)
193 - + http: use a feature check to enable GSSAPI delegation control
194 - + http: fix handling of missing CURLPROTO_*
293
196 - Updates to the HTTP layer we made recently unconditionally used
197 - features of libCurl without checking the existence of them, causing
198 - compilation errors, which has been fixed. Also migrate the code to
199 - check feature macros, not version numbers, to cope better with
200 - libCurl that vendor ships with backported features.
294 +* ls/convert-filter-progress (2017-08-24) 1 commit
295 + (merged to 'next' on 2017-08-25 at ce0bb30e8f)
296 + + convert: display progress for filtered objects that have been delayed
297
202 ---------------------------------------------------
203 -[New Topics]
204 -
205 -* js/gitweb-raw-blob-link-in-history (2017-08-22) 1 commit
206 - (merged to 'next' on 2017-08-23 at 16258266e2)
207 - + gitweb: add 'raw' blob_plain link in history overview
208 -
209 - "gitweb" shows a link to visit the 'raw' contents of blbos in the
210 - history overview page.
298 + The codepath to call external process filter for smudge/clean
299 + operation learned to show the progress meter.
300
301 Will merge to 'master'.
302
303
215 -* jn/vcs-svn-cleanup (2017-08-23) 4 commits
216 - (merged to 'next' on 2017-08-24 at c184f08f5f)
217 - + vcs-svn: move remaining repo_tree functions to fast_export.h
218 - + vcs-svn: remove repo_delete wrapper function
219 - + vcs-svn: remove custom mode constants
220 - + vcs-svn: remove more unused prototypes and declarations
221 - (this branch uses bc/vcs-svn-cleanup; is tangled with bc/hash-algo.)
304 +* mm/send-email-cc-cruft (2017-08-24) 2 commits
305 + (merged to 'next' on 2017-08-25 at 65933523ab)
306 + + send-email: don't use Mail::Address, even if available
307 + + send-email: fix garbage removal after address
308
223 - Code clean-up.
309 + In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft"
310 + was taught to "git send-email" as a valid way to tell it that it
311 + needs to also send a carbon copy to <a@dd.re.ss> in the trailer
312 + section.
313
314 Will merge to 'master'.
315
316
228 -* jt/doc-pack-objects-fix (2017-08-23) 1 commit
229 - (merged to 'next' on 2017-08-24 at 7e4c3c0c9f)
230 - + Doc: clarify that pack-objects makes packs, plural
317 +* nd/worktree-kill-parse-ref (2017-08-24) 1 commit
318 + (merged to 'next' on 2017-08-25 at a5da82b2ea)
319 + + branch: fix branch renaming not updating HEADs correctly
320
232 - Doc updates.
321 + "git branch -M a b" while on a branch that is completely unrelated
322 + to either branch a or branch b misbehaved when multiple worktree
323 + was in use. This has been fixed.
324
325 Will merge to 'master'.
326
327
237 -* ma/ts-cleanups (2017-08-23) 4 commits
238 - - ThreadSanitizer: add suppressions
239 - - strbuf_setlen: don't write to strbuf_slopbuf
240 - - pack-objects: take lock before accessing `remaining`
241 - - convert: always initialize attr_action in convert_attrs
328 +* pc/submodule-helper (2017-08-25) 4 commits
329 + - submodule: port submodule subcommand 'status' from shell to C
330 + - submodule: port set_name_rev() from shell to C
331 + - submodule--helper: introduce for_each_listed_submodule()
332 + - submodule--helper: introduce get_submodule_displaypath()
333
243 - Assorted bugfixes and clean-ups.
334 + GSoC.
335
245 - Will merge to 'next'.
336
337 +* sb/parse-options-blank-line-before-option-list (2017-08-25) 1 commit
338 + - usage_with_options: omit double new line on empty option list
339
248 -* ma/up-to-date (2017-08-23) 2 commits
249 - - treewide: correct several "up-to-date" to "up to date"
250 - - Documentation/user-manual: update outdated example output
340 + "git worktree" with no option and no subcommand showed too many
341 + blank lines in its help text, which has been reduced.
342
252 - Message and doc updates.
343
254 - Will merge to 'next'.
344 +* rs/apply-epoch (2017-08-25) 2 commits
345 + (merged to 'next' on 2017-08-26 at c2bf5ceca3)
346 + + apply: remove epoch date from regex
347 + + apply: check date of potential epoch timestamps first
348
349 + Code simplification.
350
257 -* mh/ref-lock-entry (2017-08-23) 1 commit
258 - (merged to 'next' on 2017-08-24 at 67760267f4)
259 - + refs: retry acquiring reference locks for 100ms
351 + Will merge to 'master'.
352
261 - The code to acquire a lock on a reference (e.g. while accepting a
262 - push from a client) used to immediately fail when the reference is
263 - already locked---now it waits for a very short while and retries,
264 - which can make it succeed if the lock holder was holding it during
265 - a read-only operation.
353 +
354 +* mh/notes-cleanup (2017-08-26) 12 commits
355 + (merged to 'next' on 2017-08-26 at 2d6df46966)
356 + + load_subtree(): declare some variables to be `size_t`
357 + + hex_to_bytes(): simpler replacement for `get_oid_hex_segment()`
358 + + get_oid_hex_segment(): don't pad the rest of `oid`
359 + + load_subtree(): combine some common code
360 + + get_oid_hex_segment(): return 0 on success
361 + + load_subtree(): only consider blobs to be potential notes
362 + + load_subtree(): check earlier whether an internal node is a tree entry
363 + + load_subtree(): separate logic for internal vs. terminal entries
364 + + load_subtree(): fix incorrect comment
365 + + load_subtree(): reduce the scope of some local variables
366 + + load_subtree(): remove unnecessary conditional
367 + + notes: make GET_NIBBLE macro more robust
368 +
369 + Code clean-up.
370
371 Will merge to 'master'.
372
@@ -344,60 +448,49 @@ of the repositories listed at
448 --------------------------------------------------
449 [Cooking]
450
347 -* jt/packmigrate (2017-08-23) 23 commits
348 - (merged to 'next' on 2017-08-24 at 34a628ae6c)
349 - + pack: move for_each_packed_object()
350 - + pack: move has_pack_index()
351 - + pack: move has_sha1_pack()
352 - + pack: move find_pack_entry() and make it global
353 - + pack: move find_sha1_pack()
354 - + pack: move find_pack_entry_one(), is_pack_valid()
355 - + pack: move check_pack_index_ptr(), nth_packed_object_offset()
356 - + pack: move nth_packed_object_{sha1,oid}
357 - + pack: move clear_delta_base_cache(), packed_object_info(), unpack_entry()
358 - + pack: move unpack_object_header()
359 - + pack: move get_size_from_delta()
360 - + pack: move unpack_object_header_buffer()
361 - + pack: move {,re}prepare_packed_git and approximate_object_count
362 - + pack: move install_packed_git()
363 - + pack: move add_packed_git()
364 - + pack: move unuse_pack()
365 - + pack: move use_pack()
366 - + pack: move pack-closing functions
367 - + pack: move release_pack_memory()
368 - + pack: move open_pack_index(), parse_pack_index()
369 - + pack: move pack_report()
370 - + pack: move static state variables
371 - + pack: move pack name-related functions
451 +* nd/prune-in-worktree (2017-08-24) 16 commits
452 + - refs.c: reindent get_submodule_ref_store()
453 + - refs.c: remove fallback-to-main-store code get_submodule_ref_store()
454 + - rev-list: expose and document --single-worktree
455 + - revision.c: --reflog add HEAD reflog from all worktrees
456 + - files-backend: make reflog iterator go through per-worktree reflog
457 + - revision.c: --all adds HEAD from all worktrees
458 + - refs: remove dead for_each_*_submodule()
459 + - refs.c: move for_each_remote_ref_submodule() to submodule.c
460 + - revision.c: use refs_for_each*() instead of for_each_*_submodule()
461 + - refs: add refs_head_ref()
462 + - refs: move submodule slash stripping code to get_submodule_ref_store
463 + - refs.c: refactor get_submodule_ref_store(), share common free block
464 + - revision.c: --indexed-objects add objects from all worktrees
465 + - revision.c: refactor add_index_objects_to_pending()
466 + - refs.c: use is_dir_sep() in resolve_gitlink_ref()
467 + - revision.h: new flag in struct rev_info wrt. worktree-related refs
468
373 - Code movement to make it easier to hack later.
374 -
375 - Will merge to 'master'.
469 + "git gc" and friends when multiple worktrees are used off of a
470 + single repository did not consider the index and per-worktree refs
471 + of other worktrees as the root for reachability traversal, making
472 + objects that are in use only in other worktrees to be subject to
473 + garbage collection.
474
475
378 -* jc/cutoff-config (2017-08-22) 6 commits
379 - (merged to 'next' on 2017-08-24 at 2dcbf9ae04)
380 - + rerere: allow approxidate in gc.rerereResolved/gc.rerereUnresolved
381 - + rerere: represent time duration in timestamp_t internally
382 - + t4200: parameterize "rerere gc" custom expiry test
383 - + t4200: gather "rerere gc" together
384 - + t4200: make "rerere gc" test more robust
385 - + t4200: give us a clean slate after "rerere gc" tests
476 +* ma/ts-cleanups (2017-08-23) 4 commits
477 + (merged to 'next' on 2017-08-25 at e0e8cc53ec)
478 + + ThreadSanitizer: add suppressions
479 + + strbuf_setlen: don't write to strbuf_slopbuf
480 + + pack-objects: take lock before accessing `remaining`
481 + + convert: always initialize attr_action in convert_attrs
482
387 - "[gc] rerereResolved = 5.days" used to be invalid, as the variable
388 - is defined to take an integer counting the number of days. It now
389 - is allowed.
483 + Assorted bugfixes and clean-ups.
484
485 Will merge to 'master'.
486
487
394 -* jt/stash-tests (2017-08-19) 3 commits
395 - (merged to 'next' on 2017-08-22 at 0b022697aa)
396 - + stash: add a test for stashing in a detached state
397 - + stash: add a test for when apply fails during stash branch
398 - + stash: add a test for stash create with no files
488 +* ma/up-to-date (2017-08-23) 2 commits
489 + (merged to 'next' on 2017-08-25 at 902f6e9140)
490 + + treewide: correct several "up-to-date" to "up to date"
491 + + Documentation/user-manual: update outdated example output
492
400 - Test update to improve coverage for "git stash" operations.
493 + Message and doc updates.
494
495 Will merge to 'master'.
496
@@ -425,75 +518,9 @@ of the repositories listed at
518 - hash-algo: add structure representing hash algorithm
519 - setup: expose enumerated repo info
520 - Merge branch 'bc/vcs-svn-cleanup' into bc/hash-algo
428 - (this branch uses bc/vcs-svn-cleanup; is tangled with jn/vcs-svn-cleanup.)
429 -
430 -
431 -* bc/vcs-svn-cleanup (2017-08-20) 2 commits
432 - (merged to 'next' on 2017-08-22 at d8494b5d5b)
433 - + vcs-svn: rename repo functions to "svn_repo"
434 - + vcs-svn: remove unused prototypes
435 - (this branch is used by bc/hash-algo and jn/vcs-svn-cleanup.)
436 -
437 - Code clean-up.
438 -
439 - Will merge to 'master'.
440 -
441 -
442 -* kw/write-index-reduce-alloc (2017-08-21) 3 commits
443 - (merged to 'next' on 2017-08-24 at 29f7daad85)
444 - + read-cache: avoid allocating every ondisk entry when writing
445 - + read-cache: fix memory leak in do_write_index
446 - + perf: add test for writing the index
447 -
448 - We used to spend more than necessary cycles allocating and freeing
449 - piece of memory while writing each index entry out. This has been
450 - optimized.
451 -
452 - Will merge to 'master'.
453 -
454 -
455 -* mg/killed-merge (2017-08-23) 4 commits
456 - (merged to 'next' on 2017-08-24 at 5db37fc192)
457 - + merge: save merge state earlier
458 - + merge: split write_merge_state in two
459 - + merge: clarify call chain
460 - + Documentation/git-merge: explain --continue
461 -
462 - Killing "git merge --edit" before the editor returns control left
463 - the repository in a state with MERGE_MSG but without MERGE_HEAD,
464 - which incorrectly tells the subsequent "git commit" that there was
465 - a squash merge in progress. This has been fixed.
466 -
467 - Will merge to 'master'.
468 -
469 -
470 -* po/object-id (2017-08-20) 6 commits
471 - (merged to 'next' on 2017-08-23 at 0faff383a8)
472 - + sha1_file: convert index_stream to struct object_id
473 - + sha1_file: convert hash_sha1_file_literally to struct object_id
474 - + sha1_file: convert index_fd to struct object_id
475 - + sha1_file: convert index_path to struct object_id
476 - + read-cache: convert to struct object_id
477 - + builtin/hash-object: convert to struct object_id
478 -
479 - Will merge to 'master'.
480 -
481 -
482 -* tb/apply-with-crlf (2017-08-19) 2 commits
483 - (merged to 'next' on 2017-08-22 at f92bf67061)
484 - + apply: file commited with CRLF should roundtrip diff and apply
485 - + convert: add SAFE_CRLF_KEEP_CRLF
486 - (this branch is tangled with jc/apply-with-crlf.)
487 -
488 - "git apply" that is used as a better "patch -p1" failed to apply a
489 - taken from a file with CRLF line endings to a file with CRLF line
490 - endings. The root cause was because it misused convert_to_git()
491 - that tried to do "safe-crlf" processing by looking at the index
492 - entry at the same path, which is a nonsense---in that mode, "apply"
493 - is not working on the data in (or derived from) the index at all.
494 - This has been fixed.
521
496 - Will merge to 'master'.
522 + RFC
523 + cf. <20170821000022.26729-1-sandals@crustytoothpaste.net>
524
525
526 * ks/branch-set-upstream (2017-08-17) 3 commits
@@ -546,28 +573,6 @@ of the repositories listed at
573 Will be rerolled after tc/curl-with-backports stabilizes.
574
575
549 -* jk/trailers-parse (2017-08-20) 9 commits
550 - (merged to 'next' on 2017-08-22 at 2d4d937141)
551 - + doc/interpret-trailers: fix "the this" typo
552 - (merged to 'next' on 2017-08-19 at faa63f8196)
553 - + pretty: support normalization options for %(trailers)
554 - + t4205: refactor %(trailers) tests
555 - + pretty: move trailer formatting to trailer.c
556 - + interpret-trailers: add --parse convenience option
557 - + interpret-trailers: add an option to unfold values
558 - + interpret-trailers: add an option to show only existing trailers
559 - + interpret-trailers: add an option to show only the trailers
560 - + trailer: put process_trailers() options into a struct
561 -
562 - "git interpret-trailers" has been taught a "--parse" and a few
563 - other options to make it easier for scripts to grab existing
564 - trailer lines from a commit log message.
565 -
566 - Will merge to 'master'.
567 - Possible leftover bits are mentioned in
568 - cf. <20170820094009.z23wclpku35txflg@sigill.intra.peff.net>
569 -
570 -
576 * mk/use-size-t-in-zlib (2017-08-10) 1 commit
577 . zlib.c: use size_t for size
578
@@ -591,18 +596,6 @@ of the repositories listed at
596 cf. <1502914591-26215-1-git-send-email-martin@mail.zuhause>
597
598
594 -* jt/diff-color-move-fix (2017-08-16) 3 commits
595 - (merged to 'next' on 2017-08-19 at 6ae3831c8c)
596 - + diff: define block by number of alphanumeric chars
597 - + diff: respect MIN_BLOCK_LENGTH for last block
598 - + diff: avoid redundantly clearing a flag
599 - (this branch uses sb/diff-color-move.)
600 -
601 - A handful of bugfixes and an improvement to "diff --color-moved".
602 -
603 - Will merge to 'master'.
604 -
605 -
599 * bw/git-clang-format (2017-08-14) 2 commits
600 - Makefile: add style build rule
601 - clang-format: outline the git project's coding style
@@ -611,19 +604,6 @@ of the repositories listed at
604 out coding style issues.
605
606
614 -* pb/trailers-from-command-line (2017-08-14) 4 commits
615 - (merged to 'next' on 2017-08-19 at b12342e49e)
616 - + interpret-trailers: fix documentation typo
617 - + interpret-trailers: add options for actions
618 - + trailers: introduce struct new_trailer_item
619 - + trailers: export action enums and corresponding lookup functions
620 -
621 - "git interpret-trailers" learned to take the trailer specifications
622 - from the command line that overrides the configured values.
623 -
624 - Will merge to 'master'.
625 -
626 -
607 * sb/submodule-recursive-checkout-detach-head (2017-07-28) 2 commits
608 - Documentation/checkout: clarify submodule HEADs to be detached
609 - recursive submodules: detach HEAD from new state
@@ -639,45 +619,15 @@ of the repositories listed at
619
620
621 * ti/external-sha1dc (2017-08-16) 2 commits
642 - - sha1dc: allow building with the external sha1dc library
643 - - sha1dc: build git plumbing code more explicitly
622 + (merged to 'next' on 2017-08-26 at a0fb4e91a5)
623 + + sha1dc: allow building with the external sha1dc library
624 + + sha1dc: build git plumbing code more explicitly
625
626 Platforms that ship with a separate sha1 with collision detection
627 library can link to it instead of using the copy we ship as part of
628 our source tree.
629
649 - Waiting for reviews.
650 - cf. <20170815120417.31616-1-tiwai@suse.de>
651 -
652 -
653 -* bw/submodule-config-cleanup (2017-08-03) 17 commits
654 - (merged to 'next' on 2017-08-24 at e35d58c4c6)
655 - + submodule: remove gitmodules_config
656 - + unpack-trees: improve loading of .gitmodules
657 - + submodule-config: lazy-load a repository's .gitmodules file
658 - + submodule-config: move submodule-config functions to submodule-config.c
659 - + submodule-config: remove support for overlaying repository config
660 - + diff: stop allowing diff to have submodules configured in .git/config
661 - + submodule: remove submodule_config callback routine
662 - + unpack-trees: don't respect submodule.update
663 - + submodule: don't rely on overlayed config when setting diffopts
664 - + fetch: don't overlay config with submodule-config
665 - + submodule--helper: don't overlay config in update-clone
666 - + submodule--helper: don't overlay config in remote_submodule_branch
667 - + add, reset: ensure submodules can be added or reset
668 - + submodule: don't use submodule_from_name
669 - + t7411: check configuration parsing errors
670 - + Merge branch 'bc/object-id' into bw/submodule-config-cleanup
671 - + Merge branch 'bw/grep-recurse-submodules' into bw/submodule-config-cleanup
672 -
673 - Code clean-up to avoid mixing values read from the .gitmodules file
674 - and values read from the .git/config file.
675 -
630 Will merge to 'master'.
677 - So, after the recent discussion around submodule.<name>.update (and
678 - its resolution "use submodule.<name>.active; "reset --hard" must
679 - ignore the .update thing"), this is now good to go, I presume?
680 - Please yell at me that I am clueless if that is not the case ;-)
631
632
633 * jk/check-ref-format-oor-fix (2017-07-14) 1 commit
@@ -746,74 +696,14 @@ of the repositories listed at
696 "I told you so" when users complain after we merge this down to
697 'master'.
698
749 -
750 -* sb/diff-color-move (2017-06-30) 26 commits
751 - (merged to 'next' on 2017-08-19 at a239d031bc)
752 - + diff: document the new --color-moved setting
753 - + diff.c: add dimming to moved line detection
754 - + diff.c: color moved lines differently, plain mode
755 - + diff.c: color moved lines differently
756 - + diff.c: buffer all output if asked to
757 - + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY
758 - + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_STAT_SEP
759 - + diff.c: convert word diffing to use emit_diff_symbol
760 - + diff.c: convert show_stats to use emit_diff_symbol
761 - + diff.c: convert emit_binary_diff_body to use emit_diff_symbol
762 - + submodule.c: migrate diff output to use emit_diff_symbol
763 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_REWRITE_DIFF
764 - + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_BINARY_FILES
765 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_HEADER
766 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_FILEPAIR_{PLUS, MINUS}
767 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_INCOMPLETE
768 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_WORDS[_PORCELAIN]
769 - + diff.c: migrate emit_line_checked to use emit_diff_symbol
770 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF
771 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_FRAGINFO
772 - + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER
773 - + diff.c: introduce emit_diff_symbol
774 - + diff.c: factor out diff_flush_patch_all_file_pairs
775 - + diff.c: move line ending check into emit_hunk_header
776 - + diff.c: readability fix
777 - + Merge branch 'sb/hashmap-customize-comparison' into sb/diff-color-move
778 - (this branch is used by jt/diff-color-move-fix.)
779 -
780 - "git diff" has been taught to optionally paint new lines that are
781 - the same as deleted lines elsewhere differently from genuinely new
782 - lines.
783 -
784 - Will merge to 'master'.
785 -
699 --------------------------------------------------
700 [Discarded]
701
789 -* nd/prune-in-worktree (2017-04-24) 12 commits
790 - . rev-list: expose and document --single-worktree
791 - . revision.c: --reflog add HEAD reflog from all worktrees
792 - . files-backend: make reflog iterator go through per-worktree reflog
793 - . revision.c: --all adds HEAD from all worktrees
794 - . refs: remove dead for_each_*_submodule()
795 - . revision.c: use refs_for_each*() instead of for_each_*_submodule()
796 - . refs: add refs_head_ref()
797 - . refs: move submodule slash stripping code to get_submodule_ref_store
798 - . refs.c: refactor get_submodule_ref_store(), share common free block
799 - . revision.c: --indexed-objects add objects from all worktrees
800 - . revision.c: refactor add_index_objects_to_pending()
801 - . revision.h: new flag in struct rev_info wrt. worktree-related refs
802 -
803 - "git gc" and friends when multiple worktrees are used off of a
804 - single repository did not consider the index and per-worktree refs
805 - of other worktrees as the root for reachability traversal, making
806 - objects that are in use only in other worktrees to be subject to
807 - garbage collection.
808 -
809 -
810 -* jc/apply-with-crlf (2017-08-16) 6 commits
702 +* jc/apply-with-crlf (2017-08-16) 5 commits
703 . apply: clarify read_old_data() is about no-index case
704 . apply: localize the CRLF business to read_old_data()
705 . apply: only pay attention to CRLF in the preimage
706 . apply: remove unused field apply_state.flags
707 . apply: file commited with CRLF should roundtrip diff and apply
816 - + convert: add SAFE_CRLF_KEEP_CRLF
817 - (this branch is tangled with tb/apply-with-crlf.)
708
709 This served as an input to updated tb/apply-with-crlf.