What's cooking (2012/12 #03)
[alt-git.git] / whats-cooking.txt
blobb130996c345e70b360166ed990c88d556bf08b16
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Dec 2012, #03; Wed, 12)
4 X-master-at: 24a62db7bbcbd8083bd0070ecd434205489629ed
5 X-next-at: 70b2edd6ac003ed3d25092c2bb3c31ce4a502ac4
7 What's cooking in git.git (Dec 2012, #03; Wed, 12)
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 new maintenance release 1.8.0.2 was tagged with accumulated fixes
15 we have already been using on the 'master' front for a while.  The
16 tip of the 'master' is a bit beyond 1.8.1-rc1 and many topics are
17 getting into good shape in 'next', hopefully ready to be merged soon
18 after the 1.8.1 final.
20 You can find the changes described here in the integration branches of the
21 repositories listed at
23     http://git-blame.blogspot.com/p/git-public-repositories.html
25 --------------------------------------------------
26 [New Topics]
28 * sp/shortlog-missing-lf (2012-12-11) 2 commits
29   (merged to 'next' on 2012-12-11 at 64b8429)
30  + strbuf_add_wrapped*(): Remove unused return value
31  + shortlog: fix wrapping lines of wraplen
33  When a line to be wrapped has a solid run of non space characters
34  whose length exactly is the wrap width, "git shortlog -w" failed to
35  add a newline after such a line.
37  Will cook in 'next'.
40 * ap/log-mailmap (2012-12-11) 6 commits
41  - [DO NOT MERGE] seems to break t4013 & t4014 among other things
42  - log: Add --use-mailmap option
43  - pretty: Use mailmap to display username and email
44  - mailmap: Add mailmap structure to rev_info and pp
45  - mailmap: Remove buffer length limit in map_user
46  - Use split_ident_line to parse author and committer
48  Clean up various codepaths around mailmap and teach the "log"
49  machinery to use it.
52 * jc/fetch-ignore-symref (2012-12-11) 1 commit
53  - fetch: ignore wildcarded refspecs that update local symbolic refs
55  Avoid false error from an attempt to update local symbolic ref via
56  fetch.
59 * md/gitweb-sort-by-age (2012-12-11) 1 commit
60  - gitweb: Sort projects with undefined ages last
62  Will merge to 'next'.
65 * ss/nedmalloc-compilation (2012-12-11) 1 commit
66  - nedmalloc: Fix a compile warning (exposed as error) with GCC 4.7.2
68  Will merge to 'next'.
71 * wk/submodule-update-remote (2012-12-12) 3 commits
72  - submodule add: If --branch is given, record it in .gitmodules
73  - submodule update: add --remote for submodule's upstream changes
74  - submodule: add get_submodule_config helper funtion
76  Expecting a re-roll.
78 --------------------------------------------------
79 [Graduated to "master"]
81 * ef/mingw-rmdir (2012-12-10) 1 commit
82  + mingw_rmdir: do not prompt for retry when non-empty
84  MinGW has a workaround when rmdir unnecessarily fails to retry with
85  a prompt, but the logic was kicking in when the rmdir failed with
86  ENOTEMPTY, i.e. was expected to fail and there is no point retrying.
89 * ef/mingw-tty-getpass (2012-12-04) 6 commits
90   (merged to 'next' on 2012-12-07 at 1737ff1)
91  + mingw: get rid of getpass implementation
92  + mingw: reuse tty-version of git_terminal_prompt
93  + compat/terminal: separate input and output handles
94  + compat/terminal: factor out echo-disabling
95  + mingw: make fgetc raise SIGINT if apropriate
96  + mingw: correct exit-code for SIGALRM's SIG_DFL
98  Update getpass() emulation for MinGW.
101 * jc/prompt-command-doc (2012-12-11) 1 commit
102  - git-prompt.sh: update PROMPT_COMMAND documentation
104  Recently graduated git-prompt topic to use PROMPT_COMMAND was
105  confusingly documented.  With a quick review, it may be a good
106  idea to fast-track this to the 'master branch.
108 --------------------------------------------------
109 [Stalled]
111 * fc/remote-bzr (2012-11-28) 10 commits
112  - (fixup) test-bzr.sh: fix multi-line string assignment
113  - remote-bzr: detect local repositories
114  - remote-bzr: add support for older versions of bzr
115  - remote-bzr: add support to push special modes
116  - remote-bzr: add support for fecthing special modes
117  - remote-bzr: add simple tests
118  - remote-bzr: update working tree
119  - remote-bzr: add support for remote repositories
120  - remote-bzr: add support for pushing
121  - Add new remote-bzr transport helper
123  New remote helper for bzr (v3).  With minor fixes, this may be ready
124  for 'next'.
127 * mo/cvs-server-updates (2012-12-09) 18 commits
128  - t9402: Use TABs for indentation
129  - t9402: Rename check.cvsCount and check.list
130  - t9402: Simplify git ls-tree
131  - t9402: Add missing &&; Code style
132  - t9402: No space after IO-redirection
133  - t9402: Dont use test_must_fail cvs
134  - t9402: improve check_end_tree() and check_end_full_tree()
135  - t9402: sed -i is not portable
136  - cvsserver Documentation: new cvs ... -r support
137  - cvsserver: add t9402 to test branch and tag refs
138  - cvsserver: support -r and sticky tags for most operations
139  - cvsserver: Add version awareness to argsfromdir
140  - cvsserver: generalize getmeta() to recognize commit refs
141  - cvsserver: implement req_Sticky and related utilities
142  - cvsserver: add misc commit lookup, file meta data, and file listing functions
143  - cvsserver: define a tag name character escape mechanism
144  - cvsserver: cleanup extra slashes in filename arguments
145  - cvsserver: factor out git-log parsing logic
147  Needs review by folks interested in cvsserver.
150 * as/check-ignore (2012-11-08) 14 commits
151  - t0007: fix tests on Windows
152  - Documentation/check-ignore: we show the deciding match, not the first
153  - Add git-check-ignore sub-command
154  - dir.c: provide free_directory() for reclaiming dir_struct memory
155  - pathspec.c: move reusable code from builtin/add.c
156  - dir.c: refactor treat_gitlinks()
157  - dir.c: keep track of where patterns came from
158  - dir.c: refactor is_path_excluded()
159  - dir.c: refactor is_excluded()
160  - dir.c: refactor is_excluded_from_list()
161  - dir.c: rename excluded() to is_excluded()
162  - dir.c: rename excluded_from_list() to is_excluded_from_list()
163  - dir.c: rename path_excluded() to is_path_excluded()
164  - dir.c: rename cryptic 'which' variable to more consistent name
166  Duy helped to reroll this.
168  Expecting a re-roll.
171 * aw/rebase-am-failure-detection (2012-10-11) 1 commit
172  - rebase: Handle cases where format-patch fails
174  I am unhappy a bit about the possible performance implications of
175  having to store the output in a temporary file only for a rare case
176  of format-patch aborting.
179 * jk/lua-hackery (2012-10-07) 6 commits
180  - pretty: fix up one-off format_commit_message calls
181  - Minimum compilation fixup
182  - Makefile: make "lua" a bit more configurable
183  - add a "lua" pretty format
184  - add basic lua infrastructure
185  - pretty: make some commit-parsing helpers more public
187  Interesting exercise. When we do this for real, we probably would want
188  to wrap a commit to make it more like an "object" with methods like
189  "parents", etc.
192 * fc/remote-testgit-feature-done (2012-10-29) 1 commit
193  - remote-testgit: properly check for errors
195  Needs review and Ack (or Nack) from people involved in the remote
196  helper interface for this to move forward.
199 * rc/maint-complete-git-p4 (2012-09-24) 1 commit
200   (merged to 'next' on 2012-10-29 at af52cef)
201  + Teach git-completion about git p4
203  Comment from Pete will need to be addressed in a follow-up patch.
206 * as/test-tweaks (2012-09-20) 7 commits
207  - tests: paint unexpectedly fixed known breakages in bold red
208  - tests: test the test framework more thoroughly
209  - [SQUASH] t/t0000-basic.sh: quoting of TEST_DIRECTORY is screwed up
210  - tests: refactor mechanics of testing in a sub test-lib
211  - tests: paint skipped tests in bold blue
212  - tests: test number comes first in 'not ok $count - $message'
213  - tests: paint known breakages in bold yellow
215  Various minor tweaks to the test framework to paint its output
216  lines in colors that match what they mean better.
218  Has the "is this really blue?" issue Peff raised resolved???
221 * jc/maint-name-rev (2012-09-17) 7 commits
222  - describe --contains: use "name-rev --algorithm=weight"
223  - name-rev --algorithm=weight: tests and documentation
224  - name-rev --algorithm=weight: cache the computed weight in notes
225  - name-rev --algorithm=weight: trivial optimization
226  - name-rev: --algorithm option
227  - name_rev: clarify the logic to assign a new tip-name to a commit
228  - name-rev: lose unnecessary typedef
230  "git name-rev" names the given revision based on a ref that can be
231  reached in the smallest number of steps from the rev, but that is
232  not useful when the caller wants to know which tag is the oldest one
233  that contains the rev.  This teaches a new mode to the command that
234  uses the oldest ref among those which contain the rev.
236  I am not sure if this is worth it; for one thing, even with the help
237  from notes-cache, it seems to make the "describe --contains" even
238  slower. Also the command will be unusably slow for a user who does
239  not have a write access (hence unable to create or update the
240  notes-cache).
242  Stalled mostly due to lack of responses.
245 * jc/xprm-generation (2012-09-14) 1 commit
246  - test-generation: compute generation numbers and clock skews
248  A toy to analyze how bad the clock skews are in histories of real
249  world projects.
251  Stalled mostly due to lack of responses.
254 * jc/blame-no-follow (2012-09-21) 2 commits
255  - blame: pay attention to --no-follow
256  - diff: accept --no-follow option
258  Teaches "--no-follow" option to "git blame" to disable its
259  whole-file rename detection.
261  Stalled mostly due to lack of responses.
264 * jc/doc-default-format (2012-11-26) 2 commits
265  - [SQAUSH] allow "cd Doc* && make DEFAULT_DOC_TARGET=..."
266  - Allow generating a non-default set of documentation
268  Need to address the installation half if this is to be any useful.
271 * mk/maint-graph-infinity-loop (2012-09-25) 1 commit
272  - graph.c: infinite loop in git whatchanged --graph -m
274  The --graph code fell into infinite loop when asked to do what the
275  code did not expect ;-)
277  Anybody who worked on "--graph" wants to comment?
278  Stalled mostly due to lack of responses.
281 * jc/add-delete-default (2012-08-13) 1 commit
282  - git add: notice removal of tracked paths by default
284  "git add dir/" updated modified files and added new files, but does
285  not notice removed files, which may be "Huh?" to some users.  They
286  can of course use "git add -A dir/", but why should they?
288  Resurrected from graveyard, as I thought it was a worthwhile thing
289  to do in the longer term.
291  Waiting for comments.
294 * mb/remote-default-nn-origin (2012-07-11) 6 commits
295  - Teach get_default_remote to respect remote.default.
296  - Test that plain "git fetch" uses remote.default when on a detached HEAD.
297  - Teach clone to set remote.default.
298  - Teach "git remote" about remote.default.
299  - Teach remote.c about the remote.default configuration setting.
300  - Rename remote.c's default_remote_name static variables.
302  When the user does not specify what remote to interact with, we
303  often attempt to use 'origin'.  This can now be customized via a
304  configuration variable.
306  Expecting a re-roll.
308  "The first remote becomes the default" bit is better done as a
309  separate step.
311 --------------------------------------------------
312 [Cooking]
314 * jc/maint-fbsd-sh-ifs-workaround (2012-12-10) 1 commit
315   (merged to 'next' on 2012-12-11 at 6659fdc)
316  + sh-setup: work around "unset IFS" bug in some shells
318  Will cook in 'next'.
321 * jc/merge-blobs (2012-12-09) 4 commits
322  - merge-tree: add comments to clarify what these functions are doing
323  - merge-tree: lose unused "resolve_directories"
324  - merge-tree: lose unused "flags" from merge_list
325  - Which merge_file() function do you mean?
327  A beginning of a new merge strategy based on the disused merge-tree
328  proof-of-concept code.
331 * jc/same-encoding (2012-12-10) 1 commit
332  - format_commit_message(): simplify calls to logmsg_reencode()
334  Finishing touches to the series to unify "Do we need to reencode
335  between these two encodings?" logic.
338 * nd/invalidate-i-t-a-cache-tree (2012-12-09) 1 commit
339  - cache-tree: invalidate i-t-a paths after generating trees
341  Writing out a tree object when you still have intent-to-add entries
342  in the index left an incorrect cache-tree data there.
345 * jl/submodule-deinit (2012-12-04) 1 commit
346   (merged to 'next' on 2012-12-07 at ea772f0)
347  + submodule: add 'deinit' command
349  There was no Porcelain way to say "I no longer am interested in
350  this submodule", once you express your interest in a submodule with
351  "submodule init".  "submodule deinit" is the way to do so.
353  Will cook in 'next'.
356 * sl/git-svn-docs (2012-12-05) 4 commits
357   (merged to 'next' on 2012-12-07 at 5bfbb73)
358  + git-svn: Note about tags.
359  + git-svn: Expand documentation for --follow-parent
360  + git-svn: Recommend use of structure options.
361  + git-svn: Document branches with at-sign(@).
363  Will cook in 'next'.
366 * pf/editor-ignore-sigint (2012-12-02) 5 commits
367   (merged to 'next' on 2012-12-07 at 6b04419)
368  + launch_editor: propagate signals from editor to git
369  + run-command: do not warn about child death from terminal
370  + launch_editor: ignore terminal signals while editor has control
371  + launch_editor: refactor to use start/finish_command
372  + run-command: drop silent_exec_failure arg from wait_or_whine
374  Avoid confusing cases where the user hits Ctrl-C while in the editor
375  session, not realizing git will receive the signal. Since most editors
376  will take over the terminal and will block SIGINT, this is not likely
377  to confuse anyone.
379  Will cook in 'next'.
382 * bc/append-signed-off-by (2012-11-26) 11 commits
383  - Unify appending signoff in format-patch, commit and sequencer
384  - format-patch: update append_signoff prototype
385  - format-patch: stricter S-o-b detection
386  - t4014: more tests about appending s-o-b lines
387  - sequencer.c: teach append_signoff to avoid adding a duplicate newline
388  - sequencer.c: teach append_signoff how to detect duplicate s-o-b
389  - sequencer.c: always separate "(cherry picked from" from commit body
390  - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
391  - t/t3511: add some tests of 'cherry-pick -s' functionality
392  - t/test-lib-functions.sh: allow to specify the tag name to test_commit
393  - sequencer.c: remove broken support for rfc2822 continuation in footer
395  Expecting a re-roll after a review.
398 * mh/unify-xml-in-imap-send-and-http-push (2012-12-02) 8 commits
399   (merged to 'next' on 2012-12-03 at d677090)
400  + wrap_in_html(): process message in bulk rather than line-by-line
401  + wrap_in_html(): use strbuf_addstr_xml_quoted()
402  + imap-send: change msg_data from storing (ptr, len) to storing strbuf
403  + imap-send: correctly report errors reading from stdin
404  + imap-send: store all_msgs as a strbuf
405  + lf_to_crlf(): NUL-terminate msg_data::data
406  + xml_entities(): use function strbuf_addstr_xml_quoted()
407  + Add new function strbuf_add_xml_quoted()
409  Update imap-send to reuse xml quoting code from http-push codepath,
410  clean up some code, and fix a small bug.
412  Will cook in 'next'.
415 * jc/doc-maintainer (2012-11-27) 1 commit
416  - update "howto maintain git"
418  An early draft that is still incomplete.
421 * jk/fsck-dot-in-trees (2012-11-28) 2 commits
422   (merged to 'next' on 2012-11-28 at 519dabc)
423  + fsck: warn about ".git" in trees
424  + fsck: warn about '.' and '..' in trees
426  Will cook in 'next'.
429 * mh/doc-remote-helpers (2012-12-07) 6 commits
430   (merged to 'next' on 2012-12-07 at 7ac8c25)
431  + git-remote-helpers.txt: clarify options & ref list attributes
432  + git-remote-helpers.txt: clarify command <-> capability correspondences
433  + git-remote-helpers.txt: rearrange description of capabilities
434  + git-remote-helpers.txt: minor grammar fix
435  + git-remote-helpers.txt: document missing capabilities
436  + git-remote-helpers.txt: document invocation before input format
438  Will merge to 'master'.
441 * mh/pthreads-autoconf (2012-11-27) 1 commit
442   (merged to 'next' on 2012-11-28 at 780600e)
443  + configure.ac: fix pthreads detection on Mac OS X
445  Will cook in 'next'.
448 * jn/warn-on-inaccessible-loosen (2012-10-14) 4 commits
449   (merged to 'next' on 2012-11-28 at 43d51c2)
450  + config: exit on error accessing any config file
451  + doc: advertise GIT_CONFIG_NOSYSTEM
452  + config: treat user and xdg config permission problems as errors
453  + config, gitignore: failure to access with ENOTDIR is ok
455  An RFC to deal with a situation where .config/git is a file and we
456  notice .config/git/config is not readable due to ENOTDIR, not
457  ENOENT.
459  Will cook in 'next'.
462 * mh/ceiling (2012-10-29) 8 commits
463   (merged to 'next' on 2012-11-26 at d1ce76a)
464  + string_list_longest_prefix(): remove function
465  + setup_git_directory_gently_1(): resolve symlinks in ceiling paths
466  + longest_ancestor_length(): require prefix list entries to be normalized
467  + longest_ancestor_length(): take a string_list argument for prefixes
468  + longest_ancestor_length(): use string_list_split()
469  + Introduce new function real_path_if_valid()
470  + real_path_internal(): add comment explaining use of cwd
471  + Introduce new static function real_path_internal()
473  Elements of GIT_CEILING_DIRECTORIES list may not match the real
474  pathname we obtain from getcwd(), leading the GIT_DIR discovery
475  logic to escape the ceilings the user thought to have specified.
477  Resurrected from Stalled; the earlier performance fear was
478  unwarranted.
480  Will cook in 'next'.
483 * fc/fast-export-fixes (2012-12-03) 15 commits
484   (merged to 'next' on 2012-12-03 at f9df523)
485  + fast-export: make sure updated refs get updated
486  + fast-export: don't handle uninteresting refs
487  + fast-export: fix comparison in tests
488  + fast-export: trivial cleanup
489  + remote-testgit: implement the "done" feature manually
490  + remote-testgit: report success after an import
491  + remote-testgit: exercise more features
492  + remote-testgit: cleanup tests
493  + remote-testgit: remove irrelevant test
494  + remote-testgit: remove non-local functionality
495  + Add new simplified git-remote-testgit
496  + Rename git-remote-testgit to git-remote-testpy
497  + remote-helpers: fix failure message
498  + remote-testgit: fix direction of marks
499  + fast-export: avoid importing blob marks
501  Will cook in 'next'.
504 * jc/apply-trailing-blank-removal (2012-10-12) 1 commit
505   (merged to 'next' on 2012-11-26 at 3af69e7)
506  + apply.c:update_pre_post_images(): the preimage can be truncated
508  Fix to update_pre_post_images() that did not take into account the
509  possibility that whitespace fix could shrink the preimage and
510  change the number of lines in it.
512  Will cook in 'next'.
515 * nd/pathspec-wildcard (2012-11-26) 4 commits
516   (merged to 'next' on 2012-12-03 at eca0fcb)
517  + tree_entry_interesting: do basedir compare on wildcard patterns when possible
518  + pathspec: apply "*.c" optimization from exclude
519  + pathspec: do exact comparison on the leading non-wildcard part
520  + pathspec: save the non-wildcard length part
522  Will cook in 'next'.
525 * nd/wildmatch (2012-11-20) 14 commits
526   (merged to 'next' on 2012-11-21 at 151288f)
527  + test-wildmatch: avoid Windows path mangling
528   (merged to 'next' on 2012-10-25 at 510e8df)
529  + Support "**" wildcard in .gitignore and .gitattributes
530  + wildmatch: make /**/ match zero or more directories
531  + wildmatch: adjust "**" behavior
532  + wildmatch: fix case-insensitive matching
533  + wildmatch: remove static variable force_lower_case
534  + wildmatch: make wildmatch's return value compatible with fnmatch
535  + t3070: disable unreliable fnmatch tests
536  + Integrate wildmatch to git
537  + wildmatch: follow Git's coding convention
538  + wildmatch: remove unnecessary functions
539  + Import wildmatch from rsync
540  + ctype: support iscntrl, ispunct, isxdigit and isprint
541  + ctype: make sane_ctype[] const array
543  Allows pathname patterns in .gitignore and .gitattributes files
544  with double-asterisks "foo/**/bar" to match any number of directory
545  hierarchies.
547  I suspect that this needs to be plugged to pathspec matching code;
548  otherwise "git log -- 'Docum*/**/*.txt'" would not show the log for
549  commits that touch Documentation/git.txt, which would be confusing
550  to the users.
552  Will cook in 'next'.
555 * cr/push-force-tag-update (2012-12-03) 10 commits
556   (merged to 'next' on 2012-12-04 at af2e3a9)
557  + push: allow already-exists advice to be disabled
558  + push: rename config variable for more general use
559  + push: cleanup push rules comment
560  + push: clarify rejection of update to non-commit-ish
561  + push: require force for annotated tags
562  + push: require force for refs under refs/tags/
563  + push: flag updates that require force
564  + push: keep track of "update" state separately
565  + push: add advice for rejected tag reference
566  + push: return reject reasons as a bitset
568  Require "-f" for push to update a tag, even if it is a fast-forward.
570  Will cook in 'next'.