What's cooking (2013/10 #08)
[alt-git.git] / whats-cooking.txt
blobfbbb7c603c8a62d02200d36c37dd99ed33975379
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Oct 2013, #08; Wed, 30)
4 X-master-at: 42817b96b1b80b56fd5a4d5e0d6239524b1832a3
5 X-next-at: a9bf06aa4c8db76465f9b7c11b2704229b2adb5a
7 What's cooking in git.git (Oct 2013, #08; Wed, 30)
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 An early preview 1.8.5-rc0 has been tagged. There still are handful
15 of fixes and enhancements left in 'next' that I'd like to see in the
16 final, which will hopefully be in when the first release candidate
17 is tagged.
19 As promised/requested, the final steps for 2.0 are in 'next'; they,
20 together with a handful topics that have been merged to 'next'
21 fairly recently, will _not_ be part of the upcoming 1.8.5 release,
22 but will be carried over in 'next' to the next cycle.
24 You can find the changes described here in the integration branches
25 of the repositories listed at
27     http://git-blame.blogspot.com/p/git-public-repositories.html
29 --------------------------------------------------
30 [Graduated to "master"]
32 * fc/styles (2013-10-16) 7 commits
33   (merged to 'next' on 2013-10-28 at cf592ed)
34  + block-sha1/sha1.c: have SP around arithmetic operators
35  + base85.c: have SP around arithmetic operators
36  + archive.c: have SP around arithmetic operators
37  + alloc.c: have SP around arithmetic operators
38  + abspath.c: have SP around arithmetic operators
39  + alias: have SP around arithmetic operators
40  + C: have space around && and || operators
42  C coding style fixes.
45 * hn/log-graph-color-octopus (2013-10-18) 1 commit
46   (merged to 'next' on 2013-10-28 at e103175)
47  + graph: fix coloring around octopus merges
50 * jc/upload-pack-send-symref (2013-10-22) 10 commits
51   (merged to 'next' on 2013-10-23 at 8ef5660)
52  + t5570: Update for clone-progress-to-stderr branch
53  + Merge branch 'jk/clone-progress-to-stderr' into jc/upload-pack-send-symref
54  + t5570: Update for symref capability
55   (merged to 'next' on 2013-10-16 at eb1ae25)
56  + clone: test the new HEAD detection logic
57  + connect: annotate refs with their symref information in get_remote_head()
58  + connect.c: make parse_feature_value() static
59  + upload-pack: send non-HEAD symbolic refs
60  + upload-pack: send symbolic ref information as capability
61  + upload-pack.c: do not pass confusing cb_data to mark_our_ref()
62  + t5505: fix "set-head --auto with ambiguous HEAD" test
64  One long-standing flaw in the pack transfer protocol used by "git
65  clone" was that there was no way to tell the other end which branch
66  "HEAD" points at, and the receiving end needed to guess.  A new
67  capability has been defined in the pack protocol to convey this
68  information so that cloning from a repository with more than one
69  branches pointing at the same commit where the HEAD is at now
70  reliably sets the initial branch in the resulting repository.
73 * jk/date-c-double-semicolon (2013-10-24) 1 commit
74   (merged to 'next' on 2013-10-28 at 00ce440)
75  + drop redundant semicolon in empty while
78 * jk/http-auth-redirects (2013-10-24) 10 commits
79   (merged to 'next' on 2013-10-24 at 4bebb66)
80  + http.c: Spell the null pointer as NULL
81  + remote-curl: rewrite base url from info/refs redirects
82  + remote-curl: store url as a strbuf
83  + remote-curl: make refs_url a strbuf
84  + http: update base URLs when we see redirects
85  + http: provide effective url to callers
86  + http: hoist credential request out of handle_curl_result
87   (merged to 'next' on 2013-10-14 at a0642be)
88  + http: refactor options to http_get_*
89  + http_request: factor out curlinfo_strbuf
90  + http_get_file: style fixes
92  Handle the case where http transport gets redirected during the
93  authorization request better.
96 * jk/refs-c-squelch-gcc (2013-10-24) 1 commit
97   (merged to 'next' on 2013-10-28 at d15f7c2)
98  + silence gcc array-bounds warning
101 * jl/pack-transfer-avoid-double-close (2013-10-23) 1 commit
102   (merged to 'next' on 2013-10-28 at 4a55bba)
103  + Clear fd after closing to avoid double-close error
105  The codepath that send_pack() calls pack_objects() mistakenly
106  closed the same file descriptor twice, leading to potentially
107  closing a wrong file descriptor that was opened in the meantime.
110 * mm/checkout-auto-track-fix (2013-10-18) 2 commits
111   (merged to 'next' on 2013-10-28 at f4594ba)
112  + checkout: proper error message on 'git checkout foo bar --'
113  + checkout: allow dwim for branch creation for "git checkout $branch --"
115  "git checkout topic", when there is not yet a local "topic" branch
116  but there is a unique remote-tracking branch for a remote "topic"
117  branch, pretended as if "git checkout -t -b topic remote/$r/topic"
118  (for that unique remote $r) was run. This hack however was not
119  implemented for "git checkout topic --".
122 * nd/gc-lock-against-each-other (2013-10-18) 1 commit
123   (merged to 'next' on 2013-10-28 at 14bd458)
124  + gc: remove gc.pid file at end of execution
127 * nd/lift-path-max (2013-10-24) 2 commits
128   (merged to 'next' on 2013-10-28 at 07698af)
129  + checkout_entry(): clarify the use of topath[] parameter
130  + entry.c: convert checkout_entry to use strbuf
133 * nd/magic-pathspec (2013-10-22) 1 commit
134   (merged to 'next' on 2013-10-28 at 50eda68)
135  + Fix calling parse_pathspec with no paths nor PATHSPEC_PREFER_* flags
137  All callers to parse_pathspec() must choose between getting no
138  pathspec or one path that is limited to the current directory
139  when there is no paths given on the command line, but there were
140  two callers that violated this rule, triggering a BUG().
143 * sb/git-svn-docs-indent-with-ht (2013-10-22) 1 commit
144   (merged to 'next' on 2013-10-28 at 8a952d1)
145  + git-svn docs: Use tabs consistently within the ascii doc
148 * sg/t3600-nul-sha1-fix (2013-10-16) 1 commit
149   (merged to 'next' on 2013-10-28 at ac4b703)
150  + t3600: fix broken "choking git rm" test
153 * tr/gitk-doc-update (2013-10-22) 1 commit
154   (merged to 'next' on 2013-10-28 at f4158b8)
155  + Documentation: revamp gitk(1)
158 * tr/valgrind-test-fix (2013-10-22) 2 commits
159   (merged to 'next' on 2013-10-28 at 4d3f31a)
160  + Revert "test-lib: allow prefixing a custom string before "ok N" etc."
161  + Revert "test-lib: support running tests under valgrind in parallel"
163 --------------------------------------------------
164 [New Topics]
166 * jn/test-prereq-perl-doc (2013-10-28) 1 commit
167  - t/README: tests can use perl even with NO_PERL
169  Will merge to 'next'.
172 * ak/cvsserver-stabilize-use-of-hash-keys (2013-10-30) 1 commit
173  - cvsserver: Determinize output to combat Perl 5.18 hash randomization
175  Will merge to 'next'.
178 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
179  - use @@PERL@@ in built scripts
181  Will merge to 'next'.
184 * jk/subtree-install-fix (2013-10-30) 1 commit
185  - subtree: add makefile target for html docs
187  Will merge to 'next'.
190 * jk/wrap-perl-used-in-tests (2013-10-29) 2 commits
191  - t: use perl instead of "$PERL_PATH" where applicable
192  - t: provide a perl() function which uses $PERL_PATH
194  Will merge to 'next'.
197 * jt/commit-fixes-footer (2013-10-30) 1 commit
198  - commit: Add -f, --fixes <commit> option to add Fixes: line
200  There is an ongoing discussion around this topic; in general I am
201  fairly negative on a new feature that is too narrow and prefer a
202  more generic solution that can be tailored for specific needs, as
203  many people stated in the thread.
205 --------------------------------------------------
206 [Stalled]
208 * np/pack-v4 (2013-09-18) 90 commits
209  . packv4-parse.c: add tree offset caching
210  . t1050: replace one instance of show-index with verify-pack
211  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
212  . unpack-objects: decode v4 trees
213  . unpack-objects: allow to save processed bytes to a buffer
214  - ...
216  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
217  primarily for wider distribution of the preview edition.
219  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
220  this topic conflicts with.
223 * mf/graph-show-root (2013-10-25) 1 commit
224  . graph.c: mark root commit differently
226  In a repository with multiple-roots, "log --graph", especially with
227  "--oneline", does not give the reader enough visual cue to see
228  where one line of history ended and a separate history began.
230  This is the version that marks the roots 'x' when they would have
231  been marked as '*'; Keshav Kini suggested an alternative of giving
232  an extra blank line after every root, which I tend to think is a
233  better approach to the problem.
236 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
237  - perf-lib: add test_perf_cleanup target
238  - perf-lib: split starting the test from the execution
240  Add test_perf_cleanup shell function to the perf suite, that allows
241  the script writers to define a test with a clean-up action.
243  Holding until needed.
246 * yt/shortened-rename (2013-10-18) 2 commits
247  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
248  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
250  Attempts to give more weight on the fact that a filepair represents
251  a rename than showing substring of the actual path when diffstat
252  lines are not wide enough.
254  I am not sure if that is solving a right problem, though.
257 * jc/ref-excludes (2013-09-03) 2 commits
258  - document --exclude option
259  - revision: introduce --exclude=<glob> to tame wildcards
261  People often wished a way to tell "git log --branches" (and "git
262  log --remotes --not --branches") to exclude some local branches
263  from the expansion of "--branches" (similarly for "--tags", "--all"
264  and "--glob=<pattern>").  Now they have one.
266  Needs a matching change to rev-parse.
269 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
270  - git-send-email: Cache generated message-ids, use them when prompting
271  - git-send-email: add optional 'choices' parameter to the ask sub
274 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
275  - ### DONTMERGE: needs better explanation on what config they need
276  - pack-refs.c: Add missing call to git_config()
277  - show-ref.c: Add missing call to git_config()
279  The changes themselves are probably good, but it is unclear what
280  basic setting needs to be read for which exact operation.
282  Waiting for clarification.
283  $gmane/228294
286 * jc/format-patch (2013-04-22) 2 commits
287  - format-patch: --inline-single
288  - format-patch: rename "no_inline" field
290  A new option to send a single patch to the standard output to be
291  appended at the bottom of a message.  I personally have no need for
292  this, but it was easy enough to cobble together.  Tests, docs and
293  stripping out more MIMEy stuff are left as exercises to interested
294  parties.
297 * jk/gitweb-utf8 (2013-04-08) 4 commits
298  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
299  - gitweb: Don't append ';js=(0|1)' to external links
300  - gitweb: Make feed title valid utf8
301  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
303  Various fixes to gitweb.
305  Drew Northup volunteered to take a look into this.
306  $gmane/226216
309 * jc/show-branch (2013-06-07) 5 commits
310  - show-branch: use commit slab to represent bitflags of arbitrary width
311  - show-branch.c: remove "all_mask"
312  - show-branch.c: abstract out "flags" operation
313  - show-branch.c: lift all_mask/all_revs to a global static
314  - show-branch.c: update comment style
316  Waiting for the final step to lift the hard-limit before sending it out.
318 --------------------------------------------------
319 [Cooking]
321 * sc/doc-howto-dumb-http (2013-10-28) 1 commit
322  - doc/howto: warn about (dumb)http server document being too old
324  Will merge to 'next'.
327 * bw/solaris-sed-tr-test-portability (2013-10-30) 2 commits
328  - Avoid difference in tr semantics between System V and BSD
329  - Change sed i\ usage to something Solaris' sed can handle
331  The bottom one may want to lose the "\<nl>" that seems to be a
332  no-op.
335 * fc/transport-helper-fixes (2013-10-28) 13 commits
336  - test: remote-helper: add test for force pushes
337  - git-remote-testgit: support the new 'force' option
338  - fixup! transport-helper: add 'force' to 'export' helpers
339  - transport-helper: don't update refs in dry-run
340  - transport-helper: add support to delete branches
341  - fast-export: add support to delete refs
342  - fast-import: add support to delete refs
343  - transport-helper: add support for old:new refspec
344  - fast-export: add new --refspec option
345  - fast-export: improve argument parsing
346  - transport-helper: check for 'forced update' message
347  - transport-helper: fix extra lines
348  - transport-helper: add 'force' to 'export' helpers
350  This may need to be rerolled, taking review comments and
351  discussions into account.
354 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
355  - sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
357  Will merge to 'next'.
360 * js/test-help-format-windows-port-fix (2013-10-30) 1 commit
361   (merged to 'next' on 2013-10-30 at b98e991)
362  + t3200: do not open a HTML manual page when DEFAULT_MAN_FORMAT is html
364  Will merge to 'master'.
367 * js/tests-windows-port-fix (2013-10-28) 3 commits
368   (merged to 'next' on 2013-10-30 at 61f8e24)
369  + tests: undo special treatment of CRLF for Windows
370  + Windows: a test_cmp that is agnostic to random LF <> CRLF conversions
371  + t5300-pack-object: do not compare binary data using test_cmp
373  Will merge to 'master'.
376 * nd/liteal-pathspecs (2013-10-28) 1 commit
377  - pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses
379  Will merge to 'next'.
382 * rs/web-browse-xdg-open (2013-10-30) 1 commit
383   (merged to 'next' on 2013-10-30 at 37d6eb4)
384  + web--browse: Add support for xdg-open
386  Will merge to 'master'.
389 * sb/refs-code-cleanup (2013-10-28) 2 commits
390   (merged to 'next' on 2013-10-30 at a9bf06a)
391  + cache: remove unused function 'have_git_dir'
392  + refs: remove unused function invalidate_ref_cache
394  Will merge to 'master'.
397 * th/reflog-annotated-tag (2013-10-28) 1 commit
398  - reflog: handle lightweight and annotated tags equally
400  Will merge to 'next'.
403 * tr/merge-recursive-index-only (2013-10-28) 3 commits
404  - merge-recursive: -Xindex-only to leave worktree unchanged
405  - merge-recursive: internal flag to avoid touching the worktree
406  - merge-recursive: remove dead conditional in update_stages()
409 * bc/http-100-continue (2013-10-29) 1 commit
410  - remote-curl: fix large pushes with GSSAPI
412  Conditionally allow "100 Continue" responses to help use of
413  GSS-Negotiate authentication scheme over HTTP transport.
415  Still being updated, but it seems like we are getting there.
418 * jc/merge-base-reflog (2013-10-29) 2 commits
419  - merge-base: teach "--fork-point" mode
420  - merge-base: use OPT_CMDMODE and clarify the command line parsing
422  Code the logic in "pull --rebase" that figures out a fork point
423  from reflog entries in C.
425  Will merge to 'next'.
428 * jk/for-each-ref-skip-parsing (2013-10-30) 1 commit
429   (merged to 'next' on 2013-10-30 at 56ea310)
430  + for-each-ref: avoid loading objects to print %(objectname)
432  Will merge to 'master'.
435 * jk/pack-bitmap (2013-10-30) 20 commits
436  - count-objects: recognize .bitmap in garbage-checking
437  - pack-bitmap: implement optional name_hash cache
438  - t: add basic bitmap functionality tests
439  - repack: consider bitmaps when performing repacks
440  - repack: handle optional files created by pack-objects
441  - repack: turn exts array into array-of-struct
442  - repack: stop using magic number for ARRAY_SIZE(exts)
443  - pack-objects: implement bitmap writing
444  - rev-list: add bitmap mode to speed up object lists
445  - pack-objects: use bitmaps when packing objects
446  - pack-bitmap: add support for bitmap indexes
447  - documentation: add documentation for the bitmap format
448  - ewah: compressed bitmap implementation
449  - compat: add endianness helpers
450  - sha1_file: export `git_open_noatime`
451  - revision: allow setting custom limiter function
452  - pack-objects: factor out name_hash
453  - pack-objects: refactor the packing list
454  - revindex: export new APIs
455  - sha1write: make buffer const-correct
457  Borrows the bitmap index into packfiles from JGit to speed up
458  enumeration of objects involved in a commit range without having to
459  fully traverse the history.
461  Still under discussion.
464 * jk/robustify-parse-commit (2013-10-24) 6 commits
465  - checkout: do not die when leaving broken detached HEAD
466  - use parse_commit_or_die instead of custom message
467  - use parse_commit_or_die instead of segfaulting
468  - assume parse_commit checks for NULL commit
469  - assume parse_commit checks commit->object.parsed
470  - log_tree_diff: die when we fail to parse a commit
472  Will merge to 'next' after taking another look.
475 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
476  - fetch: improve the error messages emitted for conflicting refspecs
477  - handle_duplicate(): mark error message for translation
478  - ref_remote_duplicates(): extract a function handle_duplicate()
479  - ref_remove_duplicates(): simplify loop logic
480  - t5536: new test of refspec conflicts when fetching
481  - ref_remove_duplicates(): avoid redundant bisection
482  - git-fetch.txt: improve description of tag auto-following
483  - fetch-options.txt: simplify ifdef/ifndef/endif usage
484  - fetch, remote: properly convey --no-prune options to subprocesses
485  - builtin/remote.c:update(): use struct argv_array
486  - builtin/remote.c: reorder function definitions
487  - query_refspecs(): move some constants out of the loop
488  - fetch --prune: prune only based on explicit refspecs
489  - fetch --tags: fetch tags *in addition to* other stuff
490  - fetch: only opportunistically update references based on command line
491  - get_expanded_map(): avoid memory leak
492  - get_expanded_map(): add docstring
493  - builtin/fetch.c: reorder function definitions
494  - get_ref_map(): rename local variables
495  - api-remote.txt: correct section "struct refspec"
496  - t5510: check that "git fetch --prune --tags" does not prune branches
497  - t5510: prepare test refs more straightforwardly
498  - t5510: use the correct tag name in test
500  Will merge to 'next' after taking another look.
503 * jk/pack-corruption-post-mortem (2013-10-25) 1 commit
504   (merged to 'next' on 2013-10-30 at 2248df6)
505  + howto: add article on recovering a corrupted object
507  Will merge to 'master'.
510 * jk/reset-p-current-head-fix (2013-10-25) 2 commits
511   (merged to 'next' on 2013-10-30 at 37ae6e0)
512  + reset: pass real rev name to add--interactive
513  + add-interactive: handle unborn branch in patch mode
515  "git reset -p HEAD" has codepath to special case it from resetting
516  to contents of other commits, but recent change broke it.
518  Will merge to 'master'.
521 * nv/parseopt-opt-arg (2013-10-25) 1 commit
522  - rev-parse --parseopt: add the --sticked-long mode
524  Enhance "rev-parse --parseopt" mode to help parsing options with
525  an optional parameter.
527  Option name bikeshedding aside ("Is it sticked or stuck?"), the
528  change seems to be competently done.
531 * ap/remote-hg-unquote-cquote (2013-10-23) 1 commit
532   (merged to 'next' on 2013-10-28 at 6b99fd5)
533  + remote-hg: unquote C-style paths when exporting
535  A fast-import stream expresses a pathname with funny characters by
536  quoting them in C style; remote-hg remote helper forgot to unquote
537  such a path.
539  Will merge to 'master'.
542 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
543   (merged to 'next' on 2013-10-14 at d77c5f1)
544  + submodule foreach: skip eval for more than one argument
546  A behavior change, but a worthwhile one: "git submodule foreach"
547  was treating its arguments as part of a single command to be
548  concatenated and passed to a shell, making writing buggy
549  scripts too easy.
551  This patch preserves the old "just pass it to the shell" behavior
552  when a single argument is passed to 'git submodule foreach' and
553  moves to a new "skip the shell and use the arguments passed
554  unmolested" behavior when more than one argument is passed.
556  The old behavior (always concatenating and passing to the shell)
557  was similar to the 'ssh' command, while the new behavior (switching
558  on the number of arguments) is what 'xterm -e' does.
560  May need more thought to make sure this change is advertised well
561  so that scripts that used multiple arguments but added their own
562  extra layer of quoting are not broken.
564  Will cook in 'next' for the rest of this cycle.
567 * jl/submodule-mv (2013-10-13) 1 commit
568   (merged to 'next' on 2013-10-28 at 8dc9b31)
569  + mv: Fix spurious warning when moving a file in presence of submodules
571  Moving a regular file in a repository with a .gitmodules file was
572  producing a warning 'Could not find section in .gitmodules where
573  path=<filename>'.
575  Will merge to 'master'.
578 * kb/fast-hashmap (2013-10-22) 12 commits
579  - remove old hash.[ch] implementation
580  - read-cache.c: fix memory leaks caused by removed cache entries
581  - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
582  - name-hash.c: use new hash map implementation for cache entries
583  - name-hash.c: remove unreferenced directory entries
584  - name-hash.c: use new hash map implementation for directories
585  - diffcore-rename.c: use new hash map implementation
586  - diffcore-rename.c: simplify finding exact renames
587  - diffcore-rename.c: move code around to prepare for the next patch
588  - buitin/describe.c: use new hash map implementation
589  - add a hashtable implementation that supports O(1) removal
590  - submodule: don't access the .gitmodules cache entry after removing it
592  Improvements to our hash table to get it to meet the needs of the
593  msysgit fscache project, with some nice performance improvements.
595  The preparatory clean-up to submodule from Jens is at the bottom. I
596  also squashed in a fix-up by Karsten found at $gmane/236468 (please
597  double-check the result).
599  More valgrind breakage reported ($gmane/236869).
602 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
603   (merged to 'next' on 2013-10-28 at d8cdf30)
604  + git add: -u/-A now affects the entire working tree
606  Will cook in 'next' until Git 2.0.
609 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
610   (merged to 'next' on 2013-10-28 at f1bec96)
611  + core.statinfo: remove as promised in Git 2.0
613  Will cook in 'next' until Git 2.0.
616 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
617   (merged to 'next' on 2013-10-28 at 3153a9e)
618  + push: switch default from "matching" to "simple"
620  Will cook in 'next' until Git 2.0.
623 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
624   (merged to 'next' on 2013-10-28 at 5fd76ec)
625  + git add <pathspec>... defaults to "-A"
627  Updated endgame for "git add <pathspec>" that defaults to "--all"
628  aka "--no-ignore-removal".
630  Will cook in 'next' until Git 2.0.
633 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
634  - diff: remove "diff-files -q" in a version of Git in a distant future
636  Will merge to and cook in 'next' until a distant future.