What's cooking (2016/10 #03)

Junio C Hamano committed Oct 11, 2016 at 14:02 UTC 1d5745d8b3fa1306358c8358338ea64a0da82577
1 file changed +529 -458
whats-cooking.txt
+529 -458
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Oct 2016, #02; Thu, 6)
4 -X-master-at: a23ca1b8dc42ffd4de2ef30d67ce1e21ded29886
5 -X-next-at: d4ef1078455682bd5fab0e8b62e2351d25268477
3 +Subject: What's cooking in git.git (Oct 2016, #03; Tue, 11)
4 +X-master-at: 8a36cd87b7c85a651ab388d403629865ffa3ba0d
5 +X-next-at: 28fc3e53f99219d01faa8a76452eac5ca9d631c2
6
7 -What's cooking in git.git (Oct 2016, #02; Thu, 6)
7 +What's cooking in git.git (Oct 2016, #03; Tue, 11)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,11 +12,11 @@ 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 -With fixes since 2.10 accumulated on the 'master' front, the first
16 -maintenance release 2.10.1 has been tagged. The auto-abbreviation
17 -by Linus and Peff is now in 'next'. The tip of 'master' has quite a
18 -many topics merged since the last report. Pat is back and hopefully
19 -be more active as the git-gui maintainer. Life is good ;-)
15 +A handful of topics have been merged to 'master' and the upcoming
16 +release started to take shape. Quite a few topics that no longer
17 +merge cleanly to 'pu' and have been excluded from 'pu' for some time
18 +have finally been moved to the Discarded section (many of them are
19 +expected to be updated and return).
20
21 You can find the changes described here in the integration branches
22 of the repositories listed at
@@ -26,169 +26,257 @@ of the repositories listed at
26 --------------------------------------------------
27 [Graduated to "master"]
28
29 -* jc/blame-abbrev (2016-09-28) 1 commit
30 - (merged to 'next' on 2016-10-03 at 8ec86ff1e1)
31 - + blame: use DEFAULT_ABBREV macro
32 -
33 - Almost everybody uses DEFAULT_ABBREV to refer to the default
34 - setting for the abbreviation, but "git blame" peeked into
35 - underlying variable bypassing the macro for no good reason.
36 -
29 +* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit
30 + (merged to 'next' on 2016-09-22 at 4449584c26)
31 + + imap-send: Tell cURL to use imap:// or imaps://
32
38 -* jk/ambiguous-short-object-names (2016-09-27) 11 commits
39 - (merged to 'next' on 2016-09-28 at 1b85295323)
40 - + get_short_sha1: make default disambiguation configurable
41 - + get_short_sha1: list ambiguous objects on error
42 - + for_each_abbrev: drop duplicate objects
43 - + sha1_array: let callbacks interrupt iteration
44 - + get_short_sha1: mark ambiguity error for translation
45 - + get_short_sha1: NUL-terminate hex prefix
46 - + get_short_sha1: refactor init of disambiguation code
47 - + get_short_sha1: parse tags when looking for treeish
48 - + get_sha1: propagate flags to child functions
49 - + get_sha1: avoid repeating ourselves via ONLY_TO_DIE
50 - + get_sha1: detect buggy calls with multiple disambiguators
51 - (this branch is used by jk/abbrev-auto and lt/abbrev-auto.)
33 + When we started cURL to talk to imap server when a new enough
34 + version of cURL library is available, we forgot to explicitly add
35 + imap(s):// before the destination. To some folks, that didn't work
36 + and the library tried to make HTTP(s) requests instead.
37
53 - When given an abbreviated object name that is not (or more
54 - realistically, "no longer") unique, we gave a fatal error
55 - "ambiguous argument". This error is now accompanied by hints that
56 - lists the objects that begins with the given prefix. During the
57 - course of development of this new feature, numerous minor bugs were
58 - uncovered and corrected, the most notable one of which is that we
59 - gave "short SHA1 xxxx is ambiguous." twice without good reason.
38
39 +* cp/completion-negative-refs (2016-08-24) 1 commit
40 + (merged to 'next' on 2016-09-22 at abd1585aa6)
41 + + completion: support excluding refs
42
62 -* jk/graph-padding-fix (2016-09-29) 1 commit
63 - (merged to 'next' on 2016-10-03 at 3f526e0f38)
64 - + graph: fix extra spaces in graph_padding_line
43 + The command-line completion script (in contrib/) learned to
44 + complete "git cmd ^mas<HT>" to complete the negative end of
45 + reference to "git cmd ^master".
46
66 - The "graph" API used in "git log --graph" miscounted the number of
67 - output columns consumed so far when drawing a padding line, which
68 - has been fixed; this did not affect any existing code as nobody
69 - tried to write anything after the padding on such a line, though.
47
48 +* dp/autoconf-curl-ssl (2016-06-28) 1 commit
49 + (merged to 'next' on 2016-09-22 at 9c5aeeced9)
50 + + ./configure.ac: detect SSL in libcurl using curl-config
51
72 -* ps/http-gssapi-cred-delegation (2016-09-29) 1 commit
73 - (merged to 'next' on 2016-10-03 at 310fbe8f24)
74 - + http: control GSSAPI credential delegation
52 + The ./configure script generated from configure.ac was taught how
53 + to detect support of SSL by libcurl better.
54
76 - In recent versions of cURL, GSSAPI credential delegation is
77 - disabled by default due to CVE-2011-2192; introduce a configuration
78 - to selectively allow enabling this.
55
56 +* jc/blame-reverse (2016-06-14) 2 commits
57 + (merged to 'next' on 2016-09-22 at d1a8e9ce99)
58 + + blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
59 + + blame: improve diagnosis for "--reverse NEW"
60
81 -* rs/c-auto-resets-attributes (2016-09-29) 1 commit
82 - (merged to 'next' on 2016-10-03 at 6a0b946a79)
83 - + pretty: avoid adding reset for %C(auto) if output is empty
61 + It is a common mistake to say "git blame --reverse OLD path",
62 + expecting that the command line is dwimmed as if asking how lines
63 + in path in an old revision OLD have survived up to the current
64 + commit.
65
85 - When "%C(auto)" appears at the very beginning of the pretty format
86 - string, it did not need to issue the reset sequence, but it did.
87 - This is a small optimization to already graduated topic.
66
67 +* jk/pack-objects-optim-mru (2016-08-11) 4 commits
68 + (merged to 'next' on 2016-09-21 at 97b919bdbd)
69 + + pack-objects: use mru list when iterating over packs
70 + + pack-objects: break delta cycles before delta-search phase
71 + + sha1_file: make packed_object_info public
72 + + provide an initializer for "struct object_info"
73
90 -* rs/cocci (2016-10-03) 4 commits
91 - (merged to 'next' on 2016-10-03 at 758cc6de9c)
92 - + coccicheck: make transformation for strbuf_addf(sb, "...") more precise
93 - (merged to 'next' on 2016-09-28 at 26462645f9)
94 - + use strbuf_add_unique_abbrev() for adding short hashes, part 2
95 - + use strbuf_addstr() instead of strbuf_addf() with "%s", part 2
96 - + gitignore: ignore output files of coccicheck make target
74 + Originally merged to 'next' on 2016-08-11
75
98 - Code clean-up with help from coccinelle tool continues.
76 + "git pack-objects" in a repository with many packfiles used to
77 + spend a lot of time looking for/at objects in them; the accesses to
78 + the packfiles are now optimized by checking the most-recently-used
79 + packfile first.
80
81
101 -* sg/ref-filter-parse-optim (2016-10-03) 1 commit
102 - (merged to 'next' on 2016-10-03 at 9af6bb63e9)
103 - + ref-filter: strip format option after a field name only once while parsing
82 +* nd/shallow-deepen (2016-06-13) 27 commits
83 + (merged to 'next' on 2016-09-22 at f0cf3e3385)
84 + + fetch, upload-pack: --deepen=N extends shallow boundary by N commits
85 + + upload-pack: add get_reachable_list()
86 + + upload-pack: split check_unreachable() in two, prep for get_reachable_list()
87 + + t5500, t5539: tests for shallow depth excluding a ref
88 + + clone: define shallow clone boundary with --shallow-exclude
89 + + fetch: define shallow boundary with --shallow-exclude
90 + + upload-pack: support define shallow boundary by excluding revisions
91 + + refs: add expand_ref()
92 + + t5500, t5539: tests for shallow depth since a specific date
93 + + clone: define shallow clone boundary based on time with --shallow-since
94 + + fetch: define shallow boundary with --shallow-since
95 + + upload-pack: add deepen-since to cut shallow repos based on time
96 + + shallow.c: implement a generic shallow boundary finder based on rev-list
97 + + fetch-pack: use a separate flag for fetch in deepening mode
98 + + fetch-pack.c: mark strings for translating
99 + + fetch-pack: use a common function for verbose printing
100 + + fetch-pack: use skip_prefix() instead of starts_with()
101 + + upload-pack: move rev-list code out of check_non_tip()
102 + + upload-pack: make check_non_tip() clean things up on error
103 + + upload-pack: tighten number parsing at "deepen" lines
104 + + upload-pack: use skip_prefix() instead of starts_with()
105 + + upload-pack: move "unshallow" sending code out of deepen()
106 + + upload-pack: remove unused variable "backup"
107 + + upload-pack: move "shallow" sending code out of deepen()
108 + + upload-pack: move shallow deepen code out of receive_needs()
109 + + transport-helper.c: refactor set_helper_option()
110 + + remote-curl.c: convert fetch_git() to use argv_array
111
105 - The code that parses the format parameter of for-each-ref command
106 - has seen a micro-optimization.
112 + The existing "git fetch --depth=<n>" option was hard to use
113 + correctly when making the history of an existing shallow clone
114 + deeper. A new option, "--deepen=<n>", has been added to make this
115 + easier to use. "git clone" also learned "--shallow-since=<date>"
116 + and "--shallow-exclude=<tag>" options to make it easier to specify
117 + "I am interested only in the recent N months worth of history" and
118 + "Give me only the history since that version".
119
120
109 -* vn/revision-shorthand-for-side-branch-log (2016-09-27) 1 commit
110 - (merged to 'next' on 2016-09-28 at c1237b24f6)
111 - + revision: new rev^-n shorthand for rev^n..rev
121 +* rs/qsort (2016-10-03) 6 commits
122 + (merged to 'next' on 2016-10-06 at 32a5bd3c88)
123 + + show-branch: use QSORT
124 + + use QSORT, part 2
125 + + coccicheck: use --all-includes by default
126 + + remove unnecessary check before QSORT
127 + + use QSORT
128 + + add QSORT
129
113 - "git log rev^..rev" is an often-used revision range specification
114 - to show what was done on a side branch merged at rev. This has
115 - gained a short-hand "rev^-1". In general "rev^-$n" is the same as
116 - "^rev^$n rev", i.e. what has happened on other branches while the
117 - history leading to nth parent was looking the other way.
130 + We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of
131 + the time third parameter is redundant. A new QSORT() macro lets us
132 + omit it.
133
134 --------------------------------------------------
135 [New Topics]
136
122 -* jc/ws-error-highlight (2016-10-04) 4 commits
123 - - diff: introduce diff.wsErrorHighlight option
124 - - diff.c: move ws-error-highlight parsing helpers up
125 - - diff.c: refactor parse_ws_error_highlight()
126 - - t4015: split out the "setup" part of ws-error-highlight test
137 +* ab/gitweb-abbrev-links (2016-10-06) 3 commits
138 + - gitweb: link to "git describe"'d commits in log messages
139 + - gitweb: link to 7-char+ SHA-1s, not only 8-char+
140 + - gitweb: fix a typo in a comment
141
128 - "git diff/log --ws-error-highlight=<kind>" lacked the corresponding
129 - configuration variable to set it by default.
142 + In addition to purely abbreviated commit object names, "gitweb"
143 + learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787)
144 + into clickable links in its output.
145
131 - Undecided.
146 + Waiting for review.
147
148
134 -* jk/abbrev-auto (2016-10-03) 1 commit
135 - - find_unique_abbrev: move logic out of get_short_sha1()
136 - (this branch uses lt/abbrev-auto.)
149 +* da/mergetool-diff-order (2016-10-11) 4 commits
150 + (merged to 'next' on 2016-10-11 at 3d1b98c16d)
151 + + mergetool: honor -O<orderfile>
152 + + mergetool: honor diff.orderFile
153 + + mergetool: move main program flow into a main() function
154 + + mergetool: add copyright
155
138 - Updates the way approximate count of total objects is computed
139 - while attempting to come up with a unique abbreviated object name,
140 - which in turn needs to estimate how many hexdigits are necessary to
141 - ensure uniqueness.
156 + "git mergetool" learned to honor "-O<orderfile>" to control the
157 + order of paths to present to the end user.
158
143 - Undecided.
159 + Will merge to 'master'.
160
161
146 -* jk/clone-copy-alternates-fix (2016-10-05) 1 commit
147 - - clone: detect errors in normalize_path_copy
162 +* jk/ref-symlink-loop (2016-10-10) 2 commits
163 + (merged to 'next' on 2016-10-11 at ac5c35f87f)
164 + + files_read_raw_ref: prevent infinite retry loops in general
165 + + files_read_raw_ref: avoid infinite loop on broken symlinks
166
149 - "git clone" of a local repository can be done at the filesystem
150 - level, but the codepath did not check errors while copying and
151 - adjusting the file that lists alternate object stores.
167 + A stray symbolic link in $GIT_DIR/refs/ directory could make name
168 + resolution loop forever, which has been corrected.
169
153 - Will merge to 'next'.
170 + Will merge to 'master'.
171
172
156 -* nd/commit-p-doc (2016-10-05) 1 commit
157 - - git-commit.txt: clarify --patch mode with pathspec
173 +* js/prepare-sequencer (2016-10-10) 26 commits
174 + - SQUASH: nobody uses this function yet
175 + - sequencer: mark all error messages for translation
176 + - sequencer: start error messages consistently with lower case
177 + - sequencer: quote filenames in error messages
178 + - sequencer: mark action_name() for translation
179 + - sequencer: remove overzealous assumption in rebase -i mode
180 + - sequencer: refactor write_message()
181 + - sequencer: left-trim lines read from the script
182 + - sequencer: do not try to commit when there were merge conflicts
183 + - sequencer: support cleaning up commit messages
184 + - sequencer: support amending commits
185 + - sequencer: allow editing the commit message on a case-by-case basis
186 + - sequencer: introduce a helper to read files written by scripts
187 + - sequencer: prepare for rebase -i's commit functionality
188 + - sequencer: remember the onelines when parsing the todo file
189 + - sequencer: refactor the code to obtain a short commit name
190 + - sequencer: get rid of the subcommand field
191 + - sequencer: avoid completely different messages for different actions
192 + - sequencer: strip CR from the todo script
193 + - sequencer: completely revamp the "todo" script parsing
194 + - sequencer: future-proof read_populate_todo()
195 + - sequencer: eventually release memory allocated for the option values
196 + - sequencer: future-proof remove_sequencer_state()
197 + - sequencer: avoid unnecessary indirection
198 + - sequencer: use memoized sequencer directory path
199 + - sequencer: use static initializers for replay_opts
200 +
201 + Update of the sequencer codebase to make it reusable to reimplement
202 + "rebase -i" continues.
203 +
204 + Waiting for review.
205 +
206 +
207 +* js/regexec-buf (2016-10-10) 1 commit
208 + (merged to 'next' on 2016-10-11 at 466a26548c)
209 + + configure.ac: improve description of NO_REGEX test
210
159 - Documentation for "git commit" was updated to clarify that "commit
160 - -p <paths>" adds to the current contents of the index to come up
161 - with what to commit.
211 + Will merge to 'master'.
212
163 - Will merge to 'next'.
213
165 ---------------------------------------------------
166 -[Stalled]
214 +* rs/cocci (2016-10-10) 2 commits
215 + (merged to 'next' on 2016-10-11 at bbd6a88402)
216 + + use strbuf_add_unique_abbrev() for adding short hashes, part 3
217 + + remove unnecessary NULL check before free(3)
218
168 -* jc/bundle (2016-03-03) 6 commits
169 - - index-pack: --clone-bundle option
170 - - Merge branch 'jc/index-pack' into jc/bundle
171 - - bundle v3: the beginning
172 - - bundle: keep a copy of bundle file name in the in-core bundle header
173 - - bundle: plug resource leak
174 - - bundle doc: 'verify' is not about verifying the bundle
219 + Code cleanup.
220
176 - The beginning of "split bundle", which could be one of the
177 - ingredients to allow "git clone" traffic off of the core server
178 - network to CDN.
221 + Will merge to 'master'.
222
180 - While I think it would make it easier for people to experiment and
181 - build on if the topic is merged to 'next', I am at the same time a
182 - bit reluctant to merge an unproven new topic that introduces a new
183 - file format, which we may end up having to support til the end of
184 - time. It is likely that to support a "prime clone from CDN", it
185 - would need a lot more than just "these are the heads and the pack
186 - data is over there", so this may not be sufficient.
223
188 - Will discard.
224 +* sb/submodule-ignore-trailing-slash (2016-10-10) 2 commits
225 + (merged to 'next' on 2016-10-11 at e37425ed17)
226 + + submodule: ignore trailing slash in relative url
227 + + submodule: ignore trailing slash on superproject URL
228
229 + A minor regression fix for "git submodule".
230
191 -* jc/attr (2016-05-25) 18 commits
231 + Will merge to 'master'.
232 +
233 +
234 +* st/verify-tag (2016-10-10) 7 commits
235 + - t/t7004-tag: Add --format specifier tests
236 + - t/t7030-verify-tag: Add --format specifier tests
237 + - builtin/tag: add --format argument for tag -v
238 + - builtin/verify-tag: add --format to verify-tag
239 + - tag: add format specifier to gpg_verify_tag
240 + - ref-filter: add function to print single ref_array_item
241 + - gpg-interface, tag: add GPG_VERIFY_QUIET flag
242 +
243 + "git tag" and "git verify-tag" learned to put GPG verification
244 + status in their "--format=<placeholders>" output format.
245 +
246 + Is this ready for 'next'?
247 +
248 +
249 +* js/reset-usage (2016-10-11) 1 commit
250 + (merged to 'next' on 2016-10-11 at 61ad4a7c0e)
251 + + reset: fix usage
252 +
253 + Will merge to 'master'.
254 +
255 +
256 +* mm/credential-libsecret (2016-10-11) 1 commit
257 + - contrib: add credential helper for libsecret
258 +
259 + Will merge to 'next'.
260 +
261 +
262 +* rs/pretty-format-color-doc-fix (2016-10-11) 1 commit
263 + (merged to 'next' on 2016-10-11 at f0ae64bcbd)
264 + + pretty: fix document link for color specification
265 +
266 + Will merge to 'master'.
267 +
268 +
269 +* sb/attr (2016-10-11) 28 commits
270 + - attr: convert to new threadsafe API
271 + - attr: make git_check_attr_counted static
272 + - attr: make git_attr_counted static
273 + - attr.c: outline the future plans by heavily commenting
274 + - attr.c: always pass check[] to collect_some_attrs()
275 + - attr.c: introduce empty_attr_check_elems()
276 + - attr.c: correct ugly hack for git_all_attrs()
277 + - attr.c: rename a local variable check
278 + - attr.c: pass struct git_attr_check down the callchain
279 + - attr.c: add push_stack() helper
280 - attr: support quoting pathname patterns in C style
281 - attr: expose validity check for attribute names
282 - attr: add counted string version of git_attr()
@@ -207,68 +295,44 @@ of the repositories listed at
295 - attr.c: update a stale comment on "struct match_attr"
296 - attr.c: use strchrnul() to scan for one line
297 - commit.c: use strchrnul() to scan for one line
210 - (this branch is used by jc/attr-more, sb/pathspec-label and sb/submodule-default-paths.)
298
299 The attributes API has been updated so that it can later be
300 optimized using the knowledge of which attributes are queried.
301
215 - I wanted to polish this topic further to make the attribute
216 - subsystem thread-ready, but because other topics depend on this
217 - topic and they do not (yet) need it to be thread-ready.
218 -
219 - As the authors of topics that depend on this seem not in a hurry,
220 - let's discard this and dependent topics and restart them some other
221 - day.
302
223 - Will discard.
303 +* sb/submodule-config-doc-drop-path (2016-10-11) 1 commit
304 + (merged to 'next' on 2016-10-11 at 28fc3e53f9)
305 + + documentation: improve submodule.<name>.{url, path} description
306
307 + The "submodule.<name>.path" stored in .gitmodules is never copied
308 + to .git/config and such a key in .git/config has no meaning, but
309 + the documentation described it and submodule.<name>.url next to
310 + each other as if both belong to .git/config. This has been fixed.
311
226 -* jc/attr-more (2016-06-09) 8 commits
227 - - attr.c: outline the future plans by heavily commenting
228 - - attr.c: always pass check[] to collect_some_attrs()
229 - - attr.c: introduce empty_attr_check_elems()
230 - - attr.c: correct ugly hack for git_all_attrs()
231 - - attr.c: rename a local variable check
232 - - fixup! d5ad6c13
233 - - attr.c: pass struct git_attr_check down the callchain
234 - - attr.c: add push_stack() helper
235 - (this branch uses jc/attr; is tangled with sb/pathspec-label and sb/submodule-default-paths.)
236 -
237 - The beginning of long and tortuous journey to clean-up attribute
238 - subsystem implementation.
239 -
240 - Needs to be redone.
241 - Will discard.
242 -
243 -
244 -* sb/submodule-default-paths (2016-06-20) 5 commits
245 - - completion: clone can recurse into submodules
246 - - clone: add --init-submodule=<pathspec> switch
247 - - submodule update: add `--init-default-path` switch
248 - - Merge branch 'sb/pathspec-label' into sb/submodule-default-paths
249 - - Merge branch 'jc/attr' into sb/submodule-default-paths
250 - (this branch uses jc/attr and sb/pathspec-label; is tangled with jc/attr-more.)
251 -
252 - Allow specifying the set of submodules the user is interested in on
253 - the command line of "git clone" that clones the superproject.
312 + Will merge to 'master'.
313
255 - Will discard.
314 +--------------------------------------------------
315 +[Stalled]
316
317 +* jc/bundle (2016-03-03) 6 commits
318 + - index-pack: --clone-bundle option
319 + - Merge branch 'jc/index-pack' into jc/bundle
320 + - bundle v3: the beginning
321 + - bundle: keep a copy of bundle file name in the in-core bundle header
322 + - bundle: plug resource leak
323 + - bundle doc: 'verify' is not about verifying the bundle
324
258 -* sb/pathspec-label (2016-06-03) 6 commits
259 - - pathspec: disable preload-index when attribute pathspec magic is in use
260 - - pathspec: allow escaped query values
261 - - pathspec: allow querying for attributes
262 - - pathspec: move prefix check out of the inner loop
263 - - pathspec: move long magic parsing out of prefix_pathspec
264 - - Documentation: fix a typo
265 - (this branch is used by sb/submodule-default-paths; uses jc/attr; is tangled with jc/attr-more.)
325 + The beginning of "split bundle", which could be one of the
326 + ingredients to allow "git clone" traffic off of the core server
327 + network to CDN.
328
267 - The pathspec mechanism learned ":(attr:X)$pattern" pathspec magic
268 - to limit paths that match $pattern further by attribute settings.
269 - The preload-index mechanism is disabled when the new pathspec magic
270 - is in use (at least for now), because the attribute subsystem is
271 - not thread-ready.
329 + While I think it would make it easier for people to experiment and
330 + build on if the topic is merged to 'next', I am at the same time a
331 + bit reluctant to merge an unproven new topic that introduces a new
332 + file format, which we may end up having to support til the end of
333 + time. It is likely that to support a "prime clone from CDN", it
334 + would need a lot more than just "these are the heads and the pack
335 + data is over there", so this may not be sufficient.
336
337 Will discard.
338
@@ -292,42 +356,6 @@ of the repositories listed at
356 this.
357
358
295 -* pb/bisect (2016-08-23) 27 commits
296 - . bisect--helper: remove the dequote in bisect_start()
297 - . bisect--helper: retire `--bisect-auto-next` subcommand
298 - . bisect--helper: retire `--bisect-autostart` subcommand
299 - . bisect--helper: retire `--check-and-set-terms` subcommand
300 - . bisect--helper: retire `--bisect-write` subcommand
301 - . bisect--helper: `bisect_replay` shell function in C
302 - . bisect--helper: `bisect_log` shell function in C
303 - . bisect--helper: retire `--write-terms` subcommand
304 - . bisect--helper: retire `--check-expected-revs` subcommand
305 - . bisect--helper: `bisect_state` & `bisect_head` shell function in C
306 - . bisect--helper: `bisect_autostart` shell function in C
307 - . bisect--helper: retire `--next-all` subcommand
308 - . bisect--helper: retire `--bisect-clean-state` subcommand
309 - . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
310 - . bisect--helper: `bisect_start` shell function partially in C
311 - . bisect--helper: `get_terms` & `bisect_terms` shell function in C
312 - . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
313 - . bisect--helper: `check_and_set_terms` shell function in C
314 - . bisect--helper: `bisect_write` shell function in C
315 - . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
316 - . bisect--helper: `bisect_reset` shell function in C
317 - . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
318 - . t6030: explicitly test for bisection cleanup
319 - . bisect--helper: `bisect_clean_state` shell function in C
320 - . bisect--helper: `write_terms` shell function in C
321 - . bisect: rewrite `check_term_format` shell function in C
322 - . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
323 -
324 - GSoC "bisect" topic.
325 -
326 - I'd prefer to see early part solidified so that reviews can focus
327 - on the later part that is still in flux. We are almost there but
328 - not quite yet.
329 -
330 -
359 * kn/ref-filter-branch-list (2016-05-17) 17 commits
360 - branch: implement '--format' option
361 - branch: use ref-filter printing APIs
@@ -354,70 +382,6 @@ of the repositories listed at
382 Needs review.
383
384
357 -* sb/bisect (2016-04-15) 22 commits
358 - . SQUASH???
359 - . bisect: get back halfway shortcut
360 - . bisect: compute best bisection in compute_relevant_weights()
361 - . bisect: use a bottom-up traversal to find relevant weights
362 - . bisect: prepare for different algorithms based on find_all
363 - . bisect: rename count_distance() to compute_weight()
364 - . bisect: make total number of commits global
365 - . bisect: introduce distance_direction()
366 - . bisect: extract get_distance() function from code duplication
367 - . bisect: use commit instead of commit list as arguments when appropriate
368 - . bisect: replace clear_distance() by unique markers
369 - . bisect: use struct node_data array instead of int array
370 - . bisect: get rid of recursion in count_distance()
371 - . bisect: make algorithm behavior independent of DEBUG_BISECT
372 - . bisect: make bisect compile if DEBUG_BISECT is set
373 - . bisect: plug the biggest memory leak
374 - . bisect: add test for the bisect algorithm
375 - . t6030: generalize test to not rely on current implementation
376 - . t: use test_cmp_rev() where appropriate
377 - . t/test-lib-functions.sh: generalize test_cmp_rev
378 - . bisect: allow 'bisect run' if no good commit is known
379 - . bisect: write about `bisect next` in documentation
380 -
381 - The internal algorithm used in "git bisect" to find the next commit
382 - to check has been optimized greatly.
383 -
384 - Was expecting a reroll, but now pb/bisect topic starts removinging
385 - more and more parts from git-bisect.sh, this needs to see a fresh
386 - reroll.
387 -
388 - Will discard.
389 - cf. <1460294354-7031-1-git-send-email-s-beyer@gmx.net>
390 -
391 -
392 -* sg/completion-updates (2016-02-28) 21 commits
393 - . completion: cache the path to the repository
394 - . completion: extract repository discovery from __gitdir()
395 - . completion: don't guard git executions with __gitdir()
396 - . completion: consolidate silencing errors from git commands
397 - . completion: don't use __gitdir() for git commands
398 - . completion: respect 'git -C <path>'
399 - . completion: fix completion after 'git -C <path>'
400 - . completion: don't offer commands when 'git --opt' needs an argument
401 - . rev-parse: add '--absolute-git-dir' option
402 - . completion: list short refs from a remote given as a URL
403 - . completion: don't list 'HEAD' when trying refs completion outside of a repo
404 - . completion: list refs from remote when remote's name matches a directory
405 - . completion: respect 'git --git-dir=<path>' when listing remote refs
406 - . completion: fix most spots not respecting 'git --git-dir=<path>'
407 - . completion: ensure that the repository path given on the command line exists
408 - . completion tests: add tests for the __git_refs() helper function
409 - . completion tests: check __gitdir()'s output in the error cases
410 - . completion tests: consolidate getting path of current working directory
411 - . completion tests: make the $cur variable local to the test helper functions
412 - . completion tests: don't add test cruft to the test repository
413 - . completion: improve __git_refs()'s in-code documentation
414 -
415 - Has been waiting for a reroll for too long.
416 - cf. <1456754714-25237-1-git-send-email-szeder@ira.uka.de>
417 -
418 - Will discard.
419 -
420 -
385 * ec/annotate-deleted (2015-11-20) 1 commit
386 - annotate: skip checking working tree if a revision is provided
387
@@ -463,6 +427,52 @@ of the repositories listed at
427 --------------------------------------------------
428 [Cooking]
429
430 +* jc/ws-error-highlight (2016-10-04) 4 commits
431 + - diff: introduce diff.wsErrorHighlight option
432 + - diff.c: move ws-error-highlight parsing helpers up
433 + - diff.c: refactor parse_ws_error_highlight()
434 + - t4015: split out the "setup" part of ws-error-highlight test
435 +
436 + "git diff/log --ws-error-highlight=<kind>" lacked the corresponding
437 + configuration variable to set it by default.
438 +
439 + Will merge to 'next'.
440 +
441 +
442 +* jk/abbrev-auto (2016-10-03) 1 commit
443 + - find_unique_abbrev: move logic out of get_short_sha1()
444 + (this branch uses lt/abbrev-auto.)
445 +
446 + Updates the way approximate count of total objects is computed
447 + while attempting to come up with a unique abbreviated object name,
448 + which in turn needs to estimate how many hexdigits are necessary to
449 + ensure uniqueness.
450 +
451 + Undecided.
452 +
453 +
454 +* jk/clone-copy-alternates-fix (2016-10-05) 1 commit
455 + (merged to 'next' on 2016-10-10 at 8154134c8c)
456 + + clone: detect errors in normalize_path_copy
457 +
458 + "git clone" of a local repository can be done at the filesystem
459 + level, but the codepath did not check errors while copying and
460 + adjusting the file that lists alternate object stores.
461 +
462 + Will merge to 'master'.
463 +
464 +
465 +* nd/commit-p-doc (2016-10-05) 1 commit
466 + (merged to 'next' on 2016-10-10 at 5a9996dd7b)
467 + + git-commit.txt: clarify --patch mode with pathspec
468 +
469 + Documentation for "git commit" was updated to clarify that "commit
470 + -p <paths>" adds to the current contents of the index to come up
471 + with what to commit.
472 +
473 + Will merge to 'master'.
474 +
475 +
476 * nd/ita-empty-commit (2016-09-28) 3 commits
477 - commit: don't be fooled by ita entries when creating initial commit
478 - diff-lib.c: enable --shift-ita in index_differs_from()
@@ -494,7 +504,8 @@ of the repositories listed at
504
505
506 * dt/http-empty-auth (2016-10-04) 1 commit
497 - - http: http.emptyauth should allow empty (not just NULL) usernames
507 + (merged to 'next' on 2016-10-10 at 10b7b0a6a5)
508 + + http: http.emptyauth should allow empty (not just NULL) usernames
509
510 http.emptyauth configuration is a way to allow an empty username to
511 pass when attempting to authenticate using mechanisms like
@@ -502,92 +513,88 @@ of the repositories listed at
513 (i.e. no username, no password) to CURLOPT_USERPWD, but did not do
514 the same when the username is explicitly set to an empty string.
515
505 - Will merge to 'next'.
516 + Will merge to 'master'.
517
518
519 * jc/diff-unique-abbrev-comments (2016-09-30) 1 commit
520 - diff_unique_abbrev(): document its assumption and limitation
521
522 + A bit more comments in a tricky code.
523
512 -* jk/quarantine-received-objects (2016-10-05) 5 commits
513 - - tmp-objdir: do not migrate files starting with '.'
514 - - tmp-objdir: put quarantine information in the environment
515 - - receive-pack: quarantine objects until pre-receive accepts
516 - - tmp-objdir: introduce API for temporary object directories
517 - - check_connected: accept an env argument
518 - (this branch uses jk/alt-odb-cleanup.)
519 -
520 - In order for the receiving end of "git push" to inspect the
521 - received history and decide to reject the push, the objects sent
522 - from the sending end need to be made available to the hook and
523 - the mechanism for the connectivity check, and this was done
524 - traditionally by storing the objects in the receiving repository
525 - and letting "git gc" to expire it. Instead, store the newly
526 - received objects in a temporary area, and make them available by
527 - reusing the alternate object store mechanism to them only while we
528 - decide if we accept the check, and once we decide, either migrate
529 - them to the repository or purge them immediately.
530 -
531 - Will merge to 'next' after whipping jk/alt-odb-cleanup into shape.
524 + Will merge to 'next'.
525
526
534 -* rs/qsort (2016-10-03) 6 commits
535 - (merged to 'next' on 2016-10-06 at 32a5bd3c88)
536 - + show-branch: use QSORT
537 - + use QSORT, part 2
538 - + coccicheck: use --all-includes by default
539 - + remove unnecessary check before QSORT
540 - + use QSORT
541 - + add QSORT
527 +* jk/quarantine-received-objects (2016-10-10) 5 commits
528 + (merged to 'next' on 2016-10-10 at 0fd3e3b2ef)
529 + + tmp-objdir: do not migrate files starting with '.'
530 + + tmp-objdir: put quarantine information in the environment
531 + + receive-pack: quarantine objects until pre-receive accepts
532 + + tmp-objdir: introduce API for temporary object directories
533 + + check_connected: accept an env argument
534 + (this branch uses jk/alt-odb-cleanup.)
535
543 - We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of
544 - the time third parameter is redundant. A new QSORT() macro lets us
545 - omit it.
536 + In order for the receiving end of "git push" to inspect the
537 + received history and decide to reject the push, the objects sent
538 + from the sending end need to be made available to the hook and
539 + the mechanism for the connectivity check, and this was done
540 + traditionally by storing the objects in the receiving repository
541 + and letting "git gc" to expire it. Instead, store the newly
542 + received objects in a temporary area, and make them available by
543 + reusing the alternate object store mechanism to them only while we
544 + decide if we accept the check, and once we decide, either migrate
545 + them to the repository or purge them immediately.
546
547 Will merge to 'master'.
548
549
550 -* jk/alt-odb-cleanup (2016-10-05) 19 commits
551 - - alternates: use fspathcmp to detect duplicates
552 - - sha1_file: always allow relative paths to alternates
553 - - count-objects: report alternates via verbose mode
554 - - fill_sha1_file: write into a strbuf
555 - - alternates: store scratch buffer as strbuf
556 - - fill_sha1_file: write "boring" characters
557 - - alternates: use a separate scratch space
558 - - alternates: encapsulate alt->base munging
559 - - alternates: provide helper for allocating alternate
560 - - alternates: provide helper for adding to alternates list
561 - - link_alt_odb_entry: refactor string handling
562 - - link_alt_odb_entry: handle normalize_path errors
563 - - fixup! t5613: clarify "too deep" recursion tests
564 - - t5613: clarify "too deep" recursion tests
565 - - t5613: do not chdir in main process
566 - - t5613: whitespace/style cleanups
567 - - t5613: use test_must_fail
568 - - t5613: drop test_valid_repo function
569 - - t5613: drop reachable_via function
550 +* jk/alt-odb-cleanup (2016-10-10) 18 commits
551 + (merged to 'next' on 2016-10-10 at d2ed6b6d21)
552 + + alternates: use fspathcmp to detect duplicates
553 + + sha1_file: always allow relative paths to alternates
554 + + count-objects: report alternates via verbose mode
555 + + fill_sha1_file: write into a strbuf
556 + + alternates: store scratch buffer as strbuf
557 + + fill_sha1_file: write "boring" characters
558 + + alternates: use a separate scratch space
559 + + alternates: encapsulate alt->base munging
560 + + alternates: provide helper for allocating alternate
561 + + alternates: provide helper for adding to alternates list
562 + + link_alt_odb_entry: refactor string handling
563 + + link_alt_odb_entry: handle normalize_path errors
564 + + t5613: clarify "too deep" recursion tests
565 + + t5613: do not chdir in main process
566 + + t5613: whitespace/style cleanups
567 + + t5613: use test_must_fail
568 + + t5613: drop test_valid_repo function
569 + + t5613: drop reachable_via function
570 (this branch is used by jk/quarantine-received-objects.)
571
572 - Will merge to 'next' after squashing the fixup! in.
572 + Codepaths involved in interacting alternate object store have
573 + been cleaned up.
574 +
575 + Will merge to 'master'.
576
577
575 -* va/i18n-perl-scripts (2016-09-25) 11 commits
578 +* va/i18n-perl-scripts (2016-10-10) 14 commits
579 - i18n: difftool: mark warnings for translation
580 - i18n: send-email: mark string with interpolation for translation
581 - i18n: send-email: mark warnings and errors for translation
582 - i18n: send-email: mark strings for translation
583 + - i18n: add--interactive: mark status words for translation
584 + - i18n: add--interactive: remove %patch_modes entries
585 - i18n: add--interactive: mark edit_hunk_manually message for translation
586 - i18n: add--interactive: i18n of help_patch_cmd
582 - - i18n: add--interactive: mark message for translation
587 + - i18n: add--interactive: mark patch prompt for translation
588 - i18n: add--interactive: mark plural strings
589 + - i18n: clean.c: match string with git-add--interactive.perl
590 - i18n: add--interactive: mark strings with interpolation for translation
585 - - i18n: add--interactive: mark simple here documents for translation
591 + - i18n: add--interactive: mark simple here-documents for translation
592 - i18n: add--interactive: mark strings for translation
593
594 Porcelain scripts written in Perl are getting internationalized.
595
590 - Waiting for comments.
596 + Waiting for review.
597 + cf. <20161010125449.7929-1-vascomalmeida@sapo.pt>
598
599
600 * jc/latin-1 (2016-09-26) 2 commits
@@ -614,23 +621,10 @@ of the repositories listed at
621 Waiting for a response to ping/squash.
622
623
617 -* jc/blame-reverse (2016-06-14) 2 commits
618 - (merged to 'next' on 2016-09-22 at d1a8e9ce99)
619 - + blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
620 - + blame: improve diagnosis for "--reverse NEW"
621 -
622 - It is a common mistake to say "git blame --reverse OLD path",
623 - expecting that the command line is dwimmed as if asking how lines
624 - in path in an old revision OLD have survived up to the current
625 - commit.
626 -
627 - Will merge to 'master'.
628 -
629 -
630 -* js/libify-require-clean-work-tree (2016-10-05) 6 commits
624 +* js/libify-require-clean-work-tree (2016-10-07) 6 commits
625 - wt-status: begin error messages with lower-case
626 - wt-status: teach has_{unstaged,uncommitted}_changes() about submodules
633 - - wt-status: export also the has_un{staged,committed}_changed()
627 + - wt-status: export also the has_un{staged,committed}_changes() functions
628 - wt-status: make the require_clean_work_tree() function reusable
629 - pull: make code more similar to the shell script again
630 - pull: drop confusing prefix parameter of die_on_unclean_work_tree()
@@ -642,7 +636,7 @@ of the repositories listed at
636 Will merge to 'next'.
637
638
645 -* bw/ls-files-recurse-submodules (2016-10-03) 4 commits
639 +* bw/ls-files-recurse-submodules (2016-10-10) 4 commits
640 - ls-files: add pathspec matching for submodules
641 - ls-files: pass through safe options for --recurse-submodules
642 - ls-files: optionally recurse into submodules
@@ -655,10 +649,10 @@ of the repositories listed at
649 side of a pipe that is read with xargs to work on all working tree
650 files from the top-level superproject.
651
658 - Looking good. Is this ready for 'next'?
652 + Will merge to 'next'.
653
654
661 -* ls/filter-process (2016-10-04) 14 commits
655 +* ls/filter-process (2016-10-10) 14 commits
656 - contrib/long-running-filter: add long running filter example
657 - convert: add filter.<driver>.process option
658 - convert: prepare filter.<driver>.process option
@@ -669,7 +663,7 @@ of the repositories listed at
663 - pkt-line: add packet_write_fmt_gently()
664 - pkt-line: extract set_packet_header()
665 - pkt-line: rename packet_write() to packet_write_fmt()
672 - - run-command: add wait_on_exit
666 + - run-command: add clean_on_exit_handler
667 - run-command: move check_pipe() from write_or_die to run_command
668 - convert: modernize tests
669 - convert: quote filter names in error messages
@@ -682,7 +676,8 @@ of the repositories listed at
676 paths, reducing the process creation overhead.
677
678
685 -* hv/submodule-not-yet-pushed-fix (2016-09-14) 2 commits
679 +* hv/submodule-not-yet-pushed-fix (2016-10-10) 3 commits
680 + - batch check whether submodule needs pushing into one call
681 - serialize collection of refs that contain submodule changes
682 - serialize collection of changed submodules
683
@@ -692,10 +687,8 @@ of the repositories listed at
687 project that does not have any submodule but have a reasonable
688 number of refs.
689
695 - The last two in the original series seem to break a few tests when
696 - queued to 'pu', and dropped for now.
697 -
698 - Waiting for a reroll.
690 + Waiting for review.
691 + cf. <cover.1475851621.git.hvoigt@hvoigt.net>
692
693
694 * sg/fix-versioncmp-with-common-suffix (2016-09-08) 5 commits
@@ -714,18 +707,7 @@ of the repositories listed at
707 cf. <20160908223727.Horde.jVOOJ278ssZ3qkyjkmyqZD-@webmail.informatik.kit.edu>
708
709
717 -* cp/completion-negative-refs (2016-08-24) 1 commit
718 - (merged to 'next' on 2016-09-22 at abd1585aa6)
719 - + completion: support excluding refs
720 -
721 - The command-line completion script (in contrib/) learned to
722 - complete "git cmd ^mas<HT>" to complete the negative end of
723 - reference to "git cmd ^master".
724 -
725 - Will merge to 'master'.
726 -
727 -
728 -* sb/push-make-submodule-check-the-default (2016-10-06) 2 commits
710 +* sb/push-make-submodule-check-the-default (2016-10-10) 2 commits
711 - push: change submodule default to check when submodules exist
712 - submodule add: extend force flag to add existing repos
713
@@ -735,45 +717,6 @@ of the repositories listed at
717 Will hold to wait for hv/submodule-not-yet-pushed-fix
718
719
738 -* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit
739 - (merged to 'next' on 2016-09-22 at 4449584c26)
740 - + imap-send: Tell cURL to use imap:// or imaps://
741 -
742 - When we started cURL to talk to imap server when a new enough
743 - version of cURL library is available, we forgot to explicitly add
744 - imap(s):// before the destination. To some folks, that didn't work
745 - and the library tried to make HTTP(s) requests instead.
746 -
747 - Will merge to 'master'.
748 -
749 -
750 -* jk/pack-objects-optim-mru (2016-08-11) 4 commits
751 - (merged to 'next' on 2016-09-21 at 97b919bdbd)
752 - + pack-objects: use mru list when iterating over packs
753 - + pack-objects: break delta cycles before delta-search phase
754 - + sha1_file: make packed_object_info public
755 - + provide an initializer for "struct object_info"
756 -
757 - Originally merged to 'next' on 2016-08-11
758 -
759 - "git pack-objects" in a repository with many packfiles used to
760 - spend a lot of time looking for/at objects in them; the accesses to
761 - the packfiles are now optimized by checking the most-recently-used
762 - packfile first.
763 -
764 - Will merge to 'master'.
765 -
766 -
767 -* dp/autoconf-curl-ssl (2016-06-28) 1 commit
768 - (merged to 'next' on 2016-09-22 at 9c5aeeced9)
769 - + ./configure.ac: detect SSL in libcurl using curl-config
770 -
771 - The ./configure script generated from configure.ac was taught how
772 - to detect support of SSL by libcurl better.
773 -
774 - Will merge to 'master'.
775 -
776 -
720 * jc/pull-rebase-ff (2016-07-28) 1 commit
721 - pull: fast-forward "pull --rebase=true"
722
@@ -804,49 +747,9 @@ of the repositories listed at
747 Will hold to see if people scream.
748
749
807 -* nd/shallow-deepen (2016-06-13) 27 commits
808 - (merged to 'next' on 2016-09-22 at f0cf3e3385)
809 - + fetch, upload-pack: --deepen=N extends shallow boundary by N commits
810 - + upload-pack: add get_reachable_list()
811 - + upload-pack: split check_unreachable() in two, prep for get_reachable_list()
812 - + t5500, t5539: tests for shallow depth excluding a ref
813 - + clone: define shallow clone boundary with --shallow-exclude
814 - + fetch: define shallow boundary with --shallow-exclude
815 - + upload-pack: support define shallow boundary by excluding revisions
816 - + refs: add expand_ref()
817 - + t5500, t5539: tests for shallow depth since a specific date
818 - + clone: define shallow clone boundary based on time with --shallow-since
819 - + fetch: define shallow boundary with --shallow-since
820 - + upload-pack: add deepen-since to cut shallow repos based on time
821 - + shallow.c: implement a generic shallow boundary finder based on rev-list
822 - + fetch-pack: use a separate flag for fetch in deepening mode
823 - + fetch-pack.c: mark strings for translating
824 - + fetch-pack: use a common function for verbose printing
825 - + fetch-pack: use skip_prefix() instead of starts_with()
826 - + upload-pack: move rev-list code out of check_non_tip()
827 - + upload-pack: make check_non_tip() clean things up on error
828 - + upload-pack: tighten number parsing at "deepen" lines
829 - + upload-pack: use skip_prefix() instead of starts_with()
830 - + upload-pack: move "unshallow" sending code out of deepen()
831 - + upload-pack: remove unused variable "backup"
832 - + upload-pack: move "shallow" sending code out of deepen()
833 - + upload-pack: move shallow deepen code out of receive_needs()
834 - + transport-helper.c: refactor set_helper_option()
835 - + remote-curl.c: convert fetch_git() to use argv_array
836 -
837 - The existing "git fetch --depth=<n>" option was hard to use
838 - correctly when making the history of an existing shallow clone
839 - deeper. A new option, "--deepen=<n>", has been added to make this
840 - easier to use. "git clone" also learned "--shallow-since=<date>"
841 - and "--shallow-exclude=<tag>" options to make it easier to specify
842 - "I am interested only in the recent N months worth of history" and
843 - "Give me only the history since that version".
844 -
845 - Will merge to 'master'.
846 -
847 -
750 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
849 - - merge: drop 'git merge <message> HEAD <commit>' syntax
751 + (merged to 'next' on 2016-10-11 at 8928c8b9b3)
752 + + merge: drop 'git merge <message> HEAD <commit>' syntax
753
754 Stop supporting "git merge <message> HEAD <commit>" syntax that has
755 been deprecated since October 2007, and issues a deprecation
@@ -856,13 +759,181 @@ of the repositories listed at
759 which needs to be fixed before this final step can proceed.
760 cf. <5671DB28.8020901@kdbg.org>
761
859 - Will merge to 'next'.
762 + Will merge to 'master'.
763
764 --------------------------------------------------
765 [Discarded]
766
864 -* jn/fix-connect-unexpected-hangup-diag (2016-09-08) 1 commit
865 - . connect: tighten check for unexpected early hang up
767 +* jc/attr (2016-05-25) 18 commits
768 + . attr: support quoting pathname patterns in C style
769 + . attr: expose validity check for attribute names
770 + . attr: add counted string version of git_attr()
771 + . attr: add counted string version of git_check_attr()
772 + . attr: retire git_check_attrs() API
773 + . attr: convert git_check_attrs() callers to use the new API
774 + . attr: convert git_all_attrs() to use "struct git_attr_check"
775 + . attr: (re)introduce git_check_attr() and struct git_attr_check
776 + . attr: rename function and struct related to checking attributes
777 + . attr.c: plug small leak in parse_attr_line()
778 + . attr.c: tighten constness around "git_attr" structure
779 + . attr.c: simplify macroexpand_one()
780 + . attr.c: mark where #if DEBUG ends more clearly
781 + . attr.c: complete a sentence in a comment
782 + . attr.c: explain the lack of attr-name syntax check in parse_attr()
783 + . attr.c: update a stale comment on "struct match_attr"
784 + . attr.c: use strchrnul() to scan for one line
785 + . commit.c: use strchrnul() to scan for one line
786 + (this branch is used by jc/attr-more, sb/pathspec-label and sb/submodule-default-paths.)
787 +
788 + The attributes API has been updated so that it can later be
789 + optimized using the knowledge of which attributes are queried.
790 +
791 + I wanted to polish this topic further to make the attribute
792 + subsystem thread-ready, but because other topics depend on this
793 + topic and they do not (yet) need it to be thread-ready.
794 +
795 + As the authors of topics that depend on this seem not in a hurry,
796 + let's discard this and dependent topics and restart them some other
797 + day.
798 +
799 +
800 +* jc/attr-more (2016-06-09) 8 commits
801 + . attr.c: outline the future plans by heavily commenting
802 + . attr.c: always pass check[] to collect_some_attrs()
803 + . attr.c: introduce empty_attr_check_elems()
804 + . attr.c: correct ugly hack for git_all_attrs()
805 + . attr.c: rename a local variable check
806 + . fixup! d5ad6c13
807 + . attr.c: pass struct git_attr_check down the callchain
808 + . attr.c: add push_stack() helper
809 + (this branch uses jc/attr; is tangled with sb/pathspec-label and sb/submodule-default-paths.)
810 +
811 + The beginning of long and tortuous journey to clean-up attribute
812 + subsystem implementation.
813 +
814 + Needs to be redone.
815 +
816 +
817 +* sb/submodule-default-paths (2016-06-20) 5 commits
818 + . completion: clone can recurse into submodules
819 + . clone: add --init-submodule=<pathspec> switch
820 + . submodule update: add `--init-default-path` switch
821 + . Merge branch 'sb/pathspec-label' into sb/submodule-default-paths
822 + . Merge branch 'jc/attr' into sb/submodule-default-paths
823 + (this branch uses jc/attr and sb/pathspec-label; is tangled with jc/attr-more.)
824 +
825 + Allow specifying the set of submodules the user is interested in on
826 + the command line of "git clone" that clones the superproject.
827 +
828 +
829 +* sb/pathspec-label (2016-06-03) 6 commits
830 + . pathspec: disable preload-index when attribute pathspec magic is in use
831 + . pathspec: allow escaped query values
832 + . pathspec: allow querying for attributes
833 + . pathspec: move prefix check out of the inner loop
834 + . pathspec: move long magic parsing out of prefix_pathspec
835 + . Documentation: fix a typo
836 + (this branch is used by sb/submodule-default-paths; uses jc/attr; is tangled with jc/attr-more.)
837 +
838 + The pathspec mechanism learned ":(attr:X)$pattern" pathspec magic
839 + to limit paths that match $pattern further by attribute settings.
840 + The preload-index mechanism is disabled when the new pathspec magic
841 + is in use (at least for now), because the attribute subsystem is
842 + not thread-ready.
843 +
844 +
845 +* sb/bisect (2016-04-15) 22 commits
846 + . SQUASH???
847 + . bisect: get back halfway shortcut
848 + . bisect: compute best bisection in compute_relevant_weights()
849 + . bisect: use a bottom-up traversal to find relevant weights
850 + . bisect: prepare for different algorithms based on find_all
851 + . bisect: rename count_distance() to compute_weight()
852 + . bisect: make total number of commits global
853 + . bisect: introduce distance_direction()
854 + . bisect: extract get_distance() function from code duplication
855 + . bisect: use commit instead of commit list as arguments when appropriate
856 + . bisect: replace clear_distance() by unique markers
857 + . bisect: use struct node_data array instead of int array
858 + . bisect: get rid of recursion in count_distance()
859 + . bisect: make algorithm behavior independent of DEBUG_BISECT
860 + . bisect: make bisect compile if DEBUG_BISECT is set
861 + . bisect: plug the biggest memory leak
862 + . bisect: add test for the bisect algorithm
863 + . t6030: generalize test to not rely on current implementation
864 + . t: use test_cmp_rev() where appropriate
865 + . t/test-lib-functions.sh: generalize test_cmp_rev
866 + . bisect: allow 'bisect run' if no good commit is known
867 + . bisect: write about `bisect next` in documentation
868 +
869 + The internal algorithm used in "git bisect" to find the next commit
870 + to check has been optimized greatly.
871 +
872 + Was expecting a reroll, but now pb/bisect topic starts removinging
873 + more and more parts from git-bisect.sh, this needs to see a fresh
874 + reroll.
875 +
876 + cf. <1460294354-7031-1-git-send-email-s-beyer@gmx.net>
877 +
878 +
879 +* sg/completion-updates (2016-02-28) 21 commits
880 + . completion: cache the path to the repository
881 + . completion: extract repository discovery from __gitdir()
882 + . completion: don't guard git executions with __gitdir()
883 + . completion: consolidate silencing errors from git commands
884 + . completion: don't use __gitdir() for git commands
885 + . completion: respect 'git -C <path>'
886 + . completion: fix completion after 'git -C <path>'
887 + . completion: don't offer commands when 'git --opt' needs an argument
888 + . rev-parse: add '--absolute-git-dir' option
889 + . completion: list short refs from a remote given as a URL
890 + . completion: don't list 'HEAD' when trying refs completion outside of a repo
891 + . completion: list refs from remote when remote's name matches a directory
892 + . completion: respect 'git --git-dir=<path>' when listing remote refs
893 + . completion: fix most spots not respecting 'git --git-dir=<path>'
894 + . completion: ensure that the repository path given on the command line exists
895 + . completion tests: add tests for the __git_refs() helper function
896 + . completion tests: check __gitdir()'s output in the error cases
897 + . completion tests: consolidate getting path of current working directory
898 + . completion tests: make the $cur variable local to the test helper functions
899 + . completion tests: don't add test cruft to the test repository
900 + . completion: improve __git_refs()'s in-code documentation
901 +
902 + Has been waiting for a reroll for too long.
903 + cf. <1456754714-25237-1-git-send-email-szeder@ira.uka.de>
904 +
905 +
906 +* pb/bisect (2016-08-23) 27 commits
907 + . bisect--helper: remove the dequote in bisect_start()
908 + . bisect--helper: retire `--bisect-auto-next` subcommand
909 + . bisect--helper: retire `--bisect-autostart` subcommand
910 + . bisect--helper: retire `--check-and-set-terms` subcommand
911 + . bisect--helper: retire `--bisect-write` subcommand
912 + . bisect--helper: `bisect_replay` shell function in C
913 + . bisect--helper: `bisect_log` shell function in C
914 + . bisect--helper: retire `--write-terms` subcommand
915 + . bisect--helper: retire `--check-expected-revs` subcommand
916 + . bisect--helper: `bisect_state` & `bisect_head` shell function in C
917 + . bisect--helper: `bisect_autostart` shell function in C
918 + . bisect--helper: retire `--next-all` subcommand
919 + . bisect--helper: retire `--bisect-clean-state` subcommand
920 + . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
921 + . bisect--helper: `bisect_start` shell function partially in C
922 + . bisect--helper: `get_terms` & `bisect_terms` shell function in C
923 + . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
924 + . bisect--helper: `check_and_set_terms` shell function in C
925 + . bisect--helper: `bisect_write` shell function in C
926 + . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
927 + . bisect--helper: `bisect_reset` shell function in C
928 + . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
929 + . t6030: explicitly test for bisection cleanup
930 + . bisect--helper: `bisect_clean_state` shell function in C
931 + . bisect--helper: `write_terms` shell function in C
932 + . bisect: rewrite `check_term_format` shell function in C
933 + . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
934 +
935 + GSoC "bisect" topic.
936
867 - Now part of jt/accept-capability-advertisement-when-fetching-from-void
868 - topic.
937 + I'd prefer to see early part solidified so that reviews can focus
938 + on the later part that is still in flux. We are almost there but
939 + not quite yet.