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?