What's cooking (2016/10 #04)
Junio C Hamano committed
Oct 17, 2016 at 15:20 UTC
810f4b4ba8e7a50dd9a178228e6fac987e718ffc
1 file changed
+390
-517
whats-cooking.txt
+390
-517
@@ -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, #03; Tue, 11)
4
-X-master-at: 8a36cd87b7c85a651ab388d403629865ffa3ba0d
5
-X-next-at: 28fc3e53f99219d01faa8a76452eac5ca9d631c2
3
+Subject: What's cooking in git.git (Oct 2016, #04; Mon, 17)
4
+X-master-at: 659889482ac63411daea38b2c3d127842ea04e4d
5
+X-next-at: 6021889cc14df07d4366829367d2c4a11d1eaa56
6
7
-What's cooking in git.git (Oct 2016, #03; Tue, 11)
7
+What's cooking in git.git (Oct 2016, #04; Mon, 17)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,12 +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
-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
-
15
You can find the changes described here in the integration branches
16
of the repositories listed at
17
@@ -26,126 +20,6 @@ of the repositories listed at
20
--------------------------------------------------
21
[Graduated to "master"]
22
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
-
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
-
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
-
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
-
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
-
52
- The ./configure script generated from configure.ac was taught how
53
- to detect support of SSL by libcurl better.
54
-
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
-
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
-
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
-
74
- Originally merged to 'next' on 2016-08-11
75
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
146
- Waiting for review.
147
-
148
-
23
* da/mergetool-diff-order (2016-10-11) 4 commits
24
(merged to 'next' on 2016-10-11 at 3d1b98c16d)
25
+ mergetool: honor -O<orderfile>
@@ -156,7 +30,72 @@ of the repositories listed at
30
"git mergetool" learned to honor "-O<orderfile>" to control the
31
order of paths to present to the end user.
32
159
- Will merge to 'master'.
33
+
34
+* dt/http-empty-auth (2016-10-04) 1 commit
35
+ (merged to 'next' on 2016-10-10 at 10b7b0a6a5)
36
+ + http: http.emptyauth should allow empty (not just NULL) usernames
37
+
38
+ http.emptyauth configuration is a way to allow an empty username to
39
+ pass when attempting to authenticate using mechanisms like
40
+ Kerberos. We took an unspecified (NULL) username and sent ":"
41
+ (i.e. no username, no password) to CURLOPT_USERPWD, but did not do
42
+ the same when the username is explicitly set to an empty string.
43
+
44
+
45
+* jk/alt-odb-cleanup (2016-10-10) 18 commits
46
+ (merged to 'next' on 2016-10-10 at d2ed6b6d21)
47
+ + alternates: use fspathcmp to detect duplicates
48
+ + sha1_file: always allow relative paths to alternates
49
+ + count-objects: report alternates via verbose mode
50
+ + fill_sha1_file: write into a strbuf
51
+ + alternates: store scratch buffer as strbuf
52
+ + fill_sha1_file: write "boring" characters
53
+ + alternates: use a separate scratch space
54
+ + alternates: encapsulate alt->base munging
55
+ + alternates: provide helper for allocating alternate
56
+ + alternates: provide helper for adding to alternates list
57
+ + link_alt_odb_entry: refactor string handling
58
+ + link_alt_odb_entry: handle normalize_path errors
59
+ + t5613: clarify "too deep" recursion tests
60
+ + t5613: do not chdir in main process
61
+ + t5613: whitespace/style cleanups
62
+ + t5613: use test_must_fail
63
+ + t5613: drop test_valid_repo function
64
+ + t5613: drop reachable_via function
65
+ (this branch is used by jk/quarantine-received-objects.)
66
+
67
+ Codepaths involved in interacting alternate object store have
68
+ been cleaned up.
69
+
70
+
71
+* jk/clone-copy-alternates-fix (2016-10-05) 1 commit
72
+ (merged to 'next' on 2016-10-10 at 8154134c8c)
73
+ + clone: detect errors in normalize_path_copy
74
+
75
+ "git clone" of a local repository can be done at the filesystem
76
+ level, but the codepath did not check errors while copying and
77
+ adjusting the file that lists alternate object stores.
78
+
79
+
80
+* jk/quarantine-received-objects (2016-10-10) 5 commits
81
+ (merged to 'next' on 2016-10-10 at 0fd3e3b2ef)
82
+ + tmp-objdir: do not migrate files starting with '.'
83
+ + tmp-objdir: put quarantine information in the environment
84
+ + receive-pack: quarantine objects until pre-receive accepts
85
+ + tmp-objdir: introduce API for temporary object directories
86
+ + check_connected: accept an env argument
87
+ (this branch uses jk/alt-odb-cleanup.)
88
+
89
+ In order for the receiving end of "git push" to inspect the
90
+ received history and decide to reject the push, the objects sent
91
+ from the sending end need to be made available to the hook and
92
+ the mechanism for the connectivity check, and this was done
93
+ traditionally by storing the objects in the receiving repository
94
+ and letting "git gc" to expire it. Instead, store the newly
95
+ received objects in a temporary area, and make them available by
96
+ reusing the alternate object store mechanism to them only while we
97
+ decide if we accept the check, and once we decide, either migrate
98
+ them to the repository or purge them immediately.
99
100
101
* jk/ref-symlink-loop (2016-10-10) 2 commits
@@ -167,48 +106,28 @@ of the repositories listed at
106
A stray symbolic link in $GIT_DIR/refs/ directory could make name
107
resolution loop forever, which has been corrected.
108
170
- Will merge to 'master'.
109
110
+* js/regexec-buf (2016-10-10) 1 commit
111
+ (merged to 'next' on 2016-10-11 at 466a26548c)
112
+ + configure.ac: improve description of NO_REGEX test
113
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
114
+ A follow-up to an already graduated topic.
115
201
- Update of the sequencer codebase to make it reusable to reimplement
202
- "rebase -i" continues.
116
204
- Waiting for review.
117
+* js/reset-usage (2016-10-11) 1 commit
118
+ (merged to 'next' on 2016-10-11 at 61ad4a7c0e)
119
+ + reset: fix usage
120
121
+ Message fix-up.
122
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
123
211
- Will merge to 'master'.
124
+* nd/commit-p-doc (2016-10-05) 1 commit
125
+ (merged to 'next' on 2016-10-10 at 5a9996dd7b)
126
+ + git-commit.txt: clarify --patch mode with pathspec
127
+
128
+ Documentation for "git commit" was updated to clarify that "commit
129
+ -p <paths>" adds to the current contents of the index to come up
130
+ with what to commit.
131
132
133
* rs/cocci (2016-10-10) 2 commits
@@ -218,98 +137,158 @@ of the repositories listed at
137
138
Code cleanup.
139
140
+
141
+* rs/pretty-format-color-doc-fix (2016-10-11) 1 commit
142
+ (merged to 'next' on 2016-10-11 at f0ae64bcbd)
143
+ + pretty: fix document link for color specification
144
+
145
+ Small doc update.
146
+
147
+
148
+* sb/submodule-config-doc-drop-path (2016-10-11) 1 commit
149
+ (merged to 'next' on 2016-10-11 at 28fc3e53f9)
150
+ + documentation: improve submodule.<name>.{url, path} description
151
+
152
+ The "submodule.<name>.path" stored in .gitmodules is never copied
153
+ to .git/config and such a key in .git/config has no meaning, but
154
+ the documentation described it and submodule.<name>.url next to
155
+ each other as if both belong to .git/config. This has been fixed.
156
+
157
+--------------------------------------------------
158
+[New Topics]
159
+
160
+* dk/worktree-dup-checkout-with-bare-is-ok (2016-10-14) 1 commit
161
+ (merged to 'next' on 2016-10-17 at 24594d3e56)
162
+ + worktree: allow the main brach of a bare repository to be checked out
163
+
164
+ In a worktree connected to a repository elsewhere, created via "git
165
+ worktree", "git checkout" attempts to protect users from confusion
166
+ by refusing to check out a branch that is already checked out in
167
+ another worktree. However, this also prevented checking out a
168
+ branch, which is designated as the primary branch of a bare
169
+ reopsitory, in a worktree that is connected to the bare
170
+ repository. The check has been corrected to allow it.
171
+
172
Will merge to 'master'.
173
174
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
175
+* jc/cocci-xstrdup-or-null (2016-10-12) 1 commit
176
+ (merged to 'next' on 2016-10-17 at 55ceaa465a)
177
+ + cocci: refactor common patterns to use xstrdup_or_null()
178
229
- A minor regression fix for "git submodule".
179
+ Code cleanup.
180
181
Will merge to 'master'.
182
183
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
184
+* tb/convert-stream-check (2016-10-12) 2 commits
185
+ - convert.c: stream and fast search for binary
186
+ - read-cache: factor out get_sha1_from_index() helper
187
243
- "git tag" and "git verify-tag" learned to put GPG verification
244
- status in their "--format=<placeholders>" output format.
188
+ End-of-line conversion sometimes needs to see if the current blob
189
+ in the index has NULs and CRs to base its decision. We used to
190
+ always get a full statistics over the blob, but in many cases we
191
+ can return early when we have seen "enough" (e.g. if we see a
192
+ single NUL, the blob will be handled as binary). The codepaths
193
+ have been optimized by using streaming interface.
194
246
- Is this ready for 'next'?
195
+ Waiting for review.
196
197
249
-* js/reset-usage (2016-10-11) 1 commit
250
- (merged to 'next' on 2016-10-11 at 61ad4a7c0e)
251
- + reset: fix usage
198
+* jk/ambiguous-short-object-names (2016-10-12) 1 commit
199
+ - t1512: become resilient to GETTEXT_POISON build
200
253
- Will merge to 'master'.
201
+ A test fixup to recently graduated topic.
202
203
+ Will merge to 'next'.
204
256
-* mm/credential-libsecret (2016-10-11) 1 commit
257
- - contrib: add credential helper for libsecret
205
+
206
+* jk/merge-base-fork-point-without-reflog (2016-10-12) 1 commit
207
+ - merge-base: handle --fork-point without reflog
208
+
209
+ "git rebase" immediately after "git clone" failed to find the fork
210
+ point from the upstream.
211
212
Will merge to 'next'.
213
214
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
215
+* jk/upload-pack-use-prio-queue (2016-10-11) 1 commit
216
+ - upload-pack: use priority queue in reachable() check
217
266
- Will merge to 'master'.
218
+ Code clean-up and performance improvement to reduce use of
219
+ timestamp-ordered commit-list by replacing it with a priority
220
+ queue.
221
222
+ Will merge to 'next'.
223
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()
283
- - attr: add counted string version of git_check_attr()
284
- - attr: retire git_check_attrs() API
285
- - attr: convert git_check_attrs() callers to use the new API
286
- - attr: convert git_all_attrs() to use "struct git_attr_check"
287
- - attr: (re)introduce git_check_attr() and struct git_attr_check
288
- - attr: rename function and struct related to checking attributes
289
- - attr.c: plug small leak in parse_attr_line()
290
- - attr.c: tighten constness around "git_attr" structure
291
- - attr.c: simplify macroexpand_one()
292
- - attr.c: mark where #if DEBUG ends more clearly
293
- - attr.c: complete a sentence in a comment
294
- - attr.c: explain the lack of attr-name syntax check in parse_attr()
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
224
299
- The attributes API has been updated so that it can later be
300
- optimized using the knowledge of which attributes are queried.
225
+* jk/fetch-quick-tag-following (2016-10-14) 1 commit
226
+ - fetch: use "quick" has_sha1_file for tag following
227
228
+ When fetching from a remote that has many tags that are irrelevant
229
+ to branches we are following, we used to waste way too many cycles
230
+ when checking if the object pointed at by a tag (that we are not
231
+ going to fetch!) exists in our repository too carefully.
232
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
233
+ Will merge to 'next'.
234
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.
235
312
- Will merge to 'master'.
236
+* jt/trailer-with-cruft (2016-10-14) 6 commits
237
+ - trailer: support values folded to multiple lines
238
+ - trailer: allow non-trailers in trailer block
239
+ - trailer: make args have their own struct
240
+ - trailer: streamline trailer item create and add
241
+ - trailer: use list.h for doubly-linked list
242
+ - trailer: improve const correctness
243
+
244
+ Update "interpret-trailers" machinery and teaches it that people in
245
+ real world write all sorts of crufts in the "trailer" that was
246
+ originally designed to have the neat-o "Mail-Header: like thing"
247
+ and nothing else.
248
+
249
+ Waiting for review.
250
+
251
+
252
+* mm/send-email-cc-cruft-after-address (2016-10-14) 1 commit
253
+ - parse_mailboxes: accept extra text after <...> address
254
+
255
+ "git send-email" attempts to pick up valid e-mails from the
256
+ trailers, but people in real world write non-addresses there, like
257
+ "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
258
+ on the availability and vintage of Mail::Address perl module.
259
+
260
+ Will merge to 'next'.
261
+
262
+
263
+* va/i18n (2016-10-17) 7 commits
264
+ - i18n: diff: mark warnings for translation
265
+ - i18n: credential-cache--daemon: mark advice for translation
266
+ - i18n: convert mark error messages for translation
267
+ - i18n: apply: mark error message for translation
268
+ - i18n: apply: mark error messages for translation
269
+ - i18n: apply: mark info messages for translation
270
+ - i18n: apply: mark plural string for translation
271
+
272
+ More i18n.
273
+
274
+ Will merge to 'next'.
275
+
276
+
277
+* jk/tighten-alloc (2016-10-17) 2 commits
278
+ - inline xalloc_flex() into FLEXPTR_ALLOC_MEM
279
+ - avoid pointer arithmetic involving NULL in FLEX_ALLOC_MEM
280
+
281
+ Protect our code from over-eager compilers.
282
+
283
+ Will merge to 'next'.
284
+
285
+
286
+* pb/test-parse-options-expect (2016-10-17) 1 commit
287
+ - t0040: convert all possible tests to use `test-parse-options --expect`
288
+
289
+ Test clean-up.
290
+
291
+ Will merge to 'next'.
292
293
--------------------------------------------------
294
[Stalled]
@@ -427,16 +406,170 @@ of the repositories listed at
406
--------------------------------------------------
407
[Cooking]
408
409
+* pb/bisect (2016-10-14) 28 commits
410
+ - SQUASH???
411
+ - bisect--helper: remove the dequote in bisect_start()
412
+ - bisect--helper: retire `--bisect-auto-next` subcommand
413
+ - bisect--helper: retire `--bisect-autostart` subcommand
414
+ - bisect--helper: retire `--bisect-write` subcommand
415
+ - bisect--helper: `bisect_replay` shell function in C
416
+ - bisect--helper: `bisect_log` shell function in C
417
+ - bisect--helper: retire `--write-terms` subcommand
418
+ - bisect--helper: retire `--check-expected-revs` subcommand
419
+ - bisect--helper: `bisect_state` & `bisect_head` shell function in C
420
+ - bisect--helper: `bisect_autostart` shell function in C
421
+ - bisect--helper: retire `--next-all` subcommand
422
+ - bisect--helper: retire `--bisect-clean-state` subcommand
423
+ - bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
424
+ - t6030: no cleanup with bad merge base
425
+ - bisect--helper: `bisect_start` shell function partially in C
426
+ - bisect--helper: `get_terms` & `bisect_terms` shell function in C
427
+ - bisect--helper: `bisect_next_check` & bisect_voc shell function in C
428
+ - bisect--helper: `check_and_set_terms` shell function in C
429
+ - bisect--helper: `bisect_write` shell function in C
430
+ - bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
431
+ - bisect--helper: `bisect_reset` shell function in C
432
+ - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
433
+ - t6030: explicitly test for bisection cleanup
434
+ - bisect--helper: `bisect_clean_state` shell function in C
435
+ - bisect--helper: `write_terms` shell function in C
436
+ - bisect: rewrite `check_term_format` shell function in C
437
+ - bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
438
+
439
+ GSoC "bisect" topic.
440
+
441
+
442
+* ab/gitweb-abbrev-links (2016-10-14) 3 commits
443
+ (merged to 'next' on 2016-10-17 at 4868def05e)
444
+ + gitweb: link to "git describe"'d commits in log messages
445
+ + gitweb: link to 7-char+ SHA-1s, not only 8-char+
446
+ + gitweb: fix a typo in a comment
447
+
448
+ In addition to purely abbreviated commit object names, "gitweb"
449
+ learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787)
450
+ into clickable links in its output.
451
+
452
+ Will merge to 'master'.
453
+
454
+
455
+* js/prepare-sequencer (2016-10-17) 25 commits
456
+ - sequencer: mark all error messages for translation
457
+ - sequencer: start error messages consistently with lower case
458
+ - sequencer: quote filenames in error messages
459
+ - sequencer: mark action_name() for translation
460
+ - sequencer: remove overzealous assumption in rebase -i mode
461
+ - sequencer: refactor write_message()
462
+ - sequencer: left-trim lines read from the script
463
+ - sequencer: do not try to commit when there were merge conflicts
464
+ - sequencer: support cleaning up commit messages
465
+ - sequencer: support amending commits
466
+ - sequencer: allow editing the commit message on a case-by-case basis
467
+ - sequencer: introduce a helper to read files written by scripts
468
+ - sequencer: prepare for rebase -i's commit functionality
469
+ - sequencer: remember the onelines when parsing the todo file
470
+ - sequencer: get rid of the subcommand field
471
+ - sequencer: avoid completely different messages for different actions
472
+ - sequencer: strip CR from the todo script
473
+ - sequencer: completely revamp the "todo" script parsing
474
+ - sequencer: refactor the code to obtain a short commit name
475
+ - sequencer: future-proof read_populate_todo()
476
+ - sequencer: eventually release memory allocated for the option values
477
+ - sequencer: future-proof remove_sequencer_state()
478
+ - sequencer: avoid unnecessary indirection
479
+ - sequencer: use memoized sequencer directory path
480
+ - sequencer: use static initializers for replay_opts
481
+
482
+ Update of the sequencer codebase to make it reusable to reimplement
483
+ "rebase -i" continues.
484
+
485
+ Waiting for review.
486
+
487
+
488
+* sb/submodule-ignore-trailing-slash (2016-10-10) 2 commits
489
+ (merged to 'next' on 2016-10-11 at e37425ed17)
490
+ + submodule: ignore trailing slash in relative url
491
+ + submodule: ignore trailing slash on superproject URL
492
+
493
+ A minor regression fix for "git submodule".
494
+
495
+ It seems that POSIX emulation layer of Windows is not cooperating;
496
+ this may have to wait (or tentatively reverted in Windows port) for
497
+ the resolution of the issue.
498
+
499
+ cf. <alpine.DEB.2.20.1610131255001.197091@virtualbox>
500
+
501
+
502
+* st/verify-tag (2016-10-10) 7 commits
503
+ - t/t7004-tag: Add --format specifier tests
504
+ - t/t7030-verify-tag: Add --format specifier tests
505
+ - builtin/tag: add --format argument for tag -v
506
+ - builtin/verify-tag: add --format to verify-tag
507
+ - tag: add format specifier to gpg_verify_tag
508
+ - ref-filter: add function to print single ref_array_item
509
+ - gpg-interface, tag: add GPG_VERIFY_QUIET flag
510
+
511
+ "git tag" and "git verify-tag" learned to put GPG verification
512
+ status in their "--format=<placeholders>" output format.
513
+
514
+ Is this ready for 'next'?
515
+
516
+
517
+* mm/credential-libsecret (2016-10-11) 1 commit
518
+ (merged to 'next' on 2016-10-17 at 1b4af03ba4)
519
+ + contrib: add credential helper for libsecret
520
+
521
+ A new credential helper that talks via "libsecret" with
522
+ implementations of XDG Secret Service API has been added to
523
+ contrib/credential/.
524
+
525
+ Will merge to 'master'.
526
+
527
+
528
+* sb/attr (2016-10-11) 28 commits
529
+ - attr: convert to new threadsafe API
530
+ - attr: make git_check_attr_counted static
531
+ - attr: make git_attr_counted static
532
+ - attr.c: outline the future plans by heavily commenting
533
+ - attr.c: always pass check[] to collect_some_attrs()
534
+ - attr.c: introduce empty_attr_check_elems()
535
+ - attr.c: correct ugly hack for git_all_attrs()
536
+ - attr.c: rename a local variable check
537
+ - attr.c: pass struct git_attr_check down the callchain
538
+ - attr.c: add push_stack() helper
539
+ - attr: support quoting pathname patterns in C style
540
+ - attr: expose validity check for attribute names
541
+ - attr: add counted string version of git_attr()
542
+ - attr: add counted string version of git_check_attr()
543
+ - attr: retire git_check_attrs() API
544
+ - attr: convert git_check_attrs() callers to use the new API
545
+ - attr: convert git_all_attrs() to use "struct git_attr_check"
546
+ - attr: (re)introduce git_check_attr() and struct git_attr_check
547
+ - attr: rename function and struct related to checking attributes
548
+ - attr.c: plug small leak in parse_attr_line()
549
+ - attr.c: tighten constness around "git_attr" structure
550
+ - attr.c: simplify macroexpand_one()
551
+ - attr.c: mark where #if DEBUG ends more clearly
552
+ - attr.c: complete a sentence in a comment
553
+ - attr.c: explain the lack of attr-name syntax check in parse_attr()
554
+ - attr.c: update a stale comment on "struct match_attr"
555
+ - attr.c: use strchrnul() to scan for one line
556
+ - commit.c: use strchrnul() to scan for one line
557
+
558
+ The attributes API has been updated so that it can later be
559
+ optimized using the knowledge of which attributes are queried.
560
+
561
+
562
* 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
563
+ (merged to 'next' on 2016-10-17 at ecbdc57d77)
564
+ + diff: introduce diff.wsErrorHighlight option
565
+ + diff.c: move ws-error-highlight parsing helpers up
566
+ + diff.c: refactor parse_ws_error_highlight()
567
+ + t4015: split out the "setup" part of ws-error-highlight test
568
569
"git diff/log --ws-error-highlight=<kind>" lacked the corresponding
570
configuration variable to set it by default.
571
439
- Will merge to 'next'.
572
+ Will merge to 'master'.
573
574
575
* jk/abbrev-auto (2016-10-03) 1 commit
@@ -451,28 +584,6 @@ of the repositories listed at
584
Undecided.
585
586
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
-
587
* nd/ita-empty-commit (2016-09-28) 3 commits
588
- commit: don't be fooled by ita entries when creating initial commit
589
- diff-lib.c: enable --shift-ita in index_differs_from()
@@ -503,75 +614,12 @@ of the repositories listed at
614
Will hold to see if people scream.
615
616
506
-* dt/http-empty-auth (2016-10-04) 1 commit
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
512
- Kerberos. We took an unspecified (NULL) username and sent ":"
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
-
516
- Will merge to 'master'.
517
-
518
-
617
* jc/diff-unique-abbrev-comments (2016-09-30) 1 commit
520
- - diff_unique_abbrev(): document its assumption and limitation
618
+ (merged to 'next' on 2016-10-17 at c7fb286102)
619
+ + diff_unique_abbrev(): document its assumption and limitation
620
621
A bit more comments in a tricky code.
622
524
- Will merge to 'next'.
525
-
526
-
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
-
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-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
- Codepaths involved in interacting alternate object store have
573
- been cleaned up.
574
-
623
Will merge to 'master'.
624
625
@@ -609,38 +657,40 @@ of the repositories listed at
657
Will hold to see if people scream.
658
659
612
-* mg/gpg-richer-status (2016-10-06) 2 commits
613
- - SQUASH: gpg-interface: use more status letters
614
- - gpg-interface: use more status letters
660
+* mg/gpg-richer-status (2016-10-12) 1 commit
661
+ (merged to 'next' on 2016-10-17 at 8843a6a8be)
662
+ + gpg-interface: use more status letters
663
664
The GPG verification status shown in "%G?" pretty format specifier
665
was not rich enough to differentiate a signature made by an expired
666
key, a signature made by a revoked key, etc. New output letters
667
have been assigned to express them.
668
621
- Waiting for a response to ping/squash.
669
+ Will merge to 'master'.
670
671
672
* 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
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()
673
+ (merged to 'next' on 2016-10-17 at f5c20df38b)
674
+ + wt-status: begin error messages with lower-case
675
+ + wt-status: teach has_{unstaged,uncommitted}_changes() about submodules
676
+ + wt-status: export also the has_un{staged,committed}_changes() functions
677
+ + wt-status: make the require_clean_work_tree() function reusable
678
+ + pull: make code more similar to the shell script again
679
+ + pull: drop confusing prefix parameter of die_on_unclean_work_tree()
680
681
The require_clean_work_tree() helper was recreated in C when "git
682
pull" was rewritten from shell; the helper is now made available to
683
other callers in preparation for upcoming "rebase -i" work.
684
636
- Will merge to 'next'.
685
+ Will merge to 'master'.
686
687
688
* 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
643
- - git: make super-prefix option
689
+ (merged to 'next' on 2016-10-17 at f0e398946a)
690
+ + ls-files: add pathspec matching for submodules
691
+ + ls-files: pass through safe options for --recurse-submodules
692
+ + ls-files: optionally recurse into submodules
693
+ + git: make super-prefix option
694
695
"git ls-files" learned "--recurse-submodules" option that can be
696
used to get a listing of tracked files across submodules (i.e. this
@@ -649,10 +699,10 @@ of the repositories listed at
699
side of a pipe that is read with xargs to work on all working tree
700
files from the top-level superproject.
701
652
- Will merge to 'next'.
702
+ Will merge to 'master'.
703
704
655
-* ls/filter-process (2016-10-10) 14 commits
705
+* ls/filter-process (2016-10-17) 14 commits
706
- contrib/long-running-filter: add long running filter example
707
- convert: add filter.<driver>.process option
708
- convert: prepare filter.<driver>.process option
@@ -760,180 +810,3 @@ of the repositories listed at
810
cf. <5671DB28.8020901@kdbg.org>
811
812
Will merge to 'master'.
763
-
764
---------------------------------------------------
765
-[Discarded]
766
-
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
-
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.