What's cooking (2017/05 #06)

Junio C Hamano committed May 22, 2017 at 15:08 UTC 30092841de24ab5e5a28e6cf669fb1b860740870
1 file changed +505 -529
whats-cooking.txt
+505 -529
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (May 2017, #05; Tue, 16)
3 +Subject: What's cooking in git.git (May 2017, #06; Mon, 22)
4 X-master-at: 10c78a162fa821ee85203165b805ff46be454091
5 -X-next-at: 0c0372eb028443d4e8877a833f6afee01c842345
5 +X-next-at: 20371eebb69346345f908fea7f7cbd2909a91c2c
6
7 -What's cooking in git.git (May 2017, #05; Tue, 16)
7 +What's cooking in git.git (May 2017, #06; Mon, 22)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -23,265 +23,279 @@ of the repositories listed at
23 http://git-blame.blogspot.com/p/git-public-repositories.html
24
25 --------------------------------------------------
26 -[Graduated to "master"]
27 -
28 -* ab/aix-needs-compat-regex (2017-05-04) 1 commit
29 - (merged to 'next' on 2017-05-09 at 881202b6bb)
30 - + config.mak.uname: set NO_REGEX=NeedsStartEnd on AIX
31 -
32 - Build fix.
33 -
34 -
35 -* ab/clone-no-tags (2017-05-01) 3 commits
36 - (merged to 'next' on 2017-04-30 at 601649896a)
37 - + tests: rename a test having to do with shallow submodules
38 - + clone: add a --no-tags option to clone without tags
39 - + tests: change "cd ... && git fetch" to "cd &&\n\tgit fetch"
40 -
41 - "git clone" learned the "--no-tags" option not to fetch all tags
42 - initially, and also set up the tagopt not to follow any tags in
43 - subsequent fetches.
26 +[New Topics]
27
28 +* ab/conditional-config-with-symlinks (2017-05-17) 1 commit
29 + - config: match both symlink & realpath versions in IncludeIf.gitdir:*
30
46 -* bw/submodule-has-commits-update (2017-05-02) 6 commits
47 - (merged to 'next' on 2017-05-08 at 57267f2277)
48 - + submodule: refactor logic to determine changed submodules
49 - + submodule: improve submodule_has_commits()
50 - + submodule: change string_list changed_submodule_paths
51 - + submodule: remove add_oid_to_argv()
52 - + submodule: rename free_submodules_sha1s()
53 - + submodule: rename add_sha1_to_array()
31 + The recently introduced "[includeIf "gitdir:$dir"] path=..."
32 + mechansim has further been taught to take symlinks into account.
33 + The directory "$dir" specified in "gitdir:$dir" may be a symlink to
34 + a real location, not something that $(getcwd) may return. In such
35 + a case, a realpath of "$dir" is compared with the real path of the
36 + current repository to determine if the contents from the named path
37 + should be included.
38
55 - Code clean-up and duplicate removal.
39 + Will merge to 'next'.
40
41
58 -* dt/gc-ignore-old-gc-logs (2017-04-24) 3 commits
59 - (merged to 'next' on 2017-04-26 at 4f4cab8368)
60 - + test-lib: retire $remove_trash variable
61 - + test-lib.sh: do not barf under --debug at the end of the test
62 - + test-lib: abort when can't remove trash directory
42 +* bm/interpret-trailers-cut-line-is-eom (2017-05-18) 1 commit
43 + - interpret-trailers: honor the cut line
44
64 - Attempt to allow us notice "fishy" situation where we fail to
65 - remove the temporary directory used during the test.
45 + "git interpret-trailers", when used as GIT_EDITOR for "git commit
46 + -v", looked for and appended to a trailer block at the very end,
47 + i.e. at the end of the "diff" output. The command has been
48 + corrected to pay attention to the cut-mark line "commit -v" adds to
49 + the buffer---the real trailer block should appear just before it.
50
51 + Will merge to 'next'.
52
68 -* dt/raise-core-packed-git-limit (2017-04-20) 1 commit
69 - (merged to 'next' on 2017-04-26 at c72dd8c62f)
70 - + Increase core.packedGitLimit
53
72 - The default packed-git limit value has been raised on larger
73 - platforms to save "git fetch" from a (recoverable) failure while
74 - "gc" is running in parallel.
54 +* jc/skip-test-in-the-middle (2017-05-18) 2 commits
55 + - t5545: enhance test coverage when no http server is installed
56 + - test: allow skipping the remainder
57
58 + A recent update to t5545-push-options.sh started skipping all the
59 + tests in the script when a web server testing is disabled or
60 + unavailable, not just the ones that require a web server. Non HTTP
61 + tests have been salvaged to always run in this script.
62
77 -* jc/apply-fix-mismerge (2017-05-08) 1 commit
78 - (merged to 'next' on 2017-05-09 at e0b89532d0)
79 - + apply.c: fix whitespace-only mismerge
63 + Will merge to 'next'.
64
81 - Mismerge fix.
65
66 +* jk/alternate-ref-optim (2017-05-18) 1 commit
67 + - t5400: avoid concurrent writes into a trace file
68
84 -* jk/am-leakfix (2017-04-27) 3 commits
85 - (merged to 'next' on 2017-04-30 at 78becd7a96)
86 - + am: shorten ident_split variable name in get_commit_info()
87 - + am: simplify allocations in get_commit_info()
88 - + am: fix commit buffer leak in get_commit_info()
69 + A test allowed both "git push" and "git receive-pack" on the other
70 + end write their traces into the same file. This is OK on platforms
71 + that allows atomically appending to a file opened with O_APPEND,
72 + but on other platforms led to a mangled output, causing
73 + intermittent test failures. This has been fixed by disabling
74 + traces from "receive-pack" in the test.
75
90 - The codepath in "git am" that is used when running "git rebase"
91 - leaked memory held for the log message of the commits being rebased.
76 + Will merge to 'next'.
77
78
94 -* jk/no-null-sha1-in-cache-tree (2017-04-23) 1 commit
95 - (merged to 'next' on 2017-04-26 at 45fbe9d57d)
96 - + cache-tree: reject entries with null sha1
79 +* mh/packed-ref-store-prep (2017-05-18) 23 commits
80 + - cache_ref_iterator_begin(): avoid priming unneeded directories
81 + - ref-filter: limit traversal to prefix
82 + - create_ref_entry(): remove `check_name` option
83 + - refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA`
84 + - read_packed_refs(): report unexpected fopen() failures
85 + - read_packed_refs(): do more of the work of reading packed refs
86 + - get_packed_ref_cache(): assume "packed-refs" won't change while locked
87 + - should_pack_ref(): new function, extracted from `files_pack_refs()`
88 + - ref_update_reject_duplicates(): add a sanity check
89 + - ref_update_reject_duplicates(): use `size_t` rather than `int`
90 + - ref_update_reject_duplicates(): expose function to whole refs module
91 + - ref_transaction_commit(): break into multiple functions
92 + - files_transaction_cleanup(): new helper function
93 + - files_ref_store: put the packed files lock directly in this struct
94 + - files-backend: move `lock` member to `files_ref_store`
95 + - lockfile: add a new method, is_lock_file_locked()
96 + - ref_store: take `logmsg` parameter when deleting references
97 + - refs: use `size_t` indexes when iterating over ref transaction updates
98 + - refs_ref_iterator_begin(): don't check prefixes redundantly
99 + - prefix_ref_iterator: don't trim too much
100 + - ref_iterator_begin_fn(): fix docstring
101 + - refs.h: clarify docstring for the ref_transaction_update()-related fns
102 + - t3600: clean up permissions test properly
103 +
104 + The implementation of "ref" API around the "packed refs" have been
105 + cleaned up, in preparation for further changes.
106
98 - Code to update the cache-tree has been tightened so that we won't
99 - accidentally write out any 0{40} entry in the tree object.
107 + Expecting a reroll.
108
109
102 -* jn/clone-add-empty-config-from-command-line (2017-05-02) 1 commit
103 - (merged to 'next' on 2017-05-09 at c56ac3f782)
104 - + clone: handle empty config values in -c
110 +* sl/clean-d-ignored-fix (2017-05-22) 7 commits
111 + - SQUASH????
112 + - clean: teach clean -d to skip dirs containing ignored files
113 + - dir: expose cmp_name() and check_contains()
114 + - dir: hide untracked contents of untracked dirs
115 + - dir: recurse into untracked dirs for ignored files
116 + - t7061: status --ignored should search untracked dirs
117 + - t7300: clean -d should skip dirs with ignored files
118
106 - "git clone --config var=val" is a way to populate the
107 - per-repository configuration file of the new repository, but it did
108 - not work well when val is an empty string. This has been fixed.
119 + "git clean -d" used to clean directories that has ignored files,
120 + even though the command should not lose ignored ones without "-x".
121 + This has been corrected.
122
123
111 -* jn/credential-doc-on-clear (2017-05-02) 1 commit
112 - (merged to 'next' on 2017-05-09 at 96fa65d122)
113 - + credential doc: make multiple-helper behavior more prominent
124 +* tg/stash-push-fixup (2017-05-17) 1 commit
125 + - completion: add git stash push
126
115 - Doc update.
127 + The shell completion script (in contrib/) learned "git stash" has
128 + a new "push" subcommand.
129
130 + Will merge to 'next'.
131
118 -* js/larger-timestamps (2017-05-09) 9 commits
119 - (merged to 'next' on 2017-05-09 at ae0603fd3e)
120 - + archive-tar: fix a sparse 'constant too large' warning
121 - (merged to 'next' on 2017-04-28 at b56a0d38cd)
122 - + use uintmax_t for timestamps
123 - + date.c: abort if the system time cannot handle one of our timestamps
124 - + timestamp_t: a new data type for timestamps
125 - + PRItime: introduce a new "printf format" for timestamps
126 - + parse_timestamp(): specify explicitly where we parse timestamps
127 - + t0006 & t5000: skip "far in the future" test when time_t is too limited
128 - + t0006 & t5000: prepare for 64-bit timestamps
129 - + ref-filter: avoid using `unsigned long` for catch-all data type
132
131 - Some platforms have ulong that is smaller than time_t, and our
132 - historical use of ulong for timestamp would mean they cannot
133 - represent some timestamp that the platform allows. Invent a
134 - separate and dedicated timestamp_t (so that we can distingiuish
135 - timestamps and a vanilla ulongs, which along is already a good
136 - move), and then declare uintmax_t is the type to be used as the
137 - timestamp_t.
133 +* ab/sha1dc (2017-05-22) 3 commits
134 + - sha1collisiondetection: automatically enable when submodule is populated
135 + - sha1dc: optionally use sha1collisiondetection as a submodule
136 + - sha1dc: update from upstream
137
138 + The "collission-detecting" implementation of SHA-1 hash we borrowed
139 + from is replaced by directly binding the upstream project as our
140 + submodule.
141
140 -* jt/use-trailer-api-in-commands (2017-04-26) 1 commit
141 - (merged to 'next' on 2017-04-30 at 006c8d7ebd)
142 - + sequencer: add newline before adding footers
142 + Will keep in 'pu' for a few CI cycles.
143 + Impact to the various build and release infrastructure of using
144 + submodule is not yet fully known, but this lets us dip our toes.
145
144 - "git cherry-pick" and other uses of the sequencer machinery
145 - mishandled a trailer block whose last line is an incomplete line.
146 - This has been fixed so that an additional sign-off etc. are added
147 - after completing the existing incomplete line.
146
147 +* bp/fsmonitor (2017-05-21) 10 commits
148 + - SQUASH???
149 + - SQUASH???
150 + - SQUASH???
151 + - fsmonitor: add a sample query-fsmonitor hook script for Watchman
152 + - fsmonitor: add documentation for the fsmonitor extension.
153 + - fsmonitor: add test cases for fsmonitor extension
154 + - SQUASH???
155 + - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
156 + - dir: make lookup_untracked() available outside of dir.c
157 + - bswap: add 64 bit endianness helper get_be64
158
150 -* ls/travis-doc-asciidoctor (2017-04-26) 4 commits
151 - (merged to 'next' on 2017-05-04 at 813ba54fc3)
152 - + travis-ci: check AsciiDoc/AsciiDoctor stderr output
153 - (merged to 'next' on 2017-04-19 at 359c32953b)
154 - + travis-ci: unset compiler for jobs that do not need one
155 - + travis-ci: parallelize documentation build
156 - + travis-ci: build documentation with AsciiDoc and Asciidoctor
159 + Expecting reroll.
160
158 - Travis CI gained a task to format the documentation with both
159 - AsciiDoc and AsciiDoctor.
161
162 +* dk/send-email-avoid-net-smtp-ssl-when-able (2017-05-20) 1 commit
163 + - send-email: Net::SMTP::SSL is obsolete, use only when necessary
164
162 -* nd/worktree-kill-parse-ref (2017-04-24) 6 commits
163 - (merged to 'next' on 2017-04-26 at b8e40da709)
164 - + refs: kill set_worktree_head_symref()
165 - + worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
166 - + refs: introduce get_worktree_ref_store()
167 - + refs: add REFS_STORE_ALL_CAPS
168 - + refs.c: make submodule ref store hashmap generic
169 - + environment.c: fix potential segfault by get_git_common_dir()
170 - (this branch is used by nd/prune-in-worktree.)
165 + "git send-email" now uses Net::SMTP::SSL, which is obsolete, only
166 + when needed. Recent versions of Net::SMTP can do TLS natively.
167
172 - "git gc" did not interact well with "git worktree"-managed
173 - per-worktree refs.
168 + Will merge to 'next'.
169
170
176 -* rs/large-zip (2017-05-01) 7 commits
177 - (merged to 'next' on 2017-05-02 at a03574e49b)
178 - + t5004: require 64-bit support for big ZIP tests
179 - + archive-zip: set version field for big files correctly
180 - (merged to 'next' on 2017-04-26 at a6beab60f2)
181 - + archive-zip: support files bigger than 4GB
182 - + archive-zip: support archives bigger than 4GB
183 - + archive-zip: write ZIP dir entry directly to strbuf
184 - + archive-zip: use strbuf for ZIP directory
185 - + archive-zip: add tests for big ZIP archives
171 +* jc/name-rev-lw-tag (2017-03-29) 2 commits
172 + - name-rev: favor describing with tags and use committer date to tiebreak
173 + - name-rev: refactor logic to see if a new candidate is a better name
174 + (this branch is used by mg/name-rev-debug.)
175
187 - "git archive --format=zip" learned to use zip64 extension when
188 - necessary to go beyond the 4GB limit.
176 + "git describe --contains" penalized light-weight tags so much that
177 + they were almost never considered. Instead, give them about the
178 + same chance to be considered as an annotated tag that is the same
179 + age as the underlying commit would.
180
181 + Will merge to 'next'.
182
191 -* sk/status-short-branch-color-config (2017-04-28) 2 commits
192 - (merged to 'next' on 2017-04-30 at 2a7eb05d7b)
193 - + status: add color config slots for branch info in "--short --branch"
194 - + status: fix missing newline when comment chars are disabled
183
196 - The colors in which "git status --short --branch" showed the names
197 - of the current branch and its remote-tracking branch are now
198 - configurable.
184 +* jk/diff-blob (2017-05-20) 15 commits
185 + - diff: use blob path for blob/file diffs
186 + - diff: use pending "path" if it is available
187 + - diff: use the word "path" instead of "name" for blobs
188 + - diff: pass whole pending entry in blobinfo
189 + - handle_revision_arg: record paths for pending objects
190 + - handle_revision_arg: record modes for "a..b" endpoints
191 + - t4063: add tests of direct blob diffs
192 + - get_sha1_with_context: dynamically allocate oc->path
193 + - get_sha1_with_context: always initialize oc->symlink_path
194 + - sha1_name: consistently refer to object_context as "oc"
195 + - handle_revision_arg: add handle_dotdot() helper
196 + - handle_revision_arg: hoist ".." check out of range parsing
197 + - handle_revision_arg: stop using "dotdot" as a generic pointer
198 + - handle_revision_arg: simplify commit reference lookups
199 + - handle_revision_arg: reset "dotdot" consistently
200 +
201 + The result from "git diff" that compares two blobs, e.g. "git diff
202 + $commit1:$path $commit2:$path", used to be shown with the full
203 + object name as given on the command line, but it is more natural to
204 + use the $path in the output and use it to look up .gitattributes.
205
200 ---------------------------------------------------
201 -[New Topics]
206 + Needs review.
207
203 -* ah/log-decorate-default-to-auto (2017-05-15) 1 commit
204 - - builtin/log: honor log.decorate
208
206 - Setting "log.decorate=false" in the configuration file did not take
207 - effect in v2.13, which has been corrected.
209 +* jk/ignore-broken-tags-when-ignoring-missing-links (2017-05-20) 1 commit
210 + - revision.c: ignore broken tags with ignore_missing_links
211
212 + Tag objects, which are not reachable from any ref, that point at
213 + missing objects were mishandled by "git gc" and friends (they
214 + should silently be ignored instead)
215 +
216 Will merge to 'next'.
217
218
212 -* jh/memihash-opt (2017-05-16) 5 commits
213 - - p0004: don't error out if test repo is too small
214 - - p0004: don't abort if multi-threaded is too slow
215 - - p0004: use test_perf
216 - - p0004: avoid using pipes
217 - - p0004: simplify calls of test-lazy-init-name-hash
219 +* js/bs-is-a-dir-sep-on-windows (2017-05-20) 2 commits
220 + - Windows: do not treat a path with backslashes as a remote's nick name
221 + - mingw.h: permit arguments with side effects for is_dir_sep
222
219 - perf-test update.
223 + "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
224 + slashes in it, cannot be a nickname for a remote on Windows, as
225 + that is likely to be a pathname on a local filesystem.
226
227 Will merge to 'next'.
228
229
224 -* jk/bug-to-abort (2017-05-15) 3 commits
225 - - config: complain about --local outside of a git repo
226 - - setup_git_env: convert die("BUG") to BUG()
227 - - usage.c: add BUG() function
230 +* js/larger-timestamps (2017-05-20) 1 commit
231 + - name-rev: change a "long" variable to timestamp_t
232
229 - Introduce the BUG() macro to improve die("BUG: ...").
233 + A follow-up hotfix for a topic already in 'master'.
234
235 Will merge to 'next'.
236
237
234 -* jk/no-looking-at-dotgit-outside-repo (2017-05-15) 1 commit
235 - - config: complain about --local outside of a git repo
238 +* km/log-showsignature-doc (2017-05-20) 1 commit
239 + - config.txt: add an entry for log.showSignature
240
237 - Will discard.
238 - Superseded by jk/bug-to-abort.
241 + Will merge to 'next'.
242
243
241 -* jk/update-links-in-docs (2017-05-15) 1 commit
242 - - doc: use https links to Wikipedia to avoid http redirects
244 +* kn/ref-filter-branch-list (2017-05-20) 1 commit
245 + - ref-filter: resolve HEAD when parsing %(HEAD) atom
246
244 - A few http:// links that are redirected to https:// in the
245 - documentation have been updated to https:// links.
247 + "git for-each-ref --format=..." with %(HEAD) in the format used to
248 + resolve the HEAD symref as many times as it had processed refs,
249 + which was wasteful, and "git branch" shared the same problem.
250
251 Will merge to 'next'.
252
253
250 -* js/blame-lib (2017-05-15) 22 commits
251 - - blame: create entry prepend function in libgit
252 - - blame: create scoreboard setup function in libgit
253 - - blame: create scoreboard init function in libgit
254 - - blame: move scoreboard-related methods to libgit
255 - - blame: move fake-commit-related methods to libgit
256 - - blame: move origin-related methods to libgit
257 - - blame: rework methods that determine 'final' commit
258 - - blame: wrap blame_sort and compare_blame_final
259 - - blame: move progess updates to a scoreboard callback
260 - - blame: make sanity_check use a callback in scoreboard
261 - - blame: move no_whole_file_rename flag to scoreboard
262 - - blame: move xdl_opts flags to scoreboard
263 - - blame: move show_root flag to scoreboard
264 - - blame: move reverse flag to scoreboard
265 - - blame: move contents_from to scoreboard
266 - - blame: move copy/move thresholds to scoreboard
267 - - blame: move stat counters to scoreboard
268 - - blame: move scoreboard structure to header
269 - - blame: move origin and entry structures to header
270 - - blame: remove unused parameters
271 - - blame: move textconv_object with related functions
272 - - blame: remove unneeded dependency on blob.h
254 +* pw/rebase-i-regression-fix (2017-05-20) 3 commits
255 + - rebase -i: add missing newline to end of message
256 + - rebase -i: silence stash apply
257 + - rebase -i: fix reflog message
258
274 - The internal logic used in "git blame" has been libified to make it
275 - easier to use by cgit.
259 + Regression fix to topic recently merged to 'master'.
260
261 + Will merge to 'next'.
262
278 -* jt/send-email-validate-hook (2017-05-16) 1 commit
279 - - send-email: support validate hook
263
281 - "git send-email" learned to run sendemail-validate hook to inspect
282 - and reject a message before sending it out.
264 +* sb/diff-color-move (2017-05-20) 20 commits
265 + - diff.c: color moved lines differently
266 + - diff: buffer all output if asked to
267 + - diff.c: emit_line includes whitespace highlighting
268 + - diff.c: convert diff_summary to use emit_line_*
269 + - diff.c: convert diff_flush to use emit_line_*
270 + - diff.c: convert word diffing to use emit_line_*
271 + - diff.c: convert show_stats to use emit_line_*
272 + - diff.c: convert emit_binary_diff_body to use emit_line_*
273 + - submodule.c: convert show_submodule_summary to use emit_line_fmt
274 + - diff.c: convert emit_rewrite_lines to use emit_line_*
275 + - diff.c: convert emit_rewrite_diff to use emit_line_*
276 + - diff.c: convert builtin_diff to use emit_line_*
277 + - diff.c: convert fn_out_consume to use emit_line
278 + - diff.c: inline emit_line_0 into emit_line
279 + - diff.c: emit_line_0 takes parameter whether to output line prefix
280 + - diff.c: emit_line_0 can handle no color setting
281 + - diff.c: teach emit_line_0 to accept sign parameter
282 + - diff.c: factor out diff_flush_patch_all_file_pairs
283 + - diff: move line ending check into emit_hunk_header
284 + - diff: readability fix
285 +
286 + "git diff" has been taught to optionally paint new lines that are
287 + the same as deleted lines elsewhere differently from genuinely new
288 + lines.
289 +
290 +
291 +* xz/send-email-batch-size (2017-05-22) 2 commits
292 + - SQUASH???
293 + - send-email: --batch-size to work around some SMTP server limit
294 +
295 + "git send-email" learned to overcome some SMTP server limitation
296 + that does not allow many pieces of e-mails to be sent over a single
297 + session.
298
284 - Will merge to 'next'.
299
300 --------------------------------------------------
301 [Stalled]
@@ -296,19 +310,14 @@ of the repositories listed at
310 cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
311
312
299 -* mg/name-rev-debug (2017-03-31) 4 commits
313 +* mg/name-rev-debug (2017-03-31) 2 commits
314 - describe: pass --debug down to name-rev
315 - name-rev: provide debug output
302 - - name-rev: favor describing with tags and use committer date to tiebreak
303 - - name-rev: refactor logic to see if a new candidate is a better name
316 + (this branch uses jc/name-rev-lw-tag.)
317
318 "git describe --debug --contains" did not add any meaningful
319 information, even though without "--contains" it did.
320
308 - Have been expecting a reroll of the tip two, but it has not seen
309 - any activity for too long.
310 - cf. <xmqqshltxnwt.fsf@gitster.mtv.corp.google.com>
311 -
321
322 * nd/worktree-move (2017-04-20) 6 commits
323 - worktree remove: new command
@@ -361,10 +370,97 @@ of the repositories listed at
370 Needs review.
371 cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
372
364 -
373 --------------------------------------------------
374 [Cooking]
375
376 +* ah/log-decorate-default-to-auto (2017-05-15) 1 commit
377 + (merged to 'next' on 2017-05-20 at 209614479c)
378 + + builtin/log: honor log.decorate
379 +
380 + Setting "log.decorate=false" in the configuration file did not take
381 + effect in v2.13, which has been corrected.
382 +
383 + Will merge to 'master'.
384 +
385 +
386 +* jh/memihash-opt (2017-05-16) 5 commits
387 + - p0004: don't error out if test repo is too small
388 + - p0004: don't abort if multi-threaded is too slow
389 + - p0004: use test_perf
390 + - p0004: avoid using pipes
391 + - p0004: simplify calls of test-lazy-init-name-hash
392 +
393 + perf-test update.
394 +
395 + Will merge to 'next'.
396 +
397 +
398 +* jk/bug-to-abort (2017-05-22) 4 commits
399 + (merged to 'next' on 2017-05-22 at 20371eebb6)
400 + + usage: add NORETURN to BUG() function definitions
401 + (merged to 'next' on 2017-05-20 at db65acc882)
402 + + config: complain about --local outside of a git repo
403 + + setup_git_env: convert die("BUG") to BUG()
404 + + usage.c: add BUG() function
405 +
406 + Introduce the BUG() macro to improve die("BUG: ...").
407 +
408 + Will merge to 'master'.
409 +
410 +
411 +* jk/no-looking-at-dotgit-outside-repo (2017-05-15) 1 commit
412 + - config: complain about --local outside of a git repo
413 +
414 + Will discard.
415 + Superseded by jk/bug-to-abort.
416 +
417 +
418 +* jk/update-links-in-docs (2017-05-15) 1 commit
419 + - doc: use https links to Wikipedia to avoid http redirects
420 +
421 + A few http:// links that are redirected to https:// in the
422 + documentation have been updated to https:// links.
423 +
424 + Will merge to 'next'.
425 +
426 +
427 +* js/blame-lib (2017-05-15) 22 commits
428 + - blame: create entry prepend function in libgit
429 + - blame: create scoreboard setup function in libgit
430 + - blame: create scoreboard init function in libgit
431 + - blame: move scoreboard-related methods to libgit
432 + - blame: move fake-commit-related methods to libgit
433 + - blame: move origin-related methods to libgit
434 + - blame: rework methods that determine 'final' commit
435 + - blame: wrap blame_sort and compare_blame_final
436 + - blame: move progess updates to a scoreboard callback
437 + - blame: make sanity_check use a callback in scoreboard
438 + - blame: move no_whole_file_rename flag to scoreboard
439 + - blame: move xdl_opts flags to scoreboard
440 + - blame: move show_root flag to scoreboard
441 + - blame: move reverse flag to scoreboard
442 + - blame: move contents_from to scoreboard
443 + - blame: move copy/move thresholds to scoreboard
444 + - blame: move stat counters to scoreboard
445 + - blame: move scoreboard structure to header
446 + - blame: move origin and entry structures to header
447 + - blame: remove unused parameters
448 + - blame: move textconv_object with related functions
449 + - blame: remove unneeded dependency on blob.h
450 +
451 + The internal logic used in "git blame" has been libified to make it
452 + easier to use by cgit.
453 +
454 +
455 +* jt/send-email-validate-hook (2017-05-16) 1 commit
456 + - send-email: support validate hook
457 +
458 + "git send-email" learned to run sendemail-validate hook to inspect
459 + and reject a message before sending it out.
460 +
461 + Will merge to 'next'.
462 +
463 +
464 * bw/pathspec-sans-the-index (2017-05-12) 6 commits
465 - pathspec: convert find_pathspecs_matching_against_index to take an index
466 - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
@@ -390,14 +486,15 @@ of the repositories listed at
486
487
488 * jc/read-tree-empty-with-m (2017-05-10) 1 commit
393 - - read-tree: "read-tree -m --empty" does not make sense
489 + (merged to 'next' on 2017-05-20 at 7e86815364)
490 + + read-tree: "read-tree -m --empty" does not make sense
491
492 "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
493 --empty if you want to clear the index". With "-m", such a request
494 will still fail anyway, as you'd need to name at least one tree-ish
495 to be merged.
496
400 - Will merge to 'next'.
497 + Will merge to 'master'.
498
499
500 * ab/perf-wildmatch (2017-05-12) 2 commits
@@ -422,24 +519,29 @@ of the repositories listed at
519
520
521 * js/retire-old-remote-spec (2017-05-12) 11 commits
425 - - PREVIEW: remove support for .git/remotes/ and .git/branches/
426 - - PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
427 - - PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
428 - - PREVIEW: remote: remove support for migrating ancient remotes
429 - - PREVIEW: t5516: stop testing .git/branches/ functionality
430 - - PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
431 - - Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
432 - - remote: warn loud and clear when .git/remotes/ is *still* used
433 - - remote: warn loud and clear when .git/branches/ is *still* used
434 - - Documentation: really deprecate .git/remotes/ and .git/branches/
435 - - git-parse-remote: fix highly misleading man page
522 + . PREVIEW: remove support for .git/remotes/ and .git/branches/
523 + . PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
524 + . PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
525 + . PREVIEW: remote: remove support for migrating ancient remotes
526 + . PREVIEW: t5516: stop testing .git/branches/ functionality
527 + . PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
528 + . Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
529 + . remote: warn loud and clear when .git/remotes/ is *still* used
530 + . remote: warn loud and clear when .git/branches/ is *still* used
531 + . Documentation: really deprecate .git/remotes/ and .git/branches/
532 + . git-parse-remote: fix highly misleading man page
533
534 Stop reading from .git/remotes/ and .git/branches/, two old ways
535 that we have been supporting to configure short-hands for fetching
536 from remote repositories.
537
538 + Will discard.
539 + The procedure of removing an old and unused feature is correctly
540 + followed by this series, but it is far from clear that the feature
541 + this attempts to remove is unused or useless.
542 +
543
442 -* ab/grep-preparatory-cleanup (2017-05-15) 29 commits
544 +* ab/grep-preparatory-cleanup (2017-05-21) 30 commits
545 - grep: assert that threading is enabled when calling grep_{lock,unlock}
546 - grep: given --threads with NO_PTHREADS=YesPlease, warn
547 - pack-objects: fix buggy warning about threads
@@ -449,11 +551,11 @@ of the repositories listed at
551 - grep: change internal *pcre* variable & function names to be *pcre1*
552 - grep: change the internal PCRE macro names to be PCRE1
553 - grep: factor test for \0 in grep patterns into a function
452 - - grep: remove redundant `regflags &= ~REG_EXTENDED` assignments
453 - - grep: remove redundant regflags assignment under PCRE
554 + - grep: remove redundant regflags assignments
555 - grep: catch a missing enum in switch statement
455 - - perf: add a performance comparison of fixed-string grep
456 - - perf: add a performance comparison test of grep -G, -E and -P
556 + - perf: add a comparison test of log --grep regex engines
557 + - perf: add a comparison test of grep regex engines with -F
558 + - perf: add a comparison test of grep regex engines
559 - perf: emit progress output when unpacking & building
560 - perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
561 - grep: add tests to fix blind spots with \0 patterns
@@ -465,6 +567,7 @@ of the repositories listed at
567 - grep: change non-ASCII -i test to stop using --debug
568 - grep: add a test for backreferences in PCRE patterns
569 - grep: add a test asserting that --perl-regexp dies when !PCRE
570 + - log: make --regexp-ignore-case work with --perl-regexp
571 - log: add exhaustive tests for pattern style options & config
572 - test-lib: rename the LIBPCRE prerequisite to PCRE
573 - grep & rev-list doc: stop promising libpcre for --perl-regexp
@@ -473,30 +576,29 @@ of the repositories listed at
576 The internal implementation of "git grep" has seen some clean-up.
577
578
476 -* ab/compat-regex-update (2017-05-12) 3 commits
477 - - DONTMERGE compat/regex: make it compile with -Werror=int-to-pointer-cast
478 - - compat/regex: update the gawk regex engine from upstream
479 - - compat/regex: add a README with a maintenance guide
480 -
481 - Update compat/regex we borrowed from gawk. It seems that some
482 - customizations we made to the older one were dropped by mistake.
483 -
484 - Will discard.
485 - cf. <CACBZZX4UUwzRQmyH8joYaqHnuVTjVtGBHp+iZKcnAnwoM_ZJhg@mail.gmail.com>
486 -
487 -
579 * jt/push-options-doc (2017-05-10) 2 commits
489 - - receive-pack: verify push options in cert
490 - - docs: correct receive.advertisePushOptions default
580 + (merged to 'next' on 2017-05-20 at ca7f344111)
581 + + receive-pack: verify push options in cert
582 + + docs: correct receive.advertisePushOptions default
583
584 The receive-pack program now makes sure that the push certificate
585 records the same set of push options used for pushing.
586
495 - Will merge to 'next'.
587 + Will merge to 'master'.
588
589
498 -* dt/unpack-save-untracked-cache-extension (2017-05-09) 1 commit
499 - - DONTMERGE: unpack-trees: preserve index extensions
590 +* dt/unpack-save-untracked-cache-extension (2017-05-20) 1 commit
591 + - unpack-trees: preserve index extensions
592 +
593 + When "git checkout", "git merge", etc. manipulates the in-core
594 + index, various pieces of information in the index extensions are
595 + discarded from the original state, as it is usually not the case
596 + that they are kept up-to-date and in-sync with the operation on the
597 + main index. The untracked cache extension is copied across these
598 + operations now, which would speed up "git status" (as long as the
599 + cache is properly invalidated).
600 +
601 + Will merge to 'next'.
602
603
604 * sg/clone-refspec-from-command-line-config (2017-05-16) 4 commits
@@ -512,14 +614,15 @@ of the repositories listed at
614
615
616 * sb/checkout-recurse-submodules (2017-05-04) 3 commits
515 - - submodule: properly recurse for read-tree and checkout
516 - - submodule: avoid auto-discovery in new working tree manipulator code
517 - - submodule_move_head: reuse child_process structure for futher commands
617 + (merged to 'next' on 2017-05-20 at f972b2069f)
618 + + submodule: properly recurse for read-tree and checkout
619 + + submodule: avoid auto-discovery in new working tree manipulator code
620 + + submodule_move_head: reuse child_process structure for futher commands
621
622 "git checkout --recurse-submodules" did not quite work with a
623 submodule that itself has submodules.
624
522 - Will merge to 'next'.
625 + Will merge to 'master'.
626
627
628 * ja/do-not-ask-needless-questions (2017-05-12) 3 commits
@@ -535,8 +638,9 @@ of the repositories listed at
638
639
640 * ab/doc-replace-gmane-links (2017-05-09) 2 commits
538 - - doc: replace more gmane links
539 - - doc: replace a couple of broken gmane links
641 + (merged to 'next' on 2017-05-20 at 2c4f96560c)
642 + + doc: replace more gmane links
643 + + doc: replace a couple of broken gmane links
644
645 The Web interface to gmane news archive is long gone, even though
646 the articles are still accessible via NTTP. Replace the links with
@@ -544,53 +648,57 @@ of the repositories listed at
648 based on the actual message-id, it is likely that it will be easier
649 to migrate away from it if/when necessary.
650
547 - Will merge to 'next'.
651 + Will merge to 'master'.
652
653
654 * ab/fix-poison-tests (2017-05-11) 3 commits
551 - - travis-ci: add job to run tests with GETTEXT_POISON
552 - - travis-ci: setup "prove cache" in "script" step
553 - - tests: fix tests broken under GETTEXT_POISON=YesPlease
655 + (merged to 'next' on 2017-05-20 at 5b13ba86bd)
656 + + travis-ci: add job to run tests with GETTEXT_POISON
657 + + travis-ci: setup "prove cache" in "script" step
658 + + tests: fix tests broken under GETTEXT_POISON=YesPlease
659
660 Update tests to pass under GETTEXT_POISON (a mechanism to ensure
661 that output strings that should not be translated are not
662 translated by mistake), and tell TravisCI to run them.
663
559 - Will merge to 'next'.
664 + Will merge to 'master'.
665
666
667 * bw/dir-c-stops-relying-on-the-index (2017-05-06) 14 commits
563 - - dir: convert fill_directory to take an index
564 - - dir: convert read_directory to take an index
565 - - dir: convert read_directory_recursive to take an index
566 - - dir: convert open_cached_dir to take an index
567 - - dir: convert is_excluded to take an index
568 - - dir: convert prep_exclude to take an index
569 - - dir: convert add_excludes to take an index
570 - - dir: convert is_excluded_from_list to take an index
571 - - dir: convert last_exclude_matching_from_list to take an index
572 - - dir: convert dir_add* to take an index
573 - - dir: convert get_dtype to take index
574 - - dir: convert directory_exists_in_index to take index
575 - - dir: convert read_skip_worktree_file_from_index to take an index
576 - - dir: stop using the index compatibility macros
668 + (merged to 'next' on 2017-05-20 at 1f1b764ec8)
669 + + dir: convert fill_directory to take an index
670 + + dir: convert read_directory to take an index
671 + + dir: convert read_directory_recursive to take an index
672 + + dir: convert open_cached_dir to take an index
673 + + dir: convert is_excluded to take an index
674 + + dir: convert prep_exclude to take an index
675 + + dir: convert add_excludes to take an index
676 + + dir: convert is_excluded_from_list to take an index
677 + + dir: convert last_exclude_matching_from_list to take an index
678 + + dir: convert dir_add* to take an index
679 + + dir: convert get_dtype to take index
680 + + dir: convert directory_exists_in_index to take index
681 + + dir: convert read_skip_worktree_file_from_index to take an index
682 + + dir: stop using the index compatibility macros
683
684 API update.
685
580 - Will merge to 'next'.
686 + Will merge to 'master'.
687
688
689 * jk/diff-submodule-diff-inline (2017-05-08) 1 commit
584 - - diff: recurse into nested submodules for inline diff
690 + (merged to 'next' on 2017-05-20 at da7eb2626a)
691 + + diff: recurse into nested submodules for inline diff
692
693 "git diff --submodule=diff" now recurses into nested submodules.
694
588 - Will merge to 'next'.
695 + Will merge to 'master'.
696
697
698 * jk/disable-pack-reuse-when-broken (2017-05-09) 2 commits
592 - - t5310: fix "; do" style
593 - - pack-objects: disable pack reuse for object-selection options
699 + (merged to 'next' on 2017-05-20 at 684e921273)
700 + + t5310: fix "; do" style
701 + + pack-objects: disable pack reuse for object-selection options
702
703 "pack-objects" can stream a slice of an existing packfile out when
704 the pack bitmap can tell that the reachable objects are all needed
@@ -598,16 +706,17 @@ of the repositories listed at
706 strategy however would not work well when "--local" and other
707 options are in use, and need to be disabled.
708
601 - Will merge to 'next'.
709 + Will merge to 'master'.
710
711
712 * js/eol-on-ourselves (2017-05-10) 6 commits
605 - - t4051: mark supporting files as requiring LF-only line endings
606 - - Fix the remaining tests that failed with core.autocrlf=true
607 - - t3901: move supporting files into t/t3901/
608 - - completion: mark bash script as LF-only
609 - - git-new-workdir: mark script as LF-only
610 - - Fix build with core.autocrlf=true
713 + (merged to 'next' on 2017-05-20 at 8023c277d2)
714 + + t4051: mark supporting files as requiring LF-only line endings
715 + + Fix the remaining tests that failed with core.autocrlf=true
716 + + t3901: move supporting files into t/t3901/
717 + + completion: mark bash script as LF-only
718 + + git-new-workdir: mark script as LF-only
719 + + Fix build with core.autocrlf=true
720
721 Make sure our tests would pass when the sources are checked out
722 with "platform native" line ending convention by default on
@@ -615,69 +724,73 @@ of the repositories listed at
724 themselves that are meant to be run with /bin/sh, ought to be
725 checked out with eol=LF even on Windows.
726
618 - Will merge to 'next'.
727 + Will merge to 'master'.
728
729
730 * nd/split-index-unshare (2017-05-08) 2 commits
622 - - p3400: add perf tests for rebasing many changes
623 - - split-index: add and use unshare_split_index()
731 + (merged to 'next' on 2017-05-20 at 9048cdc2ce)
732 + + p3400: add perf tests for rebasing many changes
733 + + split-index: add and use unshare_split_index()
734
735 Plug some leaks and updates internal API used to implement the
736 split index feature to make it easier to avoid such a leak in the
737 future.
738
629 - Will merge to 'next'.
739 + Will merge to 'master'.
740
741
742 * rs/checkout-am-fix-unborn (2017-05-08) 2 commits
633 - - am: check return value of resolve_refdup before using hash
634 - - checkout: check return value of resolve_refdup before using hash
743 + (merged to 'next' on 2017-05-20 at d4f1ee3ed7)
744 + + am: check return value of resolve_refdup before using hash
745 + + checkout: check return value of resolve_refdup before using hash
746
747 A few codepaths in "checkout" and "am" working on an unborn branch
748 tried to access an uninitialized piece of memory.
749
639 - Will merge to 'next'.
750 + Will merge to 'master'.
751
752
753 * bw/submodule-with-bs-path (2017-05-01) 1 commit
643 - - t7400: add !CYGWIN prerequisite to 'add with \\ in path'
754 + (merged to 'next' on 2017-05-20 at b740f784cb)
755 + + t7400: add !CYGWIN prerequisite to 'add with \\ in path'
756
757 A hotfix to a topic that is already in v2.13.
758
647 - Will merge to 'next'.
759 + Will merge to 'master'.
760
761
762 * js/plug-leaks (2017-05-09) 26 commits
651 - - checkout: fix memory leak
652 - - submodule_uses_worktrees(): plug memory leak
653 - - show_worktree(): plug memory leak
654 - - name-rev: avoid leaking memory in the `deref` case
655 - - remote: plug memory leak in match_explicit()
656 - - add_reflog_for_walk: avoid memory leak
657 - - shallow: avoid memory leak
658 - - line-log: avoid memory leak
659 - - receive-pack: plug memory leak in update()
660 - - fast-export: avoid leaking memory in handle_tag()
661 - - mktree: plug memory leaks reported by Coverity
662 - - pack-redundant: plug memory leak
663 - - setup_discovered_git_dir(): plug memory leak
664 - - setup_bare_git_dir(): help static analysis
665 - - split_commit_in_progress(): simplify & fix memory leak
666 - - checkout: fix memory leak
667 - - cat-file: fix memory leak
668 - - mailinfo & mailsplit: check for EOF while parsing
669 - - status: close file descriptor after reading git-rebase-todo
670 - - difftool: address a couple of resource/memory leaks
671 - - get_mail_commit_oid(): avoid resource leak
672 - - git_config_rename_section_in_file(): avoid resource leak
673 - - add_commit_patch_id(): avoid allocating memory unnecessarily
674 - - winansi: avoid buffer overrun
675 - - winansi: avoid use of uninitialized value
676 - - mingw: avoid memory leak when splitting PATH
763 + (merged to 'next' on 2017-05-20 at fb136ea2dc)
764 + + checkout: fix memory leak
765 + + submodule_uses_worktrees(): plug memory leak
766 + + show_worktree(): plug memory leak
767 + + name-rev: avoid leaking memory in the `deref` case
768 + + remote: plug memory leak in match_explicit()
769 + + add_reflog_for_walk: avoid memory leak
770 + + shallow: avoid memory leak
771 + + line-log: avoid memory leak
772 + + receive-pack: plug memory leak in update()
773 + + fast-export: avoid leaking memory in handle_tag()
774 + + mktree: plug memory leaks reported by Coverity
775 + + pack-redundant: plug memory leak
776 + + setup_discovered_git_dir(): plug memory leak
777 + + setup_bare_git_dir(): help static analysis
778 + + split_commit_in_progress(): simplify & fix memory leak
779 + + checkout: fix memory leak
780 + + cat-file: fix memory leak
781 + + mailinfo & mailsplit: check for EOF while parsing
782 + + status: close file descriptor after reading git-rebase-todo
783 + + difftool: address a couple of resource/memory leaks
784 + + get_mail_commit_oid(): avoid resource leak
785 + + git_config_rename_section_in_file(): avoid resource leak
786 + + add_commit_patch_id(): avoid allocating memory unnecessarily
787 + + winansi: avoid buffer overrun
788 + + winansi: avoid use of uninitialized value
789 + + mingw: avoid memory leak when splitting PATH
790
791 Fix memory leaks pointed out by Coverity (and people).
792
680 - Will merge to 'next'.
793 + Will merge to 'master'.
794
795
796 * jh/close-index-before-stat (2017-04-28) 1 commit
@@ -695,10 +808,11 @@ of the repositories listed at
808
809
810 * ls/travis-relays-for-windows-ci (2017-05-04) 2 commits
698 - - travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503
699 - - travis-ci: handle Git for Windows CI status "failed" explicitly
811 + (merged to 'next' on 2017-05-20 at 47f34b78e2)
812 + + travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503
813 + + travis-ci: handle Git for Windows CI status "failed" explicitly
814
701 - Will merge to 'next'.
815 + Will merge to 'master'.
816
817
818 * mb/diff-default-to-indent-heuristics (2017-05-09) 4 commits
@@ -714,18 +828,20 @@ of the repositories listed at
828
829
830 * tb/dedup-crlf-tests (2017-05-10) 1 commit
717 - - t0027: tests are not expensive; remove t0025
831 + (merged to 'next' on 2017-05-20 at 0a7ffff154)
832 + + t0027: tests are not expensive; remove t0025
833
719 - Will merge to 'next'.
834 + Will merge to 'master'.
835
836
837 * jc/repack-threads (2017-04-27) 1 commit
723 - - repack: accept --threads=<n> and pass it down to pack-objects
838 + (merged to 'next' on 2017-05-20 at c1fd54a2a4)
839 + + repack: accept --threads=<n> and pass it down to pack-objects
840
841 "git repack" learned to accept the --threads=<n> option and pass it
842 to pack-objects.
843
728 - Will merge to 'next'.
844 + Will merge to 'master'.
845
846
847 * nd/fopen-errors (2017-05-09) 23 commits
@@ -759,63 +875,64 @@ of the repositories listed at
875
876
877 * bc/object-id (2017-05-08) 53 commits
762 - - object: convert parse_object* to take struct object_id
763 - - tree: convert parse_tree_indirect to struct object_id
764 - - sequencer: convert do_recursive_merge to struct object_id
765 - - diff-lib: convert do_diff_cache to struct object_id
766 - - builtin/ls-tree: convert to struct object_id
767 - - merge: convert checkout_fast_forward to struct object_id
768 - - sequencer: convert fast_forward_to to struct object_id
769 - - builtin/ls-files: convert overlay_tree_on_cache to object_id
770 - - builtin/read-tree: convert to struct object_id
771 - - sha1_name: convert internals of peel_onion to object_id
772 - - upload-pack: convert remaining parse_object callers to object_id
773 - - revision: convert remaining parse_object callers to object_id
774 - - revision: rename add_pending_sha1 to add_pending_oid
775 - - http-push: convert process_ls_object and descendants to object_id
776 - - refs/files-backend: convert many internals to struct object_id
777 - - refs: convert struct ref_update to use struct object_id
778 - - ref-filter: convert some static functions to struct object_id
779 - - Convert struct ref_array_item to struct object_id
780 - - Convert the verify_pack callback to struct object_id
781 - - Convert lookup_tag to struct object_id
782 - - log-tree: convert to struct object_id
783 - - Convert lookup_tree to struct object_id
784 - - builtin/reflog: convert tree_is_complete to take struct object_id
785 - - tree: convert read_tree_1 to use struct object_id internally
786 - - Convert lookup_blob to struct object_id
787 - - Convert remaining callers of lookup_blob to object_id
788 - - builtin/unpack-objects: convert to struct object_id
789 - - pack: convert struct pack_idx_entry to struct object_id
790 - - Convert lookup_commit* to struct object_id
791 - - Convert remaining callers of lookup_commit_reference* to object_id
792 - - builtin/tag: convert to struct object_id
793 - - sequencer: convert some functions to struct object_id
794 - - shallow: convert shallow registration functions to object_id
795 - - revision: convert prepare_show_merge to struct object_id
796 - - notes-utils: convert internals to struct object_id
797 - - http-push: convert some static functions to struct object_id
798 - - tag: convert parse_tag_buffer to struct object_id
799 - - builtin/verify-commit: convert to struct object_id
800 - - reflog_expire: convert to struct object_id
801 - - parse-options-cb: convert to struct object_id
802 - - notes-cache: convert to struct object_id
803 - - submodule: convert merge_submodule to use struct object_id
804 - - fast-import: convert to struct object_id
805 - - fast-import: convert internal structs to struct object_id
806 - - builtin/rev-parse: convert to struct object_id
807 - - builtin/blame: convert static function to struct object_id
808 - - branch: convert to struct object_id
809 - - bundle: convert to struct object_id
810 - - builtin/prune: convert to struct object_id
811 - - builtin/name-rev: convert to struct object_id
812 - - Convert struct cache_tree to use struct object_id
813 - - Clean up outstanding object_id transforms.
814 - - fetch-pack: convert to struct object_id
878 + (merged to 'next' on 2017-05-20 at e7372733fb)
879 + + object: convert parse_object* to take struct object_id
880 + + tree: convert parse_tree_indirect to struct object_id
881 + + sequencer: convert do_recursive_merge to struct object_id
882 + + diff-lib: convert do_diff_cache to struct object_id
883 + + builtin/ls-tree: convert to struct object_id
884 + + merge: convert checkout_fast_forward to struct object_id
885 + + sequencer: convert fast_forward_to to struct object_id
886 + + builtin/ls-files: convert overlay_tree_on_cache to object_id
887 + + builtin/read-tree: convert to struct object_id
888 + + sha1_name: convert internals of peel_onion to object_id
889 + + upload-pack: convert remaining parse_object callers to object_id
890 + + revision: convert remaining parse_object callers to object_id
891 + + revision: rename add_pending_sha1 to add_pending_oid
892 + + http-push: convert process_ls_object and descendants to object_id
893 + + refs/files-backend: convert many internals to struct object_id
894 + + refs: convert struct ref_update to use struct object_id
895 + + ref-filter: convert some static functions to struct object_id
896 + + Convert struct ref_array_item to struct object_id
897 + + Convert the verify_pack callback to struct object_id
898 + + Convert lookup_tag to struct object_id
899 + + log-tree: convert to struct object_id
900 + + Convert lookup_tree to struct object_id
901 + + builtin/reflog: convert tree_is_complete to take struct object_id
902 + + tree: convert read_tree_1 to use struct object_id internally
903 + + Convert lookup_blob to struct object_id
904 + + Convert remaining callers of lookup_blob to object_id
905 + + builtin/unpack-objects: convert to struct object_id
906 + + pack: convert struct pack_idx_entry to struct object_id
907 + + Convert lookup_commit* to struct object_id
908 + + Convert remaining callers of lookup_commit_reference* to object_id
909 + + builtin/tag: convert to struct object_id
910 + + sequencer: convert some functions to struct object_id
911 + + shallow: convert shallow registration functions to object_id
912 + + revision: convert prepare_show_merge to struct object_id
913 + + notes-utils: convert internals to struct object_id
914 + + http-push: convert some static functions to struct object_id
915 + + tag: convert parse_tag_buffer to struct object_id
916 + + builtin/verify-commit: convert to struct object_id
917 + + reflog_expire: convert to struct object_id
918 + + parse-options-cb: convert to struct object_id
919 + + notes-cache: convert to struct object_id
920 + + submodule: convert merge_submodule to use struct object_id
921 + + fast-import: convert to struct object_id
922 + + fast-import: convert internal structs to struct object_id
923 + + builtin/rev-parse: convert to struct object_id
924 + + builtin/blame: convert static function to struct object_id
925 + + branch: convert to struct object_id
926 + + bundle: convert to struct object_id
927 + + builtin/prune: convert to struct object_id
928 + + builtin/name-rev: convert to struct object_id
929 + + Convert struct cache_tree to use struct object_id
930 + + Clean up outstanding object_id transforms.
931 + + fetch-pack: convert to struct object_id
932
933 Conversion from uchar[20] to struct object_id continues.
934
818 - Will merge to 'next'.
935 + Will merge to 'master'.
936
937
938 * jc/checkout-working-tree-only (2017-04-27) 1 commit
@@ -870,14 +987,15 @@ of the repositories listed at
987
988
989 * sb/reset-recurse-submodules (2017-04-23) 4 commits
873 - - builtin/reset: add --recurse-submodules switch
874 - - submodule.c: submodule_move_head works with broken submodules
875 - - submodule.c: uninitialized submodules are ignored in recursive commands
876 - - entry.c: submodule recursing: respect force flag correctly
990 + (merged to 'next' on 2017-05-20 at 8adafdf1be)
991 + + builtin/reset: add --recurse-submodules switch
992 + + submodule.c: submodule_move_head works with broken submodules
993 + + submodule.c: uninitialized submodules are ignored in recursive commands
994 + + entry.c: submodule recursing: respect force flag correctly
995
996 "git reset" learned "--recurse-submodules" option.
997
880 - Will merge to 'next'.
998 + Will merge to 'master'.
999
1000
1001 * bp/sub-process-convert-filter (2017-05-15) 11 commits
@@ -923,161 +1041,19 @@ of the repositories listed at
1041 Has been waiting for nd/worktree-kill-parse-ref to settle.
1042 cf. <CACsJy8ADCVBiLoPg_Tz0L6CMdh_eFmK4RYzfQ-PmUgBK7w9e=A@mail.gmail.com>
1043
1044 +
1045 --------------------------------------------------
927 -[Discarded]
928 -
929 -* ja/doc-l10n (2017-03-20) 3 commits
930 - . SQUASH???
931 - . l10n: add git-add.txt to localized man pages
932 - . l10n: introduce framework for localizing man pages
933 -
934 - A proposal to use po4a to localize our manual pages.
935 -
936 -
937 -* ab/grep-pcre-v2 (2017-05-02) 19 commits
938 - . Makefile & configure: make PCRE v2 the default PCRE implementation
939 - . grep: remove support for concurrent use of both PCRE v1 & v2
940 - . grep: add support for PCRE v2
941 - . grep: add support for the PCRE v1 JIT API
942 - . perf: add a performance comparison test of grep -E and -P
943 - . grep: change the internal PCRE code & header names to be PCRE1
944 - . grep: change the internal PCRE macro names to be PCRE1
945 - . test-lib: rename the LIBPCRE prerequisite to PCRE
946 - . grep: make grep.patternType=[pcre|pcre1] a synonym for "perl"
947 - . grep & rev-list doc: stop promising libpcre for --perl-regexp
948 - . log: add -P as a synonym for --perl-regexp
949 - . log: add exhaustive tests for pattern style options & config
950 - . grep: add a test for backreferences in PCRE patterns
951 - . Makefile & configure: reword outdated comment about PCRE
952 - . grep: remove redundant `regflags &= ~REG_EXTENDED` assignments
953 - . grep: remove redundant regflags assignment under PCRE
954 - . grep: submodule-related case statements should die if new fields are added
955 - . grep: add tests for grep pattern types being passed to submodules
956 - . grep: amend submodule recursion test in preparation for rx engine testing
957 -
958 - PCRE2, which has an API different from and incompatible with PCRE,
959 - can now be chosen to support "grep -P -e '<pattern>'" and friends.
960 -
961 - Will be rerolled.
962 -
963 -
964 -* ab/grep-threading-cleanup (2017-04-16) 8 commits
965 - . grep: given --threads with NO_PTHREADS=YesPlease, warn
966 - . pack-objects: fix buggy warning about threads under NO_PTHREADS=YesPlease
967 - . pack-object & index-pack: add test for --threads warning under NO_PTHREADS
968 - . tests: add a PTHREADS prerequisite
969 - . grep: skip pthreads overhead when using one thread
970 - . grep: don't redundantly compile throwaway patterns under threading
971 - . grep: add tests for --threads=N and grep.threads
972 - . grep: assert that threading is enabled when calling grep_{lock,unlock}
973 -
974 - Will be rerolled.
975 -
976 -
977 -* pb/bisect (2017-02-18) 28 commits
978 - . fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C
979 - . bisect--helper: remove the dequote in bisect_start()
980 - . bisect--helper: retire `--bisect-auto-next` subcommand
981 - . bisect--helper: retire `--bisect-autostart` subcommand
982 - . bisect--helper: retire `--bisect-write` subcommand
983 - . bisect--helper: `bisect_replay` shell function in C
984 - . bisect--helper: `bisect_log` shell function in C
985 - . bisect--helper: retire `--write-terms` subcommand
986 - . bisect--helper: retire `--check-expected-revs` subcommand
987 - . bisect--helper: `bisect_state` & `bisect_head` shell function in C
988 - . bisect--helper: `bisect_autostart` shell function in C
989 - . bisect--helper: retire `--next-all` subcommand
990 - . bisect--helper: retire `--bisect-clean-state` subcommand
991 - . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
992 - . t6030: no cleanup with bad merge base
993 - . bisect--helper: `bisect_start` shell function partially in C
994 - . bisect--helper: `get_terms` & `bisect_terms` shell function in C
995 - . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
996 - . bisect--helper: `check_and_set_terms` shell function in C
997 - . bisect--helper: `bisect_write` shell function in C
998 - . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
999 - . bisect--helper: `bisect_reset` shell function in C
1000 - . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
1001 - . t6030: explicitly test for bisection cleanup
1002 - . bisect--helper: `bisect_clean_state` shell function in C
1003 - . bisect--helper: `write_terms` shell function in C
1004 - . bisect: rewrite `check_term_format` shell function in C
1005 - . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
1006 -
1007 - Move more parts of "git bisect" to C.
1008 -
1009 - It has been in the stalled state for too long.
1010 - cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
1011 - cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
1012 - cf. <CAFZEwPNUXcNY9Qdz=_B7q2kQuaecPzJtTMGdv8YMUPEz2vnp8A@mail.gmail.com>
1013 -
1014 -
1015 -* jk/parse-options-no-no-no (2017-04-25) 2 commits
1016 - . SQUASH???
1017 - . parse-options: disallow double-negations of options starting with no-
1018 -
1019 - Command line options that begin with "--no-" (e.g. "--no-checkout"
1020 - option of "git clone") can be negated by removing "--no-"; we
1021 - historically also allowed prefixing an extra "no" to the option
1022 - (e.g. "--no-no-checkout"), which made the command line look ugly
1023 - and unusual. This proposes to forbid it.
1024 -
1025 - While I agree there is no need to support "--no-no-checkout", this
1026 - looks more like "if it looks ugly and unusual, you do not have to
1027 - use it".
1028 -
1029 -
1030 -* jc/bundle (2016-03-03) 6 commits
1031 - . index-pack: --clone-bundle option
1032 - . Merge branch 'jc/index-pack' into jc/bundle
1033 - . bundle v3: the beginning
1034 - . bundle: keep a copy of bundle file name in the in-core bundle header
1035 - . bundle: plug resource leak
1036 - . bundle doc: 'verify' is not about verifying the bundle
1037 -
1038 - The beginning of "split bundle", which could be one of the
1039 - ingredients to allow "git clone" traffic off of the core server
1040 - network to CDN.
1041 -
1042 - This was surrected from a "to be discarded" pile, as from time to
1043 - time people wonder about resumable clone that can be primed without
1044 - bothering Git servers with dynamic packfile creation, and some
1045 - people seem to think that the topic could serve as a useful
1046 - building block for that goal. But nothing seem to have happend.
1047 -
1048 -
1049 -* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
1050 - . grep: use '/' delimiter for paths
1051 - . grep: only add delimiter if there isn't one already
1052 -
1053 - "git grep", when fed a tree-ish as an input, shows each hit
1054 - prefixed with "<tree-ish>:<path>:<lineno>:". As <tree-ish> is
1055 - almost always either a commit or a tag that points at a commit, the
1056 - early part of the output "<tree-ish>:<path>" can be used as the
1057 - name of the blob and given to "git show". When <tree-ish> is a
1058 - tree given in the extended SHA-1 syntax (e.g. "<commit>:", or
1059 - "<commit>:<dir>"), however, this results in a string that does not
1060 - name a blob (e.g. "<commit>::<path>" or "<commit>:<dir>:<path>").
1061 - "git grep" has been taught to be a bit more intelligent about these
1062 - cases and omit a colon (in the former case) or use slash (in the
1063 - latter case) to produce "<commit>:<path>" and
1064 - "<commit>:<dir>/<path>" that can be used as the name of a blob.
1065 -
1066 - Nobody seems to be championing this change, after asked in all
1067 - recent "What's cooking" report:
1068 - "Is this good enough with known limitations?"
1069 -
1070 -
1071 -* jc/diff-b-m (2015-02-23) 5 commits
1072 - . WIPWIP
1073 - . WIP: diff-b-m
1074 - . diffcore-rename: allow easier debugging
1075 - . diffcore-rename.c: add locate_rename_src()
1076 - . diffcore-break: allow debugging
1077 -
1078 - "git diff -B -M" produced incorrect patch when the postimage of a
1079 - completely rewritten file is similar to the preimage of a removed
1080 - file; such a resulting file must not be expressed as a rename from
1081 - other place.
1082 -
1083 - The fix in this patch is broken, unfortunately.
1046 +[Discard]
1047 +
1048 +* ab/compat-regex-update (2017-05-12) 3 commits
1049 + . DONTMERGE compat/regex: make it compile with -Werror=int-to-pointer-cast
1050 + . compat/regex: update the gawk regex engine from upstream
1051 + . compat/regex: add a README with a maintenance guide
1052 +
1053 + Update compat/regex we borrowed from gawk. It seems that some
1054 + customizations we made to the older one were dropped by mistake.
1055 +
1056 + Will discard.
1057 + cf. <CACBZZX4UUwzRQmyH8joYaqHnuVTjVtGBHp+iZKcnAnwoM_ZJhg@mail.gmail.com>
1058 +
1059 +