What's cooking (2017/06 #01)

Junio C Hamano committed Jun 1, 2017 at 16:42 UTC f7a802b2fd6fe0751fef9e1e3a334eb7a6803e17
1 file changed +379 -654
whats-cooking.txt
+379 -654
@@ -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, #08; Mon, 29)
4 -X-master-at: e83352ef23cca2701953ed3c915f1db49b255a7d
5 -X-next-at: 88ad292c901b5a8436ade109286d30c4942be41f
3 +Subject: What's cooking in git.git (Jun 2017, #01; Thu, 1)
4 +X-master-at: 0339965c70d68fd3831c9a5306443c869de3f6a8
5 +X-next-at: b5e676d57ee80a379101c2e968b23f2342b77f7a
6
7 -What's cooking in git.git (May 2017, #08; Mon, 29)
7 +What's cooking in git.git (Jun 2017, #01; Thu, 1)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -27,408 +27,296 @@ of the repositories listed at
27 --------------------------------------------------
28 [Graduated to "master"]
29
30 -* bc/object-id (2017-05-08) 53 commits
31 - (merged to 'next' on 2017-05-20 at e7372733fb)
32 - + object: convert parse_object* to take struct object_id
33 - + tree: convert parse_tree_indirect to struct object_id
34 - + sequencer: convert do_recursive_merge to struct object_id
35 - + diff-lib: convert do_diff_cache to struct object_id
36 - + builtin/ls-tree: convert to struct object_id
37 - + merge: convert checkout_fast_forward to struct object_id
38 - + sequencer: convert fast_forward_to to struct object_id
39 - + builtin/ls-files: convert overlay_tree_on_cache to object_id
40 - + builtin/read-tree: convert to struct object_id
41 - + sha1_name: convert internals of peel_onion to object_id
42 - + upload-pack: convert remaining parse_object callers to object_id
43 - + revision: convert remaining parse_object callers to object_id
44 - + revision: rename add_pending_sha1 to add_pending_oid
45 - + http-push: convert process_ls_object and descendants to object_id
46 - + refs/files-backend: convert many internals to struct object_id
47 - + refs: convert struct ref_update to use struct object_id
48 - + ref-filter: convert some static functions to struct object_id
49 - + Convert struct ref_array_item to struct object_id
50 - + Convert the verify_pack callback to struct object_id
51 - + Convert lookup_tag to struct object_id
52 - + log-tree: convert to struct object_id
53 - + Convert lookup_tree to struct object_id
54 - + builtin/reflog: convert tree_is_complete to take struct object_id
55 - + tree: convert read_tree_1 to use struct object_id internally
56 - + Convert lookup_blob to struct object_id
57 - + Convert remaining callers of lookup_blob to object_id
58 - + builtin/unpack-objects: convert to struct object_id
59 - + pack: convert struct pack_idx_entry to struct object_id
60 - + Convert lookup_commit* to struct object_id
61 - + Convert remaining callers of lookup_commit_reference* to object_id
62 - + builtin/tag: convert to struct object_id
63 - + sequencer: convert some functions to struct object_id
64 - + shallow: convert shallow registration functions to object_id
65 - + revision: convert prepare_show_merge to struct object_id
66 - + notes-utils: convert internals to struct object_id
67 - + http-push: convert some static functions to struct object_id
68 - + tag: convert parse_tag_buffer to struct object_id
69 - + builtin/verify-commit: convert to struct object_id
70 - + reflog_expire: convert to struct object_id
71 - + parse-options-cb: convert to struct object_id
72 - + notes-cache: convert to struct object_id
73 - + submodule: convert merge_submodule to use struct object_id
74 - + fast-import: convert to struct object_id
75 - + fast-import: convert internal structs to struct object_id
76 - + builtin/rev-parse: convert to struct object_id
77 - + builtin/blame: convert static function to struct object_id
78 - + branch: convert to struct object_id
79 - + bundle: convert to struct object_id
80 - + builtin/prune: convert to struct object_id
81 - + builtin/name-rev: convert to struct object_id
82 - + Convert struct cache_tree to use struct object_id
83 - + Clean up outstanding object_id transforms.
84 - + fetch-pack: convert to struct object_id
85 - (this branch is used by mh/packed-ref-store-prep.)
86 -
87 - Conversion from uchar[20] to struct object_id continues.
88 -
89 -
90 -* bm/interpret-trailers-cut-line-is-eom (2017-05-18) 1 commit
91 - (merged to 'next' on 2017-05-23 at 3e5ff08517)
92 - + interpret-trailers: honor the cut line
93 -
94 - "git interpret-trailers", when used as GIT_EDITOR for "git commit
95 - -v", looked for and appended to a trailer block at the very end,
96 - i.e. at the end of the "diff" output. The command has been
97 - corrected to pay attention to the cut-mark line "commit -v" adds to
98 - the buffer---the real trailer block should appear just before it.
99 -
100 -
101 -* bw/dir-c-stops-relying-on-the-index (2017-05-06) 14 commits
102 - (merged to 'next' on 2017-05-20 at 1f1b764ec8)
103 - + dir: convert fill_directory to take an index
104 - + dir: convert read_directory to take an index
105 - + dir: convert read_directory_recursive to take an index
106 - + dir: convert open_cached_dir to take an index
107 - + dir: convert is_excluded to take an index
108 - + dir: convert prep_exclude to take an index
109 - + dir: convert add_excludes to take an index
110 - + dir: convert is_excluded_from_list to take an index
111 - + dir: convert last_exclude_matching_from_list to take an index
112 - + dir: convert dir_add* to take an index
113 - + dir: convert get_dtype to take index
114 - + dir: convert directory_exists_in_index to take index
115 - + dir: convert read_skip_worktree_file_from_index to take an index
116 - + dir: stop using the index compatibility macros
117 -
118 - API update.
119 -
120 -
121 -* ja/do-not-ask-needless-questions (2017-05-12) 3 commits
122 - (merged to 'next' on 2017-05-23 at 6b373cd892)
123 - + git-filter-branch: be more direct in an error message
124 - + read-tree -m: make error message for merging 0 trees less smart aleck
125 - + usability: don't ask questions if no reply is required
126 -
127 - Git sometimes gives an advice in a rhetorical question that does
128 - not require an answer, which can confuse new users and non native
129 - speakers. Attempt to rephrase them.
130 -
131 -
132 -* jc/read-tree-empty-with-m (2017-05-10) 1 commit
133 - (merged to 'next' on 2017-05-20 at 7e86815364)
134 - + read-tree: "read-tree -m --empty" does not make sense
135 -
136 - "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
137 - --empty if you want to clear the index". With "-m", such a request
138 - will still fail anyway, as you'd need to name at least one tree-ish
139 - to be merged.
140 -
141 -
142 -* jc/repack-threads (2017-04-27) 1 commit
143 - (merged to 'next' on 2017-05-20 at c1fd54a2a4)
144 - + repack: accept --threads=<n> and pass it down to pack-objects
145 -
146 - "git repack" learned to accept the --threads=<n> option and pass it
147 - to pack-objects.
148 -
149 -
150 -* jk/alternate-ref-optim (2017-05-18) 1 commit
151 - (merged to 'next' on 2017-05-23 at 4b4b3ac463)
152 - + t5400: avoid concurrent writes into a trace file
153 -
154 - A test allowed both "git push" and "git receive-pack" on the other
155 - end write their traces into the same file. This is OK on platforms
156 - that allows atomically appending to a file opened with O_APPEND,
157 - but on other platforms led to a mangled output, causing
158 - intermittent test failures. This has been fixed by disabling
159 - traces from "receive-pack" in the test.
160 -
161 -
162 -* jk/bug-to-abort (2017-05-22) 4 commits
163 - (merged to 'next' on 2017-05-22 at 20371eebb6)
164 - + usage: add NORETURN to BUG() function definitions
165 - (merged to 'next' on 2017-05-20 at db65acc882)
166 - + config: complain about --local outside of a git repo
167 - + setup_git_env: convert die("BUG") to BUG()
168 - + usage.c: add BUG() function
169 -
170 - Introduce the BUG() macro to improve die("BUG: ...").
171 -
172 -
173 -* jk/diff-submodule-diff-inline (2017-05-08) 1 commit
174 - (merged to 'next' on 2017-05-20 at da7eb2626a)
175 - + diff: recurse into nested submodules for inline diff
176 -
177 - "git diff --submodule=diff" now recurses into nested submodules.
178 -
179 -
180 -* jk/disable-pack-reuse-when-broken (2017-05-09) 2 commits
181 - (merged to 'next' on 2017-05-20 at 684e921273)
182 - + t5310: fix "; do" style
183 - + pack-objects: disable pack reuse for object-selection options
184 -
185 - "pack-objects" can stream a slice of an existing packfile out when
186 - the pack bitmap can tell that the reachable objects are all needed
187 - in the output, without inspecting individual objects. This
188 - strategy however would not work well when "--local" and other
189 - options are in use, and need to be disabled.
190 -
191 -
192 -* jk/doc-config-include (2017-05-12) 4 commits
193 - (merged to 'next' on 2017-05-23 at 4f60843265)
194 - + docs/config: consistify include.path examples
195 - + docs/config: avoid the term "expand" for includes
196 - + docs/config: give a relative includeIf example
197 - + docs/config: clarify include/includeIf relationship
198 -
199 - Clarify documentation for include.path and includeIf.<condition>.path
200 - configuration variables.
201 -
202 -
203 -* jk/ignore-broken-tags-when-ignoring-missing-links (2017-05-20) 1 commit
204 - (merged to 'next' on 2017-05-23 at 977491e52a)
205 - + revision.c: ignore broken tags with ignore_missing_links
206 -
207 - Tag objects, which are not reachable from any ref, that point at
208 - missing objects were mishandled by "git gc" and friends (they
209 - should silently be ignored instead)
30 +* dk/send-email-avoid-net-smtp-ssl-when-able (2017-05-20) 1 commit
31 + (merged to 'next' on 2017-05-23 at fc59b8a1d4)
32 + + send-email: Net::SMTP::SSL is obsolete, use only when necessary
33
34 + "git send-email" now uses Net::SMTP::SSL, which is obsolete, only
35 + when needed. Recent versions of Net::SMTP can do TLS natively.
36
212 -* jk/update-links-in-docs (2017-05-15) 1 commit
213 - (merged to 'next' on 2017-05-23 at 5b2df9fdbe)
214 - + doc: use https links to Wikipedia to avoid http redirects
37 + This is somewhat broken; a fix will be merged to 'master' shortly.
38
216 - A few http:// links that are redirected to https:// in the
217 - documentation have been updated to https:// links.
39
40 +* ab/conditional-config-with-symlinks (2017-05-17) 1 commit
41 + (merged to 'next' on 2017-05-23 at 6162222c2e)
42 + + config: match both symlink & realpath versions in IncludeIf.gitdir:*
43
220 -* js/eol-on-ourselves (2017-05-10) 6 commits
221 - (merged to 'next' on 2017-05-20 at 8023c277d2)
222 - + t4051: mark supporting files as requiring LF-only line endings
223 - + Fix the remaining tests that failed with core.autocrlf=true
224 - + t3901: move supporting files into t/t3901/
225 - + completion: mark bash script as LF-only
226 - + git-new-workdir: mark script as LF-only
227 - + Fix build with core.autocrlf=true
44 + The recently introduced "[includeIf "gitdir:$dir"] path=..."
45 + mechansim has further been taught to take symlinks into account.
46 + The directory "$dir" specified in "gitdir:$dir" may be a symlink to
47 + a real location, not something that $(getcwd) may return. In such
48 + a case, a realpath of "$dir" is compared with the real path of the
49 + current repository to determine if the contents from the named path
50 + should be included.
51
229 - Make sure our tests would pass when the sources are checked out
230 - with "platform native" line ending convention by default on
231 - Windows. Some "text" files out tests use and the test scripts
232 - themselves that are meant to be run with /bin/sh, ought to be
233 - checked out with eol=LF even on Windows.
52
53 +* ab/perf-wildmatch (2017-05-12) 2 commits
54 + (merged to 'next' on 2017-05-23 at 0adb7dac31)
55 + + perf: add test showing exponential growth in path globbing
56 + + perf: add function to setup a fresh test repo
57
236 -* js/plug-leaks (2017-05-09) 26 commits
237 - (merged to 'next' on 2017-05-20 at fb136ea2dc)
238 - + checkout: fix memory leak
239 - + submodule_uses_worktrees(): plug memory leak
240 - + show_worktree(): plug memory leak
241 - + name-rev: avoid leaking memory in the `deref` case
242 - + remote: plug memory leak in match_explicit()
243 - + add_reflog_for_walk: avoid memory leak
244 - + shallow: avoid memory leak
245 - + line-log: avoid memory leak
246 - + receive-pack: plug memory leak in update()
247 - + fast-export: avoid leaking memory in handle_tag()
248 - + mktree: plug memory leaks reported by Coverity
249 - + pack-redundant: plug memory leak
250 - + setup_discovered_git_dir(): plug memory leak
251 - + setup_bare_git_dir(): help static analysis
252 - + split_commit_in_progress(): simplify & fix memory leak
253 - + checkout: fix memory leak
254 - + cat-file: fix memory leak
255 - + mailinfo & mailsplit: check for EOF while parsing
256 - + status: close file descriptor after reading git-rebase-todo
257 - + difftool: address a couple of resource/memory leaks
258 - + get_mail_commit_oid(): avoid resource leak
259 - + git_config_rename_section_in_file(): avoid resource leak
260 - + add_commit_patch_id(): avoid allocating memory unnecessarily
261 - + winansi: avoid buffer overrun
262 - + winansi: avoid use of uninitialized value
263 - + mingw: avoid memory leak when splitting PATH
264 -
265 - Fix memory leaks pointed out by Coverity (and people).
266 -
267 -
268 -* km/log-showsignature-doc (2017-05-20) 1 commit
269 - (merged to 'next' on 2017-05-23 at f43ea11956)
270 - + config.txt: add an entry for log.showSignature
58 + Add perf-test for wildmatch.
59
272 - Doc update.
60
61 +* bp/sub-process-convert-filter (2017-05-15) 11 commits
62 + (merged to 'next' on 2017-05-23 at 89f5420a82)
63 + + convert: update subprocess_read_status() to not die on EOF
64 + + sub-process: move sub-process functions into separate files
65 + + convert: rename reusable sub-process functions
66 + + convert: update generic functions to only use generic data structures
67 + + convert: separate generic structures and variables from the filter specific ones
68 + + convert: split start_multi_file_filter() into two separate functions
69 + + pkt-line: annotate packet_writel with LAST_ARG_MUST_BE_NULL
70 + + convert: move packet_write_line() into pkt-line as packet_writel()
71 + + pkt-line: add packet_read_line_gently()
72 + + pkt-line: fix packet_read_line() to handle len < 0 errors
73 + + convert: remove erroneous tests for errno == EPIPE
74
275 -* kn/ref-filter-branch-list (2017-05-20) 1 commit
276 - (merged to 'next' on 2017-05-23 at e0cc721af0)
277 - + ref-filter: resolve HEAD when parsing %(HEAD) atom
75 + Code from "conversion using external process" codepath has been
76 + extracted to a separate sub-process.[ch] module.
77
279 - "git for-each-ref --format=..." with %(HEAD) in the format used to
280 - resolve the HEAD symref as many times as it had processed refs,
281 - which was wasteful, and "git branch" shared the same problem.
78
79 +* bw/forking-and-threading (2017-05-15) 14 commits
80 + (merged to 'next' on 2017-05-23 at 79a6a59851)
81 + + usage.c: drop set_error_handle()
82 + + run-command: restrict PATH search to executable files
83 + + run-command: expose is_executable function
84 + + run-command: block signals between fork and execve
85 + + run-command: add note about forking and threading
86 + + run-command: handle dup2 and close errors in child
87 + + run-command: eliminate calls to error handling functions in child
88 + + run-command: don't die in child when duping /dev/null
89 + + run-command: prepare child environment before forking
90 + + string-list: add string_list_remove function
91 + + run-command: use the async-signal-safe execv instead of execvp
92 + + run-command: prepare command before forking
93 + + t0061: run_command executes scripts without a #! line
94 + + t5550: use write_script to generate post-update hook
95
284 -* nd/split-index-unshare (2017-05-08) 2 commits
285 - (merged to 'next' on 2017-05-20 at 9048cdc2ce)
286 - + p3400: add perf tests for rebasing many changes
287 - + split-index: add and use unshare_split_index()
96 + The "run-command" API implementation has been made more robust
97 + against dead-locking in a threaded environment.
98
289 - Plug some leaks and updates internal API used to implement the
290 - split index feature to make it easier to avoid such a leak in the
291 - future.
99
100 +* bw/pathspec-sans-the-index (2017-05-12) 6 commits
101 + (merged to 'next' on 2017-05-23 at 45c8ef3115)
102 + + pathspec: convert find_pathspecs_matching_against_index to take an index
103 + + pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
104 + + ls-files: prevent prune_cache from overeagerly pruning submodules
105 + + pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
106 + + submodule: add die_in_unpopulated_submodule function
107 + + pathspec: provide a more descriptive die message
108
294 -* pw/rebase-i-regression-fix (2017-05-20) 3 commits
295 - (merged to 'next' on 2017-05-23 at 14676d0013)
296 - + rebase -i: add missing newline to end of message
297 - + rebase -i: silence stash apply
298 - + rebase -i: fix reflog message
109 + Simplify parse_pathspec() codepath and stop it from looking at the
110 + default in-core index.
111 +
112 +
113 +* dt/unpack-save-untracked-cache-extension (2017-05-20) 1 commit
114 + (merged to 'next' on 2017-05-23 at 3196d093d6)
115 + + unpack-trees: preserve index extensions
116 +
117 + When "git checkout", "git merge", etc. manipulates the in-core
118 + index, various pieces of information in the index extensions are
119 + discarded from the original state, as it is usually not the case
120 + that they are kept up-to-date and in-sync with the operation on the
121 + main index. The untracked cache extension is copied across these
122 + operations now, which would speed up "git status" (as long as the
123 + cache is properly invalidated).
124 +
125 +
126 +* jc/name-rev-lw-tag (2017-03-29) 2 commits
127 + (merged to 'next' on 2017-05-23 at 3f88b6d73c)
128 + + name-rev: favor describing with tags and use committer date to tiebreak
129 + + name-rev: refactor logic to see if a new candidate is a better name
130 + (this branch is used by mg/name-rev-debug.)
131 +
132 + "git describe --contains" penalized light-weight tags so much that
133 + they were almost never considered. Instead, give them about the
134 + same chance to be considered as an annotated tag that is the same
135 + age as the underlying commit would.
136 +
137 +
138 +* jc/skip-test-in-the-middle (2017-05-18) 2 commits
139 + (merged to 'next' on 2017-05-23 at 6c962b353b)
140 + + t5545: enhance test coverage when no http server is installed
141 + + test: allow skipping the remainder
142
300 - Regression fix to topic recently merged to 'master'.
143 + A recent update to t5545-push-options.sh started skipping all the
144 + tests in the script when a web server testing is disabled or
145 + unavailable, not just the ones that require a web server. Non HTTP
146 + tests have been salvaged to always run in this script.
147
148
303 -* sb/checkout-recurse-submodules (2017-05-04) 3 commits
304 - (merged to 'next' on 2017-05-20 at f972b2069f)
305 - + submodule: properly recurse for read-tree and checkout
306 - + submodule: avoid auto-discovery in new working tree manipulator code
307 - + submodule_move_head: reuse child_process structure for futher commands
149 +* jh/memihash-opt (2017-05-16) 5 commits
150 + (merged to 'next' on 2017-05-23 at 2f0293e8b8)
151 + + p0004: don't error out if test repo is too small
152 + + p0004: don't abort if multi-threaded is too slow
153 + + p0004: use test_perf
154 + + p0004: avoid using pipes
155 + + p0004: simplify calls of test-lazy-init-name-hash
156
309 - "git checkout --recurse-submodules" did not quite work with a
310 - submodule that itself has submodules.
157 + perf-test update.
158
159
313 -* sb/reset-recurse-submodules (2017-04-23) 4 commits
314 - (merged to 'next' on 2017-05-20 at 8adafdf1be)
315 - + builtin/reset: add --recurse-submodules switch
316 - + submodule.c: submodule_move_head works with broken submodules
317 - + submodule.c: uninitialized submodules are ignored in recursive commands
318 - + entry.c: submodule recursing: respect force flag correctly
319 - (this branch is used by sb/submodule-blanket-recursive.)
160 +* js/larger-timestamps (2017-05-20) 1 commit
161 + (merged to 'next' on 2017-05-23 at 16f7c9e677)
162 + + name-rev: change a "long" variable to timestamp_t
163 +
164 + A follow-up hotfix for a topic already in 'master'.
165
321 - "git reset" learned "--recurse-submodules" option.
166
167 +* jt/fetch-allow-tip-sha1-implicitly (2017-05-16) 1 commit
168 + (merged to 'next' on 2017-05-23 at 690ed987df)
169 + + fetch-pack: always allow fetching of literal SHA1s
170
324 -* tg/stash-push-fixup (2017-05-17) 1 commit
325 - (merged to 'next' on 2017-05-23 at 338eb650f2)
326 - + completion: add git stash push
171 + There is no good reason why "git fetch $there $sha1" should fail
172 + when the $sha1 names an object at the tip of an advertised ref,
173 + even when the other side hasn't enabled allowTipSHA1InWant.
174
328 - The shell completion script (in contrib/) learned "git stash" has
329 - a new "push" subcommand.
175 +
176 +* jt/send-email-validate-hook (2017-05-16) 1 commit
177 + (merged to 'next' on 2017-05-23 at 89848cb9ac)
178 + + send-email: support validate hook
179 +
180 + "git send-email" learned to run sendemail-validate hook to inspect
181 + and reject a message before sending it out.
182
183 --------------------------------------------------
184 [New Topics]
185
334 -* ab/pcre-v2 (2017-05-26) 7 commits
335 - - grep: add support for PCRE v2
336 - - grep: un-break building with PCRE < 8.20
337 - - grep: un-break building with PCRE < 8.32
338 - - grep: add support for the PCRE v1 JIT API
339 - - log: add -P as a synonym for --perl-regexp
340 - - grep: skip pthreads overhead when using one thread
341 - - grep: don't redundantly compile throwaway patterns under threading
342 - (this branch uses ab/grep-preparatory-cleanup.)
186 +* dk/send-email-avoid-net-smtp-ssl-when-able (2017-06-01) 1 commit
187 + (merged to 'next' on 2017-06-01 at 3ff3ddfac7)
188 + + send-email: Net::SMTP::starttls was introduced in v2.34
189
344 - Update "perl-compatible regular expression" support to enable JIT
345 - and also allow linking with the newer PCRE v2 library.
190 + A hotfix to a topic in 'master'.
191
347 - Will merge to 'next'.
192 + Will merge to 'master'.
193
194
350 -* ab/ref-filter-no-contains (2017-05-23) 1 commit
351 - (merged to 'next' on 2017-05-29 at 5d39fd2961)
352 - + tag: duplicate mention of --contains should mention --no-contains
195 +* ah/doc-rev-parse-short-default (2017-06-01) 1 commit
196 + (merged to 'next' on 2017-06-01 at f64fcc2a26)
197 + + doc: rewrite description for rev-parse --short
198
354 - Doc update to a recent topic.
199 + Doc update.
200
201 Will merge to 'master'.
202
203
359 -* rs/mingw-path-lookup-simplify (2017-05-23) 1 commit
360 - (merged to 'next' on 2017-05-29 at 4365139a7f)
361 - + mingw: simplify PATH handling
204 +* rf/completion-config-commit (2017-05-30) 1 commit
205 + (merged to 'next' on 2017-06-01 at cea32e0486)
206 + + completion: add completions for git config commit
207
363 - Code simplification.
208 + Completion update.
209
210 Will merge to 'master'.
211
212
368 -* ab/sha1dc-maint (2017-05-22) 1 commit
369 - - sha1dc: update from upstream
370 - (this branch is used by ab/sha1dc.)
213 +* ab/c-translators-comment-style (2017-05-31) 1 commit
214 + (merged to 'next' on 2017-06-01 at df7fb9199a)
215 + + C style: use standard style for "TRANSLATORS" comments
216
372 - The "collision detecting" SHA-1 implementation shipped with 2.13
373 - was quite broken on some big-endian platforms and/or platforms that
374 - do not like unaligned fetches. Update to the upstream code which
375 - has already fixed these issues.
217 + Update the C style recommendation for notes for translators, as
218 + recent versions of gettext tools can work with our style of
219 + multi-line comments.
220
377 - Will merge to 'next'.
221 + Will merge to 'master'.
222
223
380 -* ab/t3070-test-dedup (2017-05-29) 1 commit
381 - - wildmatch test: remove redundant duplicate test
224 +* jc/diff-log-help (2017-06-01) 1 commit
225 + - diff- and log- family: handle "git cmd -h" early
226 + (this branch is used by jc/wip-check-help-option.)
227
383 - Test cleanup.
228 + The continuation of jk/consistent-h topic; the plumbing commands in
229 + the diff- and log- family were calling into the revision machinery
230 + without repository set-up upon "git $cmd -h", which is fixed.
231
385 - Will merge to 'next'.
232 + Will squeeze into jk/consistent-h topic.
233
234
388 -* ah/doc-filter-branch-export-env (2017-05-29) 1 commit
389 - - doc: filter-branch does not require re-export of vars
235 +* jk/consistent-h (2017-05-30) 7 commits
236 + - t0012: test "-h" with builtins
237 + - git: add hidden --list-builtins option
238 + - version: convert to parse-options
239 + - submodule--helper: show usage for "-h"
240 + - remote-{ext,fd}: print usage message on invalid arguments
241 + - upload-archive: handle "-h" option early
242 + - credential: handle invalid arguments earlier
243 + (this branch uses jk/unbreak-am-h.)
244
391 - Docfix.
245 + "git $cmd -h" for builtin commands calls the implementation of the
246 + command (i.e. cmd_$cmd() function) without doing any repository
247 + set-up, and the commands that expect RUN_SETUP is done by the Git
248 + potty needs to be prepared to show the help text without barfing.
249
393 - Will merge to 'next'.
250
251 +* jk/drop-free-refspecs (2017-06-01) 1 commit
252 + (merged to 'next' on 2017-06-01 at 8f455319fc)
253 + + remote: drop free_refspecs() function
254
396 -* jk/connect-symref-info-leak-fix (2017-05-26) 1 commit
397 - - connect.c: fix leak in parse_one_symref_info()
255 + Code clean-up.
256
399 - Leakfix.
257 + Will merge to 'master'.
258
401 - Will merge to 'next'.
259
260 +* jk/unbreak-am-h (2017-05-30) 1 commit
261 + (merged to 'next' on 2017-06-01 at ee2233d409)
262 + + am: handle "-h" argument earlier
263 + (this branch is used by jk/consistent-h.)
264
404 -* jk/pathspec-magic-disambiguation (2017-05-29) 6 commits
405 - - verify_filename(): flip order of checks
406 - - verify_filename(): treat ":(magic)" as a pathspec
407 - - check_filename(): handle ":^" path magic
408 - - check_filename(): use skip_prefix
409 - - check_filename(): refactor ":/" handling
410 - - t4208: add check for ":/" without matching file
265 + "git am -h" triggered a BUG().
266
412 - The convention for a command line is to follow "git cmdname
413 - --options" with revisions followed by an optional "--"
414 - disambiguator and then finally pathspecs. When "--" is not there,
415 - we make sure early ones are all interpretable as revs (and do not
416 - look like paths) and later ones are the other way around. A
417 - pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from
418 - the top-level of the working tree, no matter what subdirectory you
419 - are working from) are conservatively judged as "not a path", which
420 - required disambiguation more often. The command line parser
421 - learned to say "it's a pathspec" a bit more often when the syntax
422 - looks like so.
267 + Will merge to 'master'.
268
269
425 -* sd/t3200-typofix (2017-05-29) 1 commit
426 - - branch test: fix invalid config key access
270 +* jk/url-insteadof-config (2017-06-01) 1 commit
271 + (merged to 'next' on 2017-06-01 at e7ea6032c2)
272 + + docs/config: mention protocol implications of url.insteadOf
273
428 - Test fix.
274 + The interaction of "url.*.insteadOf" and custom URL scheme's
275 + whitelisting is now documented better.
276 +
277 + Will merge to 'master'.
278 +
279 +
280 +* pw/rebase-i-regression-fix (2017-06-01) 1 commit
281 + - rebase -i: add test for reflog message
282 +
283 + Just the first one of three? new tests that follows up a regression
284 + fix.
285 +
286 + Expecting a portable update.
287 +
288 +
289 +* sb/submodule-blanket-recursive (2017-06-01) 9 commits
290 + - builtin/fetch.c: respect 'submodule.recurse' option
291 + - builtin/push.c: respect 'submodule.recurse' option
292 + - builtin/grep.c: respect 'submodule.recurse' option
293 + - Introduce 'submodule.recurse' option for worktree manipulators
294 + - submodule loading: separate code path for .gitmodules and config overlay
295 + - reset/checkout/read-tree: unify config callback for submodule recursion
296 + - submodule test invocation: only pass additional arguments
297 + - submodule recursing: do not write a config variable twice
298 + - Merge branch 'ab/grep-preparatory-cleanup' into sb/submodule-blanket-recursive
299 + (this branch uses ab/grep-preparatory-cleanup; is tangled with ab/pcre-v2.)
300 +
301 + Many commands learned to pay attention to submodule.recurse
302 + configuration.
303
304 Will merge to 'next'.
305
306 + It is not known if a simple "yes/no" is sufficient in the longer
307 + term, and what should happen when --recurse-submodules option starts
308 + taking "recurse into them how?" parameter, though.
309 +
310 +
311 +* tb/pull-ff-rebase-autostash (2017-06-01) 1 commit
312 + (merged to 'next' on 2017-06-01 at b5e676d57e)
313 + + pull: ff --rebase --autostash works in dirty repo
314 +
315 + "git pull --rebase --autostash" didn't auto-stash when the local history
316 + fast-forwards to the upstream.
317 +
318 + Will merge to 'master'.
319 +
320 --------------------------------------------------
321 [Stalled]
322
@@ -445,7 +333,6 @@ of the repositories listed at
333 * mg/name-rev-debug (2017-03-31) 2 commits
334 - describe: pass --debug down to name-rev
335 - name-rev: provide debug output
448 - (this branch uses jc/name-rev-lw-tag.)
336
337 "git describe --debug --contains" did not add any meaningful
338 information, even though without "--contains" it did.
@@ -478,21 +365,126 @@ of the repositories listed at
365
366
367 * sk/dash-is-previous (2017-03-01) 5 commits
481 - - revert.c: delegate handling of "-" shorthand to setup_revisions
482 - - sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}"
483 - - revision.c: args starting with "-" might be a revision
484 - - revision.c: swap if/else blocks
485 - - revision.c: do not update argv with unknown option
368 + . revert.c: delegate handling of "-" shorthand to setup_revisions
369 + . sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}"
370 + . revision.c: args starting with "-" might be a revision
371 + . revision.c: swap if/else blocks
372 + . revision.c: do not update argv with unknown option
373
374 A dash "-" can be written to mean "the branch that was previously
375 checked out" in more places.
376
490 - Needs review.
491 - cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
377 + Ejected, as it seems that making -.. to mean @{-1}..HEAD etc. are
378 + going too far.
379
380 --------------------------------------------------
381 [Cooking]
382
383 +* ab/pcre-v2 (2017-05-26) 7 commits
384 + - grep: add support for PCRE v2
385 + - grep: un-break building with PCRE < 8.20
386 + - grep: un-break building with PCRE < 8.32
387 + - grep: add support for the PCRE v1 JIT API
388 + - log: add -P as a synonym for --perl-regexp
389 + - grep: skip pthreads overhead when using one thread
390 + - grep: don't redundantly compile throwaway patterns under threading
391 + (this branch uses ab/grep-preparatory-cleanup; is tangled with sb/submodule-blanket-recursive.)
392 +
393 + Update "perl-compatible regular expression" support to enable JIT
394 + and also allow linking with the newer PCRE v2 library.
395 +
396 + Waiting for a fix-up.
397 + cf. <CACBZZX6YFKTLKxep2oW0_HrX+kNJ2PX5G4UCboB+4yosmLqr5g@mail.gmail.com>
398 +
399 +
400 +* ab/ref-filter-no-contains (2017-05-23) 1 commit
401 + (merged to 'next' on 2017-05-29 at 5d39fd2961)
402 + + tag: duplicate mention of --contains should mention --no-contains
403 +
404 + Doc update to a recent topic.
405 +
406 + Will merge to 'master'.
407 +
408 +
409 +* rs/mingw-path-lookup-simplify (2017-05-23) 1 commit
410 + (merged to 'next' on 2017-05-29 at 4365139a7f)
411 + + mingw: simplify PATH handling
412 +
413 + Code simplification.
414 +
415 + Will merge to 'master'.
416 +
417 +
418 +* ab/sha1dc-maint (2017-05-22) 1 commit
419 + (merged to 'next' on 2017-05-30 at 9eb40bf912)
420 + + sha1dc: update from upstream
421 + (this branch is used by ab/sha1dc.)
422 +
423 + The "collision detecting" SHA-1 implementation shipped with 2.13
424 + was quite broken on some big-endian platforms and/or platforms that
425 + do not like unaligned fetches. Update to the upstream code which
426 + has already fixed these issues.
427 +
428 + Will merge to 'master'.
429 +
430 +
431 +* ab/t3070-test-dedup (2017-05-29) 1 commit
432 + (merged to 'next' on 2017-05-30 at 71eadec33b)
433 + + wildmatch test: remove redundant duplicate test
434 +
435 + Test cleanup.
436 +
437 + Will merge to 'master'.
438 +
439 +
440 +* ah/doc-filter-branch-export-env (2017-05-29) 1 commit
441 + (merged to 'next' on 2017-05-30 at a62168bf77)
442 + + doc: filter-branch does not require re-export of vars
443 +
444 + Docfix.
445 +
446 + Will merge to 'master'.
447 +
448 +
449 +* jk/connect-symref-info-leak-fix (2017-05-26) 1 commit
450 + (merged to 'next' on 2017-05-30 at d8b75d2dd9)
451 + + connect.c: fix leak in parse_one_symref_info()
452 +
453 + Leakfix.
454 +
455 + Will merge to 'master'.
456 +
457 +
458 +* jk/pathspec-magic-disambiguation (2017-05-29) 6 commits
459 + - verify_filename(): flip order of checks
460 + - verify_filename(): treat ":(magic)" as a pathspec
461 + - check_filename(): handle ":^" path magic
462 + - check_filename(): use skip_prefix
463 + - check_filename(): refactor ":/" handling
464 + - t4208: add check for ":/" without matching file
465 +
466 + The convention for a command line is to follow "git cmdname
467 + --options" with revisions followed by an optional "--"
468 + disambiguator and then finally pathspecs. When "--" is not there,
469 + we make sure early ones are all interpretable as revs (and do not
470 + look like paths) and later ones are the other way around. A
471 + pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from
472 + the top-level of the working tree, no matter what subdirectory you
473 + are working from) are conservatively judged as "not a path", which
474 + required disambiguation more often. The command line parser
475 + learned to say "it's a pathspec" a bit more often when the syntax
476 + looks like so.
477 +
478 +
479 +* sd/t3200-typofix (2017-05-29) 1 commit
480 + (merged to 'next' on 2017-05-30 at 784e5e73f8)
481 + + branch test: fix invalid config key access
482 +
483 + Test fix.
484 +
485 + Will merge to 'master'.
486 +
487 +
488 * ah/doc-interpret-trailers-ifexists (2017-05-23) 1 commit
489 (merged to 'next' on 2017-05-29 at cb353c1d21)
490 + Documentation: fix reference to ifExists for interpret-trailers
@@ -520,34 +512,6 @@ of the repositories listed at
512 Will merge to 'master'.
513
514
523 -* ab/conditional-config-with-symlinks (2017-05-17) 1 commit
524 - (merged to 'next' on 2017-05-23 at 6162222c2e)
525 - + config: match both symlink & realpath versions in IncludeIf.gitdir:*
526 -
527 - The recently introduced "[includeIf "gitdir:$dir"] path=..."
528 - mechansim has further been taught to take symlinks into account.
529 - The directory "$dir" specified in "gitdir:$dir" may be a symlink to
530 - a real location, not something that $(getcwd) may return. In such
531 - a case, a realpath of "$dir" is compared with the real path of the
532 - current repository to determine if the contents from the named path
533 - should be included.
534 -
535 - Will merge to 'master'.
536 -
537 -
538 -* jc/skip-test-in-the-middle (2017-05-18) 2 commits
539 - (merged to 'next' on 2017-05-23 at 6c962b353b)
540 - + t5545: enhance test coverage when no http server is installed
541 - + test: allow skipping the remainder
542 -
543 - A recent update to t5545-push-options.sh started skipping all the
544 - tests in the script when a web server testing is disabled or
545 - unavailable, not just the ones that require a web server. Non HTTP
546 - tests have been salvaged to always run in this script.
547 -
548 - Will merge to 'master'.
549 -
550 -
515 * mh/packed-ref-store-prep (2017-05-24) 26 commits
516 (merged to 'next' on 2017-05-29 at e4f5e06b4c)
517 + cache_ref_iterator_begin(): avoid priming unneeded directories
@@ -594,7 +558,8 @@ of the repositories listed at
558
559 "git clean -d" used to clean directories that has ignored files,
560 even though the command should not lose ignored ones without "-x".
597 - This has been corrected.
561 + "git status --ignored" did not list ignored and untracked files
562 + without "-uall". These have been corrected.
563
564 Will merge to 'master'.
565
@@ -622,30 +587,6 @@ of the repositories listed at
587 - bswap: add 64 bit endianness helper get_be64
588
589
625 -* dk/send-email-avoid-net-smtp-ssl-when-able (2017-05-20) 1 commit
626 - (merged to 'next' on 2017-05-23 at fc59b8a1d4)
627 - + send-email: Net::SMTP::SSL is obsolete, use only when necessary
628 -
629 - "git send-email" now uses Net::SMTP::SSL, which is obsolete, only
630 - when needed. Recent versions of Net::SMTP can do TLS natively.
631 -
632 - Will merge to 'master'.
633 -
634 -
635 -* jc/name-rev-lw-tag (2017-03-29) 2 commits
636 - (merged to 'next' on 2017-05-23 at 3f88b6d73c)
637 - + name-rev: favor describing with tags and use committer date to tiebreak
638 - + name-rev: refactor logic to see if a new candidate is a better name
639 - (this branch is used by mg/name-rev-debug.)
640 -
641 - "git describe --contains" penalized light-weight tags so much that
642 - they were almost never considered. Instead, give them about the
643 - same chance to be considered as an annotated tag that is the same
644 - age as the underlying commit would.
645 -
646 - Will merge to 'master'.
647 -
648 -
590 * jk/diff-blob (2017-05-24) 15 commits
591 (merged to 'next' on 2017-05-29 at 5ecc979cc7)
592 + diff: use blob path for blob/file diffs
@@ -684,16 +625,7 @@ of the repositories listed at
625 Will merge to 'master'.
626
627
687 -* js/larger-timestamps (2017-05-20) 1 commit
688 - (merged to 'next' on 2017-05-23 at 16f7c9e677)
689 - + name-rev: change a "long" variable to timestamp_t
690 -
691 - A follow-up hotfix for a topic already in 'master'.
692 -
693 - Will merge to 'master'.
694 -
695 -
696 -* sb/diff-color-move (2017-05-25) 17 commits
628 +* sb/diff-color-move (2017-06-01) 17 commits
629 - diff.c: color moved lines differently
630 - diff: buffer all output if asked to
631 - diff.c: emit_line includes whitespace highlighting
@@ -728,99 +660,41 @@ of the repositories listed at
660 cf. <CACBZZX5GYV50rjg9X602JHqFPaoofH9TwDf_-r_MDu8-rmNV6Q@mail.gmail.com>
661
662
731 -* jh/memihash-opt (2017-05-16) 5 commits
732 - (merged to 'next' on 2017-05-23 at 2f0293e8b8)
733 - + p0004: don't error out if test repo is too small
734 - + p0004: don't abort if multi-threaded is too slow
735 - + p0004: use test_perf
736 - + p0004: avoid using pipes
737 - + p0004: simplify calls of test-lazy-init-name-hash
738 -
739 - perf-test update.
740 -
741 - Will merge to 'master'.
742 -
743 -
663 * js/blame-lib (2017-05-25) 29 commits
745 - - blame: move entry prepend to libgit
746 - - blame: move scoreboard setup to libgit
747 - - blame: move scoreboard-related methods to libgit
748 - - blame: move fake-commit-related methods to libgit
749 - - blame: move origin-related methods to libgit
750 - - blame: move core structures to header
751 - - blame: create entry prepend function
752 - - blame: create scoreboard setup function
753 - - blame: create scoreboard init function
754 - - blame: rework methods that determine 'final' commit
755 - - blame: wrap blame_sort and compare_blame_final
756 - - blame: move progress updates to a scoreboard callback
757 - - blame: make sanity_check use a callback in scoreboard
758 - - blame: move no_whole_file_rename flag to scoreboard
759 - - blame: move xdl_opts flags to scoreboard
760 - - blame: move show_root flag to scoreboard
761 - - blame: move reverse flag to scoreboard
762 - - blame: move contents_from to scoreboard
763 - - blame: move copy/move thresholds to scoreboard
764 - - blame: move stat counters to scoreboard
765 - - blame: rename nth_line function
766 - - blame: rename ent_score function
767 - - blame: rename coalesce function
768 - - blame: rename origin-related functions
769 - - blame: rename scoreboard structure to blame_scoreboard
770 - - blame: rename origin structure to blame_origin
771 - - blame: remove unused parameters
772 - - blame: move textconv_object with related functions
773 - - blame: remove unneeded dependency on blob.h
664 + (merged to 'next' on 2017-05-30 at b4678b36a7)
665 + + blame: move entry prepend to libgit
666 + + blame: move scoreboard setup to libgit
667 + + blame: move scoreboard-related methods to libgit
668 + + blame: move fake-commit-related methods to libgit
669 + + blame: move origin-related methods to libgit
670 + + blame: move core structures to header
671 + + blame: create entry prepend function
672 + + blame: create scoreboard setup function
673 + + blame: create scoreboard init function
674 + + blame: rework methods that determine 'final' commit
675 + + blame: wrap blame_sort and compare_blame_final
676 + + blame: move progress updates to a scoreboard callback
677 + + blame: make sanity_check use a callback in scoreboard
678 + + blame: move no_whole_file_rename flag to scoreboard
679 + + blame: move xdl_opts flags to scoreboard
680 + + blame: move show_root flag to scoreboard
681 + + blame: move reverse flag to scoreboard
682 + + blame: move contents_from to scoreboard
683 + + blame: move copy/move thresholds to scoreboard
684 + + blame: move stat counters to scoreboard
685 + + blame: rename nth_line function
686 + + blame: rename ent_score function
687 + + blame: rename coalesce function
688 + + blame: rename origin-related functions
689 + + blame: rename scoreboard structure to blame_scoreboard
690 + + blame: rename origin structure to blame_origin
691 + + blame: remove unused parameters
692 + + blame: move textconv_object with related functions
693 + + blame: remove unneeded dependency on blob.h
694
695 The internal logic used in "git blame" has been libified to make it
696 easier to use by cgit.
697
778 - Will merge to 'next'.
779 -
780 -
781 -* jt/send-email-validate-hook (2017-05-16) 1 commit
782 - (merged to 'next' on 2017-05-23 at 89848cb9ac)
783 - + send-email: support validate hook
784 -
785 - "git send-email" learned to run sendemail-validate hook to inspect
786 - and reject a message before sending it out.
787 -
788 - Will merge to 'master'.
789 -
790 -
791 -* bw/pathspec-sans-the-index (2017-05-12) 6 commits
792 - (merged to 'next' on 2017-05-23 at 45c8ef3115)
793 - + pathspec: convert find_pathspecs_matching_against_index to take an index
794 - + pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
795 - + ls-files: prevent prune_cache from overeagerly pruning submodules
796 - + pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
797 - + submodule: add die_in_unpopulated_submodule function
798 - + pathspec: provide a more descriptive die message
799 -
800 - Simplify parse_pathspec() codepath and stop it from looking at the
801 - default in-core index.
802 -
803 - Will merge to 'master'.
804 -
805 -
806 -* jt/fetch-allow-tip-sha1-implicitly (2017-05-16) 1 commit
807 - (merged to 'next' on 2017-05-23 at 690ed987df)
808 - + fetch-pack: always allow fetching of literal SHA1s
809 -
810 - There is no good reason why "git fetch $there $sha1" should fail
811 - when the $sha1 names an object at the tip of an advertised ref,
812 - even when the other side hasn't enabled allowTipSHA1InWant.
813 -
814 - Will merge to 'master'.
815 -
816 -
817 -* ab/perf-wildmatch (2017-05-12) 2 commits
818 - (merged to 'next' on 2017-05-23 at 0adb7dac31)
819 - + perf: add test showing exponential growth in path globbing
820 - + perf: add function to setup a fresh test repo
821 -
822 - Add perf-test for wildmatch.
823 -
698 Will merge to 'master'.
699
700
@@ -857,31 +731,14 @@ of the repositories listed at
731 + test-lib: rename the LIBPCRE prerequisite to PCRE
732 + grep & rev-list doc: stop promising libpcre for --perl-regexp
733 + Makefile & configure: reword inaccurate comment about PCRE
860 - (this branch is used by ab/pcre-v2.)
734 + (this branch is used by ab/pcre-v2 and sb/submodule-blanket-recursive.)
735
736 The internal implementation of "git grep" has seen some clean-up.
737
738 Will merge to 'master'.
739
740
867 -* dt/unpack-save-untracked-cache-extension (2017-05-20) 1 commit
868 - (merged to 'next' on 2017-05-23 at 3196d093d6)
869 - + unpack-trees: preserve index extensions
870 -
871 - When "git checkout", "git merge", etc. manipulates the in-core
872 - index, various pieces of information in the index extensions are
873 - discarded from the original state, as it is usually not the case
874 - that they are kept up-to-date and in-sync with the operation on the
875 - main index. The untracked cache extension is copied across these
876 - operations now, which would speed up "git status" (as long as the
877 - cache is properly invalidated).
878 -
879 - Will merge to 'master'.
880 -
881 -
882 -* sg/clone-refspec-from-command-line-config (2017-05-16) 4 commits
883 - - clone: use free_refspec() to free refspec list
884 - - remote: drop free_refspecs() function
741 +* sg/clone-refspec-from-command-line-config (2017-06-01) 2 commits
742 - Documentation/clone: document ignored configuration variables
743 - clone: respect additional configured fetch refspecs during initial fetch
744
@@ -890,8 +747,7 @@ of the repositories listed at
747 variables take effect while the initial clone is happening,
748 e.g. these configuration variables could be fetch refspecs.
749
893 - Waiting for response.
894 - cf. <xmqqa864kops.fsf@gitster.mtv.corp.google.com>
750 + Are we happy with these two?
751
752
753 * jh/close-index-before-stat (2017-04-28) 1 commit
@@ -924,9 +780,10 @@ of the repositories listed at
780 cf. <20170509033258.q7auj5p5lxs4tggd@sigill.intra.peff.net>
781
782
927 -* nd/fopen-errors (2017-05-26) 13 commits
928 - - is_missing_file_error(): work around EINVAL on Windows
929 - - wrapper: factor out is_missing_file_error()
783 +* nd/fopen-errors (2017-05-30) 14 commits
784 + - mingw_fopen: report ENOENT for invalid file names
785 + - SQUASH??? use test_i18ngrep and add it at the end
786 + - mingw: verify that paths are not mistaken for remote nicknames
787 - log: fix memory leak in open_next_file()
788 - rerere.c: move error_errno() closer to the source system call
789 - print errno when reporting a system call error
@@ -943,7 +800,7 @@ of the repositories listed at
800 optional, and silently ignore errors from open/fopen; report such
801 errors if they are not due to missing files.
802
946 - Waiting for comments on the two changes at the tip from Windows folks.
803 + Waiting for an Ack to the SQUASH fix or a reroll of the tip commits.
804
805
806 * js/rebase-i-final (2017-05-02) 10 commits
@@ -966,49 +823,6 @@ of the repositories listed at
823 cf. <cover.1493414945.git.johannes.schindelin@gmx.de>
824
825
969 -* bw/forking-and-threading (2017-05-15) 14 commits
970 - (merged to 'next' on 2017-05-23 at 79a6a59851)
971 - + usage.c: drop set_error_handle()
972 - + run-command: restrict PATH search to executable files
973 - + run-command: expose is_executable function
974 - + run-command: block signals between fork and execve
975 - + run-command: add note about forking and threading
976 - + run-command: handle dup2 and close errors in child
977 - + run-command: eliminate calls to error handling functions in child
978 - + run-command: don't die in child when duping /dev/null
979 - + run-command: prepare child environment before forking
980 - + string-list: add string_list_remove function
981 - + run-command: use the async-signal-safe execv instead of execvp
982 - + run-command: prepare command before forking
983 - + t0061: run_command executes scripts without a #! line
984 - + t5550: use write_script to generate post-update hook
985 -
986 - The "run-command" API implementation has been made more robust
987 - against dead-locking in a threaded environment.
988 -
989 - Will merge to 'master'.
990 -
991 -
992 -* bp/sub-process-convert-filter (2017-05-15) 11 commits
993 - (merged to 'next' on 2017-05-23 at 89f5420a82)
994 - + convert: update subprocess_read_status() to not die on EOF
995 - + sub-process: move sub-process functions into separate files
996 - + convert: rename reusable sub-process functions
997 - + convert: update generic functions to only use generic data structures
998 - + convert: separate generic structures and variables from the filter specific ones
999 - + convert: split start_multi_file_filter() into two separate functions
1000 - + pkt-line: annotate packet_writel with LAST_ARG_MUST_BE_NULL
1001 - + convert: move packet_write_line() into pkt-line as packet_writel()
1002 - + pkt-line: add packet_read_line_gently()
1003 - + pkt-line: fix packet_read_line() to handle len < 0 errors
1004 - + convert: remove erroneous tests for errno == EPIPE
1005 -
1006 - Code from "conversion using external process" codepath has been
1007 - extracted to a separate sub-process.[ch] module.
1008 -
1009 - Will merge to 'master'.
1010 -
1011 -
826 * nd/prune-in-worktree (2017-04-24) 12 commits
827 - rev-list: expose and document --single-worktree
828 - revision.c: --reflog add HEAD reflog from all worktrees
@@ -1032,92 +846,3 @@ of the repositories listed at
846 Expecting a reroll.
847 Has been waiting for nd/worktree-kill-parse-ref to settle.
848 cf. <CACsJy8ADCVBiLoPg_Tz0L6CMdh_eFmK4RYzfQ-PmUgBK7w9e=A@mail.gmail.com>
1035 -
1036 ---------------------------------------------------
1037 -[Discard]
1038 -
1039 -* ab/compat-regex-update (2017-05-12) 3 commits
1040 - . DONTMERGE compat/regex: make it compile with -Werror=int-to-pointer-cast
1041 - . compat/regex: update the gawk regex engine from upstream
1042 - . compat/regex: add a README with a maintenance guide
1043 -
1044 - Update compat/regex we borrowed from gawk. It seems that some
1045 - customizations we made to the older one were dropped by mistake.
1046 -
1047 - Will discard.
1048 - cf. <CACBZZX4UUwzRQmyH8joYaqHnuVTjVtGBHp+iZKcnAnwoM_ZJhg@mail.gmail.com>
1049 -
1050 -
1051 -* jk/no-looking-at-dotgit-outside-repo (2017-05-15) 1 commit
1052 - . config: complain about --local outside of a git repo
1053 -
1054 - Will discard.
1055 - Superseded by jk/bug-to-abort.
1056 -
1057 -
1058 -* js/retire-old-remote-spec (2017-05-12) 11 commits
1059 - . PREVIEW: remove support for .git/remotes/ and .git/branches/
1060 - . PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
1061 - . PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
1062 - . PREVIEW: remote: remove support for migrating ancient remotes
1063 - . PREVIEW: t5516: stop testing .git/branches/ functionality
1064 - . PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
1065 - . Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
1066 - . remote: warn loud and clear when .git/remotes/ is *still* used
1067 - . remote: warn loud and clear when .git/branches/ is *still* used
1068 - . Documentation: really deprecate .git/remotes/ and .git/branches/
1069 - . git-parse-remote: fix highly misleading man page
1070 -
1071 - Stop reading from .git/remotes/ and .git/branches/, two old ways
1072 - that we have been supporting to configure short-hands for fetching
1073 - from remote repositories.
1074 -
1075 - Will discard.
1076 - The procedure of removing an old and unused feature is correctly
1077 - followed by this series, but it is far from clear that the feature
1078 - this attempts to remove is unused or useless.
1079 -
1080 -
1081 -* jc/checkout-working-tree-only (2017-04-27) 1 commit
1082 - . checkout: add --working-tree-only option
1083 -
1084 - "git checkout <tree-ish> <pathspec>" learned a variant that does
1085 - not update the index when doing its thing.
1086 -
1087 - Will discard.
1088 - This was more of "the world could have been like this" illustration
1089 - rather than a "let's make this change" proposal.
1090 -
1091 -
1092 -* sb/submodule-blanket-recursive (2017-05-23) 6 commits
1093 - . builtin/push.c: respect 'submodule.recurse' option
1094 - . builtin/grep.c: respect 'submodule.recurse' option
1095 - . builtin/fetch.c: respect 'submodule.recurse' option
1096 - . Introduce submodule.recurse option for worktree manipulators
1097 - . submodule test invocation: only pass additional arguments
1098 - . submodule.c: add has_submodules to check if we have any submodules
1099 -
1100 - A new configuration variable "submodule.recurse" can be set to true
1101 - to force various commands run at the top-level superproject to
1102 - behave as if they were invoked with the "--recurse-submodules"
1103 - option.
1104 -
1105 - Retracted for now.
1106 - cf. <CAGZ79kZexcwh=E6_ks83=pJh=ZvKnLvJ54eLsn+HURsTZOpvqg@mail.gmail.com>
1107 -
1108 -
1109 -* df/dir-iter-remove-subtree (2017-05-29) 5 commits
1110 - . remove_subtree(): reimplement using iterators
1111 - . dir_iterator: rewrite state machine model
1112 - . dir_iterator: refactor dir_iterator_advance
1113 - . remove_subtree(): test removing nested directories
1114 - . dir_iterator: add tests for dir_iterator API
1115 -
1116 - Update the dir-iterator API and use it to reimplement
1117 - remove_subtree().
1118 -
1119 - GSoC microproject.
1120 - Ejected as it conflicts with other topics in flight in a
1121 - non-trivial way.
1122 -
1123 -