What's cooking (2017/03 #06)
Junio C Hamano committed
Mar 14, 2017 at 16:33 UTC
ee97870068548a18ca1e0e5c105d0eca6fc718a7
1 file changed
+285
-306
whats-cooking.txt
+285
-306
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (Mar 2017, #05; Mon, 13)
4
-X-master-at: d6db3f216544d05e09159756812ccbcb16861d71
5
-X-next-at: 23dc2f6d3cd0230fcc0aabcb98a39cbef9ded585
3
+Subject: What's cooking in git.git (Mar 2017, #06; Tue, 14)
4
+X-master-at: 4a9b9b32d47212e4ea43cd1fa3c11afef6d4c491
5
+X-next-at: 48829862c7ec047bdce13a3e5d758eb4d703d5b8
6
7
-What's cooking in git.git (Mar 2017, #05; Mon, 13)
7
+What's cooking in git.git (Mar 2017, #06; Tue, 14)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,6 +12,29 @@ Here are the topics that have been cooking. Commits prefixed with
12
'+' are in 'next'. The ones marked with '.' do not appear in any of
13
the integration branches, but I am still holding onto them.
14
15
+Among the topics merged to 'master' since v2.12 was tagged, 40+ of
16
+them could be also merged to 'maint' (some of these are new features
17
+and by default should not be, though). Among them two are fixes for
18
+regressions found in v2.12:
19
+
20
+ * The patch subcommand of "git add -i" was meant to have paths
21
+ selection prompt just like other subcommand, unlike "git add -p"
22
+ directly jumps to hunk selection. Recently, this was broken and
23
+ "add -i" lost the paths selection dialog, but it now has been
24
+ fixed.
25
+ (merge c852bd54bd jk/add-i-patch-do-prompt later to maint).
26
+
27
+ * Git v2.12 was shipped with an embarrassing breakage where various
28
+ operations that verify paths given from the user stopped dying when
29
+ seeing an issue, and instead later triggering segfault.
30
+ (merge ce83eadd9a js/realpath-pathdup-fix later to maint).
31
+
32
+These two have been merged to 'master' only a few days ago;
33
+additional tests on 'master' to make sure they fix the issues, and
34
+more importantly they do not introduce new regressions, are greatly
35
+appreciated. I am hoping we can merge them (and probably others)
36
+to 'maint' to cut v2.12.1 by early next week.
37
+
38
You can find the changes described here in the integration branches
39
of the repositories listed at
40
@@ -20,159 +43,182 @@ of the repositories listed at
43
--------------------------------------------------
44
[Graduated to "master"]
45
23
-* ah/doc-ls-files-quotepath (2017-03-02) 1 commit
24
- (merged to 'next' on 2017-03-10 at 5dfa78423a)
25
- + Documentation: improve description for core.quotePath
46
+* ab/cond-skip-tests (2017-03-01) 3 commits
47
+ (merged to 'next' on 2017-03-10 at 38124fb5ce)
48
+ + gitweb tests: skip tests when we don't have Time::HiRes
49
+ + gitweb tests: change confusing "skip_all" phrasing
50
+ + cvs tests: skip tests that call "cvs commit" when running as root
51
27
- Documentation for "git ls-files" did not refer to core.quotePath
52
+ A few tests were run conditionally under (rare) conditions where
53
+ they cannot be run (like running cvs tests under 'root' account).
54
55
30
-* ax/line-log-range-merge-fix (2017-03-03) 1 commit
31
- (merged to 'next' on 2017-03-10 at 201073f113)
32
- + line-log.c: prevent crash during union of too many ranges
56
+* dp/filter-branch-prune-empty (2017-03-03) 4 commits
57
+ (merged to 'next' on 2017-03-10 at 9317e24cd3)
58
+ + p7000: add test for filter-branch with --prune-empty
59
+ + filter-branch: fix --prune-empty on parentless commits
60
+ + t7003: ensure --prune-empty removes entire branch when applicable
61
+ + t7003: ensure --prune-empty can prune root commit
62
34
- The code to parse "git log -L..." command line was buggy when there
35
- are many ranges specified with -L; overrun of the allocated buffer
36
- has been fixed.
63
+ "git filter-branch --prune-empty" drops a single-parent commit that
64
+ becomes a no-op, but did not drop a root commit whose tree is empty.
65
66
39
-* jc/diff-populate-filespec-size-only-fix (2017-03-02) 1 commit
40
- (merged to 'next' on 2017-03-10 at 9b2d1ca50f)
41
- + diff: do not short-cut CHECK_SIZE_ONLY check in diff_populate_filespec()
67
+* ew/http-alternates-as-redirects-warning (2017-03-06) 2 commits
68
+ (merged to 'next' on 2017-03-10 at 23be072a07)
69
+ + http: release strbuf on disabled alternates
70
+ + http: inform about alternates-as-redirects behavior
71
43
- "git diff --quiet" relies on the size field in diff_filespec to be
44
- correctly populated, but diff_populate_filespec() helper function
45
- made an incorrect short-cut when asked only to populate the size
46
- field for paths that need to go through convert_to_git() (e.g. CRLF
47
- conversion).
72
+ Recent versions of Git treats http alternates (used in dumb http
73
+ transport) just like HTTP redirects and requires the client to
74
+ enable following it, due to security concerns. But we forgot to
75
+ give a warning when we decide not to honor the alternates.
76
77
50
-* jh/mingw-openssl-sha1 (2017-02-09) 1 commit
51
- (merged to 'next' on 2017-03-10 at 8a1aa07def)
52
- + mingw: use OpenSSL's SHA-1 routines
78
+* jk/interpret-branch-name (2017-03-02) 9 commits
79
+ (merged to 'next' on 2017-03-10 at 95cc55f9a3)
80
+ + checkout: restrict @-expansions when finding branch
81
+ + strbuf_check_ref_format(): expand only local branches
82
+ + branch: restrict @-expansions when deleting
83
+ + t3204: test git-branch @-expansion corner cases
84
+ + interpret_branch_name: allow callers to restrict expansions
85
+ + strbuf_branchname: add docstring
86
+ + strbuf_branchname: drop return value
87
+ + interpret_branch_name: move docstring to header file
88
+ + interpret_branch_name(): handle auto-namelen for @{-1}
89
54
- Windows port wants to use OpenSSL's implementation of SHA-1
55
- routines, so let them.
90
+ "git branch @" created refs/heads/@ as a branch, and in general the
91
+ code that handled @{-1} and @{upstream} was a bit too loose in
92
+ disambiguating.
93
94
58
-* jk/add-i-patch-do-prompt (2017-03-02) 1 commit
59
- (merged to 'next' on 2017-03-10 at 891ec6f5ba)
60
- + add--interactive: fix missing file prompt for patch mode with "-i"
95
+* jk/push-deadlock-regression-fix (2017-03-07) 6 commits
96
+ (merged to 'next' on 2017-03-10 at ceb0b819bf)
97
+ + send-pack: report signal death of pack-objects
98
+ + send-pack: read "unpack" status even on pack-objects failure
99
+ + send-pack: improve unpack-status error messages
100
+ + send-pack: use skip_prefix for parsing unpack status
101
+ + send-pack: extract parsing of "unpack" response
102
+ + receive-pack: fix deadlock when we cannot create tmpdir
103
62
- The patch subcommand of "git add -i" was meant to have paths
63
- selection prompt just like other subcommand, unlike "git add -p"
64
- directly jumps to hunk selection. Recently, this was broken and
65
- "add -i" lost the paths selection dialog, but it now has been
66
- fixed.
104
+ "git push" had a handful of codepaths that could lead to a deadlock
105
+ when unexpected error happened, which has been fixed.
106
107
69
-* jk/ewah-use-right-type-in-sizeof (2017-03-06) 1 commit
70
- (merged to 'next' on 2017-03-10 at ad66adacda)
71
- + ewah: fix eword_t/uint64_t confusion
108
+* js/travis-32bit-linux (2017-03-06) 1 commit
109
+ (merged to 'next' on 2017-03-10 at 4cb69d0f77)
110
+ + Travis: also test on 32-bit Linux
111
73
- Code clean-up.
112
+ Add 32-bit Linux variant to the set of platforms to be tested with
113
+ Travis CI.
114
115
76
-* js/realpath-pathdup-fix (2017-03-08) 2 commits
77
- (merged to 'next' on 2017-03-10 at 5a84dbbd1d)
78
- + real_pathdup(): fix callsites that wanted it to die on error
79
- + t1501: demonstrate NULL pointer access with invalid GIT_WORK_TREE
116
+* jt/perf-updates (2017-03-03) 3 commits
117
+ (merged to 'next' on 2017-03-10 at 0c0b124ed4)
118
+ + t/perf: add fallback for pre-bin-wrappers versions of git
119
+ + t/perf: use $MODERN_GIT for all repo-copying steps
120
+ + t/perf: export variable used in other blocks
121
81
- Git v2.12 was shipped with an embarrassing breakage where various
82
- operations that verify paths given from the user stopped dying when
83
- seeing an issue, and instead later triggering segfault.
84
- ... and then to down to 'maint'.
122
+ The t/perf performance test suite was not prepared to test not so
123
+ old versions of Git, but now it covers versions of Git that are not
124
+ so ancient.
125
126
87
-* ss/remote-bzr-hg-placeholder-wo-python (2017-03-03) 1 commit
88
- (merged to 'next' on 2017-03-10 at c8c4bb78a2)
89
- + contrib: git-remote-{bzr,hg} placeholders don't need Python
127
+* kn/ref-filter-branch-list (2017-03-10) 1 commit
128
+ (merged to 'next' on 2017-03-10 at 73b43443f1)
129
+ + branch: honor --abbrev/--no-abbrev in --list mode
130
91
- There is no need for Python only to give a few messages to the
92
- standard error stream, but we somehow did.
131
+ "git branch --list" takes the "--abbrev" and "--no-abbrev" options
132
+ to control the output of the object name in its "-v"(erbose)
133
+ output, but a recent update started ignoring them; this fixes it
134
+ before the breakage reaches to any released version.
135
136
95
-* vn/line-log-memcpy-size-fix (2017-03-06) 1 commit
96
- (merged to 'next' on 2017-03-10 at 2e65ff89b7)
97
- + line-log: use COPY_ARRAY to fix mis-sized memcpy
137
+* mm/fetch-show-error-message-on-unadvertised-object (2017-03-02) 3 commits
138
+ (merged to 'next' on 2017-03-10 at 69e2023804)
139
+ + fetch-pack: add specific error for fetching an unadvertised object
140
+ + fetch_refs_via_pack: call report_unmatched_refs
141
+ + fetch-pack: move code to report unmatched refs to a function
142
99
- The command-line parsing of "git log -L" copied internal data
100
- structures using incorrect size on ILP32 systems.
143
+ "git fetch" that requests a commit by object name, when the other
144
+ side does not allow such an request, failed without much
145
+ explanation.
146
147
--------------------------------------------------
148
[New Topics]
149
105
-* ab/ref-filter-no-contains (2017-03-11) 1 commit
106
- - ref-filter: add --no-contains option to tag/branch/for-each-ref
107
- (this branch uses jk/ref-filter-flags-cleanup.)
108
-
109
- "git tag/branch/for-each-ref" family of commands long allowed to
110
- filter the refs by "--contains X" (show only the refs that are
111
- descendants of X), "--merged X" (show only the refs that are
112
- ancestors of X), "--no-merged X" (show only the refs that are not
113
- ancestors of X). One curious omission, "--no-contains X" (show
114
- only the refs that are not descendants of X) has been added to
115
- them.
116
-
117
- Expecting a reroll.
118
- cf. <CACBZZX4v49zfyGVpcxGSKsxbMfVaUcGHtitpfaZMUtG82YzW-g@mail.gmail.com>
119
- The topic is almost there.
120
-
121
-
122
-* bc/sha1-header-selection-with-cpp-macros (2017-03-11) 1 commit
123
- - Move SHA-1 implementation selection into a header file
124
-
125
- Our source code has used the SHA1_HEADER cpp macro after "#include"
126
- in the C code to switch among the SHA-1 implementations. Instead,
127
- list the exact header file names and switch among implementations
128
- using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif";
129
- this helps some IDE tools.
130
-
131
- Expecting a reroll.
132
-
133
-
134
-* bw/attr-pathspec (2017-03-13) 2 commits
135
- - pathspec: allow escaped query values
136
- - pathspec: allow querying for attributes
137
-
138
- The pathspec mechanism learned to further limit the paths that
139
- match the pattern to those that have specified attributes attached
140
- via the gitattributes mechanism.
141
-
142
- Will merge to 'next'.
143
-
144
-
145
-* jk/http-walker-buffer-underflow-fix (2017-03-13) 1 commit
146
- - http-walker: fix buffer underflow processing remote alternates
147
-
148
- "Dumb http" transport used to misparse a nonsense http-alternates
149
- response, which has been fixed.
150
+* bw/submodule-is-active (2017-03-14) 10 commits
151
+ - submodule add: respect submodule.active and submodule.<name>.active
152
+ - submodule--helper init: set submodule.<name>.active
153
+ - completion: clone can initialize specific submodules
154
+ - clone: add --submodule-spec=<pathspec> switch
155
+ - submodule update: add `--init-active` switch
156
+ - submodule: decouple url and submodule existence
157
+ - submodule--helper clone: check for configured submodules using helper
158
+ - submodule sync: use submodule--helper is-active
159
+ - submodule status: use submodule--helper is-active
160
+ - submodule--helper: add is-active command
161
+
162
+ "what URL do we want to update this submodule?" and "are we
163
+ interested in this submodule?" are split into two distinct
164
+ concepts, and then the way used to express the latter got extended,
165
+ paving a way to make it easier to manage a project with many
166
+ submodules and make it possible to later extend use of multiple
167
+ worktrees for a project with submodules.
168
+
169
+ This looks like almost ready for 'next' modulo minor niggles.
170
+
171
+
172
+* jk/add-i-use-pathspecs (2017-03-14) 1 commit
173
+ (merged to 'next' on 2017-03-14 at 13ce4d91e1)
174
+ + add--interactive: do not expand pathspecs with ls-files
175
+
176
+ "git add -p <pathspec>" unnecessarily expanded the pathspec to a
177
+ list of individual files that matches the pathspec by running "git
178
+ ls-files <pathspec>", before feeding it to "git diff-index" to see
179
+ which paths have changes, because historically the pathspec
180
+ language supported by "diff-index" was weaker. These days they are
181
+ equivalent and there is no reason to internally expand it. This
182
+ helps both performance and avoids command line argument limit on
183
+ some platforms.
184
151
- Will merge to 'next'.
185
+ Will merge to 'master'.
186
187
154
-* rs/blame-code-cleanup (2017-03-11) 1 commit
155
- (merged to 'next' on 2017-03-12 at 8fd4bf325a)
156
- + blame: move blame_entry duplication to add_blame_entry()
188
+* mg/status-porcelain-no-i18n (2017-03-14) 1 commit
189
+ (merged to 'next' on 2017-03-14 at 0955895825)
190
+ + git-status: make porcelain more robust
191
158
- Code clean-up.
192
+ "git status --porcelain" is supposed to give a stable output, but a
193
+ few strings were left as translatable by mistake.
194
195
Will merge to 'master'.
196
197
+--------------------------------------------------
198
+[Stalled]
199
163
-* dl/credential-cache-socket-in-xdg-cache (2017-03-13) 1 commit
164
- - path.c: add xdg_cache_home
200
+* sg/completion-refs-speedup (2017-02-13) 13 commits
201
+ - squash! completion: fill COMPREPLY directly when completing refs
202
+ - completion: fill COMPREPLY directly when completing refs
203
+ - completion: list only matching symbolic and pseudorefs when completing refs
204
+ - completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
205
+ - completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
206
+ - completion: let 'for-each-ref' strip the remote name from remote branches
207
+ - completion: let 'for-each-ref' and 'ls-remote' filter matching refs
208
+ - completion: don't disambiguate short refs
209
+ - completion: don't disambiguate tags and branches
210
+ - completion: support excluding full refs
211
+ - completion: support completing full refs after '--option=refs/<TAB>'
212
+ - completion: wrap __git_refs() for better option parsing
213
+ - completion: remove redundant __gitcomp_nl() options from _git_commit()
214
166
- The default location "~/.git-credential-cache/socket" for the
167
- socket used to communicate with the credential-cache daemon has
168
- been moved to "~/.cache/git/credential/socket".
215
+ The refs completion for large number of refs has been sped up,
216
+ partly by giving up disambiguating ambiguous refs and partly by
217
+ eliminating most of the shell processing between 'git for-each-ref'
218
+ and 'ls-remote' and Bash's completion facility.
219
170
- Waiting for a reroll.
171
- The patches do not yet match the above description without
172
- the second one that is not queued here.
220
+ What's the donness of this topic?
221
174
---------------------------------------------------
175
-[Stalled]
222
223
* nd/prune-in-worktree (2017-02-19) 15 commits
224
. rev-list: expose and document --single-worktree
@@ -356,70 +402,105 @@ of the repositories listed at
402
--------------------------------------------------
403
[Cooking]
404
359
-* jk/ref-filter-flags-cleanup (2017-03-10) 4 commits
360
- - ref-filter: use separate cache for contains_tag_algo
361
- - ref-filter: die on parse_commit errors
362
- - ref-filter: use contains_result enum consistently
363
- - ref-filter: move ref_cbdata definition into ref-filter.c
364
- (this branch is used by ab/ref-filter-no-contains.)
405
+* ab/ref-filter-no-contains (2017-03-11) 1 commit
406
+ - ref-filter: add --no-contains option to tag/branch/for-each-ref
407
+ (this branch uses jk/ref-filter-flags-cleanup.)
408
366
- "git tag --contains" used to (ab)use the object bits to keep track
367
- of the state of object reachability without clearing them after
368
- use; this has been cleaned up and made to use the newer commit-slab
369
- facility.
409
+ "git tag/branch/for-each-ref" family of commands long allowed to
410
+ filter the refs by "--contains X" (show only the refs that are
411
+ descendants of X), "--merged X" (show only the refs that are
412
+ ancestors of X), "--no-merged X" (show only the refs that are not
413
+ ancestors of X). One curious omission, "--no-contains X" (show
414
+ only the refs that are not descendants of X) has been added to
415
+ them.
416
371
- Will merge to 'next'.
417
+ Expecting a reroll.
418
+ cf. <CACBZZX4v49zfyGVpcxGSKsxbMfVaUcGHtitpfaZMUtG82YzW-g@mail.gmail.com>
419
+ The topic is almost there.
420
421
374
-* ew/http-alternates-as-redirects-warning (2017-03-06) 2 commits
375
- (merged to 'next' on 2017-03-10 at 23be072a07)
376
- + http: release strbuf on disabled alternates
377
- + http: inform about alternates-as-redirects behavior
422
+* bc/sha1-header-selection-with-cpp-macros (2017-03-14) 1 commit
423
+ (merged to 'next' on 2017-03-14 at 60bf8c5822)
424
+ + hash.h: move SHA-1 implementation selection into a header file
425
379
- Recent versions of Git treats http alternates (used in dumb http
380
- transport) just like HTTP redirects and requires the client to
381
- enable following it, due to security concerns. But we forgot to
382
- give a warning when we decide not to honor the alternates.
426
+ Our source code has used the SHA1_HEADER cpp macro after "#include"
427
+ in the C code to switch among the SHA-1 implementations. Instead,
428
+ list the exact header file names and switch among implementations
429
+ using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif";
430
+ this helps some IDE tools.
431
432
Will merge to 'master'.
433
434
387
-* jk/push-deadlock-regression-fix (2017-03-07) 6 commits
388
- (merged to 'next' on 2017-03-10 at ceb0b819bf)
389
- + send-pack: report signal death of pack-objects
390
- + send-pack: read "unpack" status even on pack-objects failure
391
- + send-pack: improve unpack-status error messages
392
- + send-pack: use skip_prefix for parsing unpack status
393
- + send-pack: extract parsing of "unpack" response
394
- + receive-pack: fix deadlock when we cannot create tmpdir
435
+* bw/attr-pathspec (2017-03-13) 2 commits
436
+ (merged to 'next' on 2017-03-14 at 3af5d6c1fc)
437
+ + pathspec: allow escaped query values
438
+ + pathspec: allow querying for attributes
439
396
- "git push" had a handful of codepaths that could lead to a deadlock
397
- when unexpected error happened, which has been fixed.
440
+ The pathspec mechanism learned to further limit the paths that
441
+ match the pattern to those that have specified attributes attached
442
+ via the gitattributes mechanism.
443
444
Will merge to 'master'.
445
446
402
-* kn/ref-filter-branch-list (2017-03-10) 1 commit
403
- (merged to 'next' on 2017-03-10 at 73b43443f1)
404
- + branch: honor --abbrev/--no-abbrev in --list mode
447
+* jk/http-walker-buffer-underflow-fix (2017-03-13) 1 commit
448
+ (merged to 'next' on 2017-03-14 at 02020b475d)
449
+ + http-walker: fix buffer underflow processing remote alternates
450
406
- "git branch --list" takes the "--abbrev" and "--no-abbrev" options
407
- to control the output of the object name in its "-v"(erbose)
408
- output, but a recent update started ignoring them; this fixes it
409
- before the breakage reaches to any released version.
451
+ "Dumb http" transport used to misparse a nonsense http-alternates
452
+ response, which has been fixed.
453
+
454
+ Will merge to 'master'.
455
+
456
+
457
+* rs/blame-code-cleanup (2017-03-11) 1 commit
458
+ (merged to 'next' on 2017-03-12 at 8fd4bf325a)
459
+ + blame: move blame_entry duplication to add_blame_entry()
460
+
461
+ Code clean-up.
462
+
463
+ Will merge to 'master'.
464
+
465
+
466
+* dl/credential-cache-socket-in-xdg-cache (2017-03-13) 1 commit
467
+ - path.c: add xdg_cache_home
468
+
469
+ The default location "~/.git-credential-cache/socket" for the
470
+ socket used to communicate with the credential-cache daemon has
471
+ been moved to "~/.cache/git/credential/socket".
472
+
473
+ Waiting for a reroll.
474
+ The patches do not yet match the above description without
475
+ the second one that is not queued here.
476
+
477
+
478
+* jk/ref-filter-flags-cleanup (2017-03-10) 4 commits
479
+ (merged to 'next' on 2017-03-14 at c335c9cf6e)
480
+ + ref-filter: use separate cache for contains_tag_algo
481
+ + ref-filter: die on parse_commit errors
482
+ + ref-filter: use contains_result enum consistently
483
+ + ref-filter: move ref_cbdata definition into ref-filter.c
484
+ (this branch is used by ab/ref-filter-no-contains.)
485
+
486
+ "git tag --contains" used to (ab)use the object bits to keep track
487
+ of the state of object reachability without clearing them after
488
+ use; this has been cleaned up and made to use the newer commit-slab
489
+ facility.
490
491
Will merge to 'master'.
492
493
494
* sb/rev-parse-show-superproject-root (2017-03-08) 1 commit
415
- - rev-parse: add --show-superproject-working-tree
495
+ (merged to 'next' on 2017-03-14 at 537c299db6)
496
+ + rev-parse: add --show-superproject-working-tree
497
498
From a working tree of a repository, a new option of "rev-parse"
499
lets you ask if the repository is used as a submodule of another
500
project, and where the root level of the working tree of that
501
project (i.e. your superproject) is.
502
422
- Almost there, but documentation needs a bit more work.
503
+ Will merge to 'master'.
504
505
506
* ls/filter-process-delayed (2017-03-06) 1 commit
@@ -430,57 +511,26 @@ of the repositories listed at
511
cf. <xmqq60jmnmef.fsf@junio-linux.mtv.corp.google.com>
512
513
433
-* js/early-config (2017-03-13) 12 commits
434
- - setup.c: mention unresolved problems
435
- - t1309: document cases where we would want early config not to die()
436
- - setup_git_directory_gently_1(): avoid die()ing
437
- - t1309: test read_early_config()
438
- - read_early_config(): really discover .git/
439
- - read_early_config(): avoid .git/config hack when unneeded
440
- - setup: make read_early_config() reusable
441
- - setup: introduce the discover_git_directory() function
442
- - setup_git_directory_1(): avoid changing global state
443
- - setup: do not append '/' to root in setup_discovered_git_dir()
444
- - setup_git_directory(): use is_dir_sep() helper
445
- - t7006: replace dubious test
514
+* js/early-config (2017-03-14) 12 commits
515
+ (merged to 'next' on 2017-03-14 at ce43b4a309)
516
+ + setup.c: mention unresolved problems
517
+ + t1309: document cases where we would want early config not to die()
518
+ + setup_git_directory_gently_1(): avoid die()ing
519
+ + t1309: test read_early_config()
520
+ + read_early_config(): really discover .git/
521
+ + read_early_config(): avoid .git/config hack when unneeded
522
+ + setup: make read_early_config() reusable
523
+ + setup: introduce the discover_git_directory() function
524
+ + setup_git_directory_1(): avoid changing global state
525
+ + setup: prepare setup_discovered_git_dir() for the root directory
526
+ + setup_git_directory(): use is_dir_sep() helper
527
+ + t7006: replace dubious test
528
529
The start-up sequence of "git" needs to figure out some configured
530
settings before it finds and set itself up in the location of the
531
repository and was quite messy due to its "chicken-and-egg" nature.
532
The code has been restructured.
533
452
- Will merge to 'next'.
453
-
454
-
455
-* jt/perf-updates (2017-03-03) 3 commits
456
- (merged to 'next' on 2017-03-10 at 0c0b124ed4)
457
- + t/perf: add fallback for pre-bin-wrappers versions of git
458
- + t/perf: use $MODERN_GIT for all repo-copying steps
459
- + t/perf: export variable used in other blocks
460
-
461
- The t/perf performance test suite was not prepared to test not so
462
- old versions of Git, but now it covers versions of Git that are not
463
- so ancient.
464
-
465
- Will merge to 'master'.
466
-
467
-
468
-* jk/interpret-branch-name (2017-03-02) 9 commits
469
- (merged to 'next' on 2017-03-10 at 95cc55f9a3)
470
- + checkout: restrict @-expansions when finding branch
471
- + strbuf_check_ref_format(): expand only local branches
472
- + branch: restrict @-expansions when deleting
473
- + t3204: test git-branch @-expansion corner cases
474
- + interpret_branch_name: allow callers to restrict expansions
475
- + strbuf_branchname: add docstring
476
- + strbuf_branchname: drop return value
477
- + interpret_branch_name: move docstring to header file
478
- + interpret_branch_name(): handle auto-namelen for @{-1}
479
-
480
- "git branch @" created refs/heads/@ as a branch, and in general the
481
- code that handled @{-1} and @{upstream} was a bit too loose in
482
- disambiguating.
483
-
534
Will merge to 'master'.
535
536
@@ -500,31 +550,6 @@ of the repositories listed at
550
cf. <CA+55aFxTWqsTTiDKo4DBZT-8Z9t80bGMD3uijzKONa_bYEZABQ@mail.gmail.com>
551
552
503
-* js/travis-32bit-linux (2017-03-06) 1 commit
504
- (merged to 'next' on 2017-03-10 at 4cb69d0f77)
505
- + Travis: also test on 32-bit Linux
506
-
507
- Add 32-bit Linux variant to the set of platforms to be tested with
508
- Travis CI.
509
-
510
- Will merge to 'master'.
511
-
512
-
513
-* jt/mark-tree-uninteresting-for-uninteresting-commit (2017-02-28) 3 commits
514
- - upload-pack: compute blob reachability correctly
515
- - revision: exclude trees/blobs given commit
516
- - revision: unify {tree,blob}_objects in rev_info
517
-
518
- The revision/object traversal machinery did not mark all tree and
519
- blob objects that are contained in an uninteresting commit as
520
- uninteresting, because that is quite costly. Instead, it only
521
- marked those that are contained in an uninteresting boundary commit
522
- as uninteresting.
523
-
524
- Retracted?
525
- cf. <20170228215937.yd4juycjf7y3vish@sigill.intra.peff.net>
526
-
527
-
553
* nd/conditional-config-include (2017-03-11) 3 commits
554
- config: add conditional include
555
- config.txt: reflow the second include.path paragraph
@@ -569,31 +594,6 @@ of the repositories listed at
594
Will merge to 'master'.
595
596
572
-* dp/filter-branch-prune-empty (2017-03-03) 4 commits
573
- (merged to 'next' on 2017-03-10 at 9317e24cd3)
574
- + p7000: add test for filter-branch with --prune-empty
575
- + filter-branch: fix --prune-empty on parentless commits
576
- + t7003: ensure --prune-empty removes entire branch when applicable
577
- + t7003: ensure --prune-empty can prune root commit
578
-
579
- "git filter-branch --prune-empty" drops a single-parent commit that
580
- becomes a no-op, but did not drop a root commit whose tree is empty.
581
-
582
- Will merge to 'master'.
583
-
584
-
585
-* ab/cond-skip-tests (2017-03-01) 3 commits
586
- (merged to 'next' on 2017-03-10 at 38124fb5ce)
587
- + gitweb tests: skip tests when we don't have Time::HiRes
588
- + gitweb tests: change confusing "skip_all" phrasing
589
- + cvs tests: skip tests that call "cvs commit" when running as root
590
-
591
- A few tests were run conditionally under (rare) conditions where
592
- they cannot be run (like running cvs tests under 'root' account).
593
-
594
- Will merge to 'master'.
595
-
596
-
597
* jk/interop-test (2017-03-10) 2 commits
598
(merged to 'next' on 2017-03-12 at 704b328022)
599
+ t/interop: add test of old clients against modern git-daemon
@@ -639,19 +639,6 @@ of the repositories listed at
639
cf. <MWHPR03MB29581B0EDDEDCA7D51EC396F8A280@MWHPR03MB2958.namprd03.prod.outlook.com>
640
641
642
-* mm/fetch-show-error-message-on-unadvertised-object (2017-03-02) 3 commits
643
- (merged to 'next' on 2017-03-10 at 69e2023804)
644
- + fetch-pack: add specific error for fetching an unadvertised object
645
- + fetch_refs_via_pack: call report_unmatched_refs
646
- + fetch-pack: move code to report unmatched refs to a function
647
-
648
- "git fetch" that requests a commit by object name, when the other
649
- side does not allow such an request, failed without much
650
- explanation.
651
-
652
- Will merge to 'master'.
653
-
654
-
642
* sb/checkout-recurse-submodules (2017-03-11) 18 commits
643
- submodule--helper.c: remove duplicate code
644
- builtin/read-tree: add --recurse-submodules switch
@@ -676,52 +663,30 @@ of the repositories listed at
663
664
665
* bc/object-id (2017-02-22) 19 commits
679
- - wt-status: convert to struct object_id
680
- - builtin/merge-base: convert to struct object_id
681
- - Convert object iteration callbacks to struct object_id
682
- - sha1_file: introduce an nth_packed_object_oid function
683
- - refs: simplify parsing of reflog entries
684
- - refs: convert each_reflog_ent_fn to struct object_id
685
- - reflog-walk: convert struct reflog_info to struct object_id
686
- - builtin/replace: convert to struct object_id
687
- - Convert remaining callers of resolve_refdup to object_id
688
- - builtin/merge: convert to struct object_id
689
- - builtin/clone: convert to struct object_id
690
- - builtin/branch: convert to struct object_id
691
- - builtin/grep: convert to struct object_id
692
- - builtin/fmt-merge-message: convert to struct object_id
693
- - builtin/fast-export: convert to struct object_id
694
- - builtin/describe: convert to struct object_id
695
- - builtin/diff-tree: convert to struct object_id
696
- - builtin/commit: convert to struct object_id
697
- - hex: introduce parse_oid_hex
666
+ (merged to 'next' on 2017-03-14 at 0b3ec5a05e)
667
+ + wt-status: convert to struct object_id
668
+ + builtin/merge-base: convert to struct object_id
669
+ + Convert object iteration callbacks to struct object_id
670
+ + sha1_file: introduce an nth_packed_object_oid function
671
+ + refs: simplify parsing of reflog entries
672
+ + refs: convert each_reflog_ent_fn to struct object_id
673
+ + reflog-walk: convert struct reflog_info to struct object_id
674
+ + builtin/replace: convert to struct object_id
675
+ + Convert remaining callers of resolve_refdup to object_id
676
+ + builtin/merge: convert to struct object_id
677
+ + builtin/clone: convert to struct object_id
678
+ + builtin/branch: convert to struct object_id
679
+ + builtin/grep: convert to struct object_id
680
+ + builtin/fmt-merge-message: convert to struct object_id
681
+ + builtin/fast-export: convert to struct object_id
682
+ + builtin/describe: convert to struct object_id
683
+ + builtin/diff-tree: convert to struct object_id
684
+ + builtin/commit: convert to struct object_id
685
+ + hex: introduce parse_oid_hex
686
687
"uchar [40]" to "struct object_id" conversion continues.
688
701
- Will merge to 'next'.
702
-
703
-
704
-* sg/completion-refs-speedup (2017-02-13) 13 commits
705
- - squash! completion: fill COMPREPLY directly when completing refs
706
- - completion: fill COMPREPLY directly when completing refs
707
- - completion: list only matching symbolic and pseudorefs when completing refs
708
- - completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
709
- - completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
710
- - completion: let 'for-each-ref' strip the remote name from remote branches
711
- - completion: let 'for-each-ref' and 'ls-remote' filter matching refs
712
- - completion: don't disambiguate short refs
713
- - completion: don't disambiguate tags and branches
714
- - completion: support excluding full refs
715
- - completion: support completing full refs after '--option=refs/<TAB>'
716
- - completion: wrap __git_refs() for better option parsing
717
- - completion: remove redundant __gitcomp_nl() options from _git_commit()
718
-
719
- The refs completion for large number of refs has been sped up,
720
- partly by giving up disambiguating ambiguous refs and partly by
721
- eliminating most of the shell processing between 'git for-each-ref'
722
- and 'ls-remote' and Bash's completion facility.
723
-
724
- What's the donness of this topic?
689
+ Will merge to 'master'.
690
691
692
* jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit
@@ -768,3 +733,17 @@ of the repositories listed at
733
A small bug in the code that parses @{...} has been fixed.
734
735
This is now a part of jk/interpret-branch-name topic.
736
+
737
+
738
+* jt/mark-tree-uninteresting-for-uninteresting-commit (2017-02-28) 3 commits
739
+ . upload-pack: compute blob reachability correctly
740
+ . revision: exclude trees/blobs given commit
741
+ . revision: unify {tree,blob}_objects in rev_info
742
+
743
+ The revision/object traversal machinery did not mark all tree and
744
+ blob objects that are contained in an uninteresting commit as
745
+ uninteresting, because that is quite costly. Instead, it only
746
+ marked those that are contained in an uninteresting boundary commit
747
+ as uninteresting.
748
+
749
+ Retracted.