What's cooking (2014/10 #04)
[alt-git.git] / whats-cooking.txt
blob5ed63618fcb8fa0bd1deec5ad7f1135c40186369
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Oct 2014, #04; Thu, 16)
4 X-master-at: 98349e5364da6164add4ede3e63ceba2cc39159b
5 X-next-at: 26a8a7df7daa247250ed7881245ac01138463bad
7 What's cooking in git.git (Oct 2014, #04; Thu, 16)
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 [Graduated to "master"]
22 * bw/trace-no-inline-getnanotime (2014-09-29) 1 commit
23   (merged to 'next' on 2014-10-14 at 19facbb)
24  + trace.c: do not mark getnanotime() as "inline"
26  No file-scope static variables in an inlined function, please.
29 * jc/completion-no-chdir (2014-10-09) 1 commit
30   (merged to 'next' on 2014-10-14 at 1cf12e1)
31  + completion: use "git -C $there" instead of (cd $there && git ...)
34 * po/everyday-doc (2014-10-10) 3 commits
35   (merged to 'next' on 2014-10-13 at daf1d03)
36  + doc: add 'everyday' to 'git help'
37  + doc: Makefile regularise OBSOLETE_HTML list building
38  + doc: modernise everyday.txt wording and format in man page style
40  "git help everyday" to show the Everyday Git document.
42 --------------------------------------------------
43 [New Topics]
45 * da/mergetool-temporary-directory (2014-10-16) 2 commits
46  - t7610-mergetool: add test cases for mergetool.writeToTemp
47  - mergetool: add an option for writing to a temporary directory
48  (this branch uses da/mergetool-temporary-filename and da/mergetool-tests; is tangled with da/mergetool-tool-help.)
50  Allow a temporary directory specified to be used while running "git
51  mergetool" backend.
53  Will merge to 'next'.
56 * da/mergetool-tests (2014-10-16) 4 commits
57  - test-lib-functions: adjust style to match CodingGuidelines
58  - t7610-mergetool: use test_config to isolate tests
59  - t7610-mergetool: add missing && and remove commented-out code
60  - t7610-mergetool: use tabs instead of a mix of tabs and spaces
61  (this branch is used by da/mergetool-temporary-directory and da/mergetool-temporary-filename; is tangled with da/mergetool-tool-help.)
63  The clean-up of this test script was long overdue and is a very
64  welcome change.
66  Will merge to 'next'.
69 * bc/asciidoctor (2014-10-15) 2 commits
70  - Documentation: implement linkgit macro for Asciidoctor
71  - Documentation: move some AsciiDoc parameters into variables
72  (this branch uses bc/asciidoc.)
74  Add machinery to alternatively use AsciiDoctor to format our
75  documentation.
77  Will merge to 'next'.
80 * da/mergetool-meld (2014-10-16) 1 commit
81  - mergetools/meld: make usage of `--output` configurable and more robust
83  Newer versions of 'meld' breaks the auto-detection we use to see if
84  they are new enough to support the `--output` option.
86  Will merge to 'next'.
89 * rm/gitweb-start-form (2014-10-16) 1 commit
90  - gitweb: use start_form, not startform that was removed in CGI.pm 4.04
92  Will merge to 'next'.
95 * ss/contrib-subtree-contacts (2014-10-15) 2 commits
96  - contacts: add a Makefile to generate docs and install
97  - subtree: add an install-html target
99  Will merge to 'next'.
101 --------------------------------------------------
102 [Stalled]
104 * je/quiltimport-no-fuzz (2014-09-26) 2 commits
105  - git-quiltimport: flip the default not to allow fuzz
106  - git-quiltimport.sh: allow declining fuzz with --exact option
108  "quiltimport" drove "git apply" always with -C1 option to reduce
109  context of the patch in order to give more chance to somewhat stale
110  patches to apply.  Add an "--exact" option to disable, and also
111  "-C$n" option to customize this behaviour.  The top patch
112  optionally flips the default to "--exact".
114  Waiting for an Ack.
117 * eb/no-pthreads (2014-10-13) 2 commits
118  - pack-objects: set number of threads before checking and warning
119  - index-pack: fix compilation with NO_PTHREADS
121  Allow us build with NO_PTHREADS=NoThanks compilation option.  The
122  last change (not queued) needs a bit more explanation in its log
123  message.
126 * tr/remerge-diff (2014-09-08) 8 commits
127  - log --remerge-diff: show what the conflict resolution changed
128  - name-hash: allow dir hashing even when !ignore_case
129  - merge-recursive: allow storing conflict hunks in index
130  - merge_diff_mode: fold all merge diff variants into an enum
131  - combine-diff: do not pass revs->dense_combined_merges redundantly
132  - merge-recursive: -Xindex-only to leave worktree unchanged
133  - merge-recursive: internal flag to avoid touching the worktree
134  - merge-recursive: remove dead conditional in update_stages()
136  "log -p" output learns a new way to let users inspect a merge
137  commit by showing the differences between the automerged result
138  with conflicts the person who recorded the merge would have seen
139  and the final conflict resolution that was recorded in the merge.
141  Waiting for a reroll ($gmane/256591).
144 * hv/submodule-config (2014-06-30) 4 commits
145  - do not die on error of parsing fetchrecursesubmodules option
146  - use new config API for worktree configurations of submodules
147  - extract functions for submodule config set and lookup
148  - implement submodule config cache for lookup of submodule names
150  Kicked back to 'pu' per request ($gmane/255610).
153 * jt/timer-settime (2014-08-29) 6 commits
154  - use timer_settime() for new platforms
155  - autoconf: check for timer_settime()
156  - autoconf: check for struct itimerspec
157  - autoconf: check for struct sigevent
158  - autoconf: check for struct timespec
159  - autoconf: check for timer_t
161  Reviewed, discussed and wanting for a reroll.
164 * jk/pack-bitmap (2014-08-04) 1 commit
165  - pack-bitmap: do not use gcc packed attribute
167  Hold, waiting for Karsten's replacement.
170 * jk/tag-contains (2014-06-30) 8 commits
171  . perf: add tests for tag --contains
172  . tag: use commit_contains
173  . commit: provide a fast multi-tip contains function
174  . string-list: add pos to iterator callback
175  . add functions for memory-efficient bitmaps
176  . paint_down_to_common: use prio_queue
177  . tag: factor out decision to stream tags
178  . tag: allow --sort with -n
180  Expecting a reroll.
183 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
184  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
185  - git-add--interactive: Preserve diff heading when splitting hunks
187  Waiting for a reroll.
190 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
191  - gitweb: Harden UTF-8 handling in generated links
193  $gmane/250758?
196 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
197  - userdiff: support Java try keyword
198  - userdiff: support C# async methods and correct C# keywords
200  Reviews sent; waiting for a response.
203 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
204  - git-rebase: print name of rev when using shorthand
206  Teach "git rebase -" to report the concrete name of the branch
207  (i.e. the previous one).
209  But it stops short and does not do the same for "git rebase @{-1}".
210  Expecting a reroll.
213 * jk/makefile (2014-02-05) 16 commits
214  . FIXUP
215  . move LESS/LV pager environment to Makefile
216  . Makefile: teach scripts to include make variables
217  . FIXUP
218  . Makefile: auto-build C strings from make variables
219  . Makefile: drop *_SQ variables
220  . FIXUP
221  . Makefile: add c-quote helper function
222  . Makefile: introduce sq function for shell-quoting
223  . Makefile: always create files via make-var
224  . Makefile: store GIT-* sentinel files in MAKE/
225  . Makefile: prefer printf to echo for GIT-*
226  . Makefile: use tempfile/mv strategy for GIT-*
227  . Makefile: introduce make-var helper function
228  . Makefile: fix git-instaweb dependency on gitweb
229  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
231  Simplify the Makefile rules and macros that exist primarily for
232  quoting purposes, and make it easier to robustly express the
233  dependency rules.
235  Expecting a reroll.
238 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
239  - merge: drop unused arg from abort_commit method signature
240  - merge: make prepare_to_commit responsible for write_merge_state
241  - t7505: ensure cleanup after hook blocks merge
242  - t7505: add missing &&
244  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
245  run during "git merge".  The log message stresses too much on one
246  hook, prepare-commit-msg, but it would equally apply to other hooks
247  like post-merge, I think.
249  Waiting for a reroll.
252 * jc/graph-post-root-gap (2013-12-30) 3 commits
253  - WIP: document what we want at the end
254  - graph: remove unused code a bit
255  - graph: stuff the current commit into graph->columns[]
257  This was primarily a RFH ($gmane/239580).
260 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
261  - perf-lib: add test_perf_cleanup target
262  - perf-lib: split starting the test from the execution
264  Add test_perf_cleanup shell function to the perf suite, that allows
265  the script writers to define a test with a clean-up action.
267  Will hold.
270 * jc/show-branch (2014-03-24) 5 commits
271  - show-branch: use commit slab to represent bitflags of arbitrary width
272  - show-branch.c: remove "all_mask"
273  - show-branch.c: abstract out "flags" operation
274  - show-branch.c: lift all_mask/all_revs to a global static
275  - show-branch.c: update comment style
277  Waiting for the final step to lift the hard-limit before sending it out.
279 --------------------------------------------------
280 [Cooking]
282 * jk/prune-mtime (2014-10-16) 25 commits
283  - pack-objects: double-check options before discarding objects
284  - repack: pack objects mentioned by the index
285  - pack-objects: use argv_array
286  - reachable: use revision machinery's --index-objects code
287  - rev-list: add --index-objects option
288  - rev-list: document --reflog option
289  - traverse_commit_list: support pending blobs/trees with paths
290  - make add_object_array_with_context interface more sane
291  - write_sha1_file: freshen existing objects
292  - pack-objects: match prune logic for discarding objects
293  - pack-objects: refactor unpack-unreachable expiration check
294  - prune: keep objects reachable from recent objects
295  - sha1_file: add for_each iterators for loose and packed objects
296  - count-objects: use for_each_loose_file_in_objdir
297  - count-objects: do not use xsize_t when counting object size
298  - prune-packed: use for_each_loose_file_in_objdir
299  - reachable: mark index blobs as SEEN
300  - prune: factor out loose-object directory traversal
301  - reachable: reuse revision.c "add all reflogs" code
302  - reachable: use traverse_commit_list instead of custom walk
303  - clean up name allocation in prepare_revision_walk
304  - object_array: add a "clear" function
305  - object_array: factor out slopbuf-freeing logic
306  - isxdigit: cast input to unsigned char
307  - foreach_alt_odb: propagate return value from callback
308  (this branch uses jk/test-shell-trace.)
310  Looked mostly sensible modulo minor nits (and I wasn't looking for
311  typos very carefully).  Object enumeration is broken.
314 * rs/ref-transaction (2014-10-15) 25 commits
315  - ref_transaction_commit: bail out on failure to remove a ref
316  - lockfile: remove unable_to_lock_error
317  - refs.c: do not permit err == NULL
318  - remote rm/prune: print a message when writing packed-refs fails
319  - for-each-ref: skip and warn about broken ref names
320  - refs.c: allow listing and deleting badly named refs
321  - test: put tests for handling of bad ref names in one place
322  - packed-ref cache: forbid dot-components in refnames
323  - branch -d: simplify by using RESOLVE_REF_READING
324  - branch -d: avoid repeated symref resolution
325  - reflog test: test interaction with detached HEAD
326  - refs.c: change resolve_ref_unsafe reading argument to be a flags field
327  - refs.c: make write_ref_sha1 static
328  - fetch.c: change s_update_ref to use a ref transaction
329  - refs.c: ref_transaction_commit: distinguish name conflicts from other errors
330  - refs.c: pass a list of names to skip to is_refname_available
331  - refs.c: call lock_ref_sha1_basic directly from commit
332  - refs.c: refuse to lock badly named refs in lock_ref_sha1_basic
333  - rename_ref: don't ask read_ref_full where the ref came from
334  - refs.c: pass the ref log message to _create/delete/update instead of _commit
335  - refs.c: add an err argument to delete_ref_loose
336  - wrapper.c: add a new function unlink_or_msg
337  - refs.c: lock_ref_sha1_basic is used for all refs
338  - wrapper.c: remove/unlink_or_warn: simplify, treat ENOENT as success
339  - mv test: recreate mod/ directory instead of relying on stale copy
341  The API to update refs have been restructured to allow introducing
342  a true transactional updates later.  We would even allow storing
343  refs in backends other than the traditional filesystem-based one.
345  Will merge to 'next'.
348 * bc/asciidoc (2014-10-13) 2 commits
349   (merged to 'next' on 2014-10-14 at d9ff206)
350  + Documentation: fix mismatched delimiters in git-imap-send
351  + Documentation: adjust document title underlining
352  (this branch is used by bc/asciidoctor.)
354  Formatting nitpicks to help a (pickier) reimplementation of
355  AsciiDoc to grok our documentation.
357  Will merge to 'master'.
360 * da/mergetool-tool-help (2014-10-15) 8 commits
361  - difftool: don't assume that default sh is sane
362  - mergetool: don't require a work tree for --tool-help
363  - git-sh-setup: move GIT_DIR initialization into a function
364  - mergetool: use more conservative temporary filenames
365  - test-lib-functions: adjust style to match CodingGuidelines
366  - t7610-mergetool: prefer test_config over git config
367  - t7610-mergetool: add missing && and remove commented-out code
368  - t7610-mergetool: use tabs instead of a mix of tabs and spaces
369  (this branch is tangled with da/mergetool-temporary-directory, da/mergetool-temporary-filename and da/mergetool-tests.)
371  Allow "git mergetool --help" to run outside a Git repository.
373  Will merge to 'next'.
376 * jk/test-shell-trace (2014-10-13) 3 commits
377   (merged to 'next' on 2014-10-14 at 9118506)
378  + test-lib.sh: support -x option for shell-tracing
379  + t5304: use helper to report failure of "test foo = bar"
380  + t5304: use test_path_is_* instead of "test -f"
381  (this branch is used by jk/prune-mtime.)
383  Test scripts were taught to notice "-x" option to show shell trace,
384  as if the tests were run under "sh -x".
386  Will merge to 'master'.
389 * rs/receive-pack-argv-leak-fix (2014-10-13) 1 commit
390   (merged to 'next' on 2014-10-14 at e64654d)
391  + receive-pack: plug minor memory leak in unpack()
393  Will merge to 'master'.
396 * ta/config-set (2014-10-13) 1 commit
397   (merged to 'next' on 2014-10-14 at ed660e4)
398  + t1308: fix broken here document in test script
400  Will merge to 'master'.
403 * jc/checkout-local-track-report (2014-10-14) 1 commit
404  - checkout: report upstream correctly even with loosely defined branch.*.merge
406  The report from "git checkout" on a branch that builds on another
407  local branch by setting its branch.*.merge to branch name (not a
408  full refname) incorrectly said that the upstream is gone.
411 * jc/clone-borrow (2014-10-15) 1 commit
412  - clone: --dissociate option to mark that reference is only temporary
414  Allow "git clone --reference" to be used more safely.
417 * js/completion-hide-not-a-repo (2014-10-14) 1 commit
418  - completion: silence "fatal: Not a git repository" error
420  Some internal error messages leaked out of the bash completion when
421  typing "git cmd <TAB>" and the machinery tried to complete
422  refnames.
425 * jn/parse-config-slot (2014-10-14) 2 commits
426   (merged to 'next' on 2014-10-14 at 7f0a3ad)
427  + color_parse: do not mention variable name in error message
428  + pass config slots as pointers instead of offsets
430  Code cleanup.
432  Will merge to 'master'.
435 * da/mergetool-temporary-filename (2014-10-16) 1 commit
436  - mergetool: use more conservative temporary filenames
437  (this branch is used by da/mergetool-temporary-directory; uses da/mergetool-tests; is tangled with da/mergetool-tool-help.)
439  Tweak the names of the three throw-away files "git mergetool" comes
440  up with to feed the merge tool backend, so that a file with a
441  single dot in its name in the original (e.g. "hello.c") will have
442  only one dot in these variants (e.g. "hello_BASE_4321.c").
444  Will merge to 'next'.
447 * jc/push-cert-hmac-optim (2014-09-25) 2 commits
448  - receive-pack: truncate hmac early and convert only necessary bytes
449  - sha1_to_hex: split out "hex-format n bytes" helper and use it
451  This is "we could do this if we wanted to", not "we measured and it
452  improves performance critical codepath".
454  Will perhaps drop.
457 * nd/multiple-work-trees (2014-09-27) 32 commits
458  . t2025: add a test to make sure grafts is working from a linked checkout
459  . checkout: don't require a work tree when checking out into a new one
460  . git_path(): keep "info/sparse-checkout" per work-tree
461  . count-objects: report unused files in $GIT_DIR/worktrees/...
462  . gc: support prune --worktrees
463  . gc: factor out gc.pruneexpire parsing code
464  . gc: style change -- no SP before closing parenthesis
465  . checkout: clean up half-prepared directories in --to mode
466  . checkout: reject if the branch is already checked out elsewhere
467  . prune: strategies for linked checkouts
468  . checkout: support checking out into a new working directory
469  . use new wrapper write_file() for simple file writing
470  . wrapper.c: wrapper to open a file, fprintf then close
471  . setup.c: support multi-checkout repo setup
472  . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
473  . setup.c: convert check_repository_format_gently to use strbuf
474  . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
475  . setup.c: convert is_git_directory() to use strbuf
476  . git-stash: avoid hardcoding $GIT_DIR/logs/....
477  . *.sh: avoid hardcoding $GIT_DIR/hooks/...
478  . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
479  . $GIT_COMMON_DIR: a new environment variable
480  . commit: use SEQ_DIR instead of hardcoding "sequencer"
481  . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
482  . reflog: avoid constructing .lock path with git_path
483  . *.sh: respect $GIT_INDEX_FILE
484  . git_path(): be aware of file relocation in $GIT_DIR
485  . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
486  . path.c: rename vsnpath() to do_git_path()
487  . git_snpath(): retire and replace with strbuf_git_path()
488  . path.c: make get_pathname() call sites return const char *
489  . path.c: make get_pathname() return strbuf instead of static buffer
491  A replacement for contrib/workdir/git-new-workdir that does not
492  rely on symbolic links and make sharing of objects and refs safer
493  by making the borrowee and borrowers aware of each other.
495  A few tests need some tweaks for MinGW ($gmane/{257756,257757}).
496  Conflicts with rs/ref-transaction so ejected for now, waiting for a
497  reroll.
500 * cc/interpret-trailers (2014-10-13) 11 commits
501  - Documentation: add documentation for 'git interpret-trailers'
502  - trailer: add tests for commands in config file
503  - trailer: execute command from 'trailer.<name>.command'
504  - trailer: add tests for "git interpret-trailers"
505  - trailer: add interpret-trailers command
506  - trailer: put all the processing together and print
507  - trailer: parse trailers from file or stdin
508  - trailer: process command line trailer arguments
509  - trailer: read and process config information
510  - trailer: process trailers from input message and arguments
511  - trailer: add data structures and basic functions
513  A new filter to programatically edit the tail end of the commit log
514  messages.
517 * mt/patch-id-stable (2014-06-10) 1 commit
518  - patch-id: change default to stable
520  Teaches "git patch-id" to compute the patch ID that does not change
521  when the files in a single patch is reordered. As this new algorithm
522  is backward incompatible, the last bit to flip it to be the default
523  is left out of 'master' for now.
525  Nobody seems to be jumping up & down requesting this last step,
526  which makes the result somewhat backward incompatible.
527  Will perhaps drop.
529 --------------------------------------------------
530 [Discarded]
532 * rr/mergetool-temporary-filename-tweak (2014-08-21) 1 commit
533  . Allow the user to change the temporary file name for mergetool
535  Needed rerolling (new paragraph in doc seems to be in a wrong place)
536  for quite some time but without any activity.
539 * cb/mergetool-difftool (2014-07-21) 2 commits
540  . difftool: don't assume that default sh is sane
541  . mergetool: don't require a work tree for --tool-help
543  Rerolled as da/mergetool-tool-help topic.
546 * rh/prompt-tests (2014-06-05) 11 commits
547  . t9904: new __git_ps1 tests for Zsh
548  . test-lib: make it possible to override how test code is eval'd
549  . lib-prompt-tests.sh: add variable for string that encodes percent in PS1
550  . lib-prompt-tests.sh: put all tests inside a function
551  . t9903: move prompt tests to a new lib-prompt-tests.sh file
552  . t9903: move PS1 color code variable definitions to lib-bash.sh
553  . t9903: include "Bash" in test names via new $shellname var
554  . t9903: run pc mode tests again with PS1 expansion disabled
555  . t9903: move test name prefix to a separate variable
556  . t9903: put the Bash pc mode prompt test cases in a function
557  . t9903: remove Zsh test from the suite of Bash prompt tests
559  Was expecting a reroll to limit the damage to test_eval_; also
560  reported to be broken with older zsh that are still in the field
561  ($gmane/251231).