What's cooking (2017/06 #05)

Junio C Hamano committed Jun 19, 2017 at 13:09 UTC 22640fea235c25d9d812db2e46965f38c65f6bf9
1 file changed +415 -308
whats-cooking.txt
+415 -308
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jun 2017, #04; Tue, 13)
4 -X-master-at: 02a2850ad58eff6de70eb2dc5f96345c463857ac
5 -X-next-at: 1d7a3356d075f99e85512d28ce621fe2de69778c
3 +Subject: What's cooking in git.git (Jun 2017, #05; Mon, 19)
4 +X-master-at: 05ec6e13aaf33b6a647e1321203a770e697eea9a
5 +X-next-at: 0b547a2794f32e58c5c5c23c1b30b5e3920b2855
6
7 -What's cooking in git.git (Jun 2017, #04; Tue, 13)
7 +What's cooking in git.git (Jun 2017, #05; Mon, 19)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,98 +20,327 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* jc/diff-tree-stale-comment (2017-06-02) 1 commit
24 - (merged to 'next' on 2017-06-04 at bffae281d2)
25 - + diff-tree: update stale in-code comments
23 +* ab/pcre-v2 (2017-06-02) 8 commits
24 + (merged to 'next' on 2017-06-13 at 34bf49ee44)
25 + + grep: add support for PCRE v2
26 + + grep: un-break building with PCRE >= 8.32 without --enable-jit
27 + + grep: un-break building with PCRE < 8.20
28 + + grep: un-break building with PCRE < 8.32
29 + + grep: add support for the PCRE v1 JIT API
30 + + log: add -P as a synonym for --perl-regexp
31 + + grep: skip pthreads overhead when using one thread
32 + + grep: don't redundantly compile throwaway patterns under threading
33 +
34 + Update "perl-compatible regular expression" support to enable JIT
35 + and also allow linking with the newer PCRE v2 library.
36 +
37 +
38 +* ab/perf-remove-index-lock (2017-06-05) 1 commit
39 + (merged to 'next' on 2017-06-13 at c532e59233)
40 + + perf: work around the tested repo having an index.lock
41 +
42 + When an existing repository is used for t/perf testing, we first
43 + create bit-for-bit copy of it, which may grab a transient state of
44 + the repository and freeze it into the repository used for testing,
45 + which then may cause Git operations to fail. Single out "the index
46 + being locked" case and forcibly drop the lock from the copy.
47 +
48 +
49 +* bw/object-id (2017-06-05) 33 commits
50 + (merged to 'next' on 2017-06-13 at 0582278759)
51 + + diff: rename diff_fill_sha1_info to diff_fill_oid_info
52 + + diffcore-rename: use is_empty_blob_oid
53 + + tree-diff: convert path_appendnew to object_id
54 + + tree-diff: convert diff_tree_paths to struct object_id
55 + + tree-diff: convert try_to_follow_renames to struct object_id
56 + + builtin/diff-tree: cleanup references to sha1
57 + + diff-tree: convert diff_tree_sha1 to struct object_id
58 + + notes-merge: convert write_note_to_worktree to struct object_id
59 + + notes-merge: convert verify_notes_filepair to struct object_id
60 + + notes-merge: convert find_notes_merge_pair_ps to struct object_id
61 + + notes-merge: convert merge_from_diffs to struct object_id
62 + + notes-merge: convert notes_merge* to struct object_id
63 + + tree-diff: convert diff_root_tree_sha1 to struct object_id
64 + + combine-diff: convert find_paths_* to struct object_id
65 + + combine-diff: convert diff_tree_combined to struct object_id
66 + + diff: convert diff_flush_patch_id to struct object_id
67 + + patch-ids: convert to struct object_id
68 + + diff: finish conversion for prepare_temp_file to struct object_id
69 + + diff: convert reuse_worktree_file to struct object_id
70 + + diff: convert fill_filespec to struct object_id
71 + + diff: convert diff_change to struct object_id
72 + + diff: convert run_diff_files to struct object_id
73 + + diff: convert diff_addremove to struct object_id
74 + + diff: convert diff_index_show_file to struct object_id
75 + + diff: convert get_stat_data to struct object_id
76 + + grep: convert to struct object_id
77 + + notes: convert some accessor functions to struct object_id
78 + + builtin/notes: convert to struct object_id
79 + + notes: convert format_display_notes to struct object_id
80 + + notes: make get_note return pointer to struct object_id
81 + + notes: convert for_each_note to struct object_id
82 + + notes: convert internal parts to struct object_id
83 + + notes: convert internal structures to struct object_id
84 +
85 + Conversion from uchar[20] to struct object_id continues.
86 +
87 +
88 +* jk/consistent-h (2017-06-05) 8 commits
89 + (merged to 'next' on 2017-06-13 at e09c1fe968)
90 + + t0012: test "-h" with builtins
91 + + git: add hidden --list-builtins option
92 + + version: convert to parse-options
93 + + diff- and log- family: handle "git cmd -h" early
94 + + submodule--helper: show usage for "-h"
95 + + remote-{ext,fd}: print usage message on invalid arguments
96 + + upload-archive: handle "-h" option early
97 + + credential: handle invalid arguments earlier
98 +
99 + "git $cmd -h" for builtin commands calls the implementation of the
100 + command (i.e. cmd_$cmd() function) without doing any repository
101 + set-up, and the commands that expect RUN_SETUP is done by the Git
102 + potty needs to be prepared to show the help text without barfing.
103 +
104 +
105 +* jk/pathspec-magic-disambiguation (2017-05-29) 6 commits
106 + (merged to 'next' on 2017-06-13 at 088987f033)
107 + + verify_filename(): flip order of checks
108 + + verify_filename(): treat ":(magic)" as a pathspec
109 + + check_filename(): handle ":^" path magic
110 + + check_filename(): use skip_prefix
111 + + check_filename(): refactor ":/" handling
112 + + t4208: add check for ":/" without matching file
113 +
114 + The convention for a command line is to follow "git cmdname
115 + --options" with revisions followed by an optional "--"
116 + disambiguator and then finally pathspecs. When "--" is not there,
117 + we make sure early ones are all interpretable as revs (and do not
118 + look like paths) and later ones are the other way around. A
119 + pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from
120 + the top-level of the working tree, no matter what subdirectory you
121 + are working from) are conservatively judged as "not a path", which
122 + required disambiguation more often. The command line parser
123 + learned to say "it's a pathspec" a bit more often when the syntax
124 + looks like so.
125 +
126 +
127 +* sb/submodule-rm-absorb (2017-06-04) 1 commit
128 + (merged to 'next' on 2017-06-13 at ed902e8fb4)
129 + + Documentation/git-rm: correct submodule description
130 +
131 + Doc update to a recently graduated topic.
132 +
133 +--------------------------------------------------
134 +[New Topics]
135
27 - Comment fix.
136 +* ab/free-and-null (2017-06-16) 6 commits
137 + - *.[ch] refactoring: make use of the FREE_AND_NULL() macro
138 + - coccinelle: make use of the "expression" FREE_AND_NULL() rule
139 + - coccinelle: add a rule to make "expression" code use FREE_AND_NULL()
140 + - coccinelle: make use of the "type" FREE_AND_NULL() rule
141 + - coccinelle: add a rule to make "type" code use FREE_AND_NULL()
142 + - git-compat-util: add a FREE_AND_NULL() wrapper around free(ptr); ptr = NULL
143
144 + A common pattern to free a piece of memory and assign NULL to the
145 + pointer that used to point at it has been replaced with a new
146 + FREE_AND_NULL() macro.
147 +
148 + Will merge to 'next'.
149
30 -* jc/noent-notdir (2017-05-30) 2 commits
31 - (merged to 'next' on 2017-06-04 at 7cb4efbc3c)
32 - + treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked
33 - + compat-util: is_missing_file_error()
150
35 - Our code often opens a path to an optional file, to work on its
36 - contents when we can successfully open it. We can ignore a failure
37 - to open if such an optional file does not exist, but we do want to
38 - report a failure in opening for other reasons (e.g. we got an I/O
39 - error, or the file is there, but we lack the permission to open).
151 +* ab/wildmatch-glob-slash-test (2017-06-15) 1 commit
152 + - wildmatch test: cover a blind spot in "/" matching
153
41 - The exact errors we need to ignore are ENOENT (obviously) and
42 - ENOTDIR (less obvious). Instead of repeating comparison of errno
43 - with these two constants, introduce a helper function to do so.
154 + A new test to show the interaction between the pattern [^a-z]
155 + (which matches '/') and a slash in a path has been added. The
156 + pattern should not match the slash with "pathmatch", but should
157 + with "wildmatch".
158
159 + Will merge to 'next'.
160
46 -* jk/pack-idx-corruption-safety (2017-06-07) 1 commit
47 - (merged to 'next' on 2017-06-07 at 31f94e174d)
48 - + t5313: make extended-table test more deterministic
161
50 - A flaky test has been corrected.
162 +* ah/doc-gitattributes-empty-index (2017-06-15) 1 commit
163 + - doc: do not use `rm .git/index` when normalizing line endings
164
165 + An example in documentation that does not work in multi worktree
166 + configuration has been corrected.
167
53 -* nd/fopen-errors (2017-06-02) 13 commits
54 - (merged to 'next' on 2017-06-04 at 7a755e73bb)
55 - + mingw_fopen: report ENOENT for invalid file names
56 - + mingw: verify that paths are not mistaken for remote nicknames
57 - + log: fix memory leak in open_next_file()
58 - + rerere.c: move error_errno() closer to the source system call
59 - + print errno when reporting a system call error
60 - + wrapper.c: make warn_on_inaccessible() static
61 - + wrapper.c: add and use fopen_or_warn()
62 - + wrapper.c: add and use warn_on_fopen_errors()
63 - + config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too
64 - + config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
65 - + clone: use xfopen() instead of fopen()
66 - + use xfopen() in more places
67 - + git_fopen: fix a sparse 'not declared' warning
168 + Will merge to 'next'.
169
69 - We often try to open a file for reading whose existence is
70 - optional, and silently ignore errors from open/fopen; report such
71 - errors if they are not due to missing files.
170
171 +* jk/diff-highlight-module (2017-06-15) 1 commit
172 + - diff-highlight: split code into module
173 +
174 + The 'diff-highlight' program (in contrib/) has been restructured
175 + for easier reuse by an external project 'diff-so-fancy'.
176 +
177 + Will merge to 'next'.
178
74 -* rf/completion (2017-06-02) 6 commits
75 - (merged to 'next' on 2017-06-04 at dde1e34703)
76 - + completion: add git config credentialCache.ignoreSIGHUP
77 - + completion: add git config credential completions
78 - + completion: add git config advice completions
79 - + completion: add git config am.threeWay completion
80 - + completion: add git config core completions
81 - + completion: add git config gc completions
179
83 - Completion updates.
180 +* jt/unify-object-info (2017-06-15) 4 commits
181 + - sha1_file, fsck: add missing blob support
182 + - sha1_file: consolidate storage-agnostic object fns
183 + - sha1_file: move delta base cache code up
184 + - sha1_file: teach packed_object_info about typename
185
186 + Code clean-ups.
187
86 -* sb/submodule-blanket-recursive (2017-06-01) 9 commits
87 - (merged to 'next' on 2017-06-04 at 418bb03032)
88 - + builtin/fetch.c: respect 'submodule.recurse' option
89 - + builtin/push.c: respect 'submodule.recurse' option
90 - + builtin/grep.c: respect 'submodule.recurse' option
91 - + Introduce 'submodule.recurse' option for worktree manipulators
92 - + submodule loading: separate code path for .gitmodules and config overlay
93 - + reset/checkout/read-tree: unify config callback for submodule recursion
94 - + submodule test invocation: only pass additional arguments
95 - + submodule recursing: do not write a config variable twice
96 - + Merge branch 'ab/grep-preparatory-cleanup' into sb/submodule-blanket-recursive
188 + I seem to have made a mistake during my review of the previous
189 + one, and took this one in a wrong direction. A better organization
190 + was suggested.
191 + cf. <20170617121934.a6onn7f2luhkuuym@sigill.intra.peff.net>
192
98 - Many commands learned to pay attention to submodule.recurse
99 - configuration.
193
101 - It is not known if a simple "yes/no" is sufficient in the longer
102 - term, and what should happen when --recurse-submodules option starts
103 - taking "recurse into them how?" parameter, though.
194 +* rs/pretty-add-again (2017-06-15) 1 commit
195 + - pretty: recalculate duplicate short hashes
196 +
197 + The pretty-format specifiers like '%h', '%t', etc. had an
198 + optimization that no longer works correctly. In preparation/hope
199 + of getting it correctly implemented, first discard the optimization
200 + that is broken.
201 +
202 + Will merge to 'next'.
203 +
204 +
205 +* sg/doc-pretty-formats (2017-06-15) 1 commit
206 + - docs/pretty-formats: stress that %- removes all preceding line-feeds
207 +
208 + Doc update.
209 +
210 + Will merge to 'next'.
211 +
212 +
213 +* sn/reset-doc-typofix (2017-06-15) 1 commit
214 + - doc: git-reset: fix a trivial typo
215 +
216 + Doc update.
217 +
218 + Will merge to 'next'.
219 +
220 +
221 +* nd/fopen-errors (2017-06-15) 1 commit
222 + (merged to 'next' on 2017-06-15 at 86bcb7c082)
223 + + configure.ac: loosen FREAD_READS_DIRECTORIES test program
224 +
225 + Hotfix for a topic that is already in 'master'.
226 +
227 + Will merge to 'next'.
228 +
229 +
230 +* da/mergetools-meld-output-opt-on-macos (2017-06-18) 1 commit
231 + - mergetools/meld: improve compatibiilty with Meld on macOS X
232 +
233 + "git mergetool" learned to work around a wrapper MacOS X adds
234 + around underlying meld.
235 +
236 + Will merge to 'next'.
237 +
238 +
239 +* ks/status-initial-commit (2017-06-18) 4 commits
240 + - SQUASH???
241 + - Add test for the new status message
242 + - SQUASH???
243 + - Contextually notify user about an initial commit
244 +
245 + "git status" has long shown essentially the same message as "git
246 + commit"; the message it gives while preparing for the root commit,
247 + i.e. "Initial commit", was hard to understand for some new users.
248 + Now it says "No commits yet" to stress more on the current status
249 + (rather than the commit the user is preparing for, which is more in
250 + line with the focus of "git commit").
251 +
252 + Expecting a reroll.
253 + cf. <20170619024123.5438-1-kaarticsivaraam91196@gmail.com>
254 +
255 +
256 +* lb/status-stash-count (2017-06-18) 3 commits
257 + - glossary: define 'stash entry'
258 + - status: add optional stash count information
259 + - stash: update documentation to use 'stash entry'
260 +
261 + "git status" learned to optionally give how many stash entries the
262 + user has in its output.
263 +
264 + Will merge to 'next'.
265 +
266 +
267 +* mh/packed-ref-store (2017-06-18) 28 commits
268 + - read_packed_refs(): die if `packed-refs` contains bogus data
269 + - repack_without_refs(): don't lock or unlock the packed refs
270 + - commit_packed_refs(): remove call to `packed_refs_unlock()`
271 + - clear_packed_ref_cache(): don't protest if the lock is held
272 + - packed_refs_unlock(), packed_refs_is_locked(): new functions
273 + - packed_refs_lock(): report errors via a `struct strbuf *err`
274 + - packed_refs_lock(): function renamed from lock_packed_refs()
275 + - commit_packed_refs(): use a staging file separate from the lockfile
276 + - commit_packed_refs(): report errors rather than dying
277 + - packed_ref_store: make class into a subclass of `ref_store`
278 + - packed-backend: new module for handling packed references
279 + - packed_read_raw_ref(): new function, replacing `resolve_packed_ref()`
280 + - packed_ref_store: support iteration
281 + - packed_peel_ref(): new function, extracted from `files_peel_ref()`
282 + - repack_without_refs(): take a `packed_ref_store *` parameter
283 + - get_packed_ref(): take a `packed_ref_store *` parameter
284 + - rollback_packed_refs(): take a `packed_ref_store *` parameter
285 + - commit_packed_refs(): take a `packed_ref_store *` parameter
286 + - lock_packed_refs(): take a `packed_ref_store *` parameter
287 + - add_packed_ref(): take a `packed_ref_store *` parameter
288 + - get_packed_refs(): take a `packed_ref_store *` parameter
289 + - get_packed_ref_cache(): take a `packed_ref_store *` parameter
290 + - validate_packed_ref_cache(): take a `packed_ref_store *` parameter
291 + - clear_packed_ref_cache(): take a `packed_ref_store *` parameter
292 + - packed_ref_store: move `packed_refs_lock` member here
293 + - packed_ref_store: move `packed_refs_path` here
294 + - packed_ref_store: new struct
295 + - add_packed_ref(): teach function to overwrite existing refs
296 + (this branch uses mh/packed-ref-store-prep.)
297 +
298 + The "ref-store" code reorganization continues.
299 +
300 + Seems to break the promise that packed-refs are covered by loose
301 + refs and the former that points at a missing garbage is not an
302 + error.
303 + cf. <20170619195330.fhjlfiqmcwhgttaa@sigill.intra.peff.net>
304
305 --------------------------------------------------
106 -[New Topics]
306 +[Stalled]
307
108 -* js/alias-early-config (2017-06-13) 6 commits
109 - - Use the early config machinery to expand aliases
308 +* mg/status-in-progress-info (2017-05-10) 2 commits
309 + - status --short --inprogress: spell it as --in-progress
310 + - status: show in-progress info for short status
311 +
312 + "git status" learns an option to report various operations
313 + (e.g. "merging") that the user is in the middle of.
314 +
315 + cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
316 +
317 +
318 +* nd/worktree-move (2017-04-20) 6 commits
319 + - worktree remove: new command
320 + - worktree move: refuse to move worktrees with submodules
321 + - worktree move: accept destination as directory
322 + - worktree move: new command
323 + - worktree.c: add update_worktree_location()
324 + - worktree.c: add validate_worktree()
325 +
326 + "git worktree" learned move and remove subcommands.
327 +
328 + Expecting a reroll.
329 + cf. <20170420101024.7593-1-pclouds@gmail.com>
330 + cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
331 + cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
332 +
333 +--------------------------------------------------
334 +[Cooking]
335 +
336 +* js/alias-early-config (2017-06-15) 6 commits
337 + - alias: use the early config machinery to expand aliases
338 - t7006: demonstrate a problem with aliases in subdirectories
339 - t1308: relax the test verifying that empty alias values are disallowed
340 - help: use early config when autocorrecting aliases
341 - config: report correct line number upon error
342 - discover_git_directory(): avoid setting invalid git_dir
343 + (this branch is used by bw/config-h.)
344
345 The code to pick up and execute command alias definition from the
346 configuration used to switch to the top of the working tree and
@@ -119,44 +348,54 @@ of the repositories listed at
348 unnecessarilyl complex. Attempt to simplify the logic by using the
349 early-config mechanism that does not chdir around.
350
122 - Waiting for discussion to settle.
351 + Will merge to 'next'.
352
353
354 * pc/dir-count-slashes (2017-06-12) 1 commit
126 - - dir: create function count_slashes()
355 + (merged to 'next' on 2017-06-19 at 57351a2771)
356 + + dir: create function count_slashes()
357
358 Three instances of the same helper function have been consolidated
359 to one.
360
131 - Will merge to 'next'.
361 + Will merge to 'master'.
362
363
364 * sb/t4005-modernize (2017-06-10) 1 commit
135 - - t4005: modernize style and drop hard coded sha1
365 + (merged to 'next' on 2017-06-19 at beedeb757b)
366 + + t4005: modernize style and drop hard coded sha1
367
368 Test clean-up.
369
139 - Will merge to 'next'.
370 + Will merge to 'master'.
371
372
373 * ah/filter-branch-setup (2017-06-12) 2 commits
143 - - filter-branch: add [--] to usage
144 - - filter-branch: add `--setup` step
374 + (merged to 'next' on 2017-06-19 at f3440f2c1a)
375 + + filter-branch: add [--] to usage
376 + + filter-branch: add `--setup` step
377
378 "filter-branch" learned a pseudo filter "--setup" that can be used
379 to define a common function/variable that can be used by other
380 filters.
381
150 - Will merge to 'next'.
382 + Will merge to 'master'.
383
384
153 -* bw/config-h (2017-06-13) 4 commits
154 - - config: don't implicitly use gitdir
385 +* bw/config-h (2017-06-15) 6 commits
386 + - config: don't implicitly use gitdir or commondir
387 + - config: respect commondir
388 + - setup: teach discover_git_directory to respect the commondir
389 - config: don't include config.h by default
390 - config: remove git_config_iter
391 - config: create config.h
392 + (this branch uses js/alias-early-config.)
393
159 - Code clean-up.
394 + Fix configuration codepath to pay proper attention to commondir
395 + that is used in multi-worktree situation, and isolate config API
396 + into its own header file.
397 +
398 + Will merge to 'next'.
399
400
401 * bw/ls-files-sans-the-index (2017-06-13) 17 commits
@@ -180,12 +419,10 @@ of the repositories listed at
419
420 Code clean-up.
421
183 -
184 -* jc/pretty-add-again (2017-06-13) 1 commit
185 - - add_again() off-by-one error in custom format
422 + Will merge to 'next'.
423
424
188 -* jk/warn-add-gitlink (2017-06-13) 2 commits
425 +* jk/warn-add-gitlink (2017-06-15) 2 commits
426 - t: move "git add submodule" into test blocks
427 - add: warn when adding an embedded repository
428
@@ -194,47 +431,56 @@ of the repositories listed at
431 would appear as a not-quite-initialized submodule to others. We
432 learned to give warnings when this happens.
433
434 + Will merge to 'next'.
435 +
436
437 * km/test-mailinfo-b-failure (2017-06-12) 1 commit
199 - - t5100: add some more mailinfo tests
438 + (merged to 'next' on 2017-06-19 at badc2c2337)
439 + + t5100: add some more mailinfo tests
440
441 New tests.
442
203 - Will merge to 'next'.
443 + Will merge to 'master'.
444
445
446 * ls/github (2017-06-13) 1 commit
207 - - Configure Git contribution guidelines for github.com
447 + (merged to 'next' on 2017-06-19 at 4d2024615f)
448 + + Configure Git contribution guidelines for github.com
449
450 Help contributors that visit us at GitHub.
451
211 - Will merge to 'next'.
452 + Will merge to 'master'.
453
454
455 * mh/fast-import-raise-default-depth (2017-06-12) 1 commit
215 - - fast-import: increase the default pack depth to 50
456 + (merged to 'next' on 2017-06-19 at 7093c07b8e)
457 + + fast-import: increase the default pack depth to 50
458
459 "fast-import" uses a default pack chain depth that is consistent
460 with other parts of the system.
461
220 - Will merge to 'next'.
462 + Will merge to 'master'.
463
464
223 -* mh/packed-ref-store-prep (2017-06-12) 1 commit
465 +* mh/packed-ref-store-prep (2017-06-18) 3 commits
466 + - prefix_ref_iterator_advance(): relax the check of trim length
467 + - for_each_bisect_ref(): don't trim refnames
468 - lock_packed_refs(): fix cache validity check
469 + (this branch is used by mh/packed-ref-store.)
470
471 Bugfix for a topic that is (only) in 'master'.
472
228 - Will merge to 'next'.
473 + Will merge the first two to 'next'.
474
475
476 * ps/stash-push-pathspec-fix (2017-06-13) 1 commit
232 - - git-stash: fix pushing stash with pathspec from subdir
477 + (merged to 'next' on 2017-06-19 at 866c9035e0)
478 + + git-stash: fix pushing stash with pathspec from subdir
479
480 "git stash push <pathspec>" did not work from a subdirectory at all.
481 Bugfix for a topic in v2.13
482
237 - Will merge to 'next'.
483 + Will merge to 'master'.
484
485
486 * sb/submodule-doc (2017-06-13) 1 commit
@@ -242,16 +488,19 @@ of the repositories listed at
488
489 Doc update.
490
491 + Waiting for discussion to settle.
492 +
493
494 * sd/t3200-branch-m-test (2017-06-13) 1 commit
247 - - t3200: add test for single parameter passed to -m option
495 + (merged to 'next' on 2017-06-19 at 0fd712c46e)
496 + + t3200: add test for single parameter passed to -m option
497
498 New test.
499
251 - Will merge to 'next'.
500 + Will merge to 'master'.
501
502
254 -* sd/branch-copy (2017-06-13) 3 commits
503 +* sd/branch-copy (2017-06-18) 3 commits
504 - branch: add a --copy (-c) option to go with --move (-m)
505 - branch: add test for -m renaming multiple config sections
506 - config: create a function to format section headers
@@ -259,147 +508,34 @@ of the repositories listed at
508 "git branch" learned "-c/-C" to create and switch to a new branch
509 by copying an existing one.
510
511 + Has a bit of interaction with two other topics, so perhaps needs to
512 + wait for them to stabilize a bit more.
513
263 ---------------------------------------------------
264 -[Stalled]
265 -
266 -* mg/status-in-progress-info (2017-05-10) 2 commits
267 - - status --short --inprogress: spell it as --in-progress
268 - - status: show in-progress info for short status
514
270 - "git status" learns an option to report various operations
271 - (e.g. "merging") that the user is in the middle of.
272 -
273 - cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
274 -
275 -
276 -* mg/name-rev-debug (2017-03-31) 2 commits
277 - - describe: pass --debug down to name-rev
278 - - name-rev: provide debug output
279 -
280 - "git describe --debug --contains" did not add any meaningful
281 - information, even though without "--contains" it did.
282 -
283 - Will discard for now.
284 - cf. <c85bc2a1-56d8-8a02-6089-2b8cb3d39e99@grubix.eu>
285 -
286 -
287 -* nd/worktree-move (2017-04-20) 6 commits
288 - - worktree remove: new command
289 - - worktree move: refuse to move worktrees with submodules
290 - - worktree move: accept destination as directory
291 - - worktree move: new command
292 - - worktree.c: add update_worktree_location()
293 - - worktree.c: add validate_worktree()
294 -
295 - "git worktree" learned move and remove subcommands.
296 -
297 - Expecting a reroll.
298 - cf. <20170420101024.7593-1-pclouds@gmail.com>
299 - cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
300 - cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
301 -
302 -
303 -* sk/dash-is-previous (2017-03-01) 5 commits
304 - . revert.c: delegate handling of "-" shorthand to setup_revisions
305 - . sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}"
306 - . revision.c: args starting with "-" might be a revision
307 - . revision.c: swap if/else blocks
308 - . revision.c: do not update argv with unknown option
309 -
310 - A dash "-" can be written to mean "the branch that was previously
311 - checked out" in more places.
312 -
313 - Ejected, as it seems that making -.. to mean @{-1}..HEAD etc. are
314 - going too far.
315 -
316 ---------------------------------------------------
317 -[Cooking]
318 -
319 -* bw/object-id (2017-06-05) 33 commits
320 - (merged to 'next' on 2017-06-13 at 0582278759)
321 - + diff: rename diff_fill_sha1_info to diff_fill_oid_info
322 - + diffcore-rename: use is_empty_blob_oid
323 - + tree-diff: convert path_appendnew to object_id
324 - + tree-diff: convert diff_tree_paths to struct object_id
325 - + tree-diff: convert try_to_follow_renames to struct object_id
326 - + builtin/diff-tree: cleanup references to sha1
327 - + diff-tree: convert diff_tree_sha1 to struct object_id
328 - + notes-merge: convert write_note_to_worktree to struct object_id
329 - + notes-merge: convert verify_notes_filepair to struct object_id
330 - + notes-merge: convert find_notes_merge_pair_ps to struct object_id
331 - + notes-merge: convert merge_from_diffs to struct object_id
332 - + notes-merge: convert notes_merge* to struct object_id
333 - + tree-diff: convert diff_root_tree_sha1 to struct object_id
334 - + combine-diff: convert find_paths_* to struct object_id
335 - + combine-diff: convert diff_tree_combined to struct object_id
336 - + diff: convert diff_flush_patch_id to struct object_id
337 - + patch-ids: convert to struct object_id
338 - + diff: finish conversion for prepare_temp_file to struct object_id
339 - + diff: convert reuse_worktree_file to struct object_id
340 - + diff: convert fill_filespec to struct object_id
341 - + diff: convert diff_change to struct object_id
342 - + diff: convert run_diff_files to struct object_id
343 - + diff: convert diff_addremove to struct object_id
344 - + diff: convert diff_index_show_file to struct object_id
345 - + diff: convert get_stat_data to struct object_id
346 - + grep: convert to struct object_id
347 - + notes: convert some accessor functions to struct object_id
348 - + builtin/notes: convert to struct object_id
349 - + notes: convert format_display_notes to struct object_id
350 - + notes: make get_note return pointer to struct object_id
351 - + notes: convert for_each_note to struct object_id
352 - + notes: convert internal parts to struct object_id
353 - + notes: convert internal structures to struct object_id
354 -
355 - Conversion from uchar[20] to struct object_id continues.
356 -
357 - Will merge to 'master'.
358 -
359 -
360 -* rs/strbuf-addftime-zZ (2017-06-10) 2 commits
361 - - date: use localtime() for "-local" time formats
362 - - strbuf: let strbuf_addftime handle %z and %Z itself
515 +* rs/strbuf-addftime-zZ (2017-06-15) 3 commits
516 + (merged to 'next' on 2017-06-19 at 77480669f0)
517 + + date: use localtime() for "-local" time formats
518 + + t0006: check --date=format zone offsets
519 + + strbuf: let strbuf_addftime handle %z and %Z itself
520
521 As there is no portable way to pass timezone information to
522 strftime, some output format from "git log" and friends are
523 impossible to produce. Teach our own strbuf_addftime to replace %z
524 and %Z with caller-supplied values to help working around this.
525
369 - Will merge to 'next'.
370 -
371 -
372 -* sb/submodule-rm-absorb (2017-06-04) 1 commit
373 - (merged to 'next' on 2017-06-13 at ed902e8fb4)
374 - + Documentation/git-rm: correct submodule description
375 -
376 - Doc update to a recently graduated topic.
377 -
526 Will merge to 'master'.
527
528
529 * sg/revision-parser-skip-prefix (2017-06-12) 5 commits
382 - - revision.c: use skip_prefix() in handle_revision_pseudo_opt()
383 - - revision.c: use skip_prefix() in handle_revision_opt()
384 - - revision.c: stricter parsing of '--early-output'
385 - - revision.c: stricter parsing of '--no-{min,max}-parents'
386 - - revision.h: turn rev_info.early_output back into an unsigned int
530 + (merged to 'next' on 2017-06-19 at 0a90bec767)
531 + + revision.c: use skip_prefix() in handle_revision_pseudo_opt()
532 + + revision.c: use skip_prefix() in handle_revision_opt()
533 + + revision.c: stricter parsing of '--early-output'
534 + + revision.c: stricter parsing of '--no-{min,max}-parents'
535 + + revision.h: turn rev_info.early_output back into an unsigned int
536
537 Code clean-up.
538
390 - Will merge to 'next'.
391 -
392 -
393 -* ab/perf-remove-index-lock (2017-06-05) 1 commit
394 - (merged to 'next' on 2017-06-13 at c532e59233)
395 - + perf: work around the tested repo having an index.lock
396 -
397 - When an existing repository is used for t/perf testing, we first
398 - create bit-for-bit copy of it, which may grab a transient state of
399 - the repository and freeze it into the repository used for testing,
400 - which then may cause Git operations to fail. Single out "the index
401 - being locked" case and forcibly drop the lock from the copy.
402 -
539 Will merge to 'master'.
540
541
@@ -416,73 +552,16 @@ of the repositories listed at
552 Needs review.
553
554
419 -* jk/consistent-h (2017-06-05) 8 commits
420 - (merged to 'next' on 2017-06-13 at e09c1fe968)
421 - + t0012: test "-h" with builtins
422 - + git: add hidden --list-builtins option
423 - + version: convert to parse-options
424 - + diff- and log- family: handle "git cmd -h" early
425 - + submodule--helper: show usage for "-h"
426 - + remote-{ext,fd}: print usage message on invalid arguments
427 - + upload-archive: handle "-h" option early
428 - + credential: handle invalid arguments earlier
429 -
430 - "git $cmd -h" for builtin commands calls the implementation of the
431 - command (i.e. cmd_$cmd() function) without doing any repository
432 - set-up, and the commands that expect RUN_SETUP is done by the Git
433 - potty needs to be prepared to show the help text without barfing.
434 -
435 - Will merge to 'master'.
436 -
437 -
438 -* pw/rebase-i-regression-fix-tests (2017-06-01) 1 commit
555 +* pw/rebase-i-regression-fix-tests (2017-06-19) 4 commits
556 + - rebase: add more regression tests for console output
557 + - rebase: add regression tests for console output
558 - rebase -i: add test for reflog message
559 + - sequencer: print autostash messages to stderr
560
441 - Just the first one of three? new tests that follows up a regression
442 - fix.
443 -
444 - Expecting a portable update.
445 -
446 -
447 -* ab/pcre-v2 (2017-06-02) 8 commits
448 - (merged to 'next' on 2017-06-13 at 34bf49ee44)
449 - + grep: add support for PCRE v2
450 - + grep: un-break building with PCRE >= 8.32 without --enable-jit
451 - + grep: un-break building with PCRE < 8.20
452 - + grep: un-break building with PCRE < 8.32
453 - + grep: add support for the PCRE v1 JIT API
454 - + log: add -P as a synonym for --perl-regexp
455 - + grep: skip pthreads overhead when using one thread
456 - + grep: don't redundantly compile throwaway patterns under threading
457 -
458 - Update "perl-compatible regular expression" support to enable JIT
459 - and also allow linking with the newer PCRE v2 library.
460 -
461 - Will merge to 'master'.
462 -
463 -
464 -* jk/pathspec-magic-disambiguation (2017-05-29) 6 commits
465 - (merged to 'next' on 2017-06-13 at 088987f033)
466 - + verify_filename(): flip order of checks
467 - + verify_filename(): treat ":(magic)" as a pathspec
468 - + check_filename(): handle ":^" path magic
469 - + check_filename(): use skip_prefix
470 - + check_filename(): refactor ":/" handling
471 - + t4208: add check for ":/" without matching file
472 -
473 - The convention for a command line is to follow "git cmdname
474 - --options" with revisions followed by an optional "--"
475 - disambiguator and then finally pathspecs. When "--" is not there,
476 - we make sure early ones are all interpretable as revs (and do not
477 - look like paths) and later ones are the other way around. A
478 - pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from
479 - the top-level of the working tree, no matter what subdirectory you
480 - are working from) are conservatively judged as "not a path", which
481 - required disambiguation more often. The command line parser
482 - learned to say "it's a pathspec" a bit more often when the syntax
483 - looks like so.
561 + Fix a recent regression to "git rebase -i" and add tests that would
562 + have caught it and others.
563
485 - Will merge to 'master'.
564 + Will merge to 'next'.
565
566
567 * ab/sha1dc (2017-06-07) 2 commits
@@ -534,7 +613,7 @@ of the repositories listed at
613 the same as deleted lines elsewhere differently from genuinely new
614 lines.
615
537 - Are we happy with these changes?
616 + Is any more update coming?
617
618
619 * xz/send-email-batch-size (2017-05-23) 1 commit
@@ -548,7 +627,7 @@ of the repositories listed at
627 cf. <CACBZZX5GYV50rjg9X602JHqFPaoofH9TwDf_-r_MDu8-rmNV6Q@mail.gmail.com>
628
629
551 -* sg/clone-refspec-from-command-line-config (2017-06-01) 2 commits
630 +* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits
631 - Documentation/clone: document ignored configuration variables
632 - clone: respect additional configured fetch refspecs during initial fetch
633
@@ -558,9 +637,10 @@ of the repositories listed at
637 e.g. these configuration variables could be fetch refspecs.
638
639 Are we happy with these two?
640 + cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net>
641
642
563 -* js/rebase-i-final (2017-05-02) 10 commits
643 +* js/rebase-i-final (2017-06-15) 10 commits
644 - rebase -i: rearrange fixup/squash lines using the rebase--helper
645 - t3415: test fixup with wrapped oneline
646 - rebase -i: skip unnecessary picks using the rebase--helper
@@ -576,23 +656,25 @@ of the repositories listed at
656 the shell script to C.
657
658 Expecting a reroll.
579 - This is at its v4.
580 - cf. <cover.1493414945.git.johannes.schindelin@gmx.de>
659 + This is at its v5.
660 + cf. <cover.1497444257.git.johannes.schindelin@gmx.de>
661
662 +--------------------------------------------------
663 +[Discarded]
664
665 * nd/prune-in-worktree (2017-04-24) 12 commits
584 - - rev-list: expose and document --single-worktree
585 - - revision.c: --reflog add HEAD reflog from all worktrees
586 - - files-backend: make reflog iterator go through per-worktree reflog
587 - - revision.c: --all adds HEAD from all worktrees
588 - - refs: remove dead for_each_*_submodule()
589 - - revision.c: use refs_for_each*() instead of for_each_*_submodule()
590 - - refs: add refs_head_ref()
591 - - refs: move submodule slash stripping code to get_submodule_ref_store
592 - - refs.c: refactor get_submodule_ref_store(), share common free block
593 - - revision.c: --indexed-objects add objects from all worktrees
594 - - revision.c: refactor add_index_objects_to_pending()
595 - - revision.h: new flag in struct rev_info wrt. worktree-related refs
666 + . rev-list: expose and document --single-worktree
667 + . revision.c: --reflog add HEAD reflog from all worktrees
668 + . files-backend: make reflog iterator go through per-worktree reflog
669 + . revision.c: --all adds HEAD from all worktrees
670 + . refs: remove dead for_each_*_submodule()
671 + . revision.c: use refs_for_each*() instead of for_each_*_submodule()
672 + . refs: add refs_head_ref()
673 + . refs: move submodule slash stripping code to get_submodule_ref_store
674 + . refs.c: refactor get_submodule_ref_store(), share common free block
675 + . revision.c: --indexed-objects add objects from all worktrees
676 + . revision.c: refactor add_index_objects_to_pending()
677 + . revision.h: new flag in struct rev_info wrt. worktree-related refs
678
679 "git gc" and friends when multiple worktrees are used off of a
680 single repository did not consider the index and per-worktree refs
@@ -600,6 +682,31 @@ of the repositories listed at
682 objects that are in use only in other worktrees to be subject to
683 garbage collection.
684
603 - Expecting a reroll.
604 - Has been waiting for nd/worktree-kill-parse-ref to settle.
605 - cf. <CACsJy8ADCVBiLoPg_Tz0L6CMdh_eFmK4RYzfQ-PmUgBK7w9e=A@mail.gmail.com>
685 +
686 +* jc/pretty-add-again (2017-06-13) 1 commit
687 + . add_again() off-by-one error in custom format
688 +
689 +
690 +* sk/dash-is-previous (2017-03-01) 5 commits
691 + . revert.c: delegate handling of "-" shorthand to setup_revisions
692 + . sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}"
693 + . revision.c: args starting with "-" might be a revision
694 + . revision.c: swap if/else blocks
695 + . revision.c: do not update argv with unknown option
696 +
697 + A dash "-" can be written to mean "the branch that was previously
698 + checked out" in more places.
699 +
700 + Ejected, as it seems that making -.. to mean @{-1}..HEAD etc. are
701 + going too far.
702 +
703 +
704 +* mg/name-rev-debug (2017-03-31) 2 commits
705 + . describe: pass --debug down to name-rev
706 + . name-rev: provide debug output
707 +
708 + "git describe --debug --contains" did not add any meaningful
709 + information, even though without "--contains" it did.
710 +
711 + Will discard for now.
712 + cf. <c85bc2a1-56d8-8a02-6089-2b8cb3d39e99@grubix.eu>