What's cooking (2012/12 #01)
[alt-git.git] / whats-cooking.txt
blob7b35c376559130f7a809ec783821f9d16a397870
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Dec 2012, #01; Thu, 6)
4 X-master-at: fb4c62235fee8008d99ef55c4adcb1f7ea9508a3
5 X-next-at: af2e3a9095a73e8f4f0dea403998204b8ff7dee1
7 What's cooking in git.git (Dec 2012, #01; Thu, 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 You can find the changes described here in the integration branches of the
15 repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [New Topics]
22 * ef/mingw-tty-getpass (2012-12-04) 6 commits
23  - mingw: get rid of getpass implementation
24  - mingw: reuse tty-version of git_terminal_prompt
25  - compat/terminal: separate input and output handles
26  - compat/terminal: factor out echo-disabling
27  - mingw: make fgetc raise SIGINT if apropriate
28  - mingw: correct exit-code for SIGALRM's SIG_DFL
30  Update getpass() emulation for MinGW.
31  Will merge to 'next'.
34 * jl/submodule-deinit (2012-12-04) 1 commit
35  - submodule: add 'deinit' command
37  There was no Porcelain way to say "I no longer am interested in
38  this submodule", once you express your interest in a submodule with
39  "submodule init".  "submodule deinit" is the way to do so.
41  Will merge to 'next'.
44 * sl/git-svn-docs (2012-12-05) 4 commits
45  - git-svn: Note about tags.
46  - git-svn: Expand documentation for --follow-parent
47  - git-svn: Recommend use of structure options.
48  - git-svn: Document branches with at-sign(@).
50  Will merge to 'next'.
52 --------------------------------------------------
53 [Stalled]
55 * mo/cvs-server-updates (2012-10-16) 10 commits
56  - cvsserver Documentation: new cvs ... -r support
57  - cvsserver: add t9402 to test branch and tag refs
58  - cvsserver: support -r and sticky tags for most operations
59  - cvsserver: Add version awareness to argsfromdir
60  - cvsserver: generalize getmeta() to recognize commit refs
61  - cvsserver: implement req_Sticky and related utilities
62  - cvsserver: add misc commit lookup, file meta data, and file listing functions
63  - cvsserver: define a tag name character escape mechanism
64  - cvsserver: cleanup extra slashes in filename arguments
65  - cvsserver: factor out git-log parsing logic
67  Needs review by folks interested in cvsserver.
70 * as/check-ignore (2012-11-08) 14 commits
71  - t0007: fix tests on Windows
72  - Documentation/check-ignore: we show the deciding match, not the first
73  - Add git-check-ignore sub-command
74  - dir.c: provide free_directory() for reclaiming dir_struct memory
75  - pathspec.c: move reusable code from builtin/add.c
76  - dir.c: refactor treat_gitlinks()
77  - dir.c: keep track of where patterns came from
78  - dir.c: refactor is_path_excluded()
79  - dir.c: refactor is_excluded()
80  - dir.c: refactor is_excluded_from_list()
81  - dir.c: rename excluded() to is_excluded()
82  - dir.c: rename excluded_from_list() to is_excluded_from_list()
83  - dir.c: rename path_excluded() to is_path_excluded()
84  - dir.c: rename cryptic 'which' variable to more consistent name
86  Duy helped to reroll this.
88  Expecting a re-roll.
91 * aw/rebase-am-failure-detection (2012-10-11) 1 commit
92  - rebase: Handle cases where format-patch fails
94  I am unhappy a bit about the possible performance implications of
95  having to store the output in a temporary file only for a rare case
96  of format-patch aborting.
99 * jk/lua-hackery (2012-10-07) 6 commits
100  - pretty: fix up one-off format_commit_message calls
101  - Minimum compilation fixup
102  - Makefile: make "lua" a bit more configurable
103  - add a "lua" pretty format
104  - add basic lua infrastructure
105  - pretty: make some commit-parsing helpers more public
107  Interesting exercise. When we do this for real, we probably would want
108  to wrap a commit to make it more like an "object" with methods like
109  "parents", etc.
112 * fc/remote-testgit-feature-done (2012-10-29) 1 commit
113  - remote-testgit: properly check for errors
115  Needs review and Ack (or Nack) from people involved in the remote
116  helper interface for this to move forward.
119 * rc/maint-complete-git-p4 (2012-09-24) 1 commit
120   (merged to 'next' on 2012-10-29 at af52cef)
121  + Teach git-completion about git p4
123  Comment from Pete will need to be addressed in a follow-up patch.
126 * as/test-tweaks (2012-09-20) 7 commits
127  - tests: paint unexpectedly fixed known breakages in bold red
128  - tests: test the test framework more thoroughly
129  - [SQUASH] t/t0000-basic.sh: quoting of TEST_DIRECTORY is screwed up
130  - tests: refactor mechanics of testing in a sub test-lib
131  - tests: paint skipped tests in bold blue
132  - tests: test number comes first in 'not ok $count - $message'
133  - tests: paint known breakages in bold yellow
135  Various minor tweaks to the test framework to paint its output
136  lines in colors that match what they mean better.
138  Has the "is this really blue?" issue Peff raised resolved???
141 * jc/maint-name-rev (2012-09-17) 7 commits
142  - describe --contains: use "name-rev --algorithm=weight"
143  - name-rev --algorithm=weight: tests and documentation
144  - name-rev --algorithm=weight: cache the computed weight in notes
145  - name-rev --algorithm=weight: trivial optimization
146  - name-rev: --algorithm option
147  - name_rev: clarify the logic to assign a new tip-name to a commit
148  - name-rev: lose unnecessary typedef
150  "git name-rev" names the given revision based on a ref that can be
151  reached in the smallest number of steps from the rev, but that is
152  not useful when the caller wants to know which tag is the oldest one
153  that contains the rev.  This teaches a new mode to the command that
154  uses the oldest ref among those which contain the rev.
156  I am not sure if this is worth it; for one thing, even with the help
157  from notes-cache, it seems to make the "describe --contains" even
158  slower. Also the command will be unusably slow for a user who does
159  not have a write access (hence unable to create or update the
160  notes-cache).
162  Stalled mostly due to lack of responses.
165 * jc/xprm-generation (2012-09-14) 1 commit
166  - test-generation: compute generation numbers and clock skews
168  A toy to analyze how bad the clock skews are in histories of real
169  world projects.
171  Stalled mostly due to lack of responses.
174 * jc/blame-no-follow (2012-09-21) 2 commits
175  - blame: pay attention to --no-follow
176  - diff: accept --no-follow option
178  Teaches "--no-follow" option to "git blame" to disable its
179  whole-file rename detection.
181  Stalled mostly due to lack of responses.
184 * jc/doc-default-format (2012-11-26) 2 commits
185  - [SQAUSH] allow "cd Doc* && make DEFAULT_DOC_TARGET=..."
186  - Allow generating a non-default set of documentation
188  Need to address the installation half if this is to be any useful.
191 * mk/maint-graph-infinity-loop (2012-09-25) 1 commit
192  - graph.c: infinite loop in git whatchanged --graph -m
194  The --graph code fell into infinite loop when asked to do what the
195  code did not expect ;-)
197  Anybody who worked on "--graph" wants to comment?
198  Stalled mostly due to lack of responses.
201 * jc/add-delete-default (2012-08-13) 1 commit
202  - git add: notice removal of tracked paths by default
204  "git add dir/" updated modified files and added new files, but does
205  not notice removed files, which may be "Huh?" to some users.  They
206  can of course use "git add -A dir/", but why should they?
208  Resurrected from graveyard, as I thought it was a worthwhile thing
209  to do in the longer term.
211  Waiting for comments.
214 * mb/remote-default-nn-origin (2012-07-11) 6 commits
215  - Teach get_default_remote to respect remote.default.
216  - Test that plain "git fetch" uses remote.default when on a detached HEAD.
217  - Teach clone to set remote.default.
218  - Teach "git remote" about remote.default.
219  - Teach remote.c about the remote.default configuration setting.
220  - Rename remote.c's default_remote_name static variables.
222  When the user does not specify what remote to interact with, we
223  often attempt to use 'origin'.  This can now be customized via a
224  configuration variable.
226  Expecting a re-roll.
228  "The first remote becomes the default" bit is better done as a
229  separate step.
231 --------------------------------------------------
232 [Cooking]
234 * pf/editor-ignore-sigint (2012-12-02) 5 commits
235  - launch_editor: propagate signals from editor to git
236  - run-command: do not warn about child death from terminal
237  - launch_editor: ignore terminal signals while editor has control
238  - launch_editor: refactor to use start/finish_command
239  - run-command: drop silent_exec_failure arg from wait_or_whine
241  Avoid confusing cases where the user hits Ctrl-C while in the editor
242  session, not realizing git will receive the signal. Since most editors
243  will take over the terminal and will block SIGINT, this is not likely
244  to confuse anyone.
246  Will merge to 'next'.
249 * bc/append-signed-off-by (2012-11-26) 11 commits
250  - Unify appending signoff in format-patch, commit and sequencer
251  - format-patch: update append_signoff prototype
252  - format-patch: stricter S-o-b detection
253  - t4014: more tests about appending s-o-b lines
254  - sequencer.c: teach append_signoff to avoid adding a duplicate newline
255  - sequencer.c: teach append_signoff how to detect duplicate s-o-b
256  - sequencer.c: always separate "(cherry picked from" from commit body
257  - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
258  - t/t3511: add some tests of 'cherry-pick -s' functionality
259  - t/test-lib-functions.sh: allow to specify the tag name to test_commit
260  - sequencer.c: remove broken support for rfc2822 continuation in footer
262  Expecting a re-roll after a review.
265 * mh/unify-xml-in-imap-send-and-http-push (2012-12-02) 8 commits
266   (merged to 'next' on 2012-12-03 at d677090)
267  + wrap_in_html(): process message in bulk rather than line-by-line
268  + wrap_in_html(): use strbuf_addstr_xml_quoted()
269  + imap-send: change msg_data from storing (ptr, len) to storing strbuf
270  + imap-send: correctly report errors reading from stdin
271  + imap-send: store all_msgs as a strbuf
272  + lf_to_crlf(): NUL-terminate msg_data::data
273  + xml_entities(): use function strbuf_addstr_xml_quoted()
274  + Add new function strbuf_add_xml_quoted()
276  Update imap-send to reuse xml quoting code from http-push codepath,
277  clean up some code, and fix a small bug.
280 * rr/t4041-cleanup (2012-12-02) 4 commits
281   (merged to 'next' on 2012-12-04 at ecee35d)
282  + t4041 (diff-submodule-option): modernize style
283  + t4041 (diff-submodule-option): rewrite add_file() routine
284  + t4041 (diff-submodule-option): parse digests sensibly
285  + t4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs
287  Test clean-up.
290 * jc/doc-maintainer (2012-11-27) 1 commit
291  - update "howto maintain git"
293  An early draft that is still incomplete.
296 * jk/fsck-dot-in-trees (2012-11-28) 2 commits
297   (merged to 'next' on 2012-11-28 at 519dabc)
298  + fsck: warn about ".git" in trees
299  + fsck: warn about '.' and '..' in trees
301  Will cook in 'next'.
304 * mh/doc-remote-helpers (2012-11-27) 6 commits
305  - git-remote-helpers.txt: clarify options & ref list attributes
306  - git-remote-helpers.txt: clarify command <-> capability correspondences
307  - git-remote-helpers.txt: rearrange description of capabilities
308  - git-remote-helpers.txt: minor grammar fix
309  - git-remote-helpers.txt: document missing capabilities
310  - git-remote-helpers.txt: document invocation before input format
312  Need comment and Ack from people who have worked on remote-helpers
313  before this goes forward.
316 * mh/pthreads-autoconf (2012-11-27) 1 commit
317   (merged to 'next' on 2012-11-28 at 780600e)
318  + configure.ac: fix pthreads detection on Mac OS X
320  Will cook in 'next'.
323 * jn/warn-on-inaccessible-loosen (2012-10-14) 4 commits
324   (merged to 'next' on 2012-11-28 at 43d51c2)
325  + config: exit on error accessing any config file
326  + doc: advertise GIT_CONFIG_NOSYSTEM
327  + config: treat user and xdg config permission problems as errors
328  + config, gitignore: failure to access with ENOTDIR is ok
330  An RFC to deal with a situation where .config/git is a file and we
331  notice .config/git/config is not readable due to ENOTDIR, not
332  ENOENT.
334  Will cook in 'next'.
337 * mh/ceiling (2012-10-29) 8 commits
338   (merged to 'next' on 2012-11-26 at d1ce76a)
339  + string_list_longest_prefix(): remove function
340  + setup_git_directory_gently_1(): resolve symlinks in ceiling paths
341  + longest_ancestor_length(): require prefix list entries to be normalized
342  + longest_ancestor_length(): take a string_list argument for prefixes
343  + longest_ancestor_length(): use string_list_split()
344  + Introduce new function real_path_if_valid()
345  + real_path_internal(): add comment explaining use of cwd
346  + Introduce new static function real_path_internal()
348  Elements of GIT_CEILING_DIRECTORIES list may not match the real
349  pathname we obtain from getcwd(), leading the GIT_DIR discovery
350  logic to escape the ceilings the user thought to have specified.
352  Resurrected from Stalled; the earlier performance fear was
353  unwarranted.
355  Will cook in 'next'.
358 * fc/fast-export-fixes (2012-12-03) 15 commits
359   (merged to 'next' on 2012-12-03 at f9df523)
360  + fast-export: make sure updated refs get updated
361  + fast-export: don't handle uninteresting refs
362  + fast-export: fix comparison in tests
363  + fast-export: trivial cleanup
364  + remote-testgit: implement the "done" feature manually
365  + remote-testgit: report success after an import
366  + remote-testgit: exercise more features
367  + remote-testgit: cleanup tests
368  + remote-testgit: remove irrelevant test
369  + remote-testgit: remove non-local functionality
370  + Add new simplified git-remote-testgit
371  + Rename git-remote-testgit to git-remote-testpy
372  + remote-helpers: fix failure message
373  + remote-testgit: fix direction of marks
374  + fast-export: avoid importing blob marks
376  Will cook in 'next'.
379 * jc/apply-trailing-blank-removal (2012-10-12) 1 commit
380   (merged to 'next' on 2012-11-26 at 3af69e7)
381  + apply.c:update_pre_post_images(): the preimage can be truncated
383  Fix to update_pre_post_images() that did not take into account the
384  possibility that whitespace fix could shrink the preimage and
385  change the number of lines in it.
387  Will cook in 'next'.
390 * nd/pathspec-wildcard (2012-11-26) 4 commits
391   (merged to 'next' on 2012-12-03 at eca0fcb)
392  + tree_entry_interesting: do basedir compare on wildcard patterns when possible
393  + pathspec: apply "*.c" optimization from exclude
394  + pathspec: do exact comparison on the leading non-wildcard part
395  + pathspec: save the non-wildcard length part
397  Will cook in 'next'.
400 * nd/wildmatch (2012-11-20) 14 commits
401   (merged to 'next' on 2012-11-21 at 151288f)
402  + test-wildmatch: avoid Windows path mangling
403   (merged to 'next' on 2012-10-25 at 510e8df)
404  + Support "**" wildcard in .gitignore and .gitattributes
405  + wildmatch: make /**/ match zero or more directories
406  + wildmatch: adjust "**" behavior
407  + wildmatch: fix case-insensitive matching
408  + wildmatch: remove static variable force_lower_case
409  + wildmatch: make wildmatch's return value compatible with fnmatch
410  + t3070: disable unreliable fnmatch tests
411  + Integrate wildmatch to git
412  + wildmatch: follow Git's coding convention
413  + wildmatch: remove unnecessary functions
414  + Import wildmatch from rsync
415  + ctype: support iscntrl, ispunct, isxdigit and isprint
416  + ctype: make sane_ctype[] const array
418  Allows pathname patterns in .gitignore and .gitattributes files
419  with double-asterisks "foo/**/bar" to match any number of directory
420  hierarchies.
422  I suspect that this needs to be plugged to pathspec matching code;
423  otherwise "git log -- 'Docum*/**/*.txt'" would not show the log for
424  commits that touch Documentation/git.txt, which would be confusing
425  to the users.
427  Will cook in 'next'.
430 * fc/remote-bzr (2012-11-28) 10 commits
431  - (fixup) test-bzr.sh: fix multi-line string assignment
432  - remote-bzr: detect local repositories
433  - remote-bzr: add support for older versions of bzr
434  - remote-bzr: add support to push special modes
435  - remote-bzr: add support for fecthing special modes
436  - remote-bzr: add simple tests
437  - remote-bzr: update working tree
438  - remote-bzr: add support for remote repositories
439  - remote-bzr: add support for pushing
440  - Add new remote-bzr transport helper
442  New remote helper for bzr (v3).  With minor fixes, this may be ready
443  for 'next'.
446 * cr/push-force-tag-update (2012-12-03) 10 commits
447   (merged to 'next' on 2012-12-04 at af2e3a9)
448  + push: allow already-exists advice to be disabled
449  + push: rename config variable for more general use
450  + push: cleanup push rules comment
451  + push: clarify rejection of update to non-commit-ish
452  + push: require force for annotated tags
453  + push: require force for refs under refs/tags/
454  + push: flag updates that require force
455  + push: keep track of "update" state separately
456  + push: add advice for rejected tag reference
457  + push: return reject reasons as a bitset
459  Require "-f" for push to update a tag, even if it is a fast-forward.