What's cooking (2017/02 #03)
Junio C Hamano committed
Feb 10, 2017 at 14:15 UTC
23bf5600937ee1faec1153352ca154dfefbeb52f
1 file changed
+350
-264
whats-cooking.txt
+350
-264
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (Feb 2017, #02; Mon, 6)
4
-X-master-at: 6e3a7b3398559305c7a239a42e447c21a8f39ff8
5
-X-next-at: 6ec89f72d55e6d68bc583df597c35ed94a9731fd
3
+Subject: What's cooking in git.git (Feb 2017, #03; Fri, 10)
4
+X-master-at: 5588dbffbd61e4906e453808c6ad32f792fea521
5
+X-next-at: 8ea7874076a995b24efb1d735d9d27a7709c3ecb
6
7
-What's cooking in git.git (Feb 2017, #02; Mon, 6)
7
+What's cooking in git.git (Feb 2017, #03; Fri, 10)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,6 +12,18 @@ 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
+2.12-rc1 has been tagged and most of the big things are behind us (I
16
+am reluctant to merge anything large-ish after -rc0 and that was why
17
+-rc0 preview had topics that cooked in 'next' only for a few days
18
+in---usually my rule is to keep any non-trivial topic for about a
19
+week in 'next'). There still are interesting and/or exciting things
20
+coming into 'next', hopefully they will be the "killer" additions
21
+for the release after the upcoming 2.12. In the meantime, lets make
22
+sure that we catch regressions in -rc1 and the tip of 'master'.
23
+
24
+Oh, also I'd like to get pull requests for gitk and git-gui updates
25
+soonish, if we are to have one during this cycle.
26
+
27
You can find the changes described here in the integration branches
28
of the repositories listed at
29
@@ -20,232 +32,235 @@ of the repositories listed at
32
--------------------------------------------------
33
[Graduated to "master"]
34
23
-* cw/log-updates-for-all-refs-really (2017-02-01) 4 commits
24
- (merged to 'next' on 2017-02-02 at 3e11673fcc)
25
- + doc: add note about ignoring '--no-create-reflog'
26
- (merged to 'next' on 2017-01-31 at 53f71d2401)
27
- + update-ref: add test cases for bare repository
28
- + refs: add option core.logAllRefUpdates = always
29
- + config: add markup to core.logAllRefUpdates doc
35
+* bw/push-submodule-only (2017-02-01) 2 commits
36
+ (merged to 'next' on 2017-02-06 at 851edafb14)
37
+ + completion: add completion for --recurse-submodules=only
38
+ + doc: add doc for git-push --recurse-submodules=only
39
31
- The "core.logAllRefUpdates" that used to be boolean has been
32
- enhanced to take 'always' as well, to record ref updates to refs
33
- other than the ones that are expected to be updated (i.e. branches,
34
- remote-tracking branches and notes).
40
+ Add missing documentation update to a recent topic.
41
42
37
-* js/re-running-failed-tests (2017-01-27) 1 commit
38
- (merged to 'next' on 2017-01-31 at 30c3a9e0cf)
39
- + t/Makefile: add a rule to re-run previously-failed tests
43
+* da/t7800-cleanup (2017-02-08) 2 commits
44
+ (merged to 'next' on 2017-02-10 at c983b65d33)
45
+ + t7800: replace "wc -l" with test_line_count
46
+ + Merge branch 'da/difftool-dir-diff-fix' into da/t7800-cleanup
47
+ (this branch uses js/difftool-builtin.)
48
41
- "make -C t failed" will now run only the tests that failed in the
42
- previous run. This is usable only when prove is not use, and gives
43
- a useless error message when run after "make clean", but otherwise
44
- is serviceable.
49
+ Test updates.
50
51
47
-* pl/complete-diff-submodule-diff (2017-01-30) 1 commit
48
- (merged to 'next' on 2017-01-31 at 7e668d325c)
49
- + Completion: Add support for --submodule=diff
52
+* dl/difftool-doc-no-gui-option (2017-02-08) 1 commit
53
+ (merged to 'next' on 2017-02-10 at 3a3496a740)
54
+ + Document the --no-gui option in difftool
55
51
- The command line completion (in contrib/) learned that
52
- "git diff --submodule=" can take "diff" as a recently added option.
56
+ Doc update.
57
58
55
-* rs/object-id (2017-01-30) 3 commits
56
- (merged to 'next' on 2017-01-31 at c442e4780c)
57
- + checkout: convert post_checkout_hook() to struct object_id
58
- + use oidcpy() for copying hashes between instances of struct object_id
59
- + use oid_to_hex_r() for converting struct object_id hashes to hex strings
59
+* ew/complete-svn-authorship-options (2017-02-06) 1 commit
60
+ (merged to 'next' on 2017-02-06 at dca324db7c)
61
+ + completion: fix git svn authorship switches
62
61
- "uchar [40]" to "struct object_id" conversion continues.
63
+ Correct command line completion (in contrib/) on "git svn"
64
65
64
-* sb/submodule-recursive-absorb (2017-01-26) 3 commits
65
- (merged to 'next' on 2017-01-31 at 0a24cfd06b)
66
- + submodule absorbing: fix worktree/gitdir pointers recursively for non-moves
67
- + cache.h: expose the dying procedure for reading gitlinks
68
- + setup: add gentle version of resolve_git_dir
66
+* jk/log-graph-name-only (2017-02-08) 1 commit
67
+ (merged to 'next' on 2017-02-10 at 2ab7ed99f4)
68
+ + diff: print line prefix for --name-only output
69
70
- When a submodule "A", which has another submodule "B" nested within
71
- it, is "absorbed" into the top-level superproject, the inner
72
- submodule "B" used to be left in a strange state. The logic to
73
- adjust the .git pointers in these submodules has been corrected.
70
+ "git log --graph" did not work well with "--name-only", even though
71
+ other forms of "diff" output were handled correctly.
72
73
76
-* sb/submodule-update-initial-runs-custom-script (2017-01-26) 1 commit
77
- (merged to 'next' on 2017-01-31 at d794f894c6)
78
- + submodule update: run custom update script for initial populating as well
74
+* jk/reset-to-break-a-commit-doc (2017-02-03) 1 commit
75
+ (merged to 'next' on 2017-02-06 at 7f571e62e9)
76
+ + reset: add an example of how to split a commit into two
77
80
- The user can specify a custom update method that is run when
81
- "submodule update" updates an already checked out submodule. This
82
- was ignored when checking the submodule out for the first time and
83
- we instead always just checked out the commit that is bound to the
84
- path in the superproject's index.
78
+ A minor doc update.
79
80
87
-* sb/unpack-trees-super-prefix (2017-01-25) 4 commits
88
- (merged to 'next' on 2017-01-31 at dabe6ca2b1)
89
- + unpack-trees: support super-prefix option
90
- + t1001: modernize style
91
- + t1000: modernize style
92
- + read-tree: use OPT_BOOL instead of OPT_SET_INT
81
+* js/difftool-builtin (2017-02-08) 2 commits
82
+ (merged to 'next' on 2017-02-10 at 30b3f383e8)
83
+ + t7800: simplify basic usage test
84
+ (merged to 'next' on 2017-02-06 at 6a90549f38)
85
+ + difftool: fix bug when printing usage
86
+ (this branch is used by da/t7800-cleanup.)
87
94
- "git read-tree" and its underlying unpack_trees() machinery learned
95
- to report problematic paths prefixed with the --super-prefix option.
88
+ A few hot-fixes to C-rewrite of "git difftool".
89
97
---------------------------------------------------
98
-[New Topics]
90
100
-* bw/push-submodule-only (2017-02-01) 2 commits
101
- (merged to 'next' on 2017-02-06 at 851edafb14)
102
- + completion: add completion for --recurse-submodules=only
103
- + doc: add doc for git-push --recurse-submodules=only
91
+* nd/rev-list-all-includes-HEAD-doc (2017-02-08) 1 commit
92
+ (merged to 'next' on 2017-02-10 at 5df8b81b57)
93
+ + rev-list-options.txt: update --all about HEAD
94
105
- Add missing documentation update to a recent topic.
95
+ Doc update.
96
107
- Will merge to 'master'.
97
98
+* ps/worktree-prune-help-fix (2017-02-06) 1 commit
99
+ (merged to 'next' on 2017-02-06 at eeb96f1677)
100
+ + worktree: fix option descriptions for `prune`
101
110
-* cw/completion (2017-02-03) 7 commits
111
- - completion: recognize more long-options
112
- - completion: teach remote subcommands to complete options
113
- - completion: teach replace to complete options
114
- - completion: teach ls-remote to complete options
115
- - completion: improve bash completion for git-add
116
- - completion: add subcommand completion for rerere
117
- - completion: teach submodule subcommands to complete options
102
+ Incorrect usage help message for "git worktree prune" has been fixed.
103
119
- More command line completion (in contrib/) for recent additions.
104
121
- Needs review.
105
+* rs/fill-directory-optim (2017-02-08) 1 commit
106
+ (merged to 'next' on 2017-02-10 at 71047464df)
107
+ + dir: avoid allocation in fill_directory()
108
109
+ Code clean-up.
110
124
-* cw/tag-reflog-message (2017-02-06) 1 commit
125
- - tag: generate useful reflog message
111
127
- "git tag", because refs/tags/* doesn't keep reflog by default, did
128
- not leave useful message when adding a new entry to reflog.
112
+* rs/p5302-create-repositories-before-tests (2017-02-06) 1 commit
113
+ (merged to 'next' on 2017-02-06 at f93bd2ed47)
114
+ + p5302: create repositories for index-pack results explicitly
115
130
- Waiting for review to conclude.
131
- An uneven error handling is somewhat disturbing.
116
+ Adjust a perf test to new world order where commands that do
117
+ require a repository are really strict about having a repository.
118
119
+--------------------------------------------------
120
+[New Topics]
121
134
-* dl/document-that-difftool-takes-no-gui-option (2017-02-06) 1 commit
135
- - Document the --no-gui option in difftool
122
+* jk/alternate-ref-optim (2017-02-08) 11 commits
123
+ (merged to 'next' on 2017-02-10 at f26f32cff6)
124
+ + receive-pack: avoid duplicates between our refs and alternates
125
+ + receive-pack: treat namespace .have lines like alternates
126
+ + receive-pack: fix misleading namespace/.have comment
127
+ + receive-pack: use oidset to de-duplicate .have lines
128
+ + add oidset API
129
+ + fetch-pack: cache results of for_each_alternate_ref
130
+ + for_each_alternate_ref: replace transport code with for-each-ref
131
+ + for_each_alternate_ref: pass name/oid instead of ref struct
132
+ + for_each_alternate_ref: use strbuf for path allocation
133
+ + for_each_alternate_ref: stop trimming trailing slashes
134
+ + for_each_alternate_ref: handle failure from real_pathdup()
135
+
136
+ Optimizes resource usage while enumerating refs from alternate
137
+ object store, to help receiving end of "push" that hosts a
138
+ repository with many "forks".
139
137
- A minor doc update.
140
+ Will cook in 'next'.
141
139
- Waiting for review to conclude.
140
- A minor inconsistency is somewhat disturbing.
142
143
+* lt/pathspec-negative (2017-02-10) 2 commits
144
+ (merged to 'next' on 2017-02-10 at 8ea7874076)
145
+ + pathspec: don't error out on all-exclusionary pathspec patterns
146
+ + pathspec magic: add '^' as alias for '!'
147
143
-* ew/complete-svn-authorship-options (2017-02-06) 1 commit
144
- (merged to 'next' on 2017-02-06 at dca324db7c)
145
- + completion: fix git svn authorship switches
148
+ The "negative" pathspec feature was somewhat more cumbersome to use
149
+ than necessary in that its short-hand used "!" which needed to be
150
+ escaped from shells, and it required "exclude from what?" specified.
151
147
- Correct command line completion (in contrib/) on "git svn"
152
+ Will cook in 'next'.
153
149
- Will merge to 'master'.
154
155
+* nd/worktree-gc-protection (2017-02-08) 2 commits
156
+ - worktree.c: use submodule interface to access refs from another worktree
157
+ - refs.c: add resolve_ref_submodule()
158
152
-* jk/reset-to-break-a-commit-doc (2017-02-03) 1 commit
153
- (merged to 'next' on 2017-02-06 at 7f571e62e9)
154
- + reset: add an example of how to split a commit into two
159
+ (hopefully) a beginning of safer "git worktree" that is resistant
160
+ to "gc".
161
156
- A minor doc update.
162
+ Michael had a suggestion for a (hopefully) better alternative way
163
+ to do this. Expecting a reroll (either a tenative but quicker way,
164
+ or a better but slower way).
165
+ cf. <CACsJy8Diy92CNbJ1OBn893VFFrSsxBFWSyQHjt_Dzq9x7jfibQ@mail.gmail.com>
166
+
167
+
168
+* sb/push-options-via-transport (2017-02-08) 1 commit
169
+ (merged to 'next' on 2017-02-10 at 3e2d08e1fa)
170
+ + push options: pass push options to the transport helper
171
+
172
+ The push-options given via the "--push-options" option were not
173
+ passed through to external remote helpers such as "smart HTTP" that
174
+ are invoked via the transport helper.
175
176
Will merge to 'master'.
177
178
161
-* js/difftool-builtin (2017-02-06) 1 commit
162
- (merged to 'next' on 2017-02-06 at 6a90549f38)
163
- + difftool: fix bug when printing usage
179
+* js/rebase-helper (2017-02-09) 2 commits
180
+ - rebase -i: use the rebase--helper builtin
181
+ - rebase--helper: add a builtin helper for interactive rebases
182
165
- A hot-fix to C-rewrite of "git difftool".
183
+ "git rebase -i" starts using the recently updated "sequencer" code.
184
167
- Will merge to 'master'.
185
+ Will merge to and then cook in 'next'.
186
+ The change itself is small, but what it enables is rather a large
187
+ body of new code. We are getting there ;-)
188
189
170
-* ps/worktree-prune-help-fix (2017-02-06) 1 commit
171
- (merged to 'next' on 2017-02-06 at eeb96f1677)
172
- + worktree: fix option descriptions for `prune`
190
+* mh/submodule-hash (2017-02-10) 9 commits
191
+ - read_loose_refs(): read refs using resolve_ref_recursively()
192
+ - files_ref_store::submodule: use NULL for the main repository
193
+ - base_ref_store_init(): remove submodule argument
194
+ - refs: push the submodule attribute down
195
+ - refs: store submodule ref stores in a hashmap
196
+ - register_ref_store(): new function
197
+ - refs: remove some unnecessary handling of submodule == ""
198
+ - refs: make some ref_store lookup functions private
199
+ - refs: reorder some function definitions
200
174
- Incorrect usage help message for "git worktree prune" has been fixed.
201
+ Code and design clean-up for the refs API.
202
176
- Will merge to 'master'.
203
+ Will merge to and then cook in 'next'.
204
205
179
-* rs/p5302-create-repositories-before-tests (2017-02-06) 1 commit
180
- (merged to 'next' on 2017-02-06 at f93bd2ed47)
181
- + p5302: create repositories for index-pack results explicitly
206
+* jh/mingw-openssl-sha1 (2017-02-09) 1 commit
207
+ (merged to 'next' on 2017-02-10 at 084b3d8503)
208
+ + mingw: use OpenSSL's SHA-1 routines
209
183
- Adjust a perf test to new world order where commands that do
184
- require a repository are really strict about having a repository.
210
+ Windows port wants to use OpenSSL's implementation of SHA-1
211
+ routines, so let them.
212
213
Will merge to 'master'.
214
215
189
-* sg/completion (2017-02-03) 21 commits
190
- - completion: cache the path to the repository
191
- - completion: extract repository discovery from __gitdir()
192
- - completion: don't guard git executions with __gitdir()
193
- - completion: consolidate silencing errors from git commands
194
- - completion: don't use __gitdir() for git commands
195
- - completion: respect 'git -C <path>'
196
- - rev-parse: add '--absolute-git-dir' option
197
- - completion: fix completion after 'git -C <path>'
198
- - completion: don't offer commands when 'git --opt' needs an argument
199
- - completion: list short refs from a remote given as a URL
200
- - completion: don't list 'HEAD' when trying refs completion outside of a repo
201
- - completion: list refs from remote when remote's name matches a directory
202
- - completion: respect 'git --git-dir=<path>' when listing remote refs
203
- - completion: fix most spots not respecting 'git --git-dir=<path>'
204
- - completion: ensure that the repository path given on the command line exists
205
- - completion tests: add tests for the __git_refs() helper function
206
- - completion tests: check __gitdir()'s output in the error cases
207
- - completion tests: consolidate getting path of current working directory
208
- - completion tests: make the $cur variable local to the test helper functions
209
- - completion tests: don't add test cruft to the test repository
210
- - completion: improve __git_refs()'s in-code documentation
211
- (this branch is used by sg/completion-refs-speedup.)
216
+* sb/doc-unify-bottom (2017-02-09) 1 commit
217
+ (merged to 'next' on 2017-02-10 at 7229c4c1f7)
218
+ + Documentation: unify bottom "part of git suite" lines
219
213
- Clean-up and updates to command line completion (in contrib/).
220
+ Doc clean-up.
221
215
- Will merge to 'next'.
222
+ Will merge to 'master'.
223
224
218
-* sg/completion-refs-speedup (2017-02-06) 13 commits
219
- - squash! completion: fill COMPREPLY directly when completing refs
220
- - completion: fill COMPREPLY directly when completing refs
221
- - completion: list only matching symbolic and pseudorefs when completing refs
222
- - completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
223
- - completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
224
- - completion: let 'for-each-ref' strip the remote name from remote branches
225
- - completion: let 'for-each-ref' and 'ls-remote' filter matching refs
226
- - completion: don't disambiguate short refs
227
- - completion: don't disambiguate tags and branches
228
- - completion: support excluding full refs
229
- - completion: support completing full refs after '--option=refs/<TAB>'
230
- - completion: wrap __git_refs() for better option parsing
231
- - completion: remove redundant __gitcomp_nl() options from _git_commit()
232
- (this branch uses sg/completion.)
225
+* dt/gc-ignore-old-gc-logs (2017-02-10) 2 commits
226
+ - SQUASH???
227
+ - gc: ignore old gc.log files
228
234
- Will hold.
235
- This seems to break 9902 when merged to 'pu'.
229
+ A "gc.log" file left by a backgrounded "gc --auto" disables further
230
+ automatic gc; it has been taught to run at least once a day (by
231
+ default) by ignoring a stale "gc.log" file that is too old.
232
233
+ Waiting for the discussion and reroll to quiet down (this one is v3
234
+ or so and I saw v5 posted).
235
238
-* sk/parse-remote-cleanup (2017-02-06) 1 commit
239
- (merged to 'next' on 2017-02-06 at 6ec89f72d5)
240
- + parse-remote: remove reference to unused op_prep
236
242
- Code clean-up.
237
+* js/git-path-in-subdir (2017-02-10) 2 commits
238
+ - rev-parse: fix several options when running in a subdirectory
239
+ - rev-parse tests: add tests executed from a subdirectory
240
244
- Will merge to 'master'.
241
+ The "--git-path", "--git-common-dir", and "--shared-index-path"
242
+ options of "git rev-parse" did not produce usable output. They are
243
+ now updated to show the path to the correct file, relative to where
244
+ the caller is.
245
+
246
+ Waiting for Review/Ack.
247
+ cf. <cover.1486740772.git.johannes.schindelin@gmx.de>
248
249
--------------------------------------------------
250
[Stalled]
251
252
+* vn/xdiff-func-context (2017-01-15) 1 commit
253
+ - xdiff -W: relax end-of-file function detection
254
+
255
+ "git diff -W" has been taught to handle the case where a new
256
+ function is added at the end of the file better.
257
+
258
+ Will hold.
259
+ Discussion on an follow-up change to go back from the line that
260
+ matches the funcline to show comments before the function
261
+ definition has not resulted in an actionable conclusion.
262
+
263
+
264
* pb/bisect (2016-10-18) 27 commits
265
- bisect--helper: remove the dequote in bisect_start()
266
- bisect--helper: retire `--bisect-auto-next` subcommand
@@ -288,17 +303,6 @@ of the repositories listed at
303
Ejected, as does not build when merged to 'pu'.
304
305
291
-* ls/p4-path-encoding (2016-12-18) 1 commit
292
- - git-p4: fix git-p4.pathEncoding for removed files
293
-
294
- When "git p4" imports changelist that removes paths, it failed to
295
- convert pathnames when the p4 used encoding different from the one
296
- used on the Git side. This has been corrected.
297
-
298
- Will be rerolled.
299
- cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com>
300
-
301
-
306
* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
307
- grep: use '/' delimiter for paths
308
- grep: only add delimiter if there isn't one already
@@ -319,39 +323,6 @@ of the repositories listed at
323
Waiting for the review discussion to settle, followed by a reroll.
324
325
322
-* mh/ref-remove-empty-directory (2017-01-07) 23 commits
323
- - files_transaction_commit(): clean up empty directories
324
- - try_remove_empty_parents(): teach to remove parents of reflogs, too
325
- - try_remove_empty_parents(): don't trash argument contents
326
- - try_remove_empty_parents(): rename parameter "name" -> "refname"
327
- - delete_ref_loose(): inline function
328
- - delete_ref_loose(): derive loose reference path from lock
329
- - log_ref_write_1(): inline function
330
- - log_ref_setup(): manage the name of the reflog file internally
331
- - log_ref_write_1(): don't depend on logfile argument
332
- - log_ref_setup(): pass the open file descriptor back to the caller
333
- - log_ref_setup(): improve robustness against races
334
- - log_ref_setup(): separate code for create vs non-create
335
- - log_ref_write(): inline function
336
- - rename_tmp_log(): improve error reporting
337
- - rename_tmp_log(): use raceproof_create_file()
338
- - lock_ref_sha1_basic(): use raceproof_create_file()
339
- - lock_ref_sha1_basic(): inline constant
340
- - raceproof_create_file(): new function
341
- - safe_create_leading_directories(): set errno on SCLD_EXISTS
342
- - safe_create_leading_directories_const(): preserve errno
343
- - t5505: use "for-each-ref" to test for the non-existence of references
344
- - refname_is_safe(): correct docstring
345
- - files_rename_ref(): tidy up whitespace
346
-
347
- Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
348
- once there no longer is any other branch whose name begins with
349
- "foo/", but we didn't do so so far. Now we do.
350
-
351
- Expecting a reroll.
352
- cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu>
353
-
354
-
326
* jc/diff-b-m (2015-02-23) 5 commits
327
. WIPWIP
328
. WIP: diff-b-m
@@ -371,6 +342,139 @@ of the repositories listed at
342
--------------------------------------------------
343
[Cooking]
344
345
+* ls/p4-path-encoding (2017-02-09) 1 commit
346
+ - git-p4: fix git-p4.pathEncoding for removed files
347
+
348
+ When "git p4" imports changelist that removes paths, it failed to
349
+ convert pathnames when the p4 used encoding different from the one
350
+ used on the Git side. This has been corrected.
351
+
352
+ Waiting for Review/Ack.
353
+ cf. <20170209150656.9070-1-larsxschneider@gmail.com>
354
+
355
+
356
+* mh/ref-remove-empty-directory (2017-01-07) 23 commits
357
+ (merged to 'next' on 2017-02-10 at bcfd359e95)
358
+ + files_transaction_commit(): clean up empty directories
359
+ + try_remove_empty_parents(): teach to remove parents of reflogs, too
360
+ + try_remove_empty_parents(): don't trash argument contents
361
+ + try_remove_empty_parents(): rename parameter "name" -> "refname"
362
+ + delete_ref_loose(): inline function
363
+ + delete_ref_loose(): derive loose reference path from lock
364
+ + log_ref_write_1(): inline function
365
+ + log_ref_setup(): manage the name of the reflog file internally
366
+ + log_ref_write_1(): don't depend on logfile argument
367
+ + log_ref_setup(): pass the open file descriptor back to the caller
368
+ + log_ref_setup(): improve robustness against races
369
+ + log_ref_setup(): separate code for create vs non-create
370
+ + log_ref_write(): inline function
371
+ + rename_tmp_log(): improve error reporting
372
+ + rename_tmp_log(): use raceproof_create_file()
373
+ + lock_ref_sha1_basic(): use raceproof_create_file()
374
+ + lock_ref_sha1_basic(): inline constant
375
+ + raceproof_create_file(): new function
376
+ + safe_create_leading_directories(): set errno on SCLD_EXISTS
377
+ + safe_create_leading_directories_const(): preserve errno
378
+ + t5505: use "for-each-ref" to test for the non-existence of references
379
+ + refname_is_safe(): correct docstring
380
+ + files_rename_ref(): tidy up whitespace
381
+
382
+ Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
383
+ once there no longer is any other branch whose name begins with
384
+ "foo/", but we didn't do so so far. Now we do.
385
+
386
+ Will cook in 'next'.
387
+
388
+
389
+* cw/completion (2017-02-03) 7 commits
390
+ (merged to 'next' on 2017-02-10 at b3a5cbf39c)
391
+ + completion: recognize more long-options
392
+ + completion: teach remote subcommands to complete options
393
+ + completion: teach replace to complete options
394
+ + completion: teach ls-remote to complete options
395
+ + completion: improve bash completion for git-add
396
+ + completion: add subcommand completion for rerere
397
+ + completion: teach submodule subcommands to complete options
398
+
399
+ More command line completion (in contrib/) for recent additions.
400
+
401
+ Will merge to 'master'.
402
+
403
+
404
+* cw/tag-reflog-message (2017-02-08) 1 commit
405
+ (merged to 'next' on 2017-02-10 at 3968b3a58b)
406
+ + tag: generate useful reflog message
407
+
408
+ "git tag", because refs/tags/* doesn't keep reflog by default, did
409
+ not leave useful message when adding a new entry to reflog.
410
+
411
+ Will cook in 'next'.
412
+
413
+
414
+* sg/completion (2017-02-03) 21 commits
415
+ (merged to 'next' on 2017-02-10 at 55b2785d89)
416
+ + completion: cache the path to the repository
417
+ + completion: extract repository discovery from __gitdir()
418
+ + completion: don't guard git executions with __gitdir()
419
+ + completion: consolidate silencing errors from git commands
420
+ + completion: don't use __gitdir() for git commands
421
+ + completion: respect 'git -C <path>'
422
+ + rev-parse: add '--absolute-git-dir' option
423
+ + completion: fix completion after 'git -C <path>'
424
+ + completion: don't offer commands when 'git --opt' needs an argument
425
+ + completion: list short refs from a remote given as a URL
426
+ + completion: don't list 'HEAD' when trying refs completion outside of a repo
427
+ + completion: list refs from remote when remote's name matches a directory
428
+ + completion: respect 'git --git-dir=<path>' when listing remote refs
429
+ + completion: fix most spots not respecting 'git --git-dir=<path>'
430
+ + completion: ensure that the repository path given on the command line exists
431
+ + completion tests: add tests for the __git_refs() helper function
432
+ + completion tests: check __gitdir()'s output in the error cases
433
+ + completion tests: consolidate getting path of current working directory
434
+ + completion tests: make the $cur variable local to the test helper functions
435
+ + completion tests: don't add test cruft to the test repository
436
+ + completion: improve __git_refs()'s in-code documentation
437
+ (this branch is used by sg/completion-refs-speedup.)
438
+
439
+ Clean-up and updates to command line completion (in contrib/).
440
+
441
+ Will merge to 'master'.
442
+
443
+
444
+* sg/completion-refs-speedup (2017-02-06) 13 commits
445
+ - squash! completion: fill COMPREPLY directly when completing refs
446
+ - completion: fill COMPREPLY directly when completing refs
447
+ - completion: list only matching symbolic and pseudorefs when completing refs
448
+ - completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
449
+ - completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
450
+ - completion: let 'for-each-ref' strip the remote name from remote branches
451
+ - completion: let 'for-each-ref' and 'ls-remote' filter matching refs
452
+ - completion: don't disambiguate short refs
453
+ - completion: don't disambiguate tags and branches
454
+ - completion: support excluding full refs
455
+ - completion: support completing full refs after '--option=refs/<TAB>'
456
+ - completion: wrap __git_refs() for better option parsing
457
+ - completion: remove redundant __gitcomp_nl() options from _git_commit()
458
+ (this branch uses sg/completion.)
459
+
460
+ The refs completion for large number of refs has been sped up,
461
+ partly by giving up disambiguating ambiguous refs and partly by
462
+ eliminating most of the shell processing between 'git for-each-ref'
463
+ and 'ls-remote' and Bash's completion facility.
464
+
465
+ Will hold.
466
+
467
+
468
+* sk/parse-remote-cleanup (2017-02-06) 1 commit
469
+ (merged to 'next' on 2017-02-06 at 6ec89f72d5)
470
+ + parse-remote: remove reference to unused op_prep
471
+
472
+ Code clean-up.
473
+
474
+ Undecided. There may be third-party scripts that are dot-sourcing
475
+ this one.
476
+
477
+
478
* jk/delta-chain-limit (2017-01-27) 2 commits
479
(merged to 'next' on 2017-02-06 at 9ff36ae9b2)
480
+ pack-objects: convert recursion to iteration in break_delta_chain()
@@ -383,36 +487,37 @@ of the repositories listed at
487
488
489
* mm/merge-rename-delete-message (2017-01-30) 1 commit
386
- - merge-recursive: make "CONFLICT (rename/delete)" message show both paths
490
+ (merged to 'next' on 2017-02-10 at 8bf8146029)
491
+ + merge-recursive: make "CONFLICT (rename/delete)" message show both paths
492
493
When "git merge" detects a path that is renamed in one history
494
while the other history deleted (or modified) it, it now reports
495
both paths to help the user understand what is going on in the two
496
histories being merged.
497
393
- Will merge to and then cook in 'next'.
498
+ Will cook in 'next'.
499
500
501
* rs/swap (2017-01-30) 5 commits
397
- - graph: use SWAP macro
398
- - diff: use SWAP macro
399
- - use SWAP macro
400
- - apply: use SWAP macro
401
- - add SWAP macro
502
+ (merged to 'next' on 2017-02-10 at 5253797d0a)
503
+ + graph: use SWAP macro
504
+ + diff: use SWAP macro
505
+ + use SWAP macro
506
+ + apply: use SWAP macro
507
+ + add SWAP macro
508
509
Code clean-up.
510
405
- Will merge to 'next'.
406
- ... unless there is an objection with better alternative. The
407
- discussion seems to have quieted down.
511
+ Will merge to 'master'.
512
513
514
* ps/urlmatch-wildcard (2017-02-01) 5 commits
411
- - urlmatch: allow globbing for the URL host part
412
- - urlmatch: include host in urlmatch ranking
413
- - urlmatch: split host and port fields in `struct url_info`
414
- - urlmatch: enable normalization of URLs with globs
415
- - mailmap: add Patrick Steinhardt's work address
515
+ (merged to 'next' on 2017-02-10 at 2ed9ea48ee)
516
+ + urlmatch: allow globbing for the URL host part
517
+ + urlmatch: include host in urlmatch ranking
518
+ + urlmatch: split host and port fields in `struct url_info`
519
+ + urlmatch: enable normalization of URLs with globs
520
+ + mailmap: add Patrick Steinhardt's work address
521
522
The <url> part in "http.<url>.<variable>" configuration variable
523
can now be spelled with '*' that serves as wildcard.
@@ -420,11 +525,11 @@ of the repositories listed at
525
proxy used for https://a.example.com, https://b.example.com, etc.,
526
i.e. any host in the example.com domain.
527
423
- Will merge to and then cook in 'next'.
528
+ Will cook in 'next'.
529
530
426
-* sf/putty-w-args (2017-02-01) 5 commits
427
- - SQUASH???
531
+* sf/putty-w-args (2017-02-10) 5 commits
532
+ - connect.c: stop conflating ssh command names and overrides
533
- connect: Add the envvar GIT_SSH_VARIANT and ssh.variant config
534
- git_connect(): factor out SSH variant handling
535
- connect: rename tortoiseplink and putty variables
@@ -439,8 +544,7 @@ of the repositories listed at
544
variable, and give an escape hatch for users to deal with
545
misdetected cases.
546
442
- Stalled?
443
- cf. <alpine.DEB.2.20.1702012319460.3496@virtualbox>
547
+ Will merge to 'next' and then to 'master'.
548
549
550
* jk/describe-omit-some-refs (2017-01-23) 5 commits
@@ -459,12 +563,14 @@ of the repositories listed at
563
Will cook in 'next'.
564
565
462
-* sb/submodule-doc (2017-01-12) 3 commits
463
- - submodules: add a background story
464
- - submodule update documentation: don't repeat ourselves
465
- - submodule documentation: add options to the subcommand
566
+* sb/submodule-doc (2017-01-12) 2 commits
567
+ (merged to 'next' on 2017-02-10 at 5bfad5f30e)
568
+ + submodule update documentation: don't repeat ourselves
569
+ + submodule documentation: add options to the subcommand
570
+
571
+ Doc updates.
572
467
- Needs review.
573
+ Will merge to 'master'.
574
575
576
* bw/attr (2017-02-01) 27 commits
@@ -502,30 +608,18 @@ of the repositories listed at
608
Will merge to and then cook in 'next'.
609
610
505
-* vn/xdiff-func-context (2017-01-15) 1 commit
506
- - xdiff -W: relax end-of-file function detection
507
-
508
- "git diff -W" has been taught to handle the case where a new
509
- function is added at the end of the file better.
510
-
511
- Will hold.
512
- An follow-up change to go back from the line that matches the
513
- funcline to show comments before the function definition is still
514
- being discussed.
515
-
516
-
611
* nd/worktree-move (2017-01-27) 7 commits
518
- - fixup! worktree move: new command
519
- - worktree remove: new command
520
- - worktree move: refuse to move worktrees with submodules
521
- - worktree move: accept destination as directory
522
- - worktree move: new command
523
- - worktree.c: add update_worktree_location()
524
- - worktree.c: add validate_worktree()
612
+ . fixup! worktree move: new command
613
+ . worktree remove: new command
614
+ . worktree move: refuse to move worktrees with submodules
615
+ . worktree move: accept destination as directory
616
+ . worktree move: new command
617
+ . worktree.c: add update_worktree_location()
618
+ . worktree.c: add validate_worktree()
619
620
"git worktree" learned move and remove subcommands.
621
528
- Needs review.
622
+ Tentatively ejected as it seems to break 'pu' when merged.
623
624
625
* cc/split-index-config (2016-12-26) 21 commits
@@ -559,7 +653,9 @@ of the repositories listed at
653
cf. <a1a44640-ff6c-2294-72ac-46322eff8505@ramsayjones.plus.com>
654
655
562
-* kn/ref-filter-branch-list (2017-01-31) 20 commits
656
+* kn/ref-filter-branch-list (2017-02-07) 21 commits
657
+ (merged to 'next' on 2017-02-10 at 794bb8284d)
658
+ + ref-filter: resurrect "strip" as a synonym to "lstrip"
659
(merged to 'next' on 2017-01-31 at e7592a5461)
660
+ branch: implement '--format' option
661
+ branch: use ref-filter printing APIs
@@ -616,25 +712,17 @@ of the repositories listed at
712
713
714
* jc/bundle (2016-03-03) 6 commits
619
- . index-pack: --clone-bundle option
620
- . Merge branch 'jc/index-pack' into jc/bundle
621
- . bundle v3: the beginning
622
- . bundle: keep a copy of bundle file name in the in-core bundle header
623
- . bundle: plug resource leak
624
- . bundle doc: 'verify' is not about verifying the bundle
715
+ - index-pack: --clone-bundle option
716
+ - Merge branch 'jc/index-pack' into jc/bundle
717
+ - bundle v3: the beginning
718
+ - bundle: keep a copy of bundle file name in the in-core bundle header
719
+ - bundle: plug resource leak
720
+ - bundle doc: 'verify' is not about verifying the bundle
721
722
The beginning of "split bundle", which could be one of the
723
ingredients to allow "git clone" traffic off of the core server
724
network to CDN.
725
630
- While I think it would make it easier for people to experiment and
631
- build on if the topic is merged to 'next', I am at the same time a
632
- bit reluctant to merge an unproven new topic that introduces a new
633
- file format, which we may end up having to support til the end of
634
- time. It is likely that to support a "prime clone from CDN", it
635
- would need a lot more than just "these are the heads and the pack
636
- data is over there", so this may not be sufficient.
637
-
726
--------------------------------------------------
727
[Discarded]
728
@@ -665,5 +753,3 @@ of the repositories listed at
753
submodules seem to be in use.
754
755
Retracted.
668
-
669
-