What's cooking (2018/02 #03)

Junio C Hamano committed Feb 21, 2018 at 16:31 UTC 32d848781c938129f11e92c2c53a41aa74c69c61
1 file changed +568 -649
whats-cooking.txt
+568 -649
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Feb 2018, #02; Tue, 13)
4 -X-master-at: b2e45c695d09f6a31ce09347ae0a5d2cdfe9dd4e
5 -X-next-at: e5215aaa5c9875adf01d63ed4237f0870ec897f1
3 +Subject: What's cooking in git.git (Feb 2018, #03; Wed, 21)
4 +X-master-at: e3a80781f5932f5fea12a49eb06f3ade4ed8945c
5 +X-next-at: 2e18187dfdb805eb42926ca430828b89b45f5da7
6
7 -What's cooking in git.git (Feb 2018, #02; Tue, 13)
7 +What's cooking in git.git (Feb 2018, #03; Wed, 21)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,515 +20,428 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* ab/simplify-perl-makefile (2018-01-03) 3 commits
24 - (merged to 'next' on 2018-01-23 at 1506e0651a)
25 - + perl: treat PERLLIB_EXTRA as an extra path again
26 - + perl: avoid *.pmc and fix Error.pm further
27 - + Makefile: replace perl/Makefile.PL with simple make rules
28 -
29 - Originally merged to 'next' on 2018-01-03
30 -
31 - The build procedure for perl/ part has been greatly simplified by
32 - weaning ourselves off of MakeMaker.
33 -
34 -
35 -* cc/sha1-file-name (2018-01-19) 2 commits
36 - (merged to 'next' on 2018-02-07 at a50b171a84)
37 - + sha1_file: improve sha1_file_name() perfs
38 - + sha1_file: remove static strbuf from sha1_file_name()
39 -
40 - Code clean-up.
41 -
42 -
43 -* cl/t9001-cleanup (2018-01-12) 1 commit
44 - (merged to 'next' on 2018-02-07 at 9b194a9999)
45 - + t9001: use existing helper in send-email test
46 -
47 - Test clean-up.
48 -
49 -
50 -* ds/use-get-be64 (2018-01-19) 1 commit
51 - (merged to 'next' on 2018-02-07 at 6d6d5ba71d)
52 - + packfile: use get_be64() for large offsets
53 -
54 - Code clean-up.
55 -
56 -
57 -* ew/svn-branch-segfault-fix (2018-01-30) 1 commit
58 - (merged to 'next' on 2018-02-07 at 1bf8d8f74f)
59 - + git-svn: control destruction order to avoid segfault
60 -
61 - Workaround for segfault with more recent versions of SVN.
62 -
63 -
64 -* gs/retire-mru (2018-01-24) 1 commit
65 - (merged to 'next' on 2018-02-07 at 4b2e893911)
66 - + mru: Replace mru.[ch] with list.h implementation
67 - (this branch uses ot/mru-on-list.)
68 -
69 - Retire mru API as it does not give enough abstraction over
70 - underlying list API to be worth it.
71 -
72 -
73 -* jc/mailinfo-cleanup-fix (2018-01-24) 1 commit
74 - (merged to 'next' on 2018-02-07 at 65d41f993b)
75 - + mailinfo: avoid segfault when can't open files
76 -
77 - Corner case bugfix.
78 -
79 -
80 -* jh/fsck-promisors (2017-12-08) 10 commits
81 - (merged to 'next' on 2018-01-23 at ca59f5c18e)
82 - + gc: do not repack promisor packfiles
83 - + rev-list: support termination at promisor objects
84 - + sha1_file: support lazily fetching missing objects
85 - + introduce fetch-object: fetch one promisor object
86 - + index-pack: refactor writing of .keep files
87 - + fsck: support promisor objects as CLI argument
88 - + fsck: support referenced promisor objects
89 - + fsck: support refs pointing to promisor objects
90 - + fsck: introduce partialclone extension
91 - + extension.partialclone: introduce partial clone extension
92 - (this branch is used by jh/partial-clone.)
93 -
94 - Originally merged to 'next' on 2018-01-17
95 -
96 - In preparation for implementing narrow/partial clone, the machinery
97 - for checking object connectivity used by gc and fsck has been
98 - taught that a missing object is OK when it is referenced by a
99 - packfile specially marked as coming from trusted repository that
100 - promises to make them available on-demand and lazily.
101 -
102 -
103 -* jh/partial-clone (2017-12-08) 13 commits
104 - (merged to 'next' on 2018-01-23 at de0f0111ea)
105 - + t5616: test bulk prefetch after partial fetch
106 - + fetch: inherit filter-spec from partial clone
107 - + t5616: end-to-end tests for partial clone
108 - + fetch-pack: restore save_commit_buffer after use
109 - + unpack-trees: batch fetching of missing blobs
110 - + clone: partial clone
111 - + partial-clone: define partial clone settings in config
112 - + fetch: support filters
113 - + fetch: refactor calculation of remote list
114 - + fetch-pack: test support excluding large blobs
115 - + fetch-pack: add --no-filter
116 - + fetch-pack, index-pack, transport: partial clone
117 - + upload-pack: add object filtering for partial clone
118 - (this branch uses jh/fsck-promisors.)
119 -
120 - Originally merged to 'next' on 2018-01-17
121 -
122 - The machinery to clone & fetch, which in turn involves packing and
123 - unpacking objects, have been told how to omit certain objects using
124 - the filtering mechanism introduced by the jh/object-filtering
125 - topic, and also mark the resulting pack as a promisor pack to
126 - tolerate missing objects, taking advantage of the mechanism
127 - introduced by the jh/fsck-promisors topic.
23 +* ab/sha1dc-build (2017-12-08) 3 commits
24 + (merged to 'next' on 2018-02-08 at ba9ff2b836)
25 + + sha1dc_git.h: re-arrange an ifdef chain for a subsequent change
26 + + Makefile: under "make dist", include the sha1collisiondetection submodule
27 + + Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto
28
29 + Push the submodule version of collision-detecting SHA-1 hash
30 + implementation a bit harder on builders.
31
130 -* jk/daemon-fixes (2018-01-25) 6 commits
131 - (merged to 'next' on 2018-02-07 at 0e4fe8f8cc)
132 - + daemon: fix length computation in newline stripping
133 - + t/lib-git-daemon: add network-protocol helpers
134 - + daemon: handle NULs in extended attribute string
135 - + daemon: fix off-by-one in logging extended attributes
136 - + t/lib-git-daemon: record daemon log
137 - + t5570: use ls-remote instead of clone for interp tests
32
139 - Assorted fixes to "git daemon".
33 +* ab/wildmatch-tests (2018-01-30) 10 commits
34 + (merged to 'next' on 2018-02-08 at f999a3d732)
35 + + wildmatch test: mark test as EXPENSIVE_ON_WINDOWS
36 + + test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite
37 + + wildmatch test: create & test files on disk in addition to in-memory
38 + + wildmatch test: perform all tests under all wildmatch() modes
39 + + wildmatch test: use test_must_fail, not ! for test-wildmatch
40 + + wildmatch test: remove dead fnmatch() test code
41 + + wildmatch test: use a paranoia pattern from nul_match()
42 + + wildmatch test: don't try to vertically align our output
43 + + wildmatch test: use more standard shell style
44 + + wildmatch test: indent with tabs, not spaces
45
46 + More tests for wildmatch functions.
47
142 -* jt/http-redact-cookies (2018-01-19) 2 commits
143 - (merged to 'next' on 2018-02-07 at a8c3416a7d)
144 - + http: support omitting data from traces
145 - + http: support cookie redaction when tracing
48
147 - The http tracing code, often used to debug connection issues,
148 - learned to redact potentially sensitive information from its output
149 - so that it can be more safely sharable.
49 +* bc/hash-algo (2018-02-09) 13 commits
50 + (merged to 'next' on 2018-02-09 at 4437f3f132)
51 + + hash: update obsolete reference to SHA1_HEADER
52 + (merged to 'next' on 2018-02-08 at 18f36d12ed)
53 + + bulk-checkin: abstract SHA-1 usage
54 + + csum-file: abstract uses of SHA-1
55 + + csum-file: rename sha1file to hashfile
56 + + read-cache: abstract away uses of SHA-1
57 + + pack-write: switch various SHA-1 values to abstract forms
58 + + pack-check: convert various uses of SHA-1 to abstract forms
59 + + fast-import: switch various uses of SHA-1 to the_hash_algo
60 + + sha1_file: switch uses of SHA-1 to the_hash_algo
61 + + builtin/unpack-objects: switch uses of SHA-1 to the_hash_algo
62 + + builtin/index-pack: improve hash function abstraction
63 + + hash: create union for hash context allocation
64 + + hash: move SHA-1 macros to hash.h
65
66 + More abstraction of hash function from the codepath.
67
152 -* jt/long-running-process-doc (2018-01-25) 1 commit
153 - (merged to 'next' on 2018-02-07 at 8bbb42ad3c)
154 - + Docs: split out long-running subprocess handshake
68
156 - Doc updates.
69 +* cc/perf-aggregate (2018-02-02) 3 commits
70 + (merged to 'next' on 2018-02-08 at d8f074e6fb)
71 + + perf/aggregate: sort JSON fields in output
72 + + perf/aggregate: add --reponame option
73 + + perf/aggregate: add --subsection option
74
75 + "make perf" enhancement.
76
159 -* ks/submodule-doc-updates (2018-01-16) 2 commits
160 - (merged to 'next' on 2018-02-07 at aff2fa1650)
161 - + Doc/git-submodule: improve readability and grammar of a sentence
162 - + Doc/gitsubmodules: make some changes to improve readability and syntax
77
164 - Doc updates.
78 +* en/merge-recursive-fixes (2018-01-19) 3 commits
79 + (merged to 'next' on 2018-02-08 at c254292070)
80 + + merge-recursive: add explanation for src_entry and dst_entry
81 + + merge-recursive: fix logic ordering issue
82 + + Tighten and correct a few testcases for merging and cherry-picking
83 + (this branch is used by en/rename-directory-detection.)
84
85
167 -* mr/packed-ref-store-fix (2018-01-19) 1 commit
168 - (merged to 'next' on 2018-02-07 at 17d32e99da)
169 - + files_initial_transaction_commit(): only unlock if locked
86 +* gs/rebase-allow-empty-message (2018-02-07) 1 commit
87 + (merged to 'next' on 2018-02-08 at 9d81a2496c)
88 + + rebase: add --allow-empty-message option
89
171 - Crash fix for a corner case where an error codepath tried to unlock
172 - what it did not acquire lock on.
90 + "git rebase" learned to take "--allow-empty-message" option.
91
92
175 -* nd/diff-flush-before-warning (2018-01-16) 1 commit
176 - (merged to 'next' on 2018-02-07 at 9c67f58ae0)
177 - + diff.c: flush stdout before printing rename warnings
93 +* jc/worktree-add-short-help (2018-01-17) 1 commit
94 + (merged to 'next' on 2018-02-08 at 9f59ca72ab)
95 + + worktree: say that "add" takes an arbitrary commit in short-help
96
179 - Avoid showing a warning message in the middle of a line of "git
180 - diff" output.
97 + Error message fix.
98
99
183 -* nd/list-merge-strategy (2018-01-26) 1 commit
184 - (merged to 'next' on 2018-02-07 at a75d04a675)
185 - + completion: fix completing merge strategies on non-C locales
100 +* jt/fsck-code-cleanup (2018-01-23) 1 commit
101 + (merged to 'next' on 2018-02-08 at 199ad41486)
102 + + fsck: fix leak when traversing trees
103
187 - Completion of "git merge -s<strategy>" (in contrib/) did not work
188 - well in non-C locale.
104 + Plug recently introduced leaks in fsck.
105
106
191 -* nd/shared-index-fix (2018-01-24) 3 commits
192 - (merged to 'next' on 2018-02-07 at c5d6e68c91)
193 - + read-cache: don't write index twice if we can't write shared index
194 - + read-cache.c: move tempfile creation/cleanup out of write_shared_index
195 - + read-cache.c: change type of "temp" in write_shared_index()
107 +* kg/packed-ref-cache-fix (2018-01-24) 6 commits
108 + (merged to 'next' on 2018-02-08 at 370f06a565)
109 + + packed_ref_cache: don't use mmap() for small files
110 + + load_contents(): don't try to mmap an empty file
111 + + packed_ref_iterator_begin(): make optimization more general
112 + + find_reference_location(): make function safe for empty snapshots
113 + + create_snapshot(): use `xmemdupz()` rather than a strbuf
114 + + struct snapshot: store `start` rather than `header_len`
115
197 - Code clean-up.
116 + Avoid mmapping small files while using packed refs (especially ones
117 + with zero size, which would cause later munmap() to fail).
118 + A change to a binsearch loop to work around picky complers was
119 + unnecessarily hard to reason about, but it should do.
120
121
200 -* nd/trace-with-env (2018-01-19) 7 commits
201 - (merged to 'next' on 2018-02-07 at 68399411d9)
202 - + run-command.c: print new cwd in trace_run_command()
203 - + run-command.c: print env vars in trace_run_command()
204 - + run-command.c: print program 'git' when tracing git_cmd mode
205 - + run-command.c: introduce trace_run_command()
206 - + trace.c: move strbuf_release() out of print_trace_line()
207 - + trace: avoid unnecessary quoting
208 - + sq_quote_argv: drop maxlen parameter
122 +* lw/daemon-log-destination (2018-02-05) 1 commit
123 + (merged to 'next' on 2018-02-08 at da91bd56f4)
124 + + daemon: add --log-destination=(stderr|syslog|none)
125
210 - The tracing machinery learned to report tweaking of environment
211 - variables as well.
126 + The log from "git daemon" can be redirected with a new option; one
127 + relevant use case is to send the log to standard error (instead of
128 + syslog) when running it from inetd.
129
130
214 -* ot/mru-on-list (2017-10-01) 1 commit
215 - (merged to 'next' on 2018-02-07 at ee1ee4ac79)
216 - + mru: use double-linked list from list.h
217 - (this branch is used by gs/retire-mru.)
131 +* nd/format-patch-stat-width (2018-02-02) 2 commits
132 + (merged to 'next' on 2018-02-08 at c03e8a084e)
133 + + format-patch: reduce patch diffstat width to 72
134 + + format-patch: keep cover-letter diffstat wrapped in 72 columns
135
219 - The first step to getting rid of mru API and using the
220 - doubly-linked list API directly instead.
136 + "git format-patch" learned to give 72-cols to diffstat, which is
137 + consistent with other line length limits the subcommand uses for
138 + its output meant for e-mails.
139
140
223 -* pc/submodule-helper (2018-01-16) 2 commits
224 - (merged to 'next' on 2018-02-07 at 53b4524eca)
225 - + submodule: port submodule subcommand 'deinit' from shell to C
226 - + submodule: port submodule subcommand 'sync' from shell to C
141 +* nd/ignore-glob-doc-update (2018-02-02) 1 commit
142 + (merged to 'next' on 2018-02-08 at 22ba92e49b)
143 + + gitignore.txt: elaborate shell glob syntax
144
228 - Rewrite two more "git submodule" subcommands in C.
145 + Doc update.
146
147
231 -* po/clang-format-functype-weight (2018-01-24) 1 commit
232 - (merged to 'next' on 2018-02-07 at 0724aaae38)
233 - + clang-format: adjust penalty for return type line break
148 +* nd/trace-index-ops (2018-02-02) 1 commit
149 + (merged to 'next' on 2018-02-08 at 91e362b26a)
150 + + trace: measure where the time is spent in the index-heavy operations
151
235 - Prevent "clang-format" from breaking line after function return type.
152
153 +* po/object-id (2018-01-30) 12 commits
154 + (merged to 'next' on 2018-02-08 at 701311e8ea)
155 + + sha1_file: rename hash_sha1_file_literally
156 + + sha1_file: convert write_loose_object to object_id
157 + + sha1_file: convert force_object_loose to object_id
158 + + sha1_file: convert write_sha1_file to object_id
159 + + notes: convert write_notes_tree to object_id
160 + + notes: convert combine_notes_* to object_id
161 + + commit: convert commit_tree* to object_id
162 + + match-trees: convert splice_tree to object_id
163 + + cache: clear whole hash buffer with oidclr
164 + + sha1_file: convert hash_sha1_file to object_id
165 + + dir: convert struct sha1_stat to use object_id
166 + + sha1_file: convert pretend_sha1_file to object_id
167
238 -* po/http-push-error-message (2018-01-24) 1 commit
239 - (merged to 'next' on 2018-02-07 at 3dccd32857)
240 - + http-push: improve error log
168 + Conversion from uchar[20] to struct object_id continues.
169
242 - Debugging aid.
170
171 +* rs/cocci-strbuf-addf-to-addstr (2018-02-02) 1 commit
172 + (merged to 'next' on 2018-02-08 at 0016008a97)
173 + + cocci: simplify check for trivial format strings
174
245 -* pw/sequencer-in-process-commit (2018-01-24) 14 commits
246 - (merged to 'next' on 2018-02-07 at ab5961edd9)
247 - + sequencer: run 'prepare-commit-msg' hook
248 - + t7505: add tests for cherry-pick and rebase -i/-p
249 - + t7505: style fixes
250 - + sequencer: assign only free()able strings to gpg_sign
251 - + sequencer: improve config handling
252 - + t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
253 - + sequencer: try to commit without forking 'git commit'
254 - + sequencer: load commit related config
255 - + sequencer: simplify adding Signed-off-by: trailer
256 - + commit: move print_commit_summary() to libgit
257 - + commit: move post-rewrite code to libgit
258 - + Add a function to update HEAD after creating a commit
259 - + commit: move empty message checks to libgit
260 - + t3404: check intermediate squash messages
175
262 - The sequencer infrastructure is shared across "git cherry-pick",
263 - "git rebase -i", etc., and has always spawned "git commit" when it
264 - needs to create a commit. It has been taught to do so internally,
265 - when able, by reusing the codepath "git commit" itself uses, which
266 - gives performance boost for a few tens of percents in some sample
267 - scenarios.
176 +* sb/pull-rebase-submodule (2018-01-25) 1 commit
177 + (merged to 'next' on 2018-02-08 at 38fa97f855)
178 + + builtin/pull: respect verbosity settings in submodules
179
180 + "git pull --rebase" did not pass verbosity setting down when
181 + recursing into a submodule.
182
270 -* rb/hashmap-h-compilation-fix (2018-01-16) 1 commit
271 - (merged to 'next' on 2018-02-07 at 780bc6d06b)
272 - + hashmap.h: remove unused variable
183
274 - Code clean-up.
184 +* sg/test-i18ngrep (2018-02-08) 9 commits
185 + (merged to 'next' on 2018-02-08 at e83eb33909)
186 + + t: make 'test_i18ngrep' more informative on failure
187 + + t: validate 'test_i18ngrep's parameters
188 + + t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
189 + + t5536: let 'test_i18ngrep' read the file without redirection
190 + + t5510: consolidate 'grep' and 'test_i18ngrep' patterns
191 + + t4001: don't run 'git status' upstream of a pipe
192 + + t6022: don't run 'git merge' upstream of a pipe
193 + + t5812: add 'test_i18ngrep's missing filename parameter
194 + + t5541: add 'test_i18ngrep's missing filename parameter
195
196 + Test fixes.
197
277 -* rs/describe-unique-abbrev (2018-01-16) 1 commit
278 - (merged to 'next' on 2018-02-07 at b5383e2d05)
279 - + describe: use strbuf_add_unique_abbrev() for adding short hashes
198
281 - Code clean-up.
199 +* tg/reset-hard-show-head-with-pretty (2018-02-02) 1 commit
200 + (merged to 'next' on 2018-02-08 at 596a4ec00d)
201 + + reset --hard: make use of the pretty machinery
202
203 + The way "git reset --hard" reports the commit the updated HEAD
204 + points at is made consistent with the way how the commit title is
205 + generated by the other parts of the system. This matters when the
206 + title is spread across physically multiple lines.
207
284 -* rs/strbuf-cocci-workaround (2018-01-19) 1 commit
285 - (merged to 'next' on 2018-02-07 at 73a2c4c769)
286 - + cocci: use format keyword instead of a literal string
208 +--------------------------------------------------
209 +[New Topics]
210
288 - Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str)
211 +* bp/fsmonitor (2018-02-14) 1 commit
212 + (merged to 'next' on 2018-02-14 at 5c508858fb)
213 + + fsmonitor: update documentation to remove reference to invalid config settings
214
215 + Doc update for a recently added feature.
216
291 -* sg/cocci-move-array (2018-01-22) 1 commit
292 - (merged to 'next' on 2018-02-07 at 6ced765979)
293 - + Use MOVE_ARRAY
217 + Will merge to 'master'.
218
295 - Code clean-up.
219
220 +* jk/sq-dequote-on-bogus-input (2018-02-14) 1 commit
221 + (merged to 'next' on 2018-02-14 at 75d4f1eaf8)
222 + + sq_dequote: fix extra consumption of source string
223
298 -* sg/travis-linux32-sanity (2018-01-30) 5 commits
299 - (merged to 'next' on 2018-02-07 at 0349cf505c)
300 - + travis-ci: don't fail if user already exists on 32 bit Linux build job
301 - + travis-ci: don't run the test suite as root in the 32 bit Linux build
302 - + travis-ci: don't repeat the path of the cache directory
303 - + travis-ci: use 'set -e' in the 32 bit Linux build job
304 - + travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux build
224 + Code to unquote single-quoted string (used in the parser for
225 + configuration files, etc.) did not diagnose bogus input correctly
226 + and produced bogus results instead.
227
306 - Travis updates.
228 + Will merge to 'master'.
229
230
309 -* tb/crlf-conv-flags (2018-01-16) 1 commit
310 - (merged to 'next' on 2018-02-07 at 1981be1b46)
311 - + convert_to_git(): safe_crlf/checksafe becomes int conv_flags
312 - (this branch is used by ls/checkout-encoding.)
231 +* jk/test-hashmap-updates (2018-02-14) 6 commits
232 + (merged to 'next' on 2018-02-14 at a61a9bd8f0)
233 + + test-hashmap: use "unsigned int" for hash storage
234 + + test-hashmap: simplify alloc_test_entry
235 + + test-hashmap: use strbuf_getline rather than fgets
236 + + test-hashmap: use xsnprintf rather than snprintf
237 + + test-hashmap: check allocation computation for overflow
238 + + test-hashmap: use ALLOC_ARRAY rather than bare malloc
239
240 Code clean-up.
241
316 -
317 -* tg/split-index-fixes (2018-01-19) 3 commits
318 - (merged to 'next' on 2018-02-07 at 52d7a92ec5)
319 - + travis: run tests with GIT_TEST_SPLIT_INDEX
320 - + split-index: don't write cache tree with null oid entries
321 - + read-cache: fix reading the shared index for other repos
322 -
323 - The split-index mode had a few corner case bugs fixed.
324 -
325 -
326 -* tz/doc-show-defaults-to-head (2018-01-30) 1 commit
327 - (merged to 'next' on 2018-02-07 at fa21fb2ec8)
328 - + doc: mention 'git show' defaults to HEAD
329 -
330 - Doc update.
331 -
332 ---------------------------------------------------
333 -[New Topics]
334 -
335 -* bp/name-hash-dirname-fix (2018-02-08) 1 commit
336 - - name-hash: properly fold directory names in adjust_dirname_case()
337 -
338 - "git add" files in the same directory, but spelling the directory
339 - path in different cases on case insensitive filesystem, corrupted
340 - the name hash data structure and led to unexpected results. This
341 - has been corrected.
342 -
343 - Will merge to 'next'.
242 + Will merge to 'master'.
243
244
346 -* jk/doc-do-not-write-extern (2018-02-08) 1 commit
347 - - CodingGuidelines: mention "static" and "extern"
245 +* nd/am-quit (2018-02-14) 1 commit
246 + (merged to 'next' on 2018-02-21 at 9a9cb40c2f)
247 + + am: support --quit
248
349 - Devdoc update.
249 + "git am" has learned "--quit" option, in addition to the existing
250 + "--abort" option; having the pair mirrors a few other commands like
251 + "rebase" and "cherry-pick".
252
351 - Will merge to 'next'.
253 + Will merge to 'master'.
254
255
354 -* jk/gettext-poison (2018-02-08) 2 commits
355 - - git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME
356 - - t0205: drop redundant test
256 +* nd/tilde-expand-opt-file-value (2018-02-14) 2 commits
257 + - init-db: change --template type to OPTION_FILENAME
258 + - parse-options: expand $HOME on filename options
259
358 - Test updates.
260 + "git cmd --opt=~u/path/to/file" did not tilde-expand "~u" part to
261 + the path to the home directory of user 'u'
262
360 - Will merge to 'next'.
263 + Will discard.
264 + This may make the resulting whole more confusing, though.
265 + cf. <87wozffavp.fsf@evledraar.gmail.com>
266
267
363 -* js/fix-merge-arg-quoting-in-rebase-p (2018-02-08) 1 commit
364 - - rebase -p: fix incorrect commit message when calling `git merge`.
268 +* rd/typofix (2018-02-14) 2 commits
269 + (merged to 'next' on 2018-02-14 at e770601de4)
270 + + Correct mispellings of ".gitmodule" to ".gitmodules"
271 + + t/: correct obvious typo "detahced"
272
366 - "git rebase -p" mangled log messages of a merge commit, which is
367 - now fixed.
273 + Typofix.
274
369 - Will merge to 'next'.
275 + Will merge to 'master'.
276
277
372 -* js/packet-read-line-check-null (2018-02-08) 2 commits
373 - - always check for NULL return from packet_read_line()
374 - - correct error messages for NULL packet_read_line()
278 +* jc/allow-ff-merging-kept-tags (2018-02-16) 1 commit
279 + - merge: allow fast-forward when merging a tracked tag
280
376 - Some low level protocol codepath could crash when they get an
377 - unexpected flush packet, which is now fixed.
281 + Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when
282 + the side branch being merged is a descendant of the current commit,
283 + create a merge commit instead of fast-forwarding) when merging a
284 + tag object. This was appropriate default for integrators who pull
285 + signed tags from their downstream contributors, but caused an
286 + unnecessary merges when used by downstream contributors who
287 + habitually "catch up" their topic branches with tagged releases
288 + from the upstream. Update "git merge" to default to --no-ff only
289 + when merging a tag object that does *not* sit at its usual place in
290 + refs/tags/ hierarchy, and allow fast-forwarding otherwise, to
291 + mitigate the problem.
292
293 Will merge to 'next'.
294
295
382 -* sb/color-h-cleanup (2018-02-13) 1 commit
383 - - color.h: document and modernize header
384 - (this branch is used by sb/blame-color.)
296 +* ab/perl-fixes (2018-02-15) 2 commits
297 + - perl: move CPAN loader wrappers to another namespace
298 + - perl: *.pm files should not have the executable bit
299
386 - Devdoc update.
300 + Only the first few of a series of several small patches.
301
388 - Will merge to 'next'.
302 + Expecting a reroll.
303
304
391 -* ab/untracked-cache-invalidation-docs (2018-02-09) 2 commits
392 - - update-index doc: note the caveat with "could not open..."
393 - - update-index doc: note a fixed bug in the untracked cache
394 - (this branch uses nd/fix-untracked-cache-invalidation.)
305 +* ab/simplify-perl-makefile (2018-02-15) 1 commit
306 + - Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targets
307
396 - Doc update to warn against remaining bugs in untracked cache.
308 + Hotfix for a topic already in 'master'.
309
310 Will merge to 'next'.
311
312
401 -* as/ll-i18n (2018-02-13) 1 commit
402 - - Mark messages for translations
313 +* es/worktree-add-post-checkout-hook (2018-02-15) 1 commit
314 + (merged to 'next' on 2018-02-21 at 6ef6a130bf)
315 + + worktree: add: fix 'post-checkout' not knowing new worktree location
316
404 - Some messages in low level start-up codepath have been i18n-ized.
317 + "git worktree add" learned to run the post-checkout hook, just like
318 + "git clone" runs it upon the initial checkout.
319
406 - Will merge to 'next'.
320 + Will merge to 'master'.
321
322
409 -* bc/doc-interpret-trailers-grammofix (2018-02-13) 1 commit
410 - - docs/interpret-trailers: fix agreement error
323 +* sb/status-doc-fix (2018-02-15) 1 commit
324 + (merged to 'next' on 2018-02-21 at 5e68f3dac8)
325 + + Documentation/git-status: clarify status table for porcelain mode
326
327 Docfix.
328
414 - Will merge to 'next'.
329 + Will merge to 'master'.
330
331
417 -* jk/t0002-simplify (2018-02-12) 1 commit
418 - - t0002: simplify error checking
332 +* tk/apply-dev-null-verify-name-fix (2018-02-15) 2 commits
333 + (merged to 'next' on 2018-02-21 at dab449203b)
334 + + apply: handle Subversion diffs with /dev/null gracefully
335 + + apply: demonstrate a problem applying svn diffs
336
420 - Code cleanup.
337 + Many places in "git apply" knew that "/dev/null" that signals
338 + "there is no such file on this side of the diff" can be followed by
339 + whitespace and garbage when parsing a patch, except for one, which
340 + made an otherwise valid patch (e.g. ones from subversion) rejected.
341
422 - Will merge to 'next'.
342 + Will merge to 'master'.
343
344
425 -* ma/config-page-only-in-list-mode (2018-02-12) 3 commits
426 - - config: change default of `pager.config` to "on"
427 - - config: respect `pager.config` in list/get-mode only
428 - - t7006: add tests for how git config paginates
345 +* gs/test-unset-xdg-cache-home (2018-02-16) 1 commit
346 + (merged to 'next' on 2018-02-21 at 9aec46d404)
347 + + test-lib.sh: unset XDG_CACHE_HOME
348
430 - In a way similar to how "git tag" learned to honor the pager
431 - setting only in the list mode, "git config" learned to ignore the
432 - pager setting when it is used for setting values (i.e. when the
433 - purpose of the operation is not to "show").
349 + Test update.
350
435 - Waiting for discussion to conclude.
351 + Will merge to 'master'.
352
353
438 -* ot/cat-batch-format (2018-02-12) 23 commits
439 - - cat-file: update of docs
440 - - cat-file: tests for new atoms added
441 - - for-each-ref: tests for new atoms added
442 - - ref-filter: unifying formatting of cat-file opts
443 - - ref-filter: make populate_value() internal again
444 - - cat-file: reuse printing logic from ref-filter
445 - - ref-filter: make valid_atom general again
446 - - ref-filter: make cat_file_info independent
447 - - cat-file: move skip_object_info into ref-filter
448 - - ref_filter: add is_atom_used function
449 - - ref-filter: get rid of mark_atom_in_object_info()
450 - - cat-file: start reusing populate_value()
451 - - ref-filter: rename field in ref_array_item stuct
452 - - ref-filter: make populate_value() global
453 - - cat-file: start use ref_array_item struct
454 - - ref-filter: reuse parse_ref_filter_atom()
455 - - cat-file: start migrating formatting to ref-filter
456 - - cat-file: split expand_atom() into 2 functions
457 - - cat-file: move struct expand_data into ref-filter
458 - - ref-filter: make valid_atom as function parameter
459 - - cat-file: reuse struct ref_format
460 - - ref-filter: add return value to some functions
461 - - ref-filter: get rid of goto
462 -
463 - Teach "cat-file --batch" to reuse the formatting machinery shared
464 - by for-each-ref, branch --list, and tag --list.
354 +* tg/worktree-create-tracking (2018-02-16) 2 commits
355 + (merged to 'next' on 2018-02-21 at 3e00a10cd8)
356 + + git-worktree.txt: fix indentation of example and text of 'add' command
357 + + git-worktree.txt: fix missing ")" typo
358
359 + Hotfix for a recent topic.
360
467 -* rj/sparse-updates (2018-02-12) 2 commits
468 - - Makefile: suppress a sparse warning for pack-revindex.c
469 - - config.mak.uname: remove SPARSE_FLAGS setting for cygwin
361 + Will merge to 'master'.
362
471 - Devtool update.
363
473 - Will merge to 'next'.
364 +* jk/push-options-via-transport-fix (2018-02-20) 2 commits
365 + (merged to 'next' on 2018-02-21 at a037cbfa2b)
366 + + remote-curl: unquote incoming push-options
367 + + t5545: factor out http repository setup
368
369 + "git push" over http transport did not unquote the push-options
370 + correctly.
371
476 -* rs/check-ignore-multi (2018-02-12) 1 commit
477 - - check-ignore: fix mix of directories and other file types
372 + Will merge to 'master'.
373
479 - "git check-ignore" with multiple paths got confused when one is a
480 - file and the other is a directory, which has been fixed.
374
482 - Will merge to 'next'.
375 +* tz/do-not-clean-spec-file (2018-02-17) 1 commit
376 + (merged to 'next' on 2018-02-21 at c1336418a8)
377 + + Makefile: remove *.spec from clean target
378
379 + We no longer create any *.spec file, so "make clean" should not
380 + remove it.
381
485 -* sb/describe-blob (2018-02-12) 1 commit
486 - - describe: confirm that blobs actually exist
382 + Will merge to 'master'.
383
488 - "git describe $garbage" stopped giving any errors when the garbage
489 - happens to be a string with 40 hexadecimal letters.
384
491 - Will merge to 'next'.
385 +* bw/doc-submodule-recurse-config-with-clone (2018-02-21) 1 commit
386 + - submodule: indicate that 'submodule.recurse' doesn't apply to clone
387
388 + Doc update.
389
494 -* sg/doc-test-must-fail-args (2018-02-12) 1 commit
495 - - t: document 'test_must_fail ok=<signal-name>'
390 + Will merge to 'next'.
391
497 - Devdoc update.
392
499 - Will merge to 'next'.
393 +* ds/commit-graph (2018-02-20) 13 commits
394 + - commit-graph: build graph from starting commits
395 + - commit-graph: read only from specific pack-indexes
396 + - commit: integrate commit graph with commit parsing
397 + - commit-graph: close under reachability
398 + - commit-graph: add core.commitGraph setting
399 + - commit-graph: implement --delete-expired
400 + - commit-graph: implement --set-latest
401 + - commit-graph: implement git commit-graph read
402 + - commit-graph: implement 'git-commit-graph write'
403 + - commit-graph: implement write_commit_graph()
404 + - commit-graph: create git-commit-graph builtin
405 + - graph: add commit graph design document
406 + - commit-graph: add format document
407 + (this branch uses jt/binsearch-with-fanout.)
408 +
409 +
410 +* ot/ref-filter-cleanup (2018-02-21) 2 commits
411 + - ref-filter: get rid of goto
412 + - ref-filter: get rid of duplicate code
413
414 +--------------------------------------------------
415 +[Stalled]
416
502 -* sg/t6300-modernize (2018-02-13) 1 commit
503 - - t6300-for-each-ref: fix "more than one quoting style" tests
417 +* np/send-email-header-parsing (2017-12-15) 1 commit
418 + - send-email: extract email-parsing code into a subroutine
419
505 - Test update.
420 + Code refactoring.
421
507 - WIll merge to 'next'.
422 + Undecided but inclined to drop. A "refactor" without the code that
423 + benefit from the refactoring is hard to tell from code churn whose
424 + only effect is potential to introduce bugs.
425
426
510 -* xz/send-email-batch-size (2018-02-12) 1 commit
511 - - send-email: error out when relogin delay is missing
427 +* sg/travis-build-during-script-phase (2018-01-08) 1 commit
428 + - travis-ci: build Git during the 'script' phase
429
513 - "git send-email" learned to complain when the batch-size option is
514 - not defined when the relogin-delay option is, since these two are
515 - mutually required.
430 + So... what do we want to do with this thing?
431
432
518 -* pw/add-p-recount (2018-02-13) 4 commits
519 - - add -p: calculate offset delta for edited patches
520 - - add -p: adjust offsets of subsequent hunks when one is skipped
521 - - t3701: add failing test for pathological context lines
522 - - add -i: add function to format hunk header
433 +* jh/status-no-ahead-behind (2018-01-24) 4 commits
434 + - status: support --no-ahead-behind in long format
435 + - status: update short status to respect --no-ahead-behind
436 + - status: add --[no-]ahead-behind to status and commit for V2 format.
437 + - stat_tracking_info: return +1 when branches not equal
438
439 + "git status" can spend a lot of cycles to compute the relation
440 + between the current branch and its upstream, which can now be
441 + disabled with "--no-ahead-behind" option.
442
525 -* pw/add-p-single (2018-02-13) 3 commits
526 - - add -p: improve error messages
527 - - add -p: only bind search key if there's more than one hunk
528 - - add -p: only display help for active keys
443 + At v5; is this ready for 'next'?
444
530 ---------------------------------------------------
531 -[Stalled]
445
446 * av/fsmonitor-updates (2018-01-04) 6 commits
447 - fsmonitor: use fsmonitor data in `git diff`
@@ -669,26 +582,238 @@ of the repositories listed at
582 --------------------------------------------------
583 [Cooking]
584
672 -* bc/hash-algo (2018-02-09) 13 commits
673 - (merged to 'next' on 2018-02-09 at 4437f3f132)
674 - + hash: update obsolete reference to SHA1_HEADER
675 - (merged to 'next' on 2018-02-08 at 18f36d12ed)
676 - + bulk-checkin: abstract SHA-1 usage
677 - + csum-file: abstract uses of SHA-1
678 - + csum-file: rename sha1file to hashfile
679 - + read-cache: abstract away uses of SHA-1
680 - + pack-write: switch various SHA-1 values to abstract forms
681 - + pack-check: convert various uses of SHA-1 to abstract forms
682 - + fast-import: switch various uses of SHA-1 to the_hash_algo
683 - + sha1_file: switch uses of SHA-1 to the_hash_algo
684 - + builtin/unpack-objects: switch uses of SHA-1 to the_hash_algo
685 - + builtin/index-pack: improve hash function abstraction
686 - + hash: create union for hash context allocation
687 - + hash: move SHA-1 macros to hash.h
585 +* bp/name-hash-dirname-fix (2018-02-08) 1 commit
586 + (merged to 'next' on 2018-02-14 at 2f564fb4b3)
587 + + name-hash: properly fold directory names in adjust_dirname_case()
588 +
589 + "git add" files in the same directory, but spelling the directory
590 + path in different cases on case insensitive filesystem, corrupted
591 + the name hash data structure and led to unexpected results. This
592 + has been corrected.
593 +
594 + Will merge to 'master'.
595 +
596 +
597 +* jk/doc-do-not-write-extern (2018-02-08) 1 commit
598 + (merged to 'next' on 2018-02-14 at e55b5127de)
599 + + CodingGuidelines: mention "static" and "extern"
600 +
601 + Devdoc update.
602 +
603 + Will merge to 'master'.
604 +
605 +
606 +* jk/gettext-poison (2018-02-08) 2 commits
607 + (merged to 'next' on 2018-02-14 at cca3719a59)
608 + + git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME
609 + + t0205: drop redundant test
610 +
611 + Test updates.
612 +
613 + Will merge to 'master'.
614 +
615 +
616 +* js/fix-merge-arg-quoting-in-rebase-p (2018-02-08) 1 commit
617 + (merged to 'next' on 2018-02-14 at 27ebf001a1)
618 + + rebase -p: fix incorrect commit message when calling `git merge`.
619 +
620 + "git rebase -p" mangled log messages of a merge commit, which is
621 + now fixed.
622 +
623 + Will merge to 'master'.
624 +
625 +
626 +* js/packet-read-line-check-null (2018-02-08) 2 commits
627 + (merged to 'next' on 2018-02-14 at 6ba237b284)
628 + + always check for NULL return from packet_read_line()
629 + + correct error messages for NULL packet_read_line()
630 +
631 + Some low level protocol codepath could crash when they get an
632 + unexpected flush packet, which is now fixed.
633 +
634 + Will merge to 'master'.
635 +
636 +
637 +* sb/color-h-cleanup (2018-02-13) 1 commit
638 + - color.h: document and modernize header
639 + (this branch is used by sb/blame-color.)
640 +
641 + Devdoc update.
642 +
643 + Will merge to 'next'.
644 +
645 +
646 +* ab/untracked-cache-invalidation-docs (2018-02-09) 2 commits
647 + (merged to 'next' on 2018-02-14 at 11d2d07c4a)
648 + + update-index doc: note the caveat with "could not open..."
649 + + update-index doc: note a fixed bug in the untracked cache
650 + (this branch uses nd/fix-untracked-cache-invalidation.)
651 +
652 + Doc update to warn against remaining bugs in untracked cache.
653 +
654 + Will merge to 'master'.
655 +
656 +
657 +* as/ll-i18n (2018-02-13) 1 commit
658 + (merged to 'next' on 2018-02-14 at b30154a04c)
659 + + Mark messages for translations
660 +
661 + Some messages in low level start-up codepath have been i18n-ized.
662 +
663 + Will merge to 'master'.
664 +
665 +
666 +* bc/doc-interpret-trailers-grammofix (2018-02-13) 1 commit
667 + (merged to 'next' on 2018-02-14 at 940e6dc7a5)
668 + + docs/interpret-trailers: fix agreement error
669 +
670 + Docfix.
671 +
672 + Will merge to 'master'.
673 +
674 +
675 +* jk/t0002-simplify (2018-02-12) 1 commit
676 + (merged to 'next' on 2018-02-14 at a7a24f5f29)
677 + + t0002: simplify error checking
678 +
679 + Code cleanup.
680 +
681 + Will merge to 'master'.
682 +
683 +
684 +* ma/config-page-only-in-list-mode (2018-02-21) 3 commits
685 + - config: change default of `pager.config` to "on"
686 + - config: respect `pager.config` in list/get-mode only
687 + - t7006: add tests for how git config paginates
688 +
689 + In a way similar to how "git tag" learned to honor the pager
690 + setting only in the list mode, "git config" learned to ignore the
691 + pager setting when it is used for setting values (i.e. when the
692 + purpose of the operation is not to "show").
693 +
694 + Waiting for discussion to conclude.
695 +
696 +
697 +* ot/cat-batch-format (2018-02-12) 23 commits
698 + - cat-file: update of docs
699 + - cat-file: tests for new atoms added
700 + - for-each-ref: tests for new atoms added
701 + - ref-filter: unifying formatting of cat-file opts
702 + - ref-filter: make populate_value() internal again
703 + - cat-file: reuse printing logic from ref-filter
704 + - ref-filter: make valid_atom general again
705 + - ref-filter: make cat_file_info independent
706 + - cat-file: move skip_object_info into ref-filter
707 + - ref_filter: add is_atom_used function
708 + - ref-filter: get rid of mark_atom_in_object_info()
709 + - cat-file: start reusing populate_value()
710 + - ref-filter: rename field in ref_array_item stuct
711 + - ref-filter: make populate_value() global
712 + - cat-file: start use ref_array_item struct
713 + - ref-filter: reuse parse_ref_filter_atom()
714 + - cat-file: start migrating formatting to ref-filter
715 + - cat-file: split expand_atom() into 2 functions
716 + - cat-file: move struct expand_data into ref-filter
717 + - ref-filter: make valid_atom as function parameter
718 + - cat-file: reuse struct ref_format
719 + - ref-filter: add return value to some functions
720 + - ref-filter: get rid of goto
721 +
722 + Teach "cat-file --batch" to reuse the formatting machinery shared
723 + by for-each-ref, branch --list, and tag --list.
724 +
725 + Allocates flex-array on stack, etc.
726 + cf. <58b2bdcd-d621-fd21-ab4d-6a9478319b19@ramsayjones.plus.com>
727 +
728 +
729 +* rj/sparse-updates (2018-02-12) 2 commits
730 + (merged to 'next' on 2018-02-14 at 072df8ed5b)
731 + + Makefile: suppress a sparse warning for pack-revindex.c
732 + + config.mak.uname: remove SPARSE_FLAGS setting for cygwin
733 +
734 + Devtool update.
735 +
736 + Will merge to 'master'.
737 +
738 +
739 +* rs/check-ignore-multi (2018-02-12) 1 commit
740 + (merged to 'next' on 2018-02-14 at 43cb0704af)
741 + + check-ignore: fix mix of directories and other file types
742 +
743 + "git check-ignore" with multiple paths got confused when one is a
744 + file and the other is a directory, which has been fixed.
745 +
746 + Will merge to 'master'.
747 +
748 +
749 +* sb/describe-blob (2018-02-12) 1 commit
750 + (merged to 'next' on 2018-02-14 at 23e4c13944)
751 + + describe: confirm that blobs actually exist
752 +
753 + "git describe $garbage" stopped giving any errors when the garbage
754 + happens to be a string with 40 hexadecimal letters.
755 +
756 + Will merge to 'master'.
757 +
758 +
759 +* sg/doc-test-must-fail-args (2018-02-12) 1 commit
760 + (merged to 'next' on 2018-02-14 at 28662d145b)
761 + + t: document 'test_must_fail ok=<signal-name>'
762 +
763 + Devdoc update.
764 +
765 + Will merge to 'master'.
766 +
767 +
768 +* sg/t6300-modernize (2018-02-13) 1 commit
769 + - t6300-for-each-ref: fix "more than one quoting style" tests
770 +
771 + Test update.
772 +
773 + Will merge to 'next'.
774 +
775 +
776 +* xz/send-email-batch-size (2018-02-12) 1 commit
777 + - send-email: error out when relogin delay is missing
778 +
779 + "git send-email" learned to complain when the batch-size option is
780 + not defined when the relogin-delay option is, since these two are
781 + mutually required.
782 +
783 + Will merge to 'next'.
784 +
785 +
786 +* pw/add-p-recount (2018-02-20) 9 commits
787 + - add -p: don't rely on apply's '--recount' option
788 + - add -p: fix counting when splitting and coalescing
789 + - add -p: calculate offset delta for edited patches
790 + - add -p: adjust offsets of subsequent hunks when one is skipped
791 + - t3701: add failing test for pathological context lines
792 + - t3701: don't hard code sha1 hash values
793 + - t3701: use test_write_lines and write_script
794 + - t3701: indent here documents
795 + - add -i: add function to format hunk header
796
689 - More abstraction of hash function from the codepath.
797 + "git add -p" has been lazy in coalescing split patches before
798 + passing the result to underlying "git apply", leading to corner
799 + case bugs; the logic to prepare the patch to be applied after hunk
800 + selections has been tightened.
801
691 - Will merge to 'master'.
802 + Will merge to 'next'.
803 +
804 +
805 +* pw/add-p-single (2018-02-13) 3 commits
806 + - add -p: improve error messages
807 + - add -p: only bind search key if there's more than one hunk
808 + - add -p: only display help for active keys
809 +
810 + "git add -p" used to offer "/" (look for a matching hunk) as a
811 + choice, even there was only one hunk, which has been corrected.
812 + Also the single-key help is now given only for keys that are
813 + enabled (e.g. help for '/' won't be shown when there is only one
814 + hunk).
815 +
816 + Will merge to 'next'.
817
818
819 * bp/untracked-cache-noflush (2018-02-05) 1 commit
@@ -702,55 +827,26 @@ of the repositories listed at
827 cf. <CACsJy8DLP=j-h3knwX9zOpejAfUbv1YJwfB-iw4476oy0hTfxg@mail.gmail.com>
828
829
705 -* cc/perf-aggregate (2018-02-02) 3 commits
706 - (merged to 'next' on 2018-02-08 at d8f074e6fb)
707 - + perf/aggregate: sort JSON fields in output
708 - + perf/aggregate: add --reponame option
709 - + perf/aggregate: add --subsection option
710 -
711 - "make perf" enhancement.
712 -
713 - Will merge to 'master'.
714 -
715 -
716 -* gs/rebase-allow-empty-message (2018-02-07) 1 commit
717 - (merged to 'next' on 2018-02-08 at 9d81a2496c)
718 - + rebase: add --allow-empty-message option
719 -
720 - "git rebase" learned to take "--allow-empty-message" option.
721 -
722 - Will merge to 'master'.
723 -
724 -
830 * jc/blame-missing-path (2018-02-07) 1 commit
726 - - blame: tighten command line parser
831 + (merged to 'next' on 2018-02-14 at 883d266e1e)
832 + + blame: tighten command line parser
833
834 "git blame HEAD COPYING" in a bare repository failed to run, while
729 - "git blame HEAD -- COPYING" run just fine.
835 + "git blame HEAD -- COPYING" run just fine. This has been corrected.
836
731 - Will merge to 'next'.
837 + Will merge to 'master'.
838
839
734 -* jt/binsearch-with-fanout (2018-02-02) 2 commits
735 - (merged to 'next' on 2018-02-08 at 86fc3e8104)
840 +* jt/binsearch-with-fanout (2018-02-15) 2 commits
841 + (merged to 'next' on 2018-02-15 at 7648891022)
842 + packfile: refactor hash search with fanout table
843 + packfile: remove GIT_DEBUG_LOOKUP log statements
844 + (this branch is used by ds/commit-graph.)
845
846 Refactor the code to binary search starting from a fan-out table
847 (which is how the packfile is indexed with object names) into a
848 reusable helper.
849
743 - cf. <cfbde137-dbac-8796-f49f-2a543303d33a@web.de>
744 -
745 -
746 -* lw/daemon-log-destination (2018-02-05) 1 commit
747 - (merged to 'next' on 2018-02-08 at da91bd56f4)
748 - + daemon: add --log-destination=(stderr|syslog|none)
749 -
750 - The log from "git daemon" can be redirected with a new option; one
751 - relevant use case is to send the log to standard error (instead of
752 - syslog) when running it from inetd.
753 -
850 Will merge to 'master'.
851
852
@@ -761,8 +857,7 @@ of the repositories listed at
857 Waiting for the discussion to finish.
858
859
764 -* nd/parseopt-completion (2018-02-09) 42 commits
765 - - git-completion.bash: add GIT_COMPLETION_OPTIONS=all config
860 +* nd/parseopt-completion (2018-02-09) 41 commits
861 - completion: use __gitcomp_builtin in _git_worktree
862 - completion: use __gitcomp_builtin in _git_tag
863 - completion: use __gitcomp_builtin in _git_status
@@ -805,15 +900,10 @@ of the repositories listed at
900 - parse-options: add OPT_xxx_F() variants
901 - parse-options: support --git-completion-helper
902
808 - Will see another reroll.
809 - cf. <CACsJy8BoPxbt=hqAd9fS7MLiF33FVtAk0=Fr_q7UgYy1YvEg0w@mail.gmail.com>
810 -
903 + Teach parse-options API an option to help the completion script,
904 + and make use of the mechanism in command line completion.
905
812 -* nd/trace-index-ops (2018-02-02) 1 commit
813 - (merged to 'next' on 2018-02-08 at 91e362b26a)
814 - + trace: measure where the time is spent in the index-heavy operations
815 -
816 - Will merge to 'master'.
906 + Will merge to 'next'.
907
908
909 * pc/submodule-helper-foreach (2018-02-02) 5 commits
@@ -823,27 +913,8 @@ of the repositories listed at
913 - submodule foreach: document '$sm_path' instead of '$path'
914 - submodule foreach: correct '$path' in nested submodules from a subdirectory
915
826 - Waiting for the discussion to finish.
827 - cf. <20180206150044.1bffbb573c088d38c8e44bf5@google.com>
828 -
829 -
830 -* rs/cocci-strbuf-addf-to-addstr (2018-02-02) 1 commit
831 - (merged to 'next' on 2018-02-08 at 0016008a97)
832 - + cocci: simplify check for trivial format strings
833 -
834 - Will merge to 'master'.
835 -
836 -
837 -* tg/reset-hard-show-head-with-pretty (2018-02-02) 1 commit
838 - (merged to 'next' on 2018-02-08 at 596a4ec00d)
839 - + reset --hard: make use of the pretty machinery
840 -
841 - The way "git reset --hard" reports the commit the updated HEAD
842 - points at is made consistent with the way how the commit title is
843 - generated by the other parts of the system. This matters when the
844 - title is spread across physically multiple lines.
845 -
846 - Will merge to 'master'.
916 + Expecting a response to review comments
917 + e.g. cf. <20180206150044.1bffbb573c088d38c8e44bf5@google.com>
918
919
920 * tg/worktree-add-existing-branch (2018-02-05) 3 commits
@@ -863,11 +934,19 @@ of the repositories listed at
934 * nm/tag-edit (2018-02-07) 1 commit
935 - tag: add --edit option
936
937 + "git tag" learned an explicit "--edit" option that allows the
938 + message given via "-m" and "-F" to be further edited.
939 +
940 + Will merge to 'next'.
941
942 * sm/mv-dry-run-update (2018-02-07) 2 commits
943 - mv: remove unneeded 'if (!show_only)'
944 - t7001: add test case for --dry-run
945
946 + Code clean-up.
947 +
948 + Will merge to 'next'.
949 +
950
951 * ab/fetch-prune (2018-02-09) 17 commits
952 - fetch: make the --prune-tags work with <url>
@@ -893,66 +972,8 @@ of the repositories listed at
972 rid of stale tags that are locally held.
973
974
896 -* po/object-id (2018-01-30) 12 commits
897 - (merged to 'next' on 2018-02-08 at 701311e8ea)
898 - + sha1_file: rename hash_sha1_file_literally
899 - + sha1_file: convert write_loose_object to object_id
900 - + sha1_file: convert force_object_loose to object_id
901 - + sha1_file: convert write_sha1_file to object_id
902 - + notes: convert write_notes_tree to object_id
903 - + notes: convert combine_notes_* to object_id
904 - + commit: convert commit_tree* to object_id
905 - + match-trees: convert splice_tree to object_id
906 - + cache: clear whole hash buffer with oidclr
907 - + sha1_file: convert hash_sha1_file to object_id
908 - + dir: convert struct sha1_stat to use object_id
909 - + sha1_file: convert pretend_sha1_file to object_id
910 -
911 - Conversion from uchar[20] to struct object_id continues.
912 -
913 - Will merge to 'master'.
914 -
915 -
916 -* nd/format-patch-stat-width (2018-02-02) 2 commits
917 - (merged to 'next' on 2018-02-08 at c03e8a084e)
918 - + format-patch: reduce patch diffstat width to 72
919 - + format-patch: keep cover-letter diffstat wrapped in 72 columns
920 -
921 - "git format-patch" learned to give 72-cols to diffstat, which is
922 - consistent with other line length limits the subcommand uses for
923 - its output meant for e-mails.
924 -
925 - Will merge to 'master'.
926 -
927 -
928 -* sb/pull-rebase-submodule (2018-01-25) 1 commit
929 - (merged to 'next' on 2018-02-08 at 38fa97f855)
930 - + builtin/pull: respect verbosity settings in submodules
931 -
932 - "git pull --rebase" did not pass verbosity setting down when
933 - recursing into a submodule.
934 -
935 - Will merge to 'master'.
936 -
937 -
938 -* sg/test-i18ngrep (2018-02-08) 9 commits
939 - (merged to 'next' on 2018-02-08 at e83eb33909)
940 - + t: make 'test_i18ngrep' more informative on failure
941 - + t: validate 'test_i18ngrep's parameters
942 - + t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
943 - + t5536: let 'test_i18ngrep' read the file without redirection
944 - + t5510: consolidate 'grep' and 'test_i18ngrep' patterns
945 - + t4001: don't run 'git status' upstream of a pipe
946 - + t6022: don't run 'git merge' upstream of a pipe
947 - + t5812: add 'test_i18ngrep's missing filename parameter
948 - + t5541: add 'test_i18ngrep's missing filename parameter
949 -
950 - Test fixes.
951 -
952 - Will merge to 'master'.
953 -
954 -
955 -* bw/c-plus-plus (2018-01-30) 37 commits
975 +* bw/c-plus-plus (2018-02-14) 38 commits
976 + - fixup! diff: rename 'this' variables
977 - replace: rename 'new' variables
978 - trailer: rename 'template' variables
979 - tempfile: rename 'template' variables
@@ -991,24 +1012,13 @@ of the repositories listed at
1012 - object: rename function 'typename' to 'type_name'
1013 - object_info: change member name from 'typename' to 'type_name'
1014
994 - I do not mind refraining from using these keywords in a foreign
995 - language in our codebase too much, but at the same time, renaming
996 - must be done a bit more thoughtfully. When the original uses 'new'
997 - together with and in contrast to 'old', renaming 'new' must be done
998 - while preserving the pairing (which may involve renaming 'old' as
999 - well), for example.
1000 -
1001 - Backburnered, i.e. will drop if other topics start to conflict with
1002 - it, but will accept rerolls.
1003 -
1004 -
1005 -* nd/ignore-glob-doc-update (2018-02-02) 1 commit
1006 - (merged to 'next' on 2018-02-08 at 22ba92e49b)
1007 - + gitignore.txt: elaborate shell glob syntax
1008 -
1009 - Doc update.
1015 + Avoid using identifiers that clash with C++ keywords. Even though
1016 + it is not a goal to compile Git with C++ compilers, changes like
1017 + this help use of code analysis tools that targets C++ on our
1018 + codebase.
1019
1011 - Will merge to 'master'.
1020 + Is the 'fixup!' cleanly squashable to the problematic one, or does
1021 + this series require another reroll to get it in a good enough shape?
1022
1023
1024 * nd/rebase-show-current-patch (2018-02-12) 3 commits
@@ -1020,18 +1030,7 @@ of the repositories listed at
1030 to get the diff being applied when "git rebase" (and "git am")
1031 stops with a conflict.
1032
1023 -
1024 -* jh/status-no-ahead-behind (2018-01-24) 4 commits
1025 - - status: support --no-ahead-behind in long format
1026 - - status: update short status to respect --no-ahead-behind
1027 - - status: add --[no-]ahead-behind to status and commit for V2 format.
1028 - - stat_tracking_info: return +1 when branches not equal
1029 -
1030 - "git status" can spend a lot of cycles to compute the relation
1031 - between the current branch and its upstream, which can now be
1032 - disabled with "--no-ahead-behind" option.
1033 -
1034 - At v5; is this ready for 'next'?
1033 + Will merge to 'next'.
1034
1035
1036 * nd/worktree-move (2018-02-12) 7 commits
@@ -1049,23 +1048,6 @@ of the repositories listed at
1048 cf. <20180124095357.19645-1-pclouds@gmail.com>
1049
1050
1052 -* kg/packed-ref-cache-fix (2018-01-24) 6 commits
1053 - (merged to 'next' on 2018-02-08 at 370f06a565)
1054 - + packed_ref_cache: don't use mmap() for small files
1055 - + load_contents(): don't try to mmap an empty file
1056 - + packed_ref_iterator_begin(): make optimization more general
1057 - + find_reference_location(): make function safe for empty snapshots
1058 - + create_snapshot(): use `xmemdupz()` rather than a strbuf
1059 - + struct snapshot: store `start` rather than `header_len`
1060 -
1061 - Avoid mmapping small files while using packed refs (especially ones
1062 - with zero size, which would cause later munmap() to fail).
1063 -
1064 - Will merge to 'master'.
1065 - A change to a binsearch loop to work around picky complers was
1066 - unnecessarily hard to reason about, but it should do.
1067 -
1068 -
1051 * cl/send-email-reply-to (2018-01-17) 2 commits
1052 - send-email: support separate "Reply-To" address
1053 - send-email: rename variables for "In-reply-to" to $foo_in_reply_to
@@ -1076,25 +1058,6 @@ of the repositories listed at
1058 cf. <CAN0heSqxmLoh33i65JPhyQbmPaAcJcwrTCO+ZD4eb+qh8Pf8+w@mail.gmail.com>
1059
1060
1079 -* en/merge-recursive-fixes (2018-01-19) 3 commits
1080 - (merged to 'next' on 2018-02-08 at c254292070)
1081 - + merge-recursive: add explanation for src_entry and dst_entry
1082 - + merge-recursive: fix logic ordering issue
1083 - + Tighten and correct a few testcases for merging and cherry-picking
1084 - (this branch is used by en/rename-directory-detection.)
1085 -
1086 - Will merge to 'master'.
1087 -
1088 -
1089 -* jc/worktree-add-short-help (2018-01-17) 1 commit
1090 - (merged to 'next' on 2018-02-08 at 9f59ca72ab)
1091 - + worktree: say that "add" takes an arbitrary commit in short-help
1092 -
1093 - Error message fix.
1094 -
1095 - Will merge to 'master'.
1096 -
1097 -
1061 * js/rebase-recreate-merge (2018-02-12) 12 commits
1062 - rebase -i: introduce --recreate-merges=[no-]rebase-cousins
1063 - pull: accept --rebase=recreate to recreate the branch topology
@@ -1112,32 +1075,7 @@ of the repositories listed at
1075 "git rebase" learned "--recreate-merges" to transplant the whole
1076 topology of commit graph elsewhere.
1077
1115 -
1116 -* jt/fsck-code-cleanup (2018-01-23) 1 commit
1117 - (merged to 'next' on 2018-02-08 at 199ad41486)
1118 - + fsck: fix leak when traversing trees
1119 -
1120 - Plug recently introduced leaks in fsck.
1121 -
1122 - Will merge to 'master'.
1123 -
1124 -
1125 -* ab/wildmatch-tests (2018-01-30) 10 commits
1126 - (merged to 'next' on 2018-02-08 at f999a3d732)
1127 - + wildmatch test: mark test as EXPENSIVE_ON_WINDOWS
1128 - + test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite
1129 - + wildmatch test: create & test files on disk in addition to in-memory
1130 - + wildmatch test: perform all tests under all wildmatch() modes
1131 - + wildmatch test: use test_must_fail, not ! for test-wildmatch
1132 - + wildmatch test: remove dead fnmatch() test code
1133 - + wildmatch test: use a paranoia pattern from nul_match()
1134 - + wildmatch test: don't try to vertically align our output
1135 - + wildmatch test: use more standard shell style
1136 - + wildmatch test: indent with tabs, not spaces
1137 -
1138 - More tests for wildmatch functions.
1139 -
1140 - Will merge to 'master'.
1078 + Is this ready for 'next'?
1079
1080
1081 * bw/protocol-v2 (2018-02-07) 35 commits
@@ -1180,7 +1118,7 @@ of the repositories listed at
1118 The beginning of the next-gen transfer protocol.
1119
1120
1183 -* ls/checkout-encoding (2018-02-09) 7 commits
1121 +* ls/checkout-encoding (2018-02-15) 7 commits
1122 - convert: add round trip check based on 'core.checkRoundtripEncoding'
1123 - convert: add tracing for 'working-tree-encoding' attribute
1124 - convert: add 'working-tree-encoding' attribute
@@ -1193,6 +1131,11 @@ of the repositories listed at
1131 contents to the specified encoding when checking out to the working
1132 tree (and the other way around when checking in).
1133
1134 + Expecting a reroll.
1135 + The code and general design looked ready. The documentation needs
1136 + to be refined to unconfuse general audience.
1137 + cf. <xmqq1shk7o2y.fsf@gitster-ct.c.googlers.com>
1138 +
1139
1140 * sb/blame-color (2018-02-13) 3 commits
1141 - builtin/blame: highlight recently changed lines
@@ -1205,12 +1148,6 @@ of the repositories listed at
1148 error messages are funny, can segfault, ...
1149
1150
1208 -* sg/travis-build-during-script-phase (2018-01-08) 1 commit
1209 - - travis-ci: build Git during the 'script' phase
1210 -
1211 - So... what do we want to do with this thing?
1212 -
1213 -
1151 * nd/fix-untracked-cache-invalidation (2018-02-07) 5 commits
1152 (merged to 'next' on 2018-02-08 at 23bd5a5d2d)
1153 + dir.c: ignore paths containing .git when invalidating untracked cache
@@ -1222,33 +1159,14 @@ of the repositories listed at
1159
1160 Some bugs around "untracked cache" feature have been fixed.
1161
1225 - Seems to uncover bad untracked cache information a bit too loudly.
1226 - cf. <87d11omi2o.fsf@evledraar.gmail.com>
1227 -
1228 -
1229 -* np/send-email-header-parsing (2017-12-15) 1 commit
1230 - - send-email: extract email-parsing code into a subroutine
1231 -
1232 - Code refactoring.
1233 -
1234 - Undecided but inclined to drop. A "refactor" without the code that
1235 - benefit from the refactoring is hard to tell from code churn whose
1236 - only effect is potential to introduce bugs.
1237 -
1238 -
1239 -* ab/sha1dc-build (2017-12-08) 3 commits
1240 - (merged to 'next' on 2018-02-08 at ba9ff2b836)
1241 - + sha1dc_git.h: re-arrange an ifdef chain for a subsequent change
1242 - + Makefile: under "make dist", include the sha1collisiondetection submodule
1243 - + Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto
1244 -
1245 - Push the submodule version of collision-detecting SHA-1 hash
1246 - implementation a bit harder on builders.
1247 -
1162 Will merge to 'master'.
1163 + Seems to uncover bad untracked cache information a bit too loudly,
1164 + for which there is ab/untracked-cache-invalidation-docs topic.
1165 + cf. <87d11omi2o.fsf@evledraar.gmail.com>
1166 + They have to graduate together.
1167
1168
1251 -* en/rename-directory-detection (2018-01-31) 31 commits
1169 +* en/rename-directory-detection (2018-02-14) 29 commits
1170 - merge-recursive: ensure we write updates for directory-renamed file
1171 - merge-recursive: avoid spurious rename/rename conflict from dir renames
1172 - directory rename detection: new testcases showcasing a pair of bugs
@@ -1259,11 +1177,9 @@ of the repositories listed at
1177 - merge-recursive: when comparing files, don't include trees
1178 - merge-recursive: check for file level conflicts then get new name
1179 - merge-recursive: add computation of collisions due to dir rename & merging
1262 - - merge-recursive: add a new hashmap for storing file collisions
1180 - merge-recursive: check for directory level conflicts
1181 - merge-recursive: add get_directory_renames()
1182 - merge-recursive: make a helper function for cleanup for handle_renames
1266 - - merge-recursive: add a new hashmap for storing directory renames
1183 - merge-recursive: split out code for determining diff_filepairs
1184 - merge-recursive: make !o->detect_rename codepath more obvious
1185 - merge-recursive: fix leaks of allocated renames and diff_filepairs
@@ -1280,10 +1196,13 @@ of the repositories listed at
1196 - directory rename detection: testcases to avoid taking detection too far
1197 - directory rename detection: directory splitting testcases
1198 - directory rename detection: basic testcases
1283 - (this branch uses en/merge-recursive-fixes.)
1199
1200 Rename detection logic in "diff" family that is used in "merge" has
1201 learned to guess when all of x/a, x/b and x/c have moved to z/a,
1202 z/b and z/c, it is likely that x/d added in the meantime would also
1203 want to move to z/d by taking the hint that the entire directory
1289 - 'x' moved to 'z'.
1204 + 'x' moved to 'z'. A bug causing dirty files involved in a rename
1205 + to be overwritten during merge has also been fixed as part of this
1206 + work.
1207 +
1208 + Will merge to 'next'.