What's cooking (2016/04 #07)

Junio C Hamano committed Apr 25, 2016 at 15:42 UTC 2f81a2eb6c4a5bc20a6d5ccb5976cc172dee4bbc
1 file changed +489 -403
whats-cooking.txt
+489 -403
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Apr 2016, #06; Thu, 21)
4 -X-master-at: e6ac6e1f7d54584c2b03f073b5f329a37f4a9561
5 -X-next-at: 1352ede9d7e10ec5ebc541fb841397c8b165343a
3 +Subject: What's cooking in git.git (Apr 2016, #07; Mon, 25)
4 +X-master-at: 3ad15fd5e17bbb73fb1161ff4e9c3ed254d5b243
5 +X-next-at: 47c30140aa02f0c43ba32e2926b716ce2e74b57d
6
7 -What's cooking in git.git (Apr 2016, #06; Thu, 21)
7 +What's cooking in git.git (Apr 2016, #07; Mon, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -23,136 +23,295 @@ of the repositories listed at
23 http://git-blame.blogspot.com/p/git-public-repositories.html
24
25 --------------------------------------------------
26 -[New Topics]
26 +[Graduated to "master"]
27
28 -* jd/p4-jobs-in-commit (2016-04-19) 2 commits
29 - - git-p4: add P4 jobs to git commit message
30 - - git-p4: clean-up code style in tests
28 +* ad/commit-have-m-option (2016-04-07) 2 commits
29 + (merged to 'next' on 2016-04-13 at 74088c2)
30 + + commit: do not ignore an empty message given by -m ''
31 + + commit: --amend -m '' silently fails to wipe message
32
32 - "git p4" learned to record P4 jobs in Git commit that imports from
33 - the history in Perforce.
33 + "git commit" misbehaved in a few minor ways when an empty message
34 + is given via -m '', all of which has been corrected.
35
35 - Will merge to 'next'.
36
37 +* ad/cygwin-wants-rename (2015-08-07) 1 commit
38 + (merged to 'next' on 2016-04-19 at 1352ede)
39 + + config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
40
38 -* js/replace-edit-use-editor-configuration (2016-04-20) 1 commit
39 - - replace --edit: respect core.editor
41 + On Cygwin, object creation uses the "create a temporary and then
42 + rename it to the final name" pattern, not "create a temporary,
43 + hardlink it to the final name and then unlink the temporary"
44 + pattern.
45
41 - "git replace -e" did not honour "core.editor" configuration.
46 + This is necessary to use Git on Windows shared directories, and is
47 + already enabled for the MinGW and plain Windows builds. It also
48 + has been used in Cygwin packaged versions of Git for quite a while.
49 + See http://thread.gmane.org/gmane.comp.version-control.git/291853
50 + ($gmane/275680, $gmane/291853).
51
43 - Will merge to 'next'.
52
53 +* dt/pre-refs-backend (2016-04-10) 24 commits
54 + (merged to 'next' on 2016-04-13 at 0a8f9dd)
55 + + refs: on symref reflog expire, lock symref not referrent
56 + + refs: move resolve_ref_unsafe into common code
57 + + show_head_ref(): check the result of resolve_ref_namespace()
58 + + check_aliased_update(): check that dst_name is non-NULL
59 + + checkout_paths(): remove unneeded flag variable
60 + + cmd_merge(): remove unneeded flag variable
61 + + fsck_head_link(): remove unneeded flag variable
62 + + read_raw_ref(): change flags parameter to unsigned int
63 + + files-backend: inline resolve_ref_1() into resolve_ref_unsafe()
64 + + read_raw_ref(): manage own scratch space
65 + + files-backend: break out ref reading
66 + + resolve_ref_1(): eliminate local variable "bad_name"
67 + + resolve_ref_1(): reorder code
68 + + resolve_ref_1(): eliminate local variable
69 + + resolve_ref_unsafe(): ensure flags is always set
70 + + resolve_ref_unsafe(): use for loop to count up to MAXDEPTH
71 + + resolve_missing_loose_ref(): simplify semantics
72 + + t1430: improve test coverage of deletion of badly-named refs
73 + + t1430: test for-each-ref in the presence of badly-named refs
74 + + t1430: don't rely on symbolic-ref for creating broken symrefs
75 + + t1430: clean up broken refs/tags/shadow
76 + + t1430: test the output and error of some commands more carefully
77 + + refs: move for_each_*ref* functions into common code
78 + + refs: move head_ref{,_submodule} to the common code
79 +
80 + Code restructuring around the "refs" area to prepare for pluggable
81 + refs backends.
82
46 -* ls/p4-lfs (2016-04-19) 2 commits
47 - - git-p4: fix Git LFS pointer parsing
48 - - travis-ci: update Git-LFS and P4 to the latest version
83
50 - Recent update to Git LFS broke "git p4" by changing the output from
51 - its "lfs pointer" subcommand.
84 +* en/merge-octopus-fix (2016-04-12) 2 commits
85 + (merged to 'next' on 2016-04-13 at 600b479)
86 + + merge-octopus: abort if index does not match HEAD
87 + + t6044: new merge testcases for when index doesn't match HEAD
88
89 + "merge-octopus" strategy did not ensure that the index is clean
90 + when merge begins.
91
54 -* sb/mv-submodule-fix (2016-04-19) 1 commit
55 - - mv: allow moving nested submodules
92
57 - "git mv old new" did not adjust the path for a submodule that lives
58 - as a subdirectory inside old/ directory correctly.
93 +* en/merge-trivial-fix (2016-04-12) 2 commits
94 + (merged to 'next' on 2016-04-13 at fb3ea86)
95 + + builtin/merge.c: fix a bug with trivial merges
96 + + t7605: add a testcase demonstrating a bug with trivial merges
97
60 - Will merge to 'next'.
98 + When "git merge" notices that the merge can be resolved purely at
99 + the tree level (without having to merge blobs) and the resulting
100 + tree happens to already exist in the object store, it forgot to
101 + update the index, which lead to an inconsistent state for later
102 + operations.
103
104
63 -* tb/convert-eol-autocrlf (2016-04-19) 4 commits
64 - - convert.c: ident + core.autocrlf didn't work
65 - - t0027: test cases for combined attributes
66 - - convert: allow core.autocrlf=input and core.eol=crlf
67 - - t0027: avoid false "unchanged" due to lstat() matching after a change
105 +* ew/send-email-drop-data-dumper (2016-04-06) 1 commit
106 + (merged to 'next' on 2016-04-13 at 180266c)
107 + + send-email: do not load Data::Dumper
108 +
109 + Code clean-up.
110 +
111 +
112 +* ew/send-email-readable-message-id (2016-04-06) 1 commit
113 + (merged to 'next' on 2016-04-13 at 422959a)
114 + + send-email: more meaningful Message-ID
115 +
116 + "git send-email" now uses a more readable timestamps when
117 + formulating a message ID.
118 +
119 +
120 +* jc/http-socks5h (2016-04-10) 1 commit
121 + (merged to 'next' on 2016-04-13 at eb27afc)
122 + + http: differentiate socks5:// and socks5h://
123
69 - Setting core.autocrlf to 'input' and core.eol to 'crlf' used to be
70 - rejected, but because the code gives precedence to core.autcrlf,
71 - there is no need to, hence we no longer reject the combination.
124 + The socks5:// proxy support added back in 2.6.4 days was not aware
125 + that socks5h:// proxies behave differently.
126 +
127 +
128 +* jc/rerere-multi (2016-04-06) 11 commits
129 + (merged to 'next' on 2016-04-13 at 3db2753)
130 + + rerere: adjust 'forget' to multi-variant world order
131 + + rerere: split code to call ll_merge() further
132 + + rerere: move code related to "forget" together
133 + + rerere: gc and clear
134 + + rerere: do use multiple variants
135 + + t4200: rerere a merge with two identical conflicts
136 + + rerere: allow multiple variants to exist
137 + + rerere: delay the recording of preimage
138 + + rerere: handle leftover rr-cache/$ID directory and postimage files
139 + + rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
140 + + rerere: split conflict ID further
141 +
142 + "git rerere" can encounter two or more files with the same conflict
143 + signature that have to be resolved in different ways, but there was
144 + no way to record these separate resolutions.
145 +
146 +
147 +* jc/xstrfmt-null-with-prec-0 (2016-04-07) 1 commit
148 + (merged to 'next' on 2016-04-13 at 2457462)
149 + + setup.c: do not feed NULL to "%.*s" even with precision 0
150 +
151 + Code cleanup.
152 +
153 +
154 +* jk/do-not-printf-NULL (2016-04-10) 3 commits
155 + (merged to 'next' on 2016-04-13 at 60912e3)
156 + + git_config_set_multivar_in_file: handle "unset" errors
157 + + git_config_set_multivar_in_file: all non-zero returns are errors
158 + + config: lower-case first word of error strings
159 +
160 + "git config" had a codepath that tried to pass a NULL to
161 + printf("%s"), which nobody seems to have noticed.
162 +
163 +
164 +* jk/use-write-script-more (2016-04-12) 3 commits
165 + (merged to 'next' on 2016-04-13 at d6718bf)
166 + + t3404: use write_script
167 + + t1020: do not overuse printf and use write_script
168 + + t5532: use write_script
169 +
170 + Code clean-up.
171 +
172 +
173 +* ky/imap-send (2016-04-13) 2 commits
174 + (merged to 'next' on 2016-04-13 at 52cf493)
175 + + imap-send: fix CRAM-MD5 response calculation
176 + + imap-send: check for NOLOGIN capability only when using LOGIN command
177 +
178 + Support for CRAM-MD5 authentication method in "git imap-send" did
179 + not work well.
180 +
181 +
182 +* ky/imap-send-openssl-1.1.0 (2016-04-08) 4 commits
183 + (merged to 'next' on 2016-04-13 at 49d2643)
184 + + configure: remove checking for HMAC_CTX_cleanup
185 + + imap-send: avoid deprecated TLSv1_method()
186 + + imap-send: check NULL return of SSL_CTX_new()
187 + + imap-send: use HMAC() function provided by OpenSSL
188 +
189 + Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs
190 + we use in imap-send, which has been adjusted for the change.
191 +
192 +
193 +* sb/submodule-helper-clone-regression-fix (2016-04-01) 6 commits
194 + (merged to 'next' on 2016-04-13 at c6584bb)
195 + + submodule--helper, module_clone: catch fprintf failure
196 + + submodule--helper: do not borrow absolute_path() result for too long
197 + + submodule--helper, module_clone: always operate on absolute paths
198 + + submodule--helper clone: create the submodule path just once
199 + + submodule--helper: fix potential NULL-dereference
200 + + recursive submodules: test for relative paths
201 + (this branch is used by sb/submodule-init.)
202 +
203 + A partial rewrite of "git submodule" in the 2.7 timeframe changed
204 + the way the gitdir: pointer in the submodules point at the real
205 + repository location to use absolute paths by accident. This has
206 + been corrected.
207 +
208 +
209 +* sb/submodule-path-misc-bugs (2016-03-30) 6 commits
210 + (merged to 'next' on 2016-04-18 at 9daa5ce)
211 + + t7407: make expectation as clear as possible
212 + + submodule update: test recursive path reporting from subdirectory
213 + + submodule update: align reporting path for custom command execution
214 + + submodule status: correct path handling in recursive submodules
215 + + submodule update --init: correct path handling in recursive submodules
216 + + submodule foreach: correct path display in recursive submodules
217 + (this branch is used by sb/submodule-init.)
218 +
219 + "git submodule" reports the paths of submodules the command
220 + recurses into, but this was incorrect when the command was not run
221 + from the root level of the superproject.
222 +
223 +--------------------------------------------------
224 +[New Topics]
225 +
226 +* js/name-rev-use-oldest-ref (2016-04-22) 1 commit
227 + - name-rev: include taggerdate in considering the best name
228 +
229 + "git describe --contains" often made a hard-to-justify choice of
230 + tag to give name to a given commit, because it tried to come up
231 + with a name with smallest number of hops from a tag, causing an old
232 + commit whose close descendant that is recently tagged were not
233 + described with respect to an old tag but with a newer tag. It did
234 + not help that its computation of "hop" count was further tweaked to
235 + penalize being on a side branch of a merge. The logic has been
236 + updated to favor using the tag with the oldest tagger date, which
237 + is a lot easier to explain to the end users: "We describe a commit
238 + in terms of the (chronologically) oldest tag that contains the
239 + commit."
240
241 Will merge to 'next'.
242
243
76 -* bc/object-id (2016-04-19) 6 commits
77 - - match-trees: convert several leaf functions to use struct object_id
78 - - tree-walk: convert tree_entry_extract() to use struct object_id
79 - - struct name_entry: use struct object_id instead of unsigned char sha1[20]
80 - - match-trees: convert shift_tree() and shift_tree_by() to use object_id
81 - - test-match-trees: convert to use struct object_id
82 - - sha1-name: introduce a get_oid() function
244 +* js/win32-mmap (2016-04-22) 3 commits
245 + (merged to 'next' on 2016-04-22 at cd39c60)
246 + + mmap(win32): avoid expensive fstat() call
247 + + mmap(win32): avoid copy-on-write when it is unnecessary
248 + + win32mmap: set errno appropriately
249
84 - Will be rerolled.
85 - ($gmane/291950)
250 + mmap emulation on Windows has been optimized.
251
252 + Will merge to 'master'.
253
88 -* ep/http-curl-trace (2016-04-20) 3 commits
89 - - git.txt: document the new GIT_TRACE_CURL environment variable
90 - - imap-send.c: introduce the GIT_TRACE_CURL enviroment variable
91 - - http.c: implement the GIT_TRACE_CURL environment variable
254
93 - HTTP transport gained an option to produce more detailed debugging
94 - trace.
255 +* nd/remove-unused (2016-04-22) 2 commits
256 + - wrapper.c: delete dead function git_mkstemps()
257 + - dir.c: remove dead function fnmatch_icase()
258
96 - Still under discussion.
97 - ($gmane/292074)
259 + Code cleanup.
260
261 + Will merge to 'next'.
262
100 -* nd/worktree-various-heads (2016-04-20) 13 commits
101 - - branch: do not rename a branch under bisect or rebase
102 - - worktree.c: test if branch being bisected in another worktree
103 - - wt-status.c: split bisect detection out of wt_status_get_state()
104 - - worktree.c: test if branch being rebased in another worktree
105 - - worktree.c: avoid referencing to worktrees[i] multiple times
106 - - wt-status.c: make wt_status_check_rebase() work on any worktree
107 - - SQUASH???
108 - - wt-status.c: split rebase detection out of wt_status_get_state()
109 - - path.c: refactor and add worktree_git_path()
110 - - worktree.c: mark current worktree
111 - - worktree.c: make find_shared_symref() return struct worktree *
112 - - worktree.c: store "id" instead of "git_dir"
113 - - path.c: add git_common_path() and strbuf_git_common_path()
263
115 - The experimental "multiple worktree" feature gains more safety to
116 - forbid operations on a branch that is checked out or being actively
117 - worked on elsewhere, by noticing that e.g. it is being rebased.
264 +* rt/string-list-lookup-cleanup (2016-04-25) 1 commit
265 + - string_list: use string-list API in unsorted_string_list_lookup()
266
119 - Being reviewed.
120 - ($gmane/292050)
267 + Code cleanup.
268
269 + Will merge to 'next'.
270
123 -* bw/rebase-merge-entire-branch (2016-04-20) 1 commit
124 - - git-rebase--merge: don't include absent parent as a base
271
126 - "git rebase -m" could be asked to rebase an entire branch starting
127 - from the root, but failed by assuming that there always is a parent
128 - commit to the first commit on the branch.
272 +* sg/test-lib-simplify-expr-away (2016-04-22) 1 commit
273 + - test-lib: simplify '--option=value' parsing
274 +
275 + Code cleanup.
276
277 Will merge to 'next'.
278
279
133 -* jk/push-client-deadlock-fix (2016-04-20) 5 commits
134 - - t5504: drop sigpipe=ok from push tests
135 - - fetch-pack: isolate sigpipe in demuxer thread
136 - - send-pack: isolate sigpipe in demuxer thread
137 - - run-command: teach async threads to ignore SIGPIPE
138 - - send-pack: close demux pipe before finishing async process
280 +* ew/fast-import-unpack-limit (2016-04-24) 1 commit
281 + - fast-import: implement unpack limit
282
140 - "git push" from a corrupt repository that attempts to push a large
141 - number of refs deadlocked waiting for a rejection from the
142 - receiving end that will never come.
283 + "git fast-import" learned the same performance trick to avoid
284 + creating too small a packfile as "git fetch" and "git push" have,
285 + using *.unpackLimit configuration.
286 +
287 + Need to pick up the rerolled version.
288 + ($gmane/292562)
289 +
290 +
291 +* jd/send-email-to-whom (2016-04-25) 1 commit
292 + - send-email: fix grammo in the prompt that asks e-mail recipients
293 +
294 + A question by "git send-email" to ask the identity of the sender
295 + has been updated.
296
297 Will merge to 'next'.
298
299
147 -* jc/merge-refuse-new-root (2016-04-21) 2 commits
148 - - pull: pass --allow-unrelated-histories to "git merge"
149 - - t3033: avoid 'ambiguous refs' warning
300 +* ld/p4-test-py3 (2016-04-25) 2 commits
301 + - git-p4 tests: work with python3 as well as python2
302 + - git-p4 tests: cd to testdir before running python
303
151 - "git pull" has been taught to pass --allow-unrelated-histories
152 - option to underlying "git merge".
304 + The test scripts for "git p4" (but not "git p4" implementation
305 + itself) has been updated so that they would work even on a system
306 + where the installed version of Python is python 3.
307 +
308 +
309 +* ls/p4-lfs-test-fix-2.7.0 (2016-04-24) 1 commit
310 + - t9824: fix broken &&-chain in a subshell
311 +
312 + Fix a broken test.
313
314 Will merge to 'next'.
155 -
315
316 --------------------------------------------------
317 [Stalled]
@@ -208,32 +367,6 @@ of the repositories listed at
367 Needs review.
368
369
211 -* sb/clone-shallow-passthru (2016-04-13) 3 commits
212 - - clone: add t5614 to test cloning submodules with shallowness involved
213 - - clone: add `--shallow-submodules` flag
214 - - submodule clone: pass along `local` option
215 -
216 - "git clone" learned "--shallow-submodules" option.
217 -
218 - Needs review.
219 -
220 -
221 -* da/user-useconfigonly (2016-04-01) 2 commits
222 - - ident: give "please tell me" message upon useConfigOnly error
223 - - ident: check for useConfigOnly before auto-detection of name/email
224 -
225 - The "user.useConfigOnly" configuration variable makes it an error
226 - if users do not explicitly set user.name and user.email. However,
227 - its check was not done early enough and allowed another error to
228 - trigger, reporting that the default value we guessed from the
229 - system setting was unusable. This was a suboptimal end-user
230 - experience as we want the users to set user.name/user.email without
231 - relying on the auto-detection at all.
232 -
233 - Waiting for Acks.
234 - ($gmane/290340)
235 -
236 -
370 * sg/completion-updates (2016-02-28) 21 commits
371 - completion: cache the path to the repository
372 - completion: extract repository discovery from __gitdir()
@@ -329,8 +462,6 @@ of the repositories listed at
462 Being able to make a direct call would be good in general, but as a
463 performance thing, the change needs to be backed up by numbers.
464
332 - Needs review.
333 -
465 I haven't gone through the "gently" change with fine toothed comb;
466 I can see that the change avoids calling die(), but I haven't made
467 sure that the program states (e.g. what's in the in-core index) are
@@ -340,6 +471,9 @@ of the repositories listed at
471 point of dying exactly because it knew it is going to exit, but now
472 they have to care, and they need to be audited.
473
474 + Will be rerolled.
475 + ($gmane/292205)
476 +
477
478 * dk/gc-more-wo-pack (2016-01-13) 4 commits
479 - gc: clean garbage .bitmap files from pack dir
@@ -350,27 +484,201 @@ of the repositories listed at
484 Follow-on to dk/gc-idx-wo-pack topic, to clean up stale
485 .bitmap and .keep files.
486
353 - Waiting for a reroll.
354 - ($gmane/284368).
487 + Waiting for a reroll.
488 + ($gmane/284368).
489 +
490 +
491 +* jc/diff-b-m (2015-02-23) 5 commits
492 + . WIPWIP
493 + . WIP: diff-b-m
494 + - diffcore-rename: allow easier debugging
495 + - diffcore-rename.c: add locate_rename_src()
496 + - diffcore-break: allow debugging
497 +
498 + "git diff -B -M" produced incorrect patch when the postimage of a
499 + completely rewritten file is similar to the preimage of a removed
500 + file; such a resulting file must not be expressed as a rename from
501 + other place.
502 +
503 + The fix in this patch is broken, unfortunately.
504 + Will discard.
505 +
506 +--------------------------------------------------
507 +[Cooking]
508 +
509 +* sb/clone-shallow-passthru (2016-04-25) 1 commit
510 + - clone: add `--shallow-submodules` flag
511 +
512 + "git clone" learned "--shallow-submodules" option.
513 +
514 + Modulo minor nits, looked ready.
515 + ($gmane/292539)
516 +
517 +
518 +* da/user-useconfigonly (2016-04-01) 2 commits
519 + (merged to 'next' on 2016-04-22 at 26845a5)
520 + + ident: give "please tell me" message upon useConfigOnly error
521 + + ident: check for useConfigOnly before auto-detection of name/email
522 +
523 + The "user.useConfigOnly" configuration variable makes it an error
524 + if users do not explicitly set user.name and user.email. However,
525 + its check was not done early enough and allowed another error to
526 + trigger, reporting that the default value we guessed from the
527 + system setting was unusable. This was a suboptimal end-user
528 + experience as we want the users to set user.name/user.email without
529 + relying on the auto-detection at all.
530 +
531 + Will merge to 'master'.
532 +
533 +
534 +* jd/p4-jobs-in-commit (2016-04-19) 2 commits
535 + - git-p4: add P4 jobs to git commit message
536 + - git-p4: clean-up code style in tests
537 +
538 + "git p4" learned to record P4 jobs in Git commit that imports from
539 + the history in Perforce.
540 +
541 + Will merge to 'next'.
542 +
543 +
544 +* js/replace-edit-use-editor-configuration (2016-04-20) 1 commit
545 + (merged to 'next' on 2016-04-22 at 8df6d30)
546 + + replace --edit: respect core.editor
547 +
548 + "git replace -e" did not honour "core.editor" configuration.
549 +
550 + Will merge to 'master'.
551 +
552 +
553 +* ls/p4-lfs (2016-04-19) 2 commits
554 + - git-p4: fix Git LFS pointer parsing
555 + - travis-ci: update Git-LFS and P4 to the latest version
556 +
557 + Recent update to Git LFS broke "git p4" by changing the output from
558 + its "lfs pointer" subcommand.
559 +
560 +
561 +* sb/mv-submodule-fix (2016-04-19) 1 commit
562 + (merged to 'next' on 2016-04-22 at 089e788)
563 + + mv: allow moving nested submodules
564 +
565 + "git mv old new" did not adjust the path for a submodule that lives
566 + as a subdirectory inside old/ directory correctly.
567 +
568 + Will merge to 'master'.
569 +
570 +
571 +* tb/convert-eol-autocrlf (2016-04-25) 10 commits
572 + - ce_compare_data() did not respect conversion
573 + - t6038; use crlf on all platforms
574 + - convert.c: more safer crlf handling with text attribute
575 + - convert: unify the "auto" handling of CRLF
576 + - convert.c: stream and early out
577 + - read-cache: factor out get_sha1_from_index() helper
578 + - convert.c: ident + core.autocrlf didn't work
579 + - t0027: test cases for combined attributes
580 + - convert: allow core.autocrlf=input and core.eol=crlf
581 + - t0027: make commit_chk_wrnNNO() reliable
582 +
583 + The combination of text=auto & eol=crlf (or eol=lf for that matter)
584 + is taught to be much more useful; it used to be "auto detection"
585 + was defeated as if setting eol declares that the file _is_ text,
586 + but now text=auto is still in effect for such a path and the code
587 + refrains from applying eol conversion if it found the path is not
588 + text. Also setting core.autocrlf to 'input' and core.eol to 'crlf'
589 + used to be rejected, but because the code gives precedence to
590 + core.autcrlf, there is no need to, hence we no longer reject the
591 + combination.
592 +
593 + Modulo minor nits, looked almost ready.
594 + ($gmane/292521, $gmane/292550)
595 +
596 +
597 +* bc/object-id (2016-04-25) 6 commits
598 + - match-trees: convert several leaf functions to use struct object_id
599 + - tree-walk: convert tree_entry_extract() to use struct object_id
600 + - struct name_entry: use struct object_id instead of unsigned char sha1[20]
601 + - match-trees: convert shift_tree() and shift_tree_by() to use object_id
602 + - test-match-trees: convert to use struct object_id
603 + - sha1-name: introduce a get_oid() function
604 +
605 + Move from unsigned char[20] to struct object_id continues.
606 +
607 + Will merge to 'next'.
608 +
609 +
610 +* ep/http-curl-trace (2016-04-20) 3 commits
611 + - git.txt: document the new GIT_TRACE_CURL environment variable
612 + - imap-send.c: introduce the GIT_TRACE_CURL enviroment variable
613 + - http.c: implement the GIT_TRACE_CURL environment variable
614 +
615 + HTTP transport gained an option to produce more detailed debugging
616 + trace.
617 +
618 + Still under discussion.
619 + ($gmane/292074)
620 +
621 +
622 +* nd/worktree-various-heads (2016-04-22) 13 commits
623 + - branch: do not rename a branch under bisect or rebase
624 + - worktree.c: check whether branch is bisected in another worktree
625 + - wt-status.c: split bisect detection out of wt_status_get_state()
626 + - worktree.c: check whether branch is rebased in another worktree
627 + - worktree.c: avoid referencing to worktrees[i] multiple times
628 + - wt-status.c: make wt_status_check_rebase() work on any worktree
629 + - wt-status.c: split rebase detection out of wt_status_get_state()
630 + - path.c: refactor and add worktree_git_path()
631 + - worktree.c: mark current worktree
632 + - worktree.c: make find_shared_symref() return struct worktree *
633 + - worktree.c: store "id" instead of "git_dir"
634 + - path.c: add git_common_path() and strbuf_git_common_path()
635 + - dir.c: rename str(n)cmp_icase to fspath(n)cmp
636 +
637 + The experimental "multiple worktree" feature gains more safety to
638 + forbid operations on a branch that is checked out or being actively
639 + worked on elsewhere, by noticing that e.g. it is being rebased.
640 +
641 + Being reviewed.
642 + ($gmane/292189)
643 +
644 +
645 +* bw/rebase-merge-entire-branch (2016-04-24) 1 commit
646 + - git-rebase--merge: don't include absent parent as a base
647 +
648 + "git rebase -m" could be asked to rebase an entire branch starting
649 + from the root, but failed by assuming that there always is a parent
650 + commit to the first commit on the branch.
651 +
652 + Will merge to 'next'.
653 +
654 +
655 +* jk/push-client-deadlock-fix (2016-04-20) 5 commits
656 + (merged to 'next' on 2016-04-22 at d59a2af)
657 + + t5504: drop sigpipe=ok from push tests
658 + + fetch-pack: isolate sigpipe in demuxer thread
659 + + send-pack: isolate sigpipe in demuxer thread
660 + + run-command: teach async threads to ignore SIGPIPE
661 + + send-pack: close demux pipe before finishing async process
662 +
663 + "git push" from a corrupt repository that attempts to push a large
664 + number of refs deadlocked; the thread to relay rejection notices
665 + for these ref updates blocked on writing them to the main thread,
666 + after the main thread at the receiving end notices that the push
667 + failed and decides not to read these notices and return a failure.
668
669 + Will merge to 'master'.
670
357 -* jc/diff-b-m (2015-02-23) 5 commits
358 - . WIPWIP
359 - . WIP: diff-b-m
360 - - diffcore-rename: allow easier debugging
361 - - diffcore-rename.c: add locate_rename_src()
362 - - diffcore-break: allow debugging
671
364 - "git diff -B -M" produced incorrect patch when the postimage of a
365 - completely rewritten file is similar to the preimage of a removed
366 - file; such a resulting file must not be expressed as a rename from
367 - other place.
672 +* jc/merge-refuse-new-root (2016-04-21) 2 commits
673 + (merged to 'next' on 2016-04-22 at 74eb957)
674 + + pull: pass --allow-unrelated-histories to "git merge"
675 + + t3033: avoid 'ambiguous refs' warning
676
369 - The fix in this patch is broken, unfortunately.
370 - Will discard.
677 + "git pull" has been taught to pass --allow-unrelated-histories
678 + option to underlying "git merge".
679 +
680 + Will merge to 'master'.
681
372 ---------------------------------------------------
373 -[Cooking]
682
683 * pb/commit-verbose-config (2016-04-19) 6 commits
684 - commit: add a commit.verbose config variable
@@ -384,8 +692,8 @@ of the repositories listed at
692 configuration variable and act as if "--verbose" option was
693 given from the command line.
694
387 - Is this going to be rerolled?
388 - ($gmane/291382)
695 + Need a reroll but it will be some time before that happens.
696 + ($gmane/292160).
697
698
699 * en/merge-fixes (2016-04-12) 2 commits
@@ -398,31 +706,6 @@ of the repositories listed at
706 Will merge to 'next'.
707
708
401 -* en/merge-octopus-fix (2016-04-12) 2 commits
402 - (merged to 'next' on 2016-04-13 at 600b479)
403 - + merge-octopus: abort if index does not match HEAD
404 - + t6044: new merge testcases for when index doesn't match HEAD
405 -
406 - "merge-octopus" strategy did not ensure that the index is clean
407 - when merge begins.
408 -
409 - Will merge to 'master'.
410 -
411 -
412 -* en/merge-trivial-fix (2016-04-12) 2 commits
413 - (merged to 'next' on 2016-04-13 at fb3ea86)
414 - + builtin/merge.c: fix a bug with trivial merges
415 - + t7605: add a testcase demonstrating a bug with trivial merges
416 -
417 - When "git merge" notices that the merge can be resolved purely at
418 - the tree level (without having to merge blobs) and the resulting
419 - tree happens to already exist in the object store, it forgot to
420 - update the index, which lead to an inconsistent state for later
421 - operations.
422 -
423 - Will merge to 'master'.
424 -
425 -
709 * jc/fsck-nul-in-commit (2016-04-14) 2 commits
710 - fsck: detect and warn a commit with embedded NUL
711 - fsck_commit_buffer(): do not special case the last validation
@@ -439,25 +722,27 @@ of the repositories listed at
722
723
724 * jk/diff-compact-heuristic (2016-04-19) 2 commits
442 - - xdiff: implement empty line chunk heuristic
443 - - xdiff: add recs_match helper function
725 + (merged to 'next' on 2016-04-22 at 0c117ea)
726 + + xdiff: implement empty line chunk heuristic
727 + + xdiff: add recs_match helper function
728
729 Patch output from "git diff" and friends has been tweaked to be
730 more readable by using a blank line as a strong hint that the
731 contents before and after it belong to a logically separate unit.
732
449 - Will merge to 'next'.
733 + Will merge to 'master'.
734
735
736 * nd/test-helpers (2016-04-15) 2 commits
453 - - test helpers: move test-* to t/helper/ subdirectory
454 - - Makefile: clean *.o files we create
737 + (merged to 'next' on 2016-04-22 at 55ea5cd)
738 + + test helpers: move test-* to t/helper/ subdirectory
739 + + Makefile: clean *.o files we create
740
741 Sources to many test helper binaries (and the generated helpers)
742 have been moved to t/helper/ subdirectory to reduce clutter at the
743 top level of the tree.
744
460 - Will merge to 'next'.
745 + Will merge to 'master'.
746
747
748 * sb/submodule-init (2016-04-16) 4 commits
@@ -465,98 +750,12 @@ of the repositories listed at
750 - submodule: port resolve_relative_url from shell to C
751 - Merge branch 'sb/submodule-path-misc-bugs' into sb/submodule-init
752 - Merge branch 'sb/submodule-helper-clone-regression-fix' into sb/submodule-init
468 - (this branch uses sb/submodule-helper-clone-regression-fix and sb/submodule-path-misc-bugs.)
753
754 Update of "git submodule" to move pieces of logic to C continues.
755
756 Will merge to 'next'.
757
758
475 -* ad/commit-have-m-option (2016-04-07) 2 commits
476 - (merged to 'next' on 2016-04-13 at 74088c2)
477 - + commit: do not ignore an empty message given by -m ''
478 - + commit: --amend -m '' silently fails to wipe message
479 -
480 - "git commit" misbehaved in a few minor ways when an empty message
481 - is given via -m '', all of which has been corrected.
482 -
483 - Will merge to 'master'.
484 -
485 -
486 -* jc/xstrfmt-null-with-prec-0 (2016-04-07) 1 commit
487 - (merged to 'next' on 2016-04-13 at 2457462)
488 - + setup.c: do not feed NULL to "%.*s" even with precision 0
489 -
490 - Will merge to 'master'.
491 -
492 -
493 -* dt/pre-refs-backend (2016-04-10) 24 commits
494 - (merged to 'next' on 2016-04-13 at 0a8f9dd)
495 - + refs: on symref reflog expire, lock symref not referrent
496 - + refs: move resolve_ref_unsafe into common code
497 - + show_head_ref(): check the result of resolve_ref_namespace()
498 - + check_aliased_update(): check that dst_name is non-NULL
499 - + checkout_paths(): remove unneeded flag variable
500 - + cmd_merge(): remove unneeded flag variable
501 - + fsck_head_link(): remove unneeded flag variable
502 - + read_raw_ref(): change flags parameter to unsigned int
503 - + files-backend: inline resolve_ref_1() into resolve_ref_unsafe()
504 - + read_raw_ref(): manage own scratch space
505 - + files-backend: break out ref reading
506 - + resolve_ref_1(): eliminate local variable "bad_name"
507 - + resolve_ref_1(): reorder code
508 - + resolve_ref_1(): eliminate local variable
509 - + resolve_ref_unsafe(): ensure flags is always set
510 - + resolve_ref_unsafe(): use for loop to count up to MAXDEPTH
511 - + resolve_missing_loose_ref(): simplify semantics
512 - + t1430: improve test coverage of deletion of badly-named refs
513 - + t1430: test for-each-ref in the presence of badly-named refs
514 - + t1430: don't rely on symbolic-ref for creating broken symrefs
515 - + t1430: clean up broken refs/tags/shadow
516 - + t1430: test the output and error of some commands more carefully
517 - + refs: move for_each_*ref* functions into common code
518 - + refs: move head_ref{,_submodule} to the common code
519 -
520 - Code restructuring around the "refs" area to prepare for pluggable
521 - refs backends.
522 -
523 - Will merge to 'master'.
524 -
525 -
526 -* ky/imap-send (2016-04-13) 2 commits
527 - (merged to 'next' on 2016-04-13 at 52cf493)
528 - + imap-send: fix CRAM-MD5 response calculation
529 - + imap-send: check for NOLOGIN capability only when using LOGIN command
530 -
531 - Support for CRAM-MD5 authentication method in "git imap-send" did
532 - not work well.
533 -
534 - Will merge to 'master'.
535 -
536 -
537 -* ky/imap-send-openssl-1.1.0 (2016-04-08) 4 commits
538 - (merged to 'next' on 2016-04-13 at 49d2643)
539 - + configure: remove checking for HMAC_CTX_cleanup
540 - + imap-send: avoid deprecated TLSv1_method()
541 - + imap-send: check NULL return of SSL_CTX_new()
542 - + imap-send: use HMAC() function provided by OpenSSL
543 -
544 - Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs
545 - we use in imap-send, which has been adjusted for the change.
546 -
547 - Will merge to 'master'.
548 -
549 -
550 -* jc/http-socks5h (2016-04-10) 1 commit
551 - (merged to 'next' on 2016-04-13 at eb27afc)
552 - + http: differentiate socks5:// and socks5h://
553 -
554 - The socks5:// proxy support added back in 2.6.4 days was not aware
555 - that socks5h:// proxies behave differently.
556 -
557 - Will merge to 'master'.
558 -
559 -
759 * jc/send-email-skip-backup (2016-04-12) 1 commit
760 - send-email: detect and offer to skip backup files
761
@@ -569,35 +768,13 @@ of the repositories listed at
768 Needs review.
769
770
572 -* jk/do-not-printf-NULL (2016-04-10) 3 commits
573 - (merged to 'next' on 2016-04-13 at 60912e3)
574 - + git_config_set_multivar_in_file: handle "unset" errors
575 - + git_config_set_multivar_in_file: all non-zero returns are errors
576 - + config: lower-case first word of error strings
577 -
578 - "git config" had a codepath that tried to pass a NULL to
579 - printf("%s"), which nobody seems to have noticed.
580 -
581 - Will merge to 'master'.
582 -
583 -
584 -* jk/use-write-script-more (2016-04-12) 3 commits
585 - (merged to 'next' on 2016-04-13 at d6718bf)
586 - + t3404: use write_script
587 - + t1020: do not overuse printf and use write_script
588 - + t5532: use write_script
589 -
590 - Code clean-up.
591 -
592 - Will merge to 'master'.
593 -
594 -
595 -* nf/mergetool-prompt (2016-04-12) 2 commits
596 - - SQUASH???
771 +* nf/mergetool-prompt (2016-04-25) 1 commit
772 - difftool/mergetool: make the form of yes/no questions consistent
773
774 UI consistency improvements.
775
776 + Will merge to 'next'.
777 +
778
779 * va/i18n-misc-updates (2016-04-19) 9 commits
780 - i18n: builtin/pull.c: split strings marked for translation
@@ -616,119 +793,67 @@ of the repositories listed at
793
794
795 * jc/drop-git-spec-in (2016-04-06) 1 commit
619 - - Makefile: stop pretending to support rpmbuild
796 + (merged to 'next' on 2016-04-22 at 531583f)
797 + + Makefile: stop pretending to support rpmbuild
798
799 As nobody maintains our in-tree git.spec.in and distros use their
800 own spec file, we stopped pretending that we support "make rpm".
801
624 - Will merge to 'next'.
625 -
626 -
627 -* ew/send-email-readable-message-id (2016-04-06) 1 commit
628 - (merged to 'next' on 2016-04-13 at 422959a)
629 - + send-email: more meaningful Message-ID
630 -
631 - "git send-email" now uses a more readable timestamps when
632 - formulating a message ID.
633 -
802 Will merge to 'master'.
803
804
637 -* st/verify-tag (2016-04-19) 6 commits
638 - - tag -v: verfy directly rather than exec-ing verify-tag
639 - - verify-tag: move tag verification code to tag.c
640 - - verify-tag: prepare verify_tag for libification
641 - - verify-tag: update variable name and type
642 - - t7030: test verifying multiple tags
643 - - builtin/verify-tag.c: ignore SIGPIPE in gpg-interface
805 +* st/verify-tag (2016-04-22) 6 commits
806 + (merged to 'next' on 2016-04-22 at 98ba239)
807 + + tag -v: verify directly rather than exec-ing verify-tag
808 + + verify-tag: move tag verification code to tag.c
809 + + verify-tag: prepare verify_tag for libification
810 + + verify-tag: update variable name and type
811 + + t7030: test verifying multiple tags
812 + + builtin/verify-tag.c: ignore SIGPIPE in gpg-interface
813
814 Unify internal logic between "git tag -v" and "git verify-tag"
815 commands by making one directly call into the other.
816
648 - Will merge to 'next'.
649 -
650 -
651 -* ew/send-email-drop-data-dumper (2016-04-06) 1 commit
652 - (merged to 'next' on 2016-04-13 at 180266c)
653 - + send-email: do not load Data::Dumper
654 -
655 - Code clean-up.
656 -
817 Will merge to 'master'.
818
819
660 -* kn/ref-filter-branch-list (2016-04-12) 16 commits
661 - . branch: implement '--format' option
662 - . branch: use ref-filter printing APIs
663 - . branch, tag: use porcelain output
664 - . ref-filter: allow porcelain to translate messages in the output
665 - . ref-filter: add support for %(refname:dir) and %(refname:base)
666 - . ref-filter: introduce refname_atom_parser()
667 - . ref-filter: introduce symref_atom_parser()
668 - . ref-filter: make "%(symref)" atom work with the ':short' modifier
669 - . ref-filter: add support for %(upstream:track,nobracket)
670 - . ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
671 - . ref-filter: introduce format_ref_array_item()
672 - . ref-filter: move get_head_description() from branch.c
673 - . ref-filter: modify "%(objectname:short)" to take length
674 - . ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
675 - . ref-filter: include reference to 'used_atom' within 'atom_value'
676 - . ref-filter: implement %(if), %(then), and %(else) atoms
820 +* kn/ref-filter-branch-list (2016-04-25) 17 commits
821 + - branch: implement '--format' option
822 + - branch: use ref-filter printing APIs
823 + - branch, tag: use porcelain output
824 + - ref-filter: allow porcelain to translate messages in the output
825 + - ref-filter: add `:dir` and `:base` options for ref printing atoms
826 + - ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal()
827 + - ref-filter: introduce symref_atom_parser() and refname_atom_parser()
828 + - ref-filter: introduce refname_atom_parser_internal()
829 + - ref-filter: make "%(symref)" atom work with the ':short' modifier
830 + - ref-filter: add support for %(upstream:track,nobracket)
831 + - ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
832 + - ref-filter: introduce format_ref_array_item()
833 + - ref-filter: move get_head_description() from branch.c
834 + - ref-filter: modify "%(objectname:short)" to take length
835 + - ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
836 + - ref-filter: include reference to 'used_atom' within 'atom_value'
837 + - ref-filter: implement %(if), %(then), and %(else) atoms
838
839 The code to list branches in "git branch" has been consolidated
840 with the more generic ref-filter API.
841
681 - Rerolled but seems to lack jk/branch-shortening-funny-symrefs aka
682 - $gmane/291295 yet.
683 -
684 -
685 -* sb/submodule-helper-clone-regression-fix (2016-04-01) 6 commits
686 - (merged to 'next' on 2016-04-13 at c6584bb)
687 - + submodule--helper, module_clone: catch fprintf failure
688 - + submodule--helper: do not borrow absolute_path() result for too long
689 - + submodule--helper, module_clone: always operate on absolute paths
690 - + submodule--helper clone: create the submodule path just once
691 - + submodule--helper: fix potential NULL-dereference
692 - + recursive submodules: test for relative paths
693 - (this branch is used by sb/submodule-init.)
694 -
695 - A partial rewrite of "git submodule" in the 2.7 timeframe changed
696 - the way the gitdir: pointer in the submodules point at the real
697 - repository location to use absolute paths by accident. This has
698 - been corrected.
699 -
700 - Will merge to 'master'.
701 -
702 -
703 -* sb/submodule-path-misc-bugs (2016-03-30) 6 commits
704 - (merged to 'next' on 2016-04-18 at 9daa5ce)
705 - + t7407: make expectation as clear as possible
706 - + submodule update: test recursive path reporting from subdirectory
707 - + submodule update: align reporting path for custom command execution
708 - + submodule status: correct path handling in recursive submodules
709 - + submodule update --init: correct path handling in recursive submodules
710 - + submodule foreach: correct path display in recursive submodules
711 - (this branch is used by sb/submodule-init.)
712 -
713 - "git submodule" reports the paths of submodules the command
714 - recurses into, but this was incorrect when the command was not run
715 - from the root level of the superproject.
716 -
717 - Will merge to 'master'.
842 + Needs review.
843
844
720 -* xy/format-patch-base (2016-04-12) 4 commits
721 - - format-patch: introduce format.base configuration
722 - - format-patch: introduce --base=auto option
723 - - format-patch: add '--base' option to record base tree info
724 - - patch-ids: make commit_patch_id() a public helper function
845 +* xy/format-patch-base (2016-04-22) 4 commits
846 + . format-patch: introduce format.useAutoBase configuration
847 + . format-patch: introduce --base=auto option
848 + . format-patch: add '--base' option to record base tree info
849 + . patch-ids: make commit_patch_id() a public helper function
850
851 "git format-patch" learned a new "--base" option to record what
852 (public, well-known) commit the original series was built on in
853 its output.
854
855 Review comments sent.
731 - ($gmane/291198)
856 + ($gmane/292168)
857
858
859 * dt/index-helper (2016-04-14) 16 commits
@@ -765,45 +890,6 @@ of the repositories listed at
890 network to CDN.
891
892
768 -* ad/cygwin-wants-rename (2015-08-07) 1 commit
769 - (merged to 'next' on 2016-04-19 at 1352ede)
770 - + config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
771 -
772 - On Cygwin, object creation uses the "create a temporary and then
773 - rename it to the final name" pattern, not "create a temporary,
774 - hardlink it to the final name and then unlink the temporary"
775 - pattern.
776 -
777 - This is necessary to use Git on Windows shared directories, and is
778 - already enabled for the MinGW and plain Windows builds. It also
779 - has been used in Cygwin packaged versions of Git for quite a while.
780 - See http://thread.gmane.org/gmane.comp.version-control.git/291853
781 -
782 - Will merge to 'master'.
783 - ($gmane/275680, $gmane/291853).
784 -
785 -
786 -* jc/rerere-multi (2016-04-06) 11 commits
787 - (merged to 'next' on 2016-04-13 at 3db2753)
788 - + rerere: adjust 'forget' to multi-variant world order
789 - + rerere: split code to call ll_merge() further
790 - + rerere: move code related to "forget" together
791 - + rerere: gc and clear
792 - + rerere: do use multiple variants
793 - + t4200: rerere a merge with two identical conflicts
794 - + rerere: allow multiple variants to exist
795 - + rerere: delay the recording of preimage
796 - + rerere: handle leftover rr-cache/$ID directory and postimage files
797 - + rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
798 - + rerere: split conflict ID further
799 -
800 - "git rerere" can encounter two or more files with the same conflict
801 - signature that have to be resolved in different ways, but there was
802 - no way to record these separate resolutions.
803 -
804 - Will merge to 'master'.
805 -
806 -
893 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
894 - merge: drop 'git merge <message> HEAD <commit>' syntax
895