What's cooking (2015/05 #04)

Junio C Hamano committed May 11, 2015 at 15:28 UTC 3b537faa68480ec5334cf31fa6a2d83328d1de3c
1 file changed +452 -415
whats-cooking.txt
+452 -415
@@ -1,34 +1,342 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (May 2015, #03; Fri, 8)
4 -X-master-at: 8440f74997cf7958c7e8ec853f590828085049b8
5 -X-next-at: 38e70713119c25ab5699df6b2fb13e4133d399ab
3 +Subject: What's cooking in git.git (May 2015, #04; Mon, 11)
4 +X-master-at: c518059b263bb506b96a0ae90c4d40408c760cb0
5 +X-next-at: 91e4f9ead74701a5690c950e19c8b631ee8c7a4b
6
7 -What's cooking in git.git (May 2015, #03; Fri, 8)
7 +What's cooking in git.git (May 2015, #04; Mon, 11)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
13
14 +Git 2.3.8 has been tagged; it contains Linus's favorite fix for "git
15 +commit --date=now", among other things, and it will be the last for
16 +2.3.x series for now.
17 +
18 You can find the changes described here in the integration branches
19 of the repositories listed at
20
21 http://git-blame.blogspot.com/p/git-public-repositories.html
22
23 +--------------------------------------------------
24 +[Graduated to "master"]
25 +
26 +* ep/do-not-feed-a-pointer-to-array-size (2015-05-05) 1 commit
27 + (merged to 'next' on 2015-05-07 at 64d9a20)
28 + + git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array
29 +
30 + Catch a programmer mistake to feed a pointer not an array to
31 + ARRAY_SIZE() macro, by using a couple of GCC extensions.
32 +
33 +
34 +* jc/daemon-no-ipv6-for-2.4.1 (2015-05-05) 1 commit
35 + (merged to 'next' on 2015-05-05 at 1eb279f)
36 + + daemon: unbreak NO_IPV6 build regression
37 +
38 + "git daemon" fails to build from the source under NO_IPV6
39 + configuration (regression in 2.4).
40 +
41 +
42 +* jc/hash-object (2015-05-05) 4 commits
43 + (merged to 'next' on 2015-05-07 at 9b81a06)
44 + + write_sha1_file(): do not use a separate sha1[] array
45 + + t1007: add hash-object --literally tests
46 + + hash-object --literally: fix buffer overrun with extra-long object type
47 + + git-hash-object.txt: document --literally option
48 +
49 + "hash-object --literally" introduced in v2.2 was not prepared to
50 + take a really long object type name.
51 +
52 +
53 +* jc/plug-fmt-merge-msg-leak (2015-04-20) 1 commit
54 + (merged to 'next' on 2015-05-05 at bd94828)
55 + + fmt-merge-msg: plug small leak of commit buffer
56 +
57 + Originally merged to 'next' on 2015-04-21
58 +
59 +
60 +* jk/filter-branch-use-of-sed-on-incomplete-line (2015-04-29) 1 commit
61 + (merged to 'next' on 2015-05-07 at 849a24d)
62 + + filter-branch: avoid passing commit message through sed
63 +
64 + "filter-branch" corrupted commit log message that ends with an
65 + incomplete line on platforms with some "sed" implementations that
66 + munge such a line. Work it around by avoiding to use "sed".
67 +
68 +
69 +* jk/reading-packed-refs (2015-04-16) 9 commits
70 + (merged to 'next' on 2015-05-05 at 89b5694)
71 + + t1430: add another refs-escape test
72 + + read_packed_refs: avoid double-checking sane refs
73 + + strbuf_getwholeline: use getdelim if it is available
74 + + strbuf_getwholeline: avoid calling strbuf_grow
75 + + strbuf_addch: avoid calling strbuf_grow
76 + + config: use getc_unlocked when reading from file
77 + + strbuf_getwholeline: use getc_unlocked
78 + + git-compat-util: add fallbacks for unlocked stdio
79 + + strbuf_getwholeline: use getc macro
80 +
81 + Originally merged to 'next' on 2015-04-21
82 +
83 + An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
84 + to read packed-refs file revealed that the former is unacceptably
85 + inefficient.
86 +
87 +
88 +* jk/rebase-quiet-noop (2015-04-28) 1 commit
89 + (merged to 'next' on 2015-05-05 at 82780b9)
90 + + rebase: silence "git checkout" for noop rebase
91 +
92 + "git rebase --quiet" was not quite quiet when there is nothing to
93 + do.
94 +
95 +
96 +* jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
97 + (merged to 'next' on 2015-05-05 at a8de68e)
98 + + sha1_file: squelch "packfile cannot be accessed" warnings
99 +
100 + Originally merged to 'next' on 2015-04-21
101 +
102 +
103 +* jk/still-interesting (2015-04-17) 1 commit
104 + (merged to 'next' on 2015-05-05 at 6a5c89c)
105 + + limit_list: avoid quadratic behavior from still_interesting
106 +
107 + Originally merged to 'next' on 2015-04-21
108 +
109 + "git rev-list --objects $old --not --all" to see if everything that
110 + is reachable from $old is already connected to the existing refs
111 + was very inefficient.
112 +
113 +
114 +* jn/clean-use-error-not-fprintf-on-stderr (2015-05-04) 1 commit
115 + (merged to 'next' on 2015-05-05 at 12391f1)
116 + + config: use error() instead of fprintf(stderr, ...)
117 +
118 + Some error messages in "git config" were emitted without calling
119 + the usual error() facility.
120 +
121 +
122 +* ld/p4-case-fold (2015-04-28) 1 commit
123 + (merged to 'next' on 2015-05-05 at 03ecbd0)
124 + + git-p4: add failing tests for case-folding p4d
125 +
126 +
127 +* lm/squelch-bg-progress (2015-04-15) 2 commits
128 + (merged to 'next' on 2015-05-05 at a2fe74d)
129 + + compat/mingw: stubs for getpgid() and tcgetpgrp()
130 + + progress: no progress in background
131 +
132 + Originally merged to 'next' on 2015-04-21
133 +
134 + Many long-running operations show progress eye-candy, even when
135 + they are later backgrounded. Hide the eye-candy when the process
136 + is sent to the background instead.
137 +
138 +
139 +* ls/p4-changes-block-size (2015-04-20) 1 commit
140 + (merged to 'next' on 2015-05-05 at 92596d4)
141 + + git-p4: use -m when running p4 changes
142 +
143 + Originally merged to 'next' on 2015-04-21
144 +
145 + "git p4" learned "--changes-block-size <n>" to read the changes in
146 + chunks from Perforce, instead of making one call to "p4 changes"
147 + that may trigger "too many rows scanned" error from Perforce.
148 +
149 +
150 +* mm/add-p-split-error (2015-04-16) 5 commits
151 + (merged to 'next' on 2015-05-05 at c556011)
152 + + stash -p: demonstrate failure of split with mixed y/n
153 + + t3904-stash-patch: factor PERL prereq at the top of the file
154 + + t3904-stash-patch: fix test description
155 + + add -p: demonstrate failure when running 'edit' after a split
156 + + t3701-add-interactive: simplify code
157 +
158 + Originally merged to 'next' on 2015-04-23
159 +
160 + When "add--interactive" splits a hunk into two overlapping hunks
161 + and then let the user choose only one, it sometimes feeds an
162 + incorrect patch text to "git apply". Add tests to demonstrate
163 + this.
164 +
165 + I have a slight suspicion that this may be $gmane/87202 coming back
166 + and biting us (I seem to have said "let's run with this and see
167 + what happens" back then).
168 +
169 +
170 +* nd/multiple-work-trees (2015-03-31) 41 commits
171 + (merged to 'next' on 2015-05-05 at 0f04a1c)
172 + + prune --worktrees: fix expire vs worktree existence condition
173 + + t1501: fix test with split index
174 + + t2026: fix broken &&-chain
175 + + t2026 needs procondition SANITY
176 + + git-checkout.txt: a note about multiple checkout support for submodules
177 + + checkout: add --ignore-other-wortrees
178 + + checkout: pass whole struct to parse_branchname_arg instead of individual flags
179 + + git-common-dir: make "modules/" per-working-directory directory
180 + + checkout: do not fail if target is an empty directory
181 + + t2025: add a test to make sure grafts is working from a linked checkout
182 + + checkout: don't require a work tree when checking out into a new one
183 + + git_path(): keep "info/sparse-checkout" per work-tree
184 + + count-objects: report unused files in $GIT_DIR/worktrees/...
185 + + gc: support prune --worktrees
186 + + gc: factor out gc.pruneexpire parsing code
187 + + gc: style change -- no SP before closing parenthesis
188 + + checkout: clean up half-prepared directories in --to mode
189 + + checkout: reject if the branch is already checked out elsewhere
190 + + prune: strategies for linked checkouts
191 + + checkout: support checking out into a new working directory
192 + + use new wrapper write_file() for simple file writing
193 + + wrapper.c: wrapper to open a file, fprintf then close
194 + + setup.c: support multi-checkout repo setup
195 + + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
196 + + setup.c: convert check_repository_format_gently to use strbuf
197 + + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
198 + + setup.c: convert is_git_directory() to use strbuf
199 + + git-stash: avoid hardcoding $GIT_DIR/logs/....
200 + + *.sh: avoid hardcoding $GIT_DIR/hooks/...
201 + + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
202 + + $GIT_COMMON_DIR: a new environment variable
203 + + commit: use SEQ_DIR instead of hardcoding "sequencer"
204 + + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
205 + + reflog: avoid constructing .lock path with git_path
206 + + *.sh: respect $GIT_INDEX_FILE
207 + + git_path(): be aware of file relocation in $GIT_DIR
208 + + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
209 + + path.c: rename vsnpath() to do_git_path()
210 + + git_snpath(): retire and replace with strbuf_git_path()
211 + + path.c: make get_pathname() call sites return const char *
212 + + path.c: make get_pathname() return strbuf instead of static buffer
213 +
214 + Originally merged to 'next' on 2015-04-02
215 +
216 + A replacement for contrib/workdir/git-new-workdir that does not
217 + rely on symbolic links and make sharing of objects and refs safer
218 + by making the borrowee and borrowers aware of each other.
219 +
220 +
221 +* nd/slim-index-pack-memory-usage (2015-04-18) 2 commits
222 + (merged to 'next' on 2015-05-05 at 42bd845)
223 + + index-pack: kill union delta_base to save memory
224 + + index-pack: reduce object_entry size to save memory
225 +
226 + Originally merged to 'next' on 2015-04-21
227 +
228 + Memory usage of "git index-pack" has been trimmed by tens of
229 + per-cent.
230 +
231 +
232 +* pt/credential-xdg (2015-03-25) 4 commits
233 + (merged to 'next' on 2015-05-05 at 0d6711f)
234 + + t0302: "unreadable" test needs POSIXPERM
235 + + t0302: test credential-store support for XDG_CONFIG_HOME
236 + + git-credential-store: support XDG_CONFIG_HOME
237 + + git-credential-store: support multiple credential files
238 + (this branch is used by pt/xdg-config-path.)
239 +
240 + Originally merged to 'next' on 2015-03-25
241 +
242 + Tweak the sample "store" backend of the credential helper to honor
243 + XDG configuration file locations when specified.
244 +
245 +
246 +* pt/xdg-config-path (2015-05-06) 7 commits
247 + (merged to 'next' on 2015-05-07 at 38e7071)
248 + + path.c: remove home_config_paths()
249 + + git-config: replace use of home_config_paths()
250 + + git-commit: replace use of home_config_paths()
251 + + credential-store.c: replace home_config_paths() with xdg_config_home()
252 + + dir.c: replace home_config_paths() with xdg_config_home()
253 + + attr.c: replace home_config_paths() with xdg_config_home()
254 + + path.c: implement xdg_config_home()
255 + (this branch uses pt/credential-xdg.)
256 +
257 + Code clean-up for xdg configuration path support.
258 +
259 +
260 +* sb/prefix-path-free-results (2015-05-05) 1 commit
261 + (merged to 'next' on 2015-05-07 at 64f15a8)
262 + + prefix_path(): unconditionally free results in the callers
263 +
264 + Code clean-up (not a leak-fix).
265 +
266 +
267 +* sg/complete-decorate-full-not-long (2015-05-03) 1 commit
268 + (merged to 'next' on 2015-05-07 at 2beb429)
269 + + completion: fix and update 'git log --decorate=' options
270 +
271 + The completion for "log --decorate=" parameter value was incorrect.
272 +
273 +
274 +* sg/completion-no-redundant-all-command-list (2015-05-03) 1 commit
275 + (merged to 'next' on 2015-05-07 at 00b4bd9)
276 + + completion: remove redundant __git_compute_all_commands() call
277 +
278 + Code simplification.
279 +
280 +
281 +* tb/blame-resurrect-convert-to-git (2015-05-03) 1 commit
282 + (merged to 'next' on 2015-05-05 at 8e1974e)
283 + + blame: CRLF in the working tree and LF in the repo
284 +
285 + Some time ago, "git blame" (incorrectly) lost the convert_to_git()
286 + call when synthesizing a fake "tip" commit that represents the
287 + state in the working tree, which broke folks who record the history
288 + with LF line ending to make their project portabile across
289 + platforms while terminating lines in their working tree files with
290 + CRLF for their platform.
291 +
292 +
293 +* tb/t0027-crlf (2015-04-25) 3 commits
294 + (merged to 'next' on 2015-05-05 at 36accbb)
295 + + t0027: Add repoMIX and LF_nul
296 + + t0027: support NATIVE_CRLF platforms
297 + + t0027: cleanup: rename functions; avoid non-leading TABs
298 +
299 + Originally merged to 'next' on 2015-04-21
300 +
301 + More line-ending tests.
302 +
303 +
304 +* va/fix-git-p4-tests (2015-04-28) 1 commit
305 + (merged to 'next' on 2015-05-05 at 795e858)
306 + + git-p4: t9814: prevent --chain-lint failure
307 +
308 +
309 +* va/p4-client-path (2015-04-23) 2 commits
310 + (merged to 'next' on 2015-05-05 at 852facc)
311 + + git-p4: improve client path detection when branches are used
312 + + t9801: check git-p4's branch detection with client spec enabled
313 +
314 + Originally merged to 'next' on 2015-04-23
315 +
316 + git p4 attempts to better handle branches in Perforce.
317 +
318 --------------------------------------------------
319 [New Topics]
320
321 * dl/branch-error-message (2015-05-06) 1 commit
23 - - branch: do not call a "remote-tracking branch" a "remote branch"
322 + (merged to 'next' on 2015-05-11 at ed947ab)
323 + + branch: do not call a "remote-tracking branch" a "remote branch"
324
25 - Will merge to 'next'.
325 + Error messages from "git branch" called remote-tracking branches as
326 + "remote branches".
327 +
328 + Will merge to 'master'.
329
330
331 * dl/subtree-push-no-squash (2015-05-07) 1 commit
29 - - contrib/subtree: there's no push --squash
332 + (merged to 'next' on 2015-05-11 at 74d07ca)
333 + + contrib/subtree: there's no push --squash
334
31 - Will merge to 'next'.
335 + "git subtree" script (in contrib/) does not have --squash option
336 + when pushing, but the documentation and help text pretended as if
337 + it did.
338 +
339 + Will merge to 'master'.
340
341
342 * ld/p4-editor-multi-words (2015-05-07) 2 commits
@@ -46,35 +354,111 @@ of the repositories listed at
354
355
356 * dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit
49 - - contrib/subtree: portability fix for string printing
357 + (merged to 'next' on 2015-05-11 at 36d4f0e)
358 + + contrib/subtree: portability fix for string printing
359
360 "git subtree" script (in contrib/) used "echo -n" to produce
361 progress messages in a non-portable way.
362
54 - Will merge to 'next'.
363 + Will merge to 'master'.
364
365
366 * ls/http-ssl-cipher-list (2015-05-08) 1 commit
58 - - http: add support for specifying an SSL cipher list
367 + (merged to 'next' on 2015-05-11 at 55764ce)
368 + + http: add support for specifying an SSL cipher list
369
370 Introduce http.<url>.SSLCipherList configuration variable to tweak
371 the list of cipher suite to be used with libcURL when talking with
372 https:// sites.
373
64 - Will merge to 'next'.
374 + Will merge to 'master'.
375
376
377 * ps/bundle-verify-arg (2015-05-08) 1 commit
68 - - bundle: verify arguments more strictly
378 + (merged to 'next' on 2015-05-11 at 9f1b1ae)
379 + + bundle: verify arguments more strictly
380
70 - Will merge to 'next'.
381 + "git bundle verify" did not diagnose extra parameters on the
382 + command line.
383 +
384 + Will merge to 'master'.
385
386
387 * sg/help-subcommands (2015-05-08) 1 commit
74 - - command-list.txt: fix whitespace inconsistency
388 + (merged to 'next' on 2015-05-11 at 91e4f9e)
389 + + command-list.txt: fix whitespace inconsistency
390
391 A preparatory clean-up step.
392
393 + Will merge to 'master'.
394 +
395 +
396 +* mh/ref-directory-file-2 (2015-05-10) 19 commits
397 + - SQUASH???
398 + - reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
399 + - ref_transaction_commit(): delete extra "the" from error message
400 + - ref_transaction_commit(): provide better error messages
401 + - rename_ref(): integrate lock_ref_sha1_basic() errors into ours
402 + - lock_ref_sha1_basic(): improve diagnostics for D/F conflicts
403 + - lock_ref_sha1_basic(): report errors via a "struct strbuf *err"
404 + - verify_refname_available(): report errors via a "struct strbuf *err"
405 + - verify_refname_available(): rename function
406 + - refs: check for D/F conflicts among refs processed in a transaction
407 + - ref_transaction_commit(): use a string_list for detecting duplicates
408 + - is_refname_available(): use dirname in first loop
409 + - struct nonmatching_ref_data: store a refname instead of a ref_entry
410 + - report_refname_conflict(): inline function
411 + - entry_matches(): inline function
412 + - is_refname_available(): convert local variable "dirname" to strbuf
413 + - is_refname_available(): avoid shadowing "dir" variable
414 + - is_refname_available(): explain the reason for an early exit
415 + - t1404: new tests of D/F conflicts within ref transactions
416 + (this branch uses mh/write-refs-sooner-2.2, mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.)
417 +
418 + A reroll is posted, but haven't got a chance to pick it up yet.
419 +
420 +
421 +* mh/write-refs-sooner-2.2 (2015-05-10) 8 commits
422 + - ref_transaction_commit(): fix atomicity and avoid fd exhaustion
423 + - ref_transaction_commit(): remove the local flags variable
424 + - ref_transaction_commit(): inline call to write_ref_sha1()
425 + - rename_ref(): inline calls to write_ref_sha1() from this function
426 + - commit_ref_update(): new function, extracted from write_ref_sha1()
427 + - write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
428 + - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
429 + - update-ref: test handling large transactions properly
430 + (this branch is used by mh/ref-directory-file-2, mh/write-refs-sooner-2.3 and mh/write-refs-sooner-2.4.)
431 +
432 + Multi-ref transaction support we merged a few releases ago
433 + unnecessarily kept many file descriptors open, risking to fail with
434 + resource exhaustion.
435 +
436 +
437 +* mh/write-refs-sooner-2.3 (2015-05-10) 1 commit
438 + - Merge branch 'mh/write-refs-sooner' into mh/write-refs-sooner-2.3
439 + (this branch is used by mh/ref-directory-file-2 and mh/write-refs-sooner-2.4; uses mh/write-refs-sooner-2.2.)
440 +
441 + Multi-ref transaction support we merged a few releases ago
442 + unnecessarily kept many file descriptors open, risking to fail with
443 + resource exhaustion. This is for 2.3.x track.
444 +
445 +
446 +* mh/write-refs-sooner-2.4 (2015-05-10) 1 commit
447 + - Merge branch 'mh/write-refs-sooner-2.3' into mh/write-refs-sooner-2.4
448 + (this branch is used by mh/ref-directory-file-2; uses mh/write-refs-sooner-2.2 and mh/write-refs-sooner-2.3.)
449 +
450 + Multi-ref transaction support we merged a few releases ago
451 + unnecessarily kept many file descriptors open, risking to fail with
452 + resource exhaustion. This is for 2.4.x track.
453 +
454 +
455 +* sb/ref-lock-lose-lock-fd (2015-05-10) 1 commit
456 + - refs.c: remove lock_fd from struct ref_lock
457 +
458 + The refs API uses ref_lock struct which had its own "int fd", even
459 + though the same file descriptor was in the lock struct it contains.
460 + Clean-up the code to lose this redundant field.
461 +
462 Will merge to 'next'.
463
464 --------------------------------------------------
@@ -321,67 +705,25 @@ of the repositories listed at
705 --------------------------------------------------
706 [Cooking]
707
324 -* jc/daemon-no-ipv6-for-2.4.1 (2015-05-05) 1 commit
325 - (merged to 'next' on 2015-05-05 at 1eb279f)
326 - + daemon: unbreak NO_IPV6 build regression
327 -
328 - "git daemon" fails to build from the source under NO_IPV6
329 - configuration (regression in 2.4).
330 -
331 - Will merge to 'master' in the second batch.
332 -
333 -
334 -* sb/prefix-path-free-results (2015-05-05) 1 commit
335 - (merged to 'next' on 2015-05-07 at 64f15a8)
336 - + prefix_path(): unconditionally free results in the callers
337 -
338 - Code clean-up (not a leak-fix).
339 -
340 - Will merge to 'master' in the second batch.
341 -
342 -
708 * sg/completion-omit-credential-helpers (2015-05-06) 1 commit
344 - - completion: remove credential helpers from porcelain commands
709 + (merged to 'next' on 2015-05-11 at aa7e554)
710 + + completion: remove credential helpers from porcelain commands
711
712 The Git subcommand completion (in contrib/) listed credential
713 helpers among candidates, which is not something the end user would
714 invoke interatively.
715
350 - Will merge to 'next'.
716 + Will merge to 'master'.
717
718
719 * jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits
354 - - tests: skip dav http-push tests under NO_EXPAT=NoThanks
355 - - t/lib-httpd.sh: skip tests if NO_CURL is defined
720 + (merged to 'next' on 2015-05-11 at a52b711)
721 + + tests: skip dav http-push tests under NO_EXPAT=NoThanks
722 + + t/lib-httpd.sh: skip tests if NO_CURL is defined
723
724 Test clean-up.
725
359 - Will merge to 'next'.
360 -
361 -
362 -* mh/ref-directory-file (2015-05-05) 19 commits
363 - - SQUASH???
364 - - reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
365 - - ref_transaction_commit(): delete extra "the" from error message
366 - - ref_transaction_commit(): provide better error messages
367 - - rename_ref(): integrate lock_ref_sha1_basic() errors into ours
368 - - lock_ref_sha1_basic(): improve diagnostics for D/F conflicts
369 - - lock_ref_sha1_basic(): report errors via a "struct strbuf *err"
370 - - verify_refname_available(): report errors via a "struct strbuf *err"
371 - - verify_refname_available(): rename function
372 - - refs: check for D/F conflicts among refs processed in a transaction
373 - - ref_transaction_commit(): use a string_list for detecting duplicates
374 - - is_refname_available(): use dirname in first loop
375 - - struct nonmatching_ref_data: store a refname instead of a ref_entry
376 - - report_refname_conflict(): inline function
377 - - entry_matches(): inline function
378 - - is_refname_available(): convert local variable "dirname" to strbuf
379 - - is_refname_available(): avoid shadowing "dir" variable
380 - - is_refname_available(): explain the reason for an early exit
381 - - t1404: new tests of D/F conflicts within ref transactions
382 - (this branch uses mh/ref-lock-avoid-running-out-of-fds.)
383 -
384 - Expecting a reroll.
726 + Will merge to 'master'.
727
728
729 * nd/dwim-wildcards-as-pathspecs (2015-05-03) 1 commit
@@ -415,47 +757,6 @@ of the repositories listed at
757 Expecting a reroll ($gmane/268391).
758
759
418 -* sg/complete-decorate-full-not-long (2015-05-03) 1 commit
419 - (merged to 'next' on 2015-05-07 at 2beb429)
420 - + completion: fix and update 'git log --decorate=' options
421 -
422 - The completion for "log --decorate=" parameter value was incorrect.
423 -
424 - Will merge to 'master' in the second batch.
425 -
426 -
427 -* sg/completion-no-redundant-all-command-list (2015-05-03) 1 commit
428 - (merged to 'next' on 2015-05-07 at 00b4bd9)
429 - + completion: remove redundant __git_compute_all_commands() call
430 -
431 - Code simplification.
432 -
433 - Will merge to 'master' in the second batch.
434 -
435 -
436 -* jc/hash-object (2015-05-05) 4 commits
437 - (merged to 'next' on 2015-05-07 at 9b81a06)
438 - + write_sha1_file(): do not use a separate sha1[] array
439 - + t1007: add hash-object --literally tests
440 - + hash-object --literally: fix buffer overrun with extra-long object type
441 - + git-hash-object.txt: document --literally option
442 -
443 - "hash-object --literally" introduced in v2.2 was not prepared to
444 - take a really long object type name.
445 -
446 - Will merge to 'master' in the second batch.
447 -
448 -
449 -* jn/clean-use-error-not-fprintf-on-stderr (2015-05-04) 1 commit
450 - (merged to 'next' on 2015-05-05 at 12391f1)
451 - + config: use error() instead of fprintf(stderr, ...)
452 -
453 - Some error messages in "git config" were emitted without calling
454 - the usual error() facility.
455 -
456 - Will merge to 'master' in the second batch.
457 -
458 -
760 * jc/clone-bundle (2015-04-30) 1 commit
761 - repack: optionally create a clone.bundle
762
@@ -469,53 +770,18 @@ of the repositories listed at
770 - sha1_name: refactor interpret_upstream_mark
771 - sha1_name: refactor upstream_mark
772 - remote.c: add branch_get_push
472 - - remote.c: report specific errors from branch_get_upstream
473 - - remote.c: introduce branch_get_upstream helper
474 - - remote.c: provide per-branch pushremote name
475 - - remote.c: hoist branch.*.remote lookup out of remote_get_1
476 - - remote.c: drop "remote" pointer from "struct branch"
477 - - remote.c: drop default_remote_name variable
478 -
479 - Introduce <branch>@{push} short-hand to denote the remote-tracking
480 - branch that tracks the branch at the remote the <branch> would be
481 - pushed to.
482 -
483 - Expecting a reroll ($gmane/268419, etc.).
484 -
485 -
486 -* jk/rebase-quiet-noop (2015-04-28) 1 commit
487 - (merged to 'next' on 2015-05-05 at 82780b9)
488 - + rebase: silence "git checkout" for noop rebase
489 -
490 - "git rebase --quiet" was not quite quiet when there is nothing to
491 - do.
492 -
493 - Will merge to 'master' in the second batch.
494 -
495 -
496 -* ld/p4-case-fold (2015-04-28) 1 commit
497 - (merged to 'next' on 2015-05-05 at 03ecbd0)
498 - + git-p4: add failing tests for case-folding p4d
499 -
500 - Will merge to 'master' in the second batch.
501 -
502 -
503 -* va/fix-git-p4-tests (2015-04-28) 1 commit
504 - (merged to 'next' on 2015-05-05 at 795e858)
505 - + git-p4: t9814: prevent --chain-lint failure
506 -
507 - Will merge to 'master' in the second batch.
508 -
509 -
510 -* jk/filter-branch-use-of-sed-on-incomplete-line (2015-04-29) 1 commit
511 - (merged to 'next' on 2015-05-07 at 849a24d)
512 - + filter-branch: avoid passing commit message through sed
773 + - remote.c: report specific errors from branch_get_upstream
774 + - remote.c: introduce branch_get_upstream helper
775 + - remote.c: provide per-branch pushremote name
776 + - remote.c: hoist branch.*.remote lookup out of remote_get_1
777 + - remote.c: drop "remote" pointer from "struct branch"
778 + - remote.c: drop default_remote_name variable
779
514 - "filter-branch" corrupted commit log message that ends with an
515 - incomplete line on platforms with some "sed" implementations that
516 - munge such a line. Work it around by avoiding to use "sed".
780 + Introduce <branch>@{push} short-hand to denote the remote-tracking
781 + branch that tracks the branch at the remote the <branch> would be
782 + pushed to.
783
518 - Will merge to 'master' in the second batch.
784 + Expecting a reroll ($gmane/268419, etc.).
785
786
787 * ph/rebase-i-redo (2015-04-29) 1 commit
@@ -528,39 +794,6 @@ of the repositories listed at
794 Will merge to 'master' in the third batch.
795
796
531 -* ep/do-not-feed-a-pointer-to-array-size (2015-05-05) 1 commit
532 - (merged to 'next' on 2015-05-07 at 64d9a20)
533 - + git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array
534 -
535 - Catch a programmer mistake to feed a pointer not an array to
536 - ARRAY_SIZE() macro, by using a couple of GCC extensions.
537 -
538 - Will merge to 'master' in the second batch.
539 -
540 -
541 -* tb/blame-resurrect-convert-to-git (2015-05-03) 1 commit
542 - (merged to 'next' on 2015-05-05 at 8e1974e)
543 - + blame: CRLF in the working tree and LF in the repo
544 -
545 - Some time ago, "git blame" (incorrectly) lost the convert_to_git()
546 - call when synthesizing a fake "tip" commit that represents the
547 - state in the working tree, which broke folks who record the history
548 - with LF line ending to make their project portabile across
549 - platforms while terminating lines in their working tree files with
550 - CRLF for their platform.
551 -
552 - Will merge to 'master' in the second batch.
553 -
554 -
555 -* jc/plug-fmt-merge-msg-leak (2015-04-20) 1 commit
556 - (merged to 'next' on 2015-05-05 at bd94828)
557 - + fmt-merge-msg: plug small leak of commit buffer
558 -
559 - Originally merged to 'next' on 2015-04-21
560 -
561 - Will merge to 'master' in the second batch.
562 -
563 -
797 * ee/clean-remove-dirs (2015-04-26) 5 commits
798 - clean: improve performance when removing lots of directories
799 - p7300: add performance tests for clean
@@ -575,67 +808,6 @@ of the repositories listed at
808 Waiting for a reroll.
809
810
578 -* jk/still-interesting (2015-04-17) 1 commit
579 - (merged to 'next' on 2015-05-05 at 6a5c89c)
580 - + limit_list: avoid quadratic behavior from still_interesting
581 -
582 - Originally merged to 'next' on 2015-04-21
583 -
584 - "git rev-list --objects $old --not --all" to see if everything that
585 - is reachable from $old is already connected to the existing refs
586 - was very inefficient.
587 -
588 - Will merge to 'master' in the second batch.
589 -
590 -
591 -* ls/p4-changes-block-size (2015-04-20) 1 commit
592 - (merged to 'next' on 2015-05-05 at 92596d4)
593 - + git-p4: use -m when running p4 changes
594 -
595 - Originally merged to 'next' on 2015-04-21
596 -
597 - "git p4" learned "--changes-block-size <n>" to read the changes in
598 - chunks from Perforce, instead of making one call to "p4 changes"
599 - that may trigger "too many rows scanned" error from Perforce.
600 -
601 - Will merge to 'master' in the second batch.
602 -
603 -
604 -* mm/add-p-split-error (2015-04-16) 5 commits
605 - (merged to 'next' on 2015-05-05 at c556011)
606 - + stash -p: demonstrate failure of split with mixed y/n
607 - + t3904-stash-patch: factor PERL prereq at the top of the file
608 - + t3904-stash-patch: fix test description
609 - + add -p: demonstrate failure when running 'edit' after a split
610 - + t3701-add-interactive: simplify code
611 -
612 - Originally merged to 'next' on 2015-04-23
613 -
614 - When "add--interactive" splits a hunk into two overlapping hunks
615 - and then let the user choose only one, it sometimes feeds an
616 - incorrect patch text to "git apply". Add tests to demonstrate
617 - this.
618 -
619 - I have a slight suspicion that this may be $gmane/87202 coming back
620 - and biting us (I seem to have said "let's run with this and see
621 - what happens" back then).
622 -
623 - Will merge to 'master' in the second batch.
624 -
625 -
626 -* tb/t0027-crlf (2015-04-25) 3 commits
627 - (merged to 'next' on 2015-05-05 at 36accbb)
628 - + t0027: Add repoMIX and LF_nul
629 - + t0027: support NATIVE_CRLF platforms
630 - + t0027: cleanup: rename functions; avoid non-leading TABs
631 -
632 - Originally merged to 'next' on 2015-04-21
633 -
634 - More line-ending tests.
635 -
636 - Will merge to 'master' in the second batch.
637 -
638 -
811 * jc/gitignore-precedence (2015-04-22) 1 commit
812 (merged to 'next' on 2015-05-05 at 6ef85da)
813 + ignore: info/exclude should trump core.excludesfile
@@ -731,30 +903,6 @@ of the repositories listed at
903 Will merge to 'master' in the third batch.
904
905
734 -* mh/ref-lock-avoid-running-out-of-fds (2015-04-25) 8 commits
735 - - ref_transaction_commit(): only keep one lockfile open at a time
736 - - ref_transaction_commit(): remove the local flags variables
737 - - write_ref_sha1(): inline function at callers
738 - - commit_ref_update(): new function, extracted from write_ref_sha1()
739 - - write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
740 - - refs.c: remove lock_fd from struct ref_lock
741 - - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
742 - - update-ref: test handling large transactions properly
743 - (this branch is used by mh/ref-directory-file.)
744 -
745 - "git update-ref --stdin" was converted to be "transactional" some
746 - time ago, but the ref transaction machinery was not prepared to
747 - handle many refs, primarily because it tried to keep the loose ref
748 - files open at the same time, which would cause us to hit the ENFILE
749 - limit. Fix the ref_transaction_commit() code not to keep the file
750 - descriptors open unnecessarily.
751 -
752 - We would want to apply the fix to older codebase, but this fix is
753 - unfortunately done to apply only on v2.4.x track.
754 -
755 - Expecting a rebase to older codebase.
756 -
757 -
906 * bc/connect-plink (2015-04-28) 3 commits
907 (merged to 'next' on 2015-05-05 at 9def2e1)
908 + connect: improve check for plink to reduce false positives
@@ -794,27 +942,6 @@ of the repositories listed at
942 A few usage string updates. The tip one still needs work.
943
944
797 -* jk/reading-packed-refs (2015-04-16) 9 commits
798 - (merged to 'next' on 2015-05-05 at 89b5694)
799 - + t1430: add another refs-escape test
800 - + read_packed_refs: avoid double-checking sane refs
801 - + strbuf_getwholeline: use getdelim if it is available
802 - + strbuf_getwholeline: avoid calling strbuf_grow
803 - + strbuf_addch: avoid calling strbuf_grow
804 - + config: use getc_unlocked when reading from file
805 - + strbuf_getwholeline: use getc_unlocked
806 - + git-compat-util: add fallbacks for unlocked stdio
807 - + strbuf_getwholeline: use getc macro
808 -
809 - Originally merged to 'next' on 2015-04-21
810 -
811 - An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
812 - to read packed-refs file revealed that the former is unacceptably
813 - inefficient.
814 -
815 - Will merge to 'master' in the second batch.
816 -
817 -
945 * kn/cat-file-literally (2015-05-06) 4 commits
946 - t1006: add tests for git cat-file --allow-unknown-type
947 - cat-file: teach cat-file a '--allow-unknown-type' option
@@ -824,74 +951,7 @@ of the repositories listed at
951 Add the "--allow-unknown-type" option to "cat-file" to allow
952 inspecting loose objects of an experimental or a broken type.
953
827 - This is v10 $gmane/267960 with fixup! squashed in.
828 -
829 -
830 -* lm/squelch-bg-progress (2015-04-15) 2 commits
831 - (merged to 'next' on 2015-05-05 at a2fe74d)
832 - + compat/mingw: stubs for getpgid() and tcgetpgrp()
833 - + progress: no progress in background
834 -
835 - Originally merged to 'next' on 2015-04-21
836 -
837 - Many long-running operations show progress eye-candy, even when
838 - they are later backgrounded. Hide the eye-candy when the process
839 - is sent to the background instead.
840 -
841 - Will merge to 'master' in the second batch.
842 -
843 -
844 -* va/p4-client-path (2015-04-23) 2 commits
845 - (merged to 'next' on 2015-05-05 at 852facc)
846 - + git-p4: improve client path detection when branches are used
847 - + t9801: check git-p4's branch detection with client spec enabled
848 -
849 - Originally merged to 'next' on 2015-04-23
850 -
851 - git p4 attempts to better handle branches in Perforce.
852 -
853 - Will merge to 'master' in the second batch.
854 -
855 -
856 -* jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
857 - (merged to 'next' on 2015-05-05 at a8de68e)
858 - + sha1_file: squelch "packfile cannot be accessed" warnings
859 -
860 - Originally merged to 'next' on 2015-04-21
861 -
862 - Will merge to 'master' in the second batch.
863 -
864 -
865 -* pt/credential-xdg (2015-03-25) 4 commits
866 - (merged to 'next' on 2015-05-05 at 0d6711f)
867 - + t0302: "unreadable" test needs POSIXPERM
868 - + t0302: test credential-store support for XDG_CONFIG_HOME
869 - + git-credential-store: support XDG_CONFIG_HOME
870 - + git-credential-store: support multiple credential files
871 - (this branch is used by pt/xdg-config-path.)
872 -
873 - Originally merged to 'next' on 2015-03-25
874 -
875 - Tweak the sample "store" backend of the credential helper to honor
876 - XDG configuration file locations when specified.
877 -
878 - Will merge to 'master' in the second batch.
879 -
880 -
881 -* pt/xdg-config-path (2015-05-06) 7 commits
882 - (merged to 'next' on 2015-05-07 at 38e7071)
883 - + path.c: remove home_config_paths()
884 - + git-config: replace use of home_config_paths()
885 - + git-commit: replace use of home_config_paths()
886 - + credential-store.c: replace home_config_paths() with xdg_config_home()
887 - + dir.c: replace home_config_paths() with xdg_config_home()
888 - + attr.c: replace home_config_paths() with xdg_config_home()
889 - + path.c: implement xdg_config_home()
890 - (this branch uses pt/credential-xdg.)
891 -
892 - Code clean-up for xdg configuration path support.
893 -
894 - Will merge to 'master' in the second batch.
954 + Will merge to 'next'.
955
956
957 * nd/diff-i-t-a (2015-03-23) 1 commit
@@ -914,68 +974,45 @@ of the repositories listed at
974
975 Will merge to 'master' in the third batch.
976
977 +--------------------------------------------------
978 +[Discarded]
979
918 -* nd/slim-index-pack-memory-usage (2015-04-18) 2 commits
919 - (merged to 'next' on 2015-05-05 at 42bd845)
920 - + index-pack: kill union delta_base to save memory
921 - + index-pack: reduce object_entry size to save memory
922 -
923 - Originally merged to 'next' on 2015-04-21
924 -
925 - Memory usage of "git index-pack" has been trimmed by tens of
926 - per-cent.
980
928 - Will merge to 'master' in the second batch.
981 +* mh/ref-directory-file (2015-05-05) 19 commits
982 + . SQUASH???
983 + . reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
984 + . ref_transaction_commit(): delete extra "the" from error message
985 + . ref_transaction_commit(): provide better error messages
986 + . rename_ref(): integrate lock_ref_sha1_basic() errors into ours
987 + . lock_ref_sha1_basic(): improve diagnostics for D/F conflicts
988 + . lock_ref_sha1_basic(): report errors via a "struct strbuf *err"
989 + . verify_refname_available(): report errors via a "struct strbuf *err"
990 + . verify_refname_available(): rename function
991 + . refs: check for D/F conflicts among refs processed in a transaction
992 + . ref_transaction_commit(): use a string_list for detecting duplicates
993 + . is_refname_available(): use dirname in first loop
994 + . struct nonmatching_ref_data: store a refname instead of a ref_entry
995 + . report_refname_conflict(): inline function
996 + . entry_matches(): inline function
997 + . is_refname_available(): convert local variable "dirname" to strbuf
998 + . is_refname_available(): avoid shadowing "dir" variable
999 + . is_refname_available(): explain the reason for an early exit
1000 + . t1404: new tests of D/F conflicts within ref transactions
1001 + (this branch uses mh/ref-lock-avoid-running-out-of-fds.)
1002
1003 + Reroll posted, but didn't have time to pick it up.
1004
931 -* nd/multiple-work-trees (2015-03-31) 41 commits
932 - (merged to 'next' on 2015-05-05 at 0f04a1c)
933 - + prune --worktrees: fix expire vs worktree existence condition
934 - + t1501: fix test with split index
935 - + t2026: fix broken &&-chain
936 - + t2026 needs procondition SANITY
937 - + git-checkout.txt: a note about multiple checkout support for submodules
938 - + checkout: add --ignore-other-wortrees
939 - + checkout: pass whole struct to parse_branchname_arg instead of individual flags
940 - + git-common-dir: make "modules/" per-working-directory directory
941 - + checkout: do not fail if target is an empty directory
942 - + t2025: add a test to make sure grafts is working from a linked checkout
943 - + checkout: don't require a work tree when checking out into a new one
944 - + git_path(): keep "info/sparse-checkout" per work-tree
945 - + count-objects: report unused files in $GIT_DIR/worktrees/...
946 - + gc: support prune --worktrees
947 - + gc: factor out gc.pruneexpire parsing code
948 - + gc: style change -- no SP before closing parenthesis
949 - + checkout: clean up half-prepared directories in --to mode
950 - + checkout: reject if the branch is already checked out elsewhere
951 - + prune: strategies for linked checkouts
952 - + checkout: support checking out into a new working directory
953 - + use new wrapper write_file() for simple file writing
954 - + wrapper.c: wrapper to open a file, fprintf then close
955 - + setup.c: support multi-checkout repo setup
956 - + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
957 - + setup.c: convert check_repository_format_gently to use strbuf
958 - + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
959 - + setup.c: convert is_git_directory() to use strbuf
960 - + git-stash: avoid hardcoding $GIT_DIR/logs/....
961 - + *.sh: avoid hardcoding $GIT_DIR/hooks/...
962 - + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
963 - + $GIT_COMMON_DIR: a new environment variable
964 - + commit: use SEQ_DIR instead of hardcoding "sequencer"
965 - + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
966 - + reflog: avoid constructing .lock path with git_path
967 - + *.sh: respect $GIT_INDEX_FILE
968 - + git_path(): be aware of file relocation in $GIT_DIR
969 - + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
970 - + path.c: rename vsnpath() to do_git_path()
971 - + git_snpath(): retire and replace with strbuf_git_path()
972 - + path.c: make get_pathname() call sites return const char *
973 - + path.c: make get_pathname() return strbuf instead of static buffer
1005
975 - Originally merged to 'next' on 2015-04-02
1006
977 - A replacement for contrib/workdir/git-new-workdir that does not
978 - rely on symbolic links and make sharing of objects and refs safer
979 - by making the borrowee and borrowers aware of each other.
1007 +* mh/ref-lock-avoid-running-out-of-fds (2015-04-25) 8 commits
1008 + . ref_transaction_commit(): only keep one lockfile open at a time
1009 + . ref_transaction_commit(): remove the local flags variables
1010 + . write_ref_sha1(): inline function at callers
1011 + . commit_ref_update(): new function, extracted from write_ref_sha1()
1012 + . write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
1013 + . refs.c: remove lock_fd from struct ref_lock
1014 + . t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
1015 + . update-ref: test handling large transactions properly
1016 + (this branch is used by mh/ref-directory-file.)
1017
981 - Will merge to 'master' in the second batch.
1018 + Superseded by mh/write-refs-sooner* series.