What's cooking (2016/09 #06)

Junio C Hamano committed Sep 21, 2016 at 16:29 UTC 5c9b3b60203c4e5457cfe9af191343571e054188
1 file changed +344 -523
whats-cooking.txt
+344 -523
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Sep 2016, #05; Mon, 19)
4 -X-master-at: f6727b0509ec3417a5183ba6e658143275a734f5
5 -X-next-at: c4ba6ebad2b925f4c6956f7e29e7375f5398848a
3 +Subject: What's cooking in git.git (Sep 2016, #06; Wed, 21)
4 +X-master-at: 6fe1b1407ed91823daa5d487abe457ff37463349
5 +X-next-at: 97b919bdbde768487edc76513548a747496e2579
6
7 -What's cooking in git.git (Sep 2016, #05; Mon, 19)
7 +What's cooking in git.git (Sep 2016, #06; Wed, 21)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,225 +20,204 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* ah/misc-message-fixes (2016-09-08) 5 commits
24 - (merged to 'next' on 2016-09-12 at a113aea)
25 - + unpack-trees: do not capitalize "working"
26 - + git-merge-octopus: do not capitalize "octopus"
27 - + git-rebase--interactive: fix English grammar
28 - + cat-file: put spaces around pipes in usage string
29 - + am: put spaces around pipe in usage string
30 -
31 - Message cleanup.
32 -
33 -
34 -* bc/object-id (2016-09-07) 20 commits
35 - (merged to 'next' on 2016-09-15 at 34c6459)
36 - + builtin/reset: convert to use struct object_id
37 - + builtin/commit-tree: convert to struct object_id
38 - + builtin/am: convert to struct object_id
39 - + refs: add an update_ref_oid function.
40 - + sha1_name: convert get_sha1_mb to struct object_id
41 - + builtin/update-index: convert file to struct object_id
42 - + notes: convert init_notes to use struct object_id
43 - + builtin/rm: convert to use struct object_id
44 - + builtin/blame: convert file to use struct object_id
45 - + Convert read_mmblob to take struct object_id.
46 - + notes-merge: convert struct notes_merge_pair to struct object_id
47 - + builtin/checkout: convert some static functions to struct object_id
48 - + streaming: make stream_blob_to_fd take struct object_id
49 - + builtin: convert textconv_object to use struct object_id
50 - + builtin/cat-file: convert some static functions to struct object_id
51 - + builtin/cat-file: convert struct expand_data to use struct object_id
52 - + builtin/log: convert some static functions to use struct object_id
53 - + builtin/blame: convert struct origin to use struct object_id
54 - + builtin/apply: convert static functions to struct object_id
55 - + cache: convert struct cache_entry to use struct object_id
56 -
57 - The "unsigned char sha1[20]" to "struct object_id" conversion
58 - continues. Notable changes in this round includes that ce->sha1,
59 - i.e. the object name recorded in the cache_entry, turns into an
60 - object_id.
61 -
62 - It had merge conflicts with a few topics in flight (Christian's
63 - "apply.c split", Dscho's "cat-file --filters" and Jeff Hostetler's
64 - "status --porcelain-v2"). Extra sets of eyes double-checking for
65 - mismerges are highly appreciated.
66 -
67 -
68 -* cc/apply-am (2016-09-07) 41 commits
69 - (merged to 'next' on 2016-09-12 at 854edde)
70 - + builtin/am: use apply API in run_apply()
71 - + apply: learn to use a different index file
72 - + apply: pass apply state to build_fake_ancestor()
73 - + apply: refactor `git apply` option parsing
74 - + apply: change error_routine when silent
75 - + usage: add get_error_routine() and get_warn_routine()
76 - + usage: add set_warn_routine()
77 - + apply: don't print on stdout in verbosity_silent mode
78 - + apply: make it possible to silently apply
79 - + apply: use error_errno() where possible
80 - + apply: make some parsing functions static again
81 - + apply: move libified code from builtin/apply.c to apply.{c,h}
82 - + apply: rename and move opt constants to apply.h
83 - + builtin/apply: rename option parsing functions
84 - + builtin/apply: make create_one_file() return -1 on error
85 - + builtin/apply: make try_create_file() return -1 on error
86 - + builtin/apply: make write_out_results() return -1 on error
87 - + builtin/apply: make write_out_one_result() return -1 on error
88 - + builtin/apply: make create_file() return -1 on error
89 - + builtin/apply: make add_index_file() return -1 on error
90 - + builtin/apply: make add_conflicted_stages_file() return -1 on error
91 - + builtin/apply: make remove_file() return -1 on error
92 - + builtin/apply: make build_fake_ancestor() return -1 on error
93 - + builtin/apply: change die_on_unsafe_path() to check_unsafe_path()
94 - + builtin/apply: make gitdiff_*() return -1 on error
95 - + builtin/apply: make gitdiff_*() return 1 at end of header
96 - + builtin/apply: make parse_traditional_patch() return -1 on error
97 - + builtin/apply: make apply_all_patches() return 128 or 1 on error
98 - + builtin/apply: move check_apply_state() to apply.c
99 - + builtin/apply: make check_apply_state() return -1 instead of die()ing
100 - + apply: make init_apply_state() return -1 instead of exit()ing
101 - + builtin/apply: move init_apply_state() to apply.c
102 - + builtin/apply: make parse_ignorewhitespace_option() return -1 instead of die()ing
103 - + builtin/apply: make parse_whitespace_option() return -1 instead of die()ing
104 - + builtin/apply: make parse_single_patch() return -1 on error
105 - + builtin/apply: make parse_chunk() return a negative integer on error
106 - + builtin/apply: make find_header() return -128 instead of die()ing
107 - + builtin/apply: read_patch_file() return -1 instead of die()ing
108 - + builtin/apply: make apply_patch() return -1 or -128 instead of die()ing
109 - + apply: move 'struct apply_state' to apply.h
110 - + apply: make some names more specific
111 -
112 - "git am" has been taught to make an internal call to "git apply"'s
113 - innards without spawning the latter as a separate process.
114 -
115 -
116 -* jk/fix-remote-curl-url-wo-proto (2016-09-08) 1 commit
117 - (merged to 'next' on 2016-09-12 at 7845867)
118 - + remote-curl: handle URLs without protocol
119 -
120 - "git fetch http::/site/path" did not die correctly and segfaulted
121 - instead.
122 -
123 -
124 -* jk/pack-tag-of-tag (2016-09-07) 5 commits
125 - (merged to 'next' on 2016-09-12 at 62c62c0)
126 - + pack-objects: walk tag chains for --include-tag
127 - + t5305: simplify packname handling
128 - + t5305: use "git -C"
129 - + t5305: drop "dry-run" of unpack-objects
130 - + t5305: move cleanup into test block
131 -
132 - "git pack-objects --include-tag" was taught that when we know that
133 - we are sending an object C, we want a tag B that directly points at
134 - C but also a tag A that points at the tag B. We used to miss the
135 - intermediate tag B in some cases.
136 -
137 -
138 -* js/git-gui-commit-gpgsign (2016-09-11) 2 commits
139 - (merged to 'next' on 2016-09-12 at 05350ab)
140 - + Merge branch 'js/commit-gpgsign' of ../git-gui into js/git-gui-commit-gpgsign
141 - + git-gui: respect commit.gpgsign again
142 -
143 - "git commit-tree" stopped reading commit.gpgsign configuration
144 - variable that was meant for Porcelain "git commit" in Git 2.9; we
145 - forgot to update "git gui" to look at the configuration to match
146 - this change.
147 -
148 -
149 -* js/sequencer-wo-die (2016-09-09) 17 commits
150 - (merged to 'next' on 2016-09-12 at d2154ea)
151 - + sequencer: ensure to release the lock when we could not read the index
152 - + sequencer: lib'ify checkout_fast_forward()
153 - + sequencer: lib'ify fast_forward_to()
154 - + sequencer: lib'ify save_opts()
155 - + sequencer: lib'ify save_todo()
156 - + sequencer: lib'ify save_head()
157 - + sequencer: lib'ify create_seq_dir()
158 - + sequencer: lib'ify read_populate_opts()
159 - + sequencer: lib'ify read_populate_todo()
160 - + sequencer: lib'ify read_and_refresh_cache()
161 - + sequencer: lib'ify prepare_revs()
162 - + sequencer: lib'ify walk_revs_populate_todo()
163 - + sequencer: lib'ify do_pick_commit()
164 - + sequencer: lib'ify do_recursive_merge()
165 - + sequencer: lib'ify write_message()
166 - + sequencer: do not die() in do_pick_commit()
167 - + sequencer: lib'ify sequencer_pick_revisions()
168 -
169 - Lifts calls to exit(2) and die() higher in the callchain in
170 - sequencer.c files so that more helper functions in it can be used
171 - by callers that want to handle error conditions themselves.
172 -
173 -
174 -* mh/ref-store (2016-09-09) 38 commits
175 - (merged to 'next' on 2016-09-12 at 1b0bd3c)
176 - + refs: implement iteration over only per-worktree refs
177 - + refs: make lock generic
178 - + refs: add method to rename refs
179 - + refs: add methods to init refs db
180 - + refs: make delete_refs() virtual
181 - + refs: add method for initial ref transaction commit
182 - + refs: add methods for reflog
183 - + refs: add method iterator_begin
184 - + files_ref_iterator_begin(): take a ref_store argument
185 - + split_symref_update(): add a files_ref_store argument
186 - + lock_ref_sha1_basic(): add a files_ref_store argument
187 - + lock_ref_for_update(): add a files_ref_store argument
188 - + commit_ref_update(): add a files_ref_store argument
189 - + lock_raw_ref(): add a files_ref_store argument
190 - + repack_without_refs(): add a files_ref_store argument
191 - + refs: make peel_ref() virtual
192 - + refs: make create_symref() virtual
193 - + refs: make pack_refs() virtual
194 - + refs: make verify_refname_available() virtual
195 - + refs: make read_raw_ref() virtual
196 - + resolve_gitlink_ref(): rename path parameter to submodule
197 - + resolve_gitlink_ref(): avoid memory allocation in many cases
198 - + resolve_gitlink_ref(): implement using resolve_ref_recursively()
199 - + resolve_ref_recursively(): new function
200 - + read_raw_ref(): take a (struct ref_store *) argument
201 - + resolve_gitlink_packed_ref(): remove function
202 - + resolve_packed_ref(): rename function from resolve_missing_loose_ref()
203 - + refs: reorder definitions
204 - + refs: add a transaction_commit() method
205 - + {lock,commit,rollback}_packed_refs(): add files_ref_store arguments
206 - + resolve_missing_loose_ref(): add a files_ref_store argument
207 - + get_packed_ref(): add a files_ref_store argument
208 - + add_packed_ref(): add a files_ref_store argument
209 - + refs: create a base class "ref_store" for files_ref_store
210 - + refs: add a backend method structure
211 - + refs: rename struct ref_cache to files_ref_store
212 - + rename_ref_available(): add docstring
213 - + resolve_gitlink_ref(): eliminate temporary variable
214 -
215 - The ref-store abstraction was introduced to the refs API so that we
216 - can plug in different backends to store references.
217 -
218 -
219 -* sb/diff-cleanup (2016-09-08) 3 commits
220 - (merged to 'next' on 2016-09-12 at 5d16b28)
221 - + diff: remove dead code
222 - + diff: omit found pointer from emit_callback
223 - + diff.c: use diff_options directly
23 +* bw/pathspec-remove-unused-extern-decl (2016-09-13) 1 commit
24 + (merged to 'next' on 2016-09-15 at c5b281b)
25 + + pathspec: remove unnecessary function prototypes
26
27 Code cleanup.
28
29
228 -* sy/git-gui-i18n-ja (2016-09-07) 7 commits
229 - (merged to 'next' on 2016-09-12 at 4a701c2)
230 - + Merge branch 'sy/i18n' of git-gui
231 - + git-gui: update Japanese information
232 - + git-gui: update Japanese translation
233 - + git-gui: add Japanese language code
234 - + git-gui: apply po template to Japanese translation
235 - + git-gui: consistently use the same word for "blame" in Japanese
236 - + git-gui: consistently use the same word for "remote" in Japanese
30 +* et/add-chmod-x (2016-09-12) 1 commit
31 + (merged to 'next' on 2016-09-15 at c81abae)
32 + + add: document the chmod option
33 + (this branch is used by tg/add-chmod+x-fix.)
34 +
35 + "git add --chmod=+x" added recently lacked documentation, which has
36 + been corrected.
37
238 - Update Japanese translation for "git-gui".
38
240 ---------------------------------------------------
241 -[New Topics]
39 +* ew/http-do-not-forget-to-call-curl-multi-remove-handle (2016-09-13) 3 commits
40 + (merged to 'next' on 2016-09-15 at 696acb7)
41 + + http: always remove curl easy from curlm session on release
42 + + http: consolidate #ifdefs for curl_multi_remove_handle
43 + + http: warn on curl_multi_add_handle failures
44 +
45 + The http transport (with curl-multi option, which is the default
46 + these days) failed to remove curl-easy handle from a curlm session,
47 + which led to unnecessary API failures.
48 +
49 +
50 +* jk/delta-base-cache (2016-09-12) 1 commit
51 + (merged to 'next' on 2016-09-15 at 1e35f8d)
52 + + add_delta_base_cache: use list_for_each_safe
53 +
54 + Recently we updated the code to manage the in-core cache that holds
55 + objects that have recently been used to reconstitute other objects
56 + that are stored as deltas against them, but the update used an
57 + incorrect API function to manage the list of these objects. This
58 + has been fixed.
59 + This is a last-minute fix to a topic that graduated to 'master'
60 + post 2.10 release.
61 +
62 +
63 +* jk/patch-ids-no-merges (2016-09-12) 2 commits
64 + (merged to 'next' on 2016-09-15 at 14bb3a0)
65 + + patch-ids: refuse to compute patch-id for merge commit
66 + + patch-ids: turn off rename detection
67 +
68 + "git log --cherry-pick" used to include merge commits as candidates
69 + to be matched up with other commits, resulting a lot of wasted time.
70 + The patch-id generation logic has been updated to ignore merges to
71 + avoid the wastage.
72 +
73 +
74 +* jk/rebase-i-drop-ident-check (2016-07-29) 1 commit
75 + (merged to 'next' on 2016-08-14 at 6891bcd)
76 + + rebase-interactive: drop early check for valid ident
77 +
78 + Even when "git pull --rebase=preserve" (and the underlying "git
79 + rebase --preserve") can complete without creating any new commit
80 + (i.e. fast-forwards), it still insisted on having a usable ident
81 + information (read: user.email is set correctly), which was less
82 + than nice. As the underlying commands used inside "git rebase"
83 + would fail with a more meaningful error message and advice text
84 + when the bogus ident matters, this extra check was removed.
85 +
86 +
87 +* jk/reduce-gc-aggressive-depth (2016-08-11) 1 commit
88 + (merged to 'next' on 2016-08-11 at 6810c6f)
89 + + gc: default aggressive depth to 50
90 +
91 + "git gc --aggressive" used to limit the delta-chain length to 250,
92 + which is way too deep for gaining additional space savings and is
93 + detrimental for runtime performance. The limit has been reduced to
94 + 50.
95 +
96 +
97 +* jk/setup-sequence-update (2016-09-13) 16 commits
98 + (merged to 'next' on 2016-09-15 at 4df8399)
99 + + t1007: factor out repeated setup
100 + + init: reset cached config when entering new repo
101 + + init: expand comments explaining config trickery
102 + + config: only read .git/config from configured repos
103 + + test-config: setup git directory
104 + + t1302: use "git -C"
105 + + pager: handle early config
106 + + pager: use callbacks instead of configset
107 + + pager: make pager_program a file-local static
108 + + pager: stop loading git_default_config()
109 + + pager: remove obsolete comment
110 + + diff: always try to set up the repository
111 + + diff: handle --no-index prefixes consistently
112 + + diff: skip implicit no-index check when given --no-index
113 + + patch-id: use RUN_SETUP_GENTLY
114 + + hash-object: always try to set up the git repository
115 + (this branch is used by nd/init-core-worktree-in-multi-worktree-world.)
116 +
117 + There were numerous corner cases in which the configuration files
118 + are read and used or not read at all depending on the directory a
119 + Git command was run, leading to inconsistent behaviour. The code
120 + to set-up repository access at the beginning of a Git process has
121 + been updated to fix them.
122 +
123 +
124 +* js/cat-file-filters (2016-09-11) 4 commits
125 + (merged to 'next' on 2016-09-15 at a231380)
126 + + cat-file: support --textconv/--filters in batch mode
127 + + cat-file --textconv/--filters: allow specifying the path separately
128 + + cat-file: introduce the --filters option
129 + + cat-file: fix a grammo in the man page
130 +
131 + Even though "git hash-objects", which is a tool to take an
132 + on-filesystem data stream and put it into the Git object store,
133 + allowed to perform the "outside-world-to-Git" conversions (e.g.
134 + end-of-line conversions and application of the clean-filter), and
135 + it had the feature on by default from very early days, its reverse
136 + operation "git cat-file", which takes an object from the Git object
137 + store and externalize for the consumption by the outside world,
138 + lacked an equivalent mechanism to run the "Git-to-outside-world"
139 + conversion. The command learned the "--filters" option to do so.
140 +
141 +
142 +* jt/accept-capability-advertisement-when-fetching-from-void (2016-09-09) 3 commits
143 + (merged to 'next' on 2016-09-15 at 1cd9f9a)
144 + + connect: advertized capability is not a ref
145 + + connect: tighten check for unexpected early hang up
146 + + tests: move test_lazy_prereq JGIT to test-lib.sh
147 +
148 + JGit can show a fake ref "capabilities^{}" to "git fetch" when it
149 + does not advertise any refs, but "git fetch" was not prepared to
150 + see such an advertisement. When the other side disconnects without
151 + giving any ref advertisement, we used to say "there may not be a
152 + repository at that URL", but we may have seen other advertisement
153 + like "shallow" and ".have" in which case we definitely know that a
154 + repository is there. The code to detect this case has also been
155 + updated.
156 +
157 +
158 +* jt/format-patch-base-info-above-sig (2016-09-15) 1 commit
159 + (merged to 'next' on 2016-09-15 at 3da5c68)
160 + + format-patch: show base info before email signature
161 +
162 + "git format-patch --base=..." feature that was recently added
163 + showed the base commit information after "-- " e-mail signature
164 + line, which turned out to be inconvenient. The base information
165 + has been moved above the signature line.
166 +
167 +
168 +* ks/pack-objects-bitmap (2016-09-12) 2 commits
169 + (merged to 'next' on 2016-09-15 at e0600bd)
170 + + pack-objects: use reachability bitmap index when generating non-stdout pack
171 + + pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use
172 +
173 + Some codepaths in "git pack-objects" were not ready to use an
174 + existing pack bitmap; now they are and as the result they have
175 + become faster.
176 +
177 +
178 +* ks/perf-build-with-autoconf (2016-09-15) 1 commit
179 + (merged to 'next' on 2016-09-15 at 261878d)
180 + + t/perf/run: copy config.mak.autogen & friends to build area
181 +
182 + Performance tests done via "t/perf" did not use the same set of
183 + build configuration if the user relied on autoconf generated
184 + configuration.
185 +
186 +
187 +* mr/vcs-svn-printf-ulong (2016-09-14) 1 commit
188 + (merged to 'next' on 2016-09-15 at cc8ef53)
189 + + vcs-svn/fast_export: fix timestamp fmt specifiers
190 +
191 + Code cleanup.
192 +
193 +
194 +* rs/checkout-some-states-are-const (2016-09-13) 1 commit
195 + (merged to 'next' on 2016-09-15 at 19f219b)
196 + + checkout: constify parameters of checkout_stage() and checkout_merged()
197 +
198 + Code cleanup.
199 +
200 +
201 +* rs/pack-sort-with-llist-mergesort (2016-09-13) 1 commit
202 + (merged to 'next' on 2016-09-15 at 45159f5)
203 + + sha1_file: use llist_mergesort() for sorting packs
204 +
205 + Code cleanup.
206 +
207 +
208 +* rs/strbuf-remove-fix (2016-09-13) 1 commit
209 + (merged to 'next' on 2016-09-15 at 5f64556)
210 + + strbuf: use valid pointer in strbuf_remove()
211 +
212 + Code cleanup.
213 +
214 +
215 +* rs/unpack-trees-reduce-file-scope-global (2016-09-13) 1 commit
216 + (merged to 'next' on 2016-09-15 at cd16435)
217 + + unpack-trees: pass checkout state explicitly to check_updates()
218 +
219 + Code cleanup.
220 +
221
222 * rs/xdiff-merge-overlapping-hunks-for-W-context (2016-09-14) 1 commit
223 (merged to 'next' on 2016-09-15 at eaa85ab)
@@ -250,64 +229,87 @@ of the repositories listed at
229 line of the next one. This process may have to merge to adjacent
230 hunks, but the code forgot to do so in some cases.
231
253 - Will merge to 'master'.
232
233 +* va/i18n (2016-09-15) 11 commits
234 + (merged to 'next' on 2016-09-15 at 2b3d368)
235 + + i18n: update-index: mark warnings for translation
236 + + i18n: show-branch: mark plural strings for translation
237 + + i18n: show-branch: mark error messages for translation
238 + + i18n: receive-pack: mark messages for translation
239 + + notes: spell first word of error messages in lowercase
240 + + i18n: notes: mark error messages for translation
241 + + i18n: merge-recursive: mark verbose message for translation
242 + + i18n: merge-recursive: mark error messages for translation
243 + + i18n: config: mark error message for translation
244 + + i18n: branch: mark option description for translation
245 + + i18n: blame: mark error messages for translation
246 + (this branch is used by va/i18n-more.)
247
256 -* mm/config-color-ui-default-to-auto (2016-09-16) 1 commit
257 - - Documentation/config: default for color.* is color.ui
248 + More i18n.
249
259 - Documentation for individual configuration variables to control use
260 - of color (like `color.grep`) said that their default value was
261 - 'false', instead of saying their default is taken from `color.ui`.
262 - When we updated the default value for color.ui from 'false' to
263 - 'auto' quite a while ago, all of them broke. This has been
264 - corrected.
250 +--------------------------------------------------
251 +[New Topics]
252 +
253 +* ep/doc-check-ref-format-example (2016-09-21) 1 commit
254 + - git-check-ref-format.txt: fixup documentation
255 +
256 + A shell script example in check-ref-format documentation has been
257 + fixed.
258
259 Will merge to 'next'.
260
261
269 -* rs/c-auto-resets-attributes (2016-09-19) 1 commit
270 - - pretty: let %C(auto) reset all attributes
262 +* js/regexec-buf (2016-09-21) 3 commits
263 + - regex: use regexec_buf()
264 + - regex: add regexec_buf() that can work on a non NUL-terminated string
265 + - regex: -G<pattern> feeds a non NUL-terminated string to regexec() and fails
266
272 - The pretty-format specifier used by the "log" family of commands
273 - have "%C(auto)" to turn coloring of the output is taught to also
274 - issue a color-reset sequence to the output.
267 + Some codepaths in "git diff" used regexec(3) on a buffer that was
268 + mmap(2)ed, which may not have a terminating NUL, leading to a read
269 + beyond the end of the mapped region. This was fixed by introducing
270 + a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
271 + extension.
272
276 - Will merge to 'next'.
273 + Waiting for an Ack to minor tweaks.
274 + cf. <cover.1474482164.git.johannes.schindelin@gmx.de>
275
276
279 -* rs/cocci (2016-09-15) 3 commits
280 - - use strbuf_addstr() for adding constant strings to a strbuf, part 2
281 - - add coccicheck make target
282 - - contrib/coccinelle: fix semantic patch for oid_to_hex_r()
277 +* jt/format-patch-rfc (2016-09-21) 1 commit
278 + - format-patch: add "--rfc" for the common case of [RFC PATCH]
279
284 - Code cleanup.
280 + In some projects it is common to use "[RFC PATCH]" as the subject
281 + prefix for a patch meant for discussion rather than application. A
282 + new option "--rfc" was a short-hand for "--subject-prefix=RFC PATCH"
283 + to help the participants of such projects.
284
285 Will merge to 'next'.
286
287
289 -* va/i18n-more (2016-09-19) 6 commits
290 - - i18n: stash: mark messages for translation
291 - - i18n: notes-merge: mark die messages for translation
292 - - i18n: ident: mark hint for translation
293 - - i18n: diff: mark die errors for translation
294 - - i18n: connect: mark die messages for translation
295 - - i18n: commit: mark message for translation
296 - (this branch uses va/i18n.)
288 +* ls/travis-homebrew-path-fix (2016-09-21) 1 commit
289 + - travis-ci: ask homebrew for the its path instead of hardcoding it
290
298 - Even more i18n.
291 + The procedure to build Git on Mac OS X for Travis CI hardcoded the
292 + internal directory structure we assumed HomeBrew uses, which was a
293 + no-no. The procedure has been updated to ask HomeBrew things we
294 + need to know to fix this.
295
296 Will merge to 'next'.
297
298
303 -* jt/mailinfo-fold-in-body-headers (2016-09-19) 2 commits
304 - - mailinfo: make is_scissors_line take plain char *
305 - - mailinfo: separate in-body header processing
299 +* nd/init-core-worktree-in-multi-worktree-world (2016-09-21) 3 commits
300 + - init: reuse original_git_dir in set_git_dir_init()
301 + - init: do not set core.worktree more often than necessary
302 + - init: correct re-initialization from a linked worktree
303
304 + "git init" tried to record core.worktree in the repository's
305 + 'config' file when GIT_WORK_TREE environment variable was set and
306 + it was different from where GIT_DIR appears as ".git" at its top,
307 + but the logic was faulty when .git is a "gitdir:" file that points
308 + at the real place, causing trouble in working trees that are
309 + managed by "git worktree". This has been corrected.
310
308 -* kd/mailinfo-quoted-string (2016-09-19) 2 commits
309 - - mailinfo: unescape quoted-pair in header fields
310 - - t5100-mailinfo: replace common path prefix with variable
311 + The second one seems to need a bit more polishing.
312 + cf. <xmqqd1jx854z.fsf@gitster.mtv.corp.google.com>
313
314 --------------------------------------------------
315 [Stalled]
@@ -562,15 +564,75 @@ of the repositories listed at
564 --------------------------------------------------
565 [Cooking]
566
565 -* et/add-chmod-x (2016-09-12) 1 commit
566 - (merged to 'next' on 2016-09-15 at c81abae)
567 - + add: document the chmod option
568 - (this branch is used by tg/add-chmod+x-fix.)
567 +* mm/config-color-ui-default-to-auto (2016-09-16) 1 commit
568 + - Documentation/config: default for color.* is color.ui
569
570 - "git add --chmod=+x" added recently lacked documentation, which has
571 - been corrected.
570 + Documentation for individual configuration variables to control use
571 + of color (like `color.grep`) said that their default value was
572 + 'false', instead of saying their default is taken from `color.ui`.
573 + When we updated the default value for color.ui from 'false' to
574 + 'auto' quite a while ago, all of them broke. This has been
575 + corrected.
576
573 - Will merge to 'master'.
577 + Will merge to 'next'.
578 +
579 +
580 +* rs/c-auto-resets-attributes (2016-09-19) 1 commit
581 + - pretty: let %C(auto) reset all attributes
582 +
583 + The pretty-format specifier used by the "log" family of commands
584 + have "%C(auto)" to turn coloring of the output is taught to also
585 + issue a color-reset sequence to the output.
586 +
587 + Will merge to 'next'.
588 +
589 +
590 +* rs/cocci (2016-09-15) 3 commits
591 + - use strbuf_addstr() for adding constant strings to a strbuf, part 2
592 + - add coccicheck make target
593 + - contrib/coccinelle: fix semantic patch for oid_to_hex_r()
594 +
595 + Code cleanup.
596 +
597 + Will merge to 'next'.
598 +
599 +
600 +* va/i18n-more (2016-09-21) 6 commits
601 + - i18n: stash: mark messages for translation
602 + - i18n: notes-merge: mark die messages for translation
603 + - i18n: ident: mark hint for translation
604 + - i18n: i18n: diff: mark die messages for translation
605 + - i18n: connect: mark die messages for translation
606 + - i18n: commit: mark message for translation
607 +
608 + Even more i18n.
609 +
610 + Will merge to 'next'.
611 +
612 +
613 +* jt/mailinfo-fold-in-body-headers (2016-09-21) 3 commits
614 + - mailinfo: handle in-body header continuations
615 + - mailinfo: make is_scissors_line take plain char *
616 + - mailinfo: separate in-body header processing
617 +
618 + When "git format-patch --stdout" output is placed as an in-body
619 + header and it used the RFC2822 header folding, "git am" failed to
620 + notice and put the header line back into a single logical line.
621 + The underlying "git mailinfo" was taught to handle this properly.
622 +
623 + Will merge to 'next'.
624 +
625 +
626 +* kd/mailinfo-quoted-string (2016-09-19) 2 commits
627 + - mailinfo: unescape quoted-pair in header fields
628 + - t5100-mailinfo: replace common path prefix with variable
629 +
630 + An e-mail author named that spelled a backslash-quoted double quote
631 + in the human readable part "My \"double quoted\" name" was not
632 + unquoted correctly.
633 +
634 + Waiting for the discussion to conclude.
635 + cf. <20160920035710.qw2byl3qeqwih7t5@sigill.intra.peff.net>
636
637
638 * js/libify-require-clean-work-tree (2016-09-12) 5 commits
@@ -590,37 +652,26 @@ of the repositories listed at
652 cf. <xmqqpoo92bdr.fsf@gitster.mtv.corp.google.com>
653
654
593 -* ks/perf-build-with-autoconf (2016-09-15) 1 commit
594 - (merged to 'next' on 2016-09-15 at 261878d)
595 - + t/perf/run: copy config.mak.autogen & friends to build area
596 -
597 - Performance tests done via "t/perf" did not use the same set of
598 - build configuration if the user relied on autoconf generated
599 - configuration.
600 -
601 - Will merge to 'master'.
602 -
603 -
604 -* tg/add-chmod+x-fix (2016-09-15) 4 commits
605 - (merged to 'next' on 2016-09-15 at a97bdfd)
606 - + add: modify already added files when --chmod is given
607 - + read-cache: introduce chmod_index_entry
608 - + update-index: add test for chmod flags
609 - + Merge branch 'ib/t3700-add-chmod-x-updates' into tg/add-chmod+x-fix
610 - (this branch uses et/add-chmod-x.)
655 +* tg/add-chmod+x-fix (2016-09-21) 6 commits
656 + - t3700-add: do not check working tree file mode without POSIXPERM
657 + - t3700-add: create subdirectory gently
658 + - add: modify already added files when --chmod is given
659 + - read-cache: introduce chmod_index_entry
660 + - update-index: add test for chmod flags
661 + - Merge branch 'ib/t3700-add-chmod-x-updates' into tg/add-chmod+x-fix
662
663 "git add --chmod=+x <pathspec>" added recently only toggled the
664 executable bit for paths that are either new or modified. This has
665 been corrected to flip the executable bit for all paths that match
666 the given pathspec.
667
617 - Will merge to 'master'.
668 + Waiting for the discussion to conclude.
669 + cf. <c3aefd9d-b794-21a1-619e-bce6a3c2cf47@kdbg.org>
670
671
620 -* bw/ls-files-recurse-submodules (2016-09-13) 3 commits
621 - - SQUASH??? Undecided
622 - - SQUASH???
623 - - ls-files: adding support for submodules
672 +* bw/ls-files-recurse-submodules (2016-09-21) 2 commits
673 + - ls-files: add pathspec matching for submodules
674 + - ls-files: optionally recurse into submodules
675
676 "git ls-files" learned "--recurse-submodules" option that can be
677 used to get a listing of tracked files across submodules (i.e. this
@@ -632,72 +683,7 @@ of the repositories listed at
683 Waiting for the discussion to conclude.
684
685
635 -* bw/pathspec-remove-unused-extern-decl (2016-09-13) 1 commit
636 - (merged to 'next' on 2016-09-15 at c5b281b)
637 - + pathspec: remove unnecessary function prototypes
638 -
639 - Code cleanup.
640 -
641 - Will merge to 'master'.
642 -
643 -
644 -* ew/http-do-not-forget-to-call-curl-multi-remove-handle (2016-09-13) 3 commits
645 - (merged to 'next' on 2016-09-15 at 696acb7)
646 - + http: always remove curl easy from curlm session on release
647 - + http: consolidate #ifdefs for curl_multi_remove_handle
648 - + http: warn on curl_multi_add_handle failures
649 -
650 - The http transport (with curl-multi option, which is the default
651 - these days) failed to remove curl-easy handle from a curlm session,
652 - which led to unnecessary API failures.
653 -
654 - Will merge to 'master'.
655 -
656 -
657 -* jk/delta-base-cache (2016-09-12) 1 commit
658 - (merged to 'next' on 2016-09-15 at 1e35f8d)
659 - + add_delta_base_cache: use list_for_each_safe
660 -
661 - Recently we updated the code to manage the in-core cache that holds
662 - objects that have recently been used to reconstitute other objects
663 - that are stored as deltas against them, but the update used an
664 - incorrect API function to manage the list of these objects. This
665 - has been fixed.
666 -
667 - Will merge to 'master'.
668 - This is a last-minute fix to a topic that graduated to 'master'
669 - post 2.10 release.
670 -
671 -
672 -* jk/setup-sequence-update (2016-09-13) 16 commits
673 - (merged to 'next' on 2016-09-15 at 4df8399)
674 - + t1007: factor out repeated setup
675 - + init: reset cached config when entering new repo
676 - + init: expand comments explaining config trickery
677 - + config: only read .git/config from configured repos
678 - + test-config: setup git directory
679 - + t1302: use "git -C"
680 - + pager: handle early config
681 - + pager: use callbacks instead of configset
682 - + pager: make pager_program a file-local static
683 - + pager: stop loading git_default_config()
684 - + pager: remove obsolete comment
685 - + diff: always try to set up the repository
686 - + diff: handle --no-index prefixes consistently
687 - + diff: skip implicit no-index check when given --no-index
688 - + patch-id: use RUN_SETUP_GENTLY
689 - + hash-object: always try to set up the git repository
690 -
691 - There were numerous corner cases in which the configuration files
692 - are read and used or not read at all depending on the directory a
693 - Git command was run, leading to inconsistent behaviour. The code
694 - to set-up repository access at the beginning of a Git process has
695 - been updated to fix them.
696 -
697 - Will merge to 'master'.
698 -
699 -
700 -* ls/filter-process (2016-09-13) 10 commits
686 +* ls/filter-process (2016-09-21) 11 commits
687 - convert: add filter.<driver>.process option
688 - convert: make apply_filter() adhere to standard Git error handling
689 - convert: modernize tests
@@ -706,6 +692,7 @@ of the repositories listed at
692 - pkt-line: add packet_write_gently()
693 - pkt-line: add packet_flush_gently()
694 - pkt-line: add packet_write_fmt_gently()
695 + - run-command: move check_pipe() from write_or_die to run_command
696 - pkt-line: extract set_packet_header()
697 - pkt-line: rename packet_write() to packet_write_fmt()
698
@@ -716,53 +703,7 @@ of the repositories listed at
703 all filtering need is served by this single process for multiple
704 paths, reducing the process creation overhead.
705
719 - Waiting for the discussion to conclude.
720 - cf. <20160910062919.GB11001@tb-raspi> etc.
721 -
722 -
723 -* rs/checkout-some-states-are-const (2016-09-13) 1 commit
724 - (merged to 'next' on 2016-09-15 at 19f219b)
725 - + checkout: constify parameters of checkout_stage() and checkout_merged()
726 -
727 - Code cleanup.
728 -
729 - Will merge to 'master'.
730 -
731 -
732 -* rs/pack-sort-with-llist-mergesort (2016-09-13) 1 commit
733 - (merged to 'next' on 2016-09-15 at 45159f5)
734 - + sha1_file: use llist_mergesort() for sorting packs
735 -
736 - Code cleanup.
737 -
738 - Will merge to 'master'.
739 -
740 -
741 -* rs/strbuf-remove-fix (2016-09-13) 1 commit
742 - (merged to 'next' on 2016-09-15 at 5f64556)
743 - + strbuf: use valid pointer in strbuf_remove()
744 -
745 - Code cleanup.
746 -
747 - Will merge to 'master'.
748 -
749 -
750 -* rs/unpack-trees-reduce-file-scope-global (2016-09-13) 1 commit
751 - (merged to 'next' on 2016-09-15 at cd16435)
752 - + unpack-trees: pass checkout state explicitly to check_updates()
753 -
754 - Code cleanup.
755 -
756 - Will merge to 'master'.
757 -
758 -
759 -* mr/vcs-svn-printf-ulong (2016-09-14) 1 commit
760 - (merged to 'next' on 2016-09-15 at cc8ef53)
761 - + vcs-svn/fast_export: fix timestamp fmt specifiers
762 -
763 - Code cleanup.
764 -
765 - Will merge to 'master'.
706 + Is this ready?
707
708
709 * hv/submodule-not-yet-pushed-fix (2016-09-15) 5 commits
@@ -782,37 +723,6 @@ of the repositories listed at
723 queued to 'pu'.
724
725
785 -* jk/patch-ids-no-merges (2016-09-12) 2 commits
786 - (merged to 'next' on 2016-09-15 at 14bb3a0)
787 - + patch-ids: refuse to compute patch-id for merge commit
788 - + patch-ids: turn off rename detection
789 -
790 - "git log --cherry-pick" used to include merge commits as candidates
791 - to be matched up with other commits, resulting a lot of wasted time.
792 - The patch-id generation logic has been updated to ignore merges to
793 - avoid the wastage.
794 -
795 - Will merge to 'master'.
796 -
797 -
798 -* jt/accept-capability-advertisement-when-fetching-from-void (2016-09-09) 3 commits
799 - (merged to 'next' on 2016-09-15 at 1cd9f9a)
800 - + connect: advertized capability is not a ref
801 - + connect: tighten check for unexpected early hang up
802 - + tests: move test_lazy_prereq JGIT to test-lib.sh
803 -
804 - JGit can show a fake ref "capabilities^{}" to "git fetch" when it
805 - does not advertise any refs, but "git fetch" was not prepared to
806 - see such an advertisement. When the other side disconnects without
807 - giving any ref advertisement, we used to say "there may not be a
808 - repository at that URL", but we may have seen other advertisement
809 - like "shallow" and ".have" in which case we definitely know that a
810 - repository is there. The code to detect this case has also been
811 - updated.
812 -
813 - Will merge to 'master'.
814 -
815 -
726 * rt/rebase-i-broken-insn-advise (2016-09-07) 1 commit
727 - rebase -i: improve advice on bad instruction lines
728
@@ -826,20 +736,7 @@ of the repositories listed at
736 queued merely as a reminder.
737
738
829 -* jt/format-patch-base-info-above-sig (2016-09-15) 1 commit
830 - (merged to 'next' on 2016-09-15 at 3da5c68)
831 - + format-patch: show base info before email signature
832 -
833 - "git format-patch --base=..." feature that was recently added
834 - showed the base commit information after "-- " e-mail signature
835 - line, which turned out to be inconvenient. The base information
836 - has been moved above the signature line.
837 -
838 - Will merge to 'master'.
839 -
840 -
841 -* nd/checkout-disambiguation (2016-09-09) 4 commits
842 - - fixup! checkout.txt: document a common case that ignores ambiguation rules
739 +* nd/checkout-disambiguation (2016-09-21) 3 commits
740 - checkout: fix ambiguity check in subdir
741 - checkout.txt: document a common case that ignores ambiguation rules
742 - checkout: add some spaces between code and comment
@@ -851,7 +748,7 @@ of the repositories listed at
748 This was poorly documented and the check was incorrect when the
749 command was run from a subdirectory.
750
854 - Waiting for an Ack for fixup!
751 + Will merge to 'next'.
752
753
754 * sg/fix-versioncmp-with-common-suffix (2016-09-08) 5 commits
@@ -870,26 +767,6 @@ of the repositories listed at
767 cf. <20160908223727.Horde.jVOOJ278ssZ3qkyjkmyqZD-@webmail.informatik.kit.edu>
768
769
873 -* va/i18n (2016-09-15) 11 commits
874 - (merged to 'next' on 2016-09-15 at 2b3d368)
875 - + i18n: update-index: mark warnings for translation
876 - + i18n: show-branch: mark plural strings for translation
877 - + i18n: show-branch: mark error messages for translation
878 - + i18n: receive-pack: mark messages for translation
879 - + notes: spell first word of error messages in lowercase
880 - + i18n: notes: mark error messages for translation
881 - + i18n: merge-recursive: mark verbose message for translation
882 - + i18n: merge-recursive: mark error messages for translation
883 - + i18n: config: mark error message for translation
884 - + i18n: branch: mark option description for translation
885 - + i18n: blame: mark error messages for translation
886 - (this branch is used by va/i18n-more.)
887 -
888 - More i18n.
889 -
890 - Will merge to 'master'.
891 -
892 -
770 * cp/completion-negative-refs (2016-08-24) 1 commit
771 - completion: support excluding refs
772
@@ -900,26 +777,6 @@ of the repositories listed at
777 Needs review.
778
779
903 -* js/cat-file-filters (2016-09-11) 4 commits
904 - (merged to 'next' on 2016-09-15 at a231380)
905 - + cat-file: support --textconv/--filters in batch mode
906 - + cat-file --textconv/--filters: allow specifying the path separately
907 - + cat-file: introduce the --filters option
908 - + cat-file: fix a grammo in the man page
909 -
910 - Even though "git hash-objects", which is a tool to take an
911 - on-filesystem data stream and put it into the Git object store,
912 - allowed to perform the "outside-world-to-Git" conversions (e.g.
913 - end-of-line conversions and application of the clean-filter), and
914 - it had the feature on by default from very early days, its reverse
915 - operation "git cat-file", which takes an object from the Git object
916 - store and externalize for the consumption by the outside world,
917 - lacked an equivalent mechanism to run the "Git-to-outside-world"
918 - conversion. The command learned the "--filters" option to do so.
919 -
920 - Will merge to 'master'.
921 -
922 -
780 * sb/push-make-submodule-check-the-default (2016-08-24) 1 commit
781 - push: change submodule default to check
782
@@ -941,30 +798,6 @@ of the repositories listed at
798 Needs review and testing.
799
800
944 -* jk/reduce-gc-aggressive-depth (2016-08-11) 1 commit
945 - (merged to 'next' on 2016-08-11 at 6810c6f)
946 - + gc: default aggressive depth to 50
947 -
948 - "git gc --aggressive" used to limit the delta-chain length to 250,
949 - which is way too deep for gaining additional space savings and is
950 - detrimental for runtime performance. The limit has been reduced to
951 - 50.
952 -
953 - Will hold to see if people scream.
954 -
955 -
956 -* ks/pack-objects-bitmap (2016-09-12) 2 commits
957 - (merged to 'next' on 2016-09-15 at e0600bd)
958 - + pack-objects: use reachability bitmap index when generating non-stdout pack
959 - + pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use
960 -
961 - Some codepaths in "git pack-objects" were not ready to use an
962 - existing pack bitmap; now they are and as the result they have
963 - become faster.
964 -
965 - Will merge to 'master'.
966 -
967 -
801 * mh/diff-indent-heuristic (2016-09-19) 8 commits
802 - blame: honor the diff heuristic options and config
803 - parse-options: add parse_opt_unknown_cb()
@@ -985,12 +818,14 @@ of the repositories listed at
818
819
820 * jk/pack-objects-optim-mru (2016-08-11) 4 commits
988 - (merged to 'next' on 2016-08-11 at c0a7dae)
821 + (merged to 'next' on 2016-09-21 at 97b919b)
822 + pack-objects: use mru list when iterating over packs
823 + pack-objects: break delta cycles before delta-search phase
824 + sha1_file: make packed_object_info public
825 + provide an initializer for "struct object_info"
826
827 + Originally merged to 'next' on 2016-08-11
828 +
829 "git pack-objects" in a repository with many packfiles used to
830 spend a lot of time looking for/at objects in them; the accesses to
831 the packfiles are now optimized by checking the most-recently-used
@@ -999,22 +834,6 @@ of the repositories listed at
834 Will hold to see if people scream.
835
836
1002 -* jk/rebase-i-drop-ident-check (2016-07-29) 1 commit
1003 - (merged to 'next' on 2016-08-14 at 6891bcd)
1004 - + rebase-interactive: drop early check for valid ident
1005 -
1006 - Even when "git pull --rebase=preserve" (and the underlying "git
1007 - rebase --preserve") can complete without creating any new commit
1008 - (i.e. fast-forwards), it still insisted on having a usable ident
1009 - information (read: user.email is set correctly), which was less
1010 - than nice. As the underlying commands used inside "git rebase"
1011 - would fail with a more meaningful error message and advice text
1012 - when the bogus ident matters, this extra check was removed.
1013 -
1014 - Will hold to see if people scream.
1015 - cf. <20160729224944.GA23242@sigill.intra.peff.net>
1016 -
1017 -
837 * dp/autoconf-curl-ssl (2016-06-28) 1 commit
838 - ./configure.ac: detect SSL in libcurl using curl-config
839
@@ -1035,9 +854,11 @@ of the repositories listed at
854
855
856 * ex/deprecate-empty-pathspec-as-match-all (2016-06-22) 1 commit
1038 - (merged to 'next' on 2016-07-13 at d9ca7fb)
857 + (merged to 'next' on 2016-09-21 at e19148e)
858 + pathspec: warn on empty strings as pathspec
859
860 + Originally merged to 'next' on 2016-07-13
861 +
862 An empty string used as a pathspec element has always meant
863 'everything matches', but it is too easy to write a script that
864 finds a path to remove in $path and run 'git rm "$paht"', which