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.