What's cooking (2017/01 #06)

Junio C Hamano committed Jan 31, 2017 at 14:00 UTC 677358c8285b58a5e8499d6ecbdb5b00849598bf
1 file changed +482 -368
whats-cooking.txt
+482 -368
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jan 2017, #05; Thu, 26)
4 -X-master-at: 4e59582ff70d299f5a88449891e78d15b4b3fabe
5 -X-next-at: 5f4715cea687c4077e2acd25706e1369a5cb338e
3 +Subject: What's cooking in git.git (Jan 2017, #06; Tue, 31)
4 +X-master-at: 8f60064c1f538f06e1c579cbd9840b86b10bcd3d
5 +X-next-at: d13081a61a6c1d42f310f616f74992dc2def6583
6
7 -What's cooking in git.git (Jan 2017, #05; Thu, 26)
7 +What's cooking in git.git (Jan 2017, #06; Tue, 31)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,129 +12,385 @@ 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 +Two biggies from Dscho are now in 'master'. Another thanks goes to
16 +him for pointing out that I had a wrong version of isatty() fix
17 +earlier in 'maint' and 'master', which is now fixed by merging the
18 +updated one in both of these branches. Please give the tip of
19 +'maint' a quick look, as I want to tag and push out 2.11.1 later
20 +this week, probably at the same time as 2.12-rc0 goes out.
21 +
22 You can find the changes described here in the integration branches
23 of the repositories listed at
24
25 http://git-blame.blogspot.com/p/git-public-repositories.html
26
27 +--------------------------------------------------
28 +[Graduated to "master"]
29 +
30 +* bw/push-submodule-only (2016-12-20) 3 commits
31 + (merged to 'next' on 2017-01-23 at d6cd1c60ae)
32 + + push: add option to push only submodules
33 + + submodules: add RECURSE_SUBMODULES_ONLY value
34 + + transport: reformat flag #defines to be more readable
35 +
36 + "git submodule push" learned "--recurse-submodules=only option to
37 + push submodules out without pushing the top-level superproject.
38 +
39 +
40 +* jk/clear-delta-base-cache-fix (2017-01-19) 1 commit
41 + (merged to 'next' on 2017-01-23 at 5f4af2b0a5)
42 + + clear_delta_base_cache(): don't modify hashmap while iterating
43 +
44 + A crashing bug introduced in v2.11 timeframe has been found (it is
45 + triggerable only in fast-import) and fixed.
46 +
47 +
48 +* jk/coding-guidelines-update (2017-01-17) 1 commit
49 + (merged to 'next' on 2017-01-23 at 8c57afa288)
50 + + CodingGuidelines: clarify multi-line brace style
51 +
52 + Developer doc update.
53 +
54 +
55 +* jk/fsck-connectivity-check-fix (2017-01-26) 9 commits
56 + (merged to 'next' on 2017-01-26 at dd03f7a17f)
57 + + fsck: lazily load types under --connectivity-only
58 + + fsck: move typename() printing to its own function
59 + (merged to 'next' on 2017-01-25 at f3d7d93785)
60 + + t1450: use "mv -f" within loose object directory
61 + (merged to 'next' on 2017-01-23 at e8e9b76b84)
62 + + fsck: check HAS_OBJ more consistently
63 + + fsck: do not fallback "git fsck <bogus>" to "git fsck"
64 + + fsck: tighten error-checks of "git fsck <head>"
65 + + fsck: prepare dummy objects for --connectivity-check
66 + + fsck: report trees as dangling
67 + + t1450: clean up sub-objects in duplicate-entry test
68 +
69 + "git fsck --connectivity-check" was not working at all.
70 +
71 +
72 +* jk/loose-object-fsck (2017-01-15) 6 commits
73 + (merged to 'next' on 2017-01-23 at 4302ad090d)
74 + + fsck: detect trailing garbage in all object types
75 + + fsck: parse loose object paths directly
76 + + sha1_file: add read_loose_object() function
77 + + t1450: test fsck of packed objects
78 + + sha1_file: fix error message for alternate objects
79 + + t1450: refactor loose-object removal
80 +
81 + "git fsck" inspects loose objects more carefully now.
82 +
83 +
84 +* jk/vreport-sanitize (2017-01-11) 2 commits
85 + (merged to 'next' on 2017-01-18 at 4bbf370981)
86 + + vreport: sanitize ASCII control chars
87 + + Revert "vreportf: avoid intermediate buffer"
88 +
89 + An error message with an ASCII control character like '\r' in it
90 + can alter the message to hide its early part, which is problematic
91 + when a remote side gives such an error message that the local side
92 + will relay with a "remote: " prefix.
93 +
94 +
95 +* js/difftool-builtin (2017-01-25) 4 commits
96 + (merged to 'next' on 2017-01-25 at 87d2a0976a)
97 + + difftool: hack around -Wzero-length-format warning
98 + (merged to 'next' on 2017-01-23 at 6f4810dbd9)
99 + + difftool: retire the scripted version
100 + + difftool: implement the functionality in the builtin
101 + + difftool: add a skeleton for the upcoming builtin
102 +
103 + Rewrite a scripted porcelain "git difftool" in C.
104 +
105 +
106 +* js/exec-path-coverity-workaround (2017-01-09) 2 commits
107 + (merged to 'next' on 2017-01-23 at bf5dfbf860)
108 + + git_exec_path: do not return the result of getenv()
109 + + git_exec_path: avoid Coverity warning about unfree()d result
110 +
111 + Code cleanup.
112 + Split out of another topic.
113 +
114 +
115 +* js/mingw-isatty (2017-01-18) 1 commit
116 + (merged to 'next' on 2017-01-23 at ae0f80e058)
117 + + mingw: follow-up to "replace isatty() hack"
118 +
119 + An update to a topic that is already in 'master'.
120 +
121 +
122 +* js/remote-rename-with-half-configured-remote (2017-01-19) 2 commits
123 + (merged to 'next' on 2017-01-23 at a1b655dbac)
124 + + remote rename: more carefully determine whether a remote is configured
125 + + remote rename: demonstrate a bogus "remote exists" bug
126 +
127 + With anticipatory tweaking for remotes defined in ~/.gitconfig
128 + (e.g. "remote.origin.prune" set to true, even though there may or
129 + may not actually be "origin" remote defined in a particular Git
130 + repository), "git remote rename" and other commands misinterpreted
131 + and behaved as if such a non-existing remote actually existed.
132 +
133 +
134 +* js/sequencer-i-countdown-3 (2017-01-17) 38 commits
135 + (merged to 'next' on 2017-01-23 at 251dd15139)
136 + + sequencer (rebase -i): write out the final message
137 + + sequencer (rebase -i): write the progress into files
138 + + sequencer (rebase -i): show the progress
139 + + sequencer (rebase -i): suggest --edit-todo upon unknown command
140 + + sequencer (rebase -i): show only failed cherry-picks' output
141 + + sequencer (rebase -i): show only failed `git commit`'s output
142 + + sequencer: use run_command() directly
143 + + sequencer: update reading author-script
144 + + sequencer (rebase -i): differentiate between comments and 'noop'
145 + + sequencer (rebase -i): implement the 'drop' command
146 + + sequencer (rebase -i): allow rescheduling commands
147 + + sequencer (rebase -i): respect strategy/strategy_opts settings
148 + + sequencer (rebase -i): respect the rebase.autostash setting
149 + + sequencer (rebase -i): run the post-rewrite hook, if needed
150 + + sequencer (rebase -i): record interrupted commits in rewritten, too
151 + + sequencer (rebase -i): copy commit notes at end
152 + + sequencer (rebase -i): set the reflog message consistently
153 + + sequencer (rebase -i): refactor setting the reflog message
154 + + sequencer (rebase -i): allow fast-forwarding for edit/reword
155 + + sequencer (rebase -i): implement the 'reword' command
156 + + sequencer (rebase -i): leave a patch upon error
157 + + sequencer (rebase -i): update refs after a successful rebase
158 + + sequencer (rebase -i): the todo can be empty when continuing
159 + + sequencer (rebase -i): skip some revert/cherry-pick specific code path
160 + + sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed
161 + + sequencer (rebase -i): allow continuing with staged changes
162 + + sequencer (rebase -i): write an author-script file
163 + + sequencer (rebase -i): implement the short commands
164 + + sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
165 + + sequencer (rebase -i): write the 'done' file
166 + + sequencer (rebase -i): learn about the 'verbose' mode
167 + + sequencer (rebase -i): implement the 'exec' command
168 + + sequencer (rebase -i): implement the 'edit' command
169 + + sequencer (rebase -i): implement the 'noop' command
170 + + sequencer: support a new action: 'interactive rebase'
171 + + sequencer: use a helper to find the commit message
172 + + sequencer: move "else" keyword onto the same line as preceding brace
173 + + sequencer: avoid unnecessary curly braces
174 +
175 + The sequencer machinery has been further enhanced so that a later
176 + set of patches can start using it to reimplement "rebase -i".
177 + I think I've said everything that needs to be said on this topic.
178 +
179 +
180 +* ls/travis-p4-on-macos (2017-01-23) 1 commit
181 + (merged to 'next' on 2017-01-23 at 2d51987faa)
182 + + travis-ci: fix Perforce install on macOS
183 +
184 + Update the definition of the MacOSX test environment used by
185 + TravisCI.
186 +
187 +
188 +* rs/qsort-s (2017-01-23) 5 commits
189 + (merged to 'next' on 2017-01-23 at 7e2813848b)
190 + + ref-filter: use QSORT_S in ref_array_sort()
191 + + string-list: use QSORT_S in string_list_sort()
192 + + perf: add basic sort performance test
193 + + add QSORT_S
194 + + compat: add qsort_s()
195 +
196 + A few codepaths had to rely on a global variable when sorting
197 + elements of an array because sort(3) API does not allow extra data
198 + to be passed to the comparison function. Use qsort_s() when
199 + natively available, and a fallback implementation of it when not,
200 + to eliminate the need, which is a prerequisite for making the
201 + codepath reentrant.
202 +
203 +
204 +* sb/in-core-index-doc (2017-01-19) 4 commits
205 + (merged to 'next' on 2017-01-23 at 30224463e8)
206 + + documentation: retire unfinished documentation
207 + + cache.h: document add_[file_]to_index
208 + + cache.h: document remove_index_entry_at
209 + + cache.h: document index_name_pos
210 +
211 + Documentation and in-code comments updates.
212 +
213 +
214 +* sb/retire-convert-objects-from-contrib (2017-01-19) 1 commit
215 + (merged to 'next' on 2017-01-23 at decc1e237d)
216 + + contrib: remove git-convert-objects
217 +
218 + Remove an ancient tool left in contrib/.
219 +
220 +
221 +* st/verify-tag (2017-01-18) 6 commits
222 + (merged to 'next' on 2017-01-23 at 2810959427)
223 + + t/t7004-tag: Add --format specifier tests
224 + + t/t7030-verify-tag: Add --format specifier tests
225 + + builtin/tag: add --format argument for tag -v
226 + + builtin/verify-tag: add --format to verify-tag
227 + + ref-filter: add function to print single ref_array_item
228 + + gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag
229 +
230 + "git tag" and "git verify-tag" learned to put GPG verification
231 + status in their "--format=<placeholders>" output format.
232 +
233 +
234 +* vp/show-ref-verify-head (2017-01-23) 6 commits
235 + (merged to 'next' on 2017-01-23 at af6dd9d239)
236 + + show-ref: remove a stale comment
237 + + show-ref: remove dead `if (verify)' check
238 + + show-ref: detect dangling refs under --verify as well
239 + + show-ref: move --quiet handling into show_one()
240 + + show-ref: allow -d to work with --verify
241 + + show-ref: accept HEAD with --verify
242 +
243 + "git show-ref HEAD" used with "--verify" because the user is not
244 + interested in seeing refs/remotes/origin/HEAD, and used with
245 + "--head" because the user does not want HEAD to be filtered out,
246 + i.e. "git show-ref --head --verify HEAD", did not work as expected.
247 +
248 --------------------------------------------------
249 [New Topics]
250
23 -* js/mingw-hooks-with-exe-suffix (2017-01-26) 1 commit
24 - - mingw: allow hooks to be .exe files
251 +* cw/doc-sign-off (2017-01-27) 1 commit
252 + - doc: clarify distinction between sign-off and pgp-signing
253
26 - Names of the various hook scripts must be spelled exactly, but on
27 - Windows, an .exe binary must be named with .exe suffix; notice
28 - $GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook.
254 + Doc update.
255
256 Will merge to 'next'.
257
258
33 -* js/retire-relink (2017-01-25) 2 commits
34 - - relink: really remove the command
35 - - relink: retire the command
259 +* jk/delta-chain-limit (2017-01-27) 2 commits
260 + - pack-objects: convert recursion to iteration in break_delta_chain()
261 + - pack-objects: enforce --depth limit in reused deltas
262
37 - Cruft removal.
263 + "git repack --depth=<n>" for a long time busted the specified depth
264 + when reusing delta from existing packs. This has been corrected.
265
266 Will merge to 'next'.
267
268
42 -* js/status-pre-rebase-i (2017-01-26) 1 commit
43 - - status: be prepared for not-yet-started interactive rebase
269 +* js/re-running-failed-tests (2017-01-27) 1 commit
270 + - t/Makefile: add a rule to re-run previously-failed tests
271
45 - After starting "git rebase -i", which first opens the user's editor
46 - to edit the series of patches to apply, but before saving the
47 - contents of that file, "git status" failed to show the current
48 - state (i.e. you are in an interactive rebase session, but you have
49 - applied no steps yet) correctly.
272 + "make -C t failed" will now run only the tests that failed in the
273 + previous run. This is usable only when prove is not use, and gives
274 + a useless error message when run after "make clean".
275
276 Will merge to 'next'.
277
278
54 -* ps/urlmatch-wildcard (2017-01-26) 5 commits
55 - - SQUASH???
56 - - urlmatch: allow globbing for the URL host part
57 - - urlmatch: split host and port fields in `struct url_info`
58 - - urlmatch: enable normalization of URLs with globs
59 - - mailmap: add Patrick Steinhardt's work address
279 +* js/unzip-in-usr-bin-workaround (2017-01-27) 1 commit
280 + - test-lib: on FreeBSD, look for unzip(1) in /usr/local/bin/
281
61 - The <url> part in "http.<url>.<variable>" configuration variable
62 - can now be spelled with '*' that serves as wildcard.
63 - E.g. "http.https://*.example.com.proxy" can be used to specify the
64 - proxy used for https://a.example.com, https://b.example.com, etc.,
65 - i.e. any host in the example.com domain.
282 + Test tweak for FreeBSD where /usr/bin/unzip is unsuitable to run
283 + our tests but /usr/local/bin/unzip is usable.
284
285 + Will merge to 'next'.
286
68 -* rs/absolute-pathdup (2017-01-26) 2 commits
69 - - use absolute_pathdup()
70 - - abspath: add absolute_pathdup()
287
72 - Code cleanup.
288 +* gv/mingw-p4-mapuser (2017-01-30) 1 commit
289 + - git-p4: fix git-p4.mapUser on Windows
290 +
291 + "git p4" did not work well with multiple git-p4.mapUser entries on
292 + Windows.
293
294 Will merge to 'next'.
295
296
77 -* sb/submodule-recursive-absorb (2017-01-26) 3 commits
78 - - submodule absorbing: fix worktree/gitdir pointers recursively for non-moves
79 - - cache.h: expose the dying procedure for reading gitlinks
80 - - setup: add gentle version of resolve_git_dir
297 +* hv/mingw-help-is-executable (2017-01-30) 1 commit
298 + - help: improve is_executable() on Windows
299
82 - When a submodule "sub", which has another submodule "module" nested
83 - within it, is "absorbed" into the top-level superproject, the inner
84 - submodule "module" is left in a strange state.
300 + "git help" enumerates executable files in $PATH; the implementation
301 + of "is this file executable?" on Windows has been optimized.
302
303 Will merge to 'next'.
304
305
89 -* sb/submodule-update-initial-runs-custom-script (2017-01-26) 1 commit
90 - - submodule update: run custom update script for initial populating as well
306 +* cw/log-updates-for-all-refs-really (2017-01-31) 3 commits
307 + - update-ref: add test cases for bare repository
308 + - refs: add option core.logAllRefUpdates = always
309 + - config: add markup to core.logAllRefUpdates doc
310
92 - The user can specify a custom update method that is run when
93 - "submodule update" updates an already checked out submodule. This
94 - was ignored when checking the submodule out for the first time and
95 - we instead always just checked out the commit that is bound to the
96 - path in the superproject's index.
311 + The "core.logAllRefUpdates" that used to be boolean has been
312 + enhanced to take 'always' as well, to record ref updates to refs
313 + other than the ones that are expected to be updated (i.e. branches,
314 + remote-tracking branches and notes).
315
316 Will merge to 'next'.
317
318
101 -* sf/putty-w-args (2017-01-26) 3 commits
102 - - connect: support GIT_SSH_VARIANT and ssh.variant
103 - - connect: rename tortoiseplink and putty variables
104 - - connect: handle putty/plink also in GIT_SSH_COMMAND
319 +* mm/merge-rename-delete-message (2017-01-30) 1 commit
320 + - merge-recursive: make "CONFLICT (rename/delete)" message show both paths
321
106 - The command line options for ssh invocation needs to be tweaked for
107 - some implementations of SSH (e.g. PuTTY plink wants "-P <port>"
108 - while OpenSSH wants "-p <port>" to specify port to connect to), and
109 - the variant was guessed when GIT_SSH environment variable is used
110 - to specify it. Extend the guess to the command specified by the
111 - newer GIT_SSH_COMMAND and also core.sshcommand configuration
112 - variable, and give an escape hatch for users to deal with
113 - misdetected cases.
322
115 - Expecting a reroll of the last step.
323 +* mm/reset-facl-before-umask-test (2017-01-30) 1 commit
324 + - t0001: don't let a default ACL interfere with the umask test
325
117 ---------------------------------------------------
118 -[Stalled]
326 + Test tweaks for those who have default ACL in their git source tree
327 + that interfere with the umask test.
328
120 -* jc/diff-b-m (2015-02-23) 5 commits
121 - . WIPWIP
122 - . WIP: diff-b-m
123 - - diffcore-rename: allow easier debugging
124 - - diffcore-rename.c: add locate_rename_src()
125 - - diffcore-break: allow debugging
329 + Will merge to 'next'.
330
127 - "git diff -B -M" produced incorrect patch when the postimage of a
128 - completely rewritten file is similar to the preimage of a removed
129 - file; such a resulting file must not be expressed as a rename from
130 - other place.
331
132 - The fix in this patch is broken, unfortunately.
332 +* rs/object-id (2017-01-30) 3 commits
333 + - checkout: convert post_checkout_hook() to struct object_id
334 + - use oidcpy() for copying hashes between instances of struct object_id
335 + - use oid_to_hex_r() for converting struct object_id hashes to hex strings
336
134 - Will discard.
337 + "uchar [40]" to "struct object_id" conversion continues.
338 +
339 + Will merge to 'next'.
340 +
341 +
342 +* rs/swap (2017-01-30) 5 commits
343 + - graph: use SWAP macro
344 + - diff: use SWAP macro
345 + - use SWAP macro
346 + - apply: use SWAP macro
347 + - add SWAP macro
348 +
349 + Code clean-up.
350 +
351 + Will merge to 'next'.
352 +
353 +
354 +* pl/complete-diff-submodule-diff (2017-01-30) 1 commit
355 + - Completion: Add support for --submodule=diff
356 +
357 + The command line completion (in contrib/) learned that
358 + "git diff --submodule=" can take "diff" as a recently added option.
359 +
360 + Will merge to 'next'.
361 +
362 +
363 +* rs/receive-pack-cleanup (2017-01-30) 1 commit
364 + - receive-pack: call string_list_clear() unconditionally
365 +
366 + Code clean-up.
367 +
368 + Will merge to 'next'.
369 +
370 +
371 +* sb/submodule-add-force (2016-11-29) 1 commit
372 + + submodule add: extend force flag to add existing repos
373 + (this branch is used by sb/push-make-submodule-check-the-default.)
374 +
375 + "git submodule add" used to be confused and refused to add a
376 + locally created repository; users can now use "--force" option
377 + to add them.
378 +
379 + Will merge to 'next'.
380
381 --------------------------------------------------
137 -[Cooking]
382 +[Stalled]
383 +
384 +* ls/p4-path-encoding (2016-12-18) 1 commit
385 + - git-p4: fix git-p4.pathEncoding for removed files
386 +
387 + When "git p4" imports changelist that removes paths, it failed to
388 + convert pathnames when the p4 used encoding different from the one
389 + used on the Git side. This has been corrected.
390 +
391 + Will be rerolled.
392 + cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com>
393 +
394
395 * sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
396 - grep: use '/' delimiter for paths
@@ -156,172 +412,177 @@ of the repositories listed at
412 Waiting for the review discussion to settle, followed by a reroll.
413
414
159 -* vp/show-ref-verify-head (2017-01-23) 6 commits
160 - (merged to 'next' on 2017-01-23 at af6dd9d239)
161 - + show-ref: remove a stale comment
162 - + show-ref: remove dead `if (verify)' check
163 - + show-ref: detect dangling refs under --verify as well
164 - + show-ref: move --quiet handling into show_one()
165 - + show-ref: allow -d to work with --verify
166 - + show-ref: accept HEAD with --verify
415 +* mh/ref-remove-empty-directory (2017-01-07) 23 commits
416 + - files_transaction_commit(): clean up empty directories
417 + - try_remove_empty_parents(): teach to remove parents of reflogs, too
418 + - try_remove_empty_parents(): don't trash argument contents
419 + - try_remove_empty_parents(): rename parameter "name" -> "refname"
420 + - delete_ref_loose(): inline function
421 + - delete_ref_loose(): derive loose reference path from lock
422 + - log_ref_write_1(): inline function
423 + - log_ref_setup(): manage the name of the reflog file internally
424 + - log_ref_write_1(): don't depend on logfile argument
425 + - log_ref_setup(): pass the open file descriptor back to the caller
426 + - log_ref_setup(): improve robustness against races
427 + - log_ref_setup(): separate code for create vs non-create
428 + - log_ref_write(): inline function
429 + - rename_tmp_log(): improve error reporting
430 + - rename_tmp_log(): use raceproof_create_file()
431 + - lock_ref_sha1_basic(): use raceproof_create_file()
432 + - lock_ref_sha1_basic(): inline constant
433 + - raceproof_create_file(): new function
434 + - safe_create_leading_directories(): set errno on SCLD_EXISTS
435 + - safe_create_leading_directories_const(): preserve errno
436 + - t5505: use "for-each-ref" to test for the non-existence of references
437 + - refname_is_safe(): correct docstring
438 + - files_rename_ref(): tidy up whitespace
439
168 - "git show-ref HEAD" used with "--verify" because the user is not
169 - interested in seeing refs/remotes/origin/HEAD, and used with
170 - "--head" because the user does not want HEAD to be filtered out,
171 - i.e. "git show-ref --head --verify HEAD", did not work as expected.
440 + Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
441 + once there no longer is any other branch whose name begins with
442 + "foo/", but we didn't do so so far. Now we do.
443
173 - Will merge to 'master'.
444 + Expecting a reroll.
445 + cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu>
446
447
176 -* bc/use-asciidoctor-opt (2017-01-26) 9 commits
177 - - SQUASH???
178 - - Documentation: implement linkgit macro for Asciidoctor
179 - - Makefile: add a knob to enable the use of Asciidoctor
180 - - Documentation: move dblatex arguments into variable
181 - - Documentation: add XSLT to fix DocBook for Texinfo
182 - - Documentation: sort sources for gitman.texi
183 - - Documentation: remove unneeded argument in cat-texi.perl
184 - - Documentation: modernize cat-texi.perl
185 - - Documentation: fix warning in cat-texi.perl
448 +* jc/diff-b-m (2015-02-23) 5 commits
449 + . WIPWIP
450 + . WIP: diff-b-m
451 + - diffcore-rename: allow easier debugging
452 + - diffcore-rename.c: add locate_rename_src()
453 + - diffcore-break: allow debugging
454
187 - Asciidoctor, an alternative reimplementation of AsciiDoc, still
188 - needs some changes to work with documents meant to be formatted
189 - with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of
190 - the box to document our pages is getting closer to reality.
455 + "git diff -B -M" produced incorrect patch when the postimage of a
456 + completely rewritten file is similar to the preimage of a removed
457 + file; such a resulting file must not be expressed as a rename from
458 + other place.
459
460 + The fix in this patch is broken, unfortunately.
461
193 -* ls/travis-p4-on-macos (2017-01-23) 1 commit
194 - (merged to 'next' on 2017-01-23 at 2d51987faa)
195 - + travis-ci: fix Perforce install on macOS
462 + Will discard.
463
197 - Update the definition of the MacOSX test environment used by
198 - TravisCI.
464 +--------------------------------------------------
465 +[Cooking]
466
200 - Will merge to 'master'.
467 +* js/mingw-hooks-with-exe-suffix (2017-01-30) 1 commit
468 + - mingw: allow hooks to be .exe files
469
470 + Names of the various hook scripts must be spelled exactly, but on
471 + Windows, an .exe binary must be named with .exe suffix; notice
472 + $GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook.
473
203 -* rs/qsort-s (2017-01-23) 5 commits
204 - (merged to 'next' on 2017-01-23 at 7e2813848b)
205 - + ref-filter: use QSORT_S in ref_array_sort()
206 - + string-list: use QSORT_S in string_list_sort()
207 - + perf: add basic sort performance test
208 - + add QSORT_S
209 - + compat: add qsort_s()
474 + Will merge to 'next'.
475
211 - A few codepaths had to rely on a global variable when sorting
212 - elements of an array because sort(3) API does not allow extra data
213 - to be passed to the comparison function. Use qsort_s() when
214 - natively available, and a fallback implementation of it when not,
215 - to eliminate the need, which is a prerequisite for making the
216 - codepath reentrant.
476
218 - Will merge to 'master'.
477 +* js/retire-relink (2017-01-25) 2 commits
478 + - relink: really remove the command
479 + - relink: retire the command
480
481 + Cruft removal.
482
221 -* jk/coding-guidelines-update (2017-01-17) 1 commit
222 - (merged to 'next' on 2017-01-23 at 8c57afa288)
223 - + CodingGuidelines: clarify multi-line brace style
483 + Will merge to 'next'.
484
225 - Developer doc update.
485 +
486 +* js/status-pre-rebase-i (2017-01-26) 1 commit
487 + (merged to 'next' on 2017-01-31 at 09e51b2e39)
488 + + status: be prepared for not-yet-started interactive rebase
489 +
490 + After starting "git rebase -i", which first opens the user's editor
491 + to edit the series of patches to apply, but before saving the
492 + contents of that file, "git status" failed to show the current
493 + state (i.e. you are in an interactive rebase session, but you have
494 + applied no steps yet) correctly.
495
496 Will merge to 'master'.
497
498
230 -* jk/fsck-connectivity-check-fix (2017-01-26) 9 commits
231 - (merged to 'next' on 2017-01-26 at dd03f7a17f)
232 - + fsck: lazily load types under --connectivity-only
233 - + fsck: move typename() printing to its own function
234 - (merged to 'next' on 2017-01-25 at f3d7d93785)
235 - + t1450: use "mv -f" within loose object directory
236 - (merged to 'next' on 2017-01-23 at e8e9b76b84)
237 - + fsck: check HAS_OBJ more consistently
238 - + fsck: do not fallback "git fsck <bogus>" to "git fsck"
239 - + fsck: tighten error-checks of "git fsck <head>"
240 - + fsck: prepare dummy objects for --connectivity-check
241 - + fsck: report trees as dangling
242 - + t1450: clean up sub-objects in duplicate-entry test
499 +* ps/urlmatch-wildcard (2017-01-31) 5 commits
500 + . urlmatch: allow globbing for the URL host part
501 + . urlmatch: include host in urlmatch ranking
502 + . urlmatch: split host and port fields in `struct url_info`
503 + . urlmatch: enable normalization of URLs with globs
504 + . mailmap: add Patrick Steinhardt's work address
505
244 - "git fsck --connectivity-check" was not working at all.
506 + The <url> part in "http.<url>.<variable>" configuration variable
507 + can now be spelled with '*' that serves as wildcard.
508 + E.g. "http.https://*.example.com.proxy" can be used to specify the
509 + proxy used for https://a.example.com, https://b.example.com, etc.,
510 + i.e. any host in the example.com domain.
511
246 - Will merge to 'master'.
512 + With the update it still seems to fail the same t5551#31
513 + cf. <cover.1485853153.git.ps@pks.im>
514
515
249 -* js/exec-path-coverity-workaround (2017-01-09) 2 commits
250 - (merged to 'next' on 2017-01-23 at bf5dfbf860)
251 - + git_exec_path: do not return the result of getenv()
252 - + git_exec_path: avoid Coverity warning about unfree()d result
516 +* rs/absolute-pathdup (2017-01-27) 2 commits
517 + (merged to 'next' on 2017-01-31 at f751f64876)
518 + + use absolute_pathdup()
519 + + abspath: add absolute_pathdup()
520
521 Code cleanup.
522
523 Will merge to 'master'.
257 - Split out of another topic.
524
525
260 -* js/mingw-isatty (2017-01-18) 1 commit
261 - (merged to 'next' on 2017-01-23 at ae0f80e058)
262 - + mingw: follow-up to "replace isatty() hack"
526 +* sb/submodule-recursive-absorb (2017-01-26) 3 commits
527 + (merged to 'next' on 2017-01-31 at 0a24cfd06b)
528 + + submodule absorbing: fix worktree/gitdir pointers recursively for non-moves
529 + + cache.h: expose the dying procedure for reading gitlinks
530 + + setup: add gentle version of resolve_git_dir
531
264 - An update to a topic that is already in 'master'.
532 + When a submodule "sub", which has another submodule "module" nested
533 + within it, is "absorbed" into the top-level superproject, the inner
534 + submodule "module" is left in a strange state.
535
536 Will merge to 'master'.
537
538
269 -* js/sequencer-i-countdown-3 (2017-01-17) 38 commits
270 - (merged to 'next' on 2017-01-23 at 251dd15139)
271 - + sequencer (rebase -i): write out the final message
272 - + sequencer (rebase -i): write the progress into files
273 - + sequencer (rebase -i): show the progress
274 - + sequencer (rebase -i): suggest --edit-todo upon unknown command
275 - + sequencer (rebase -i): show only failed cherry-picks' output
276 - + sequencer (rebase -i): show only failed `git commit`'s output
277 - + sequencer: use run_command() directly
278 - + sequencer: update reading author-script
279 - + sequencer (rebase -i): differentiate between comments and 'noop'
280 - + sequencer (rebase -i): implement the 'drop' command
281 - + sequencer (rebase -i): allow rescheduling commands
282 - + sequencer (rebase -i): respect strategy/strategy_opts settings
283 - + sequencer (rebase -i): respect the rebase.autostash setting
284 - + sequencer (rebase -i): run the post-rewrite hook, if needed
285 - + sequencer (rebase -i): record interrupted commits in rewritten, too
286 - + sequencer (rebase -i): copy commit notes at end
287 - + sequencer (rebase -i): set the reflog message consistently
288 - + sequencer (rebase -i): refactor setting the reflog message
289 - + sequencer (rebase -i): allow fast-forwarding for edit/reword
290 - + sequencer (rebase -i): implement the 'reword' command
291 - + sequencer (rebase -i): leave a patch upon error
292 - + sequencer (rebase -i): update refs after a successful rebase
293 - + sequencer (rebase -i): the todo can be empty when continuing
294 - + sequencer (rebase -i): skip some revert/cherry-pick specific code path
295 - + sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed
296 - + sequencer (rebase -i): allow continuing with staged changes
297 - + sequencer (rebase -i): write an author-script file
298 - + sequencer (rebase -i): implement the short commands
299 - + sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
300 - + sequencer (rebase -i): write the 'done' file
301 - + sequencer (rebase -i): learn about the 'verbose' mode
302 - + sequencer (rebase -i): implement the 'exec' command
303 - + sequencer (rebase -i): implement the 'edit' command
304 - + sequencer (rebase -i): implement the 'noop' command
305 - + sequencer: support a new action: 'interactive rebase'
306 - + sequencer: use a helper to find the commit message
307 - + sequencer: move "else" keyword onto the same line as preceding brace
308 - + sequencer: avoid unnecessary curly braces
539 +* sb/submodule-update-initial-runs-custom-script (2017-01-26) 1 commit
540 + (merged to 'next' on 2017-01-31 at d794f894c6)
541 + + submodule update: run custom update script for initial populating as well
542
310 - The sequencer machinery has been further enhanced so that a later
311 - set of patches can start using it to reimplement "rebase -i".
543 + The user can specify a custom update method that is run when
544 + "submodule update" updates an already checked out submodule. This
545 + was ignored when checking the submodule out for the first time and
546 + we instead always just checked out the commit that is bound to the
547 + path in the superproject's index.
548
549 Will merge to 'master'.
314 - I think I've said everything that needs to be said on this topic.
550
551
317 -* jk/clear-delta-base-cache-fix (2017-01-19) 1 commit
318 - (merged to 'next' on 2017-01-23 at 5f4af2b0a5)
319 - + clear_delta_base_cache(): don't modify hashmap while iterating
552 +* sf/putty-w-args (2017-01-26) 3 commits
553 + - connect: support GIT_SSH_VARIANT and ssh.variant
554 + - connect: rename tortoiseplink and putty variables
555 + - connect: handle putty/plink also in GIT_SSH_COMMAND
556
321 - A crashing bug introduced in v2.11 timeframe has been found (it is
322 - triggerable only in fast-import) and fixed.
557 + The command line options for ssh invocation needs to be tweaked for
558 + some implementations of SSH (e.g. PuTTY plink wants "-P <port>"
559 + while OpenSSH wants "-p <port>" to specify port to connect to), and
560 + the variant was guessed when GIT_SSH environment variable is used
561 + to specify it. Extend the guess to the command specified by the
562 + newer GIT_SSH_COMMAND and also core.sshcommand configuration
563 + variable, and give an escape hatch for users to deal with
564 + misdetected cases.
565
324 - Will merge to 'master'.
566 + Expecting a reroll of the last step to plug new memory leak.
567 + cf. <xmqqpoj8z7su.fsf@gitster.mtv.corp.google.com>
568 +
569 +
570 +* bc/use-asciidoctor-opt (2017-01-31) 8 commits
571 + - Documentation: implement linkgit macro for Asciidoctor
572 + - Makefile: add a knob to enable the use of Asciidoctor
573 + - Documentation: move dblatex arguments into variable
574 + - Documentation: add XSLT to fix DocBook for Texinfo
575 + - Documentation: sort sources for gitman.texi
576 + - Documentation: remove unneeded argument in cat-texi.perl
577 + - Documentation: modernize cat-texi.perl
578 + - Documentation: fix warning in cat-texi.perl
579 +
580 + Asciidoctor, an alternative reimplementation of AsciiDoc, still
581 + needs some changes to work with documents meant to be formatted
582 + with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of
583 + the box to document our pages is getting closer to reality.
584 +
585 + Will merge to 'next'.
586
587
588 * jk/describe-omit-some-refs (2017-01-23) 5 commits
@@ -337,78 +598,30 @@ of the repositories listed at
598 naming output on, and also learned to take negative patterns to
599 name refs not to be used for naming via their "--exclude" option.
600
340 - Will merge to 'next'.
341 -
342 -
343 -* js/remote-rename-with-half-configured-remote (2017-01-19) 2 commits
344 - (merged to 'next' on 2017-01-23 at a1b655dbac)
345 - + remote rename: more carefully determine whether a remote is configured
346 - + remote rename: demonstrate a bogus "remote exists" bug
347 -
348 - With anticipatory tweaking for remotes defined in ~/.gitconfig
349 - (e.g. "remote.origin.prune" set to true, even though there may or
350 - may not actually be "origin" remote defined in a particular Git
351 - repository), "git remote rename" and other commands misinterpreted
352 - and behaved as if such a non-existing remote actually existed.
353 -
354 - Will merge to 'master'.
355 -
356 -
357 -* sb/in-core-index-doc (2017-01-19) 4 commits
358 - (merged to 'next' on 2017-01-23 at 30224463e8)
359 - + documentation: retire unfinished documentation
360 - + cache.h: document add_[file_]to_index
361 - + cache.h: document remove_index_entry_at
362 - + cache.h: document index_name_pos
363 -
364 - Documentation and in-code comments updates.
365 -
366 - Will merge to 'master'.
367 -
368 -
369 -* sb/retire-convert-objects-from-contrib (2017-01-19) 1 commit
370 - (merged to 'next' on 2017-01-23 at decc1e237d)
371 - + contrib: remove git-convert-objects
372 -
373 - Remove an ancient tool left in contrib/.
374 -
375 - Will merge to 'master'.
601 + Will cook in 'next'.
602
603
378 -* ep/commit-static-buf-cleanup (2017-01-13) 2 commits
379 - - builtin/commit.c: switch to xstrfmt(), instead of snprintf()
380 - - builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
604 +* ep/commit-static-buf-cleanup (2017-01-31) 2 commits
605 + (merged to 'next' on 2017-01-31 at 02d3c25219)
606 + + builtin/commit.c: switch to strbuf, instead of snprintf()
607 + + builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
608
609 Code clean-up.
610
384 - Expecting a reroll.
385 - The tip one would instead be done with strbuf.
386 - cf. <CA+EOSB=4-TKpi6mr-yVbwRsFrVzE=vo4Y9Qm3VMm7pn=UB1_hQ@mail.gmail.com>
387 -
388 -
389 -* jk/vreport-sanitize (2017-01-11) 2 commits
390 - (merged to 'next' on 2017-01-18 at 4bbf370981)
391 - + vreport: sanitize ASCII control chars
392 - + Revert "vreportf: avoid intermediate buffer"
393 -
394 - An error message with an ASCII control character like '\r' in it
395 - can alter the message to hide its early part, which is problematic
396 - when a remote side gives such an error message that the local side
397 - will relay with a "remote: " prefix.
398 -
611 Will merge to 'master'.
612
613
614 * sb/unpack-trees-super-prefix (2017-01-25) 4 commits
403 - - unpack-trees: support super-prefix option
404 - - t1001: modernize style
405 - - t1000: modernize style
406 - - read-tree: use OPT_BOOL instead of OPT_SET_INT
615 + (merged to 'next' on 2017-01-31 at dabe6ca2b1)
616 + + unpack-trees: support super-prefix option
617 + + t1001: modernize style
618 + + t1000: modernize style
619 + + read-tree: use OPT_BOOL instead of OPT_SET_INT
620
621 "git read-tree" and its underlying unpack_trees() machinery learned
622 to report problematic paths prefixed with the --super-prefix option.
623
411 - Will merge to 'next'.
624 + Will merge to 'master'.
625
626
627 * sb/submodule-doc (2017-01-12) 3 commits
@@ -454,20 +667,6 @@ of the repositories listed at
667 Expecting a reroll.
668
669
457 -* jk/loose-object-fsck (2017-01-15) 6 commits
458 - (merged to 'next' on 2017-01-23 at 4302ad090d)
459 - + fsck: detect trailing garbage in all object types
460 - + fsck: parse loose object paths directly
461 - + sha1_file: add read_loose_object() function
462 - + t1450: test fsck of packed objects
463 - + sha1_file: fix error message for alternate objects
464 - + t1450: refactor loose-object removal
465 -
466 - "git fsck" inspects loose objects more carefully now.
467 -
468 - Will merge to 'master'.
469 -
470 -
670 * vn/xdiff-func-context (2017-01-15) 1 commit
671 - xdiff -W: relax end-of-file function detection
672
@@ -480,46 +679,14 @@ of the repositories listed at
679 being discussed.
680
681
483 -* mh/ref-remove-empty-directory (2017-01-07) 23 commits
484 - - files_transaction_commit(): clean up empty directories
485 - - try_remove_empty_parents(): teach to remove parents of reflogs, too
486 - - try_remove_empty_parents(): don't trash argument contents
487 - - try_remove_empty_parents(): rename parameter "name" -> "refname"
488 - - delete_ref_loose(): inline function
489 - - delete_ref_loose(): derive loose reference path from lock
490 - - log_ref_write_1(): inline function
491 - - log_ref_setup(): manage the name of the reflog file internally
492 - - log_ref_write_1(): don't depend on logfile argument
493 - - log_ref_setup(): pass the open file descriptor back to the caller
494 - - log_ref_setup(): improve robustness against races
495 - - log_ref_setup(): separate code for create vs non-create
496 - - log_ref_write(): inline function
497 - - rename_tmp_log(): improve error reporting
498 - - rename_tmp_log(): use raceproof_create_file()
499 - - lock_ref_sha1_basic(): use raceproof_create_file()
500 - - lock_ref_sha1_basic(): inline constant
501 - - raceproof_create_file(): new function
502 - - safe_create_leading_directories(): set errno on SCLD_EXISTS
503 - - safe_create_leading_directories_const(): preserve errno
504 - - t5505: use "for-each-ref" to test for the non-existence of references
505 - - refname_is_safe(): correct docstring
506 - - files_rename_ref(): tidy up whitespace
507 -
508 - Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
509 - once there no longer is any other branch whose name begins with
510 - "foo/", but we didn't do so so far. Now we do.
511 -
512 - Expecting a reroll.
513 - cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu>
514 -
515 -
682 * ls/filter-process-delayed (2017-01-08) 1 commit
683 . convert: add "status=delayed" to filter process protocol
684
685 Ejected, as does not build when merged to 'pu'.
686
687
522 -* nd/worktree-move (2017-01-09) 6 commits
688 +* nd/worktree-move (2017-01-27) 7 commits
689 + - fixup! worktree move: new command
690 - worktree remove: new command
691 - worktree move: refuse to move worktrees with submodules
692 - worktree move: accept destination as directory
@@ -542,7 +709,8 @@ of the repositories listed at
709 rather limiting. A mechanism to customize the set of colors has
710 been introduced.
711
545 - Will merge to 'next'.
712 + Reported to break "add -p".
713 + cf. <20170128040709.tqx4u45ktgpkbfm4@sigill.intra.peff.net>
714
715
716 * cc/split-index-config (2016-12-26) 21 commits
@@ -576,58 +744,20 @@ of the repositories listed at
744 cf. <a1a44640-ff6c-2294-72ac-46322eff8505@ramsayjones.plus.com>
745
746
579 -* bw/push-submodule-only (2016-12-20) 3 commits
580 - (merged to 'next' on 2017-01-23 at d6cd1c60ae)
581 - + push: add option to push only submodules
582 - + submodules: add RECURSE_SUBMODULES_ONLY value
583 - + transport: reformat flag #defines to be more readable
584 -
585 - "git submodule push" learned "--recurse-submodules=only option to
586 - push submodules out without pushing the top-level superproject.
587 -
588 - Will merge to 'master'.
589 -
590 -
591 -* ls/p4-path-encoding (2016-12-18) 1 commit
592 - - git-p4: fix git-p4.pathEncoding for removed files
593 -
594 - When "git p4" imports changelist that removes paths, it failed to
595 - convert pathnames when the p4 used encoding different from the one
596 - used on the Git side. This has been corrected.
597 -
598 - Will be rerolled.
599 - cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com>
600 -
601 -
602 -* js/difftool-builtin (2017-01-25) 4 commits
603 - (merged to 'next' on 2017-01-25 at 87d2a0976a)
604 - + difftool: hack around -Wzero-length-format warning
605 - (merged to 'next' on 2017-01-23 at 6f4810dbd9)
606 - + difftool: retire the scripted version
607 - + difftool: implement the functionality in the builtin
608 - + difftool: add a skeleton for the upcoming builtin
609 -
610 - Rewrite a scripted porcelain "git difftool" in C.
611 -
612 - Will merge to 'master'.
613 -
614 -
615 -* sb/push-make-submodule-check-the-default (2017-01-26) 3 commits
747 +* sb/push-make-submodule-check-the-default (2017-01-26) 2 commits
748 (merged to 'next' on 2017-01-26 at 5f4715cea6)
749 + Revert "push: change submodule default to check when submodules exist"
750 (merged to 'next' on 2016-12-12 at 1863e05af5)
751 + push: change submodule default to check when submodules exist
620 - + submodule add: extend force flag to add existing repos
752 + (this branch uses sb/submodule-add-force.)
753
754 Turn the default of "push.recurseSubmodules" to "check" when
755 submodules seem to be in use.
756
625 - I'll probably remove the tip-two commits and advance the bottom one
626 - separately.
757 + Retracted.
758
759
629 -* kn/ref-filter-branch-list (2017-01-10) 21 commits
630 - - SQUASH???
760 +* kn/ref-filter-branch-list (2017-01-31) 20 commits
761 - branch: implement '--format' option
762 - branch: use ref-filter printing APIs
763 - branch, tag: use porcelain output
@@ -652,8 +782,7 @@ of the repositories listed at
782 The code to list branches in "git branch" has been consolidated
783 with the more generic ref-filter API.
784
655 - I think this is almost ready. Will wait for a few days, squash
656 - fixes in if needed and merge to 'next'.
785 + Will merge to 'next'.
786
787
788 * jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit
@@ -706,21 +835,6 @@ of the repositories listed at
835 cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
836
837
709 -* st/verify-tag (2017-01-18) 6 commits
710 - (merged to 'next' on 2017-01-23 at 2810959427)
711 - + t/t7004-tag: Add --format specifier tests
712 - + t/t7030-verify-tag: Add --format specifier tests
713 - + builtin/tag: add --format argument for tag -v
714 - + builtin/verify-tag: add --format to verify-tag
715 - + ref-filter: add function to print single ref_array_item
716 - + gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag
717 -
718 - "git tag" and "git verify-tag" learned to put GPG verification
719 - status in their "--format=<placeholders>" output format.
720 -
721 - Will merge to 'master'.
722 -
723 -
838 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
839 (merged to 'next' on 2016-12-05 at 041946dae0)
840 + merge: drop 'git merge <message> HEAD <commit>' syntax