What's cooking (2014/09 #03)

Junio C Hamano committed Sep 11, 2014 at 15:51 UTC 2761533a9b0df8dff2df6912094239cee3b72418
1 file changed +327 -495
whats-cooking.txt
+327 -495
@@ -1,19 +1,19 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Sep 2014, #02; Tue, 9)
4 -X-master-at: 0c72b98f31bf6eabd75be565a08ffcf0d8e74b1f
5 -X-next-at: 90a3d47e489b9d2109b72bab5f08275f9af8a3ad
3 +Subject: What's cooking in git.git (Sep 2014, #03; Thu, 11)
4 +X-master-at: ce1d3a93a6405b8a0313491df3099919ed3d150f
5 +X-next-at: 9363127135f6ed0af0d141c3fc3ac63acc2d9010
6
7 -What's cooking in git.git (Sep 2014, #02; Tue, 9)
7 +What's cooking in git.git (Sep 2014, #03; Thu, 11)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
13
14 -The second batch of topics have graduated to 'master'. There are
15 -too many topics waiting to be in 'next' but without comments and
16 -reviews on the list, which is somewhat disturbing.
14 +The third batch of topics have graduated to 'master'. There are too
15 +many topics waiting to be in 'next' but without comments and reviews
16 +on the list, which is somewhat disturbing.
17
18 You can find the changes described here in the integration branches
19 of the repositories listed at
@@ -23,222 +23,349 @@ of the repositories listed at
23 --------------------------------------------------
24 [Graduated to "master"]
25
26 -* bc/imap-send-doc (2014-08-05) 1 commit
27 - (merged to 'next' on 2014-08-29 at 2ea514b)
28 - + imap-send doc: omit confusing "to use imap-send" modifier
29 -
30 -
31 -* jc/apply-ws-prefix (2014-08-07) 3 commits
32 - (merged to 'next' on 2014-08-29 at 67967d3)
33 - + apply: omit ws check for excluded paths
34 - + apply: hoist use_patch() helper for path exclusion up
35 - + apply: use the right attribute for paths in non-Git patches
26 +* br/http-init-fix (2014-08-21) 2 commits
27 + (merged to 'next' on 2014-09-03 at 6d42f5e)
28 + + http: style fixes for curl_multi_init error check
29 + + http.c: die if curl_*_init fails
30
37 - Applying a patch not generated by Git in a subdirectory used to
38 - check the whitespace breakage using the attributes for incorrect
39 - paths. Also whitespace checks were performed even for paths
40 - excluded via "git apply --exclude=<path>" mechanism.
31 + Code clean-up.
32
33
43 -* jc/config-mak-document-darwin-vs-macosx (2014-08-15) 1 commit
44 - (merged to 'next' on 2014-08-29 at 55e28af)
45 - + config.mak.uname: add hint on uname_R for MacOS X
46 - (this branch uses km/no-apple-common-crypto-on-darwin-8-and-below.)
34 +* br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
35 + (merged to 'next' on 2014-09-04 at a182987)
36 + + imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
37 + + imap-send.c: imap_folder -> imap_server_conf.folder
38 + + git-imap-send: simplify tunnel construction
39
40 + Code clean-up.
41
49 -* jc/not-mingw-cygwin (2014-07-21) 2 commits
50 - (merged to 'next' on 2014-08-29 at 0d00bb7)
51 - + test prerequisites: enumerate with commas
52 - + test prerequisites: eradicate NOT_FOO
42
54 - We have been using NOT_{MINGW,CYGWIN} test prerequisites long
55 - before Peff invented support for negated prerequisites e.g. !MINGW
56 - and we still add more uses of the former. Convert them to the
57 - latter to avoid confusion.
43 +* dt/cache-tree-repair (2014-09-03) 5 commits
44 + (merged to 'next' on 2014-09-03 at 1c8ff65)
45 + + cache-tree: do not try to use an invalidated subtree info to build a tree
46 + (merged to 'next' on 2014-08-26 at 6faccdb)
47 + + cache-tree: Write updated cache-tree after commit
48 + + cache-tree: subdirectory tests
49 + + test-dump-cache-tree: invalid trees are not errors
50 + + cache-tree: create/update cache-tree on checkout
51
52 + Add a few more places in "commit" and "checkout" that make sure
53 + that the cache-tree is fully populated in the index.
54
60 -* jk/command-line-config-empty-string (2014-08-05) 1 commit
61 - (merged to 'next' on 2014-08-29 at 74f04af)
62 - + config: teach "git -c" to recognize an empty string
55
64 - "git -c section.var command" and "git -c section.var= command"
65 - should pass the configuration differently (the former should be
66 - a boolean true, the latter should be an empty string).
56 +* et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
57 + (merged to 'next' on 2014-09-03 at 5be5957)
58 + + upload-pack: keep poll(2)'s timeout to -1
59
60 + We used to pass -1000 to poll(2), expecting it to also mean "no
61 + timeout", which should be spelled as -1.
62
69 -* jk/prompt-stash-could-be-packed (2014-08-25) 1 commit
70 - (merged to 'next' on 2014-08-29 at 526e3bd)
71 - + git-prompt: do not look for refs/stash in $GIT_DIR
63
73 - The prompt script checked $GIT_DIR/ref/stash file to see if there
74 - is a stash, which was a no-no.
64 +* jk/contrib-subtree-make-all (2014-08-18) 1 commit
65 + (merged to 'next' on 2014-09-03 at 919d889)
66 + + subtree: make "all" default target of Makefile
67
68
77 -* jk/stash-list-p (2014-08-07) 1 commit
78 - (merged to 'next' on 2014-08-29 at db94527)
79 - + stash: default listing to working-tree diff
69 +* jk/fast-import-fixes (2014-08-25) 2 commits
70 + (merged to 'next' on 2014-09-04 at 74838e5)
71 + + fast-import: fix buffer overflow in dump_tags
72 + + fast-import: clean up pack_data pointer in end_packfile
73
81 - Teach "git stash list -p" to show the difference between the base
82 - commit version and the working tree version, which is in line with
83 - what "git show" gives.
74 + With sufficiently long refnames, fast-import could have overflown
75 + an on-stack buffer.
76
77
86 -* km/no-apple-common-crypto-on-darwin-8-and-below (2014-08-15) 1 commit
87 - (merged to 'next' on 2014-08-29 at 8abb416)
88 - + config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems
89 - (this branch is used by jc/config-mak-document-darwin-vs-macosx.)
78 +* jk/make-simplify-dependencies (2014-08-26) 3 commits
79 + (merged to 'next' on 2014-09-03 at 820a600)
80 + + Makefile: drop CHECK_HEADER_DEPENDENCIES code
81 + + Makefile: use `find` to determine static header dependencies
82 + + i18n: treat "make pot" as an explicitly-invoked target
83
91 - Build automation for older versions of MacOS X.
84 + Admit that keeping LIB_H up-to-date, only for those that do not use
85 + the automatically generated dependencies, is a losing battle, and
86 + make it conservative by making everything depend on anything.
87
88
94 -* la/init-doc (2014-08-08) 7 commits
95 - (merged to 'next' on 2014-08-29 at 2cf846b)
96 - + Documentation: git-init: flesh out example
97 - + Documentation: git-init: template directory: reword and cross-reference
98 - + Documentation: git-init: reword parenthetical statements
99 - + Documentation: git-init: --separate-git-dir: clarify
100 - + Documentation: git-init: template directory: reword
101 - + Documentation: git-init: list items facelift
102 - + Documentation: git-init: typographical fixes
89 +* jk/name-decoration-alloc (2014-08-27) 3 commits
90 + (merged to 'next' on 2014-09-04 at 05f0d29)
91 + + log-tree: use FLEX_ARRAY in name_decoration
92 + + log-tree: make name_decoration hash static
93 + + log-tree: make add_name_decoration a public function
94
95 + The API to allocate the structure to keep track of commit
96 + decoration was cumbersome to use, inviting lazy code to
97 + overallocate memory.
98
105 -* lf/bundle-exclusion (2014-08-07) 1 commit
106 - (merged to 'next' on 2014-08-29 at d84b102)
107 - + bundle: fix exclusion of annotated tags
99
109 - "git bundle create" with date-range specification were meant to
110 - exclude tags outside the range, but it didn't.
100 +* jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
101 + (merged to 'next' on 2014-09-04 at bfe3873)
102 + + pack-refs: prune top-level refs like "refs/foo"
103
104 + After "pack-refs --prune" packed refs at the top-level, it failed
105 + to prune them.
106
113 -* mm/log-branch-desc-plug-leak (2014-08-07) 1 commit
114 - (merged to 'next' on 2014-08-29 at 3580add)
115 - + builtin/log.c: fix minor memory leak
107
108 +* jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
109 + (merged to 'next' on 2014-09-04 at e15803a)
110 + + checkout -m: attempt merge when deletion of path was staged
111 + + unpack-trees: use 'cuddled' style for if-else cascade
112 + + unpack-trees: simplify 'all other failures' case
113
118 -* nd/strbuf-utf8-replace (2014-08-11) 1 commit
119 - (merged to 'next' on 2014-08-29 at 5d1ddf4)
120 - + utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
114 + "git checkout -m" did not switch to another branch while carrying
115 + the local changes forward when a path was deleted from the index.
116
117
123 -* rs/clean-menu-item-defn (2014-08-18) 1 commit
124 - (merged to 'next' on 2014-08-29 at 88c1a9d)
125 - + clean: use f(void) instead of f() to declare a pointer to a function without arguments
118 +* mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
119 + (merged to 'next' on 2014-09-03 at e3f872f)
120 + + merge, pull: stop advising 'commit -a' in case of conflict
121
122
128 -* rs/inline-compat-path-macros (2014-08-18) 1 commit
129 - (merged to 'next' on 2014-08-29 at 5705ad5)
130 - + turn path macros into inline function
123 +* nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
124 + (merged to 'next' on 2014-09-04 at 028cd42)
125 + + fetch: silence git-gc if --quiet is given
126 + + fetch: convert argv_gc_auto to struct argv_array
127
128 + Progress output from "git gc --auto" was visible in "git fetch -q".
129
133 -* rs/refresh-beyond-symlink (2014-08-10) 1 commit
134 - (merged to 'next' on 2014-08-29 at 90a4a8b)
135 - + read-cache: check for leading symlinks when refreshing index
130
137 - "git add x" where x that used to be a directory has become a
138 - symbolic link to a directory misbehaved.
131 +* nd/large-blobs (2014-08-18) 5 commits
132 + (merged to 'next' on 2014-09-04 at 16d7c62)
133 + + diff: shortcut for diff'ing two binary SHA-1 objects
134 + + diff --stat: mark any file larger than core.bigfilethreshold binary
135 + + diff.c: allow to pass more flags to diff_populate_filespec
136 + + sha1_file.c: do not die failing to malloc in unpack_compressed_entry
137 + + wrapper.c: introduce gentle xmallocz that does not die()
138
139 + Teach a few codepaths to punt (instead of dying) when large blobs
140 + that would not fit in core are involved in the operation.
141
141 -* sb/blame-msg-i18n (2014-08-12) 1 commit
142 - (merged to 'next' on 2014-08-29 at 5b33466)
143 - + builtin/blame.c: add translation to warning about failed revision walk
142
143 +* nd/mv-code-cleaning (2014-09-03) 8 commits
144 + (merged to 'next' on 2014-09-03 at 4315447)
145 + + mv: no SP between function name and the first opening parenthese
146 + + mv: combine two if(s)
147 + + mv: unindent one level for directory move code
148 + + mv: move index search code out
149 + + mv: remove an "if" that's always true
150 + + mv: split submodule move preparation code out
151 + + mv: flatten error handling code block
152 + + mv: mark strings for translations
153
146 -* sb/mailsplit-dead-code-removal (2014-08-13) 1 commit
147 - (merged to 'next' on 2014-08-29 at 4f9ca4f)
148 - + mailsplit.c: remove dead code
154 + Code clean-up.
155
156
151 -* sb/plug-leaks (2014-08-10) 2 commits
152 - (merged to 'next' on 2014-08-29 at e42f0b8)
153 - + clone.c: don't leak memory in cmd_clone
154 - + remote.c: don't leak the base branch name in format_tracking_info
157 +* rs/child-process-init (2014-08-20) 4 commits
158 + (merged to 'next' on 2014-09-03 at c17c06c)
159 + + run-command: inline prepare_run_command_v_opt()
160 + + run-command: call run_command_v_opt_cd_env() instead of duplicating it
161 + + run-command: introduce child_process_init()
162 + + run-command: introduce CHILD_PROCESS_INIT
163
164 + Code clean-up.
165
157 -* sb/prepare-revision-walk-error-check (2014-08-12) 1 commit
158 - (merged to 'next' on 2014-08-29 at fb82508)
159 - + prepare_revision_walk(): check for return value in all places
166
167 +* rs/list-optim (2014-08-25) 2 commits
168 + (merged to 'next' on 2014-09-04 at eecaf99)
169 + + walker: avoid quadratic list insertion in mark_complete
170 + + sha1_name: avoid quadratic list insertion in handle_one_ref
171
162 -* so/rebase-doc (2014-08-12) 1 commit
163 - (merged to 'next' on 2014-08-29 at 77cfce1)
164 - + Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
172 + Fix a couple of "accumulate into a sorted list" to "accumulate and
173 + then sort the list".
174
166 - May need further updates to the description to explain what makes
167 - various modes of operation to decide that the request can become a
168 - "no-op".
175
176 +* rs/ref-transaction-1 (2014-09-03) 22 commits
177 + (merged to 'next' on 2014-09-03 at 68e20b8)
178 + + update-ref --stdin: pass transaction around explicitly
179 + + update-ref --stdin: narrow scope of err strbuf
180 + + refs.c: make delete_ref use a transaction
181 + + refs.c: make prune_ref use a transaction to delete the ref
182 + + refs.c: remove lock_ref_sha1
183 + + refs.c: remove the update_ref_write function
184 + + refs.c: remove the update_ref_lock function
185 + + refs.c: make lock_ref_sha1 static
186 + + walker.c: use ref transaction for ref updates
187 + + fast-import.c: use a ref transaction when dumping tags
188 + + receive-pack.c: use a reference transaction for updating the refs
189 + + refs.c: change update_ref to use a transaction
190 + + branch.c: use ref transaction for all ref updates
191 + + fast-import.c: change update_branch to use ref transactions
192 + + sequencer.c: use ref transactions for all ref updates
193 + + commit.c: use ref transactions for updates
194 + + replace.c: use the ref transaction functions for updates
195 + + tag.c: use ref transactions when doing updates
196 + + refs.c: add transaction.status and track OPEN/CLOSED
197 + + refs.c: make ref_transaction_begin take an err argument
198 + + refs.c: update ref_transaction_delete to check for error and return status
199 + + refs.c: change ref_transaction_create to do error checking and return status
200 + (this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
201
171 -* sp/pack-protocol-doc-on-shallow (2014-08-28) 1 commit
172 - (merged to 'next' on 2014-08-29 at b1ae451)
173 - + Document LF appearing in shallow command during send-pack/receive-pack
202 + The second batch of the transactional ref update series.
203
204
176 -* tb/pretty-format-cd-date-format (2014-08-21) 1 commit
177 - (merged to 'next' on 2014-08-29 at ab8ccd4)
178 - + pretty: note that %cd respects the --date= option
205 +* ta/config-set-1 (2014-08-07) 8 commits
206 + (merged to 'next' on 2014-09-03 at 184b2ef)
207 + + add tests for `git_config_get_string_const()`
208 + + add a test for semantic errors in config files
209 + + rewrite git_config() to use the config-set API
210 + + config: add `git_die_config()` to the config-set API
211 + + change `git_config()` return value to void
212 + + add line number and file name info to `config_set`
213 + + config.c: fix accuracy of line number in errors
214 + + config.c: mark error and warnings strings for translation
215 + (this branch is used by ta/config-set-2.)
216
180 - Documentation update.
217 + Use the new caching config-set API in git_config() calls.
218
219
183 -* tf/imap-send-create (2014-08-25) 2 commits
184 - (merged to 'next' on 2014-08-29 at 8390945)
185 - + imap-send: create target mailbox if it is missing
186 - + imap-send: clarify CRAM-MD5 vs LOGIN documentation
220 +* ta/config-set-2 (2014-08-13) 15 commits
221 + (merged to 'next' on 2014-09-03 at f2eff02)
222 + + builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
223 + + merge-recursive.c: replace `git_config()` with `git_config_get_int()`
224 + + ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
225 + + fast-import.c: replace `git_config()` with `git_config_get_*()` family
226 + + branch.c: replace `git_config()` with `git_config_get_string()
227 + + alias.c: replace `git_config()` with `git_config_get_string()`
228 + + imap-send.c: replace `git_config()` with `git_config_get_*()` family
229 + + pager.c: replace `git_config()` with `git_config_get_value()`
230 + + builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
231 + + rerere.c: replace `git_config()` with `git_config_get_*()` family
232 + + fetchpack.c: replace `git_config()` with `git_config_get_*()` family
233 + + archive.c: replace `git_config()` with `git_config_get_bool()` family
234 + + read-cache.c: replace `git_config()` with `git_config_get_*()` family
235 + + http-backend.c: replace `git_config()` with `git_config_get_bool()` family
236 + + daemon.c: replace `git_config()` with `git_config_get_bool()` family
237 + (this branch uses ta/config-set-1.)
238
239 + Update git_config() users with callback functions for a very narrow
240 + scope with calls to config-set API that lets us query a single
241 + variable.
242
243 --------------------------------------------------
244 [New Topics]
245
192 -* as/calloc-takes-nmemb-then-size (2014-09-03) 1 commit
193 - - calloc() and xcalloc() takes nmemb and then size
246 +* jc/hash-object (2014-09-11) 3 commits
247 + - hash-object: add --literally option
248 + - hash-object: pass 'write_object' as a flag
249 + - hash-object: reduce file-scope statics
250 + (this branch is used by jc/hash-object-fsck-tag.)
251
195 - Code clean-up.
252 + "hash-object" learned a new "--literally" option to hash any random
253 + garbage into a loose object, to allow us to create a test data for
254 + mechanisms to catch corrupt objects.
255
197 - Will merge to 'next'.
256
257 +* jc/hash-object-fsck-tag (2014-09-11) 2 commits
258 + - t1450: make sure fsck detects a malformed tagger line
259 + - Merge branch 'js/fsck-tag-validation' into HEAD
260 + (this branch uses jc/hash-object and js/fsck-tag-validation.)
261 +
262 + Using "hash-object --literally", test one of the new breakages
263 + js/fsck-tag-validation topic teaches "fsck" to catch is caught.
264
200 -* tb/complete-diff-ignore-blank-lines (2014-09-03) 1 commit
201 - - completion: Add --ignore-blank-lines for diff
265 +
266 +* jk/fsck-exit-code-fix (2014-09-10) 1 commit
267 + - fsck: exit with non-zero status upon error from fsck_obj()
268 +
269 + "git fsck" failed to report that it found corrupt objects via its
270 + exit status in some cases.
271
272 Will merge to 'next'.
273
274
206 -* jc/parseopt-verify-short-name (2014-09-04) 1 commit
207 - - parse-options: detect attempt to add a duplicate short option name
275 +* js/fsck-tag-validation (2014-09-11) 6 commits
276 + - Make sure that index-pack --strict checks tag objects
277 + - Add regression tests for stricter tag fsck'ing
278 + - fsck: check tag objects' headers
279 + - Make sure fsck_commit_buffer() does not run out of the buffer
280 + - fsck_object(): allow passing object data separately from the object itself
281 + - Refactor type_from_string() to allow continuing after detecting an error
282 + (this branch is used by jc/hash-object-fsck-tag.)
283
209 - Add checks for a common programming mistake to assign the same
210 - short option name to two separate options to help developers.
284 + Teach "git fsck" to inspect the contents of annotated tag objects.
285
286 Will merge to 'next'.
287
288 +--------------------------------------------------
289 +[Stalled]
290
215 -* rs/more-uses-of-skip-prefix (2014-09-02) 2 commits
216 - - pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
217 - - connect: simplify check_ref() using skip_prefix() and starts_with()
291 +* rs/ref-transaction-multi (2014-09-03) 7 commits
292 + - ### rs/ref-transaction-multi
293 + - refs.c: make the *_packed_refs functions static
294 + - refs.c: make repack_without_refs static
295 + - remote.c: use a transaction for deleting refs
296 + - refs.c: write updates to packed refs when a transaction has more than one ref
297 + - refs.c: move reflog updates into its own function
298 + - ### rs/ref-transaction-rename
299 + (this branch uses rs/ref-transaction, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
300
219 - Code clean-up.
301 + Follow-up on rs/ref-transaction series to use the packed-ref to
302 + achieve atomicity when multiple refs are involved.
303
221 - Will merge to 'next'.
304 + It appears that rs/ref-transaction series is being rerolled, so
305 + these will be rerolled as well.
306
307
224 -* kb/perf-trace (2014-09-08) 1 commit
225 - - trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
308 +* rs/ref-transaction-rename (2014-09-03) 6 commits
309 + - refs.c: rollback the lockfile before we die() in repack_without_refs
310 + - refs.c: update rename_ref to use a transaction
311 + - refs.c: use packed refs when deleting refs during a transaction
312 + - refs.c: return error instead of dying when locking fails during transaction
313 + - refs.c: allow passing raw git_committer_info as email to _update_reflog
314 + - ### rs/ref-transaction-reflog
315 + (this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction and rs/ref-transaction-reflog.)
316
227 - Compilation fix for some compilers.
317 + Follow-up on rs/ref-transaction series to make renaming a ref
318 + transactional (i.e. "delete old and create new" should not leave
319 + an in-between state behind when it fails).
320
229 - Will merge to 'next'.
321 + It appears that rs/ref-transaction series is being rerolled, so
322 + these will be rerolled as well.
323
324
232 -* rs/export-strbuf-addchars (2014-09-08) 2 commits
233 - - strbuf: use strbuf_addchars() for adding a char multiple times
234 - - strbuf: export strbuf_addchars()
325 +* rs/ref-transaction-reflog (2014-09-03) 16 commits
326 + - refs.c: allow deleting refs with a broken sha1
327 + - refs.c: remove lock_any_ref_for_update
328 + - refs.c: make unlock_ref/close_ref/commit_ref static
329 + - refs.c: rename log_ref_setup to create_reflog
330 + - reflog.c: use a reflog transaction when writing during expire
331 + - refs.c: allow multiple reflog updates during a single transaction
332 + - refs.c: only write reflog update if msg is non-NULL
333 + - refs.c: add a flag to allow reflog updates to truncate the log
334 + - refs.c: add a transaction function to append a reflog entry
335 + - lockfile.c: make hold_lock_file_for_append preserve meaningful errno
336 + - refs.c: add a function to append a reflog entry to a fd
337 + - refs.c: add a new update_type field to ref_update
338 + - refs.c: rename the transaction functions
339 + - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
340 + - refs.c: make ref_transaction_create a wrapper to ref_transaction_update
341 + - ### rs/ref-transaction
342 + (this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction.)
343
236 - Code clean-up.
344 + Cover updates to reflog with the same transaction mechanism as used
345 + for reflog manipulations.
346
238 - Will merge to 'next'.
347 + It appears that rs/ref-transaction series is being rerolled, so
348 + these will be rerolled as well.
349 +
350 +
351 +* rs/ref-transaction (2014-09-03) 13 commits
352 + - refs.c: fix handling of badly named refs
353 + - refs.c: make write_ref_sha1 static
354 + - fetch.c: change s_update_ref to use a ref transaction
355 + - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
356 + - refs.c: pass a skip list to name_conflict_fn
357 + - refs.c: call lock_ref_sha1_basic directly from commit
358 + - refs.c: move the check for valid refname to lock_ref_sha1_basic
359 + - refs.c: pass NULL as *flags to read_ref_full
360 + - refs.c: pass the ref log message to _create/delete/update instead of _commit
361 + - refs.c: add an err argument to delete_ref_loose
362 + - wrapper.c: add a new function unlink_or_msg
363 + - wrapper.c: simplify warn_if_unremovable
364 + - ### rs/ref-transaction-1
365 + (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
366 +
367 + Rerolled and was asked to wait. Seems to break "git remote rm".
368
240 ---------------------------------------------------
241 -[Stalled]
369
370 * hv/submodule-config (2014-06-30) 4 commits
371 - do not die on error of parsing fetchrecursesubmodules option
@@ -426,10 +553,59 @@ of the repositories listed at
553 --------------------------------------------------
554 [Cooking]
555
429 -* tr/remerge-diff (2014-09-08) 8 commits
430 - - log --remerge-diff: show what the conflict resolution changed
431 - - name-hash: allow dir hashing even when !ignore_case
432 - - merge-recursive: allow storing conflict hunks in index
556 +* as/calloc-takes-nmemb-then-size (2014-09-03) 1 commit
557 + - calloc() and xcalloc() takes nmemb and then size
558 +
559 + Code clean-up.
560 +
561 + Will merge to 'next'.
562 +
563 +
564 +* tb/complete-diff-ignore-blank-lines (2014-09-03) 1 commit
565 + - completion: Add --ignore-blank-lines for diff
566 +
567 + Will merge to 'next'.
568 +
569 +
570 +* jc/parseopt-verify-short-name (2014-09-04) 1 commit
571 + - parse-options: detect attempt to add a duplicate short option name
572 +
573 + Add checks for a common programming mistake to assign the same
574 + short option name to two separate options to help developers.
575 +
576 + Will merge to 'next'.
577 +
578 +
579 +* rs/more-uses-of-skip-prefix (2014-09-02) 2 commits
580 + - pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
581 + - connect: simplify check_ref() using skip_prefix() and starts_with()
582 +
583 + Code clean-up.
584 +
585 + Will merge to 'next'.
586 +
587 +
588 +* kb/perf-trace (2014-09-08) 1 commit
589 + - trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
590 +
591 + Compilation fix for some compilers.
592 +
593 + Will merge to 'next'.
594 +
595 +
596 +* rs/export-strbuf-addchars (2014-09-08) 2 commits
597 + - strbuf: use strbuf_addchars() for adding a char multiple times
598 + - strbuf: export strbuf_addchars()
599 +
600 + Code clean-up.
601 +
602 + Will merge to 'next'.
603 +
604 +
605 +* tr/remerge-diff (2014-09-08) 8 commits
606 + - log --remerge-diff: show what the conflict resolution changed
607 + - name-hash: allow dir hashing even when !ignore_case
608 + - merge-recursive: allow storing conflict hunks in index
609 - merge_diff_mode: fold all merge diff variants into an enum
610 - combine-diff: do not pass revs->dense_combined_merges redundantly
611 - merge-recursive: -Xindex-only to leave worktree unchanged
@@ -444,8 +620,7 @@ of the repositories listed at
620 Review comments sent.
621
622
447 -
448 -* mh/lockfile (2014-09-08) 33 commits
623 +* mh/lockfile (2014-09-11) 33 commits
624 - lockfile.c: store absolute path
625 - Extract a function commit_lock_file_to()
626 - trim_last_path_elm(): replace last_path_elm()
@@ -480,7 +655,7 @@ of the repositories listed at
655 - api-lockfile: expand the documentation
656 - unable_to_lock_die(): rename function from unable_to_lock_index_die()
657
483 - Rerolled but not reviewed yet.
658 + Rerolled and reviews starting.
659
660
661 * nd/multiple-work-trees (2014-09-03) 32 commits
@@ -521,6 +696,9 @@ of the repositories listed at
696 rely on symbolic links and make sharing of objects and refs safer
697 by making the borrowee and borrowers aware of each other.
698
699 + Re-reroll posted but haven't had a chance to pick it up yet.
700 + The series already received a few comments.
701 +
702
703 * cc/interpret-trailers (2014-05-28) 11 commits
704 - Documentation: add documentation for 'git interpret-trailers'
@@ -564,13 +742,6 @@ of the repositories listed at
742 Will merge to 'next'.
743
744
567 -* jk/contrib-subtree-make-all (2014-08-18) 1 commit
568 - (merged to 'next' on 2014-09-03 at 919d889)
569 - + subtree: make "all" default target of Makefile
570 -
571 - Will merge to 'master'.
572 -
573 -
745 * jk/fast-export-anonymize (2014-08-28) 2 commits
746 - docs/fast-export: explain --anonymize more completely
747 - teach fast-export an --anonymize option
@@ -635,13 +806,6 @@ of the repositories listed at
806 Will merge to 'next'.
807
808
638 -* mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
639 - (merged to 'next' on 2014-09-03 at e3f872f)
640 - + merge, pull: stop advising 'commit -a' in case of conflict
641 -
642 - Will merge to 'master'.
643 -
644 -
809 * ah/grammofix (2014-09-02) 1 commit
810 - grammofix in user-facing messages
811
@@ -705,147 +869,6 @@ of the repositories listed at
869 We may want to undo the "a^" bit along the lines of $gmane/255445
870
871
708 -* et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
709 - (merged to 'next' on 2014-09-03 at 5be5957)
710 - + upload-pack: keep poll(2)'s timeout to -1
711 -
712 - We used to pass -1000 to poll(2), expecting it to also mean "no
713 - timeout", which should be spelled as -1.
714 -
715 - Will merge to 'master'.
716 -
717 -
718 -* jk/make-simplify-dependencies (2014-08-26) 3 commits
719 - (merged to 'next' on 2014-09-03 at 820a600)
720 - + Makefile: drop CHECK_HEADER_DEPENDENCIES code
721 - + Makefile: use `find` to determine static header dependencies
722 - + i18n: treat "make pot" as an explicitly-invoked target
723 -
724 - Admit that keeping LIB_H up-to-date, only for those that do not use
725 - the automatically generated dependencies, is a losing battle, and
726 - make it conservative by making everything depend on anything.
727 -
728 - Will merge to 'master'.
729 -
730 -
731 -* jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
732 - (merged to 'next' on 2014-09-04 at bfe3873)
733 - + pack-refs: prune top-level refs like "refs/foo"
734 -
735 - After "pack-refs --prune" packed refs at the top-level, it failed
736 - to prune them.
737 -
738 - Will merge to 'master'.
739 -
740 -
741 -* jk/fast-import-fixes (2014-08-25) 2 commits
742 - (merged to 'next' on 2014-09-04 at 74838e5)
743 - + fast-import: fix buffer overflow in dump_tags
744 - + fast-import: clean up pack_data pointer in end_packfile
745 -
746 - With sufficiently long refnames, fast-import could have overflown
747 - an on-stack buffer.
748 -
749 - Will merge to 'master'.
750 -
751 -
752 -* nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
753 - (merged to 'next' on 2014-09-04 at 028cd42)
754 - + fetch: silence git-gc if --quiet is given
755 - + fetch: convert argv_gc_auto to struct argv_array
756 -
757 - Progress output from "git gc --auto" was visible in "git fetch -q".
758 -
759 - Will merge to 'master'.
760 -
761 -
762 -* rs/list-optim (2014-08-25) 2 commits
763 - (merged to 'next' on 2014-09-04 at eecaf99)
764 - + walker: avoid quadratic list insertion in mark_complete
765 - + sha1_name: avoid quadratic list insertion in handle_one_ref
766 -
767 - Fix a couple of "accumulate into a sorted list" to "accumulate and
768 - then sort the list".
769 -
770 - Will merge to 'master'.
771 -
772 -
773 -* jk/name-decoration-alloc (2014-08-27) 3 commits
774 - (merged to 'next' on 2014-09-04 at 05f0d29)
775 - + log-tree: use FLEX_ARRAY in name_decoration
776 - + log-tree: make name_decoration hash static
777 - + log-tree: make add_name_decoration a public function
778 -
779 - The API to allocate the structure to keep track of commit
780 - decoration was cumbersome to use, inviting lazy code to
781 - overallocate memory.
782 -
783 - Will merge to 'master'.
784 -
785 -
786 -* br/http-init-fix (2014-08-21) 2 commits
787 - (merged to 'next' on 2014-09-03 at 6d42f5e)
788 - + http: style fixes for curl_multi_init error check
789 - + http.c: die if curl_*_init fails
790 -
791 - Code clean-up.
792 -
793 - Will merge to 'master'.
794 -
795 -
796 -* br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
797 - (merged to 'next' on 2014-09-04 at a182987)
798 - + imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
799 - + imap-send.c: imap_folder -> imap_server_conf.folder
800 - + git-imap-send: simplify tunnel construction
801 -
802 - Code clean-up.
803 -
804 - Will merge to 'master'.
805 -
806 -
807 -* jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
808 - (merged to 'next' on 2014-09-04 at e15803a)
809 - + checkout -m: attempt merge when deletion of path was staged
810 - + unpack-trees: use 'cuddled' style for if-else cascade
811 - + unpack-trees: simplify 'all other failures' case
812 -
813 - "git checkout -m" did not switch to another branch while carrying
814 - the local changes forward when a path was deleted from the index.
815 -
816 - Will merge to 'master'.
817 -
818 -
819 -* nd/large-blobs (2014-08-18) 5 commits
820 - (merged to 'next' on 2014-09-04 at 16d7c62)
821 - + diff: shortcut for diff'ing two binary SHA-1 objects
822 - + diff --stat: mark any file larger than core.bigfilethreshold binary
823 - + diff.c: allow to pass more flags to diff_populate_filespec
824 - + sha1_file.c: do not die failing to malloc in unpack_compressed_entry
825 - + wrapper.c: introduce gentle xmallocz that does not die()
826 -
827 - Teach a few codepaths to punt (instead of dying) when large blobs
828 - that would not fit in core are involved in the operation.
829 -
830 - Will merge to 'master'.
831 -
832 -
833 -* nd/mv-code-cleaning (2014-09-03) 8 commits
834 - (merged to 'next' on 2014-09-03 at 4315447)
835 - + mv: no SP between function name and the first opening parenthese
836 - + mv: combine two if(s)
837 - + mv: unindent one level for directory move code
838 - + mv: move index search code out
839 - + mv: remove an "if" that's always true
840 - + mv: split submodule move preparation code out
841 - + mv: flatten error handling code block
842 - + mv: mark strings for translations
843 -
844 - Code clean-up.
845 -
846 - Will merge to 'master'.
847 -
848 -
872 * sp/stream-clean-filter (2014-08-28) 6 commits
873 - convert: stream from fd to required clean filter to reduce used address space
874 - copy_fd(): do not close the input file descriptor
@@ -886,189 +909,9 @@ of the repositories listed at
909 tips of branches at a public repository really point the commits
910 the pusher wanted to, without having to "trust" the server.
911
889 - Hopefully a final reroll. Comments & reviews?
890 -
891 -
892 -* rs/child-process-init (2014-08-20) 4 commits
893 - (merged to 'next' on 2014-09-03 at c17c06c)
894 - + run-command: inline prepare_run_command_v_opt()
895 - + run-command: call run_command_v_opt_cd_env() instead of duplicating it
896 - + run-command: introduce child_process_init()
897 - + run-command: introduce CHILD_PROCESS_INIT
898 -
899 - Code clean-up.
900 -
901 - Will merge to 'master'.
902 -
903 -
904 -* ta/config-set-1 (2014-08-07) 8 commits
905 - (merged to 'next' on 2014-09-03 at 184b2ef)
906 - + add tests for `git_config_get_string_const()`
907 - + add a test for semantic errors in config files
908 - + rewrite git_config() to use the config-set API
909 - + config: add `git_die_config()` to the config-set API
910 - + change `git_config()` return value to void
911 - + add line number and file name info to `config_set`
912 - + config.c: fix accuracy of line number in errors
913 - + config.c: mark error and warnings strings for translation
914 - (this branch is used by ta/config-set-2.)
915 -
916 - Use the new caching config-set API in git_config() calls.
917 -
918 - Will merge to 'master'.
919 -
920 -
921 -* ta/config-set-2 (2014-08-13) 15 commits
922 - (merged to 'next' on 2014-09-03 at f2eff02)
923 - + builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
924 - + merge-recursive.c: replace `git_config()` with `git_config_get_int()`
925 - + ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
926 - + fast-import.c: replace `git_config()` with `git_config_get_*()` family
927 - + branch.c: replace `git_config()` with `git_config_get_string()
928 - + alias.c: replace `git_config()` with `git_config_get_string()`
929 - + imap-send.c: replace `git_config()` with `git_config_get_*()` family
930 - + pager.c: replace `git_config()` with `git_config_get_value()`
931 - + builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
932 - + rerere.c: replace `git_config()` with `git_config_get_*()` family
933 - + fetchpack.c: replace `git_config()` with `git_config_get_*()` family
934 - + archive.c: replace `git_config()` with `git_config_get_bool()` family
935 - + read-cache.c: replace `git_config()` with `git_config_get_*()` family
936 - + http-backend.c: replace `git_config()` with `git_config_get_bool()` family
937 - + daemon.c: replace `git_config()` with `git_config_get_bool()` family
938 - (this branch uses ta/config-set-1.)
939 -
940 - Update git_config() users with callback functions for a very narrow
941 - scope with calls to config-set API that lets us query a single
942 - variable.
943 -
944 - Will merge to 'master'.
945 -
946 -
947 -* rs/ref-transaction-multi (2014-09-03) 7 commits
948 - - ### rs/ref-transaction-multi
949 - - refs.c: make the *_packed_refs functions static
950 - - refs.c: make repack_without_refs static
951 - - remote.c: use a transaction for deleting refs
952 - - refs.c: write updates to packed refs when a transaction has more than one ref
953 - - refs.c: move reflog updates into its own function
954 - - ### rs/ref-transaction-rename
955 - (this branch uses rs/ref-transaction, rs/ref-transaction-1, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
956 -
957 - Follow-up on rs/ref-transaction series to use the packed-ref to
958 - achieve atomicity when multiple refs are involved.
959 -
912 Comments & reviews?
913
914
963 -* rs/ref-transaction-rename (2014-09-03) 6 commits
964 - - refs.c: rollback the lockfile before we die() in repack_without_refs
965 - - refs.c: update rename_ref to use a transaction
966 - - refs.c: use packed refs when deleting refs during a transaction
967 - - refs.c: return error instead of dying when locking fails during transaction
968 - - refs.c: allow passing raw git_committer_info as email to _update_reflog
969 - - ### rs/ref-transaction-reflog
970 - (this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction, rs/ref-transaction-1 and rs/ref-transaction-reflog.)
971 -
972 - Follow-up on rs/ref-transaction series to make renaming a ref
973 - transactional (i.e. "delete old and create new" should not leave
974 - an in-between state behind when it fails).
975 -
976 - Comments & reviews?
977 -
978 -
979 -* rs/ref-transaction-reflog (2014-09-03) 16 commits
980 - - refs.c: allow deleting refs with a broken sha1
981 - - refs.c: remove lock_any_ref_for_update
982 - - refs.c: make unlock_ref/close_ref/commit_ref static
983 - - refs.c: rename log_ref_setup to create_reflog
984 - - reflog.c: use a reflog transaction when writing during expire
985 - - refs.c: allow multiple reflog updates during a single transaction
986 - - refs.c: only write reflog update if msg is non-NULL
987 - - refs.c: add a flag to allow reflog updates to truncate the log
988 - - refs.c: add a transaction function to append a reflog entry
989 - - lockfile.c: make hold_lock_file_for_append preserve meaningful errno
990 - - refs.c: add a function to append a reflog entry to a fd
991 - - refs.c: add a new update_type field to ref_update
992 - - refs.c: rename the transaction functions
993 - - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
994 - - refs.c: make ref_transaction_create a wrapper to ref_transaction_update
995 - - ### rs/ref-transaction
996 - (this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
997 -
998 - Cover updates to reflog with the same transaction mechanism as used
999 - for reflog manipulations.
1000 -
1001 - Comments & reviews?
1002 - Otherwise will merge to 'next'.
1003 -
1004 -
1005 -
1006 -* rs/ref-transaction (2014-09-03) 13 commits
1007 - - refs.c: fix handling of badly named refs
1008 - - refs.c: make write_ref_sha1 static
1009 - - fetch.c: change s_update_ref to use a ref transaction
1010 - - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
1011 - - refs.c: pass a skip list to name_conflict_fn
1012 - - refs.c: call lock_ref_sha1_basic directly from commit
1013 - - refs.c: move the check for valid refname to lock_ref_sha1_basic
1014 - - refs.c: pass NULL as *flags to read_ref_full
1015 - - refs.c: pass the ref log message to _create/delete/update instead of _commit
1016 - - refs.c: add an err argument to delete_ref_loose
1017 - - wrapper.c: add a new function unlink_or_msg
1018 - - wrapper.c: simplify warn_if_unremovable
1019 - - ### rs/ref-transaction-1
1020 - (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
1021 -
1022 - Comments & reviews?
1023 - Otherwise will merge to 'next'.
1024 -
1025 -
1026 -* rs/ref-transaction-1 (2014-09-03) 22 commits
1027 - (merged to 'next' on 2014-09-03 at 68e20b8)
1028 - + update-ref --stdin: pass transaction around explicitly
1029 - + update-ref --stdin: narrow scope of err strbuf
1030 - + refs.c: make delete_ref use a transaction
1031 - + refs.c: make prune_ref use a transaction to delete the ref
1032 - + refs.c: remove lock_ref_sha1
1033 - + refs.c: remove the update_ref_write function
1034 - + refs.c: remove the update_ref_lock function
1035 - + refs.c: make lock_ref_sha1 static
1036 - + walker.c: use ref transaction for ref updates
1037 - + fast-import.c: use a ref transaction when dumping tags
1038 - + receive-pack.c: use a reference transaction for updating the refs
1039 - + refs.c: change update_ref to use a transaction
1040 - + branch.c: use ref transaction for all ref updates
1041 - + fast-import.c: change update_branch to use ref transactions
1042 - + sequencer.c: use ref transactions for all ref updates
1043 - + commit.c: use ref transactions for updates
1044 - + replace.c: use the ref transaction functions for updates
1045 - + tag.c: use ref transactions when doing updates
1046 - + refs.c: add transaction.status and track OPEN/CLOSED
1047 - + refs.c: make ref_transaction_begin take an err argument
1048 - + refs.c: update ref_transaction_delete to check for error and return status
1049 - + refs.c: change ref_transaction_create to do error checking and return status
1050 - (this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
1051 -
1052 - The second batch of the transactional ref update series.
1053 -
1054 - Will merge to 'master'.
1055 -
1056 -
1057 -* dt/cache-tree-repair (2014-09-03) 5 commits
1058 - (merged to 'next' on 2014-09-03 at 1c8ff65)
1059 - + cache-tree: do not try to use an invalidated subtree info to build a tree
1060 - (merged to 'next' on 2014-08-26 at 6faccdb)
1061 - + cache-tree: Write updated cache-tree after commit
1062 - + cache-tree: subdirectory tests
1063 - + test-dump-cache-tree: invalid trees are not errors
1064 - + cache-tree: create/update cache-tree on checkout
1065 -
1066 - Add a few more places in "commit" and "checkout" that make sure
1067 - that the cache-tree is fully populated in the index.
1068 -
1069 - Will merge to 'master'.
1070 -
1071 -
915 * jc/test-lazy-prereq (2014-06-13) 1 commit
916 - tests: drop GIT_*_TIMING_TESTS environment variable support
917
@@ -1088,14 +931,3 @@ of the repositories listed at
931
932 Nobody seems to be jumping up & down requesting this last step.
933 Perhaps will drop.
1091 -
1092 -
1093 ---------------------------------------------------
1094 -[Discarded]
1095 -
1096 -* tr/merge-recursive-index-only (2014-02-05) 3 commits
1097 - - merge-recursive: -Xindex-only to leave worktree unchanged
1098 - - merge-recursive: internal flag to avoid touching the worktree
1099 - - merge-recursive: remove dead conditional in update_stages()
1100 -
1101 - Now part of tr/remerge-diff.