What's cooking (2014/10 #05)
[alt-git.git] / whats-cooking.txt
blob61c212a611c3c4adf41843a39af97ebea8d0e8cb
1 To: git@vger.kernel.org
2 Cc: Eric Wong <normalperson@yhbt.net>,
3     Paul Mackerras <paulus@samba.org>,
4     Pat Thoyts <patthoyts@users.sourceforge.net>
5 Bcc: lwn@lwn.net
6 Subject: What's cooking in git.git (Oct 2014, #05; Mon, 20)
7 X-master-at: 13da0fc092b8cf082eda2f16971c75903aa5aefc
8 X-next-at: 72aedf1b35ff671435dd29c2b62e2b2250805689
10 What's cooking in git.git (Oct 2014, #05; Mon, 20)
11 --------------------------------------------------
13 Here are the topics that have been cooking.  Commits prefixed with
14 '-' are only in 'pu' (proposed updates) while commits prefixed with
15 '+' are in 'next'.
17 According to tinyurl.com/gitCal, the feature freeze for this cycle
18 is scheduled for the end of this month.  What's in the 'next' branch
19 as of today looks more or less complete picture, I would think.  I'd
20 like to ask area maintainers of git-svn, gitk and git-gui to please
21 prepare to wrap up the accumulated changes for this cycle and throw
22 a pull request to me.  Thanks.
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 * bc/asciidoc (2014-10-13) 2 commits
33   (merged to 'next' on 2014-10-14 at d9ff206)
34  + Documentation: fix mismatched delimiters in git-imap-send
35  + Documentation: adjust document title underlining
36  (this branch is used by bc/asciidoctor.)
38  Formatting nitpicks to help a (pickier) reimplementation of
39  AsciiDoc to grok our documentation.
42 * cc/interpret-trailers (2014-10-13) 11 commits
43   (merged to 'next' on 2014-10-17 at ee4519c)
44  + Documentation: add documentation for 'git interpret-trailers'
45  + trailer: add tests for commands in config file
46  + trailer: execute command from 'trailer.<name>.command'
47  + trailer: add tests for "git interpret-trailers"
48  + trailer: add interpret-trailers command
49  + trailer: put all the processing together and print
50  + trailer: parse trailers from file or stdin
51  + trailer: process command line trailer arguments
52  + trailer: read and process config information
53  + trailer: process trailers from input message and arguments
54  + trailer: add data structures and basic functions
56  A new filter to programatically edit the tail end of the commit log
57  messages.
60 * jk/test-shell-trace (2014-10-13) 3 commits
61   (merged to 'next' on 2014-10-14 at 9118506)
62  + test-lib.sh: support -x option for shell-tracing
63  + t5304: use helper to report failure of "test foo = bar"
64  + t5304: use test_path_is_* instead of "test -f"
65  (this branch is used by jk/prune-mtime.)
67  Test scripts were taught to notice "-x" option to show shell trace,
68  as if the tests were run under "sh -x".
71 * jn/parse-config-slot (2014-10-14) 2 commits
72   (merged to 'next' on 2014-10-14 at 7f0a3ad)
73  + color_parse: do not mention variable name in error message
74  + pass config slots as pointers instead of offsets
76  Code cleanup.
79 * rm/gitweb-start-form (2014-10-16) 1 commit
80   (merged to 'next' on 2014-10-17 at 7ca427f)
81  + gitweb: use start_form, not startform that was removed in CGI.pm 4.04
84 * rs/receive-pack-argv-leak-fix (2014-10-13) 1 commit
85   (merged to 'next' on 2014-10-14 at e64654d)
86  + receive-pack: plug minor memory leak in unpack()
89 * ss/contrib-subtree-contacts (2014-10-15) 2 commits
90   (merged to 'next' on 2014-10-17 at 4b3a1d9)
91  + contacts: add a Makefile to generate docs and install
92  + subtree: add an install-html target
95 * ta/config-set (2014-10-13) 1 commit
96   (merged to 'next' on 2014-10-14 at ed660e4)
97  + t1308: fix broken here document in test script
99 --------------------------------------------------
100 [New Topics]
102 * jk/pack-objects-no-bitmap-when-splitting (2014-10-19) 1 commit
103  - pack-objects: turn off bitmaps when we split packs
105  Splitting pack-objects output into multiple packs is incompatible
106  with the use of reachability bitmap.
108  Will merge to 'next'.
111 * po/doc-status-markup (2014-10-19) 1 commit
112  - doc: fix 'git status --help' character quoting
114  Update documentation mark-up.
116  Will merge to 'next'.
119 * rs/run-command-env-array (2014-10-19) 2 commits
120  - use env_array member of struct child_process
121  - run-command: add env_array, an optional argv_array for env
123  Add managed "env" array to child_process to clarify the lifetime
124  rules.
126  Will merge to 'next'.
129 * tb/core-filemode-doc (2014-10-19) 1 commit
130  - core.filemode may need manual action
132  Doc update.
134  Will merge to 'next'.
137 * wk/t1304-wo-USER (2014-10-19) 1 commit
138  - t1304: Set LOGNAME even if USER is unset or null
140  Will merge to 'next'.
142 --------------------------------------------------
143 [Stalled]
145 * je/quiltimport-no-fuzz (2014-09-26) 2 commits
146  - git-quiltimport: flip the default not to allow fuzz
147  - git-quiltimport.sh: allow declining fuzz with --exact option
149  "quiltimport" drove "git apply" always with -C1 option to reduce
150  context of the patch in order to give more chance to somewhat stale
151  patches to apply.  Add an "--exact" option to disable, and also
152  "-C$n" option to customize this behaviour.  The top patch
153  optionally flips the default to "--exact".
155  Waiting for an Ack.
158 * tr/remerge-diff (2014-09-08) 8 commits
159  - log --remerge-diff: show what the conflict resolution changed
160  - name-hash: allow dir hashing even when !ignore_case
161  - merge-recursive: allow storing conflict hunks in index
162  - merge_diff_mode: fold all merge diff variants into an enum
163  - combine-diff: do not pass revs->dense_combined_merges redundantly
164  - merge-recursive: -Xindex-only to leave worktree unchanged
165  - merge-recursive: internal flag to avoid touching the worktree
166  - merge-recursive: remove dead conditional in update_stages()
168  "log -p" output learns a new way to let users inspect a merge
169  commit by showing the differences between the automerged result
170  with conflicts the person who recorded the merge would have seen
171  and the final conflict resolution that was recorded in the merge.
173  Waiting for a reroll ($gmane/256591).
176 * hv/submodule-config (2014-06-30) 4 commits
177  - do not die on error of parsing fetchrecursesubmodules option
178  - use new config API for worktree configurations of submodules
179  - extract functions for submodule config set and lookup
180  - implement submodule config cache for lookup of submodule names
182  Kicked back to 'pu' per request ($gmane/255610).
185 * jt/timer-settime (2014-08-29) 6 commits
186  - use timer_settime() for new platforms
187  - autoconf: check for timer_settime()
188  - autoconf: check for struct itimerspec
189  - autoconf: check for struct sigevent
190  - autoconf: check for struct timespec
191  - autoconf: check for timer_t
193  Reviewed, discussed and wanting for a reroll.
196 * jk/pack-bitmap (2014-08-04) 1 commit
197  - pack-bitmap: do not use gcc packed attribute
199  Hold, waiting for Karsten's replacement.
202 * jk/tag-contains (2014-06-30) 8 commits
203  . perf: add tests for tag --contains
204  . tag: use commit_contains
205  . commit: provide a fast multi-tip contains function
206  . string-list: add pos to iterator callback
207  . add functions for memory-efficient bitmaps
208  . paint_down_to_common: use prio_queue
209  . tag: factor out decision to stream tags
210  . tag: allow --sort with -n
212  Expecting a reroll.
215 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
216  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
217  - git-add--interactive: Preserve diff heading when splitting hunks
219  Waiting for a reroll.
222 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
223  - gitweb: Harden UTF-8 handling in generated links
225  $gmane/250758?
228 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
229  - userdiff: support Java try keyword
230  - userdiff: support C# async methods and correct C# keywords
232  Reviews sent; waiting for a response.
235 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
236  - git-rebase: print name of rev when using shorthand
238  Teach "git rebase -" to report the concrete name of the branch
239  (i.e. the previous one).
241  But it stops short and does not do the same for "git rebase @{-1}".
242  Expecting a reroll.
245 * jk/makefile (2014-02-05) 16 commits
246  . FIXUP
247  . move LESS/LV pager environment to Makefile
248  . Makefile: teach scripts to include make variables
249  . FIXUP
250  . Makefile: auto-build C strings from make variables
251  . Makefile: drop *_SQ variables
252  . FIXUP
253  . Makefile: add c-quote helper function
254  . Makefile: introduce sq function for shell-quoting
255  . Makefile: always create files via make-var
256  . Makefile: store GIT-* sentinel files in MAKE/
257  . Makefile: prefer printf to echo for GIT-*
258  . Makefile: use tempfile/mv strategy for GIT-*
259  . Makefile: introduce make-var helper function
260  . Makefile: fix git-instaweb dependency on gitweb
261  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
263  Simplify the Makefile rules and macros that exist primarily for
264  quoting purposes, and make it easier to robustly express the
265  dependency rules.
267  Expecting a reroll.
270 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
271  - merge: drop unused arg from abort_commit method signature
272  - merge: make prepare_to_commit responsible for write_merge_state
273  - t7505: ensure cleanup after hook blocks merge
274  - t7505: add missing &&
276  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
277  run during "git merge".  The log message stresses too much on one
278  hook, prepare-commit-msg, but it would equally apply to other hooks
279  like post-merge, I think.
281  Waiting for a reroll.
284 * jc/graph-post-root-gap (2013-12-30) 3 commits
285  - WIP: document what we want at the end
286  - graph: remove unused code a bit
287  - graph: stuff the current commit into graph->columns[]
289  This was primarily a RFH ($gmane/239580).
292 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
293  - perf-lib: add test_perf_cleanup target
294  - perf-lib: split starting the test from the execution
296  Add test_perf_cleanup shell function to the perf suite, that allows
297  the script writers to define a test with a clean-up action.
299  Will hold.
302 * jc/show-branch (2014-03-24) 5 commits
303  - show-branch: use commit slab to represent bitflags of arbitrary width
304  - show-branch.c: remove "all_mask"
305  - show-branch.c: abstract out "flags" operation
306  - show-branch.c: lift all_mask/all_revs to a global static
307  - show-branch.c: update comment style
309  Waiting for the final step to lift the hard-limit before sending it out.
311 --------------------------------------------------
312 [Cooking]
314 * eb/no-pthreads (2014-10-19) 3 commits
315  - Handle atexit list internaly for unthreaded builds
316  - pack-objects: set number of threads before checking and warning
317  - index-pack: fix compilation with NO_PTHREADS
319  Allow us build with NO_PTHREADS=NoThanks compilation option.  The
320  last change (not queued) needs a bit more explanation in its log
321  message.
323  Will merge to 'next'.
326 * da/mergetool-temporary-directory (2014-10-16) 2 commits
327   (merged to 'next' on 2014-10-17 at 261e74e)
328  + t7610-mergetool: add test cases for mergetool.writeToTemp
329  + mergetool: add an option for writing to a temporary directory
330  (this branch uses da/mergetool-temporary-filename and da/mergetool-tests; is tangled with da/mergetool-tool-help.)
332  Allow a temporary directory specified to be used while running "git
333  mergetool" backend.
335  Will merge to 'master'.
338 * da/mergetool-tests (2014-10-16) 4 commits
339   (merged to 'next' on 2014-10-17 at 239fefe)
340  + test-lib-functions: adjust style to match CodingGuidelines
341  + t7610-mergetool: use test_config to isolate tests
342  + t7610-mergetool: add missing && and remove commented-out code
343  + t7610-mergetool: use tabs instead of a mix of tabs and spaces
344  (this branch is used by da/mergetool-temporary-directory and da/mergetool-temporary-filename; is tangled with da/mergetool-tool-help.)
346  The clean-up of this test script was long overdue and is a very
347  welcome change.
349  Will merge to 'master'.
352 * bc/asciidoctor (2014-10-15) 2 commits
353   (merged to 'next' on 2014-10-17 at 12ce2e2)
354  + Documentation: implement linkgit macro for Asciidoctor
355  + Documentation: move some AsciiDoc parameters into variables
357  Add machinery to alternatively use AsciiDoctor to format our
358  documentation.
360  Brian seems to have a bit more tweaks; will wait for them before
361  moving this topic forward.
364 * da/mergetool-meld (2014-10-16) 1 commit
365   (merged to 'next' on 2014-10-17 at 00ee553)
366  + mergetools/meld: make usage of `--output` configurable and more robust
368  Newer versions of 'meld' breaks the auto-detection we use to see if
369  they are new enough to support the `--output` option.
371  Will merge to 'master'.
374 * jk/prune-mtime (2014-10-19) 28 commits
375   (merged to 'next' on 2014-10-20 at fdd7ff6)
376  + drop add_object_array_with_mode
377  + revision: remove definition of unused 'add_object' function
378  + pack-objects: double-check options before discarding objects
379  + repack: pack objects mentioned by the index
380  + pack-objects: use argv_array
381  + reachable: use revision machinery's --indexed-objects code
382  + rev-list: add --indexed-objects option
383  + rev-list: document --reflog option
384  + t5516: test pushing a tag of an otherwise unreferenced blob
385  + traverse_commit_list: support pending blobs/trees with paths
386  + make add_object_array_with_context interface more sane
387  + write_sha1_file: freshen existing objects
388  + pack-objects: match prune logic for discarding objects
389  + pack-objects: refactor unpack-unreachable expiration check
390  + prune: keep objects reachable from recent objects
391  + sha1_file: add for_each iterators for loose and packed objects
392  + count-objects: use for_each_loose_file_in_objdir
393  + count-objects: do not use xsize_t when counting object size
394  + prune-packed: use for_each_loose_file_in_objdir
395  + reachable: mark index blobs as SEEN
396  + prune: factor out loose-object directory traversal
397  + reachable: reuse revision.c "add all reflogs" code
398  + reachable: use traverse_commit_list instead of custom walk
399  + clean up name allocation in prepare_revision_walk
400  + object_array: add a "clear" function
401  + object_array: factor out slopbuf-freeing logic
402  + isxdigit: cast input to unsigned char
403  + foreach_alt_odb: propagate return value from callback
405  Tighten the logic to decide that an unreachable cruft is
406  sufficiently old by covering corner cases such as an ancient object
407  becoming reachable and then going unreachable again, in which case
408  its retention period should be prolonged.
410  Will merge to 'master'.
413 * rs/ref-transaction (2014-10-15) 25 commits
414   (merged to 'next' on 2014-10-17 at 1390624)
415  + ref_transaction_commit: bail out on failure to remove a ref
416  + lockfile: remove unable_to_lock_error
417  + refs.c: do not permit err == NULL
418  + remote rm/prune: print a message when writing packed-refs fails
419  + for-each-ref: skip and warn about broken ref names
420  + refs.c: allow listing and deleting badly named refs
421  + test: put tests for handling of bad ref names in one place
422  + packed-ref cache: forbid dot-components in refnames
423  + branch -d: simplify by using RESOLVE_REF_READING
424  + branch -d: avoid repeated symref resolution
425  + reflog test: test interaction with detached HEAD
426  + refs.c: change resolve_ref_unsafe reading argument to be a flags field
427  + refs.c: make write_ref_sha1 static
428  + fetch.c: change s_update_ref to use a ref transaction
429  + refs.c: ref_transaction_commit: distinguish name conflicts from other errors
430  + refs.c: pass a list of names to skip to is_refname_available
431  + refs.c: call lock_ref_sha1_basic directly from commit
432  + refs.c: refuse to lock badly named refs in lock_ref_sha1_basic
433  + rename_ref: don't ask read_ref_full where the ref came from
434  + refs.c: pass the ref log message to _create/delete/update instead of _commit
435  + refs.c: add an err argument to delete_ref_loose
436  + wrapper.c: add a new function unlink_or_msg
437  + refs.c: lock_ref_sha1_basic is used for all refs
438  + wrapper.c: remove/unlink_or_warn: simplify, treat ENOENT as success
439  + mv test: recreate mod/ directory instead of relying on stale copy
441  The API to update refs have been restructured to allow introducing
442  a true transactional updates later.  We would even allow storing
443  refs in backends other than the traditional filesystem-based one.
445  Will merge to 'master'.
448 * da/mergetool-tool-help (2014-10-15) 8 commits
449   (merged to 'next' on 2014-10-17 at 854654c)
450  + difftool: don't assume that default sh is sane
451  + mergetool: don't require a work tree for --tool-help
452  + git-sh-setup: move GIT_DIR initialization into a function
453  + mergetool: use more conservative temporary filenames
454  + test-lib-functions: adjust style to match CodingGuidelines
455  + t7610-mergetool: prefer test_config over git config
456  + t7610-mergetool: add missing && and remove commented-out code
457  + t7610-mergetool: use tabs instead of a mix of tabs and spaces
458  (this branch is tangled with da/mergetool-temporary-directory, da/mergetool-temporary-filename and da/mergetool-tests.)
460  Allow "git mergetool --help" to run outside a Git repository.
462  Will merge to 'master'.
465 * jc/checkout-local-track-report (2014-10-14) 1 commit
466  - checkout: report upstream correctly even with loosely defined branch.*.merge
468  The report from "git checkout" on a branch that builds on another
469  local branch by setting its branch.*.merge to branch name (not a
470  full refname) incorrectly said that the upstream is gone.
472  Will merge to 'next'.
475 * jc/clone-borrow (2014-10-15) 1 commit
476  - clone: --dissociate option to mark that reference is only temporary
478  Allow "git clone --reference" to be used more safely.
481 * js/completion-hide-not-a-repo (2014-10-14) 1 commit
482   (merged to 'next' on 2014-10-17 at 466de3c)
483  + completion: silence "fatal: Not a git repository" error
485  Some internal error messages leaked out of the bash completion when
486  typing "git cmd <TAB>" and the machinery tried to complete
487  refnames.
489  Will merge to 'master'.
492 * da/mergetool-temporary-filename (2014-10-16) 1 commit
493   (merged to 'next' on 2014-10-17 at 3fb95b5)
494  + mergetool: use more conservative temporary filenames
495  (this branch is used by da/mergetool-temporary-directory; uses da/mergetool-tests; is tangled with da/mergetool-tool-help.)
497  Tweak the names of the three throw-away files "git mergetool" comes
498  up with to feed the merge tool backend, so that a file with a
499  single dot in its name in the original (e.g. "hello.c") will have
500  only one dot in these variants (e.g. "hello_BASE_4321.c").
502  Will merge to 'master'.
505 * jc/push-cert-hmac-optim (2014-09-25) 2 commits
506  - receive-pack: truncate hmac early and convert only necessary bytes
507  - sha1_to_hex: split out "hex-format n bytes" helper and use it
509  This is "we could do this if we wanted to", not "we measured and it
510  improves performance critical codepath".
512  Will perhaps drop.
515 * nd/multiple-work-trees (2014-09-27) 32 commits
516  . t2025: add a test to make sure grafts is working from a linked checkout
517  . checkout: don't require a work tree when checking out into a new one
518  . git_path(): keep "info/sparse-checkout" per work-tree
519  . count-objects: report unused files in $GIT_DIR/worktrees/...
520  . gc: support prune --worktrees
521  . gc: factor out gc.pruneexpire parsing code
522  . gc: style change -- no SP before closing parenthesis
523  . checkout: clean up half-prepared directories in --to mode
524  . checkout: reject if the branch is already checked out elsewhere
525  . prune: strategies for linked checkouts
526  . checkout: support checking out into a new working directory
527  . use new wrapper write_file() for simple file writing
528  . wrapper.c: wrapper to open a file, fprintf then close
529  . setup.c: support multi-checkout repo setup
530  . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
531  . setup.c: convert check_repository_format_gently to use strbuf
532  . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
533  . setup.c: convert is_git_directory() to use strbuf
534  . git-stash: avoid hardcoding $GIT_DIR/logs/....
535  . *.sh: avoid hardcoding $GIT_DIR/hooks/...
536  . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
537  . $GIT_COMMON_DIR: a new environment variable
538  . commit: use SEQ_DIR instead of hardcoding "sequencer"
539  . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
540  . reflog: avoid constructing .lock path with git_path
541  . *.sh: respect $GIT_INDEX_FILE
542  . git_path(): be aware of file relocation in $GIT_DIR
543  . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
544  . path.c: rename vsnpath() to do_git_path()
545  . git_snpath(): retire and replace with strbuf_git_path()
546  . path.c: make get_pathname() call sites return const char *
547  . path.c: make get_pathname() return strbuf instead of static buffer
549  A replacement for contrib/workdir/git-new-workdir that does not
550  rely on symbolic links and make sharing of objects and refs safer
551  by making the borrowee and borrowers aware of each other.
553  A few tests need some tweaks for MinGW ($gmane/{257756,257757}).
554  Conflicts with rs/ref-transaction so ejected for now, waiting for a
555  reroll.
558 * mt/patch-id-stable (2014-06-10) 1 commit
559  - patch-id: change default to stable
561  Teaches "git patch-id" to compute the patch ID that does not change
562  when the files in a single patch is reordered. As this new algorithm
563  is backward incompatible, the last bit to flip it to be the default
564  is left out of 'master' for now.
566  Nobody seems to be jumping up & down requesting this last step,
567  which makes the result somewhat backward incompatible.
568  Will perhaps drop.
570 --------------------------------------------------
571 [Discarded]
573 * rr/mergetool-temporary-filename-tweak (2014-08-21) 1 commit
574  . Allow the user to change the temporary file name for mergetool
576  Needed rerolling (new paragraph in doc seems to be in a wrong place)
577  for quite some time but without any activity.
580 * cb/mergetool-difftool (2014-07-21) 2 commits
581  . difftool: don't assume that default sh is sane
582  . mergetool: don't require a work tree for --tool-help
584  Rerolled as da/mergetool-tool-help topic.
587 * rh/prompt-tests (2014-06-05) 11 commits
588  . t9904: new __git_ps1 tests for Zsh
589  . test-lib: make it possible to override how test code is eval'd
590  . lib-prompt-tests.sh: add variable for string that encodes percent in PS1
591  . lib-prompt-tests.sh: put all tests inside a function
592  . t9903: move prompt tests to a new lib-prompt-tests.sh file
593  . t9903: move PS1 color code variable definitions to lib-bash.sh
594  . t9903: include "Bash" in test names via new $shellname var
595  . t9903: run pc mode tests again with PS1 expansion disabled
596  . t9903: move test name prefix to a separate variable
597  . t9903: put the Bash pc mode prompt test cases in a function
598  . t9903: remove Zsh test from the suite of Bash prompt tests
600  Was expecting a reroll to limit the damage to test_eval_; also
601  reported to be broken with older zsh that are still in the field
602  ($gmane/251231).