What's cooking (2017/09 #04)

Junio C Hamano committed Sep 25, 2017 at 16:20 UTC 78e4e40cfad95d4f18011a6bafca9857a7b60a1f
1 file changed +754 -434
whats-cooking.txt
+754 -434
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Sep 2017, #03; Fri, 15)
4 -X-master-at: 6867272d5b5615bd74ec97bf35b4c4a8d9fe3a51
5 -X-next-at: 8fa685d3b7c93b129c2017f1ba5db82ebb76a715
3 +Subject: What's cooking in git.git (Sep 2017, #04; Mon, 25)
4 +X-master-at: 28996cec80690d2322359d3650a57e8de6e01eb6
5 +X-next-at: 2c7b836f3ab9b78a2baeee97e329e4c1a1e4c005
6
7 -What's cooking in git.git (Sep 2017, #03; Fri, 15)
7 +What's cooking in git.git (Sep 2017, #04; Mon, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,10 +12,9 @@ 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 -We are at week #6 of this cycle. It seems that people had a
16 -productive week while I was away, which I am reasonably happy about
17 -;-) Quite a many topics that have been in 'master' are now also
18 -merged to 'maint', so perhaps I should tag 2.14.2 soonish.
15 +We are at week #8 of this cycle. Quite a many topics that have been
16 +in 'master' are now also merged to 'maint', so perhaps I should tag
17 +2.14.2 soonish.
18
19 You can find the changes described here in the integration branches
20 of the repositories listed at
@@ -23,243 +22,70 @@ of the repositories listed at
22 http://git-blame.blogspot.com/p/git-public-repositories.html
23
24 --------------------------------------------------
26 -[New Topics]
27 -
28 -* cc/subprocess-handshake-missing-capabilities (2017-09-11) 1 commit
29 - - subprocess: loudly die when subprocess asks for an unsupported capability
30 -
31 - Finishing touches to a topic already in 'master'.
32 -
33 - Will merge to 'next'.
34 -
35 -
36 -* bw/protocol-v1 (2017-09-14) 8 commits
37 - - i5700: add interop test for protocol transition
38 - - http: tell server that the client understands v1
39 - - connect: tell server that the client understands v1
40 - - connect: teach client to recognize v1 server response
41 - - upload-pack, receive-pack: introduce protocol version 1
42 - - daemon: recognize hidden request arguments
43 - - protocol: introduce protocol extention mechanisms
44 - - pkt-line: add packet_write function
45 -
46 - A new mechanism to upgrade the wire protocol in place is proposed
47 - and demonstrated that it works with the older versions of Git
48 - without harming them.
49 -
50 -
51 -* ez/doc-duplicated-words-fix (2017-09-14) 1 commit
52 - - doc: fix minor typos (extra/duplicated words)
53 -
54 - Typofix.
55 -
56 - Will merge to 'next'.
57 -
58 -
59 -* jk/write-in-full-fix (2017-09-14) 8 commits
60 - - read_pack_header: handle signed/unsigned comparison in read result
61 - - config: flip return value of store_write_*()
62 - - notes-merge: use ssize_t for write_in_full() return value
63 - - pkt-line: check write_in_full() errors against "< 0"
64 - - convert less-trivial versions of "write_in_full() != len"
65 - - avoid "write_in_full(fd, buf, len) != len" pattern
66 - - get-tar-commit-id: check write_in_full() return against 0
67 - - config: avoid "write_in_full(fd, buf, len) < len" pattern
68 -
69 - Many codepaths did not diagnose write failures correctly when disks
70 - go full, due to their misuse of write_in_full() helper function,
71 - which have been corrected.
72 -
73 - Will merge to 'next'.
74 -
75 -
76 -* jn/per-repo-object-store-fixes (2017-09-14) 3 commits
77 - - replace-objects: evaluate replacement refs without using the object store
78 - - push, fetch: error out for submodule entries not pointing to commits
79 - - pack: make packed_git_mru global a value instead of a pointer
80 -
81 - Step #0 of a planned & larger series.
82 -
83 - Will merge to 'next'.
84 -
85 -
86 -* ks/commit-do-not-touch-cut-line (2017-09-15) 1 commit
87 - - commit-template: change a message to be more intuitive
88 -
89 - The explanation of the cut-line in the commit log editor has been
90 - slightly tweaked.
91 -
92 - Will merge to 'next'.
93 -
94 -
95 -* ks/help-alias-label (2017-09-14) 1 commit
96 - - help: change a message to be more precise
97 -
98 - "git help co" now says "co is aliased to ...", not "git co is".
99 -
100 - Will merge to 'next'.
101 -
102 -
103 -* mh/mmap-packed-refs (2017-09-14) 20 commits
104 - - packed-backend.c: rename a bunch of things and update comments
105 - - mmapped_ref_iterator: inline into `packed_ref_iterator`
106 - - ref_cache: remove support for storing peeled values
107 - - packed_ref_store: get rid of the `ref_cache` entirely
108 - - ref_store: implement `refs_peel_ref()` generically
109 - - packed_read_raw_ref(): read the reference from the mmapped buffer
110 - - packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
111 - - read_packed_refs(): ensure that references are ordered when read
112 - - packed_ref_cache: keep the `packed-refs` file open and mmapped
113 - - mmapped_ref_iterator_advance(): no peeled value for broken refs
114 - - mmapped_ref_iterator: add iterator over a packed-refs file
115 - - packed_ref_cache: remember the file-wide peeling state
116 - - read_packed_refs(): read references with minimal copying
117 - - read_packed_refs(): make parsing of the header line more robust
118 - - read_packed_refs(): only check for a header at the top of the file
119 - - read_packed_refs(): use mmap to read the `packed-refs` file
120 - - die_unterminated_line(), die_invalid_line(): new functions
121 - - packed_ref_cache: add a backlink to the associated `packed_ref_store`
122 - - prefix_ref_iterator: break when we leave the prefix
123 - - ref_iterator: keep track of whether the iterator output is ordered
124 - (this branch uses mh/packed-ref-transactions.)
125 -
126 - Operations that do not touch (majority of) packed refs have been
127 - optimized by making accesses to packed-refs file lazy; we no longer
128 - pre-parse everything, and an access to a single ref in the
129 - packed-refs does not touch majority of irrelevant refs, either.
130 -
131 - Expecting a rework to also work on Windows.
132 -
133 -
134 -* nm/imap-send-with-curl (2017-09-15) 4 commits
135 - - imap-send: use curl by default when possible
136 - - imap_send: setup_curl: retreive credentials if not set in config file
137 - - imap-send: add wrapper to get server credentials if needed
138 - - imap-send: return with error if curl failed
139 -
140 - "git imap-send" has our own implementation of the protocol and also
141 - can use more recent libCurl with the imap protocol support. Update
142 - the latter so that it can use the credential subsystem, and then
143 - make it the default option to use, so that we can eventually
144 - deprecate and remove the former.
145 -
146 - Will merge to 'next'.
25 +[Graduated to "master"]
26
27 +* sb/merge-commit-msg-hook (2017-09-22) 1 commit
28 + (merged to 'next' on 2017-09-25 at 096e0502a8)
29 + + Documentation/githooks: mention merge in commit-msg hook
30
149 -* rj/test-ulimit-on-windows (2017-09-15) 1 commit
150 - - test-lib: don't use ulimit in test prerequisites on cygwin
151 - (this branch uses mg/name-rev-tests-with-short-stack.)
152 -
153 - On Cygwin, "ulimit -s" does not report failure but it does not work
154 - at all, which causes an unexpected success of some tests that
155 - expect failures under a limited stack situation. This has been
156 - fixed.
157 -
158 - Will merge to 'next'.
159 -
160 -
161 -* rs/archive-excluded-directory (2017-09-14) 1 commit
162 - - archive: don't add empty directories to archives
163 -
164 - "git archive", especially when used with pathspec, stored an empty
165 - directory in its output, even though Git itself never does so.
166 - This has been fixed.
167 -
168 - Will merge to 'next'.
169 -
170 -
171 -* tg/refs-allowed-flags (2017-09-14) 1 commit
172 - - refs: strip out not allowed flags from ref_transaction_update
173 -
174 - API error-proofing which happens to also squelch warnings from GCC.
175 -
176 - Will merge to 'next'.
177 -
178 ---------------------------------------------------
179 -[Stalled]
180 -
181 -* mg/status-in-progress-info (2017-05-10) 2 commits
182 - - status --short --inprogress: spell it as --in-progress
183 - - status: show in-progress info for short status
184 -
185 - "git status" learns an option to report various operations
186 - (e.g. "merging") that the user is in the middle of.
31 + As "git commit" to conclude a conflicted "git merge" honors the
32 + commit-msg hook, "git merge" that records a merge commit that
33 + cleanly auto-merges should, but it didn't.
34
188 - cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
35
36 +* aw/gc-lockfile-fscanf-fix (2017-09-17) 1 commit
37 + (merged to 'next' on 2017-09-24 at 999ccd41aa)
38 + + gc: call fscanf() with %<len>s, not %<len>c, when reading hostname
39
191 -* nd/worktree-move (2017-04-20) 6 commits
192 - - worktree remove: new command
193 - - worktree move: refuse to move worktrees with submodules
194 - - worktree move: accept destination as directory
195 - - worktree move: new command
196 - - worktree.c: add update_worktree_location()
197 - - worktree.c: add validate_worktree()
40 + "git gc" tries to avoid running two instances at the same time by
41 + reading and writing pid/host from and to a lock file; it used to
42 + use an incorrect fscanf() format when reading, which has been
43 + corrected.
44
199 - "git worktree" learned move and remove subcommands.
45
201 - Expecting a reroll.
202 - cf. <20170420101024.7593-1-pclouds@gmail.com>
203 - cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
204 - cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
46 +* bb/doc-eol-dirty (2017-09-07) 1 commit
47 + (merged to 'next' on 2017-09-14 at 2f0cb688c6)
48 + + Documentation: mention that `eol` can change the dirty status of paths
49
50 + Doc update.
51
207 -* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits
208 - - Documentation/clone: document ignored configuration variables
209 - - clone: respect additional configured fetch refspecs during initial fetch
210 - (this branch is used by sg/remote-no-string-refspecs.)
52
212 - "git clone -c var=val" is a way to set configuration variables in
213 - the resulting repository, but it is more useful to also make these
214 - variables take effect while the initial clone is happening,
215 - e.g. these configuration variables could be fetch refspecs.
53 +* bw/git-clang-format (2017-08-14) 2 commits
54 + (merged to 'next' on 2017-09-24 at ae51a4e81c)
55 + + Makefile: add style build rule
56 + + clang-format: outline the git project's coding style
57
217 - Waiting for a response.
218 - cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net>
219 - cf. <xmqqmv8zhdap.fsf@gitster.mtv.corp.google.com>
58 + "make style" runs git-clang-format to help developers by pointing
59 + out coding style issues.
60
61
222 -* js/rebase-i-final (2017-07-27) 10 commits
223 - - rebase -i: rearrange fixup/squash lines using the rebase--helper
224 - - t3415: test fixup with wrapped oneline
225 - - rebase -i: skip unnecessary picks using the rebase--helper
226 - - rebase -i: check for missing commits in the rebase--helper
227 - - t3404: relax rebase.missingCommitsCheck tests
228 - - rebase -i: also expand/collapse the SHA-1s via the rebase--helper
229 - - rebase -i: do not invent onelines when expanding/collapsing SHA-1s
230 - - rebase -i: remove useless indentation
231 - - rebase -i: generate the script via rebase--helper
232 - - t3415: verify that an empty instructionFormat is handled as before
62 +* cc/subprocess-handshake-missing-capabilities (2017-09-11) 1 commit
63 + (merged to 'next' on 2017-09-19 at 7d0c272bc8)
64 + + subprocess: loudly die when subprocess asks for an unsupported capability
65
234 - The final batch to "git rebase -i" updates to move more code from
235 - the shell script to C.
66 + Finishing touches to a topic already in 'master'.
67
237 - Expecting a reroll.
68
69 +* dw/diff-highlight-makefile-fix (2017-09-06) 1 commit
70 + (merged to 'next' on 2017-09-10 at 8dfda480ac)
71 + + diff-highlight: add clean target to Makefile
72
240 -* bp/fsmonitor (2017-06-12) 6 commits
241 - - fsmonitor: add a sample query-fsmonitor hook script for Watchman
242 - - fsmonitor: add documentation for the fsmonitor extension.
243 - - fsmonitor: add test cases for fsmonitor extension
244 - - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
245 - - dir: make lookup_untracked() available outside of dir.c
246 - - bswap: add 64 bit endianness helper get_be64
73 + Build clean-up.
74
248 - We learned to talk to watchman to speed up "git status".
75
250 - Expecting a reroll.
251 - cf. <bade1166-e646-b05a-f65b-adb8da8ba0a7@gmail.com>
76 +* ez/doc-duplicated-words-fix (2017-09-14) 1 commit
77 + (merged to 'next' on 2017-09-19 at 20781bd866)
78 + + doc: fix minor typos (extra/duplicated words)
79
253 ---------------------------------------------------
254 -[Cooking]
80 + Typofix.
81
256 -* bb/doc-eol-dirty (2017-09-07) 1 commit
257 - (merged to 'next' on 2017-09-14 at 2f0cb688c6)
258 - + Documentation: mention that `eol` can change the dirty status of paths
82
260 - Doc update.
83 +* hv/mv-nested-submodules-test (2017-09-17) 1 commit
84 + (merged to 'next' on 2017-09-24 at d36650bbca)
85 + + add test for bug in git-mv for recursive submodules
86
262 - Will merge to 'master'.
87 + A test to demonstrate "git mv" failing to adjust nested submodules
88 + has been added.
89
90
91 * jh/hashmap-disable-counting (2017-09-07) 1 commit
@@ -270,7 +96,12 @@ of the repositories listed at
96 adding a new item needs to expand the hashtable by rehashing; add
97 an API to disable the automatic rehashing to work it around.
98
273 - Will merge to 'master'.
99 +
100 +* jk/config-lockfile-leak-fix (2017-09-06) 1 commit
101 + (merged to 'next' on 2017-09-10 at 7b91d71749)
102 + + config: use a static lock_file struct
103 +
104 + A leakfix.
105
106
107 * jk/incore-lockfile-removal (2017-09-06) 20 commits
@@ -301,10 +132,28 @@ of the repositories listed at
132 tempfile APIs have been updated to reduce the chance of programming
133 errors.
134
304 - Will merge to 'master'.
135
136 +* jk/info-alternates-fix (2017-09-20) 2 commits
137 + (merged to 'next' on 2017-09-24 at d1594d1397)
138 + + read_info_alternates: warn on non-trivial errors
139 + + Merge branch 'jk/info-alternates-fix-2.11' into jk/info-alternates-fix
140 + (this branch uses jk/info-alternates-fix-2.11.)
141 +
142 + A regression fix for 2.11 that made the code to read the list of
143 + alternate object stores overrun the end of the string.
144 +
145 +
146 +* jk/info-alternates-fix-2.11 (2017-09-20) 1 commit
147 + + read_info_alternates: read contents into strbuf
148 + (this branch is used by jk/info-alternates-fix.)
149
307 -* jk/leak-checkers (2017-09-08) 10 commits
150 + A regression fix for 2.11 that made the code to read the list of
151 + alternate object stores overrun the end of the string.
152 +
153 +
154 +* jk/leak-checkers (2017-09-08) 11 commits
155 + (merged to 'next' on 2017-09-20 at 5e9ba01461)
156 + + git-compat-util: make UNLEAK less error-prone
157 (merged to 'next' on 2017-09-14 at 906ed9f590)
158 + add UNLEAK annotation for reducing leak false positives
159 + set_git_dir: handle feeding gitdir to itself
@@ -324,7 +173,20 @@ of the repositories listed at
173 a mechanism for developers to mark that the region of memory
174 pointed by a pointer is not lost/leaking to help these tools.
175
327 - Will merge to 'master'.
176 +
177 +* jk/revision-remove-cmdline-pathspec (2017-09-21) 2 commits
178 + (merged to 'next' on 2017-09-24 at 2adfb89370)
179 + + pathspec doc: parse_pathspec does not maintain references to args
180 + + revision: replace "struct cmdline_pathspec" with argv_array
181 +
182 + Code clean-up that also plugs memory leaks.
183 +
184 +
185 +* jk/shortlog-ident-cleanup (2017-09-09) 1 commit
186 + (merged to 'next' on 2017-09-14 at 09695b6c39)
187 + + shortlog: skip format/parse roundtrip for internal traversal
188 +
189 + Code clean-up.
190
191
192 * jk/system-path-cleanup (2017-09-07) 2 commits
@@ -334,50 +196,175 @@ of the repositories listed at
196
197 Code clean-up.
198
337 - Will merge to 'master'.
199 +
200 +* jk/write-in-full-fix (2017-09-14) 8 commits
201 + (merged to 'next' on 2017-09-19 at 7b26691c07)
202 + + read_pack_header: handle signed/unsigned comparison in read result
203 + + config: flip return value of store_write_*()
204 + + notes-merge: use ssize_t for write_in_full() return value
205 + + pkt-line: check write_in_full() errors against "< 0"
206 + + convert less-trivial versions of "write_in_full() != len"
207 + + avoid "write_in_full(fd, buf, len) != len" pattern
208 + + get-tar-commit-id: check write_in_full() return against 0
209 + + config: avoid "write_in_full(fd, buf, len) < len" pattern
210 +
211 + Many codepaths did not diagnose write failures correctly when disks
212 + go full, due to their misuse of write_in_full() helper function,
213 + which have been corrected.
214 +
215 +
216 +* jn/per-repo-object-store-fixes (2017-09-14) 3 commits
217 + (merged to 'next' on 2017-09-19 at 95aef30d5b)
218 + + replace-objects: evaluate replacement refs without using the object store
219 + + push, fetch: error out for submodule entries not pointing to commits
220 + + pack: make packed_git_mru global a value instead of a pointer
221 +
222 + Step #0 of a planned & larger series to make the in-core object
223 + store per in-core repository object.
224
225
226 * jt/packmigrate (2017-09-06) 1 commit
227 (merged to 'next' on 2017-09-14 at 169e9573a0)
228 + Remove inadvertently added outgoing/packfile.h
229
344 - An oops fix.
345 -
346 - Will merge to 'master'.
230 + Remove unneeded file added by a topic already in 'master'.
231
232
233 * kd/doc-for-each-ref (2017-09-12) 2 commits
350 - - doc/for-each-ref: explicitly specify option names
351 - - doc/for-each-ref: consistently use '=' to between argument names and values
234 + (merged to 'next' on 2017-09-19 at 993a2ae375)
235 + + doc/for-each-ref: explicitly specify option names
236 + + doc/for-each-ref: consistently use '=' to between argument names and values
237
238 Doc update.
239
355 - Will merge to 'next'.
240
241 +* ks/commit-do-not-touch-cut-line (2017-09-15) 1 commit
242 + (merged to 'next' on 2017-09-19 at 83891def6b)
243 + + commit-template: change a message to be more intuitive
244
358 -* kw/write-index-reduce-alloc (2017-09-08) 2 commits
359 - - read-cache: fix index corruption with index v4
360 - - Add t/helper/test-write-cache to .gitignore
245 + The explanation of the cut-line in the commit log editor has been
246 + slightly tweaked.
247
362 - Will merge to 'next'.
248
249 +* ks/help-alias-label (2017-09-14) 1 commit
250 + (merged to 'next' on 2017-09-19 at 7737c853e0)
251 + + help: change a message to be more precise
252
365 -* ma/remove-config-maybe-bool (2017-09-07) 1 commit
366 - (merged to 'next' on 2017-09-14 at d0c7fb97a9)
367 - + config: remove git_config_maybe_bool
253 + "git help co" now says "co is aliased to ...", not "git co is".
254
369 - Finishing touches to a recent topic.
255
371 - Will merge to 'master'.
256 +* ks/test-readme-phrasofix (2017-09-19) 1 commit
257 + (merged to 'next' on 2017-09-24 at 3a721d05f5)
258 + + t/README: fix typo and grammatically improve a sentence
259
260 + Doc updates.
261
374 -* mh/packed-ref-store-prep (2017-09-07) 1 commit
375 - (merged to 'next' on 2017-09-14 at e3ef821847)
376 - + rev-parse: don't trim bisect refnames
262
378 - Finishing touches to a recent topic.
263 +* kw/merge-recursive-cleanup (2017-09-08) 3 commits
264 + (merged to 'next' on 2017-09-14 at 9f20025e6b)
265 + + merge-recursive: change current file dir string_lists to hashmap
266 + + merge-recursive: remove return value from get_files_dirs
267 + + merge-recursive: fix memory leak
268
380 - Will merge to 'master'.
269 + A leakfix and code clean-up.
270 +
271 +
272 +* kw/write-index-reduce-alloc (2017-09-08) 2 commits
273 + (merged to 'next' on 2017-09-19 at d0e32c567a)
274 + + read-cache: fix index corruption with index v4
275 + + Add t/helper/test-write-cache to .gitignore
276 +
277 + A hotfix to a topic already in 'master'.
278 +
279 +
280 +* ls/travis-scriptify (2017-09-22) 4 commits
281 + (merged to 'next' on 2017-09-24 at 6e808f0472)
282 + + travis-ci: fix "skip_branch_tip_with_tag()" string comparison
283 + (merged to 'next' on 2017-09-14 at 8fa685d3b7)
284 + + travis: dedent a few scripts that are indented overly deeply
285 + + travis-ci: skip a branch build if equal tag is present
286 + + travis-ci: move Travis CI code into dedicated scripts
287 +
288 + The scripts to drive TravisCI has been reorganized and then an
289 + optimization to avoid spending cycles on a branch whose tip is
290 + tagged has been implemented.
291 +
292 +
293 +* ma/pkt-line-leakfix (2017-09-06) 1 commit
294 + (merged to 'next' on 2017-09-10 at f0d9994319)
295 + + pkt-line: re-'static'-ify buffer in packet_write_fmt_1()
296 +
297 + A leakfix.
298 +
299 +
300 +* ma/remove-config-maybe-bool (2017-09-07) 1 commit
301 + (merged to 'next' on 2017-09-14 at d0c7fb97a9)
302 + + config: remove git_config_maybe_bool
303 +
304 + Finishing touches to a recent topic.
305 +
306 +
307 +* ma/split-symref-update-fix (2017-09-10) 4 commits
308 + (merged to 'next' on 2017-09-10 at 96c403fca7)
309 + + refs/files-backend: add `refname`, not "HEAD", to list
310 + + refs/files-backend: correct return value in lock_ref_for_update
311 + + refs/files-backend: fix memory leak in lock_ref_for_update
312 + + refs/files-backend: add longer-scoped copy of string to list
313 +
314 + A leakfix.
315 +
316 +
317 +* mg/name-rev-tests-with-short-stack (2017-09-08) 4 commits
318 + (merged to 'next' on 2017-09-14 at 1e4a0fe206)
319 + + t6120: test describe and name-rev with deep repos
320 + + t6120: clean up state after breaking repo
321 + + t6120: test name-rev --all and --stdin
322 + + t7004: move limited stack prereq to test-lib
323 + (this branch is used by rj/test-ulimit-on-windows.)
324 +
325 + A handful of tests to demonstrates a recursive implementation of
326 + "name-rev" hurts.
327 +
328 +
329 +* mg/timestamp-t-fix (2017-09-06) 1 commit
330 + (merged to 'next' on 2017-09-10 at a5df4d5b3e)
331 + + name-rev: change ULONG_MAX to TIME_MAX
332 +
333 + A mismerge fix.
334 +
335 +
336 +* mh/for-each-string-list-item-empty-fix (2017-09-20) 1 commit
337 + (merged to 'next' on 2017-09-24 at 7ca1782f86)
338 + + for_each_string_list_item: avoid undefined behavior for empty list
339 +
340 + Code cmp.std.c nitpick.
341 +
342 +
343 +* mh/notes-cleanup (2017-09-09) 13 commits
344 + (merged to 'next' on 2017-09-10 at cb1d725504)
345 + + load_subtree(): check that `prefix_len` is in the expected range
346 + (merged to 'next' on 2017-08-26 at 2d6df46966)
347 + + load_subtree(): declare some variables to be `size_t`
348 + + hex_to_bytes(): simpler replacement for `get_oid_hex_segment()`
349 + + get_oid_hex_segment(): don't pad the rest of `oid`
350 + + load_subtree(): combine some common code
351 + + get_oid_hex_segment(): return 0 on success
352 + + load_subtree(): only consider blobs to be potential notes
353 + + load_subtree(): check earlier whether an internal node is a tree entry
354 + + load_subtree(): separate logic for internal vs. terminal entries
355 + + load_subtree(): fix incorrect comment
356 + + load_subtree(): reduce the scope of some local variables
357 + + load_subtree(): remove unnecessary conditional
358 + + notes: make GET_NIBBLE macro more robust
359 +
360 + Code clean-up.
361 +
362 +
363 +* mh/packed-ref-store-prep (2017-09-07) 1 commit
364 + (merged to 'next' on 2017-09-14 at e3ef821847)
365 + + rev-parse: don't trim bisect refnames
366 +
367 + Fix regression to "gitk --bisect" by a recent update.
368
369
370 * mh/packed-ref-transactions (2017-09-09) 11 commits
@@ -398,7 +385,45 @@ of the repositories listed at
385 Implement transactional update to the packed-ref representation of
386 references.
387
401 - Will merge to 'master'.
388 +
389 +* nd/prune-in-worktree (2017-08-24) 16 commits
390 + (merged to 'next' on 2017-09-14 at 3efe283118)
391 + + refs.c: reindent get_submodule_ref_store()
392 + + refs.c: remove fallback-to-main-store code get_submodule_ref_store()
393 + + rev-list: expose and document --single-worktree
394 + + revision.c: --reflog add HEAD reflog from all worktrees
395 + + files-backend: make reflog iterator go through per-worktree reflog
396 + + revision.c: --all adds HEAD from all worktrees
397 + + refs: remove dead for_each_*_submodule()
398 + + refs.c: move for_each_remote_ref_submodule() to submodule.c
399 + + revision.c: use refs_for_each*() instead of for_each_*_submodule()
400 + + refs: add refs_head_ref()
401 + + refs: move submodule slash stripping code to get_submodule_ref_store
402 + + refs.c: refactor get_submodule_ref_store(), share common free block
403 + + revision.c: --indexed-objects add objects from all worktrees
404 + + revision.c: refactor add_index_objects_to_pending()
405 + + refs.c: use is_dir_sep() in resolve_gitlink_ref()
406 + + revision.h: new flag in struct rev_info wrt. worktree-related refs
407 +
408 + "git gc" and friends when multiple worktrees are used off of a
409 + single repository did not consider the index and per-worktree refs
410 + of other worktrees as the root for reachability traversal, making
411 + objects that are in use only in other worktrees to be subject to
412 + garbage collection.
413 +
414 +
415 +* nm/imap-send-with-curl (2017-09-15) 4 commits
416 + (merged to 'next' on 2017-09-19 at d07debeb6c)
417 + + imap-send: use curl by default when possible
418 + + imap_send: setup_curl: retreive credentials if not set in config file
419 + + imap-send: add wrapper to get server credentials if needed
420 + + imap-send: return with error if curl failed
421 +
422 + "git imap-send" has our own implementation of the protocol and also
423 + can use more recent libCurl with the imap protocol support. Update
424 + the latter so that it can use the credential subsystem, and then
425 + make it the default option to use, so that we can eventually
426 + deprecate and remove the former.
427
428
429 * nm/pull-submodule-recurse-config (2017-09-07) 2 commits
@@ -410,7 +435,46 @@ of the repositories listed at
435 "--recurse-submodules" option was given from the command line.
436 This has been corrected.
437
413 - Will merge to 'master'.
438 +
439 +* ow/rev-parse-is-shallow-repo (2017-09-19) 1 commit
440 + (merged to 'next' on 2017-09-24 at 8f1b915908)
441 + + rev-parse: rev-parse: add --is-shallow-repository
442 +
443 + "git rev-parse" learned "--is-shallow-repository", that is to be
444 + used in a way similar to existing "--is-bare-repository" and
445 + friends.
446 +
447 +
448 +* rj/test-ulimit-on-windows (2017-09-19) 3 commits
449 + (merged to 'next' on 2017-09-24 at b01a595c05)
450 + + t9010-*.sh: skip all tests if the PIPE prereq is missing
451 + + test-lib: use more compact expression in PIPE prerequisite
452 + + test-lib: don't use ulimit in test prerequisites on cygwin
453 + (this branch uses mg/name-rev-tests-with-short-stack.)
454 +
455 + On Cygwin, "ulimit -s" does not report failure but it does not work
456 + at all, which causes an unexpected success of some tests that
457 + expect failures under a limited stack situation. This has been
458 + fixed.
459 +
460 +
461 +* rk/commit-tree-make-F-verbatim (2017-09-10) 1 commit
462 + (merged to 'next' on 2017-09-14 at 3d40c900f3)
463 + + commit-tree: do not complete line in -F input
464 +
465 + Unlike "git commit-tree < file", "git commit-tree -F file" did not
466 + pass the contents of the file verbatim and instead completed an
467 + incomplete line at the end, if exists. The latter has been updated
468 + to match the behaviour of the former.
469 +
470 +
471 +* rs/archive-excluded-directory (2017-09-14) 1 commit
472 + (merged to 'next' on 2017-09-19 at c695db3039)
473 + + archive: don't add empty directories to archives
474 +
475 + "git archive", especially when used with pathspec, stored an empty
476 + directory in its output, even though Git itself never does so.
477 + This has been fixed.
478
479
480 * rs/strbuf-leakfix (2017-09-10) 34 commits
@@ -452,128 +516,490 @@ of the repositories listed at
516
517 Many leaks of strbuf have been fixed.
518
519 +
520 +* tb/test-lint-echo-e (2017-09-21) 1 commit
521 + (merged to 'next' on 2017-09-24 at dfa5caa4ce)
522 + + test-lint: echo -e (or -E) is not portable
523 +
524 + The test linter has been taught that we do not like "echo -e".
525 +
526 +
527 +* tg/refs-allowed-flags (2017-09-14) 1 commit
528 + (merged to 'next' on 2017-09-19 at 407066a925)
529 + + refs: strip out not allowed flags from ref_transaction_update
530 +
531 + API error-proofing which happens to also squelch warnings from GCC.
532 +
533 +
534 +* ti/external-sha1dc (2017-08-16) 2 commits
535 + (merged to 'next' on 2017-08-26 at a0fb4e91a5)
536 + + sha1dc: allow building with the external sha1dc library
537 + + sha1dc: build git plumbing code more explicitly
538 +
539 + Platforms that ship with a separate sha1 with collision detection
540 + library can link to it instead of using the copy we ship as part of
541 + our source tree.
542 +
543 +--------------------------------------------------
544 +[New Topics]
545 +
546 +* sb/merge-commit-msg-hook (2017-09-22) 1 commit
547 + (merged to 'next' on 2017-09-25 at 096e0502a8)
548 + + Documentation/githooks: mention merge in commit-msg hook
549 +
550 + Add documentation for a topic that has recently graduated to the
551 + 'master' branch.
552 +
553 Will merge to 'master'.
554
555
458 -* jk/shortlog-ident-cleanup (2017-09-09) 1 commit
459 - (merged to 'next' on 2017-09-14 at 09695b6c39)
460 - + shortlog: skip format/parse roundtrip for internal traversal
556 +* jk/describe-omit-some-refs (2017-09-17) 1 commit
557 + (merged to 'next' on 2017-09-24 at c373c71279)
558 + + describe: fix matching to actually match all patterns
559 + (this branch is used by mk/describe-match-with-all.)
560 +
561 + "git describe --match" learned to take multiple patterns in v2.13
562 + series, but the feature ignored the patterns after the first one
563 + and did not work at all. This has been fixed.
564 +
565 + Will merge to 'master'.
566 +
567 +
568 +* jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit
569 + - git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.
570 +
571 + "git svn dcommit" did not take into account the fact that a
572 + svn+ssh:// URL with a username@ (typically used for pushing) refers
573 + to the same SVN repository without the username@ and failed when
574 + svn.pushmergeinfo option is set.
575 +
576 + Needs a test, perhaps as a follow-up patch.
577 +
578 +
579 +* mg/merge-base-fork-point (2017-09-17) 3 commits
580 + - merge-base: find fork-point outside partial reflog
581 + - merge-base: return fork-point outside reflog
582 + - t6010: test actual test output
583 +
584 + "merge-base --fork-point $branch $commit" is used to guess on which
585 + commit among the commits that were once at the tip of the $branch the
586 + $commit was built on top of, and it learns these historical tips from
587 + the reflog of the $branch. When the true fork-point is lost due to
588 + pruning of old reflog entries, the command does not give any output,
589 + because it has no way to guess correctly and does not want to mislead
590 + the user with a wrong guess.
591 +
592 + The command has been updated to give the best but not known to be
593 + correct guess, based on a hope that a merge-base between $commit and a
594 + virtual merge across all the reflog entries that still are available
595 + for $branch may still be a closer to the true fork-point than the
596 + merge-base between $commit and the current tip of the $branch.
597 +
598 + This may have to be offered by an additional option, to allow the
599 + users that are prepared to see a potentially incorrect guess to opt
600 + into the feature, without affecting the current callers that may not
601 + be prepared to accept a guess that is not known to be correct.
602 +
603 +
604 +* bc/rev-parse-parseopt-fix (2017-09-25) 7 commits
605 + - parse-options: only insert newline in help text if needed
606 + - parse-options: write blank line to correct output stream
607 + - t0040,t1502: Demonstrate parse_options bugs
608 + (merged to 'next' on 2017-09-24 at e479bce0ff)
609 + + git-rebase: don't ignore unexpected command line arguments
610 + + rev-parse parseopt: interpret any whitespace as start of help text
611 + + rev-parse parseopt: do not search help text for flag chars
612 + + t1502: demonstrate rev-parse --parseopt option mis-parsing
613 +
614 + Recent versions of "git rev-parse --parseopt" did not parse the
615 + option specification that does not have the optional flags (*=?!)
616 + correctly, which has been corrected.
617 +
618 + Will merge to 'next'.
619 +
620 +
621 +* ds/find-unique-abbrev-optim (2017-09-19) 4 commits
622 + - SQUASH???
623 + - sha1_name: parse less while finding common prefix
624 + - sha1_name: unroll len loop in find_unique_abbrev_r()
625 + - sha1_name: create perf test for find_unique_abbrev()
626 +
627 +
628 +* ic/fix-filter-branch-to-handle-tag-without-tagger (2017-09-22) 4 commits
629 + (merged to 'next' on 2017-09-25 at c7550033df)
630 + + filter-branch: use hash-object instead of mktag
631 + + filter-branch: stash away ref map in a branch
632 + + filter-branch: preserve and restore $GIT_AUTHOR_* and $GIT_COMMITTER_*
633 + + filter-branch: reset $GIT_* before cleaning up
634 +
635 + "git filter-branch" cannot reproduce a history with a tag without
636 + the tagger field, which only ancient versions of Git allowed to be
637 + created. This has been corrected.
638 +
639 + Will merge to 'master'.
640 +
641 +
642 +* jm/status-ignored-directory-optim (2017-09-19) 1 commit
643 + (merged to 'next' on 2017-09-24 at ca50f5ed41)
644 + + Improve performance of git status --ignored
645 +
646 + "git status --ignored", when noticing that a directory without any
647 + tracked path is ignored, still enumerated all the ignored paths in
648 + the directory, which is unnecessary. The codepath has been
649 + optimized to avoid this overhead.
650 +
651 + Will merge to 'master'.
652 +
653 +
654 +* js/win32-lazyload-dll (2017-09-20) 1 commit
655 + - Win32: simplify loading of DLL functions
656 +
657 + Add a helper in anticipation for its need in a future topic RSN.
658 +
659 + Expecting a reroll.
660 + cf. <xmqqwp4sk21s.fsf@gitster.mtv.corp.google.com>
661 +
662 +
663 +* ks/doc-use-camelcase-for-config-name (2017-09-25) 1 commit
664 + - doc: camelCase the config variables to improve readability
665 +
666 + Doc update.
667 +
668 + Will merge to 'next'.
669 +
670 +
671 +* mk/describe-match-with-all (2017-09-20) 2 commits
672 + (merged to 'next' on 2017-09-24 at f96d58dd83)
673 + + describe: teach --match to handle branches and remotes
674 + + Merge branch 'jk/describe-omit-some-refs' into mk/describe-match-with-all
675 + (this branch uses jk/describe-omit-some-refs.)
676 +
677 + "git describe --match <pattern>" has been taught to play well with
678 + the "--all" option.
679 +
680 + Will merge to 'master'.
681 +
682 +
683 +* jt/fast-export-copy-modify-fix (2017-09-21) 1 commit
684 + (merged to 'next' on 2017-09-24 at c02bfe1902)
685 + + fast-export: do not copy from modified file
686 +
687 + "git fast-export" with -M/-C option issued "copy" instruction on a
688 + path that is simultaneously modified, which was incorrect.
689 +
690 + Will merge to 'master'.
691 +
692 +
693 +* ma/leakplugs (2017-09-24) 6 commits
694 + (merged to 'next' on 2017-09-25 at 69d381a96a)
695 + + pack-bitmap[-write]: use `object_array_clear()`, don't leak
696 + + object_array: add and use `object_array_pop()`
697 + + object_array: use `object_array_clear()`, not `free()`
698 + + leak_pending: use `object_array_clear()`, not `free()`
699 + + commit: fix memory leak in `reduce_heads()`
700 + + builtin/commit: fix memory leak in `prepare_index()`
701 +
702 + Memory leaks in various codepaths have been plugged.
703 +
704 + Will merge to 'master'.
705 +
706 +
707 +* hn/typofix (2017-09-22) 1 commit
708 + (merged to 'next' on 2017-09-25 at 489ad60f5b)
709 + + submodule.h: typofix
710 +
711 + Will merge to 'master'.
712 +
713 +
714 +* jk/diff-blob (2017-09-22) 1 commit
715 + (merged to 'next' on 2017-09-25 at 38286c8ff5)
716 + + cat-file: handle NULL object_context.path
717 +
718 + "git cat-file --textconv" started segfaulting recently, which
719 + has been corrected.
720 +
721 + Will merge to 'master'.
722 +
723 +
724 +* jk/fallthrough (2017-09-22) 3 commits
725 + (merged to 'next' on 2017-09-25 at ad96c37620)
726 + + consistently use "fallthrough" comments in switches
727 + + curl_trace(): eliminate switch fallthrough
728 + + test-line-buffer: simplify command parsing
729 +
730 + Many codepaths have been updated to squelch -Wimplicit-fallthrough
731 + warnings from Gcc 7 (which is a good code hygiene).
732 +
733 + Will merge to 'master'.
734 +
735 +
736 +* rj/no-sign-compare (2017-09-22) 4 commits
737 + (merged to 'next' on 2017-09-25 at 71ee264ce6)
738 + + ALLOC_GROW: avoid -Wsign-compare warnings
739 + + cache.h: hex2chr() - avoid -Wsign-compare warnings
740 + + commit-slab.h: avoid -Wsign-compare warnings
741 + + git-compat-util.h: xsize_t() - avoid -Wsign-compare warnings
742 +
743 + Many codepaths have been updated to squelch -Wsign-compare
744 + warnings.
745 +
746 + Will merge to 'master'.
747 +
748 +
749 +* cc/perf-run-config (2017-09-24) 9 commits
750 + - perf: store subsection results in "test-results/$GIT_PERF_SUBSECTION/"
751 + - perf/run: show name of rev being built
752 + - perf/run: add run_subsection()
753 + - perf/run: update get_var_from_env_or_config() for subsections
754 + - perf/run: add get_subsections()
755 + - perf/run: add calls to get_var_from_env_or_config()
756 + - perf/run: add GIT_PERF_DIRS_OR_REVS
757 + - perf/run: add get_var_from_env_or_config()
758 + - perf/run: add '--config' option to the 'run' script
759 +
760 + Needs review.
761 +
762 +
763 +* ik/userdiff-html-h-element-fix (2017-09-24) 1 commit
764 + (merged to 'next' on 2017-09-25 at e3cbe89672)
765 + + userdiff: fix HTML hunk header regexp
766 +
767 + The built-in pattern to detect the "function header" for HTML did
768 + not match <H1>..<H6> elements without any attributes, which has
769 + been fixed.
770 +
771 + Will merge to 'master'.
772 +
773 +
774 +* jk/doc-read-tree-table-asciidoctor-fix (2017-09-24) 1 commit
775 + (merged to 'next' on 2017-09-25 at 070163b964)
776 + + doc: put literal block delimiter around table
777 +
778 + A docfix.
779 +
780 + Will merge to 'master'.
781 +
782 +
783 +* mg/merge-pre-merge-hook (2017-09-24) 4 commits
784 + - t7503: add tests for pre-merge-hook
785 + - merge: --no-verify to bypass pre-merge hook
786 + - merge: do no-verify like commit
787 + - git-merge: honor pre-merge hook
788 +
789 + "git merge" learned a 'pre-merge' hook, that would be triggered
790 + before the merge commit is created by a clean auto-merge.
791 +
792 + Waiting for review to conclude.
793 +
794 +
795 +* rs/mailinfo-qp-decode-fix (2017-09-24) 1 commit
796 + (merged to 'next' on 2017-09-25 at d48c594041)
797 + + mailinfo: don't decode invalid =XY quoted-printable sequences
798 +
799 + "git mailinfo" was loose in decoding quoted printable and produced
800 + garbage when the two letters after the equal sign are not
801 + hexadecimal. This has been fixed.
802 +
803 + Will merge to 'master'.
804 +
805 +
806 +* rs/resolve-ref-optional-result (2017-09-24) 3 commits
807 + (merged to 'next' on 2017-09-25 at b0f31228bb)
808 + + refs: pass NULL to resolve_ref_unsafe() if hash is not needed
809 + + refs: pass NULL to refs_resolve_ref_unsafe() if hash is not needed
810 + + refs: make sha1 output parameter of refs_resolve_ref_unsafe() optional
811
812 Code clean-up.
813
814 Will merge to 'master'.
815
816
467 -* mg/name-rev-tests-with-short-stack (2017-09-08) 4 commits
468 - (merged to 'next' on 2017-09-14 at 1e4a0fe206)
469 - + t6120: test describe and name-rev with deep repos
470 - + t6120: clean up state after breaking repo
471 - + t6120: test name-rev --all and --stdin
472 - + t7004: move limited stack prereq to test-lib
473 - (this branch is used by rj/test-ulimit-on-windows.)
817 +* sb/doc-config-submodule-update (2017-09-24) 1 commit
818 + (merged to 'next' on 2017-09-25 at 447014b4ce)
819 + + Documentation/config: clarify the meaning of submodule.<name>.update
820 +
821 + Will merge to 'master'.
822 +
823 +
824 +* jc/merge-x-theirs-docfix (2017-09-25) 1 commit
825 + - merge-strategies: avoid implying that "-s theirs" exists
826 +
827 + The documentation for '-X<option>' for merges was misleadingly
828 + written to suggest that "-s theirs" exists, which is not the case.
829 +
830 + Will merge to 'next'.
831 +
832 +--------------------------------------------------
833 +[Stalled]
834 +
835 +* mk/use-size-t-in-zlib (2017-08-10) 1 commit
836 + . zlib.c: use size_t for size
837
475 - A handful of tests to demonstrates a recursive implementation of
476 - "name-rev" hurts.
838 + The wrapper to call into zlib followed our long tradition to use
839 + "unsigned long" for sizes of regions in memory, which have been
840 + updated to use "size_t".
841
478 - Will merge to 'master'.
842 + Needs resurrecting by making sure the fix is good and still applies
843 + (or adjusted to today's codebase).
844
845
481 -* rk/commit-tree-make-F-verbatim (2017-09-10) 1 commit
482 - (merged to 'next' on 2017-09-14 at 3d40c900f3)
483 - + commit-tree: do not complete line in -F input
846 +* mg/status-in-progress-info (2017-05-10) 2 commits
847 + - status --short --inprogress: spell it as --in-progress
848 + - status: show in-progress info for short status
849
485 - Unlike "git commit-tree < file", "git commit-tree -F file" did not
486 - pass the contents of the file verbatim and instead completed an
487 - incomplete line at the end, if exists. The latter has been updated
488 - to match the behaviour of the former.
850 + "git status" learns an option to report various operations
851 + (e.g. "merging") that the user is in the middle of.
852
490 - Will merge to 'master'.
853 + cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
854
855
493 -* sb/merge-commit-msg-hook (2017-09-08) 1 commit
494 - (merged to 'next' on 2017-09-14 at e9d0e43031)
495 - + builtin/merge: honor commit-msg hook for merges
856 +* nd/worktree-move (2017-04-20) 6 commits
857 + - worktree remove: new command
858 + - worktree move: refuse to move worktrees with submodules
859 + - worktree move: accept destination as directory
860 + - worktree move: new command
861 + - worktree.c: add update_worktree_location()
862 + - worktree.c: add validate_worktree()
863
497 - As "git commit" to conclude a conflicted "git merge" honors the
498 - commit-msg hook, "git merge" that recoreds a merge commit that
499 - cleanly auto-merges should, but it didn't.
864 + "git worktree" learned move and remove subcommands.
865
501 - Will merge to 'master'.
866 + Expecting a reroll.
867 + cf. <20170420101024.7593-1-pclouds@gmail.com>
868 + cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
869 + cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
870
871
504 -* ls/travis-scriptify (2017-09-11) 3 commits
505 - (merged to 'next' on 2017-09-14 at 8fa685d3b7)
506 - + travis: dedent a few scripts that are indented overly deeply
507 - + travis-ci: skip a branch build if equal tag is present
508 - + travis-ci: move Travis CI code into dedicated scripts
872 +* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits
873 + - Documentation/clone: document ignored configuration variables
874 + - clone: respect additional configured fetch refspecs during initial fetch
875 + (this branch is used by sg/remote-no-string-refspecs.)
876
510 - The scripts to drive TravisCI has been reorganized and then an
511 - optimization to avoid spending cycles on a branch whose tip is
512 - tagged has been implemented.
877 + "git clone -c var=val" is a way to set configuration variables in
878 + the resulting repository, but it is more useful to also make these
879 + variables take effect while the initial clone is happening,
880 + e.g. these configuration variables could be fetch refspecs.
881
514 - Will merge to 'master'.
882 + Waiting for a response.
883 + cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net>
884 + cf. <xmqqmv8zhdap.fsf@gitster.mtv.corp.google.com>
885
886 +--------------------------------------------------
887 +[Cooking]
888
517 -* dw/diff-highlight-makefile-fix (2017-09-06) 1 commit
518 - (merged to 'next' on 2017-09-10 at 8dfda480ac)
519 - + diff-highlight: add clean target to Makefile
889 +* js/rebase-i-final (2017-07-27) 10 commits
890 + - rebase -i: rearrange fixup/squash lines using the rebase--helper
891 + - t3415: test fixup with wrapped oneline
892 + - rebase -i: skip unnecessary picks using the rebase--helper
893 + - rebase -i: check for missing commits in the rebase--helper
894 + - t3404: relax rebase.missingCommitsCheck tests
895 + - rebase -i: also expand/collapse the SHA-1s via the rebase--helper
896 + - rebase -i: do not invent onelines when expanding/collapsing SHA-1s
897 + - rebase -i: remove useless indentation
898 + - rebase -i: generate the script via rebase--helper
899 + - t3415: verify that an empty instructionFormat is handled as before
900
521 - Build clean-up.
901 + The final batch to "git rebase -i" updates to move more code from
902 + the shell script to C.
903
523 - Will merge to 'master'.
904 + Will merge to 'next'.
905
906
526 -* jk/config-lockfile-leak-fix (2017-09-06) 1 commit
527 - (merged to 'next' on 2017-09-10 at 7b91d71749)
528 - + config: use a static lock_file struct
907 +* mk/diff-delta-avoid-large-offset (2017-08-11) 1 commit
908 + - diff-delta: do not allow delta offset truncation
909
530 - A leakfix.
910 + The delta format used in the packfile cannot reference data at
911 + offset larger than what can be expressed in 4-byte, but the
912 + generator for the data failed to make sure the offset does not
913 + overflow. This has been corrected.
914
532 - Will merge to 'master'.
915 + Will merge to 'next'.
916
917
535 -* kw/merge-recursive-cleanup (2017-09-08) 3 commits
536 - (merged to 'next' on 2017-09-14 at 9f20025e6b)
537 - + merge-recursive: change current file dir string_lists to hashmap
538 - + merge-recursive: remove return value from get_files_dirs
539 - + merge-recursive: fix memory leak
918 +* mk/diff-delta-uint-may-be-shorter-than-ulong (2017-08-10) 1 commit
919 + - diff-delta: fix encoding size that would not fit in "unsigned int"
920
541 - A leakfix and code clean-up.
921 + The machinery to create xdelta used in pack files received the
922 + sizes of the data in size_t, but lost the higher bits of them by
923 + storing them in "unsigned int" during the computation, which is
924 + fixed.
925
543 - Will merge to 'master'.
926 + Will merge to 'next'.
927
928
546 -* ma/pkt-line-leakfix (2017-09-06) 1 commit
547 - (merged to 'next' on 2017-09-10 at f0d9994319)
548 - + pkt-line: re-'static'-ify buffer in packet_write_fmt_1()
929 +* bp/fsmonitor (2017-09-24) 12 commits
930 + - fsmonitor: add a performance test
931 + - fsmonitor: add a sample integration script for Watchman
932 + - fsmonitor: add test cases for fsmonitor extension
933 + - split-index: disable the fsmonitor extension when running the split index test
934 + - fsmonitor: add a test tool to dump the index extension
935 + - update-index: add fsmonitor support to update-index
936 + - ls-files: Add support in ls-files to display the fsmonitor valid bit
937 + - fsmonitor: add documentation for the fsmonitor extension.
938 + - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
939 + - update-index: add a new --force-write-index option
940 + - preload-index: add override to enable testing preload-index
941 + - bswap: add 64 bit endianness helper get_be64
942
550 - A leakfix.
943 + We learned to talk to watchman to speed up "git status" and other
944 + operations that need to see which paths have been modified.
945
552 - Will merge to 'master'.
946 + Looking mostly ready. Further comments?
947
948
555 -* ma/split-symref-update-fix (2017-09-10) 4 commits
556 - (merged to 'next' on 2017-09-10 at 96c403fca7)
557 - + refs/files-backend: add `refname`, not "HEAD", to list
558 - + refs/files-backend: correct return value in lock_ref_for_update
559 - + refs/files-backend: fix memory leak in lock_ref_for_update
560 - + refs/files-backend: add longer-scoped copy of string to list
949 +* bw/protocol-v1 (2017-09-21) 9 commits
950 + - i5700: add interop test for protocol transition
951 + - http: tell server that the client understands v1
952 + - connect: tell server that the client understands v1
953 + - connect: teach client to recognize v1 server response
954 + - upload-pack, receive-pack: introduce protocol version 1
955 + - daemon: recognize hidden request arguments
956 + - protocol: introduce protocol extention mechanisms
957 + - connect: die when a capability line comes after a ref
958 + - pkt-line: add packet_write function
959
562 - A leakfix.
960 + A new mechanism to upgrade the wire protocol in place is proposed
961 + and demonstrated that it works with the older versions of Git
962 + without harming them.
963
564 - Will merge to 'master'.
964 + Expecting a reroll,
965 + together with Jonathan's update to get_remote_heads()
966 + cf. <20170922201551.15012-1-jonathantanmy@google.com>
967
968
567 -* mg/timestamp-t-fix (2017-09-06) 1 commit
568 - (merged to 'next' on 2017-09-10 at a5df4d5b3e)
569 - + name-rev: change ULONG_MAX to TIME_MAX
969 +* mh/mmap-packed-refs (2017-09-24) 22 commits
970 + - SQUASH???
971 + - packed-backend.c: rename a bunch of things and update comments
972 + - mmapped_ref_iterator: inline into `packed_ref_iterator`
973 + - ref_cache: remove support for storing peeled values
974 + - packed_ref_store: get rid of the `ref_cache` entirely
975 + - ref_store: implement `refs_peel_ref()` generically
976 + - packed_read_raw_ref(): read the reference from the mmapped buffer
977 + - packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
978 + - read_packed_refs(): ensure that references are ordered when read
979 + - packed_ref_cache: keep the `packed-refs` file mmapped if possible
980 + - packed-backend.c: reorder some definitions
981 + - mmapped_ref_iterator_advance(): no peeled value for broken refs
982 + - mmapped_ref_iterator: add iterator over a packed-refs file
983 + - packed_ref_cache: remember the file-wide peeling state
984 + - read_packed_refs(): read references with minimal copying
985 + - read_packed_refs(): make parsing of the header line more robust
986 + - read_packed_refs(): only check for a header at the top of the file
987 + - read_packed_refs(): use mmap to read the `packed-refs` file
988 + - die_unterminated_line(), die_invalid_line(): new functions
989 + - packed_ref_cache: add a backlink to the associated `packed_ref_store`
990 + - prefix_ref_iterator: break when we leave the prefix
991 + - ref_iterator: keep track of whether the iterator output is ordered
992
571 - A mismerge fix.
993 + Operations that do not touch (majority of) packed refs have been
994 + optimized by making accesses to packed-refs file lazy; we no longer
995 + pre-parse everything, and an access to a single ref in the
996 + packed-refs does not touch majority of irrelevant refs, either.
997
573 - Will merge to 'master'.
998 + Under review; expecting an eventual reroll.
999 + cf. <b092c424-987a-fe00-43d4-17062000dfc0@alum.mit.edu> etc.
1000
1001
576 -* pc/submodule-helper (2017-08-25) 4 commits
1002 +* pc/submodule-helper (2017-09-25) 4 commits
1003 - submodule: port submodule subcommand 'status' from shell to C
1004 - submodule: port set_name_rev() from shell to C
1005 - submodule--helper: introduce for_each_listed_submodule()
@@ -581,6 +1007,8 @@ of the repositories listed at
1007
1008 GSoC.
1009
1010 + Looking good; it appeared to me that 3/4 is totally superfluous, though.
1011 +
1012
1013 * sb/parse-options-blank-line-before-option-list (2017-08-25) 1 commit
1014 - usage_with_options: omit double new line on empty option list
@@ -588,55 +1016,7 @@ of the repositories listed at
1016 "git worktree" with no option and no subcommand showed too many
1017 blank lines in its help text, which has been reduced.
1018
591 -
592 -* mh/notes-cleanup (2017-09-09) 13 commits
593 - (merged to 'next' on 2017-09-10 at cb1d725504)
594 - + load_subtree(): check that `prefix_len` is in the expected range
595 - (merged to 'next' on 2017-08-26 at 2d6df46966)
596 - + load_subtree(): declare some variables to be `size_t`
597 - + hex_to_bytes(): simpler replacement for `get_oid_hex_segment()`
598 - + get_oid_hex_segment(): don't pad the rest of `oid`
599 - + load_subtree(): combine some common code
600 - + get_oid_hex_segment(): return 0 on success
601 - + load_subtree(): only consider blobs to be potential notes
602 - + load_subtree(): check earlier whether an internal node is a tree entry
603 - + load_subtree(): separate logic for internal vs. terminal entries
604 - + load_subtree(): fix incorrect comment
605 - + load_subtree(): reduce the scope of some local variables
606 - + load_subtree(): remove unnecessary conditional
607 - + notes: make GET_NIBBLE macro more robust
608 -
609 - Code clean-up.
610 -
611 - Will merge to 'master'.
612 -
613 -
614 -* nd/prune-in-worktree (2017-08-24) 16 commits
615 - (merged to 'next' on 2017-09-14 at 3efe283118)
616 - + refs.c: reindent get_submodule_ref_store()
617 - + refs.c: remove fallback-to-main-store code get_submodule_ref_store()
618 - + rev-list: expose and document --single-worktree
619 - + revision.c: --reflog add HEAD reflog from all worktrees
620 - + files-backend: make reflog iterator go through per-worktree reflog
621 - + revision.c: --all adds HEAD from all worktrees
622 - + refs: remove dead for_each_*_submodule()
623 - + refs.c: move for_each_remote_ref_submodule() to submodule.c
624 - + revision.c: use refs_for_each*() instead of for_each_*_submodule()
625 - + refs: add refs_head_ref()
626 - + refs: move submodule slash stripping code to get_submodule_ref_store
627 - + refs.c: refactor get_submodule_ref_store(), share common free block
628 - + revision.c: --indexed-objects add objects from all worktrees
629 - + revision.c: refactor add_index_objects_to_pending()
630 - + refs.c: use is_dir_sep() in resolve_gitlink_ref()
631 - + revision.h: new flag in struct rev_info wrt. worktree-related refs
632 -
633 - "git gc" and friends when multiple worktrees are used off of a
634 - single repository did not consider the index and per-worktree refs
635 - of other worktrees as the root for reachability traversal, making
636 - objects that are in use only in other worktrees to be subject to
637 - garbage collection.
638 -
639 - Will merge to 'master'.
1019 + Superseded by bc/rev-parse-parseopt-fix?
1020
1021
1022 * bc/hash-algo (2017-08-20) 5 commits
@@ -650,18 +1030,6 @@ of the repositories listed at
1030 cf. <20170821000022.26729-1-sandals@crustytoothpaste.net>
1031
1032
653 -* mk/diff-delta-uint-may-be-shorter-than-ulong (2017-08-10) 1 commit
654 - . diff-delta: fix encoding size that would not fit in "unsigned int"
655 -
656 - The machinery to create xdelta used in pack files received the
657 - sizes of the data in size_t, but lost the higher bits of them by
658 - storing them in "unsigned int" during the computation, which is
659 - fixed.
660 -
661 - Dropped, as it was rerolled for review as part of a larger series.
662 - cf. <1502914591-26215-1-git-send-email-martin@mail.zuhause>
663 -
664 -
1033 * jk/drop-ancient-curl (2017-08-09) 5 commits
1034 - http: #error on too-old curl
1035 - curl: remove ifdef'd code never used with curl >=7.19.4
@@ -674,37 +1042,6 @@ of the repositories listed at
1042 Will be rerolled after tc/curl-with-backports stabilizes.
1043
1044
677 -* mk/use-size-t-in-zlib (2017-08-10) 1 commit
678 - . zlib.c: use size_t for size
679 -
680 - The wrapper to call into zlib followed our long tradition to use
681 - "unsigned long" for sizes of regions in memory, which have been
682 - updated to use "size_t".
683 -
684 - Dropped, as it was rerolled for review as part of a larger series.
685 - cf. <1502914591-26215-1-git-send-email-martin@mail.zuhause>
686 -
687 -
688 -* mk/diff-delta-avoid-large-offset (2017-08-11) 1 commit
689 - . diff-delta: do not allow delta offset truncation
690 -
691 - The delta format used in the packfile cannot reference data at
692 - offset larger than what can be expressed in 4-byte, but the
693 - generator for the data failed to make sure the offset does not
694 - overflow. This has been corrected.
695 -
696 - Dropped, as it was rerolled for review as part of a larger series.
697 - cf. <1502914591-26215-1-git-send-email-martin@mail.zuhause>
698 -
699 -
700 -* bw/git-clang-format (2017-08-14) 2 commits
701 - - Makefile: add style build rule
702 - - clang-format: outline the git project's coding style
703 -
704 - "make style" runs git-clang-format to help developers by pointing
705 - out coding style issues.
706 -
707 -
1045 * sb/submodule-recursive-checkout-detach-head (2017-07-28) 2 commits
1046 - Documentation/checkout: clarify submodule HEADs to be detached
1047 - recursive submodules: detach HEAD from new state
@@ -719,18 +1056,6 @@ of the repositories listed at
1056 this is better than rejecting recursive checkout, for example.
1057
1058
722 -* ti/external-sha1dc (2017-08-16) 2 commits
723 - (merged to 'next' on 2017-08-26 at a0fb4e91a5)
724 - + sha1dc: allow building with the external sha1dc library
725 - + sha1dc: build git plumbing code more explicitly
726 -
727 - Platforms that ship with a separate sha1 with collision detection
728 - library can link to it instead of using the copy we ship as part of
729 - our source tree.
730 -
731 - Will merge to 'master'.
732 -
733 -
1059 * jk/check-ref-format-oor-fix (2017-07-14) 1 commit
1060 - check-ref-format: require a repository for --branch
1061
@@ -784,7 +1109,8 @@ of the repositories listed at
1109 this release cycle.
1110
1111
787 -* sd/branch-copy (2017-06-18) 3 commits
1112 +* sd/branch-copy (2017-09-24) 4 commits
1113 + - branch: fix "copy" to never touch HEAD
1114 - branch: add a --copy (-c) option to go with --move (-m)
1115 - branch: add test for -m renaming multiple config sections
1116 - config: create a function to format section headers
@@ -792,10 +1118,7 @@ of the repositories listed at
1118 "git branch" learned "-c/-C" to create and switch to a new branch
1119 by copying an existing one.
1120
795 - I personally do not think "branch --copy master backup" while on
796 - "master" that switches to "backup" is a good UI, and I *will* say
797 - "I told you so" when users complain after we merge this down to
798 - 'master'.
1121 + Will merge to 'next'.
1122
1123 --------------------------------------------------
1124 [Discarded]
@@ -810,7 +1133,6 @@ of the repositories listed at
1133 This served as an input to updated tb/apply-with-crlf.
1134
1135
813 -
1136 * jn/per-repo-obj-store (2017-09-07) 39 commits
1137 . pack: allow sha1_loose_object_info to handle arbitrary repositories
1138 . pack: allow map_sha1_file to handle arbitrary repositories
@@ -856,5 +1178,3 @@ of the repositories listed at
1178 repository we visit.
1179
1180 Will be rerolled.
859 -
860 -