What's cooking (2017/03 #07)

Junio C Hamano committed Mar 17, 2017 at 14:06 UTC c9fe5cff81b898895be0ddc9740dbfc4a20bbbf4
1 file changed +343 -397
whats-cooking.txt
+343 -397
@@ -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, #06; Tue, 14)
4 -X-master-at: 4a9b9b32d47212e4ea43cd1fa3c11afef6d4c491
5 -X-next-at: 48829862c7ec047bdce13a3e5d758eb4d703d5b8
3 +Subject: What's cooking in git.git (Mar 2017, #07; Fri, 17)
4 +X-master-at: 9d77b0405ce6b471cb5ce3a904368fc25e55643d
5 +X-next-at: ad415229794d1880faab8b9fdd535ab7cc736444
6
7 -What's cooking in git.git (Mar 2017, #06; Tue, 14)
7 +What's cooking in git.git (Mar 2017, #07; Fri, 17)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,29 +12,6 @@ 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 -
15 You can find the changes described here in the integration branches
16 of the repositories listed at
17
@@ -43,160 +20,352 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
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
23 +* bc/object-id (2017-02-22) 19 commits
24 + (merged to 'next' on 2017-03-14 at 0b3ec5a05e)
25 + + wt-status: convert to struct object_id
26 + + builtin/merge-base: convert to struct object_id
27 + + Convert object iteration callbacks to struct object_id
28 + + sha1_file: introduce an nth_packed_object_oid function
29 + + refs: simplify parsing of reflog entries
30 + + refs: convert each_reflog_ent_fn to struct object_id
31 + + reflog-walk: convert struct reflog_info to struct object_id
32 + + builtin/replace: convert to struct object_id
33 + + Convert remaining callers of resolve_refdup to object_id
34 + + builtin/merge: convert to struct object_id
35 + + builtin/clone: convert to struct object_id
36 + + builtin/branch: convert to struct object_id
37 + + builtin/grep: convert to struct object_id
38 + + builtin/fmt-merge-message: convert to struct object_id
39 + + builtin/fast-export: convert to struct object_id
40 + + builtin/describe: convert to struct object_id
41 + + builtin/diff-tree: convert to struct object_id
42 + + builtin/commit: convert to struct object_id
43 + + hex: introduce parse_oid_hex
44 +
45 + "uchar [40]" to "struct object_id" conversion continues.
46 +
47 +
48 +* bc/sha1-header-selection-with-cpp-macros (2017-03-15) 1 commit
49 + (merged to 'next' on 2017-03-15 at 71c3a4f4ba)
50 + + hash.h: move SHA-1 implementation selection into a header file
51 + (this branch is used by jk/sha1dc.)
52 +
53 + Our source code has used the SHA1_HEADER cpp macro after "#include"
54 + in the C code to switch among the SHA-1 implementations. Instead,
55 + list the exact header file names and switch among implementations
56 + using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif";
57 + this helps some IDE tools.
58 +
59 +
60 +* bw/attr-pathspec (2017-03-13) 2 commits
61 + (merged to 'next' on 2017-03-14 at 3af5d6c1fc)
62 + + pathspec: allow escaped query values
63 + + pathspec: allow querying for attributes
64 +
65 + The pathspec mechanism learned to further limit the paths that
66 + match the pattern to those that have specified attributes attached
67 + via the gitattributes mechanism.
68 +
69 +
70 +* cc/split-index-config (2017-03-06) 22 commits
71 + (merged to 'next' on 2017-03-12 at 53cdc2016d)
72 + + Documentation/git-update-index: explain splitIndex.*
73 + + Documentation/config: add splitIndex.sharedIndexExpire
74 + + read-cache: use freshen_shared_index() in read_index_from()
75 + + read-cache: refactor read_index_from()
76 + + t1700: test shared index file expiration
77 + + read-cache: unlink old sharedindex files
78 + + config: add git_config_get_expiry() from gc.c
79 + + read-cache: touch shared index files when used
80 + + sha1_file: make check_and_freshen_file() non static
81 + + Documentation/config: add splitIndex.maxPercentChange
82 + + t1700: add tests for splitIndex.maxPercentChange
83 + + read-cache: regenerate shared index if necessary
84 + + config: add git_config_get_max_percent_split_change()
85 + + Documentation/git-update-index: talk about core.splitIndex config var
86 + + Documentation/config: add information for core.splitIndex
87 + + t1700: add tests for core.splitIndex
88 + + update-index: warn in case of split-index incoherency
89 + + read-cache: add and then use tweak_split_index()
90 + + split-index: add {add,remove}_split_index() functions
91 + + config: add git_config_get_split_index()
92 + + t1700: change here document style
93 + + config: mark an error message up for translation
94 +
95 + The experimental "split index" feature has gained a few
96 + configuration variables to make it easier to use.
97
52 - A few tests were run conditionally under (rare) conditions where
53 - they cannot be run (like running cvs tests under 'root' account).
98
99 +* jk/add-i-use-pathspecs (2017-03-14) 1 commit
100 + (merged to 'next' on 2017-03-14 at 13ce4d91e1)
101 + + add--interactive: do not expand pathspecs with ls-files
102
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
103 + "git add -p <pathspec>" unnecessarily expanded the pathspec to a
104 + list of individual files that matches the pathspec by running "git
105 + ls-files <pathspec>", before feeding it to "git diff-index" to see
106 + which paths have changes, because historically the pathspec
107 + language supported by "diff-index" was weaker. These days they are
108 + equivalent and there is no reason to internally expand it. This
109 + helps both performance and avoids command line argument limit on
110 + some platforms.
111
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.
112
113 +* jk/cherry-pick-0-mainline (2017-03-15) 1 commit
114 + (merged to 'next' on 2017-03-16 at e9a888e5c4)
115 + + cherry-pick: detect bogus arguments to --mainline
116
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
117 + "git revert -m 0 $merge_commit" complained that reverting a merge
118 + needs to say relative to which parent the reversion needs to
119 + happen, as if "-m 0" weren't given. The correct diagnosis is that
120 + "-m 0" does not refer to the first parent ("-m 1" does). This has
121 + been fixed.
122
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.
123
124 +* jk/http-walker-buffer-underflow-fix (2017-03-13) 1 commit
125 + (merged to 'next' on 2017-03-14 at 02020b475d)
126 + + http-walker: fix buffer underflow processing remote alternates
127
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}
128 + "Dumb http" transport used to misparse a nonsense http-alternates
129 + response, which has been fixed.
130 +
131 +
132 +* jk/interop-test (2017-03-10) 2 commits
133 + (merged to 'next' on 2017-03-12 at 704b328022)
134 + + t/interop: add test of old clients against modern git-daemon
135 + + t: add an interoperability test harness
136
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.
137 + Picking two versions of Git and running tests to make sure the
138 + older one and the newer one interoperate happily has now become
139 + possible.
140
141
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
142 +* jk/ref-filter-flags-cleanup (2017-03-10) 4 commits
143 + (merged to 'next' on 2017-03-14 at c335c9cf6e)
144 + + ref-filter: use separate cache for contains_tag_algo
145 + + ref-filter: die on parse_commit errors
146 + + ref-filter: use contains_result enum consistently
147 + + ref-filter: move ref_cbdata definition into ref-filter.c
148 + (this branch is used by ab/ref-filter-no-contains.)
149
104 - "git push" had a handful of codepaths that could lead to a deadlock
105 - when unexpected error happened, which has been fixed.
150 + "git tag --contains" used to (ab)use the object bits to keep track
151 + of the state of object reachability without clearing them after
152 + use; this has been cleaned up and made to use the newer commit-slab
153 + facility.
154
155
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
156 +* js/early-config (2017-03-14) 12 commits
157 + (merged to 'next' on 2017-03-14 at ce43b4a309)
158 + + setup.c: mention unresolved problems
159 + + t1309: document cases where we would want early config not to die()
160 + + setup_git_directory_gently_1(): avoid die()ing
161 + + t1309: test read_early_config()
162 + + read_early_config(): really discover .git/
163 + + read_early_config(): avoid .git/config hack when unneeded
164 + + setup: make read_early_config() reusable
165 + + setup: introduce the discover_git_directory() function
166 + + setup_git_directory_1(): avoid changing global state
167 + + setup: prepare setup_discovered_git_dir() for the root directory
168 + + setup_git_directory(): use is_dir_sep() helper
169 + + t7006: replace dubious test
170
112 - Add 32-bit Linux variant to the set of platforms to be tested with
113 - Travis CI.
171 + The start-up sequence of "git" needs to figure out some configured
172 + settings before it finds and set itself up in the location of the
173 + repository and was quite messy due to its "chicken-and-egg" nature.
174 + The code has been restructured.
175
176
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
177 +* mg/status-porcelain-no-i18n (2017-03-14) 1 commit
178 + (merged to 'next' on 2017-03-14 at 0955895825)
179 + + git-status: make porcelain more robust
180
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.
181 + "git status --porcelain" is supposed to give a stable output, but a
182 + few strings were left as translatable by mistake.
183
184
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
185 +* rs/blame-code-cleanup (2017-03-11) 1 commit
186 + (merged to 'next' on 2017-03-12 at 8fd4bf325a)
187 + + blame: move blame_entry duplication to add_blame_entry()
188
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.
189 + Code clean-up.
190
191
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
192 +* sb/rev-parse-show-superproject-root (2017-03-08) 1 commit
193 + (merged to 'next' on 2017-03-14 at 537c299db6)
194 + + rev-parse: add --show-superproject-working-tree
195
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.
196 + From a working tree of a repository, a new option of "rev-parse"
197 + lets you ask if the repository is used as a submodule of another
198 + project, and where the root level of the working tree of that
199 + project (i.e. your superproject) is.
200
201 --------------------------------------------------
202 [New Topics]
203
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
204 +* jc/name-rev (2017-03-16) 2 commits
205 + - name-rev: favor describing with tags and use committer date to tiebreak
206 + - name-rev: refactor logic to see if a new candidate is a better name
207
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.
208 + "git name-rev" penalized lightweight tags too much, making them
209 + almost useless especially when the command is run with "--tags".
210 + Give the same precedence to lightweight tags as annotated tags as
211 + the base for naming a commit.
212
169 - This looks like almost ready for 'next' modulo minor niggles.
213
214 +* jk/pack-name-cleanups (2017-03-16) 5 commits
215 + (merged to 'next' on 2017-03-16 at 6aa72195f5)
216 + + index-pack: make pointer-alias fallbacks safer
217 + + replace snprintf with odb_pack_name()
218 + + odb_pack_keep(): stop generating keepfile name
219 + + sha1_file.c: make pack-name helper globally accessible
220 + + move odb_* declarations out of git-compat-util.h
221
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
222 + Code clean-up.
223 +
224 + Will merge to 'master'.
225
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.
226 +
227 +* jk/rev-parse-cleanup (2017-03-15) 3 commits
228 + (merged to 'next' on 2017-03-16 at 2799b37404)
229 + + rev-parse: simplify parsing of ref options
230 + + rev-parse: add helper for parsing "--foo/--foo="
231 + + rev-parse: use skip_prefix when parsing options
232 +
233 + Code clean-up.
234
235 Will merge to 'master'.
236
237
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
238 +* js/difftool-builtin (2017-03-15) 3 commits
239 + (merged to 'next' on 2017-03-16 at 3fccb60a07)
240 + + difftool: handle modified symlinks in dir-diff mode
241 + + t7800: cleanup cruft left behind by tests
242 + + t7800: remove whitespace before redirect
243
192 - "git status --porcelain" is supposed to give a stable output, but a
193 - few strings were left as translatable by mistake.
244 + "git difftool --dir-diff" used to die a controlled death giving a
245 + "fatal" message when encountering a locally modified symbolic link,
246 + but it started segfaulting since v2.12. This has been fixed.
247
248 Will merge to 'master'.
249
250 +
251 +* mg/prompt-describe-tags (2017-03-15) 1 commit
252 + (merged to 'next' on 2017-03-16 at 4de192caf4)
253 + + git-prompt: add a describe style for any tags
254 +
255 + The command line prompt (in contrib/) learned a new 'tag' style
256 + that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a
257 + detached HEAD with "git describe --tags".
258 +
259 + Will merge to 'master'.
260 +
261 +
262 +* sb/submodule-config-parse-ignore-fix (2017-03-15) 1 commit
263 + (merged to 'next' on 2017-03-16 at 99d2524abd)
264 + + submodule-config: correct error reporting for invalid ignore value
265 +
266 + Code to read submodule.<name>.ignore config did not state the
267 + variable name correctly when giving an error message diagnosing
268 + misconfiguration.
269 +
270 + Will merge to 'master'.
271 +
272 +
273 +* bw/recurse-submodules-relative-fix (2017-03-17) 5 commits
274 + - ls-files: fix bug when recursing with relative pathspec
275 + - ls-files: fix typo in variable name
276 + - grep: fix bug when recursing with relative pathspec
277 + - setup: allow for prefix to be passed to git commands
278 + - grep: fix help text typo
279 +
280 + A few commands that recently learned the "--recurse-submodule"
281 + option misbehaved when started from a subdirectory of the
282 + superproject.
283 +
284 +
285 +* jc/p4-current-branch-fix (2017-03-17) 1 commit
286 + - DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch
287 +
288 + "git p4" used "name-rev HEAD" when it wants to learn what branch is
289 + checked out; it should use "symbolic-ref HEAD".
290 +
291 + Waiting for git-p4 folks to send a finished patch.
292 +
293 +
294 +* js/rebase-helper (2017-03-17) 1 commit
295 + - sequencer: drop "warning:" when stopping for edit
296 +
297 + Recent update to "rebase -i" started showing a message that is not
298 + a warning with "warning:" prefix by mistake. This has been fixed.
299 +
300 + Will merge to 'next'.
301 +
302 +
303 +* sb/wt-status-cleanup (2017-03-17) 1 commit
304 + - wt-status: simplify by using for_each_string_list_item
305 +
306 + Code clean-up.
307 +
308 + Will merge to 'next'.
309 +
310 --------------------------------------------------
311 [Stalled]
312
313 +* sg/clone-refspec-from-command-line-config (2017-02-27) 1 commit
314 + - clone: respect configured fetch respecs during initial fetch
315 +
316 + Expecting a reroll.
317 + cf. <20170227211217.73gydlxb2qu2sp3m@sigill.intra.peff.net>
318 + cf. <CAM0VKj=rsAfKvVccOMOoo5==Q1yW1U0zJBbUV=faKppWFm-u+g@mail.gmail.com>
319 +
320 +
321 +* sk/dash-is-previous (2017-03-01) 5 commits
322 + - revert.c: delegate handling of "-" shorthand to setup_revisions
323 + - sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}"
324 + - revision.c: args starting with "-" might be a revision
325 + - revision.c: swap if/else blocks
326 + - revision.c: do not update argv with unknown option
327 +
328 + A dash "-" can be written to mean "the branch that was previously
329 + checked out" in more places.
330 +
331 + Needs review.
332 + cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
333 +
334 +
335 +* jh/memihash-opt (2017-02-17) 5 commits
336 + - name-hash: remember previous dir_entry during lazy_init_name_hash
337 + - name-hash: specify initial size for istate.dir_hash table
338 + - name-hash: precompute hash values during preload-index
339 + - hashmap: allow memihash computation to be continued
340 + - name-hash: eliminate duplicate memihash call
341 +
342 + Expecting an update for perf.
343 + cf. <MWHPR03MB29581B0EDDEDCA7D51EC396F8A280@MWHPR03MB2958.namprd03.prod.outlook.com>
344 +
345 +
346 +* ls/filter-process-delayed (2017-03-06) 1 commit
347 + - convert: add "status=delayed" to filter process protocol
348 +
349 + What's the status of this one???
350 + cf. <xmqq60jmnmef.fsf@junio-linux.mtv.corp.google.com>
351 +
352 +
353 +* ab/ref-filter-no-contains (2017-03-11) 1 commit
354 + - ref-filter: add --no-contains option to tag/branch/for-each-ref
355 +
356 + "git tag/branch/for-each-ref" family of commands long allowed to
357 + filter the refs by "--contains X" (show only the refs that are
358 + descendants of X), "--merged X" (show only the refs that are
359 + ancestors of X), "--no-merged X" (show only the refs that are not
360 + ancestors of X). One curious omission, "--no-contains X" (show
361 + only the refs that are not descendants of X) has been added to
362 + them.
363 +
364 + Expecting a reroll.
365 + cf. <CACBZZX4v49zfyGVpcxGSKsxbMfVaUcGHtitpfaZMUtG82YzW-g@mail.gmail.com>
366 + The topic is almost there.
367 +
368 +
369 * sg/completion-refs-speedup (2017-02-13) 13 commits
370 - squash! completion: fill COMPREPLY directly when completing refs
371 - completion: fill COMPREPLY directly when completing refs
@@ -402,291 +571,92 @@ of the repositories listed at
571 --------------------------------------------------
572 [Cooking]
573
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 -
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 -
417 - Expecting a reroll.
418 - cf. <CACBZZX4v49zfyGVpcxGSKsxbMfVaUcGHtitpfaZMUtG82YzW-g@mail.gmail.com>
419 - The topic is almost there.
420 -
421 -
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 -
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 -
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 -
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 -
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 -
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()
574 +* bw/submodule-is-active (2017-03-17) 10 commits
575 + - submodule add: respect submodule.active and submodule.<name>.active
576 + - submodule--helper init: set submodule.<name>.active
577 + - clone: teach --recurse-submodules to optionally take a pathspec
578 + - submodule init: initialize active submodules
579 + - submodule: decouple url and submodule interest
580 + - submodule--helper clone: check for configured submodules using helper
581 + - submodule sync: use submodule--helper is-active
582 + - submodule sync: skip work for inactive submodules
583 + - submodule status: use submodule--helper is-active
584 + - submodule--helper: add is-active subcommand
585
461 - Code clean-up.
586 + "what URL do we want to update this submodule?" and "are we
587 + interested in this submodule?" are split into two distinct
588 + concepts, and then the way used to express the latter got extended,
589 + paving a way to make it easier to manage a project with many
590 + submodules and make it possible to later extend use of multiple
591 + worktrees for a project with submodules.
592
463 - Will merge to 'master'.
593 + This looks almost ready for 'next'. Any more comments?
594
595
466 -* dl/credential-cache-socket-in-xdg-cache (2017-03-13) 1 commit
596 +* dl/credential-cache-socket-in-xdg-cache (2017-03-17) 3 commits
597 + - credential-cache: add tests for XDG functionality
598 + - credential-cache: use XDG_CACHE_HOME for socket
599 - path.c: add xdg_cache_home
600
601 The default location "~/.git-credential-cache/socket" for the
602 socket used to communicate with the credential-cache daemon has
603 been moved to "~/.cache/git/credential/socket".
604
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
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 -
503 - Will merge to 'master'.
504 -
505 -
506 -* ls/filter-process-delayed (2017-03-06) 1 commit
507 - - convert: add "status=delayed" to filter process protocol
508 -
509 - What's the status of this one???
605 + Will merge to 'next'.
606
511 - cf. <xmqq60jmnmef.fsf@junio-linux.mtv.corp.google.com>
607
513 -
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 -
534 - Will merge to 'master'.
535 -
536 -
537 -* jk/sha1dc (2017-03-01) 7 commits
538 - - Put sha1dc on a diet
539 - - sha1dc: avoid 'for' loop initial decl
540 - - sha1dc: resurrect LICENSE file
541 - - sha1dc: avoid c99 declaration-after-statement
542 - - Makefile: add USE_SHA1DC knob
608 +* jk/sha1dc (2017-03-17) 6 commits
609 + - Makefile: make DC_SHA1 the default
610 + - t0013: add a basic sha1 collision detection test
611 + - Makefile: add DC_SHA1 knob
612 + - sha1dc: disable safe_hash feature
613 - sha1dc: adjust header includes for git
544 - - add collision-detecting sha1 implementation
614 + - sha1dc: add collision-detecting sha1 implementation
615
616 Borrow "detect attempt to create collisions" variant of SHA-1
617 implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft).
618
549 - Expecting a cleaned-up reroll after discussion settles.
550 - cf. <CA+55aFxTWqsTTiDKo4DBZT-8Z9t80bGMD3uijzKONa_bYEZABQ@mail.gmail.com>
619 + This looks almost ready for 'next'. Any more comments?
620
621
622 * nd/conditional-config-include (2017-03-11) 3 commits
554 - - config: add conditional include
555 - - config.txt: reflow the second include.path paragraph
556 - - config.txt: clarify multiple key values in include.path
623 + (merged to 'next' on 2017-03-17 at 788a931e39)
624 + + config: add conditional include
625 + + config.txt: reflow the second include.path paragraph
626 + + config.txt: clarify multiple key values in include.path
627
628 The configuration file learned a new "includeIf.<condition>.path"
629 that includes the contents of the given path only when the
630 condition holds. This allows you to say "include this work-related
631 bit only in the repositories under my ~/work/ directory".
632
563 - Will merge to 'next' after squashing niggle-fixes in.
564 -
565 -
566 -* cc/split-index-config (2017-03-06) 22 commits
567 - (merged to 'next' on 2017-03-12 at 53cdc2016d)
568 - + Documentation/git-update-index: explain splitIndex.*
569 - + Documentation/config: add splitIndex.sharedIndexExpire
570 - + read-cache: use freshen_shared_index() in read_index_from()
571 - + read-cache: refactor read_index_from()
572 - + t1700: test shared index file expiration
573 - + read-cache: unlink old sharedindex files
574 - + config: add git_config_get_expiry() from gc.c
575 - + read-cache: touch shared index files when used
576 - + sha1_file: make check_and_freshen_file() non static
577 - + Documentation/config: add splitIndex.maxPercentChange
578 - + t1700: add tests for splitIndex.maxPercentChange
579 - + read-cache: regenerate shared index if necessary
580 - + config: add git_config_get_max_percent_split_change()
581 - + Documentation/git-update-index: talk about core.splitIndex config var
582 - + Documentation/config: add information for core.splitIndex
583 - + t1700: add tests for core.splitIndex
584 - + update-index: warn in case of split-index incoherency
585 - + read-cache: add and then use tweak_split_index()
586 - + split-index: add {add,remove}_split_index() functions
587 - + config: add git_config_get_split_index()
588 - + t1700: change here document style
589 - + config: mark an error message up for translation
590 -
591 - The experimental "split index" feature has gained a few
592 - configuration variables to make it easier to use.
593 -
633 Will merge to 'master'.
634
635
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
600 - + t: add an interoperability test harness
601 -
602 - Picking two versions of Git and running tests to make sure the
603 - older one and the newer one interoperate happily has now become
604 - possible.
605 -
606 - Will merge to 'master'.
607 -
608 -
609 -* sg/clone-refspec-from-command-line-config (2017-02-27) 1 commit
610 - - clone: respect configured fetch respecs during initial fetch
611 -
612 - Expecting a reroll.
613 - cf. <20170227211217.73gydlxb2qu2sp3m@sigill.intra.peff.net>
614 - cf. <CAM0VKj=rsAfKvVccOMOoo5==Q1yW1U0zJBbUV=faKppWFm-u+g@mail.gmail.com>
615 -
616 -
617 -* sk/dash-is-previous (2017-03-01) 5 commits
618 - - revert.c: delegate handling of "-" shorthand to setup_revisions
619 - - sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}"
620 - - revision.c: args starting with "-" might be a revision
621 - - revision.c: swap if/else blocks
622 - - revision.c: do not update argv with unknown option
623 -
624 - A dash "-" can be written to mean "the branch that was previously
625 - checked out" in more places.
626 -
627 - Needs review.
628 - cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
629 -
630 -
631 -* jh/memihash-opt (2017-02-17) 5 commits
632 - - name-hash: remember previous dir_entry during lazy_init_name_hash
633 - - name-hash: specify initial size for istate.dir_hash table
634 - - name-hash: precompute hash values during preload-index
635 - - hashmap: allow memihash computation to be continued
636 - - name-hash: eliminate duplicate memihash call
637 -
638 - Expecting an update for perf.
639 - cf. <MWHPR03MB29581B0EDDEDCA7D51EC396F8A280@MWHPR03MB2958.namprd03.prod.outlook.com>
640 -
641 -
642 -* sb/checkout-recurse-submodules (2017-03-11) 18 commits
643 - - submodule--helper.c: remove duplicate code
636 +* sb/checkout-recurse-submodules (2017-03-16) 19 commits
637 - builtin/read-tree: add --recurse-submodules switch
638 - builtin/checkout: add --recurse-submodules switch
639 - entry.c: create submodules when interesting
640 - unpack-trees: check if we can perform the operation for submodules
641 - unpack-trees: pass old oid to verify_clean_submodule
642 - update submodules: add submodule_move_head
643 + - submodule.c: get_super_prefix_or_empty
644 - update submodules: move up prepare_submodule_repo_env
645 - submodules: introduce check to see whether to touch a submodule
646 - update submodules: add a config option to determine if submodules are updated
647 - update submodules: add submodule config parsing
654 - - connect_work_tree_and_git_dir: safely create leading directories
648 - make is_submodule_populated gently
649 - lib-submodule-update.sh: define tests for recursing into submodules
650 - lib-submodule-update.sh: replace sha1 by hash
651 - lib-submodule-update: teach test_submodule_content the -C <dir> flag
652 - lib-submodule-update.sh: do not use ./. as submodule remote
653 - lib-submodule-update.sh: reorder create_lib_submodule_repo
654 + - submodule--helper.c: remove duplicate code
655 + - connect_work_tree_and_git_dir: safely create leading directories
656
657 "git checkout" is taught --recurse-submodules option.
658
664 -
665 -* bc/object-id (2017-02-22) 19 commits
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 -
689 - Will merge to 'master'.
659 + This looks almost ready for 'next'. Any more comments?
660
661
662 * jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit
@@ -723,27 +693,3 @@ of the repositories listed at
693 The beginning of "split bundle", which could be one of the
694 ingredients to allow "git clone" traffic off of the core server
695 network to CDN.
726 -
727 ---------------------------------------------------
728 -[Discarded]
729 -
730 -* jk/auto-namelen-in-interpret-branch-name (2017-02-27) 1 commit
731 - . interpret_branch_name(): handle auto-namelen for @{-1}
732 -
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.