What's cooking (2013/10 #06)
[git.git] / whats-cooking.txt
blob78ff3b9481c5480f8ec7ec0629765045a689d731
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Oct 2013, #06; Fri, 25)
4 X-master-at: 3d092bfc6f2d9a998967979f926c661e9762601c
5 X-next-at: 4bebb6611df42b82d24d2e1efd8b270ca0779f33
7 What's cooking in git.git (Oct 2013, #06; Fri, 25)
8 --------------------------------------------------
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'.
14 You can find the changes described here in the integration branches
15 of the repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [New Topics]
22 * bc/http-100-continue (2013-10-23) 1 commit
23  - http: add option to enable 100 Continue responses
25  Conditionally allow "100 Continue" responses to help use of
26  GSS-Negotiate authentication scheme over HTTP transport.
28  Seems to be still under discussion.
31 * jc/merge-base-reflog (2013-10-25) 2 commits
32  - merge-base: teach "--fork-point" mode
33  - merge-base: use OPT_CMDMODE and clarify the command line parsing
35  Code the logic in "pull --rebase" that figures out a fork point
36  from reflog entries in C.
39 * jk/date-c-double-semicolon (2013-10-24) 1 commit
40  - drop redundant semicolon in empty while
42  Will merge to 'next'.
45 * jk/for-each-ref-skip-parsing (2013-10-24) 1 commit
46  - for-each-ref: avoid loading objects to print %(objectname)
48  Will merge to 'next'.
51 * jk/pack-bitmap (2013-10-25) 19 commits
52  - pack-bitmap: implement optional name_hash cache
53  - t: add basic bitmap functionality tests
54  - repack: consider bitmaps when performing repacks
55  - repack: handle optional files created by pack-objects
56  - repack: turn exts array into array-of-struct
57  - repack: stop using magic number for ARRAY_SIZE(exts)
58  - pack-objects: implement bitmap writing
59  - rev-list: add bitmap mode to speed up object lists
60  - pack-objects: use bitmaps when packing objects
61  - pack-bitmap: add support for bitmap indexes
62  - documentation: add documentation for the bitmap format
63  - ewah: compressed bitmap implementation
64  - compat: add endianness helpers
65  - sha1_file: export `git_open_noatime`
66  - revision: allow setting custom limiter function
67  - pack-objects: factor out name_hash
68  - pack-objects: refactor the packing list
69  - revindex: export new APIs
70  - sha1write: make buffer const-correct
72  Borrows the bitmap index into packfiles from JGit to speed up
73  enumeration of objects involved in a commit range without having to
74  fully traverse the history.
77 * jk/refs-c-squelch-gcc (2013-10-24) 1 commit
78  - silence gcc array-bounds warning
80  Will merge to 'next'.
83 * jk/robustify-parse-commit (2013-10-24) 6 commits
84  - checkout: do not die when leaving broken detached HEAD
85  - use parse_commit_or_die instead of custom message
86  - use parse_commit_or_die instead of segfaulting
87  - assume parse_commit checks for NULL commit
88  - assume parse_commit checks commit->object.parsed
89  - log_tree_diff: die when we fail to parse a commit
91  Will merge to 'next' after taking another look.
94 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-24) 16 commits
95  - fetch, remote: properly convey --no-prune options to subprocesses
96  - builtin/remote.c:update(): use struct argv_array
97  - builtin/remote.c: reorder function definitions
98  - query_refspecs(): move some constants out of the loop
99  - fetch --prune: prune only based on explicit refspecs
100  - SQUASH??? --tags is no longer a short-hand
101  - fetch --tags: fetch tags *in addition to* other stuff
102  - builtin/fetch.c: reorder function definitions
103  - ref_remove_duplicates(): improve documentation comment
104  - ref_remove_duplicates(): simplify function
105  - ref_remove_duplicates(): avoid redundant bisection
106  - get_ref_map(): rename local variables
107  - api-remote.txt: correct section "struct refspec"
108  - t5510: check that "git fetch --prune --tags" does not prune branches
109  - t5510: prepare test refs more straightforwardly
110  - t5510: use the correct tag name in test
112  Some questionable paragraphs in the doc updates, but other than
113  that looks reasonably solid.
116 * nd/lift-path-max (2013-10-24) 2 commits
117  - checkout_entry(): clarify the use of topath[] parameter
118  - entry.c: convert checkout_entry to use strbuf
120  Will merge to 'next'.
123 * jk/pack-corruption-post-mortem (2013-10-25) 1 commit
124  - howto: add article on recovering a corrupted object
126  Will merge to 'next'.
129 * jk/reset-p-current-head-fix (2013-10-25) 2 commits
130  - reset: pass real rev name to add--interactive
131  - add-interactive: handle unborn branch in patch mode
133  "git reset -p HEAD" has codepath to special case it from resetting
134  to contents of other commits, but recent change broke it.
136  Will merge to 'next'.
139 * mf/graph-show-root (2013-10-25) 1 commit
140  - graph.c: mark root commit differently
142  Needs adjustments to some tests.
145 * nv/parseopt-opt-arg (2013-10-25) 1 commit
146  - rev-parse --parseopt: add the --sticked-long mode
148  Enhance "rev-parse --parseopt" mode to help parsing options with
149  an optional parameter.
151 --------------------------------------------------
152 [Stalled]
154 * np/pack-v4 (2013-09-18) 90 commits
155  . packv4-parse.c: add tree offset caching
156  . t1050: replace one instance of show-index with verify-pack
157  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
158  . unpack-objects: decode v4 trees
159  . unpack-objects: allow to save processed bytes to a buffer
160  - ...
162  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
163  primarily for wider distribution of the preview edition.
165  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
166  this topic conflicts with.
169 * sc/doc-howto-dumb-http (2013-10-16) 1 commit
170  . doc/howto: warn about (dumb)http server document being too old
172  The new text needs to go somewhere in the body of the document,
173  not before the title line.
176 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
177  - perf-lib: add test_perf_cleanup target
178  - perf-lib: split starting the test from the execution
180  Add test_perf_cleanup shell function to the perf suite, that allows
181  the script writers to define a test with a clean-up action.
183  Holding until needed.
186 * yt/shortened-rename (2013-10-18) 2 commits
187  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
188  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
190  Attempts to give more weight on the fact that a filepair represents
191  a rename than showing substring of the actual path when diffstat
192  lines are not wide enough.
194  I am not sure if that is solving a right problem, though.
197 * tr/merge-recursive-index-only (2013-07-07) 3 commits
198  - merge-recursive: -Xindex-only to leave worktree unchanged
199  - merge-recursive: untangle double meaning of o->call_depth
200  - merge-recursive: remove dead conditional in update_stages()
202  Holding until there is a caller to learn from.
205 * jc/ref-excludes (2013-09-03) 2 commits
206  - document --exclude option
207  - revision: introduce --exclude=<glob> to tame wildcards
209  People often wished a way to tell "git log --branches" (and "git
210  log --remotes --not --branches") to exclude some local branches
211  from the expansion of "--branches" (similarly for "--tags", "--all"
212  and "--glob=<pattern>").  Now they have one.
214  Needs a matching change to rev-parse.
217 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
218  - git-send-email: Cache generated message-ids, use them when prompting
219  - git-send-email: add optional 'choices' parameter to the ask sub
222 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
223  - ### DONTMERGE: needs better explanation on what config they need
224  - pack-refs.c: Add missing call to git_config()
225  - show-ref.c: Add missing call to git_config()
227  The changes themselves are probably good, but it is unclear what
228  basic setting needs to be read for which exact operation.
230  Waiting for clarification.
231  $gmane/228294
234 * jc/format-patch (2013-04-22) 2 commits
235  - format-patch: --inline-single
236  - format-patch: rename "no_inline" field
238  A new option to send a single patch to the standard output to be
239  appended at the bottom of a message.  I personally have no need for
240  this, but it was easy enough to cobble together.  Tests, docs and
241  stripping out more MIMEy stuff are left as exercises to interested
242  parties.
245 * jk/gitweb-utf8 (2013-04-08) 4 commits
246  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
247  - gitweb: Don't append ';js=(0|1)' to external links
248  - gitweb: Make feed title valid utf8
249  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
251  Various fixes to gitweb.
253  Drew Northup volunteered to take a look into this.
254  $gmane/226216
257 * jc/show-branch (2013-06-07) 5 commits
258  - show-branch: use commit slab to represent bitflags of arbitrary width
259  - show-branch.c: remove "all_mask"
260  - show-branch.c: abstract out "flags" operation
261  - show-branch.c: lift all_mask/all_revs to a global static
262  - show-branch.c: update comment style
264  Waiting for the final step to lift the hard-limit before sending it out.
266 --------------------------------------------------
267 [Cooking]
269 * ap/remote-hg-unquote-cquote (2013-10-23) 1 commit
270  - remote-hg: unquote C-style paths when exporting
272  A fast-import stream expresses a pathname with funny characters by
273  quoting them in C style; remote-hg remote helper forgot to unquote
274  such a path.
276  Will merge to 'next'.
279 * jl/pack-transfer-avoid-double-close (2013-10-23) 1 commit
280  - Clear fd after closing to avoid double-close error
282  The codepath that send_pack() calls pack_objects() mistakenly
283  closed the same file descriptor twice, leading to potentially
284  closing a wrong file descriptor that was opened in the meantime.
286  Will merge to 'next'.
287  Needs to be merged later to 'maint'.
290 * nd/magic-pathspec (2013-10-22) 1 commit
291  - Fix calling parse_pathspec with no paths nor PATHSPEC_PREFER_* flags
293  All callers to parse_pathspec() must choose between getting no
294  pathspec or one path that is limited to the current directory
295  when there is no paths given on the command line, but there were
296  two callers that violated this rule, triggering a BUG().
298  Will merge to 'next'.
301 * sb/git-svn-docs-indent-with-ht (2013-10-22) 1 commit
302  - git-svn docs: Use tabs consistently within the ascii doc
304  Will merge to 'next'.
307 * tr/gitk-doc-update (2013-10-22) 1 commit
308  - Documentation: revamp gitk(1)
310  Will merge to 'next'.
313 * tr/valgrind-test-fix (2013-10-22) 2 commits
314  - Revert "test-lib: allow prefixing a custom string before "ok N" etc."
315  - Revert "test-lib: support running tests under valgrind in parallel"
317  Will merge to 'next'.
320 * sb/repack-in-c (2013-10-22) 1 commit
321   (merged to 'next' on 2013-10-23 at 5d7ac72)
322  + Reword repack documentation to no longer state it's a script
324  Finishing touches to update documentation.
326  Will merge to 'master'.
329 * mm/checkout-auto-track-fix (2013-10-18) 2 commits
330  - checkout: proper error message on 'git checkout foo bar --'
331  - checkout: allow dwim for branch creation for "git checkout $branch --"
333  "git checkout topic", when there is not yet a local "topic" branch
334  but there is a unique remote-tracking branch for a remote "topic"
335  branch, pretended as if "git checkout -t -b topic remote/$r/topic"
336  (for that unique remote $r) was run. This hack however was not
337  implemented for "git checkout topic --".
339  Will merge to 'next'.
342 * hn/log-graph-color-octopus (2013-10-18) 1 commit
343  - graph: fix coloring around octopus merges
345  Will merge to 'next'.
348 * nd/gc-lock-against-each-other (2013-10-18) 1 commit
349  - gc: remove gc.pid file at end of execution
351  Will merge to 'next'.
354 * fc/styles (2013-10-16) 7 commits
355  - block-sha1/sha1.c: have SP around arithmetic operators
356  - base85.c: have SP around arithmetic operators
357  - archive.c: have SP around arithmetic operators
358  - alloc.c: have SP around arithmetic operators
359  - abspath.c: have SP around arithmetic operators
360  - alias: have SP around arithmetic operators
361  - C: have space around && and || operators
363  C coding style fixes.  The ones near the tip have not been sent to
364  the list yet (they cover the same kind of style violation as the
365  second one) and I should send them to the list.
367  Will merge to 'next'.
370 * jk/remote-literal-string-leakfix (2013-10-15) 1 commit
371   (merged to 'next' on 2013-10-18 at 6abddac)
372  + remote: do not copy "origin" string literal
374  Will merge to 'master'.
377 * jk/split-broken-ident (2013-10-15) 1 commit
378   (merged to 'next' on 2013-10-18 at 8f4b8b7)
379  + split_ident: parse timestamp from end of line
381  Make the fall-back parsing of commit objects with broken author or
382  committer lines more robust to pick up the timestamps.
384  Will merge to 'master'.
387 * sg/prompt-svn-remote-fix (2013-10-15) 1 commit
388   (merged to 'next' on 2013-10-18 at 20b47eb)
389  + bash prompt: don't use '+=' operator in show upstream code path
391  Bash portability fix.
393  Will merge to 'master'.
396 * sg/t3600-nul-sha1-fix (2013-10-16) 1 commit
397  - t3600: fix broken "choking git rm" test
399  Will merge to 'next'.
402 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
403   (merged to 'next' on 2013-10-14 at d77c5f1)
404  + submodule foreach: skip eval for more than one argument
406  A behavior change, but a worthwhile one: "git submodule foreach"
407  was treating its arguments as part of a single command to be
408  concatenated and passed to a shell, making writing buggy
409  scripts too easy.
411  This patch preserves the old "just pass it to the shell" behavior
412  when a single argument is passed to 'git submodule foreach' and
413  moves to a new "skip the shell and use the arguments passed
414  unmolested" behavior when more than one argument is passed.
416  The old behavior (always concatenating and passing to the shell)
417  was similar to the 'ssh' command, while the new behavior (switching
418  on the number of arguments) is what 'xterm -e' does.
420  May need more thought to make sure this change is advertised well
421  so that scripts that used multiple arguments but added their own
422  extra layer of quoting are not broken.
424  Will cook in 'next' for the rest of this cycle.
427 * ew/keepalive (2013-10-16) 2 commits
428   (merged to 'next' on 2013-10-16 at 56fd9f3)
429  + http: use curl's tcp keepalive if available
430   (merged to 'next' on 2013-10-14 at 24d786f)
431  + http: enable keepalive on TCP sockets
433  Will merge to 'master'.
436 * jk/http-auth-redirects (2013-10-24) 10 commits
437   (merged to 'next' on 2013-10-24 at 4bebb66)
438  + http.c: Spell the null pointer as NULL
439  + remote-curl: rewrite base url from info/refs redirects
440  + remote-curl: store url as a strbuf
441  + remote-curl: make refs_url a strbuf
442  + http: update base URLs when we see redirects
443  + http: provide effective url to callers
444  + http: hoist credential request out of handle_curl_result
445   (merged to 'next' on 2013-10-14 at a0642be)
446  + http: refactor options to http_get_*
447  + http_request: factor out curlinfo_strbuf
448  + http_get_file: style fixes
450  Handle the case where http transport gets redirected during the
451  authorization request better.
453  Will merge to 'master'.
456 * jl/submodule-mv (2013-10-13) 1 commit
457  - mv: Fix spurious warning when moving a file in presence of submodules
459  Moving a regular file in a repository with a .gitmodules file was
460  producing a warning 'Could not find section in .gitmodules where
461  path=<filename>'.
463  Will merge to 'next'.
466 * kb/fast-hashmap (2013-10-22) 12 commits
467  - remove old hash.[ch] implementation
468  - read-cache.c: fix memory leaks caused by removed cache entries
469  - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
470  - name-hash.c: use new hash map implementation for cache entries
471  - name-hash.c: remove unreferenced directory entries
472  - name-hash.c: use new hash map implementation for directories
473  - diffcore-rename.c: use new hash map implementation
474  - diffcore-rename.c: simplify finding exact renames
475  - diffcore-rename.c: move code around to prepare for the next patch
476  - buitin/describe.c: use new hash map implementation
477  - add a hashtable implementation that supports O(1) removal
478  - submodule: don't access the .gitmodules cache entry after removing it
480  Improvements to our hash table to get it to meet the needs of the
481  msysgit fscache project, with some nice performance improvements.
483  The preparatory clean-up to submodule from Jens is at the bottom. I
484  also squashed in a fix-up by Karsten found at $gmane/236468 (please
485  double-check the result).
487  Will merge to 'next'.
490 * jc/revision-range-unpeel (2013-10-15) 1 commit
491   (merged to 'next' on 2013-10-16 at d04ddfe)
492  + revision: do not peel tags used in range notation
494  "git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the
495  output, but "git rev-list --objects v1.0^..v1.0" did not.
497  Will merge to 'master'.
500 * jc/upload-pack-send-symref (2013-10-22) 10 commits
501   (merged to 'next' on 2013-10-23 at 8ef5660)
502  + t5570: Update for clone-progress-to-stderr branch
503  + Merge branch 'jk/clone-progress-to-stderr' into jc/upload-pack-send-symref
504  + t5570: Update for symref capability
505   (merged to 'next' on 2013-10-16 at eb1ae25)
506  + clone: test the new HEAD detection logic
507  + connect: annotate refs with their symref information in get_remote_head()
508  + connect.c: make parse_feature_value() static
509  + upload-pack: send non-HEAD symbolic refs
510  + upload-pack: send symbolic ref information as capability
511  + upload-pack.c: do not pass confusing cb_data to mark_our_ref()
512  + t5505: fix "set-head --auto with ambiguous HEAD" test
514  One long-standing flaw in the pack transfer protocol used by "git
515  clone" was that there was no way to tell the other end which branch
516  "HEAD" points at, and the receiving end needed to guess.  A new
517  capability has been defined in the pack protocol to convey this
518  information so that cloning from a repository with more than one
519  branches pointing at the same commit where the HEAD is at now
520  reliably sets the initial branch in the resulting repository.
522  Will merge to 'master'.
525 * jx/relative-path-regression-fix (2013-10-14) 3 commits
526   (merged to 'next' on 2013-10-18 at b4af45f)
527  + Use simpler relative_path when set_git_dir
528   (merged to 'next' on 2013-10-14 at 704b9ee)
529  + relative_path should honor dos-drive-prefix
530  + test: use unambigous leading path (/foo) for MSYS
532  Will merge to 'master' and later to 'maint'.
535 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
536  - git add: -u/-A now affects the entire working tree
538  Will merge to and cook in 'next' until Git 2.0.
541 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
542  - core.statinfo: remove as promised in Git 2.0
544  Will merge to and cook in 'next' until Git 2.0.
547 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
548  - push: switch default from "matching" to "simple"
550  Will merge to and cook in 'next' until Git 2.0.
553 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
554  - git add <pathspec>... defaults to "-A"
556  Updated endgame for "git add <pathspec>" that defaults to "--all"
557  aka "--no-ignore-removal".
559  Will merge to and cook in 'next' until Git 2.0.
562 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
563  - diff: remove "diff-files -q" in a version of Git in a distant future
565  Will merge to and cook in 'next' until a distant future.
567 --------------------------------------------------
568 [Discarded]
570 * jh/shorten-refname (2013-05-07) 4 commits
571  . t1514: refname shortening is done after dereferencing symbolic refs
572  . shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
573  . t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
574  . t1514: Add tests of shortening refnames in strict/loose mode
576  When remotes/origin/HEAD is not a symbolic ref, "rev-parse
577  --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
578  "origin/HEAD", which is fixed with this series (if it is a symbolic
579  ref that points at remotes/origin/something, then it should show
580  "origin/something" and it already does).
582  Has been expecting a reroll, as an early part of a larger series.
583  $gmane/225137
585  Discarded due to inactivity, without prejudice.