What's cooking (2014/07 #06)
[git/jrn.git] / whats-cooking.txt
bloba45d65e768794aca1dcd2e0c6967f55b52cd4f81
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jul 2014, #06; Tue, 29)
4 X-master-at: 583b61c1af1bac12d6b48b2583ad508b5ab9964c
5 X-next-at: fbdcabe3ee4652186b0b2370eb0646ec0abf433e
7 What's cooking in git.git (Jul 2014, #06; Tue, 29)
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 * cc/replace-graft (2014-07-21) 9 commits
23   (merged to 'next' on 2014-07-22 at 9b14090)
24  + replace: add test for --graft with a mergetag
25  + replace: check mergetags when using --graft
26  + replace: add test for --graft with signed commit
27  + replace: remove signature when using --graft
28  + contrib: add convert-grafts-to-replace-refs.sh
29  + Documentation: replace: add --graft option
30  + replace: add test for --graft
31  + replace: add --graft option
32  + replace: cleanup redirection style in tests
34  "git replace" learned a "--graft" option to rewrite parents of a
35  commit.
38 * jk/misc-fixes-maint (2014-07-24) 5 commits
39   (merged to 'next' on 2014-07-27 at 321a77c)
40  + apply: avoid possible bogus pointer
41  + fix memory leak parsing core.commentchar
42  + transport: fix leaks in refs_from_alternate_cb
43  + free ref string returned by dwim_ref
44  + receive-pack: don't copy "dir" parameter
46  Miscellaneous fixes.
49 * jk/rebase-am-fork-point (2014-07-16) 2 commits
50   (merged to 'next' on 2014-07-22 at 7648293)
51  + rebase: omit patch-identical commits with --fork-point
52  + rebase--am: use --cherry-pick instead of --ignore-if-in-upstream
54  "git rebase --fork-point" did not filter out patch-identical
55  commits correctly.
58 * jk/stable-prio-queue (2014-07-15) 4 commits
59   (merged to 'next' on 2014-07-22 at 46e9bc3)
60  + t5539: update a flaky test
61  + paint_down_to_common: use prio_queue
62  + prio-queue: make output stable with respect to insertion
63  + prio-queue: factor out compare and swap operations
65 --------------------------------------------------
66 [New Topics]
68 * ep/avoid-test-a-o (2014-07-25) 1 commit
69   (merged to 'next' on 2014-07-27 at 45de31d)
70  + t9814: fix misconversion from test $a -o $b to test $a || test $b
72  Will merge to 'master'.
75 * mm/config-edit-global (2014-07-25) 3 commits
76  - commit: advertise config --global --edit on guessed identity
77  - home_config_paths(): let the caller ignore xdg path
78  - config --global --edit: create a template file if needed
80  Will merge to 'next'.
83 * rs/init-no-duplicate-real-path (2014-07-28) 1 commit
84  - init: avoid superfluous real_path() calls
86  Will merge to 'next'.
88 --------------------------------------------------
89 [Stalled]
91 * jk/tag-contains (2014-06-30) 8 commits
92  . perf: add tests for tag --contains
93  . tag: use commit_contains
94  . commit: provide a fast multi-tip contains function
95  . string-list: add pos to iterator callback
96  . add functions for memory-efficient bitmaps
97  . paint_down_to_common: use prio_queue
98  . tag: factor out decision to stream tags
99  . tag: allow --sort with -n
101  Expecting a reroll.
104 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
105  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
106  - git-add--interactive: Preserve diff heading when splitting hunks
108  Waiting for a reroll.
111 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
112  - gitweb: Harden UTF-8 handling in generated links
114  $gmane/250758?
117 * rh/prompt-tests (2014-06-05) 11 commits
118  - t9904: new __git_ps1 tests for Zsh
119  - test-lib: make it possible to override how test code is eval'd
120  - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
121  - lib-prompt-tests.sh: put all tests inside a function
122  - t9903: move prompt tests to a new lib-prompt-tests.sh file
123  - t9903: move PS1 color code variable definitions to lib-bash.sh
124  - t9903: include "Bash" in test names via new $shellname var
125  - t9903: run pc mode tests again with PS1 expansion disabled
126  - t9903: move test name prefix to a separate variable
127  - t9903: put the Bash pc mode prompt test cases in a function
128  - t9903: remove Zsh test from the suite of Bash prompt tests
130  Expecting a reroll to limit the damage to test_eval_; also reported
131  to be broken with older zsh that are still in the field ($gmane/251231).
134 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
135  - userdiff: support Java try keyword
136  - userdiff: support C# async methods and correct C# keywords
138  Reviews sent; waiting for a response.
141 * cc/interpret-trailers (2014-05-28) 11 commits
142  - Documentation: add documentation for 'git interpret-trailers'
143  - trailer: add tests for commands in config file
144  - trailer: execute command from 'trailer.<name>.command'
145  - trailer: add tests for "git interpret-trailers"
146  - trailer: add interpret-trailers command
147  - trailer: put all the processing together and print
148  - trailer: parse trailers from file or stdin
149  - trailer: process command line trailer arguments
150  - trailer: read and process config information
151  - trailer: process trailers from input message and arguments
152  - trailer: add data structures and basic functions
154  A new filter to programatically edit the tail end of the commit log
155  messages.
157  What is the status of this one?  I think I saw reviews by Michael
158  but after that I do not recall seeing any updates.
161 * mh/lockfile (2014-04-15) 25 commits
162  . trim_last_path_elm(): replace last_path_elm()
163  . resolve_symlink(): take a strbuf parameter
164  . resolve_symlink(): use a strbuf for internal scratch space
165  . change lock_file::filename into a strbuf
166  . commit_lock_file(): use a strbuf to manage temporary space
167  . try_merge_strategy(): use a statically-allocated lock_file object
168  . try_merge_strategy(): remove redundant lock_file allocation
169  . struct lock_file: declare some fields volatile
170  . lockfile: avoid transitory invalid states
171  . commit_lock_file(): die() if called for unlocked lockfile object
172  . commit_lock_file(): inline temporary variable
173  . remove_lock_file(): call rollback_lock_file()
174  . lock_file(): exit early if lockfile cannot be opened
175  . write_packed_entry_fn(): convert cb_data into a (const int *)
176  . prepare_index(): declare return value to be (const char *)
177  . delete_ref_loose(): don't muck around in the lock_file's filename
178  . cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
179  . lockfile.c: document the various states of lock_file objects
180  . lock_file(): always add lock_file object to lock_file_list
181  . hold_lock_file_for_append(): release lock on errors
182  . lockfile: unlock file if lockfile permissions cannot be adjusted
183  . rollback_lock_file(): set fd to -1
184  . rollback_lock_file(): do not clear filename redundantly
185  . api-lockfile: expand the documentation
186  . unable_to_lock_die(): rename function from unable_to_lock_index_die()
188  Ejected from 'pu' to unclutter.
189  Expecting a reroll.
192 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
193  - git-rebase: print name of rev when using shorthand
195  Teach "git rebase -" to report the concrete name of the branch
196  (i.e. the previous one).
198  But it stops short and does not do the same for "git rebase @{-1}".
199  Expecting a reroll.
202 * tr/merge-recursive-index-only (2014-02-05) 3 commits
203  - merge-recursive: -Xindex-only to leave worktree unchanged
204  - merge-recursive: internal flag to avoid touching the worktree
205  - merge-recursive: remove dead conditional in update_stages()
206  (this branch is used by tr/remerge-diff.)
209 * tr/remerge-diff (2014-02-26) 5 commits
210  . log --remerge-diff: show what the conflict resolution changed
211  . name-hash: allow dir hashing even when !ignore_case
212  . merge-recursive: allow storing conflict hunks in index
213  . revision: fold all merge diff variants into an enum merge_diff_mode
214  . combine-diff: do not pass revs->dense_combined_merges redundantly
215  (this branch uses tr/merge-recursive-index-only.)
217  "log -p" output learns a new way to let users inspect a merge
218  commit by showing the differences between the automerged result
219  with conflicts the person who recorded the merge would have seen
220  and the final conflict resolution that was recorded in the merge.
222  Needs to be rebased, now kb/fast-hashmap topic is in.
225 * jk/makefile (2014-02-05) 16 commits
226  . FIXUP
227  . move LESS/LV pager environment to Makefile
228  . Makefile: teach scripts to include make variables
229  . FIXUP
230  . Makefile: auto-build C strings from make variables
231  . Makefile: drop *_SQ variables
232  . FIXUP
233  . Makefile: add c-quote helper function
234  . Makefile: introduce sq function for shell-quoting
235  . Makefile: always create files via make-var
236  . Makefile: store GIT-* sentinel files in MAKE/
237  . Makefile: prefer printf to echo for GIT-*
238  . Makefile: use tempfile/mv strategy for GIT-*
239  . Makefile: introduce make-var helper function
240  . Makefile: fix git-instaweb dependency on gitweb
241  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
243  Simplify the Makefile rules and macros that exist primarily for
244  quoting purposes, and make it easier to robustly express the
245  dependency rules.
247  Expecting a reroll.
250 * po/everyday-doc (2014-01-27) 1 commit
251  - Make 'git help everyday' work
253  This may make the said command to emit something, but the source is
254  not meant to be formatted into a manual pages to begin with, and
255  also its contents are a bit stale.  It may be a good first step in
256  the right direction, but needs more work to at least get the
257  mark-up right before public consumption.
259  Will hold.
262 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
263  - merge: drop unused arg from abort_commit method signature
264  - merge: make prepare_to_commit responsible for write_merge_state
265  - t7505: ensure cleanup after hook blocks merge
266  - t7505: add missing &&
268  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
269  run during "git merge".  The log message stresses too much on one
270  hook, prepare-commit-msg, but it would equally apply to other hooks
271  like post-merge, I think.
273  Waiting for a reroll.
276 * jc/graph-post-root-gap (2013-12-30) 3 commits
277  - WIP: document what we want at the end
278  - graph: remove unused code a bit
279  - graph: stuff the current commit into graph->columns[]
281  This was primarily a RFH ($gmane/239580).
284 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
285  - perf-lib: add test_perf_cleanup target
286  - perf-lib: split starting the test from the execution
288  Add test_perf_cleanup shell function to the perf suite, that allows
289  the script writers to define a test with a clean-up action.
291  Will hold.
294 * jc/show-branch (2014-03-24) 5 commits
295  - show-branch: use commit slab to represent bitflags of arbitrary width
296  - show-branch.c: remove "all_mask"
297  - show-branch.c: abstract out "flags" operation
298  - show-branch.c: lift all_mask/all_revs to a global static
299  - show-branch.c: update comment style
301  Waiting for the final step to lift the hard-limit before sending it out.
303 --------------------------------------------------
304 [Cooking]
306 * nd/multiple-work-trees-1 (2014-07-29) 8 commits
307  - checkout --to: do not touch existing target directory
308  - checkout: prefix --to argument properly when cwd is moved
309  - environment.c: fix incorrect git_graft_file initialization
310  - checkout --to: fix dangling pointers in remove_junk()
311  - checkout: no auto-detach if the ref is already checked out
312  - prune --repos: fix uninitialized access
313  - checkout: no need to call check_linked_checkouts if head_ref is NULL
314  - gitrepository-layout.txt: s/ignored/ignored if/
315  (this branch uses nd/multiple-work-trees.)
317  Continue polishing nd/multiple-work-trees topic in 'next'.
320 * rs/ref-transaction-reflog (2014-07-23) 15 commits
321  - refs.c: allow deleting refs with a broken sha1
322  - refs.c: remove lock_any_ref_for_update
323  - refs.c: make unlock_ref/close_ref/commit_ref static
324  - refs.c: rename log_ref_setup to create_reflog
325  - reflog.c: use a reflog transaction when writing during expire
326  - refs.c: allow multiple reflog updates during a single transaction
327  - refs.c: only write reflog update if msg is non-NULL
328  - refs.c: add a flag to allow reflog updates to truncate the log
329  - refs.c: add a transaction function to append a reflog entry
330  - lockfile.c: make hold_lock_file_for_append preserve meaningful errno
331  - refs.c: add a function to append a reflog entry to a fd
332  - refs.c: add a new update_type field to ref_update
333  - refs.c: rename the transaction functions
334  - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
335  - refs.c: make ref_transaction_create a wrapper to ref_transaction_update
336  (this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
338  Cover updates to reflog with the same transaction mechanism as used
339  for reflog manipulations.
342 * nd/path-max-is-better-than-hardcoded-magic-1024 (2014-07-17) 1 commit
343  - abspath.c: use PATH_MAX in real_path_internal()
345  Will drop; rs/strbuf-getcwd topic covers this codepath.
348 * sk/mingw-uni-fix-more (2014-07-21) 14 commits
349   (merged to 'next' on 2014-07-28 at 0945196)
350  + Win32: enable color output in Windows cmd.exe
351  + Win32: patch Windows environment on startup
352  + Win32: keep the environment sorted
353  + Win32: use low-level memory allocation during initialization
354  + Win32: reduce environment array reallocations
355  + Win32: don't copy the environment twice when spawning child processes
356  + Win32: factor out environment block creation
357  + Win32: unify environment function names
358  + Win32: unify environment case-sensitivity
359  + Win32: fix environment memory leaks
360  + Win32: Unicode environment (incoming)
361  + Win32: Unicode environment (outgoing)
362  + Revert "Windows: teach getenv to do a case-sensitive search"
363  + tests: do not pass iso8859-1 encoded parameter
365  Most of these are battle-tested in msysgit and are needed to
366  complete what has been merged to 'master' already.
368  Will merge to 'master'.
371 * sk/mingw-tests-workaround (2014-07-21) 6 commits
372   (merged to 'next' on 2014-07-28 at 2f3b7ac)
373  + t800[12]: work around MSys limitation
374  + t9902: mingw-specific fix for gitfile link files
375  + t4210: skip command-line encoding tests on mingw
376  + MinGW: disable legacy encoding tests
377  + t0110/MinGW: skip tests that pass arbitrary bytes on the command line
378  + MinGW: Skip test redirecting to fd 4
379  (this branch is used by jc/not-mingw-cygwin.)
381  Make tests pass on msysgit by mostly disabling ones that are
382  infeasible on that platform.
384  Will merge to 'master'.
387 * cb/mergetool-difftool (2014-07-21) 2 commits
388  - difftool: don't assume that default sh is sane
389  - mergetool: don't require a work tree for --tool-help
392 * rs/strbuf-getcwd (2014-07-29) 10 commits
393  - use strbuf_add_absolute_path() to add absolute paths
394  - abspath: convert absolute_path() to strbuf
395  - use xgetcwd() to set $GIT_DIR
396  - use xgetcwd() to get the current directory or die
397  - wrapper: add xgetcwd()
398  - abspath: convert real_path_internal() to strbuf
399  - abspath: use strbuf_getcwd() to remember original working directory
400  - setup: convert setup_git_directory_gently_1 et al. to strbuf
401  - unix-sockets: use strbuf_getcwd()
402  - strbuf: add strbuf_getcwd()
404  Will merge to 'next'.
407 * jc/not-mingw-cygwin (2014-07-21) 2 commits
408  - test prerequisites: enumerate with commas
409  - test prerequisites: eradicate NOT_FOO
410  (this branch uses sk/mingw-tests-workaround.)
412  We have been using NOT_{MINGW,CYGWIN} test prerequisites long
413  before Peff invented support for negated prerequisites e.g. !MINGW
414  and we still add more uses of the former.  Convert them to the
415  latter to avoid confusion.
418 * jk/more-push-completion (2014-07-22) 3 commits
419   (merged to 'next' on 2014-07-28 at d1d4c27)
420  + completion: complete `git push --force-with-lease=`
421  + completion: add some missing options to `git push`
422  + completion: complete "unstuck" `git push --recurse-submodules`
424  Will merge to 'master'.
427 * ta/config-set (2014-07-29) 2 commits
428  - test-config: add tests for the config_set API
429  - add `config_set` API for caching config-like files
431  More or less solidified enough to be built other enhancements upon.
432  Will merge to 'next'.
435 * rs/ref-transaction-1 (2014-07-16) 20 commits
436  - refs.c: make delete_ref use a transaction
437  - refs.c: make prune_ref use a transaction to delete the ref
438  - refs.c: remove lock_ref_sha1
439  - refs.c: remove the update_ref_write function
440  - refs.c: remove the update_ref_lock function
441  - refs.c: make lock_ref_sha1 static
442  - walker.c: use ref transaction for ref updates
443  - fast-import.c: use a ref transaction when dumping tags
444  - receive-pack.c: use a reference transaction for updating the refs
445  - refs.c: change update_ref to use a transaction
446  - branch.c: use ref transaction for all ref updates
447  - fast-import.c: change update_branch to use ref transactions
448  - sequencer.c: use ref transactions for all ref updates
449  - commit.c: use ref transactions for updates
450  - replace.c: use the ref transaction functions for updates
451  - tag.c: use ref transactions when doing updates
452  - refs.c: add transaction.status and track OPEN/CLOSED/ERROR
453  - refs.c: make ref_transaction_begin take an err argument
454  - refs.c: update ref_transaction_delete to check for error and return status
455  - refs.c: change ref_transaction_create to do error checking and return status
456  (this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
458  The second batch of the transactional ref update series.
461 * jc/reopen-lock-file (2014-07-14) 1 commit
462   (merged to 'next' on 2014-07-21 at 8277dc9)
463  + lockfile: allow reopening a closed but still locked file
465  Needed in the "commit -p" code path to update the cache tree in the
466  index.
469 * nd/multiple-work-trees (2014-07-17) 31 commits
470   (merged to 'next' on 2014-07-17 at a29d310)
471  + checkout: don't require a work tree when checking out into a new one
472  + git_path(): keep "info/sparse-checkout" per work-tree
473  + count-objects: report unused files in $GIT_DIR/repos/...
474  + gc: support prune --repos
475  + gc: factor out gc.pruneexpire parsing code
476  + gc: style change -- no SP before closing parenthesis
477  + prune: strategies for linked checkouts
478  + checkout: detach if the branch is already checked out elsewhere
479  + checkout: clean up half-prepared directories in --to mode
480  + checkout: support checking out into a new working directory
481  + use new wrapper write_file() for simple file writing
482  + wrapper.c: wrapper to open a file, fprintf then close
483  + setup.c: support multi-checkout repo setup
484  + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
485  + setup.c: convert check_repository_format_gently to use strbuf
486  + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
487  + setup.c: convert is_git_directory() to use strbuf
488  + git-stash: avoid hardcoding $GIT_DIR/logs/....
489  + *.sh: avoid hardcoding $GIT_DIR/hooks/...
490  + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
491  + $GIT_COMMON_DIR: a new environment variable
492  + commit: use SEQ_DIR instead of hardcoding "sequencer"
493  + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
494  + reflog: avoid constructing .lock path with git_path
495  + *.sh: respect $GIT_INDEX_FILE
496  + git_path(): be aware of file relocation in $GIT_DIR
497  + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
498  + path.c: rename vsnpath() to do_git_path()
499  + git_snpath(): retire and replace with strbuf_git_path()
500  + path.c: make get_pathname() call sites return const char *
501  + path.c: make get_pathname() return strbuf instead of static buffer
502  (this branch is used by nd/multiple-work-trees-1.)
504  A replacement for contrib/workdir/git-new-workdir that does not
505  rely on symbolic links and make sharing of objects and refs safer
506  by making the borrowee and borrowers aware of each other.
508  Will cook in 'next'.
511 * dt/cache-tree-repair (2014-07-14) 4 commits
512   (merged to 'next' on 2014-07-21 at e83db34)
513  + cache-tree: Write updated cache-tree after commit
514  + cache-tree: subdirectory tests
515  + test-dump-cache-tree: invalid trees are not errors
516  + cache-tree: create/update cache-tree on checkout
518  Add a few more places in "commit" and "checkout" that make sure
519  that the cache-tree is fully populated in the index.
521  Will cook in 'next'.
524 * hv/submodule-config (2014-06-30) 4 commits
525   (merged to 'next' on 2014-07-17 at 5e0ce45)
526  + do not die on error of parsing fetchrecursesubmodules option
527  + use new config API for worktree configurations of submodules
528  + extract functions for submodule config set and lookup
529  + implement submodule config cache for lookup of submodule names
531  Will cook in 'next'.
534 * rs/ref-transaction (2014-07-17) 12 commits
535  - refs.c: fix handling of badly named refs
536  - refs.c: make write_ref_sha1 static
537  - fetch.c: change s_update_ref to use a ref transaction
538  - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
539  - refs.c: pass a skip list to name_conflict_fn
540  - refs.c: call lock_ref_sha1_basic directly from commit
541  - refs.c: move the check for valid refname to lock_ref_sha1_basic
542  - refs.c: pass NULL as *flags to read_ref_full
543  - refs.c: pass the ref log message to _create/delete/update instead of _commit
544  - refs.c: add an err argument to delete_ref_loose
545  - wrapper.c: add a new function unlink_or_msg
546  - wrapper.c: simplify warn_if_unremovable
547  (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
550 * jc/test-lazy-prereq (2014-06-13) 1 commit
551  - tests: drop GIT_*_TIMING_TESTS environment variable support
553  Test-script clean-up.
555  Will hold.
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  Will hold.
568 --------------------------------------------------
569 [Discarded]
571 * jh/submodule-tests (2014-04-17) 1 commit
572  . t7410: 210 tests for various 'git submodule update' scenarios