What's cooking (2017/01 #03)
Junio C Hamano committed
Jan 19, 2017 at 15:32 UTC
3b0172090fb115b82680ccf145f628f531bf19ad
1 file changed
+540
-507
whats-cooking.txt
+540
-507
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (Jan 2017, #02; Sun, 15)
4
-X-master-at: d7dffce1cebde29a0c4b309a79e4345450bf352a
5
-X-next-at: 8553c6e5137d7fde1cda49817bcc035d3ce35aeb
3
+Subject: What's cooking in git.git (Jan 2017, #03; Thu, 19)
4
+X-master-at: 787f75f0567aa8c7347544c65e9d3bc6640a27d4
5
+X-next-at: b2604e8deeffe49d7b8c9b0cfef08f9a79f8cf14
6
7
-What's cooking in git.git (Jan 2017, #02; Sun, 15)
7
+What's cooking in git.git (Jan 2017, #03; Thu, 19)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,269 +12,398 @@ 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
+The sixth batch of topics have been merged to 'master'. This batch
16
+is fairly large, and regression-hunting is very much appreciated.
17
+
18
You can find the changes described here in the integration branches
19
of the repositories listed at
20
21
http://git-blame.blogspot.com/p/git-public-repositories.html
22
23
--------------------------------------------------
21
-[New Topics]
24
+[Graduated to "master"]
25
23
-* bw/read-blob-data-does-not-modify-index-state (2017-01-11) 1 commit
24
- - index: improve constness for reading blob data
26
+* bw/grep-recurse-submodules (2016-12-22) 12 commits
27
+ (merged to 'next' on 2016-12-22 at 1ede815b8d)
28
+ + grep: search history of moved submodules
29
+ + grep: enable recurse-submodules to work on <tree> objects
30
+ + grep: optionally recurse into submodules
31
+ + grep: add submodules as a grep source type
32
+ + submodules: load gitmodules file from commit sha1
33
+ + submodules: add helper to determine if a submodule is initialized
34
+ + submodules: add helper to determine if a submodule is populated
35
+ (merged to 'next' on 2016-12-22 at fea8fa870f)
36
+ + real_path: canonicalize directory separators in root parts
37
+ + real_path: have callers use real_pathdup and strbuf_realpath
38
+ + real_path: create real_pathdup
39
+ + real_path: convert real_path_internal to strbuf_realpath
40
+ + real_path: resolve symlinks by hand
41
+ (this branch is tangled with bw/realpath-wo-chdir.)
42
26
- Code clean-up.
43
+ "git grep" has been taught to optionally recurse into submodules.
44
28
- Will merge to 'next'.
45
46
+* bw/pathspec-cleanup (2017-01-08) 16 commits
47
+ (merged to 'next' on 2017-01-10 at 79291ff506)
48
+ + pathspec: rename prefix_pathspec to init_pathspec_item
49
+ + pathspec: small readability changes
50
+ + pathspec: create strip submodule slash helpers
51
+ + pathspec: create parse_element_magic helper
52
+ + pathspec: create parse_long_magic function
53
+ + pathspec: create parse_short_magic function
54
+ + pathspec: factor global magic into its own function
55
+ + pathspec: simpler logic to prefix original pathspec elements
56
+ + pathspec: always show mnemonic and name in unsupported_magic
57
+ + pathspec: remove unused variable from unsupported_magic
58
+ + pathspec: copy and free owned memory
59
+ + pathspec: remove the deprecated get_pathspec function
60
+ + ls-tree: convert show_recursive to use the pathspec struct interface
61
+ + dir: convert fill_directory to use the pathspec struct interface
62
+ + dir: remove struct path_simplify
63
+ + mv: remove use of deprecated 'get_pathspec()'
64
+ (this branch is used by sb/pathspec-errors.)
65
31
-* ep/commit-static-buf-cleanup (2017-01-13) 2 commits
32
- - builtin/commit.c: switch to xstrfmt(), instead of snprintf()
33
- - builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
66
+ Code clean-up in the pathspec API.
67
35
- Code clean-up.
68
37
- Expecting a reroll.
38
- The tip one would instead be done with strbuf.
39
- cf. <CA+EOSB=4-TKpi6mr-yVbwRsFrVzE=vo4Y9Qm3VMm7pn=UB1_hQ@mail.gmail.com>
69
+* bw/realpath-wo-chdir (2017-01-09) 7 commits
70
+ (merged to 'next' on 2017-01-10 at ed315a40c8)
71
+ + real_path: set errno when max number of symlinks is exceeded
72
+ + real_path: prevent redefinition of MAXSYMLINKS
73
+ (merged to 'next' on 2016-12-22 at fea8fa870f)
74
+ + real_path: canonicalize directory separators in root parts
75
+ + real_path: have callers use real_pathdup and strbuf_realpath
76
+ + real_path: create real_pathdup
77
+ + real_path: convert real_path_internal to strbuf_realpath
78
+ + real_path: resolve symlinks by hand
79
+ (this branch is tangled with bw/grep-recurse-submodules.)
80
81
+ The implementation of "real_path()" was to go there with chdir(2)
82
+ and call getcwd(3), but this obviously wouldn't be usable in a
83
+ threaded environment. Rewrite it to manually resolve relative
84
+ paths including symbolic links in path components.
85
42
-* jk/grep-e-could-be-extended-beyond-posix (2017-01-11) 1 commit
43
- - t7810: avoid assumption about invalid regex syntax
86
45
- Tighten a test to avoid mistaking an extended ERE regexp engine as
46
- a PRE regexp engine.
87
+* dt/disable-bitmap-in-auto-gc (2016-12-29) 2 commits
88
+ (merged to 'next' on 2017-01-10 at 9f4e89e15d)
89
+ + repack: die on incremental + write-bitmap-index
90
+ + auto gc: don't write bitmaps for incremental repacks
91
48
- Will merge to 'next'.
92
+ It is natural that "git gc --auto" may not attempt to pack
93
+ everything into a single pack, and there is no point in warning
94
+ when the user has configured the system to use the pack bitmap,
95
+ leading to disabling further "gc".
96
97
51
-* jk/vreport-sanitize (2017-01-11) 2 commits
52
- - vreport: sanitize ASCII control chars
53
- - Revert "vreportf: avoid intermediate buffer"
98
+* jk/archive-zip-userdiff-config (2017-01-07) 1 commit
99
+ (merged to 'next' on 2017-01-10 at ac42e4958c)
100
+ + archive-zip: load userdiff config
101
55
- An error message with an ASCII control character like '\r' in it
56
- can alter the message to hide its early part, which is problematic
57
- when a remote side gives such an error message that the local side
58
- will relay with a "remote: " prefix.
102
+ "git archive" did not read the standard configuration files, and
103
+ failed to notice a file that is marked as binary via the userdiff
104
+ driver configuration.
105
60
- Will merge to 'next'.
106
107
+* jk/blame-fixes (2017-01-07) 3 commits
108
+ (merged to 'next' on 2017-01-10 at 18f909da61)
109
+ + blame: output porcelain "previous" header for each file
110
+ + blame: handle --no-abbrev
111
+ + blame: fix alignment with --abbrev=40
112
63
-* sb/unpack-trees-super-prefix (2017-01-12) 5 commits
64
- - SQUASH
65
- - unpack-trees: support super-prefix option
66
- - t1001: modernize style
67
- - t1000: modernize style
68
- - read-tree: use OPT_BOOL instead of OPT_SET_INT
113
+ "git blame --porcelain" misidentified the "previous" <commit, path>
114
+ pair (aka "source") when contents came from two or more files.
115
70
- "git read-tree" and its underlying unpack_trees() machinery learned
71
- to report problematic paths prefixed with the --super-prefix option.
116
73
- Expecting a reroll.
74
- The first three are in good shape. The last one needs a better
75
- explanation and possibly an update to its test.
76
- cf. <CAGZ79kaHDnVLQr8WLoaD5KKs7EqeW=KbkptF=iHpU5t054Xcdw@mail.gmail.com>
117
+* jk/execv-dashed-external (2017-01-09) 3 commits
118
+ (merged to 'next' on 2017-01-10 at 117b506cb0)
119
+ + execv_dashed_external: wait for child on signal death
120
+ + execv_dashed_external: stop exiting with negative code
121
+ + execv_dashed_external: use child_process struct
122
123
+ Typing ^C to pager, which usually does not kill it, killed Git and
124
+ took the pager down as a collateral damage in certain process-tree
125
+ structure. This has been fixed.
126
79
-* bw/grep-recurse-submodules (2016-12-22) 12 commits
80
- (merged to 'next' on 2016-12-22 at 1ede815b8d)
81
- + grep: search history of moved submodules
82
- + grep: enable recurse-submodules to work on <tree> objects
83
- + grep: optionally recurse into submodules
84
- + grep: add submodules as a grep source type
85
- + submodules: load gitmodules file from commit sha1
86
- + submodules: add helper to determine if a submodule is initialized
87
- + submodules: add helper to determine if a submodule is populated
88
- (merged to 'next' on 2016-12-22 at fea8fa870f)
89
- + real_path: canonicalize directory separators in root parts
90
- + real_path: have callers use real_pathdup and strbuf_realpath
91
- + real_path: create real_pathdup
92
- + real_path: convert real_path_internal to strbuf_realpath
93
- + real_path: resolve symlinks by hand
94
- (this branch is tangled with bw/realpath-wo-chdir.)
127
96
- "git grep" has been taught to optionally recurse into submodules.
128
+* jk/rebase-i-squash-count-fix (2017-01-07) 1 commit
129
+ (merged to 'next' on 2017-01-10 at d6cfc6ace2)
130
+ + rebase--interactive: count squash commits above 10 correctly
131
98
- Will merge to 'master'.
132
+ "git rebase -i" with a recent update started showing an incorrect
133
+ count when squashing more than 10 commits.
134
135
101
-* sb/submodule-config-tests (2017-01-12) 2 commits
102
- - t7411: test lookup of uninitialized submodules
103
- - t7411: quote URLs
136
+* js/asciidoctor-tweaks (2017-01-13) 2 commits
137
+ (merged to 'next' on 2017-01-15 at 8553c6e513)
138
+ + asciidoctor: fix user-manual to be built by `asciidoctor`
139
+ (merged to 'next' on 2017-01-10 at 087da7b7c1)
140
+ + giteveryday: unbreak rendering with AsciiDoctor
141
105
- Will merge to 'next'.
142
+ Adjust documentation to help AsciiDoctor render better while not
143
+ breaking the rendering done by AsciiDoc.
144
145
108
-* sb/submodule-doc (2017-01-12) 3 commits
109
- - submodules: add a background story
110
- - submodule update documentation: don't repeat ourselves
111
- - submodule documentation: add options to the subcommand
146
+* js/mingw-test-push-unc-path (2017-01-07) 1 commit
147
+ (merged to 'next' on 2017-01-10 at 249d9f26f3)
148
+ + mingw: add a regression test for pushing to UNC paths
149
113
- Needs review.
150
+ "git push \\server\share\dir" has recently regressed and then
151
+ fixed. A test has retroactively been added for this breakage.
152
153
116
-* sb/submodule-embed-gitdir (2017-01-12) 1 commit
117
- - submodule absorbgitdirs: mention in docstring help
154
+* km/branch-get-push-while-detached (2017-01-07) 1 commit
155
+ (merged to 'next' on 2017-01-10 at a7f8af8c55)
156
+ + branch_get_push: do not segfault when HEAD is detached
157
119
- Help-text fix.
158
+ "git <cmd> @{push}" on a detached HEAD used to segfault; it has
159
+ been corrected to error out with a message.
160
+
161
+
162
+* ls/p4-retry-thrice (2016-12-29) 1 commit
163
+ (merged to 'next' on 2017-01-10 at c733e27410)
164
+ + git-p4: do not pass '-r 0' to p4 commands
165
+
166
+ A recent updates to "git p4" was not usable for older p4 but it
167
+ could be made to work with minimum changes. Do so.
168
+
169
+
170
+* pb/test-must-fail-is-for-git (2017-01-09) 2 commits
171
+ (merged to 'next' on 2017-01-10 at 5f24a98779)
172
+ + t9813: avoid using pipes
173
+ + don't use test_must_fail with grep
174
+
175
+ Test cleanup.
176
+
177
+
178
+* rh/mergetool-regression-fix (2017-01-10) 14 commits
179
+ (merged to 'next' on 2017-01-10 at e8e00c798b)
180
+ + mergetool: fix running in subdir when rerere enabled
181
+ + mergetool: take the "-O" out of $orderfile
182
+ + t7610: add test case for rerere+mergetool+subdir bug
183
+ + t7610: spell 'git reset --hard' consistently
184
+ + t7610: don't assume the checked-out commit
185
+ + t7610: always work on a test-specific branch
186
+ + t7610: delete some now-unnecessary 'git reset --hard' lines
187
+ + t7610: run 'git reset --hard' after each test to clean up
188
+ + t7610: don't rely on state from previous test
189
+ + t7610: use test_when_finished for cleanup tasks
190
+ + t7610: move setup code to the 'setup' test case
191
+ + t7610: update branch names to match test number
192
+ + rev-parse doc: pass "--" to rev-parse in the --prefix example
193
+ + .mailmap: record canonical email for Richard Hansen
194
+
195
+ "git mergetool" without any pathspec on the command line that is
196
+ run from a subdirectory became no-op in Git v2.11 by mistake, which
197
+ has been fixed.
198
+
199
+
200
+* sb/pathspec-errors (2017-01-09) 1 commit
201
+ (merged to 'next' on 2017-01-10 at 432375cb62)
202
+ + pathspec: give better message for submodule related pathspec error
203
+ (this branch uses bw/pathspec-cleanup.)
204
+
205
+ Running "git add a/b" when "a" is a submodule correctly errored
206
+ out, but without a meaningful error message.
207
+
208
+
209
+* sb/remove-gitview (2017-01-13) 4 commits
210
+ (merged to 'next' on 2017-01-15 at 7c9eae479e)
211
+ + doc: git-gui browser does not default to HEAD
212
+ + doc: gitk: add the upstream repo location
213
+ + doc: gitk: remove gitview reference
214
+ (merged to 'next' on 2017-01-10 at dcb3abd146)
215
+ + contrib: remove gitview
216
+
217
+ Retire long unused/unmaintained gitview from the contrib/ area.
218
+
219
+
220
+* sb/submodule-cleanup-export-git-dir-env (2017-01-07) 1 commit
221
+ (merged to 'next' on 2017-01-10 at 2d5db6821e)
222
+ + submodule.c: use GIT_DIR_ENVIRONMENT consistently
223
+
224
+ Code cleanup.
225
+
226
+
227
+* sb/submodule-rm-absorb (2016-12-27) 4 commits
228
+ (merged to 'next' on 2017-01-10 at 1fc2000a92)
229
+ + rm: absorb a submodules git dir before deletion
230
+ + submodule: rename and add flags to ok_to_remove_submodule
231
+ + submodule: modernize ok_to_remove_submodule to use argv_array
232
+ + submodule.h: add extern keyword to functions
233
+
234
+ "git rm" used to refuse to remove a submodule when it has its own
235
+ git repository embedded in its working tree. It learned to move
236
+ the repository away to $GIT_DIR/modules/ of the superproject
237
+ instead, and allow the submodule to be deleted (as long as there
238
+ will be no loss of local modifications, that is).
239
+
240
+
241
+* sb/unpack-trees-cleanup (2017-01-10) 3 commits
242
+ (merged to 'next' on 2017-01-10 at 95a5f3127c)
243
+ + unpack-trees: factor progress setup out of check_updates
244
+ + unpack-trees: remove unneeded continue
245
+ + unpack-trees: move checkout state into check_updates
246
+
247
+ Code cleanup.
248
+
249
+
250
+* sp/cygwin-build-fixes (2017-01-09) 2 commits
251
+ (merged to 'next' on 2017-01-10 at 2010fb6c03)
252
+ + Makefile: put LIBS after LDFLAGS for imap-send
253
+ + Makefile: POSIX windres
254
+
255
+ Build updates for Cygwin.
256
+
257
+--------------------------------------------------
258
+[New Topics]
259
+
260
+* jk/coding-guidelines-update (2017-01-17) 1 commit
261
+ - CodingGuidelines: clarify multi-line brace style
262
+
263
+ Developer doc update.
264
265
Will merge to 'next'.
266
267
124
-* sb/submodule-init (2017-01-12) 1 commit
125
- - submodule update --init: display correct path from submodule
268
+* jk/fsck-connectivity-check-fix (2017-01-17) 6 commits
269
+ - fsck: check HAS_OBJ more consistently
270
+ - fsck: do not fallback "git fsck <bogus>" to "git fsck"
271
+ - fsck: tighten error-checks of "git fsck <head>"
272
+ - fsck: prepare dummy objects for --connectivity-check
273
+ - fsck: report trees as dangling
274
+ - t1450: clean up sub-objects in duplicate-entry test
275
127
- Error message fix.
276
+ "git fsck --connectivity-check" was not working at all.
277
278
Will merge to 'next'.
279
280
132
-* vn/diff-ihc-config (2017-01-12) 1 commit
133
- - diff: add interhunk context config option
281
+* js/exec-path-coverity-workaround (2017-01-09) 2 commits
282
+ - git_exec_path: do not return the result of getenv()
283
+ - git_exec_path: avoid Coverity warning about unfree()d result
284
135
- "git diff" learned diff.interHunkContext configuration variable
136
- that gives the default value for its --inter-hunk-context option.
285
+ Code cleanup.
286
287
Will merge to 'next'.
288
+ Split out of another topic.
289
290
141
-* ad/bisect-terms (2017-01-13) 1 commit
142
- - Documentation/bisect: improve on (bad|new) and (good|bad)
291
+* js/mingw-isatty (2017-01-18) 1 commit
292
+ - mingw: follow-up to "replace isatty() hack"
293
144
- Documentation fix.
294
+ An update to a topic that is already in 'master'.
295
296
Will merge to 'next'.
297
298
149
-* bw/attr (2017-01-15) 27 commits
150
- - attr: reformat git_attr_set_direction() function
151
- - attr: push the bare repo check into read_attr()
152
- - attr: store attribute stacks in hashmap
153
- - attr: tighten const correctness with git_attr and match_attr
154
- - attr: remove maybe-real, maybe-macro from git_attr
155
- - attr: eliminate global check_all_attr array
156
- - attr: use hashmap for attribute dictionary
157
- - attr: change validity check for attribute names to use positive logic
158
- - attr: pass struct attr_check to collect_some_attrs
159
- - attr: retire git_check_attrs() API
160
- - attr: convert git_check_attrs() callers to use the new API
161
- - attr: convert git_all_attrs() to use "struct attr_check"
162
- - attr: (re)introduce git_check_attr() and struct attr_check
163
- - attr: rename function and struct related to checking attributes
164
- - attr.c: outline the future plans by heavily commenting
165
- - Documentation/gitattributes.txt: fix a typo
166
- - attr.c: add push_stack() helper
167
- - attr: support quoting pathname patterns in C style
168
- - attr.c: plug small leak in parse_attr_line()
169
- - attr.c: tighten constness around "git_attr" structure
170
- - attr.c: simplify macroexpand_one()
171
- - attr.c: mark where #if DEBUG ends more clearly
172
- - attr.c: complete a sentence in a comment
173
- - attr.c: explain the lack of attr-name syntax check in parse_attr()
174
- - attr.c: update a stale comment on "struct match_attr"
175
- - attr.c: use strchrnul() to scan for one line
176
- - commit.c: use strchrnul() to scan for one line
299
+* js/sequencer-i-countdown-3 (2017-01-17) 38 commits
300
+ - sequencer (rebase -i): write out the final message
301
+ - sequencer (rebase -i): write the progress into files
302
+ - sequencer (rebase -i): show the progress
303
+ - sequencer (rebase -i): suggest --edit-todo upon unknown command
304
+ - sequencer (rebase -i): show only failed cherry-picks' output
305
+ - sequencer (rebase -i): show only failed `git commit`'s output
306
+ - sequencer: use run_command() directly
307
+ - sequencer: update reading author-script
308
+ - sequencer (rebase -i): differentiate between comments and 'noop'
309
+ - sequencer (rebase -i): implement the 'drop' command
310
+ - sequencer (rebase -i): allow rescheduling commands
311
+ - sequencer (rebase -i): respect strategy/strategy_opts settings
312
+ - sequencer (rebase -i): respect the rebase.autostash setting
313
+ - sequencer (rebase -i): run the post-rewrite hook, if needed
314
+ - sequencer (rebase -i): record interrupted commits in rewritten, too
315
+ - sequencer (rebase -i): copy commit notes at end
316
+ - sequencer (rebase -i): set the reflog message consistently
317
+ - sequencer (rebase -i): refactor setting the reflog message
318
+ - sequencer (rebase -i): allow fast-forwarding for edit/reword
319
+ - sequencer (rebase -i): implement the 'reword' command
320
+ - sequencer (rebase -i): leave a patch upon error
321
+ - sequencer (rebase -i): update refs after a successful rebase
322
+ - sequencer (rebase -i): the todo can be empty when continuing
323
+ - sequencer (rebase -i): skip some revert/cherry-pick specific code path
324
+ - sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed
325
+ - sequencer (rebase -i): allow continuing with staged changes
326
+ - sequencer (rebase -i): write an author-script file
327
+ - sequencer (rebase -i): implement the short commands
328
+ - sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
329
+ - sequencer (rebase -i): write the 'done' file
330
+ - sequencer (rebase -i): learn about the 'verbose' mode
331
+ - sequencer (rebase -i): implement the 'exec' command
332
+ - sequencer (rebase -i): implement the 'edit' command
333
+ - sequencer (rebase -i): implement the 'noop' command
334
+ - sequencer: support a new action: 'interactive rebase'
335
+ - sequencer: use a helper to find the commit message
336
+ - sequencer: move "else" keyword onto the same line as preceding brace
337
+ - sequencer: avoid unnecessary curly braces
338
178
- The gitattributes machinery is being taught to work better in a
179
- multi-threaded environment.
339
+ The sequencer machinery has been further enhanced so that a later
340
+ set of patches can start using it to reimplement "rebase -i".
341
181
- Needs review.
342
+ I think I've said everything that needs to be said on this topic;
343
+ will wait for a few days and merge it to 'next', perhaps early next
344
+ week.
345
346
184
-* jk/loose-object-fsck (2017-01-15) 6 commits
185
- - fsck: detect trailing garbage in all object types
186
- - fsck: parse loose object paths directly
187
- - sha1_file: add read_loose_object() function
188
- - t1450: test fsck of packed objects
189
- - sha1_file: fix error message for alternate objects
190
- - t1450: refactor loose-object removal
347
+* jk/clear-delta-base-cache-fix (2017-01-19) 1 commit
348
+ - clear_delta_base_cache(): don't modify hashmap while iterating
349
192
- "git fsck" inspects loose objects more carefully now.
350
+ A crashing bug introduced in v2.11 timeframe has been found (it is
351
+ triggerable only in fast-import) and fixed.
352
194
- Needs review.
353
+ Will merge to 'next'.
354
355
197
-* rh/diff-orderfile-doc (2017-01-15) 2 commits
198
- - diff: document the format of the -O (diff.orderFile) file
199
- - diff: document behavior of relative diff.orderFile
356
+* jk/describe-omit-some-refs (2017-01-19) 6 commits
357
+ - SQUASH???
358
+ - describe: teach describe negative pattern matches
359
+ - describe: teach --match to accept multiple patterns
360
+ - name-rev: add support to exclude refs by pattern match
361
+ - name-rev: extend --refs to accept multiple patterns
362
+ - doc: add documentation for OPT_STRING_LIST
363
201
- Documentation fix.
364
+ "git describe" and "git name-rev" have been taught to take more
365
+ than one refname patterns to restrict the set of refs to base their
366
+ naming output on, and also learned to take negative patterns to
367
+ name refs not to be used for naming via their "--exclude" option.
368
203
- Will merge to 'next'.
369
+ Will merge to 'next' after making sure SQUASH??? is correctly
370
+ squashed in.
371
372
206
-* sb/cd-then-git-can-be-written-as-git-c (2017-01-13) 1 commit
207
- - lib-submodule-update.sh: reduce use of subshell by using "git -C"
373
+* js/remote-rename-with-half-configured-remote (2017-01-19) 2 commits
374
+ - remote rename: more carefully determine whether a remote is configured
375
+ - remote rename: demonstrate a bogus "remote exists" bug
376
209
- Test clean-up.
377
+ With anticipatory tweaking for remotes defined in ~/.gitconfig
378
+ (e.g. "remote.origin.prune" set to true, even though there may or
379
+ may not actually be "origin" remote defined in a particular Git
380
+ repository), "git remote rename" and other commands misinterpreted
381
+ and behaved as if such a non-existing remote actually existed.
382
383
Will merge to 'next'.
384
385
214
-* vn/xdiff-func-context (2017-01-15) 1 commit
215
- - xdiff -W: relax end-of-file function detection
386
+* sb/in-core-index-doc (2017-01-19) 4 commits
387
+ - documentation: retire unfinished documentation
388
+ - cache.h: document add_[file_]to_index
389
+ - cache.h: document remove_index_entry_at
390
+ - cache.h: document index_name_pos
391
217
- "git diff -W" has been taught to handle the case where a new
218
- function is added at the end of the file better.
392
+ Documentation and in-code comments updates.
393
220
- Will hold.
221
- An follow-up change to go back from the line that matches the
222
- funcline to show comments before the function definition is still
223
- being discussed.
394
+ Will merge to 'next'.
395
396
226
-* ws/request-pull-code-cleanup (2017-01-15) 1 commit
227
- - request-pull: drop old USAGE stuff
397
+* sb/retire-convert-objects-from-contrib (2017-01-19) 1 commit
398
+ - contrib: remove git-convert-objects
399
229
- Code clean-up.
400
+ Remove an ancient tool left in contrib/.
401
402
Will merge to 'next'.
403
404
--------------------------------------------------
405
[Stalled]
406
236
-* jk/nofollow-attr-ignore (2016-11-02) 5 commits
237
- . exclude: do not respect symlinks for in-tree .gitignore
238
- . attr: do not respect symlinks for in-tree .gitattributes
239
- . exclude: convert "check_index" into a flags field
240
- . attr: convert "macro_ok" into a flags field
241
- . add open_nofollow() helper
242
-
243
- As we do not follow symbolic links when reading control files like
244
- .gitignore and .gitattributes from the index, match the behaviour
245
- and not follow symbolic links when reading them from the working
246
- tree. This also tightens security a bit by not leaking contents of
247
- an unrelated file in the error messages when it is pointed at by
248
- one of these files that is a symbolic link.
249
-
250
- Perhaps we want to cover .gitmodules too with the same mechanism?
251
-
252
- Ejected for now.
253
-
254
-
255
-* jc/bundle (2016-03-03) 6 commits
256
- - index-pack: --clone-bundle option
257
- - Merge branch 'jc/index-pack' into jc/bundle
258
- - bundle v3: the beginning
259
- - bundle: keep a copy of bundle file name in the in-core bundle header
260
- - bundle: plug resource leak
261
- - bundle doc: 'verify' is not about verifying the bundle
262
-
263
- The beginning of "split bundle", which could be one of the
264
- ingredients to allow "git clone" traffic off of the core server
265
- network to CDN.
266
-
267
- While I think it would make it easier for people to experiment and
268
- build on if the topic is merged to 'next', I am at the same time a
269
- bit reluctant to merge an unproven new topic that introduces a new
270
- file format, which we may end up having to support til the end of
271
- time. It is likely that to support a "prime clone from CDN", it
272
- would need a lot more than just "these are the heads and the pack
273
- data is over there", so this may not be sufficient.
274
-
275
- Will discard.
276
-
277
-
407
* jc/diff-b-m (2015-02-23) 5 commits
408
. WIPWIP
409
. WIP: diff-b-m
@@ -294,207 +423,245 @@ of the repositories listed at
423
--------------------------------------------------
424
[Cooking]
425
297
-* ls/p4-retry-thrice (2016-12-29) 1 commit
298
- (merged to 'next' on 2017-01-10 at c733e27410)
299
- + git-p4: do not pass '-r 0' to p4 commands
426
+* bw/read-blob-data-does-not-modify-index-state (2017-01-11) 1 commit
427
+ (merged to 'next' on 2017-01-18 at f33363fb07)
428
+ + index: improve constness for reading blob data
429
301
- A recent updates to "git p4" was not usable for older p4 but it
302
- could be made to work with minimum changes. Do so.
430
+ Code clean-up.
431
432
Will merge to 'master'.
433
434
307
-* mh/ref-remove-empty-directory (2017-01-07) 23 commits
308
- - files_transaction_commit(): clean up empty directories
309
- - try_remove_empty_parents(): teach to remove parents of reflogs, too
310
- - try_remove_empty_parents(): don't trash argument contents
311
- - try_remove_empty_parents(): rename parameter "name" -> "refname"
312
- - delete_ref_loose(): inline function
313
- - delete_ref_loose(): derive loose reference path from lock
314
- - log_ref_write_1(): inline function
315
- - log_ref_setup(): manage the name of the reflog file internally
316
- - log_ref_write_1(): don't depend on logfile argument
317
- - log_ref_setup(): pass the open file descriptor back to the caller
318
- - log_ref_setup(): improve robustness against races
319
- - log_ref_setup(): separate code for create vs non-create
320
- - log_ref_write(): inline function
321
- - rename_tmp_log(): improve error reporting
322
- - rename_tmp_log(): use raceproof_create_file()
323
- - lock_ref_sha1_basic(): use raceproof_create_file()
324
- - lock_ref_sha1_basic(): inline constant
325
- - raceproof_create_file(): new function
326
- - safe_create_leading_directories(): set errno on SCLD_EXISTS
327
- - safe_create_leading_directories_const(): preserve errno
328
- - t5505: use "for-each-ref" to test for the non-existence of references
329
- - refname_is_safe(): correct docstring
330
- - files_rename_ref(): tidy up whitespace
435
+* ep/commit-static-buf-cleanup (2017-01-13) 2 commits
436
+ - builtin/commit.c: switch to xstrfmt(), instead of snprintf()
437
+ - builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
438
332
- Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
333
- once there no longer is any other branch whose name begins with
334
- "foo/", but we didn't do so so far. Now we do.
439
+ Code clean-up.
440
441
Expecting a reroll.
337
- cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu>
442
+ The tip one would instead be done with strbuf.
443
+ cf. <CA+EOSB=4-TKpi6mr-yVbwRsFrVzE=vo4Y9Qm3VMm7pn=UB1_hQ@mail.gmail.com>
444
445
340
-* pb/test-must-fail-is-for-git (2017-01-09) 2 commits
341
- (merged to 'next' on 2017-01-10 at 5f24a98779)
342
- + t9813: avoid using pipes
343
- + don't use test_must_fail with grep
446
+* jk/grep-e-could-be-extended-beyond-posix (2017-01-11) 1 commit
447
+ (merged to 'next' on 2017-01-18 at dd1b9d1fa8)
448
+ + t7810: avoid assumption about invalid regex syntax
449
345
- Test cleanup.
450
+ Tighten a test to avoid mistaking an extended ERE regexp engine as
451
+ a PRE regexp engine.
452
453
Will merge to 'master'.
454
455
350
-* jk/archive-zip-userdiff-config (2017-01-07) 1 commit
351
- (merged to 'next' on 2017-01-10 at ac42e4958c)
352
- + archive-zip: load userdiff config
456
+* jk/vreport-sanitize (2017-01-11) 2 commits
457
+ (merged to 'next' on 2017-01-18 at 4bbf370981)
458
+ + vreport: sanitize ASCII control chars
459
+ + Revert "vreportf: avoid intermediate buffer"
460
354
- "git archive" did not read the standard configuration files, and
355
- failed to notice a file that is marked as binary via the userdiff
356
- driver configuration.
461
+ An error message with an ASCII control character like '\r' in it
462
+ can alter the message to hide its early part, which is problematic
463
+ when a remote side gives such an error message that the local side
464
+ will relay with a "remote: " prefix.
465
466
Will merge to 'master'.
467
468
361
-* jk/blame-fixes (2017-01-07) 3 commits
362
- (merged to 'next' on 2017-01-10 at 18f909da61)
363
- + blame: output porcelain "previous" header for each file
364
- + blame: handle --no-abbrev
365
- + blame: fix alignment with --abbrev=40
469
+* sb/unpack-trees-super-prefix (2017-01-12) 5 commits
470
+ - SQUASH
471
+ - unpack-trees: support super-prefix option
472
+ - t1001: modernize style
473
+ - t1000: modernize style
474
+ - read-tree: use OPT_BOOL instead of OPT_SET_INT
475
367
- "git blame --porcelain" misidentified the "previous" <commit, path>
368
- pair (aka "source") when contents came from two or more files.
476
+ "git read-tree" and its underlying unpack_trees() machinery learned
477
+ to report problematic paths prefixed with the --super-prefix option.
478
370
- Will merge to 'master'.
479
+ Expecting a reroll.
480
+ The first three are in good shape. The last one needs a better
481
+ explanation and possibly an update to its test.
482
+ cf. <CAGZ79kaHDnVLQr8WLoaD5KKs7EqeW=KbkptF=iHpU5t054Xcdw@mail.gmail.com>
483
484
373
-* jk/rebase-i-squash-count-fix (2017-01-07) 1 commit
374
- (merged to 'next' on 2017-01-10 at d6cfc6ace2)
375
- + rebase--interactive: count squash commits above 10 correctly
485
+* sb/submodule-config-tests (2017-01-12) 2 commits
486
+ (merged to 'next' on 2017-01-18 at bd850f6ad3)
487
+ + t7411: test lookup of uninitialized submodules
488
+ + t7411: quote URLs
489
377
- "git rebase -i" with a recent update started showing an incorrect
378
- count when squashing more than 10 commits.
490
+ Test updates.
491
492
Will merge to 'master'.
493
494
383
-* js/asciidoctor-tweaks (2017-01-13) 2 commits
384
- (merged to 'next' on 2017-01-15 at 8553c6e513)
385
- + asciidoctor: fix user-manual to be built by `asciidoctor`
386
- (merged to 'next' on 2017-01-10 at 087da7b7c1)
387
- + giteveryday: unbreak rendering with AsciiDoctor
495
+* sb/submodule-doc (2017-01-12) 3 commits
496
+ - submodules: add a background story
497
+ - submodule update documentation: don't repeat ourselves
498
+ - submodule documentation: add options to the subcommand
499
389
- Adjust documentation to help AsciiDoctor render better while not
390
- breaking the rendering done by AsciiDoc.
500
+ Needs review.
501
+
502
+
503
+* sb/submodule-embed-gitdir (2017-01-12) 1 commit
504
+ (merged to 'next' on 2017-01-18 at 0a5e24a3f0)
505
+ + submodule absorbgitdirs: mention in docstring help
506
+
507
+ Help-text fix.
508
509
Will merge to 'master'.
510
511
395
-* km/branch-get-push-while-detached (2017-01-07) 1 commit
396
- (merged to 'next' on 2017-01-10 at a7f8af8c55)
397
- + branch_get_push: do not segfault when HEAD is detached
512
+* sb/submodule-init (2017-01-12) 1 commit
513
+ (merged to 'next' on 2017-01-18 at 2e8a38b1cc)
514
+ + submodule update --init: display correct path from submodule
515
399
- "git <cmd> @{push}" on a detached HEAD used to segfault; it has
400
- been corrected to error out with a message.
516
+ Error message fix.
517
518
Will merge to 'master'.
519
520
405
-* sb/remove-gitview (2017-01-13) 4 commits
406
- (merged to 'next' on 2017-01-15 at 7c9eae479e)
407
- + doc: git-gui browser does not default to HEAD
408
- + doc: gitk: add the upstream repo location
409
- + doc: gitk: remove gitview reference
410
- (merged to 'next' on 2017-01-10 at dcb3abd146)
411
- + contrib: remove gitview
521
+* vn/diff-ihc-config (2017-01-12) 1 commit
522
+ (merged to 'next' on 2017-01-18 at ac4915dbe6)
523
+ + diff: add interhunk context config option
524
+
525
+ "git diff" learned diff.interHunkContext configuration variable
526
+ that gives the default value for its --inter-hunk-context option.
527
528
Will merge to 'master'.
529
530
416
-* sb/submodule-cleanup-export-git-dir-env (2017-01-07) 1 commit
417
- (merged to 'next' on 2017-01-10 at 2d5db6821e)
418
- + submodule.c: use GIT_DIR_ENVIRONMENT consistently
531
+* ad/bisect-terms (2017-01-13) 1 commit
532
+ (merged to 'next' on 2017-01-18 at 9f500d6cf5)
533
+ + Documentation/bisect: improve on (bad|new) and (good|bad)
534
420
- Code cleanup.
535
+ Documentation fix.
536
537
Will merge to 'master'.
538
539
425
-* sb/pathspec-errors (2017-01-09) 1 commit
426
- (merged to 'next' on 2017-01-10 at 432375cb62)
427
- + pathspec: give better message for submodule related pathspec error
428
- (this branch uses bw/pathspec-cleanup.)
540
+* bw/attr (2017-01-15) 27 commits
541
+ - attr: reformat git_attr_set_direction() function
542
+ - attr: push the bare repo check into read_attr()
543
+ - attr: store attribute stacks in hashmap
544
+ - attr: tighten const correctness with git_attr and match_attr
545
+ - attr: remove maybe-real, maybe-macro from git_attr
546
+ - attr: eliminate global check_all_attr array
547
+ - attr: use hashmap for attribute dictionary
548
+ - attr: change validity check for attribute names to use positive logic
549
+ - attr: pass struct attr_check to collect_some_attrs
550
+ - attr: retire git_check_attrs() API
551
+ - attr: convert git_check_attrs() callers to use the new API
552
+ - attr: convert git_all_attrs() to use "struct attr_check"
553
+ - attr: (re)introduce git_check_attr() and struct attr_check
554
+ - attr: rename function and struct related to checking attributes
555
+ - attr.c: outline the future plans by heavily commenting
556
+ - Documentation/gitattributes.txt: fix a typo
557
+ - attr.c: add push_stack() helper
558
+ - attr: support quoting pathname patterns in C style
559
+ - attr.c: plug small leak in parse_attr_line()
560
+ - attr.c: tighten constness around "git_attr" structure
561
+ - attr.c: simplify macroexpand_one()
562
+ - attr.c: mark where #if DEBUG ends more clearly
563
+ - attr.c: complete a sentence in a comment
564
+ - attr.c: explain the lack of attr-name syntax check in parse_attr()
565
+ - attr.c: update a stale comment on "struct match_attr"
566
+ - attr.c: use strchrnul() to scan for one line
567
+ - commit.c: use strchrnul() to scan for one line
568
430
- Running "git add a/b" when "a" is a submodule correctly errored
431
- out, but without a meaningful error message.
569
+ The gitattributes machinery is being taught to work better in a
570
+ multi-threaded environment.
571
433
- Will merge to 'master'.
572
+ Needs review.
573
574
436
-* ls/filter-process-delayed (2017-01-08) 1 commit
437
- . convert: add "status=delayed" to filter process protocol
575
+* jk/loose-object-fsck (2017-01-15) 6 commits
576
+ - fsck: detect trailing garbage in all object types
577
+ - fsck: parse loose object paths directly
578
+ - sha1_file: add read_loose_object() function
579
+ - t1450: test fsck of packed objects
580
+ - sha1_file: fix error message for alternate objects
581
+ - t1450: refactor loose-object removal
582
+
583
+ "git fsck" inspects loose objects more carefully now.
584
+
585
+ Will merge to 'next'.
586
+
587
+
588
+* rh/diff-orderfile-doc (2017-01-15) 2 commits
589
+ (merged to 'next' on 2017-01-18 at cc2af9c628)
590
+ + diff: document the format of the -O (diff.orderFile) file
591
+ + diff: document behavior of relative diff.orderFile
592
+
593
+ Documentation fix.
594
439
- Ejected, as does not build when merged to 'pu'.
595
+ Will merge to 'master'.
596
597
442
-* sp/cygwin-build-fixes (2017-01-09) 2 commits
443
- (merged to 'next' on 2017-01-10 at 2010fb6c03)
444
- + Makefile: put LIBS after LDFLAGS for imap-send
445
- + Makefile: POSIX windres
598
+* sb/cd-then-git-can-be-written-as-git-c (2017-01-13) 1 commit
599
+ (merged to 'next' on 2017-01-18 at 8923d2d001)
600
+ + lib-submodule-update.sh: reduce use of subshell by using "git -C"
601
447
- Build updates for Cygwin.
602
+ Test clean-up.
603
604
Will merge to 'master'.
605
606
452
-* jk/execv-dashed-external (2017-01-09) 3 commits
453
- (merged to 'next' on 2017-01-10 at 117b506cb0)
454
- + execv_dashed_external: wait for child on signal death
455
- + execv_dashed_external: stop exiting with negative code
456
- + execv_dashed_external: use child_process struct
607
+* vn/xdiff-func-context (2017-01-15) 1 commit
608
+ - xdiff -W: relax end-of-file function detection
609
458
- Typing ^C to pager, which usually does not kill it, killed Git and
459
- took the pager down as a collateral damage in certain process-tree
460
- structure. This has been fixed.
610
+ "git diff -W" has been taught to handle the case where a new
611
+ function is added at the end of the file better.
612
462
- Will merge to 'master'.
613
+ Will hold.
614
+ An follow-up change to go back from the line that matches the
615
+ funcline to show comments before the function definition is still
616
+ being discussed.
617
618
465
-* rh/mergetool-regression-fix (2017-01-10) 14 commits
466
- (merged to 'next' on 2017-01-10 at e8e00c798b)
467
- + mergetool: fix running in subdir when rerere enabled
468
- + mergetool: take the "-O" out of $orderfile
469
- + t7610: add test case for rerere+mergetool+subdir bug
470
- + t7610: spell 'git reset --hard' consistently
471
- + t7610: don't assume the checked-out commit
472
- + t7610: always work on a test-specific branch
473
- + t7610: delete some now-unnecessary 'git reset --hard' lines
474
- + t7610: run 'git reset --hard' after each test to clean up
475
- + t7610: don't rely on state from previous test
476
- + t7610: use test_when_finished for cleanup tasks
477
- + t7610: move setup code to the 'setup' test case
478
- + t7610: update branch names to match test number
479
- + rev-parse doc: pass "--" to rev-parse in the --prefix example
480
- + .mailmap: record canonical email for Richard Hansen
619
+* ws/request-pull-code-cleanup (2017-01-15) 1 commit
620
+ (merged to 'next' on 2017-01-18 at dfcb1405de)
621
+ + request-pull: drop old USAGE stuff
622
482
- "git mergetool" without any pathspec on the command line that is
483
- run from a subdirectory became no-op in Git v2.11 by mistake, which
484
- has been fixed.
623
+ Code clean-up.
624
625
Will merge to 'master'.
626
627
489
-* sb/unpack-trees-cleanup (2017-01-10) 3 commits
490
- (merged to 'next' on 2017-01-10 at 95a5f3127c)
491
- + unpack-trees: factor progress setup out of check_updates
492
- + unpack-trees: remove unneeded continue
493
- + unpack-trees: move checkout state into check_updates
628
+* mh/ref-remove-empty-directory (2017-01-07) 23 commits
629
+ - files_transaction_commit(): clean up empty directories
630
+ - try_remove_empty_parents(): teach to remove parents of reflogs, too
631
+ - try_remove_empty_parents(): don't trash argument contents
632
+ - try_remove_empty_parents(): rename parameter "name" -> "refname"
633
+ - delete_ref_loose(): inline function
634
+ - delete_ref_loose(): derive loose reference path from lock
635
+ - log_ref_write_1(): inline function
636
+ - log_ref_setup(): manage the name of the reflog file internally
637
+ - log_ref_write_1(): don't depend on logfile argument
638
+ - log_ref_setup(): pass the open file descriptor back to the caller
639
+ - log_ref_setup(): improve robustness against races
640
+ - log_ref_setup(): separate code for create vs non-create
641
+ - log_ref_write(): inline function
642
+ - rename_tmp_log(): improve error reporting
643
+ - rename_tmp_log(): use raceproof_create_file()
644
+ - lock_ref_sha1_basic(): use raceproof_create_file()
645
+ - lock_ref_sha1_basic(): inline constant
646
+ - raceproof_create_file(): new function
647
+ - safe_create_leading_directories(): set errno on SCLD_EXISTS
648
+ - safe_create_leading_directories_const(): preserve errno
649
+ - t5505: use "for-each-ref" to test for the non-existence of references
650
+ - refname_is_safe(): correct docstring
651
+ - files_rename_ref(): tidy up whitespace
652
495
- Code cleanup.
653
+ Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
654
+ once there no longer is any other branch whose name begins with
655
+ "foo/", but we didn't do so so far. Now we do.
656
497
- Will merge to 'master'.
657
+ Expecting a reroll.
658
+ cf. <5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu>
659
+
660
+
661
+* ls/filter-process-delayed (2017-01-08) 1 commit
662
+ . convert: add "status=delayed" to filter process protocol
663
+
664
+ Ejected, as does not build when merged to 'pu'.
665
666
667
* nd/worktree-move (2017-01-09) 6 commits
@@ -507,55 +674,21 @@ of the repositories listed at
674
675
"git worktree" learned move and remove subcommands.
676
510
-
511
-* dt/disable-bitmap-in-auto-gc (2016-12-29) 2 commits
512
- (merged to 'next' on 2017-01-10 at 9f4e89e15d)
513
- + repack: die on incremental + write-bitmap-index
514
- + auto gc: don't write bitmaps for incremental repacks
515
-
516
- It is natural that "git gc --auto" may not attempt to pack
517
- everything into a single pack, and there is no point in warning
518
- when the user has configured the system to use the pack bitmap,
519
- leading to disabling further "gc".
520
-
521
- Will merge to 'master'.
522
-
523
-
524
-* js/mingw-test-push-unc-path (2017-01-07) 1 commit
525
- (merged to 'next' on 2017-01-10 at 249d9f26f3)
526
- + mingw: add a regression test for pushing to UNC paths
527
-
528
- "git push \\server\share\dir" has recently regressed and then
529
- fixed. A test has retroactively been added for this breakage.
530
-
531
- Will merge to 'master'.
677
+ Needs review.
678
679
534
-* nd/log-graph-configurable-colors (2017-01-08) 1 commit
680
+* nd/log-graph-configurable-colors (2017-01-19) 4 commits
681
+ - SQUASH???
682
- log --graph: customize the graph lines with config log.graphColors
683
+ - color.c: trim leading spaces in color_parse_mem()
684
+ - color.c: fix color_parse_mem() with value_len == 0
685
686
Some people feel the default set of colors used by "git log --graph"
687
rather limiting. A mechanism to customize the set of colors has
688
been introduced.
689
541
- Waiting for review comments to be addressed.
542
- cf. <20170109103258.25341-1-pclouds@gmail.com>
543
-
544
-
545
-* sb/submodule-rm-absorb (2016-12-27) 4 commits
546
- (merged to 'next' on 2017-01-10 at 1fc2000a92)
547
- + rm: absorb a submodules git dir before deletion
548
- + submodule: rename and add flags to ok_to_remove_submodule
549
- + submodule: modernize ok_to_remove_submodule to use argv_array
550
- + submodule.h: add extern keyword to functions
551
-
552
- "git rm" used to refuse to remove a submodule when it has its own
553
- git repository embedded in its working tree. It learned to move
554
- the repository away to $GIT_DIR/modules/ of the superproject
555
- instead, and allow the submodule to be deleted (as long as there
556
- will be no loss of local modifications, that is).
557
-
558
- Will merge to 'master'.
690
+ Will merge to 'next' after making sure SQUASH??? is correctly
691
+ squashed in.
692
693
694
* cc/split-index-config (2016-12-26) 21 commits
@@ -597,6 +730,8 @@ of the repositories listed at
730
"git submodule push" learned "--recurse-submodules=only option to
731
push submodules out without pushing the top-level superproject.
732
733
+ Will merge to 'next'.
734
+
735
736
* ls/p4-path-encoding (2016-12-18) 1 commit
737
- git-p4: fix git-p4.pathEncoding for removed files
@@ -609,108 +744,14 @@ of the repositories listed at
744
cf. <7E1C7387-4F37-423F-803D-3B5690B49D40@gmail.com>
745
746
612
-* bw/pathspec-cleanup (2017-01-08) 16 commits
613
- (merged to 'next' on 2017-01-10 at 79291ff506)
614
- + pathspec: rename prefix_pathspec to init_pathspec_item
615
- + pathspec: small readability changes
616
- + pathspec: create strip submodule slash helpers
617
- + pathspec: create parse_element_magic helper
618
- + pathspec: create parse_long_magic function
619
- + pathspec: create parse_short_magic function
620
- + pathspec: factor global magic into its own function
621
- + pathspec: simpler logic to prefix original pathspec elements
622
- + pathspec: always show mnemonic and name in unsupported_magic
623
- + pathspec: remove unused variable from unsupported_magic
624
- + pathspec: copy and free owned memory
625
- + pathspec: remove the deprecated get_pathspec function
626
- + ls-tree: convert show_recursive to use the pathspec struct interface
627
- + dir: convert fill_directory to use the pathspec struct interface
628
- + dir: remove struct path_simplify
629
- + mv: remove use of deprecated 'get_pathspec()'
630
- (this branch is used by sb/pathspec-errors.)
631
-
632
- Code clean-up in the pathspec API.
633
-
634
- Will merge to 'master'.
635
-
636
-
637
-* js/prepare-sequencer-more (2017-01-09) 38 commits
638
- - sequencer (rebase -i): write out the final message
639
- - sequencer (rebase -i): write the progress into files
640
- - sequencer (rebase -i): show the progress
641
- - sequencer (rebase -i): suggest --edit-todo upon unknown command
642
- - sequencer (rebase -i): show only failed cherry-picks' output
643
- - sequencer (rebase -i): show only failed `git commit`'s output
644
- - sequencer: use run_command() directly
645
- - sequencer: make reading author-script more elegant
646
- - sequencer (rebase -i): differentiate between comments and 'noop'
647
- - sequencer (rebase -i): implement the 'drop' command
648
- - sequencer (rebase -i): allow rescheduling commands
649
- - sequencer (rebase -i): respect strategy/strategy_opts settings
650
- - sequencer (rebase -i): respect the rebase.autostash setting
651
- - sequencer (rebase -i): run the post-rewrite hook, if needed
652
- - sequencer (rebase -i): record interrupted commits in rewritten, too
653
- - sequencer (rebase -i): copy commit notes at end
654
- - sequencer (rebase -i): set the reflog message consistently
655
- - sequencer (rebase -i): refactor setting the reflog message
656
- - sequencer (rebase -i): allow fast-forwarding for edit/reword
657
- - sequencer (rebase -i): implement the 'reword' command
658
- - sequencer (rebase -i): leave a patch upon error
659
- - sequencer (rebase -i): update refs after a successful rebase
660
- - sequencer (rebase -i): the todo can be empty when continuing
661
- - sequencer (rebase -i): skip some revert/cherry-pick specific code path
662
- - sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed
663
- - sequencer (rebase -i): allow continuing with staged changes
664
- - sequencer (rebase -i): write an author-script file
665
- - sequencer (rebase -i): implement the short commands
666
- - sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
667
- - sequencer (rebase -i): write the 'done' file
668
- - sequencer (rebase -i): learn about the 'verbose' mode
669
- - sequencer (rebase -i): implement the 'exec' command
670
- - sequencer (rebase -i): implement the 'edit' command
671
- - sequencer (rebase -i): implement the 'noop' command
672
- - sequencer: support a new action: 'interactive rebase'
673
- - sequencer: use a helper to find the commit message
674
- - sequencer: move "else" keyword onto the same line as preceding brace
675
- - sequencer: avoid unnecessary curly braces
676
-
677
- The sequencer has further been extended in preparation to act as a
678
- back-end for "rebase -i".
679
-
680
- Waiting for review comments to be addressed.
681
-
682
-
683
-* bw/realpath-wo-chdir (2017-01-09) 7 commits
684
- (merged to 'next' on 2017-01-10 at ed315a40c8)
685
- + real_path: set errno when max number of symlinks is exceeded
686
- + real_path: prevent redefinition of MAXSYMLINKS
687
- (merged to 'next' on 2016-12-22 at fea8fa870f)
688
- + real_path: canonicalize directory separators in root parts
689
- + real_path: have callers use real_pathdup and strbuf_realpath
690
- + real_path: create real_pathdup
691
- + real_path: convert real_path_internal to strbuf_realpath
692
- + real_path: resolve symlinks by hand
693
- (this branch is tangled with bw/grep-recurse-submodules.)
694
-
695
- The implementation of "real_path()" was to go there with chdir(2)
696
- and call getcwd(3), but this obviously wouldn't be usable in a
697
- threaded environment. Rewrite it to manually resolve relative
698
- paths including symbolic links in path components.
699
-
700
- Will merge to 'master'.
701
-
702
-
703
-* js/difftool-builtin (2017-01-09) 5 commits
704
- - t7800: run both builtin and scripted difftool, for now
747
+* js/difftool-builtin (2017-01-19) 3 commits
748
+ - difftool: retire the scripted version
749
- difftool: implement the functionality in the builtin
750
- difftool: add a skeleton for the upcoming builtin
707
- - git_exec_path: do not return the result of getenv()
708
- - git_exec_path: avoid Coverity warning about unfree()d result
751
752
Rewrite a scripted porcelain "git difftool" in C.
753
712
- Expecting a reroll.
713
- cf. <alpine.DEB.2.20.1701091228460.3469@virtualbox>
754
+ Will merge to 'next'.
755
756
757
* sb/push-make-submodule-check-the-default (2016-11-29) 2 commits
@@ -804,38 +845,37 @@ of the repositories listed at
845
cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
846
847
807
-* st/verify-tag (2016-10-10) 7 commits
848
+* st/verify-tag (2017-01-18) 6 commits
849
- t/t7004-tag: Add --format specifier tests
850
- t/t7030-verify-tag: Add --format specifier tests
851
- builtin/tag: add --format argument for tag -v
852
- builtin/verify-tag: add --format to verify-tag
812
- - tag: add format specifier to gpg_verify_tag
853
- ref-filter: add function to print single ref_array_item
814
- - gpg-interface, tag: add GPG_VERIFY_QUIET flag
854
+ - gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag
855
856
"git tag" and "git verify-tag" learned to put GPG verification
857
status in their "--format=<placeholders>" output format.
858
819
- Waiting for a reroll.
820
- cf. <20161007210721.20437-1-santiago@nyu.edu>
859
+ Will merge to 'next'.
860
861
862
* sg/fix-versioncmp-with-common-suffix (2017-01-12) 8 commits
824
- - versioncmp: generalize version sort suffix reordering
825
- - versioncmp: factor out helper for suffix matching
826
- - versioncmp: use earliest-longest contained suffix to determine sorting order
827
- - versioncmp: cope with common part overlapping with prerelease suffix
828
- - versioncmp: pass full tagnames to swap_prereleases()
829
- - t7004-tag: add version sort tests to show prerelease reordering issues
830
- - t7004-tag: use test_config helper
831
- - t7004-tag: delete unnecessary tags with test_when_finished
863
+ (merged to 'next' on 2017-01-18 at f79c24a291)
864
+ + versioncmp: generalize version sort suffix reordering
865
+ + versioncmp: factor out helper for suffix matching
866
+ + versioncmp: use earliest-longest contained suffix to determine sorting order
867
+ + versioncmp: cope with common part overlapping with prerelease suffix
868
+ + versioncmp: pass full tagnames to swap_prereleases()
869
+ + t7004-tag: add version sort tests to show prerelease reordering issues
870
+ + t7004-tag: use test_config helper
871
+ + t7004-tag: delete unnecessary tags with test_when_finished
872
873
The prereleaseSuffix feature of version comparison that is used in
874
"git tag -l" did not correctly when two or more prereleases for the
875
same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2
876
are there and the code needs to compare 2.0-beta1 and 2.0-beta2).
877
838
- Will merge to 'next'.
878
+ Will merge to 'master'.
879
880
881
* jc/merge-drop-old-syntax (2015-04-29) 1 commit
@@ -853,46 +893,39 @@ of the repositories listed at
893
--------------------------------------------------
894
[Discarded]
895
856
-* sb/attr (2016-11-11) 35 commits
857
- . completion: clone can initialize specific submodules
858
- . clone: add --init-submodule=<pathspec> switch
859
- . submodule update: add `--init-default-path` switch
860
- . pathspec: allow escaped query values
861
- . pathspec: allow querying for attributes
862
- . pathspec: move prefix check out of the inner loop
863
- . pathspec: move long magic parsing out of prefix_pathspec
864
- . Documentation: fix a typo
865
- . attr: keep attr stack for each check
866
- . attr: convert to new threadsafe API
867
- . attr: make git_check_attr_counted static
868
- . attr.c: outline the future plans by heavily commenting
869
- . attr.c: always pass check[] to collect_some_attrs()
870
- . attr.c: introduce empty_attr_check_elems()
871
- . attr.c: correct ugly hack for git_all_attrs()
872
- . attr.c: rename a local variable check
873
- . attr.c: pass struct git_attr_check down the callchain
874
- . attr.c: add push_stack() helper
875
- . attr: support quoting pathname patterns in C style
876
- . attr: expose validity check for attribute names
877
- . attr: add counted string version of git_check_attr()
878
- . attr: retire git_check_attrs() API
879
- . attr: convert git_check_attrs() callers to use the new API
880
- . attr: convert git_all_attrs() to use "struct git_attr_check"
881
- . attr: (re)introduce git_check_attr() and struct git_attr_check
882
- . attr: rename function and struct related to checking attributes
883
- . attr.c: plug small leak in parse_attr_line()
884
- . attr.c: tighten constness around "git_attr" structure
885
- . attr.c: simplify macroexpand_one()
886
- . attr.c: mark where #if DEBUG ends more clearly
887
- . attr.c: complete a sentence in a comment
888
- . attr.c: explain the lack of attr-name syntax check in parse_attr()
889
- . attr.c: update a stale comment on "struct match_attr"
890
- . attr.c: use strchrnul() to scan for one line
891
- . commit.c: use strchrnul() to scan for one line
892
-
893
- The attributes API has been updated so that it can later be
894
- optimized using the knowledge of which attributes are queried.
895
- Building on top of the updated API, the pathspec machinery learned
896
- to select only paths with given attributes set.
897
-
898
- Superseded by bw/attr topic.
896
+* jc/bundle (2016-03-03) 6 commits
897
+ . index-pack: --clone-bundle option
898
+ . Merge branch 'jc/index-pack' into jc/bundle
899
+ . bundle v3: the beginning
900
+ . bundle: keep a copy of bundle file name in the in-core bundle header
901
+ . bundle: plug resource leak
902
+ . bundle doc: 'verify' is not about verifying the bundle
903
+
904
+ The beginning of "split bundle", which could be one of the
905
+ ingredients to allow "git clone" traffic off of the core server
906
+ network to CDN.
907
+
908
+ While I think it would make it easier for people to experiment and
909
+ build on if the topic is merged to 'next', I am at the same time a
910
+ bit reluctant to merge an unproven new topic that introduces a new
911
+ file format, which we may end up having to support til the end of
912
+ time. It is likely that to support a "prime clone from CDN", it
913
+ would need a lot more than just "these are the heads and the pack
914
+ data is over there", so this may not be sufficient.
915
+
916
+
917
+* jk/nofollow-attr-ignore (2016-11-02) 5 commits
918
+ . exclude: do not respect symlinks for in-tree .gitignore
919
+ . attr: do not respect symlinks for in-tree .gitattributes
920
+ . exclude: convert "check_index" into a flags field
921
+ . attr: convert "macro_ok" into a flags field
922
+ . add open_nofollow() helper
923
+
924
+ As we do not follow symbolic links when reading control files like
925
+ .gitignore and .gitattributes from the index, match the behaviour
926
+ and not follow symbolic links when reading them from the working
927
+ tree. This also tightens security a bit by not leaking contents of
928
+ an unrelated file in the error messages when it is pointed at by
929
+ one of these files that is a symbolic link.
930
+
931
+ Perhaps we want to cover .gitmodules too with the same mechanism?