What's cooking (2016/02 #05)

Junio C Hamano committed Feb 17, 2016 at 14:32 UTC 8b374020372164410df0249d11f6b43e7c50eca0
1 file changed +351 -280
whats-cooking.txt
+351 -280
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Feb 2016, #04; Fri, 12)
4 -X-master-at: 494398473714dcbedb38b1ac79b531c7384b3bc4
5 -X-next-at: 6faf27b4ff26804a07363078b238b5cfd3dfa976
3 +Subject: What's cooking in git.git (Feb 2016, #05; Wed, 17)
4 +X-master-at: 0233b800c838ddda41db318ee396320b3c21a560
5 +X-next-at: 45cd78e6c697b37c226f619775990486cf53e84f
6
7 -What's cooking in git.git (Feb 2016, #04; Fri, 12)
7 +What's cooking in git.git (Feb 2016, #05; Wed, 17)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -17,178 +17,334 @@ repositories listed at
17
18 http://git-blame.blogspot.com/p/git-public-repositories.html
19
20 +--------------------------------------------------
21 +[Graduated to "master"]
22 +
23 +* ah/stripspace-optstring (2016-01-29) 1 commit
24 + (merged to 'next' on 2016-02-12 at cd021aa)
25 + + stripspace: call U+0020 a "space" instead of a "blank"
26 +
27 +
28 +* da/user-useconfigonly (2016-02-08) 2 commits
29 + (merged to 'next' on 2016-02-09 at 8b303ce)
30 + + ident: add user.useConfigOnly boolean for when ident shouldn't be guessed
31 + + fmt_ident: refactor strictness checks
32 +
33 + The "user.useConfigOnly" configuration variable can be used to
34 + force the user to always set user.email & user.name configuration
35 + variables, serving as a reminder for those who work on multiple
36 + projects and do not want to put these in their $HOME/.gitconfig.
37 +
38 +
39 +* dw/mergetool-vim-window-shuffle (2016-02-12) 1 commit
40 + (merged to 'next' on 2016-02-12 at 2a2e8bd)
41 + + mergetool: reorder vim/gvim buffers in three-way diffs
42 +
43 + The vimdiff backend for "git mergetool" has been tweaked to arrange
44 + and number buffers in the order that would match the expectation of
45 + majority of people who read left to right, then top down and assign
46 + buffers 1 2 3 4 "mentally" to local base remote merge windows based
47 + on that order.
48 +
49 +
50 +* jk/drop-rsync-transport (2016-02-01) 1 commit
51 + (merged to 'next' on 2016-02-03 at 08be402)
52 + + transport: drop support for git-over-rsync
53 +
54 + It turns out "git clone" over rsync transport has been broken when
55 + the source repository has packed references for a long time, and
56 + nobody noticed nor complained about it.
57 +
58 +
59 +* jk/rerere-xsnprintf (2016-02-08) 1 commit
60 + (merged to 'next' on 2016-02-09 at ff9ade3)
61 + + rerere: replace strcpy with xsnprintf
62 + (this branch is used by jc/rerere-multi.)
63 +
64 + Some calls to strcpy(3) triggers a false warning from static
65 + analysers that are less intelligent than humans, and reducing the
66 + number of these false hits helps us notice real issues. A few
67 + calls to strcpy(3) in "git rerere" that are already safe has been
68 + rewritten to avoid false wanings.
69 +
70 +
71 +* jk/test-path-utils-xsnprintf (2016-02-08) 1 commit
72 + (merged to 'next' on 2016-02-09 at 931f70b)
73 + + test-path-utils: use xsnprintf in favor of strcpy
74 +
75 + Some calls to strcpy(3) triggers a false warning from static
76 + analysers that are less intelligent than humans, and reducing the
77 + number of these false hits helps us notice real issues. A few
78 + calls to strcpy(3) in test-path-utils that are already safe has
79 + been rewritten to avoid false wanings.
80 +
81 +
82 +* js/mingw-tests (2016-02-08) 21 commits
83 + (merged to 'next' on 2016-02-08 at 417e555)
84 + + gitignore: ignore generated test-fake-ssh executable
85 + (merged to 'next' on 2016-02-03 at ace7624)
86 + + mingw: do not bother to test funny file names
87 + + mingw: skip a test in t9130 that cannot pass on Windows
88 + + mingw: handle the missing POSIXPERM prereq in t9124
89 + + mingw: avoid illegal filename in t9118
90 + + mingw: mark t9100's test cases with appropriate prereqs
91 + + t0008: avoid absolute path
92 + + mingw: work around pwd issues in the tests
93 + + mingw: fix t9700's assumption about directory separators
94 + + mingw: skip test in t1508 that fails due to path conversion
95 + + tests: turn off git-daemon tests if FIFOs are not available
96 + + mingw: disable mkfifo-based tests
97 + + mingw: accomodate t0060-path-utils for MSYS2
98 + + mingw: fix t5601-clone.sh
99 + + mingw: let lstat() fail with errno == ENOTDIR when appropriate
100 + + mingw: try to delete target directory before renaming
101 + + mingw: prepare the TMPDIR environment variable for shell scripts
102 + + mingw: factor out Windows specific environment setup
103 + + Git.pm: stop assuming that absolute paths start with a slash
104 + + mingw: do not trust MSYS2's MinGW gettext.sh
105 + + mingw: let's use gettext with MSYS2
106 + (this branch is used by mg/mingw-test-fix.)
107 +
108 + Test scripts have been updated to remove assumptions that are not
109 + portable between Git for POSIX and Git for Windows, or to skip ones
110 + with expectations that are not satisfiable on Git for Windows.
111 +
112 +
113 +* mg/mingw-test-fix (2016-02-08) 1 commit
114 + (merged to 'next' on 2016-02-12 at df77956)
115 + + t9100: fix breakage when SHELL_PATH is not /bin/sh
116 + (this branch uses js/mingw-tests.)
117 +
118 + An earlier adjustment of test mistakenly used write_script
119 + to prepare a file whose exact content matters for the test;
120 + reverting that part fixes the breakage for those who use
121 + SHELL_PATH that is different from /bin/sh.
122 +
123 +
124 +* mm/clean-doc-fix (2016-02-09) 1 commit
125 + (merged to 'next' on 2016-02-09 at ced8555)
126 + + Documentation/git-clean.txt: don't mention deletion of .git/modules/*
127 +
128 + The documentation for "git clean" has been corrected; it mentioned
129 + that .git/modules/* are removed by giving two "-f", which has never
130 + been the case.
131 +
132 +
133 +* nd/clear-gitenv-upon-use-of-alias (2016-02-02) 4 commits
134 + (merged to 'next' on 2016-02-09 at 2c441b4)
135 + + restore_env(): free the saved environment variable once we are done
136 + + git: simplify environment save/restore logic
137 + + git: protect against unbalanced calls to {save,restore}_env()
138 + + git: remove an early return from save_env_before_alias()
139 +
140 + The automatic typo correction applied to an alias was broken
141 + with a recent change already in 'master'.
142 +
143 --------------------------------------------------
144 [New Topics]
145
23 -* ep/format-printf (2016-02-11) 22 commits
24 - - wt-status.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
25 - - utf8.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
26 - - transport-helper.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
27 - - trace.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
28 - - strbuf.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
29 - - remote.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
30 - - pkt-line.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
31 - - merge-recursive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
32 - - imap-send.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
33 - - http-backend.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
34 - - fsck.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
35 - - daemon.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
36 - - config.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
37 - - color.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
38 - - cache.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
39 - - builtin/upload-archive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
40 - - builtin/update-index.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
41 - - builtin/receive-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
42 - - builtin/index-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
43 - - argv-array.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
44 - - advice.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
45 - - git-compat-util.h: add the FORMAT_PRINTF macro
146 +* cn/deprecate-ssh-git-url (2016-02-15) 1 commit
147 + - Disown ssh+git and git+ssh
148
47 - Undecided.
149 + Needs toning down by replacing the condescendence with an
150 + explanation and enlightenment.
151 + ($gmane/286222)
152
153
50 -* ew/force-ipv4 (2016-02-12) 1 commit
51 - - connect & http: support -4 and -6 switches for remote operations
154 +* jk/config-include (2016-02-13) 1 commit
155 + - git-config: better document default behavior for `--include`
156 +
157 + Will merge to 'next'.
158
53 - "git fetch" and friends that make network connections can now be
54 - told to only use ipv4 (or ipv6).
159 +
160 +* nd/git-common-dir-fix (2016-02-12) 1 commit
161 + - rev-parse: take prefix into account in --git-common-dir
162
163 Will merge to 'next'.
164
165
59 -* jk/lose-name-path (2016-02-12) 5 commits
60 - - list-objects: pass full pathname to callbacks
61 - - list-objects: drop name_path entirely
62 - - list-objects: convert name_path to a strbuf
63 - - show_object_with_name: simplify by using path_name()
64 - - http-push: stop using name_path
166 +* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit
167 + - remote-curl: include curl_errorstr on SSL setup failures
168
66 - The "name_path" API was an attempt to reduce the need to construct
67 - the full path out of a series of path components while walking a
68 - tree hierarchy, but over time made less efficient because the path
69 - needs to be flattened, e.g. to be compared with another path that
70 - is already flat. Remove the API and rewrite its users to simplify
71 - overall code complexity.
169 + Help those who debug http(s) part of the system.
170 +
171 + Will merge to 'next'.
172 +
173 +
174 +* bc/http-empty-auth (2016-02-15) 1 commit
175 + - http: add option to try authentication without username
176 +
177 + Some authentication methods do not need username or password, but
178 + libcurl needs some hint that it needs to perform authentication.
179 + Supplying an empty username and password string is a valid way to
180 + do so, but you can set the http.[<url>.]emptyAuth configuration
181 + variable to achieve the same, if you find it cleaner.
182 +
183 + Will merge to 'next'.
184 +
185 +
186 +* ce/https-public-key-pinning (2016-02-15) 1 commit
187 + - http: implement public key pinning
188 +
189 + You can now set http.[<url>.]pinnedpubkey to specify the pinned
190 + public key when building with recent enough versions of libcURL.
191 +
192 + Will merge to 'next'.
193 +
194 +
195 +* ew/connect-verbose (2016-02-15) 1 commit
196 + - t5570: add tests for "git {clone,fetch,pull} -v"
197 +
198 + Will merge to 'next'.
199 +
200 +
201 +* fa/merge-recursive-no-rename (2016-02-17) 2 commits
202 + - merge-recursive: more consistent interface
203 + - merge-recursive: option to disable renames
204 +
205 + "git merge-recursive" learned "--no-renames" option to disable its
206 + rename detection logic.
207
208 Will merge to 'next'.
209
75 ---------------------------------------------------
76 -[Graduated to "master"]
210
78 -* aw/push-force-with-lease-reporting (2016-02-01) 1 commit
79 - (merged to 'next' on 2016-02-03 at facd28f)
80 - + push: fix ref status reporting for --force-with-lease
211 +* jc/am-i-v-fix (2016-02-17) 3 commits
212 + - am -i: fix "v"iew
213 + - pager: factor out a helper to prepare a child process to run the pager
214 + - pager: lose a separate argv[]
215
82 - "git push --force-with-lease" has been taught to report if the push
83 - needed to force (or fast-forwarded).
216 + The "v(iew)" subcommand of the interactive "git am -i" command was
217 + broken in 2.6.0 timeframe when the command was rewritten in C.
218 +
219 + Will merge to 'next'.
220 +
221 +
222 +* jk/merge-tree-merge-blobs (2016-02-16) 1 commit
223 + - merge_blobs: use strbuf instead of manually-sized mmfile_t
224 +
225 + "git merge-tree" (a throw-away demonstration) did not work very
226 + well when merging "both sides added a new file at the same path"
227 + case.
228 +
229 + Undecided; we might be better off deleting it altogether.
230
231
86 -* cc/untracked (2016-01-27) 11 commits
87 - (merged to 'next' on 2016-02-01 at 8203631)
88 - + t7063: add tests for core.untrackedCache
89 - + test-dump-untracked-cache: don't modify the untracked cache
90 - + config: add core.untrackedCache
91 - + dir: simplify untracked cache "ident" field
92 - + dir: add remove_untracked_cache()
93 - + dir: add {new,add}_untracked_cache()
94 - + update-index: move 'uc' var declaration
95 - + update-index: add untracked cache notifications
96 - + update-index: add --test-untracked-cache
97 - + update-index: use enum for untracked cache options
98 - + dir: free untracked cache when removing it
232 +* jk/tighten-alloc (2016-02-15) 18 commits
233 + - ewah: convert to REALLOC_ARRAY, etc
234 + - convert ewah/bitmap code to use xmalloc
235 + - diff_populate_gitlink: use a strbuf
236 + - transport_anonymize_url: use xstrfmt
237 + - git-compat-util: drop mempcpy compat code
238 + - sequencer: simplify memory allocation of get_message
239 + - test-path-utils: fix normalize_path_copy output buffer size
240 + - fetch-pack: simplify add_sought_entry
241 + - fast-import: simplify allocation in start_packfile
242 + - write_untracked_extension: use FLEX_ALLOC helper
243 + - use st_add and st_mult for allocation size computation
244 + - convert trivial cases to FLEX_ARRAY macros
245 + - use xmallocz to avoid size arithmetic
246 + - convert trivial cases to ALLOC_ARRAY
247 + - add helpers for allocating flex-array structs
248 + - harden REALLOC_ARRAY and xcalloc against size_t overflow
249 + - tree-diff: catch integer overflow in combine_diff_path allocation
250 + - add helpers for detecting size_t overflow
251
100 - Update the untracked cache subsystem and change its primary UI from
101 - "git update-index" to "git config".
252 + Update various codepaths to avoid manually-counted malloc().
253
254 + Will merge to 'next'.
255 +
256 +
257 +* js/git-remote-add-url-insteadof-test (2016-02-17) 1 commit
258 + - t5505: 'remote add x y' should work when url.y.insteadOf = x
259 +
260 + Will merge to 'next'.
261
104 -* ew/connect-verbose (2016-01-28) 1 commit
105 - (merged to 'next' on 2016-02-03 at ceac37e)
106 - + pass transport verbosity down to git_connect
262
108 - There were a few "now I am doing this thing" progress messages in
109 - the TCP connection code that can be triggered by setting a verbose
110 - option internally in the code, but "git fetch -v" and friends never
111 - passed the verbose option down to that codepath.
263 +* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits
264 + - get_sha1: don't die() on bogus search strings
265 + - check_filename: tighten dwim-wildcard ambiguity
266 + - checkout: reorder check_filename conditional
267
113 - There was a brief discussion about the impact on the end-user
114 - experience by not limiting this to "fetch -v -v", but I think the
115 - conclusion is that this is OK to enable with a single "-v" as it is
116 - not too noisy.
268 + "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
269 + rev, i.e. the object named by the the pathname with wildcard
270 + characters in a tree object.
271
272 + I lost track of this topic; did we decide that this is a good thing
273 + to do, or unnecessary noise to only cater to a crazy use case?
274
119 -* jk/options-cleanup (2016-02-01) 6 commits
120 - (merged to 'next' on 2016-02-03 at a78d89d)
121 - + apply, ls-files: simplify "-z" parsing
122 - + checkout-index: disallow "--no-stage" option
123 - + checkout-index: handle "--no-index" option
124 - + checkout-index: handle "--no-prefix" option
125 - + checkout-index: simplify "-z" option parsing
126 - + give "nbuf" strbuf a more meaningful name
275
128 - Various clean-ups to the command line option parsing.
276 +* nd/exclusion-regression-fix (2016-02-15) 4 commits
277 + - dir.c: don't exclude whole dir prematurely
278 + - dir.c: support marking some patterns already matched
279 + - dir.c: support tracing exclude
280 + - dir.c: fix match_pathname()
281
282 + Another try to add support to the ignore mechanism that lets you
283 + say "this is excluded" and then later say "oh, no, this part (that
284 + is a subset of the previous part) is not exlucded".
285
131 -* js/test-lib-windows-emulated-yes (2016-02-02) 1 commit
132 - (merged to 'next' on 2016-02-03 at bf6b42c)
133 - + test-lib: limit the output of the yes utility
286 + Will merge to 'next'.
287
135 - The emulated "yes" command used in our test scripts has been
136 - tweaked not to spend too much time generating unnecessary output
137 - that is not used, to help those who test on Windows where it would
138 - not stop until it fills the pipe buffer due to lack of SIGPIPE.
288
289 +* nd/worktree-add-B (2016-02-15) 2 commits
290 + - worktree add -B: do the checkout test before update branch
291 + - worktree: fix "add -B"
292
141 -* js/xmerge-marker-eol (2016-01-27) 2 commits
142 - (merged to 'next' on 2016-02-01 at 05d91a4)
143 - + merge-file: ensure that conflict sections match eol style
144 - + merge-file: let conflict markers match end-of-line style of the context
293 + "git worktree add -B <branchname>" did not work.
294
146 - The low-level merge machinery has been taught to use CRLF line
147 - termination when inserting conflict markers to merged contents that
148 - are themselves CRLF line-terminated.
295 + Will merge to 'next'.
296
297
151 -* ls/clean-smudge-override-in-config (2016-01-29) 1 commit
152 - (merged to 'next' on 2016-02-03 at 5962354)
153 - + convert: treat an empty string for clean/smudge filters as "cat"
298 +* ps/config-error (2016-02-17) 16 commits
299 + - SQUASH
300 + - config: rename git_config_set_or_die to git_config_set
301 + - config: rename git_config_set to git_config_set_gently
302 + - compat: die when unable to set core.precomposeunicode
303 + - sequencer: die on config error when saving replay opts
304 + - init-db: die on config errors when initializing empty repo
305 + - clone: die on config error in cmd_clone
306 + - remote: die on config error when manipulating remotes
307 + - remote: die on config error when setting/adding branches
308 + - remote: die on config error when setting URL
309 + - submodule--helper: die on config error when cloning module
310 + - submodule: die on config error when linking modules
311 + - branch: die on config error when editing branch description
312 + - branch: die on config error when unsetting upstream
313 + - branch: report errors in tracking branch setup
314 + - config: introduce set_or_die wrappers
315
155 - Clean/smudge filters defined in a configuration file of lower
156 - precedence can now be overridden to be a pass-through no-op by
157 - setting the variable to an empty string.
316 + Many codepaths forget to check return value from git_config_set();
317 + the function is made to die() to make sure we do not proceed when
318 + setting a configuration variable failed.
319
320 + Need to squash the tip two commits into one before moving forward.
321
160 -* nd/do-not-move-worktree-manually (2016-01-22) 2 commits
161 - (merged to 'next' on 2016-01-26 at c539221)
162 - + worktree: stop supporting moving worktrees manually
163 - + worktree.c: fix indentation
322
165 - "git worktree" had a broken code that attempted to auto-fix
166 - possible inconsistency that results from end-users moving a
167 - worktree to different places without telling Git (the original
168 - repository needs to maintain backpointers to its worktrees, but
169 - "mv" run by end-users who are not familiar with that fact will
170 - obviously not adjust them), which actually made things worse
171 - when triggered.
323 +* ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit
324 + - wt-status.c: set commitable bit if there is a meaningful merge.
325
326 + "git commit --dry-run" reported "No, no, you cannot commit." in one
327 + case where "git commit" would have allowed you to commit, and this
328 + improves it a little bit ("git commit --dry-run --short" still does
329 + not give you the correct answer, for example).
330
174 -* sb/submodule-init (2016-01-28) 2 commits
175 - - submodule: port init from shell to C
176 - - submodule: port resolve_relative_url from shell to C
177 - (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.)
331
179 - Major part of "git submodule init" has been ported to C.
332 +* tg/git-remote (2016-02-16) 4 commits
333 + - remote: use remote_is_configured() for add and rename
334 + - remote: actually check if remote exits
335 + - remote: simplify remote_is_configured()
336 + - remote: use parse_config_key
337
181 - Will have to wait for 'sb/submodule-parallel-update'.
338 + The internal API to interact with "remote.*" configuration
339 + variables has been streamlined.
340
341 + Will merge to 'next'.
342
184 -* wp/sha1-name-negative-match (2016-02-01) 2 commits
185 - (merged to 'next' on 2016-02-03 at 89fa5ef)
186 - + object name: introduce '^{/!-<negative pattern>}' notation
187 - + test for '!' handling in rev-parse's named commits
343
189 - A new "<branch>^{/!-<pattern>}" notation can be used to name a
190 - commit that is reachable from <branch> that does not match the
191 - given <pattern>.
344 +* ls/config-origin (2016-02-17) 3 commits
345 + - config: add '--show-origin' option to print the origin of a config value
346 + - config: add 'type' to config_source struct that identifies config type
347 + - t: do not hide Git's exit code in tests using 'nul_to_q'
348
349 --------------------------------------------------
350 [Stalled]
@@ -275,45 +431,61 @@ repositories listed at
431 --------------------------------------------------
432 [Cooking]
433
278 -* jk/rerere-xsnprintf (2016-02-08) 1 commit
279 - (merged to 'next' on 2016-02-09 at ff9ade3)
280 - + rerere: replace strcpy with xsnprintf
281 - (this branch is used by jc/rerere-multi.)
282 -
283 - Some calls to strcpy(3) triggers a false warning from static
284 - analysers that are less intelligent than humans, and reducing the
285 - number of these false hits helps us notice real issues. A few
286 - calls to strcpy(3) in "git rerere" that are already safe has been
287 - rewritten to avoid false wanings.
434 +* ep/format-printf (2016-02-11) 22 commits
435 + - wt-status.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
436 + - utf8.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
437 + - transport-helper.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
438 + - trace.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
439 + - strbuf.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
440 + - remote.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
441 + - pkt-line.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
442 + - merge-recursive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
443 + - imap-send.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
444 + - http-backend.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
445 + - fsck.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
446 + - daemon.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
447 + - config.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
448 + - color.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
449 + - cache.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
450 + - builtin/upload-archive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
451 + - builtin/update-index.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
452 + - builtin/receive-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
453 + - builtin/index-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
454 + - argv-array.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
455 + - advice.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
456 + - git-compat-util.h: add the FORMAT_PRINTF macro
457
289 - Will merge to 'master'.
458 + Undecided.
459
460
292 -* jk/test-path-utils-xsnprintf (2016-02-08) 1 commit
293 - (merged to 'next' on 2016-02-09 at 931f70b)
294 - + test-path-utils: use xsnprintf in favor of strcpy
461 +* ew/force-ipv4 (2016-02-12) 1 commit
462 + - connect & http: support -4 and -6 switches for remote operations
463
296 - Some calls to strcpy(3) triggers a false warning from static
297 - analysers that are less intelligent than humans, and reducing the
298 - number of these false hits helps us notice real issues. A few
299 - calls to strcpy(3) in test-path-utils that are already safe has
300 - been rewritten to avoid false wanings.
464 + "git fetch" and friends that make network connections can now be
465 + told to only use ipv4 (or ipv6).
466
302 - Will merge to 'master'.
467 + Will merge to 'next'.
468
469
305 -* mm/clean-doc-fix (2016-02-09) 1 commit
306 - (merged to 'next' on 2016-02-09 at ced8555)
307 - + Documentation/git-clean.txt: don't mention deletion of .git/modules/*
470 +* jk/lose-name-path (2016-02-12) 5 commits
471 + - list-objects: pass full pathname to callbacks
472 + - list-objects: drop name_path entirely
473 + - list-objects: convert name_path to a strbuf
474 + - show_object_with_name: simplify by using path_name()
475 + - http-push: stop using name_path
476
309 - The documentation for "git clean" has been corrected; it mentioned
310 - that .git/modules/* are removed by giving two "-f", which has never
311 - been the case.
477 + The "name_path" API was an attempt to reduce the need to construct
478 + the full path out of a series of path components while walking a
479 + tree hierarchy, but over time made less efficient because the path
480 + needs to be flattened, e.g. to be compared with another path that
481 + is already flat. Remove the API and rewrite its users to simplify
482 + overall code complexity.
483
313 - Will merge to 'master'.
484 + Will merge to 'next'.
485
486
316 -* nd/icase (2016-02-09) 11 commits
487 +* nd/icase (2016-02-15) 12 commits
488 + - grep.c: reuse "icase" variable
489 - diffcore-pickaxe: support case insensitive match on non-ascii
490 - diffcore-pickaxe: "share" regex error handling code
491 - grep/pcre: support utf-8
@@ -328,7 +500,7 @@ repositories listed at
500
501 "git grep -i" has been taught to fold case in non-ascii locales.
502
331 - ($gmane/285666)
503 + ($gmane/286137)
504
505
506 * tb/conversion (2016-02-10) 6 commits
@@ -340,62 +512,11 @@ repositories listed at
512 + convert.c: remove unused parameter 'path'
513 + t0027: add tests for get_stream_filter()
514
343 - Simplication of eol conversion codepath.
344 -
345 -
346 -* da/user-useconfigonly (2016-02-08) 2 commits
347 - (merged to 'next' on 2016-02-09 at 8b303ce)
348 - + ident: add user.useConfigOnly boolean for when ident shouldn't be guessed
349 - + fmt_ident: refactor strictness checks
350 -
351 - The "user.useConfigOnly" configuration variable can be used to
352 - force the user to always set user.email & user.name configuration
353 - variables, serving as a reminder for those who work on multiple
354 - projects and do not want to put these in their $HOME/.gitconfig.
355 -
356 - Will merge to 'master'.
357 -
358 -
359 -* ah/stripspace-optstring (2016-01-29) 1 commit
360 - (merged to 'next' on 2016-02-12 at cd021aa)
361 - + stripspace: call U+0020 a "space" instead of a "blank"
362 -
363 - Will merge to 'master'.
364 -
365 -
366 -* dw/mergetool-vim-window-shuffle (2016-02-12) 1 commit
367 - (merged to 'next' on 2016-02-12 at 2a2e8bd)
368 - + mergetool: reorder vim/gvim buffers in three-way diffs
369 -
370 - The vimdiff backend for "git mergetool" has been tweaked to arrange
371 - and number buffers in the order that would match the expectation of
372 - majority of people who read left to right, then top down and assign
373 - buffers 1 2 3 4 "mentally" to local base remote merge windows based
374 - on that order.
375 -
376 - Will merge to 'master'.
377 -
378 -
379 -* jk/drop-rsync-transport (2016-02-01) 1 commit
380 - (merged to 'next' on 2016-02-03 at 08be402)
381 - + transport: drop support for git-over-rsync
382 -
383 - It turns out "git clone" over rsync transport has been broken when
384 - the source repository has packed references for a long time, and
385 - nobody noticed nor complained about it.
386 -
387 - Will merge to 'master'.
388 -
389 -
390 -* dv/http-try-negotiate-at-least-once (2016-02-02) 1 commit
391 - - remote-curl: don't fall back to Basic auth if we haven't tried Negotiate
392 -
515 Will be rerolled.
394 - A solution with a different approach may be a better one.
395 - ($gmane/285633)
516 + ($gmane/286219)
517
518
398 -* sb/submodule-parallel-update (2016-02-12) 7 commits
519 +* sb/submodule-parallel-update (2016-02-13) 7 commits
520 - clone: allow an explicit argument for parallel submodule clones
521 - submodule update: expose parallelism to the user
522 - git submodule update: have a dedicated helper for cloning
@@ -403,14 +524,16 @@ repositories listed at
524 - fetching submodules: respect `submodule.fetchJobs` config option
525 - submodule-config: drop check against NULL
526 - submodule-config: keep update strategy around
406 - (this branch is used by dt/refs-backend-lmdb.)
527 + (this branch is used by dt/refs-backend-lmdb and sb/submodule-init.)
528
529 A major part of "git submodule update" has been ported to C to take
530 advantage of the recently added framework to run download tasks in
531 parallel.
532
533 + Comments?
534
413 -* dt/refs-backend-lmdb (2016-02-12) 22 commits
535 +
536 +* dt/refs-backend-lmdb (2016-02-13) 22 commits
537 - refs: tests for lmdb backend
538 - refs: add LMDB refs storage backend
539 - refs: add register_ref_storage_backends()
@@ -432,8 +555,8 @@ repositories listed at
555 - refs: add methods for the ref iterators
556 - refs: add methods for misc ref operations
557 - refs: add a backend method structure with transaction functions
435 - - Merge branch 'sb/submodule-parallel-update' into dt/refs/backend-lmdb
436 - (this branch uses sb/submodule-parallel-update.)
558 + - Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb
559 + (this branch uses sb/submodule-parallel-update; is tangled with sb/submodule-init.)
560
561 Building on top of a few refs-backend preparatory series, LMDB
562 based refs backend has been plugged into the system.
@@ -442,66 +565,7 @@ repositories listed at
565 ($gmane/285604)
566
567
445 -* js/mingw-tests (2016-02-08) 21 commits
446 - (merged to 'next' on 2016-02-08 at 417e555)
447 - + gitignore: ignore generated test-fake-ssh executable
448 - (merged to 'next' on 2016-02-03 at ace7624)
449 - + mingw: do not bother to test funny file names
450 - + mingw: skip a test in t9130 that cannot pass on Windows
451 - + mingw: handle the missing POSIXPERM prereq in t9124
452 - + mingw: avoid illegal filename in t9118
453 - + mingw: mark t9100's test cases with appropriate prereqs
454 - + t0008: avoid absolute path
455 - + mingw: work around pwd issues in the tests
456 - + mingw: fix t9700's assumption about directory separators
457 - + mingw: skip test in t1508 that fails due to path conversion
458 - + tests: turn off git-daemon tests if FIFOs are not available
459 - + mingw: disable mkfifo-based tests
460 - + mingw: accomodate t0060-path-utils for MSYS2
461 - + mingw: fix t5601-clone.sh
462 - + mingw: let lstat() fail with errno == ENOTDIR when appropriate
463 - + mingw: try to delete target directory before renaming
464 - + mingw: prepare the TMPDIR environment variable for shell scripts
465 - + mingw: factor out Windows specific environment setup
466 - + Git.pm: stop assuming that absolute paths start with a slash
467 - + mingw: do not trust MSYS2's MinGW gettext.sh
468 - + mingw: let's use gettext with MSYS2
469 - (this branch is used by mg/mingw-test-fix.)
470 -
471 - Test scripts have been updated to remove assumptions that are not
472 - portable between Git for POSIX and Git for Windows, or to skip ones
473 - with expectations that are not satisfiable on Git for Windows.
474 -
475 - Will merge to 'master'.
476 -
477 -
478 -* mg/mingw-test-fix (2016-02-08) 1 commit
479 - (merged to 'next' on 2016-02-12 at df77956)
480 - + t9100: fix breakage when SHELL_PATH is not /bin/sh
481 - (this branch uses js/mingw-tests.)
482 -
483 - An earlier adjustment of test mistakenly used write_script
484 - to prepare a file whose exact content matters for the test;
485 - reverting that part fixes the breakage for those who use
486 - SHELL_PATH that is different from /bin/sh.
487 -
488 - Will merge to 'master'.
489 -
490 -
491 -* nd/clear-gitenv-upon-use-of-alias (2016-02-02) 4 commits
492 - (merged to 'next' on 2016-02-09 at 2c441b4)
493 - + restore_env(): free the saved environment variable once we are done
494 - + git: simplify environment save/restore logic
495 - + git: protect against unbalanced calls to {save,restore}_env()
496 - + git: remove an early return from save_env_before_alias()
497 -
498 - The automatic typo correction applied to an alias was broken
499 - with a recent change already in 'master'.
500 -
501 - Will merge to 'master'.
502 -
503 -
504 -* kn/ref-filter-atom-parsing (2016-02-02) 12 commits
568 +* kn/ref-filter-atom-parsing (2016-02-17) 11 commits
569 - ref-filter: introduce objectname_atom_parser()
570 - ref-filter: introduce contents_atom_parser()
571 - ref-filter: introduce remote_ref_atom_parser()
@@ -512,13 +576,12 @@ repositories listed at
576 - ref-filter: introduce parsing functions for each valid atom
577 - ref-filter: introduce struct used_atom
578 - ref-filter: bump 'used_atom' and related code to the top
515 - - ref-filter: use strbuf_split_str_omit_term()
516 - - strbuf: introduce strbuf_split_str_omit_term()
579 + - ref-filter: use string_list_split over strbuf_split
580
581 Refactoring of ref-filter's format-parsing code, in preparation
582 for "branch --format" and friends.
583
521 - ($gmane/285158)
584 + Will merge to 'next'.
585
586
587 * ad/cygwin-wants-rename (2015-08-07) 1 commit
@@ -536,7 +599,6 @@ repositories listed at
599 - rerere: handle leftover rr-cache/$ID directory and postimage files
600 - rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
601 - rerere: split conflict ID further
539 - (this branch uses jk/rerere-xsnprintf.)
602
603 "git rerere" can encounter two or more files with the same conflict
604 signature that have to be resolved in different ways, but there was
@@ -553,3 +615,12 @@ repositories listed at
615 git-gui still uses the deprecated syntax, which needs to be fixed
616 before this final step can proceed.
617 ($gmane/282594)
618 +
619 +--------------------------------------------------
620 +[Discarded]
621 +
622 +* dv/http-try-negotiate-at-least-once (2016-02-02) 1 commit
623 + . remote-curl: don't fall back to Basic auth if we haven't tried Negotiate
624 +
625 + bc/http-empty-auth satisfies the original need that triggered this
626 + topic better.