What's cooking (2013/11 #04)
[alt-git.git] / whats-cooking.txt
blob07ed576513afc3580382d178e3f8f5e172b10cfb
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Nov 2013, #04; Wed, 13)
4 X-master-at: 03973056a08d1694cf1c819eb2e8b9557650f70e
5 X-next-at: 87216524bc6ef3cbd79ae913726957a0a7b5c236
7 What's cooking in git.git (Nov 2013, #04; Wed, 13)
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 The second release candidate has been tagged.  Hopefully we can have
15 an uneventful 1.8.5 final next week.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [New Topics]
25 * jc/bundle (2013-11-12) 1 commit
26  - bundle: use argv-array
28  Code clean-up.
31 * jj/log-doc (2013-11-13) 2 commits
32  - Documentation/git-log.txt: mark-up fix and minor rephasing
33  - Documentation/git-log: update "--log-size" description
35  Mark-up fixes.
36  Needs extra sets of eyeballs.
39 * jj/rev-list-options-doc (2013-11-13) 1 commit
40  - Documentation/rev-list-options: fix mark-ups and typos
42  Mark-up fixes.
43  Needs extra sets of eyeballs.
46 * jk/remove-deprecated (2013-11-12) 4 commits
47   (merged to 'next' on 2013-11-13 at c324792)
48  + peek-remote: remove deprecated alias of ls-remote
49  + lost-found: remove deprecated command
50  + tar-tree: remove deprecated command
51  + repo-config: remove deprecated alias for "git config"
53  Will cook in 'next' until a distant future.
56 * mi/typofixes (2013-11-12) 3 commits
57   (merged to 'next' on 2013-11-13 at bb7c2eb)
58  + contrib: typofixes
59  + Documentation/technical/http-protocol.txt: typofixes
60  + typofixes: fix misspelt comments
62  Can wait in 'next'.
65 * rh/remote-hg-bzr-updates (2013-11-12) 9 commits
66  - remote-bzr, remote-hg: fix email address regular expression
67  - test-hg.sh: help user correlate verbose output with email test
68  - test-hg.sh: fix duplicate content strings in author tests
69  - test-hg.sh: avoid obsolete 'test' syntax
70  - test-hg.sh: eliminate 'local' bashism
71  - test-bzr.sh, test-hg.sh: prepare for change to push.default=simple
72  - test-bzr.sh, test-hg.sh: allow running from any dir
73  - test-lib.sh: convert $TEST_DIRECTORY to an absolute path
74  - remote-hg: don't decode UTF-8 paths into Unicode objects
76  Will merge to 'next'.
79 * tr/config-multivalue-lift-max (2013-11-13) 1 commit
80  - config: arbitrary number of matches for --unset and --replace-all
82  Will merge to 'next'.
85 --------------------------------------------------
86 [Stalled]
88 * tb/clone-ssh-with-colon-for-port (2013-11-04) 1 commit
89  . git clone: is an URL local or ssh
91  Still being reworked.
94 * cn/thin-push-capability (2013-11-06) 2 commits
95  - send-pack: only send a thin pack if the server supports it
96  - receive-pack: advertise thin-pack
98  Peff had a good suggestion to control this by expressing what the
99  receiving end wants in a more direct way, namely to advertise a
100  'no-thin' trait in the capability list, which seems to be favored
101  by Shawn, too.
104 * jt/commit-fixes-footer (2013-10-30) 1 commit
105  - commit: Add -f, --fixes <commit> option to add Fixes: line
107  There is an ongoing discussion around this topic; in general I am
108  fairly negative on a new feature that is too narrow and prefer a
109  more generic solution that can be tailored for specific needs, as
110  many people stated in the thread.
112  It appears that the discussion stalled.
115 * np/pack-v4 (2013-09-18) 90 commits
116  . packv4-parse.c: add tree offset caching
117  . t1050: replace one instance of show-index with verify-pack
118  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
119  . unpack-objects: decode v4 trees
120  . unpack-objects: allow to save processed bytes to a buffer
121  - ...
123  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
124  primarily for wider distribution of the preview edition.
126  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
127  this topic conflicts with.
130 * jk/pack-bitmap (2013-10-30) 20 commits
131  - count-objects: recognize .bitmap in garbage-checking
132  - pack-bitmap: implement optional name_hash cache
133  - t: add basic bitmap functionality tests
134  - repack: consider bitmaps when performing repacks
135  - repack: handle optional files created by pack-objects
136  - repack: turn exts array into array-of-struct
137  - repack: stop using magic number for ARRAY_SIZE(exts)
138  - pack-objects: implement bitmap writing
139  - rev-list: add bitmap mode to speed up object lists
140  - pack-objects: use bitmaps when packing objects
141  - pack-bitmap: add support for bitmap indexes
142  - documentation: add documentation for the bitmap format
143  - ewah: compressed bitmap implementation
144  - compat: add endianness helpers
145  - sha1_file: export `git_open_noatime`
146  - revision: allow setting custom limiter function
147  - pack-objects: factor out name_hash
148  - pack-objects: refactor the packing list
149  - revindex: export new APIs
150  - sha1write: make buffer const-correct
152  Borrows the bitmap index into packfiles from JGit to speed up
153  enumeration of objects involved in a commit range without having to
154  fully traverse the history.
156  Waiting for a reroll.
159 * mf/graph-show-root (2013-10-25) 1 commit
160  . graph.c: mark root commit differently
162  In a repository with multiple-roots, "log --graph", especially with
163  "--oneline", does not give the reader enough visual cue to see
164  where one line of history ended and a separate history began.
166  This is the version that marks the roots 'x' when they would have
167  been marked as '*'; Keshav Kini suggested an alternative of giving
168  an extra blank line after every root, which I tend to think is a
169  better approach to the problem.
172 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
173  - perf-lib: add test_perf_cleanup target
174  - perf-lib: split starting the test from the execution
176  Add test_perf_cleanup shell function to the perf suite, that allows
177  the script writers to define a test with a clean-up action.
179  Holding until needed.
182 * yt/shortened-rename (2013-10-18) 2 commits
183  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
184  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
186  Attempts to give more weight on the fact that a filepair represents
187  a rename than showing substring of the actual path when diffstat
188  lines are not wide enough.
190  I am not sure if that is solving a right problem, though.
193 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
194  - git-send-email: Cache generated message-ids, use them when prompting
195  - git-send-email: add optional 'choices' parameter to the ask sub
198 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
199  - ### DONTMERGE: needs better explanation on what config they need
200  - pack-refs.c: Add missing call to git_config()
201  - show-ref.c: Add missing call to git_config()
203  The changes themselves are probably good, but it is unclear what
204  basic setting needs to be read for which exact operation.
206  Waiting for clarification.
207  $gmane/228294
210 * jc/format-patch (2013-04-22) 2 commits
211  - format-patch: --inline-single
212  - format-patch: rename "no_inline" field
214  A new option to send a single patch to the standard output to be
215  appended at the bottom of a message.  I personally have no need for
216  this, but it was easy enough to cobble together.  Tests, docs and
217  stripping out more MIMEy stuff are left as exercises to interested
218  parties.
221 * jk/gitweb-utf8 (2013-04-08) 4 commits
222  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
223  - gitweb: Don't append ';js=(0|1)' to external links
224  - gitweb: Make feed title valid utf8
225  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
227  Various fixes to gitweb.
229  Drew Northup volunteered to take a look into this.
230  $gmane/226216
233 * jc/show-branch (2013-06-07) 5 commits
234  - show-branch: use commit slab to represent bitflags of arbitrary width
235  - show-branch.c: remove "all_mask"
236  - show-branch.c: abstract out "flags" operation
237  - show-branch.c: lift all_mask/all_revs to a global static
238  - show-branch.c: update comment style
240  Waiting for the final step to lift the hard-limit before sending it out.
242 --------------------------------------------------
243 [Cooking]
245 * kb/doc-exclude-directory-semantics (2013-11-07) 1 commit
246   (merged to 'next' on 2013-11-13 at 06e5645)
247  + gitignore.txt: clarify recursive nature of excluded directories
249  Can wait in 'next'.
252 * jc/create-directories-microopt (2013-11-11) 1 commit
253  - checkout: most of the time we have good leading directories
255  Of unknown value until tested on non-Linux platforms (especially
256  Windows).
258  Will hold.
261 * jl/submodule-update-retire-orig-flags (2013-11-11) 1 commit
262   (merged to 'next' on 2013-11-13 at 4b70d15)
263  + submodule update: remove unnecessary orig_flags variable
265  Code clean-up.
267  Can wait in 'next'.
270 * jn/mediawiki-makefile-updates (2013-11-11) 4 commits
271   (merged to 'next' on 2013-11-13 at 71c8d20)
272  + git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR with whitespace
273  + git-remote-mediawiki build: make 'install' command configurable
274  + git-remote-mediawiki: honor DESTDIR in "make install"
275  + git-remote-mediawiki: do not remove installed files in "clean" target
277  Build and Installation procedure clean-up.
279  Can wait in 'next'.
282 * tb/doc-fetch-pack-url (2013-11-11) 1 commit
283   (merged to 'next' on 2013-11-13 at 90d6832)
284  + git-fetch-pack uses URLs like git-fetch
286  Can wait in 'next'.
289 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
290   (merged to 'next' on 2013-11-06 at 7b45219)
291  + Rename suffixcmp() to has_suffix() and invert its result
292   (merged to 'next' on 2013-11-04 at 6408502)
293  + builtin/remote: remove postfixcmp() and use suffixcmp() instead
295  Minor code clean-up.
297  Can wait in 'next'.
300 * nd/wt-status-align-i18n (2013-11-06) 1 commit
301   (merged to 'next' on 2013-11-13 at b033aa0)
302  + wt-status: take the alignment burden off translators
304  An attempt to automatically align the names in the "git status"
305  output, taking the display width of (translated) section labels
306  into account.
308  Can wait in 'next'.
311 * nv/commit-gpgsign-config (2013-11-06) 1 commit
312  - Add the commit.gpgsign option to sign all commits
314  Introduce commit.gpgsign configuration variable to force every
315  commit to be GPG signed.
317  Needs tests, perhaps?
320 * sb/sha1-loose-object-info-check-existence (2013-11-06) 1 commit
321   (merged to 'next' on 2013-11-06 at 1ea5b18)
322  + sha1_loose_object_info(): do not return success on missing object
324  "git cat-file --batch-check=ok" did not check the existence of the
325  named object.
327  Will cook in 'next'.
330 * gj/push-more-verbose-advice (2013-11-13) 2 commits
331  - push: switch default from "matching" to "simple"
332  - push: enhance unspecified push default warning
334  Explain 'simple' and 'matching' in "git push" advice message; the
335  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
336  of it.
338  Will cook in 'next'.
340  The first one should be merged to 'master' soon after the next
341  cycle opens; the other to replace jc/push-2.0-default-to-simple.
344 * rr/for-each-ref-decoration (2013-11-13) 5 commits
345  - fixup! for-each-ref: introduce %(color:...) for color
346  - for-each-ref: introduce %(color:...) for color
347  - fixup! for-each-ref: introduce %(upstream:track[short])
348  - for-each-ref: introduce %(upstream:track[short])
349  - for-each-ref: introduce %(HEAD) asterisk marker
351  Needs fix-ups, aut-reset, --color=auto support, and tests.
352  but it is a good start.
355 * jk/two-way-merge-corner-case-fix (2013-11-04) 3 commits
356   (merged to 'next' on 2013-11-04 at 79f4fb0)
357  + t1005: add test for "read-tree --reset -u A B"
358  + t1005: reindent
359  + unpack-trees: fix "read-tree -u --reset A B" with conflicted index
361  Fix a rather longstanding corner-case bug in twoway "reset to
362  there" merge, which is most often seen in "git am --abort".
364  Will cook in 'next'.
367 * jc/ref-excludes (2013-11-01) 5 commits
368   (merged to 'next' on 2013-11-04 at fac1ed0)
369  + rev-parse: introduce --exclude=<glob> to tame wildcards
370  + rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
371  + rev-list --exclude: tests
372  + document --exclude option
373  + revision: introduce --exclude=<glob> to tame wildcards
375  People often wished a way to tell "git log --branches" (and "git
376  log --remotes --not --branches") to exclude some local branches
377  from the expansion of "--branches" (similarly for "--tags", "--all"
378  and "--glob=<pattern>").  Now they have one.
380  Can wait in 'next'.
383 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
384   (merged to 'next' on 2013-11-01 at 2384e29)
385  + use @@PERL@@ in built scripts
387  Can wait in 'next'.
390 * fc/transport-helper-fixes (2013-11-13) 12 commits
391  - remote-bzr: support the new 'force' option
392  - transport-helper: add support to delete branches
393  - fast-export: add support to delete refs
394  - fast-import: add support to delete refs
395  - transport-helper: add support for old:new refspec
396  - fast-export: add new --refspec option
397  - fast-export: improve argument parsing
398  - test-hg.sh: tests are now expected to pass
399  - transport-helper: check for 'forced update' message
400  - transport-helper: add 'force' to 'export' helpers
401  - transport-helper: don't update refs in dry-run
402  - transport-helper: mismerge fix
404  Updates transport-helper, fast-import and fast-export to allow the
405  ref mapping and ref deletion in a way similar to the natively
406  supported transports.
409 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
410   (merged to 'next' on 2013-11-01 at 3169b0f)
411  + sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
413  Will cook in 'next'.
416 * nd/liteal-pathspecs (2013-10-28) 1 commit
417   (merged to 'next' on 2013-11-01 at 1a91775)
418  + pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses
420  Will cook in 'next'.
423 * th/reflog-annotated-tag (2013-10-28) 1 commit
424   (merged to 'next' on 2013-11-01 at 8b154cc)
425  + reflog: handle lightweight and annotated tags equally
427  "git log -g $annotated_tag", when there is no reflog history, should
428  have produced a single output entry (i.e. the ref creation event),
429  but instead showed the history leading to the tag.
431  Broken at the design level.  Any reflog entry that points at a non
432  commit needs to be handled with new code that does not exist yet,
433  and lifting the "this code handles only commits" without adding
434  such code does not solve anything.
437 * tr/merge-recursive-index-only (2013-10-28) 3 commits
438  - merge-recursive: -Xindex-only to leave worktree unchanged
439  - merge-recursive: internal flag to avoid touching the worktree
440  - merge-recursive: remove dead conditional in update_stages()
442  Will hold until using script appears.
445 * bc/http-100-continue (2013-10-31) 3 commits
446   (merged to 'next' on 2013-11-01 at e12ae23)
447  + remote-curl: fix large pushes with GSSAPI
448  + remote-curl: pass curl slot_results back through run_slot
449  + http: return curl's AUTHAVAIL via slot_results
451  Issue "100 Continue" responses to help use of GSS-Negotiate
452  authentication scheme over HTTP transport when needed.
454  Will cook in 'next'.
457 * jc/merge-base-reflog (2013-10-29) 2 commits
458   (merged to 'next' on 2013-11-01 at 6114764)
459  + merge-base: teach "--fork-point" mode
460  + merge-base: use OPT_CMDMODE and clarify the command line parsing
462  Code the logic in "pull --rebase" that figures out a fork point
463  from reflog entries in C.
465  Will cook in 'next'.
468 * jk/robustify-parse-commit (2013-10-24) 6 commits
469   (merged to 'next' on 2013-11-01 at 2bfbaab)
470  + checkout: do not die when leaving broken detached HEAD
471  + use parse_commit_or_die instead of custom message
472  + use parse_commit_or_die instead of segfaulting
473  + assume parse_commit checks for NULL commit
474  + assume parse_commit checks commit->object.parsed
475  + log_tree_diff: die when we fail to parse a commit
477  Will cook in 'next'.
480 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
481   (merged to 'next' on 2013-11-06 at 6932893)
482  + fetch: improve the error messages emitted for conflicting refspecs
483  + handle_duplicate(): mark error message for translation
484  + ref_remote_duplicates(): extract a function handle_duplicate()
485  + ref_remove_duplicates(): simplify loop logic
486  + t5536: new test of refspec conflicts when fetching
487  + ref_remove_duplicates(): avoid redundant bisection
488  + git-fetch.txt: improve description of tag auto-following
489  + fetch-options.txt: simplify ifdef/ifndef/endif usage
490  + fetch, remote: properly convey --no-prune options to subprocesses
491  + builtin/remote.c:update(): use struct argv_array
492  + builtin/remote.c: reorder function definitions
493  + query_refspecs(): move some constants out of the loop
494  + fetch --prune: prune only based on explicit refspecs
495  + fetch --tags: fetch tags *in addition to* other stuff
496  + fetch: only opportunistically update references based on command line
497  + get_expanded_map(): avoid memory leak
498  + get_expanded_map(): add docstring
499  + builtin/fetch.c: reorder function definitions
500  + get_ref_map(): rename local variables
501  + api-remote.txt: correct section "struct refspec"
502  + t5510: check that "git fetch --prune --tags" does not prune branches
503  + t5510: prepare test refs more straightforwardly
504  + t5510: use the correct tag name in test
506  The "-tags" option to "git fetch" used to be literally a synonym to
507  a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
508  explicit refspec given from the command line, it silenced the lazy
509  "git fetch" default that is configured, and (2) also as an explicit
510  refspec given from the command line, it interacted with "--prune"
511  to remove any tag that the remote we are fetching from does not
512  have.
514  This demotes it to an option; with it, we fetch all tags in
515  addition to what would be fetched without the option, and it does
516  not interact with the decision "--prune" makes to see what
517  remote-tracking refs the local has are missing the remote
518  counterpart.
520  Will cook in 'next'.
523 * nv/parseopt-opt-arg (2013-10-31) 2 commits
524   (merged to 'next' on 2013-11-01 at cd2afd9)
525  + rev-parse --parseopt: add the --stuck-long mode
526  + Use the word 'stuck' instead of 'sticked'
528  Enhance "rev-parse --parseopt" mode to help parsing options with
529  an optional parameter.
531  Will cook in 'next'.
534 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
535   (merged to 'next' on 2013-10-14 at d77c5f1)
536  + submodule foreach: skip eval for more than one argument
538  A behavior change, but a worthwhile one: "git submodule foreach"
539  was treating its arguments as part of a single command to be
540  concatenated and passed to a shell, making writing buggy
541  scripts too easy.
543  This patch preserves the old "just pass it to the shell" behavior
544  when a single argument is passed to 'git submodule foreach' and
545  moves to a new "skip the shell and use the arguments passed
546  unmolested" behavior when more than one argument is passed.
548  The old behavior (always concatenating and passing to the shell)
549  was similar to the 'ssh' command, while the new behavior (switching
550  on the number of arguments) is what 'xterm -e' does.
552  May need more thought to make sure this change is advertised well
553  so that scripts that used multiple arguments but added their own
554  extra layer of quoting are not broken.
556  Will cook in 'next'.
559 * kb/fast-hashmap (2013-11-07) 16 commits
560  - fixup! builtin/update-index.c: cleanup update_one
561  - fixup! read-cache.c: fix memory leaks caused by removed cache entries
562  - read-cache.c: fix memory leaks caused by removed cache entries
563  - builtin/update-index.c: cleanup update_one
564  - fix 'git update-index --verbose --again' output
565  - remove old hash.[ch] implementation
566  - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
567  - name-hash.c: use new hash map implementation for cache entries
568  - name-hash.c: remove unreferenced directory entries
569  - name-hash.c: use new hash map implementation for directories
570  - diffcore-rename.c: use new hash map implementation
571  - diffcore-rename.c: simplify finding exact renames
572  - diffcore-rename.c: move code around to prepare for the next patch
573  - buitin/describe.c: use new hash map implementation
574  - add a hashtable implementation that supports O(1) removal
575  - submodule: don't access the .gitmodules cache entry after removing it
577  Improvements to our hash table to get it to meet the needs of the
578  msysgit fscache project, with some nice performance improvements.
580  The preparatory clean-up to submodule from Jens is at the bottom. I
581  also squashed in a fix-up by Karsten found at $gmane/236468 (please
582  double-check the result).
584  This is a reroll one after the valgrind breakage report ($gmane/236869).
586  Waiting for a reroll.
589 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
590   (merged to 'next' on 2013-10-28 at d8cdf30)
591  + git add: -u/-A now affects the entire working tree
593  Will cook in 'next' until Git 2.0.
596 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
597   (merged to 'next' on 2013-10-28 at f1bec96)
598  + core.statinfo: remove as promised in Git 2.0
600  Will cook in 'next' until Git 2.0.
603 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
604   (merged to 'next' on 2013-10-28 at 3153a9e)
605  + push: switch default from "matching" to "simple"
607  Will cook in 'next' until Git 2.0.
610 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
611   (merged to 'next' on 2013-10-28 at 5fd76ec)
612  + git add <pathspec>... defaults to "-A"
614  Updated endgame for "git add <pathspec>" that defaults to "--all"
615  aka "--no-ignore-removal".
617  Will cook in 'next' until Git 2.0.
620 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
621   (merged to 'next' on 2013-11-01 at 5fc26e4)
622  + diff: remove "diff-files -q" in a version of Git in a distant future
624  Will cook in 'next' until a distant future.