Meta/Announce: brief list of contributors
[alt-git.git] / whats-cooking.txt
blob548ce4bd107115d155e60147101a12761f55edd1
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Mar 2015, #03; Fri, 6)
4 X-master-at: d67f9d5e8fd2c165304153a87fd96054d2b74981
5 X-next-at: 9704172a1848f24ce72de64c49b043350d93b393
7 What's cooking in git.git (Mar 2015, #03; Fri, 6)
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 A few more batches of topics have been merged to 'master', including
15 both fixes and enhancements.  The second maintenance release for
16 v2.3 has been cut with many fixes that have already been merged to
17 'master'.
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22     http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [Graduated to "master"]
27 * ak/t5516-typofix (2015-03-03) 1 commit
28   (merged to 'next' on 2015-03-03 at c37a677)
29  + t5516: correct misspelled pushInsteadOf
32 * bw/kwset-use-unsigned (2015-03-02) 1 commit
33   (merged to 'next' on 2015-03-05 at fd124ba)
34  + kwset: use unsigned char to store values with high-bit set
36  The borrowed code in kwset API did not follow our usual convention
37  to use "unsigned char" to store values that range from 0-255.
40 * ja/clean-confirm-i18n (2015-03-02) 1 commit
41   (merged to 'next' on 2015-03-03 at 314c322)
42  + Add hint interactive cleaning
44  The prompt string "remove?" used when "git clean -i" asks the user
45  if a path should be removed was localizable, but the code always
46  expects a substring of "yes" to tell it to go ahead.  Always show
47  [y/N] as part of this prompt to hint that the answer is not (yet)
48  localized.
51 * mg/doc-remote-tags-or-not (2015-03-02) 1 commit
52   (merged to 'next' on 2015-03-03 at 1630171)
53  + git-remote.txt: describe behavior without --tags and --no-tags
55  "git remote add" mentioned "--tags" and "--no-tags" and was not
56  clear that fetch from the remote in the future will use the default
57  behaviour when neither is given to override it.
60 * mk/diff-shortstat-dirstat-fix (2015-03-02) 1 commit
61   (merged to 'next' on 2015-03-03 at 42c282e)
62  + diff --shortstat --dirstat: remove duplicate output
64  "git diff --shortstat --dirstat=changes" showed a dirstat based on
65  lines that was never asked by the end user in addition to the
66  dirstat that the user asked for.
69 * mr/doc-clean-f-f (2015-02-26) 1 commit
70   (merged to 'next' on 2015-03-03 at 67a77a2)
71  + Documentation/git-clean.txt: document that -f may need to be given twice
73  Documentation update.
76 * ms/submodule-update-config-doc (2015-03-02) 1 commit
77   (merged to 'next' on 2015-03-03 at b94da4b)
78  + submodule: improve documentation of update subcommand
80  The interaction between "git submodule update" and the
81  submodule.*.update configuration was not clearly documented.
84 * nd/grep-exclude-standard-help-fix (2015-02-27) 1 commit
85   (merged to 'next' on 2015-03-03 at 61c9587)
86  + grep: correct help string for --exclude-standard
88  Description given by "grep -h" for its --exclude-standard option
89  was phrased poorly.
92 * ye/http-accept-language (2015-02-26) 1 commit
93   (merged to 'next' on 2015-03-03 at 58d195e)
94  + gettext.c: move get_preferred_languages() from http.c
96  Compilation fix for a recent topic in 'master'.
98 --------------------------------------------------
99 [New Topics]
101 * ak/git-done-help-cleanup (2015-03-06) 1 commit
102  - git: make was_alias and done_help non-static
104  Code simplification.
106  Will merge to 'next'.
109 * es/rebase-i-count-todo (2015-03-06) 2 commits
110  - rebase-interactive: re-word "item count" comment
111  - rebase-interactive: suppress whitespace preceding item count
113  "git rebase -i" recently started to include the number of
114  commits in the insn sheet to be processed, but on a platform
115  that prepends leading whitespaces to "wc -l" output, the numbers
116  are shown with extra whitespaces that aren't necessary.
118  Will merge to 'next'.
121 * mg/fdopen-with-retry (2015-03-06) 6 commits
122  - buffer_fdinit(): use fdopen_with_retry()
123  - update_info_file(): use fdopen_with_retry()
124  - copy_to_log(): use fdopen_with_retry()
125  - fdopen_lock_file(): use fdopen_with_retry()
126  - SQUASH??? $gmane/264889
127  - xfdopen(): if first attempt fails, free memory and try again
129  Various parts of the code where they call fdopen() can fail when
130  they run out of memory; attempt to proceed by retrying the
131  operation after freeing some resource.
133  Waiting for further comments.
136 * mg/log-decorate-HEAD (2015-03-06) 1 commit
137  - log: decorate non-detached HEAD differently
139  Output from "git log --decorate" mentions HEAD when it points at a
140  tip of an branch differently from a detached HEAD.
142  We probably want to de-dup the branch name in the output.
144  Waiting for further comments.
147 * rs/daemon-hostname-in-strbuf (2015-03-06) 1 commit
148  - daemon: use strbuf for hostname info
150  Code in "git daemon" to parse out and hold hostnames used in
151  request interpolation has been simplified.
153  Needs updating with a few s/_reset/_release/ ($gmane/264962)
156 * rs/deflate-init-cleanup (2015-03-05) 1 commit
157  - zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw}
159  Code simplification.
161  Will merge to 'next'.
164 * rs/zip-text (2015-03-05) 1 commit
165  - archive-zip: mark text files in archives
167  "git archive" can now be told to set the 'text' attribute in the
168  resulting zip archive.
170  Will merge to 'next'.
173 * sg/completion-remote (2015-03-06) 2 commits
174  - completion: simplify __git_remotes()
175  - completion: add a test for __git_remotes() helper function
177  Code simplification.
179  Will merge to 'next'.
181 --------------------------------------------------
182 [Stalled]
184 * jk/push-config (2015-02-17) 4 commits
185  - [NEEDSACK] push: allow --follow-tags to be set by config push.followTags
186  - cmd_push: pass "flags" pointer to config callback
187  - cmd_push: set "atomic" bit directly
188  - git_push_config: drop cargo-culted wt_status pointer
190  Waiting for Ack and/or update for the tip one from Dave Olszewski
191  ($gmane/263880, $gmane/263991).
194 * nd/untracked-cache (2015-02-09) 24 commits
195  - git-status.txt: advertisement for untracked cache
196  - untracked cache: guard and disable on system changes
197  - mingw32: add uname()
198  - t7063: tests for untracked cache
199  - update-index: test the system before enabling untracked cache
200  - update-index: manually enable or disable untracked cache
201  - status: enable untracked cache
202  - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
203  - untracked cache: mark index dirty if untracked cache is updated
204  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
205  - untracked cache: avoid racy timestamps
206  - read-cache.c: split racy stat test to a separate function
207  - untracked cache: invalidate at index addition or removal
208  - untracked cache: load from UNTR index extension
209  - untracked cache: save to an index extension
210  - ewah: add convenient wrapper ewah_serialize_strbuf()
211  - untracked cache: don't open non-existent .gitignore
212  - untracked cache: mark what dirs should be recursed/saved
213  - untracked cache: record/validate dir mtime and reuse cached output
214  - untracked cache: make a wrapper around {open,read,close}dir()
215  - untracked cache: invalidate dirs recursively if .gitignore changes
216  - untracked cache: initial untracked cache validation
217  - untracked cache: record .gitignore information and dir hierarchy
218  - dir.c: optionally compute sha-1 of a .gitignore file
220  Need extra sets of eyes to review this.
223 * ak/stash-store-create-help (2015-01-13) 1 commit
224  - stash: show "create" and "store" subcommands in usage-help
226  Will discard.
229 * bp/diff-relative-config (2015-01-07) 2 commits
230  - diff: teach diff.relative to give default to --relative=<value>
231  - diff: teach --no-relative to override earlier --relative
233  No comments?  No interests?
236 * jc/diff-b-m (2015-02-23) 5 commits
237  . WIPWIP
238  . WIP: diff-b-m
239  - diffcore-rename: allow easier debugging
240  - diffcore-rename.c: add locate_rename_src()
241  - diffcore-break: allow debugging
243  "git diff -B -M" produced incorrect patch when the postimage of a
244  completely rewritten file is similar to the preimage of a removed
245  file; such a resulting file must not be expressed as a rename from
246  other place.
248  The fix in this patch is broken, unfortunately.
251 * pw/remote-set-url-fetch (2014-11-26) 1 commit
252  - remote: add --fetch and --both options to set-url
254  Expecting a reroll.
257 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
258  - git-quiltimport: flip the default not to allow fuzz
259  - git-quiltimport.sh: allow declining fuzz with --exact option
261  "quiltimport" drove "git apply" always with -C1 option to reduce
262  context of the patch in order to give more chance to somewhat stale
263  patches to apply.  Add an "--exact" option to disable, and also
264  "-C$n" option to customize this behaviour.  The top patch
265  optionally flips the default to "--exact".
267  Tired of waiting for an Ack
268  Will discard.
271 * tr/remerge-diff (2014-11-10) 9 commits
272  - t4213: avoid "|" in sed regexp
273  - log --remerge-diff: show what the conflict resolution changed
274  - name-hash: allow dir hashing even when !ignore_case
275  - merge-recursive: allow storing conflict hunks in index
276  - merge_diff_mode: fold all merge diff variants into an enum
277  - combine-diff: do not pass revs->dense_combined_merges redundantly
278  - merge-recursive: -Xindex-only to leave worktree unchanged
279  - merge-recursive: internal flag to avoid touching the worktree
280  - merge-recursive: remove dead conditional in update_stages()
282  "log -p" output learns a new way to let users inspect a merge
283  commit by showing the differences between the automerged result
284  with conflicts the person who recorded the merge would have seen
285  and the final conflict resolution that was recorded in the merge.
287  Waiting for a reroll ($gmane/256591).
290 * hv/submodule-config (2014-11-11) 4 commits
291  - do not die on error of parsing fetchrecursesubmodules option
292  - use new config API for worktree configurations of submodules
293  - extract functions for submodule config set and lookup
294  - implement submodule config cache for lookup of submodule names
296  Kicked back to 'pu' per request ($gmane/255610).
299 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
300  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
301  - git-add--interactive: Preserve diff heading when splitting hunks
303  Waiting for a reroll.
306 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
307  - gitweb: Harden UTF-8 handling in generated links
309  $gmane/250758?
312 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
313  - userdiff: support Java try keyword
314  - userdiff: support C# async methods and correct C# keywords
316  Reviews sent; waiting for a response.
319 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
320  - git-rebase: print name of rev when using shorthand
322  Teach "git rebase -" to report the concrete name of the branch
323  (i.e. the previous one).
325  But it stops short and does not do the same for "git rebase @{-1}".
326  Expecting a reroll.
329 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
330  - merge: drop unused arg from abort_commit method signature
331  - merge: make prepare_to_commit responsible for write_merge_state
332  - t7505: ensure cleanup after hook blocks merge
333  - t7505: add missing &&
335  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
336  run during "git merge".  The log message stresses too much on one
337  hook, prepare-commit-msg, but it would equally apply to other hooks
338  like post-merge, I think.
340  Waiting for a reroll.
343 * jc/graph-post-root-gap (2013-12-30) 3 commits
344  - WIP: document what we want at the end
345  - graph: remove unused code a bit
346  - graph: stuff the current commit into graph->columns[]
348  This was primarily a RFH ($gmane/239580).
351 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
352  - perf-lib: add test_perf_cleanup target
353  - perf-lib: split starting the test from the execution
355  Add test_perf_cleanup shell function to the perf suite, that allows
356  the script writers to define a test with a clean-up action.
358  Will hold.
361 * jc/show-branch (2014-03-24) 5 commits
362  - show-branch: use commit slab to represent bitflags of arbitrary width
363  - show-branch.c: remove "all_mask"
364  - show-branch.c: abstract out "flags" operation
365  - show-branch.c: lift all_mask/all_revs to a global static
366  - show-branch.c: update comment style
368  Waiting for the final step to lift the hard-limit before sending it out.
370 --------------------------------------------------
371 [Cooking]
373 * mg/sequencer-commit-messages-always-verbatim (2015-03-06) 1 commit
374  - sequencer: preserve commit messages
376  "git cherry-pick" used to clean-up the log message even when it is
377  merely replaying an existing commit.  It now replays the message
378  verbatim unless you are editing the message of resulting commits.
380  Will merge to 'next'.
383 * mg/detached-head-report (2015-03-06) 2 commits
384  - branch: name detached HEAD analogous to status
385  - wt-status: refactor detached HEAD analysis
387  "git branch" on a detached HEAD always said "(detached from xyz)",
388  even when "git status" would report "detached at xyz".  The HEAD is
389  actually at xyz and haven't been moved since it was detached in
390  such a case, but the user cannot read what the current value of
391  HEAD is when "detached from" is used.
393  Will merge to 'next'.
396 * mg/status-v-v (2015-03-06) 3 commits
397  - commit/status: show the index-worktree diff with -v -v
398  - t7508: test git status -v
399  - t7508: .gitignore 'expect' and 'output' files
401  "git status" now allows the "-v" to be given twice to show the
402  differences that are left in the working tree not to be committed.
404  Will merge to 'next'.
407 * jk/diffcore-rename-duplicate (2015-02-27) 2 commits
408   (merged to 'next' on 2015-03-03 at 1d5a2d2)
409  + diffcore-rename: avoid processing duplicate destinations
410  + diffcore-rename: split locate_rename_dst into two functions
412  A corrupt input to "git diff -M" can cause us to segfault.
414  Will merge to 'master'.
417 * nd/versioncmp-prereleases (2015-02-27) 1 commit
418   (merged to 'next' on 2015-03-03 at 6ab29cf)
419  + versionsort: support reorder prerelease suffixes
421  The versionsort.prerelease configuration variable can be used to
422  specify that v1.0-pre1 comes before v1.0.
424  Will merge to 'master'.
427 * nd/slim-index-pack-memory-usage (2015-02-27) 2 commits
428  - index-pack: kill union delta_base to save memory
429  - index-pack: reduce object_entry size to save memory
431  Memory usage of "git index-pack" has been trimmed by tens of
432  per-cent.
434  Waiting for further comments.
437 * nd/list-files (2015-02-09) 21 commits
438  - t3080: tests for git-list-files
439  - list-files: -M aka diff-cached
440  - list-files -F: show submodules with the new indicator '&'
441  - list-files: add -F/--classify
442  - list-files: show directories as well as files
443  - list-files: do not show duplicate cached entries
444  - list-files: sort output and remove duplicates
445  - list-files: add -t back
446  - list-files: add -1 short for --no-column
447  - list-files: add -R/--recursive short for --max-depth=-1
448  - list-files: -u does not imply showing stages
449  - list-files: make alias 'ls' default to 'list-files'
450  - list-files: a user friendly version of ls-files and more
451  - ls-files: support --max-depth
452  - ls-files: add --column
453  - ls-files: add --color to highlight file names
454  - ls-files: buffer full item in strbuf before printing
455  - ls_colors.c: highlight submodules like directories
456  - ls_colors.c: add a function to color a file name
457  - ls_colors.c: parse color.ls.* from config file
458  - ls_colors.c: add $LS_COLORS parsing code
460  A new "git list-files" Porcelain command, "ls-files" with bells and
461  whistles.
463  Concern was raised that this is piggybacking on ls-files codebase,
464  rather than wt-status codebase ($gmane/264258).
466  Waiting for further comments or a reroll.
469 * jc/decorate-leaky-separator-color (2015-03-04) 7 commits
470  - log --decorate: do not leak "commit" color into the next item
471  - Documentation/config.txt: simplify boolean description in the syntax section
472  - Documentation/config.txt: describe 'color' value type in the "Values" section
473  - Documentation/config.txt: have a separate "Values" section
474  - Documentation/config.txt: describe the structure first and then meaning
475  - Documentation/config.txt: explain multi-valued variables once
476  - Documentation/config.txt: avoid unnecessary negation
478  "git log --decorate" did not reset colors correctly around the
479  branch names.
481  Waiting for reviews.
484 * mh/expire-updateref-fixes (2015-03-05) 9 commits
485   (merged to 'next' on 2015-03-05 at 1caf9a6)
486  + reflog_expire(): never update a reference to null_sha1
487  + reflog_expire(): ignore --updateref for symbolic references
488  + reflog: improve and update documentation
489  + struct ref_lock: delete the force_write member
490  + lock_ref_sha1_basic(): do not set force_write for missing references
491  + write_ref_sha1(): move write elision test to callers
492  + write_ref_sha1(): remove check for lock == NULL
493  + Merge branch 'sb/atomic-push' into mh/ref-trans-value-check
494  + Merge branch 'mh/reflog-expire' into mh/ref-trans-value-check
496  Various issues around "reflog expire", e.g. using --updateref when
497  expiring a reflog for a symbolic reference, have been corrected
498  and/or made saner.
500  Will merge to 'master'.
503 * js/fsck-opt (2015-01-21) 19 commits
504  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
505  - fsck: git receive-pack: support excluding objects from fsck'ing
506  - fsck: introduce `git fsck --quick`
507  - fsck: support demoting errors to warnings
508  - fsck: document the new receive.fsck.* options
509  - fsck: allow upgrading fsck warnings to errors
510  - fsck: optionally ignore specific fsck issues completely
511  - fsck: disallow demoting grave fsck errors to warnings
512  - fsck: add a simple test for receive.fsck.*
513  - fsck: make fsck_tag() warn-friendly
514  - fsck: handle multiple authors in commits specially
515  - fsck: make fsck_commit() warn-friendly
516  - fsck: make fsck_ident() warn-friendly
517  - fsck: report the ID of the error/warning
518  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
519  - fsck: offer a function to demote fsck errors to warnings
520  - fsck: provide a function to parse fsck message IDs
521  - fsck: introduce identifiers for fsck messages
522  - fsck: introduce fsck options
524  "fsck.warnings = <list of error tokens>" I suggested turned out to
525  be an unpopular choice (sorry Dscho).
527  Expecting a reroll.
530 * nd/multiple-work-trees (2015-01-27) 38 commits
531   (merged to 'next' on 2015-02-18 at b51f696)
532  + t2026 needs procondition SANITY
533  + git-checkout.txt: a note about multiple checkout support for submodules
534  + checkout: add --ignore-other-wortrees
535  + checkout: pass whole struct to parse_branchname_arg instead of individual flags
536  + git-common-dir: make "modules/" per-working-directory directory
537  + checkout: do not fail if target is an empty directory
538  + t2025: add a test to make sure grafts is working from a linked checkout
539  + checkout: don't require a work tree when checking out into a new one
540  + git_path(): keep "info/sparse-checkout" per work-tree
541  + count-objects: report unused files in $GIT_DIR/worktrees/...
542  + gc: support prune --worktrees
543  + gc: factor out gc.pruneexpire parsing code
544  + gc: style change -- no SP before closing parenthesis
545  + checkout: clean up half-prepared directories in --to mode
546  + checkout: reject if the branch is already checked out elsewhere
547  + prune: strategies for linked checkouts
548  + checkout: support checking out into a new working directory
549  + use new wrapper write_file() for simple file writing
550  + wrapper.c: wrapper to open a file, fprintf then close
551  + setup.c: support multi-checkout repo setup
552  + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
553  + setup.c: convert check_repository_format_gently to use strbuf
554  + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
555  + setup.c: convert is_git_directory() to use strbuf
556  + git-stash: avoid hardcoding $GIT_DIR/logs/....
557  + *.sh: avoid hardcoding $GIT_DIR/hooks/...
558  + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
559  + $GIT_COMMON_DIR: a new environment variable
560  + commit: use SEQ_DIR instead of hardcoding "sequencer"
561  + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
562  + reflog: avoid constructing .lock path with git_path
563  + *.sh: respect $GIT_INDEX_FILE
564  + git_path(): be aware of file relocation in $GIT_DIR
565  + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
566  + path.c: rename vsnpath() to do_git_path()
567  + git_snpath(): retire and replace with strbuf_git_path()
568  + path.c: make get_pathname() call sites return const char *
569  + path.c: make get_pathname() return strbuf instead of static buffer
571  A replacement for contrib/workdir/git-new-workdir that does not
572  rely on symbolic links and make sharing of objects and refs safer
573  by making the borrowee and borrowers aware of each other.
575  Will cook in 'next'.