What's cooking (2018/01 #04)

Junio C Hamano committed Jan 31, 2018 at 16:55 UTC e19a17b3f3ebbd39b4da35fe6edf96f79522a173
1 file changed +320 -346
whats-cooking.txt
+320 -346
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jan 2018, #03; Tue, 23)
3 +Subject: What's cooking in git.git (Jan 2018, #04; Wed, 31)
4 X-master-at: 5be1f00a9a701532232f57958efab4be8c959a29
5 X-next-at: de0f0111ea2ad3a2b03a378e6272c2ee476a26ed
6
7 -What's cooking in git.git (Jan 2018, #03; Tue, 23)
7 +What's cooking in git.git (Jan 2018, #04; Wed, 31)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,9 +12,13 @@ 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 -Many topics in 'next' have been merged to 'master' while others are
16 -tentatively kicked back to 'pu', to give them a chance to be rerolled
17 -if the authors of them wish to do so.
15 +Many new topics appeared and are not yet marked with "Will do what"
16 +labels. Except for some large ones, I think most are already in
17 +good shape, but I'd want to double check by re-reading them.
18 +
19 +I am migrating my build and integration environment to a different
20 +machine; if you notice anything out of ordinary, please let me know
21 +before I decomission and reimage my usual environment ;-)
22
23 You can find the changes described here in the integration branches
24 of the repositories listed at
@@ -22,233 +26,355 @@ of the repositories listed at
26 http://git-blame.blogspot.com/p/git-public-repositories.html
27
28 --------------------------------------------------
25 -[Graduated to "master"]
29 +[New Topics]
30
27 -* ab/commit-m-with-fixup (2017-12-22) 2 commits
28 - (merged to 'next' on 2018-01-11 at 41255c464f)
29 - + commit: add support for --fixup <commit> -m"<extra message>"
30 - + commit doc: document that -c, -C, -F and --fixup with -m error
31 +* ab/fetch-prune (2018-01-24) 11 commits
32 + - fetch: add a --fetch-prune option and fetch.pruneTags config
33 + - fetch tests: add scaffolding for the new fetch.pruneTags
34 + - git-fetch & config doc: link to the new PRUNING section
35 + - git remote doc: correct dangerous lies about what prune does
36 + - git fetch doc: add a new section to explain the ins & outs of pruning
37 + - fetch tests: test --prune and refspec interaction
38 + - fetch tests: add a tag to be deleted to the pruning tests
39 + - fetch tests: re-arrange arguments for future readability
40 + - fetch tests: refactor in preparation for testing tag pruning
41 + - fetch: stop accessing "remote" variable indirectly
42 + - fetch: don't redundantly NULL something calloc() gave us
43
32 - "git commit --fixup" did not allow "-m<message>" option to be used
33 - at the same time; allow it to annotate resulting commit with more
34 - text.
44 + Clarify how configured fetch refspecs interact with the "--prune"
45 + option of "git fetch", and also add a handy short-hand for getting
46 + rid of stale tags that are locally held.
47
48
37 -* ab/doc-cat-file-e-still-shows-errors (2018-01-10) 1 commit
38 - (merged to 'next' on 2018-01-12 at 080bb1d397)
39 - + cat-file doc: document that -e will return some output
49 +* gs/retire-mru (2018-01-24) 1 commit
50 + - mru: Replace mru.[ch] with list.h implementation
51 + (this branch uses ot/mru-on-list.)
52
41 - Doc update.
53 + Retire mru API as it does not give enough abstraction over
54 + underlying list API to be worth it.
55
56 + Will merge to 'next'.
57
44 -* ab/perf-grep-threads (2018-01-04) 1 commit
45 - (merged to 'next' on 2018-01-09 at 91889574fb)
46 - + perf: amend the grep tests to test grep.threads
58
48 - More perf tests for threaded grep
59 +* jc/mailinfo-cleanup-fix (2018-01-24) 1 commit
60 + - mailinfo: avoid segfault when can't open files
61
62 + Corner case bugfix.
63
51 -* as/read-tree-prefix-doc-fix (2018-01-09) 1 commit
52 - (merged to 'next' on 2018-01-12 at 895c72e5c3)
53 - + doc/read-tree: remove obsolete remark
64 + Will merge to 'next'.
65
55 - Doc update.
66
67 +* po/clang-format-functype-weight (2018-01-24) 1 commit
68 + - clang-format: adjust penalty for return type line break
69
58 -* bw/oidmap-autoinit (2017-12-27) 1 commit
59 - (merged to 'next' on 2018-01-11 at f941e013b4)
60 - + oidmap: ensure map is initialized
70 + Prevent "clang-format" from breaking line after function return type.
71
62 - Code clean-up.
72 + Will merge to 'next'.
73
74
65 -* cc/codespeed (2018-01-05) 7 commits
66 - (merged to 'next' on 2018-01-09 at 8578089a2b)
67 - + perf/run: read GIT_PERF_REPO_NAME from perf.repoName
68 - + perf/run: learn to send output to codespeed server
69 - + perf/run: learn about perf.codespeedOutput
70 - + perf/run: add conf_opts argument to get_var_from_env_or_config()
71 - + perf/aggregate: implement codespeed JSON output
72 - + perf/aggregate: refactor printing results
73 - + perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION}
75 +* po/http-push-error-message (2018-01-24) 1 commit
76 + - http-push: improve error log
77
75 - "perf" test output can be sent to codespeed server.
78 + Debugging aid.
79
80 + Will merge to 'next'.
81
78 -* dk/describe-all-output-fix (2017-12-27) 1 commit
79 - (merged to 'next' on 2017-12-28 at c6254494e3)
80 - + describe: prepend "tags/" when describing tags with embedded name
82
82 - An old regression in "git describe --all $annotated_tag^0" has been
83 - fixed.
83 +* po/object-id (2018-01-30) 12 commits
84 + - sha1_file: rename hash_sha1_file_literally
85 + - sha1_file: convert write_loose_object to object_id
86 + - sha1_file: convert force_object_loose to object_id
87 + - sha1_file: convert write_sha1_file to object_id
88 + - notes: convert write_notes_tree to object_id
89 + - notes: convert combine_notes_* to object_id
90 + - commit: convert commit_tree* to object_id
91 + - match-trees: convert splice_tree to object_id
92 + - cache: clear whole hash buffer with oidclr
93 + - sha1_file: convert hash_sha1_file to object_id
94 + - dir: convert struct sha1_stat to use object_id
95 + - sha1_file: convert pretend_sha1_file to object_id
96
97 + Conversion from uchar[20] to struct object_id continues.
98
86 -* ew/empty-merge-with-dirty-index (2018-01-09) 1 commit
87 - (merged to 'next' on 2018-01-09 at 6bcda11248)
88 - + Merge branch 'ew/empty-merge-with-dirty-index-maint' into ew/empty-merge-with-dirty-index
89 - (this branch uses ew/empty-merge-with-dirty-index-maint.)
99
91 - "git merge -s recursive" did not correctly abort when the index is
92 - dirty, if the merged tree happened to be the same as the current
93 - HEAD, which has been fixed.
100 +* sg/travis-linux32-sanity (2018-01-30) 5 commits
101 + - travis-ci: don't fail if user already exists on 32 bit Linux build job
102 + - travis-ci: don't run the test suite as root in the 32 bit Linux build
103 + - travis-ci: don't repeat the path of the cache directory
104 + - travis-ci: use 'set -e' in the 32 bit Linux build job
105 + - travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux build
106
107 + Will merge to 'next'.
108
96 -* jc/merge-symlink-ours-theirs (2018-01-03) 1 commit
97 - (merged to 'next' on 2018-01-05 at 63ebfc45eb)
98 - + merge: teach -Xours/-Xtheirs to symbolic link merge
109
100 - "git merge -Xours/-Xtheirs" learned to use our/their version when
101 - resolving a conflicting updates to a symbolic link.
110 +* jk/daemon-fixes (2018-01-25) 6 commits
111 + - daemon: fix length computation in newline stripping
112 + - t/lib-git-daemon: add network-protocol helpers
113 + - daemon: handle NULs in extended attribute string
114 + - daemon: fix off-by-one in logging extended attributes
115 + - t/lib-git-daemon: record daemon log
116 + - t5570: use ls-remote instead of clone for interp tests
117 +
118 +
119 +* jt/long-running-process-doc (2018-01-25) 1 commit
120 + - Docs: split out long-running subprocess handshake
121 +
122 +
123 +* nd/format-patch-stat-width (2018-01-25) 2 commits
124 + - format-patch: reduce patch diffstat width to 72
125 + - format-patch: keep cover-letter diffstat wrapped in 72 columns
126 +
127 +
128 +* nd/list-merge-strategy (2018-01-26) 1 commit
129 + - completion: fix completing merge strategies on non-C locales
130 +
131 +
132 +* sb/pull-rebase-submodule (2018-01-25) 1 commit
133 + - builtin/pull: respect verbosity settings in submodules
134 +
135 +
136 +* sg/test-i18ngrep (2018-01-26) 10 commits
137 + - t: make 'test_i18ngrep' more informative on failure
138 + - t: make sure that 'test_i18ngrep' got enough parameters
139 + - t: forbid piping into 'test_i18ngrep'
140 + - t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
141 + - t5536: let 'test_i18ngrep' read the file without redirection
142 + - t5510: consolidate 'grep' and 'test_i18ngrep' patterns
143 + - t4001: don't run 'git status' upstream of a pipe
144 + - t6022: don't run 'git merge' upstream of a pipe
145 + - t5812: add 'test_i18ngrep's missing filename parameter
146 + - t5541: add 'test_i18ngrep's missing filename parameter
147 +
148 +
149 +* bw/c-plus-plus (2018-01-30) 37 commits
150 + - replace: rename 'new' variables
151 + - trailer: rename 'template' variables
152 + - tempfile: rename 'template' variables
153 + - wrapper: rename 'template' variables
154 + - environment: rename 'namespace' variables
155 + - diff: rename 'template' variables
156 + - environment: rename 'template' variables
157 + - init-db: rename 'template' variables
158 + - unpack-trees: rename 'new' variables
159 + - trailer: rename 'new' variables
160 + - submodule: rename 'new' variables
161 + - split-index: rename 'new' variables
162 + - remote: rename 'new' variables
163 + - ref-filter: rename 'new' variables
164 + - read-cache: rename 'new' variables
165 + - line-log: rename 'new' variables
166 + - imap-send: rename 'new' variables
167 + - http: rename 'new' variables
168 + - entry: rename 'new' variables
169 + - diffcore-delta: rename 'new' variables
170 + - diff: rename 'new' variables
171 + - diff-lib: rename 'new' variable
172 + - commit: rename 'new' variables
173 + - combine-diff: rename 'new' variables
174 + - remote: rename 'new' variables
175 + - reflog: rename 'new' variables
176 + - pack-redundant: rename 'new' variables
177 + - help: rename 'new' variables
178 + - checkout: rename 'new' variables
179 + - apply: rename 'new' variables
180 + - apply: rename 'try' variables
181 + - diff: rename 'this' variables
182 + - rev-parse: rename 'this' variable
183 + - pack-objects: rename 'this' variables
184 + - blame: rename 'this' variables
185 + - object: rename function 'typename' to 'type_name'
186 + - object_info: change member name from 'typename' to 'type_name'
187 +
188 +
189 +* ew/svn-branch-segfault-fix (2018-01-30) 1 commit
190 + - git-svn: control destruction order to avoid segfault
191 +
192 + Workaround for segfault with more recent versions of SVN.
193
194 + Will merge to 'next'.
195
104 -* jh/object-filtering (2018-01-08) 1 commit
105 - (merged to 'next' on 2018-01-11 at 56808f6969)
106 - + oidset: don't return value from oidset_init
196
108 - Hotfix for a topic already in 'master'.
197 +* tz/doc-show-defaults-to-head (2018-01-30) 1 commit
198 + - doc: mention 'git show' defaults to HEAD
199
200 + Doc update.
201
111 -* jk/abort-clone-with-existing-dest (2018-01-03) 4 commits
112 - (merged to 'next' on 2018-01-09 at 3c8e83c3a7)
113 - + clone: do not clean up directories we didn't create
114 - + clone: factor out dir_exists() helper
115 - + t5600: modernize style
116 - + t5600: fix outdated comment about unborn HEAD
202 + Will merge to 'next'.
203
118 - "git clone $there $here" is allowed even when here directory exists
119 - as long as it is an empty directory, but the command incorrectly
120 - removed it upon a failure of the operation.
204
205 +* nd/ignore-glob-doc-update (2018-01-31) 1 commit
206 + - gitignore.txt: elaborate shell glob syntax
207
123 -* jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit
124 - (merged to 'next' on 2018-01-05 at 6cb237ea44)
125 - + git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.
208
127 - "git svn dcommit" did not take into account the fact that a
128 - svn+ssh:// URL with a username@ (typically used for pushing) refers
129 - to the same SVN repository without the username@ and failed when
130 - svn.pushmergeinfo option is set.
209 +* nd/rebase-show-current-patch (2018-01-31) 3 commits
210 + - rebase: introduce and use pseudo-ref ORIG_COMMIT
211 + - rebase: add --show-current-patch
212 + - am: add --show-current-patch
213 +
214 +--------------------------------------------------
215 +[Stalled]
216 +
217 +* av/fsmonitor-updates (2018-01-04) 6 commits
218 + - fsmonitor: use fsmonitor data in `git diff`
219 + - fsmonitor: remove debugging lines from t/t7519-status-fsmonitor.sh
220 + - fsmonitor: make output of test-dump-fsmonitor more concise
221 + - fsmonitor: update helper tool, now that flags are filled later
222 + - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid
223 + - dir.c: update comments to match argument name
224
225 + Code clean-up on fsmonitor integration, plus optional utilization
226 + of the fsmonitor data in diff-files.
227
133 -* js/fix-merge-arg-quoting-in-rebase-p (2018-01-05) 1 commit
134 - (merged to 'next' on 2018-01-09 at 91f5601e9c)
135 - + rebase -p: fix quoting when calling `git merge`
228 + Waiting for an update.
229 + cf. <alpine.DEB.2.21.1.1801042335130.32@MININT-6BKU6QN.europe.corp.microsoft.com>
230
137 - "git rebase -p -X<option>" did not propagate the option properly
138 - down to underlying merge strategy backend.
231
232 +* pb/bisect-helper-2 (2017-10-28) 8 commits
233 + - t6030: make various test to pass GETTEXT_POISON tests
234 + - bisect--helper: `bisect_start` shell function partially in C
235 + - bisect--helper: `get_terms` & `bisect_terms` shell function in C
236 + - bisect--helper: `bisect_next_check` shell function in C
237 + - bisect--helper: `check_and_set_terms` shell function in C
238 + - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
239 + - bisect--helper: `bisect_write` shell function in C
240 + - bisect--helper: `bisect_reset` shell function in C
241
141 -* js/test-with-ws-in-path (2018-01-10) 1 commit
142 - (merged to 'next' on 2018-01-10 at c44db26fe4)
143 - + t3900: add some more quotes
242 + Expecting a reroll.
243 + cf. <0102015f5e5ee171-f30f4868-886f-47a1-a4e4-b4936afc545d-000000@eu-west-1.amazonses.com>
244
145 - Hot fix to a test.
245
246 +* dj/runtime-prefix (2017-12-05) 4 commits
247 + . exec_cmd: RUNTIME_PREFIX on some POSIX systems
248 + . Makefile: add Perl runtime prefix support
249 + . Makefile: add support for "perllibdir"
250 + . Makefile: generate Perl header from template file
251
148 -* ma/bisect-leakfix (2018-01-03) 1 commit
149 - (merged to 'next' on 2018-01-09 at 2ef8b59d1b)
150 - + bisect: fix a regression causing a segfault
252 + A build-time option has been added to allow Git to be told to refer
253 + to its associated files relative to the main binary, in the same
254 + way that has been possible on Windows for quite some time, for
255 + Linux, BSDs and Darwin.
256
152 - A hotfix for a recent update that broke 'git bisect'.
257 + Tentatively kicked out of 'next' to see how well another topic
258 + ab/simplify-perl-makefile that heavily conflicts with this fares.
259
260
155 -* mm/send-email-fallback-to-local-mail-address (2018-01-08) 3 commits
156 - (merged to 'next' on 2018-01-17 at dd4867706b)
157 - + send-email: add test for Linux's get_maintainer.pl
158 - + perl/Git: remove now useless email-address parsing code
159 - + send-email: add and use a local copy of Mail::Address
261 +* mk/http-backend-content-length (2017-11-27) 4 commits
262 + - SQUASH???
263 + - t5560-http-backend-noserver.sh: add CONTENT_LENGTH cases
264 + - SQUASH???
265 + - http-backend: respect CONTENT_LENGTH as specified by rfc3875
266
161 - Instead of maintaining home-grown email address parsing code, ship
162 - a copy of reasonably recent Mail::Address to be used as a fallback
163 - in 'git send-email' when the platform lacks it.
267 + The http-backend (used for smart-http transport) used to slurp the
268 + whole input until EOF, without paying attention to CONTENT_LENGTH
269 + that is supplied in the environment and instead expecting the Web
270 + server to close the input stream. This has been fixed.
271
272 + Expecting a reroll.
273 + Suggested fixes to be used when rerolling is queued, but I'd
274 + prefer _not_ squashing them myself.
275
166 -* nd/add-i-ignore-submodules (2018-01-16) 1 commit
167 - (merged to 'next' on 2018-01-17 at 632401fd5a)
168 - + add--interactive: ignore submodule changes except HEAD
276 + Also, it may be too complex solution for the problem.
277 + cf. <20171204171308.GA13332@sigill.intra.peff.net>
278
170 - "git add -p" was taught to ignore local changes to submodules as
171 - they do not interfere with the partial addition of regular changes
172 - anyway.
279
280 +* cc/require-tcl-tk-for-build (2017-11-29) 2 commits
281 + - travis-ci: avoid new tcl/tk build requirement
282 + - Makefile: check that tcl/tk is installed
283
175 -* nd/ita-wt-renames-in-status (2017-12-27) 6 commits
176 - (merged to 'next' on 2017-12-28 at 7610331a11)
177 - + wt-status.c: handle worktree renames
178 - + wt-status.c: rename rename-related fields in wt_status_change_data
179 - + wt-status.c: catch unhandled diff status codes
180 - + wt-status.c: coding style fix
181 - + Use DIFF_DETECT_RENAME for detect_rename assignments
182 - + t2203: test status output with porcelain v2 format
284 + A first-time builder of Git may have installed neither tclsh nor
285 + msgfmt, in which case git-gui and gitk part will fail and break the
286 + build. As a workaround, refuse to run a build when tclsh is not
287 + installed and NO_TCLTK is not set.
288
184 - "git status" after moving a path in the working tree (hence making
185 - it appear "removed") and then adding with the -N option (hence
186 - making that appear "added") detected it as a rename, but did not
187 - report the old and new pathnames correctly.
289 + Undecided.
290 + I still feel that requring tclsh to be installed, with or without
291 + "escape hatch" for experts, may be too heavy-handed.
292
293
190 -* rs/lose-leak-pending (2017-12-28) 9 commits
191 - (merged to 'next' on 2018-01-05 at 05305f7f2f)
192 - + commit: remove unused function clear_commit_marks_for_object_array()
193 - + revision: remove the unused flag leak_pending
194 - + checkout: avoid using the rev_info flag leak_pending
195 - + bundle: avoid using the rev_info flag leak_pending
196 - + bisect: avoid using the rev_info flag leak_pending
197 - + object: add clear_commit_marks_all()
198 - + ref-filter: use clear_commit_marks_many() in do_merge_filter()
199 - + commit: use clear_commit_marks_many() in remove_redundant()
200 - + commit: avoid allocation in clear_commit_marks_many()
294 +* mg/merge-base-fork-point (2017-09-17) 3 commits
295 + - merge-base: find fork-point outside partial reflog
296 + - merge-base: return fork-point outside reflog
297 + - t6010: test actual test output
298
202 - API clean-up around revision traversal.
299 + "merge-base --fork-point $branch $commit" is used to guess on which
300 + commit among the commits that were once at the tip of the $branch the
301 + $commit was built on top of, and it learns these historical tips from
302 + the reflog of the $branch. When the true fork-point is lost due to
303 + pruning of old reflog entries, the command does not give any output,
304 + because it has no way to guess correctly and does not want to mislead
305 + the user with a wrong guess.
306
307 + The command has been updated to give the best but not known to be
308 + correct guess, based on a hope that a merge-base between $commit and a
309 + virtual merge across all the reflog entries that still are available
310 + for $branch may still be a closer to the true fork-point than the
311 + merge-base between $commit and the current tip of the $branch.
312
205 -* sb/diff-blobfind-pickaxe (2018-01-04) 6 commits
206 - (merged to 'next' on 2018-01-09 at 2053890477)
207 - + diff: use HAS_MULTI_BITS instead of counting bits manually
208 - + diff: properly error out when combining multiple pickaxe options
209 - + diffcore: add a pickaxe option to find a specific blob
210 - + diff: introduce DIFF_PICKAXE_KINDS_MASK
211 - + diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit
212 - + diff.h: make pickaxe_opts an unsigned bit field
313 + This may have to be offered by an additional option, to allow the
314 + users that are prepared to see a potentially incorrect guess to opt
315 + into the feature, without affecting the current callers that may not
316 + be prepared to accept a guess that is not known to be correct.
317
214 - "diff" family of commands learned "--find-object=<object-id>" option
215 - to limit the findings to changes that involve the named object.
318 + What's the doneness of this one?
319
320
218 -* sb/submodule-update-reset-fix (2018-01-05) 4 commits
219 - (merged to 'next' on 2018-01-11 at e4e84b69a3)
220 - + submodule: submodule_move_head omits old argument in forced case
221 - + unpack-trees: oneway_merge to update submodules
222 - + t/lib-submodule-update.sh: fix test ignoring ignored files in submodules
223 - + t/lib-submodule-update.sh: clarify test
321 +* jk/drop-ancient-curl (2017-08-09) 5 commits
322 + - http: #error on too-old curl
323 + - curl: remove ifdef'd code never used with curl >=7.19.4
324 + - http: drop support for curl < 7.19.4
325 + - http: drop support for curl < 7.16.0
326 + - http: drop support for curl < 7.11.1
327
225 - When resetting the working tree files recursively, the working tree
226 - of submodules are now also reset to match.
328 + Some code in http.c that has bitrot is being removed.
329
330 + Expecting a reroll.
331
229 -* tg/stash-with-pathspec-fix (2018-01-08) 1 commit
230 - (merged to 'next' on 2018-01-11 at abfaa14a7b)
231 - + stash: don't delete untracked files that match pathspec
332
233 - "git stash -- <pathspec>" incorrectly blew away untracked files in
234 - the directory that matched the pathspec, which has been corrected.
333 +* mk/use-size-t-in-zlib (2017-08-10) 1 commit
334 + . zlib.c: use size_t for size
335
336 + The wrapper to call into zlib followed our long tradition to use
337 + "unsigned long" for sizes of regions in memory, which have been
338 + updated to use "size_t".
339
237 -* tg/worktree-create-tracking (2018-01-11) 1 commit
238 - (merged to 'next' on 2018-01-11 at df6423dfc4)
239 - + Documentation/git-worktree.txt: add missing `
340 + Needs resurrecting by making sure the fix is good and still applies
341 + (or adjusted to today's codebase).
342
241 - Doc hotfix.
343
344 +* mg/status-in-progress-info (2017-05-10) 2 commits
345 + - status --short --inprogress: spell it as --in-progress
346 + - status: show in-progress info for short status
347
244 -* ys/bisect-object-id-missing-conversion-fix (2018-01-09) 1 commit
245 - (merged to 'next' on 2018-01-11 at ca330c885d)
246 - + bisect: debug: convert struct object to object_id
348 + "git status" learns an option to report various operations
349 + (e.g. "merging") that the user is in the middle of.
350
248 - Fix for a commented-out code to adjust it to a rather old API change.
351 + cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
352
353 --------------------------------------------------
251 -[New Topics]
354 +[Cooking]
355 +
356 +* jh/status-no-ahead-behind (2018-01-24) 4 commits
357 + - status: support --no-ahead-behind in long format
358 + - status: update short status to respect --no-ahead-behind
359 + - status: add --[no-]ahead-behind to status and commit for V2 format.
360 + - stat_tracking_info: return +1 when branches not equal
361 +
362 + "git status" can spend a lot of cycles to compute the relation
363 + between the current branch and its upstream, which can now be
364 + disabled with "--no-ahead-behind" option.
365 +
366 +
367 +* nd/worktree-move (2018-01-24) 7 commits
368 + - worktree remove: allow it when $GIT_WORK_TREE is already gone
369 + - worktree remove: new command
370 + - worktree move: refuse to move worktrees with submodules
371 + - worktree move: accept destination as directory
372 + - worktree move: new command
373 + - worktree.c: add update_worktree_location()
374 + - worktree.c: add validate_worktree()
375 +
376 + "git worktree" learned move and remove subcommands.
377 +
378
379 * nd/trace-with-env (2018-01-19) 7 commits
380 - run-command.c: print new cwd in trace_run_command()
@@ -273,14 +399,17 @@ of the repositories listed at
399 Will merge to 'next'.
400
401
276 -* kg/packed-ref-cache-fix (2018-01-16) 1 commit
402 +* kg/packed-ref-cache-fix (2018-01-24) 6 commits
403 - packed_ref_cache: don't use mmap() for small files
404 + - load_contents(): don't try to mmap an empty file
405 + - packed_ref_iterator_begin(): make optimization more general
406 + - find_reference_location(): make function safe for empty snapshots
407 + - create_snapshot(): use `xmemdupz()` rather than a strbuf
408 + - struct snapshot: store `start` rather than `header_len`
409
410 Avoid mmapping small files while using packed refs (especially ones
411 with zero size, which would cause later munmap() to fail).
412
282 - Will merge to 'next'.
283 -
413
414 * ks/submodule-doc-updates (2018-01-16) 2 commits
415 - Doc/git-submodule: improve readability and grammar of a sentence
@@ -291,11 +420,13 @@ of the repositories listed at
420 Will merge to 'next'.
421
422
294 -* nd/shared-index-fix (2018-01-22) 3 commits
423 +* nd/shared-index-fix (2018-01-24) 3 commits
424 - read-cache: don't write index twice if we can't write shared index
425 - read-cache.c: move tempfile creation/cleanup out of write_shared_index
426 - read-cache.c: change type of "temp" in write_shared_index()
427
428 + Will merge to 'next'.
429 +
430
431 * rs/describe-unique-abbrev (2018-01-16) 1 commit
432 - describe: use strbuf_add_unique_abbrev() for adding short hashes
@@ -307,6 +438,7 @@ of the repositories listed at
438
439 * tb/crlf-conv-flags (2018-01-16) 1 commit
440 - convert_to_git(): safe_crlf/checksafe becomes int conv_flags
441 + (this branch is used by ls/checkout-encoding.)
442
443 Code clean-up.
444
@@ -368,15 +500,17 @@ of the repositories listed at
500 - worktree: say that "add" takes an arbitrary commit in short-help
501
502
371 -* js/rebase-recreate-merge (2018-01-22) 8 commits
372 - - rebase -i: introduce --recreate-merges=no-rebase-cousins
503 +* js/rebase-recreate-merge (2018-01-30) 10 commits
504 + - rebase -i: introduce --recreate-merges=[no-]rebase-cousins
505 - pull: accept --rebase=recreate to recreate the branch topology
506 - sequencer: handle autosquash and post-rewrite for merge commands
507 + - sequencer: make refs generated by the `label` command worktree-local
508 - rebase: introduce the --recreate-merges option
509 - rebase-helper --make-script: introduce a flag to recreate merges
510 - sequencer: fast-forward merge commits, if possible
511 - sequencer: introduce the `merge` command
512 - sequencer: introduce new commands to reset the revision
513 + - git-rebase--interactive: clarify arguments
514
515 "git rebase" learned "--recreate-merges" to transplant the whole
516 topology of commit graph elsewhere.
@@ -431,176 +565,13 @@ of the repositories listed at
565 * jt/fsck-code-cleanup (2018-01-23) 1 commit
566 - fsck: fix leak when traversing trees
567
434 ---------------------------------------------------
435 -[Stalled]
436 -
437 -* jh/status-no-ahead-behind (2018-01-04) 4 commits
438 - - status: support --no-ahead-behind in long format
439 - - status: update short status to respect --no-ahead-behind
440 - - status: add --[no-]ahead-behind to status and commit for V2 format.
441 - - stat_tracking_info: return +1 when branches not equal
442 -
443 - Expecting a reroll to finalize the topic.
444 -
445 -
446 -* av/fsmonitor-updates (2018-01-04) 6 commits
447 - - fsmonitor: use fsmonitor data in `git diff`
448 - - fsmonitor: remove debugging lines from t/t7519-status-fsmonitor.sh
449 - - fsmonitor: make output of test-dump-fsmonitor more concise
450 - - fsmonitor: update helper tool, now that flags are filled later
451 - - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid
452 - - dir.c: update comments to match argument name
453 -
454 - Code clean-up on fsmonitor integration, plus optional utilization
455 - of the fsmonitor data in diff-files.
456 -
457 - Waiting for an update.
458 - cf. <alpine.DEB.2.21.1.1801042335130.32@MININT-6BKU6QN.europe.corp.microsoft.com>
459 -
460 -
461 -* pb/bisect-helper-2 (2017-10-28) 8 commits
462 - - t6030: make various test to pass GETTEXT_POISON tests
463 - - bisect--helper: `bisect_start` shell function partially in C
464 - - bisect--helper: `get_terms` & `bisect_terms` shell function in C
465 - - bisect--helper: `bisect_next_check` shell function in C
466 - - bisect--helper: `check_and_set_terms` shell function in C
467 - - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
468 - - bisect--helper: `bisect_write` shell function in C
469 - - bisect--helper: `bisect_reset` shell function in C
470 -
471 - Expecting a reroll.
472 - cf. <0102015f5e5ee171-f30f4868-886f-47a1-a4e4-b4936afc545d-000000@eu-west-1.amazonses.com>
473 -
474 -
475 -* dj/runtime-prefix (2017-12-05) 4 commits
476 - . exec_cmd: RUNTIME_PREFIX on some POSIX systems
477 - . Makefile: add Perl runtime prefix support
478 - . Makefile: add support for "perllibdir"
479 - . Makefile: generate Perl header from template file
480 -
481 - A build-time option has been added to allow Git to be told to refer
482 - to its associated files relative to the main binary, in the same
483 - way that has been possible on Windows for quite some time, for
484 - Linux, BSDs and Darwin.
485 -
486 - Tentatively kicked out of 'next' to see how well another topic
487 - ab/simplify-perl-makefile that heavily conflicts with this fares.
488 -
489 -
490 -* mk/http-backend-content-length (2017-11-27) 4 commits
491 - - SQUASH???
492 - - t5560-http-backend-noserver.sh: add CONTENT_LENGTH cases
493 - - SQUASH???
494 - - http-backend: respect CONTENT_LENGTH as specified by rfc3875
495 -
496 - The http-backend (used for smart-http transport) used to slurp the
497 - whole input until EOF, without paying attention to CONTENT_LENGTH
498 - that is supplied in the environment and instead expecting the Web
499 - server to close the input stream. This has been fixed.
500 -
501 - Expecting a reroll.
502 - Suggested fixes to be used when rerolling is queued, but I'd
503 - prefer _not_ squashing them myself.
504 -
505 - Also, it may be too complex solution for the problem.
506 - cf. <20171204171308.GA13332@sigill.intra.peff.net>
507 -
508 -
509 -* cc/require-tcl-tk-for-build (2017-11-29) 2 commits
510 - - travis-ci: avoid new tcl/tk build requirement
511 - - Makefile: check that tcl/tk is installed
512 -
513 - A first-time builder of Git may have installed neither tclsh nor
514 - msgfmt, in which case git-gui and gitk part will fail and break the
515 - build. As a workaround, refuse to run a build when tclsh is not
516 - installed and NO_TCLTK is not set.
517 -
518 - Undecided.
519 - I still feel that requring tclsh to be installed, with or without
520 - "escape hatch" for experts, may be too heavy-handed.
521 -
522 -
523 -* mg/merge-base-fork-point (2017-09-17) 3 commits
524 - - merge-base: find fork-point outside partial reflog
525 - - merge-base: return fork-point outside reflog
526 - - t6010: test actual test output
527 -
528 - "merge-base --fork-point $branch $commit" is used to guess on which
529 - commit among the commits that were once at the tip of the $branch the
530 - $commit was built on top of, and it learns these historical tips from
531 - the reflog of the $branch. When the true fork-point is lost due to
532 - pruning of old reflog entries, the command does not give any output,
533 - because it has no way to guess correctly and does not want to mislead
534 - the user with a wrong guess.
535 -
536 - The command has been updated to give the best but not known to be
537 - correct guess, based on a hope that a merge-base between $commit and a
538 - virtual merge across all the reflog entries that still are available
539 - for $branch may still be a closer to the true fork-point than the
540 - merge-base between $commit and the current tip of the $branch.
541 -
542 - This may have to be offered by an additional option, to allow the
543 - users that are prepared to see a potentially incorrect guess to opt
544 - into the feature, without affecting the current callers that may not
545 - be prepared to accept a guess that is not known to be correct.
546 -
547 - What's the doneness of this one?
548 -
549 -
550 -* jk/drop-ancient-curl (2017-08-09) 5 commits
551 - - http: #error on too-old curl
552 - - curl: remove ifdef'd code never used with curl >=7.19.4
553 - - http: drop support for curl < 7.19.4
554 - - http: drop support for curl < 7.16.0
555 - - http: drop support for curl < 7.11.1
556 -
557 - Some code in http.c that has bitrot is being removed.
558 -
559 - Expecting a reroll.
560 -
561 -
562 -* mk/use-size-t-in-zlib (2017-08-10) 1 commit
563 - . zlib.c: use size_t for size
564 -
565 - The wrapper to call into zlib followed our long tradition to use
566 - "unsigned long" for sizes of regions in memory, which have been
567 - updated to use "size_t".
568 -
569 - Needs resurrecting by making sure the fix is good and still applies
570 - (or adjusted to today's codebase).
571 -
572 -
573 -* mg/status-in-progress-info (2017-05-10) 2 commits
574 - - status --short --inprogress: spell it as --in-progress
575 - - status: show in-progress info for short status
576 -
577 - "git status" learns an option to report various operations
578 - (e.g. "merging") that the user is in the middle of.
579 -
580 - cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
581 -
568
583 -* nd/worktree-move (2017-04-20) 6 commits
584 - - worktree remove: new command
585 - - worktree move: refuse to move worktrees with submodules
586 - - worktree move: accept destination as directory
587 - - worktree move: new command
588 - - worktree.c: add update_worktree_location()
589 - - worktree.c: add validate_worktree()
590 -
591 - "git worktree" learned move and remove subcommands.
592 -
593 - Expecting a reroll.
594 - cf. <20170420101024.7593-1-pclouds@gmail.com>
595 - cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
596 - cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
597 -
598 ---------------------------------------------------
599 -[Cooking]
600 -
601 -* ab/wildmatch-tests (2018-01-04) 7 commits
569 +* ab/wildmatch-tests (2018-01-30) 10 commits
570 + - wildmatch test: mark test as EXPENSIVE_ON_WINDOWS
571 + - test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite
572 - wildmatch test: create & test files on disk in addition to in-memory
573 - wildmatch test: perform all tests under all wildmatch() modes
574 + - wildmatch test: use test_must_fail, not ! for test-wildmatch
575 - wildmatch test: remove dead fnmatch() test code
576 - wildmatch test: use a paranoia pattern from nul_match()
577 - wildmatch test: don't try to vertically align our output
@@ -613,11 +584,11 @@ of the repositories listed at
584 cf. <87vaga9mgf.fsf@evledraar.gmail.com>
585
586
616 -* bw/protocol-v2 (2018-01-04) 26 commits
617 - - remote-curl: implement connect-half-duplex command
587 +* bw/protocol-v2 (2018-01-26) 27 commits
588 + - remote-curl: implement stateless-connect command
589 - remote-curl: create copy of the service name
590 - pkt-line: add packet_buf_write_len function
620 - - transport-helper: introduce connect-half-duplex
591 + - transport-helper: introduce stateless-connect
592 - transport-helper: refactor process_connect_service
593 - transport-helper: remove name parameter
594 - fetch-pack: perform a fetch using v2
@@ -630,6 +601,7 @@ of the repositories listed at
601 - connect: request remote refs using v2
602 - ls-refs: introduce ls-refs server command
603 - serve: introduce git-serve
604 + - test-pkt-line: introduce a packet-line test helper
605 - protocol: introduce enum protocol_version value protocol_v2
606 - transport: store protocol version
607 - connect: discover protocol version outside of get_remote_heads
@@ -644,13 +616,14 @@ of the repositories listed at
616 The beginning of the next-gen transfer protocol.
617
618
647 -* ls/checkout-encoding (2018-01-08) 6 commits
648 - - convert: add support for 'checkout-encoding' attribute
649 - - convert_to_git(): safe_crlf/checksafe becomes int conv_flags
619 +* ls/checkout-encoding (2018-01-30) 6 commits
620 + - convert: add tracing for 'working-tree-encoding' attribute
621 + - convert: add 'working-tree-encoding' attribute
622 - utf8: add function to detect a missing UTF-16/32 BOM
623 - utf8: add function to detect prohibited UTF-16/32 BOM
624 - strbuf: add xstrdup_toupper()
625 - strbuf: remove unnecessary NUL assignment in xstrdup_tolower()
626 + (this branch uses tb/crlf-conv-flags.)
627
628 The new "checkout-encoding" attribute can ask Git to convert the
629 contents to the specified encoding when checking out to the working
@@ -680,8 +653,7 @@ of the repositories listed at
653 cf. <5DE3FA05-2347-4BE7-8A1A-A6E5FEEC7C2B@gmail.com>
654
655
683 -* nd/fix-untracked-cache-invalidation (2018-01-19) 6 commits
684 - - dir.c: print correct errno when opendir() fails
656 +* nd/fix-untracked-cache-invalidation (2018-01-24) 5 commits
657 - dir.c: stop ignoring opendir() error in open_cached_dir()
658 - update-index doc: note a fixed bug in the untracked cache
659 - dir.c: fix missing dir invalidation in untracked code
@@ -690,8 +662,7 @@ of the repositories listed at
662
663 Some bugs around "untracked cache" feature have been fixed.
664
693 - Kicked back to 'pu' for a reroll.
694 - cf. <CACsJy8AecDh6Bxo6xCBG+4AY5GCdtZgb2Cs2QXo5MYZvD7XKcQ@mail.gmail.com>
665 + Will merge to 'next'.
666
667
668 * np/send-email-header-parsing (2017-12-15) 1 commit
@@ -729,7 +700,7 @@ of the repositories listed at
700 Will cook in 'next'.
701
702
732 -* en/rename-directory-detection (2018-01-19) 31 commits
703 +* en/rename-directory-detection (2018-01-31) 31 commits
704 - merge-recursive: ensure we write updates for directory-renamed file
705 - merge-recursive: avoid spurious rename/rename conflict from dir renames
706 - directory rename detection: new testcases showcasing a pair of bugs
@@ -770,9 +741,10 @@ of the repositories listed at
741 'x' moved to 'z'.
742
743
773 -* pw/sequencer-in-process-commit (2018-01-23) 13 commits
744 +* pw/sequencer-in-process-commit (2018-01-24) 14 commits
745 - sequencer: run 'prepare-commit-msg' hook
746 - t7505: add tests for cherry-pick and rebase -i/-p
747 + - t7505: style fixes
748 - sequencer: assign only free()able strings to gpg_sign
749 - sequencer: improve config handling
750 - t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
@@ -792,6 +764,8 @@ of the repositories listed at
764 gives performance boost for a few tens of percents in some sample
765 scenarios.
766
767 + Will merge to 'next'.
768 +
769
770 * jh/fsck-promisors (2017-12-08) 10 commits
771 (merged to 'next' on 2018-01-23 at ca59f5c18e)
@@ -849,9 +823,9 @@ of the repositories listed at
823
824 * ot/mru-on-list (2017-10-01) 1 commit
825 - mru: use double-linked list from list.h
826 + (this branch is used by gs/retire-mru.)
827
828 The first step to getting rid of mru API and using the
829 doubly-linked list API directly instead.
830
856 - A follow-up is being worked on; it seems to be almost ready.
857 - cf. <20180122073701.h7fh7xrkmnzndzj7@untitled>
831 + Will merge to 'next'.