What's cooking (2013/02 #02)
[alt-git.git] / whats-cooking.txt
blobf0654b5943b40edb91faaf0b7a5b77ce7048785f
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Feb 2013, #02; Mon, 4)
4 X-master-at: f51a757fafc1e1ca9565381a13109932acd81dba
5 X-next-at: 3b7952273237a5df57414b4a5327ce7e64e63255
7 What's cooking in git.git (Feb 2013, #02; Mon, 4)
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 As usual, this cycle is expected to last for 8 to 10 weeks, with a
15 preview -rc0 sometime in the middle of this month.
17 You can find the changes described here in the integration branches of the
18 repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [Graduated to "master"]
25 * jc/custom-comment-char (2013-01-16) 1 commit
26   (merged to 'next' on 2013-01-25 at 91d8a5d)
27  + Allow custom "comment char"
29  Allow a configuration variable core.commentchar to customize the
30  character used to comment out the hint lines in the edited text
31  from the default '#'.
33  This is half my work and half by Ralf Thielow.  There may still be
34  leftover '#' lurking around, though.  My "git grep" says C code
35  should be already fine, but git-rebase--interactive.sh could be
36  converted (it should not matter, as the file is not really a
37  free-form text).
40 * jc/push-reject-reasons (2013-01-24) 4 commits
41   (merged to 'next' on 2013-01-28 at b60be93)
42  + push: finishing touches to explain REJECT_ALREADY_EXISTS better
43  + push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE
44  + push: further simplify the logic to assign rejection reason
45  + push: further clean up fields of "struct ref"
47  Improve error and advice messages given locally when "git push"
48  refuses when it cannot compute fast-forwardness by separating these
49  cases from the normal "not a fast-forward; merge first and push
50  again" case.
53 * jk/config-parsing-cleanup (2013-01-23) 8 commits
54   (merged to 'next' on 2013-01-28 at 9bc9411)
55  + reflog: use parse_config_key in config callback
56  + help: use parse_config_key for man config
57  + submodule: simplify memory handling in config parsing
58  + submodule: use parse_config_key when parsing config
59  + userdiff: drop parse_driver function
60  + convert some config callbacks to parse_config_key
61  + archive-tar: use parse_config_key when parsing config
62  + config: add helper function for parsing key names
64  Configuration parsing for tar.* configuration variables were
65  broken. Introduce a new config-keyname parser API to make the
66  callers much less error prone.
69 * jk/read-commit-buffer-data-after-free (2013-01-26) 3 commits
70   (merged to 'next' on 2013-01-30 at c6d7e16)
71  + logmsg_reencode: lazily load missing commit buffers
72  + logmsg_reencode: never return NULL
73  + commit: drop useless xstrdup of commit message
75  Clarify the ownership rule for commit->buffer field, which some
76  callers incorrectly accessed without making sure it is populated.
79 * jk/remote-helpers-in-python-3 (2013-01-30) 10 commits
80   (merged to 'next' on 2013-01-31 at 5a948aa)
81  + git_remote_helpers: remove GIT-PYTHON-VERSION upon "clean"
82   (merged to 'next' on 2013-01-28 at d898471)
83  + git-remote-testpy: fix path hashing on Python 3
84   (merged to 'next' on 2013-01-25 at acf9419)
85  + git-remote-testpy: call print as a function
86  + git-remote-testpy: don't do unbuffered text I/O
87  + git-remote-testpy: hash bytes explicitly
88  + svn-fe: allow svnrdump_sim.py to run with Python 3
89  + git_remote_helpers: use 2to3 if building with Python 3
90  + git_remote_helpers: force rebuild if python version changes
91  + git_remote_helpers: fix input when running under Python 3
92  + git_remote_helpers: allow building with Python 3
94  Prepare remote-helper test written in Python to be run with Python3.
97 * mm/add-u-A-sans-pathspec (2013-01-28) 1 commit
98   (merged to 'next' on 2013-01-28 at fe762a6)
99  + add: warn when -u or -A is used without pathspec
101  Forbid "git add -u" and "git add -A" without pathspec run from a
102  subdirectory, to train people to type "." (or ":/") to make the
103  choice of default does not matter.
106 * pw/git-p4-on-cygwin (2013-01-26) 21 commits
107   (merged to 'next' on 2013-01-30 at 958ae3a)
108  + git p4: introduce gitConfigBool
109  + git p4: avoid shell when calling git config
110  + git p4: avoid shell when invoking git config --get-all
111  + git p4: avoid shell when invoking git rev-list
112  + git p4: avoid shell when mapping users
113  + git p4: disable read-only attribute before deleting
114  + git p4 test: use test_chmod for cygwin
115  + git p4: cygwin p4 client does not mark read-only
116  + git p4 test: avoid wildcard * in windows
117  + git p4 test: use LineEnd unix in windows tests too
118  + git p4 test: newline handling
119  + git p4: scrub crlf for utf16 files on windows
120  + git p4: remove unreachable windows \r\n conversion code
121  + git p4 test: translate windows paths for cygwin
122  + git p4 test: start p4d inside its db dir
123  + git p4 test: use client_view in t9806
124  + git p4 test: avoid loop in client_view
125  + git p4 test: use client_view to build the initial client
126  + git p4: generate better error message for bad depot path
127  + git p4: remove unused imports
128  + git p4: temp branch name should use / even on windows
130  Improve "git p4" on Cygwin.
132 --------------------------------------------------
133 [New Topics]
135 * jn/auto-depend-workaround-buggy-ccache (2013-02-01) 1 commit
136   (merged to 'next' on 2013-02-02 at db5940a)
137  + Makefile: explicitly set target name for autogenerated dependencies
139  An age-old workaround to prevent buggy versions of ccache from
140  breaking the auto-generation of dependencies, which unfortunately
141  is still relevant because some people use ancient distros.
143  Will merge to 'master'.
146 * ct/autoconf-htmldir (2013-02-02) 1 commit
147  - Honor configure's htmldir switch
149  The autoconf subsystem passed --mandir down to generated
150  config.mak.autogen but forgot to do the same for --htmldir.
152  Will merge to 'next'.
155 * mk/tcsh-complete-only-known-paths (2013-02-03) 1 commit
156  - completion: handle path completion and colon for tcsh script
157  (this branch uses mp/complete-paths.)
159  Manlio's "complete with known paths only" update to completion
160  scripts returns directory names without trailing slash to
161  compensate the addition of '/' done by bash that reads from our
162  completion result.  tcsh completion code that reads from our
163  internal completion result does not add '/', so let it ask our
164  complletion code to keep the '/' at the end.
166  Will merge to 'next'.
169 * jc/combine-diff-many-parents (2013-02-03) 1 commit
170  - combine-diff: lift 32-way limit of combined diff
172  We used to have an arbitrary 32 limit for combined diff input,
173  resulting in incorrect number of leading colons shown when showing
174  the "--raw --cc" output.
176  May want a couple of new tests.
179 * jc/remove-export-from-config-mak-in (2013-02-03) 1 commit
180  - config.mak.in: remove unused definitions
182  config.mak.in template had an "export" line to cause a few
183  common makefile variables to be exported; if they need to be
184  expoted for autoconf/configure users, they should also be exported
185  for people who write config.mak the same way.  Move the "export" to
186  the main Makefile.
189 * jk/apply-similaritly-parsing (2013-02-03) 1 commit
190  - builtin/apply: tighten (dis)similarity index parsing
192  Make sure the similarity value shown in the "apply --summary"
193  output is sensible, even when the input had a bogus value.
195  Will merge to 'next'.
198 * nd/status-show-in-progress (2013-02-03) 1 commit
199  - status: show the branch name if possible in in-progress info
201 --------------------------------------------------
202 [Stalled]
204 * dg/subtree-fixes (2013-01-08) 7 commits
205  - contrib/subtree: mkdir the manual directory if needed
206  - contrib/subtree: honor $(DESTDIR)
207  - contrib/subtree: fix synopsis and command help
208  - contrib/subtree: better error handling for "add"
209  - contrib/subtree: add --unannotate option
210  - contrib/subtree: use %B for split Subject/Body
211  - t7900: remove test number comments
213  contrib/subtree updates; there are a few more from T. Zheng that
214  were posted separately, with an overlap.
216  Expecting a reroll.
219 * mp/diff-algo-config (2013-01-16) 3 commits
220  - diff: Introduce --diff-algorithm command line option
221  - config: Introduce diff.algorithm variable
222  - git-completion.bash: Autocomplete --minimal and --histogram for git-diff
224  Add diff.algorithm configuration so that the user does not type
225  "diff --histogram".
227  Looking better; may want tests to protect it from future breakages,
228  but otherwise it looks ready for 'next'.
230  Expecting a follow-up to add tests.
233 * mb/gitweb-highlight-link-target (2012-12-20) 1 commit
234  - Highlight the link target line in Gitweb using CSS
236  Expecting a reroll.
237  $gmane/211935
240 * jl/submodule-deinit (2012-12-04) 1 commit
241  - submodule: add 'deinit' command
243  There was no Porcelain way to say "I no longer am interested in
244  this submodule", once you express your interest in a submodule with
245  "submodule init".  "submodule deinit" is the way to do so.
247  Expecting a reroll.
248  $gmane/212884
251 * jk/lua-hackery (2012-10-07) 6 commits
252  - pretty: fix up one-off format_commit_message calls
253  - Minimum compilation fixup
254  - Makefile: make "lua" a bit more configurable
255  - add a "lua" pretty format
256  - add basic lua infrastructure
257  - pretty: make some commit-parsing helpers more public
259  Interesting exercise. When we do this for real, we probably would want
260  to wrap a commit to make it more like an "object" with methods like
261  "parents", etc.
264 * rc/maint-complete-git-p4 (2012-09-24) 1 commit
265  - Teach git-completion about git p4
267  Comment from Pete will need to be addressed ($gmane/206172).
270 * jc/maint-name-rev (2012-09-17) 7 commits
271  - describe --contains: use "name-rev --algorithm=weight"
272  - name-rev --algorithm=weight: tests and documentation
273  - name-rev --algorithm=weight: cache the computed weight in notes
274  - name-rev --algorithm=weight: trivial optimization
275  - name-rev: --algorithm option
276  - name_rev: clarify the logic to assign a new tip-name to a commit
277  - name-rev: lose unnecessary typedef
279  "git name-rev" names the given revision based on a ref that can be
280  reached in the smallest number of steps from the rev, but that is
281  not useful when the caller wants to know which tag is the oldest one
282  that contains the rev.  This teaches a new mode to the command that
283  uses the oldest ref among those which contain the rev.
285  I am not sure if this is worth it; for one thing, even with the help
286  from notes-cache, it seems to make the "describe --contains" even
287  slower. Also the command will be unusably slow for a user who does
288  not have a write access (hence unable to create or update the
289  notes-cache).
291  Stalled mostly due to lack of responses.
294 * jc/xprm-generation (2012-09-14) 1 commit
295  - test-generation: compute generation numbers and clock skews
297  A toy to analyze how bad the clock skews are in histories of real
298  world projects.
300  Stalled mostly due to lack of responses.
303 * jc/add-delete-default (2012-08-13) 1 commit
304  - git add: notice removal of tracked paths by default
306  "git add dir/" updated modified files and added new files, but does
307  not notice removed files, which may be "Huh?" to some users.  They
308  can of course use "git add -A dir/", but why should they?
310  Resurrected from graveyard, as I thought it was a worthwhile thing
311  to do in the longer term.
313  Stalled mostly due to lack of responses.
316 * mb/remote-default-nn-origin (2012-07-11) 6 commits
317  - Teach get_default_remote to respect remote.default.
318  - Test that plain "git fetch" uses remote.default when on a detached HEAD.
319  - Teach clone to set remote.default.
320  - Teach "git remote" about remote.default.
321  - Teach remote.c about the remote.default configuration setting.
322  - Rename remote.c's default_remote_name static variables.
324  When the user does not specify what remote to interact with, we
325  often attempt to use 'origin'.  This can now be customized via a
326  configuration variable.
328  Expecting a reroll.
329  $gmane/210151
331  "The first remote becomes the default" bit is better done as a
332  separate step.
335 * nd/parse-pathspec (2013-01-11) 20 commits
336  . Convert more init_pathspec() to parse_pathspec()
337  . Convert add_files_to_cache to take struct pathspec
338  . Convert {read,fill}_directory to take struct pathspec
339  . Convert refresh_index to take struct pathspec
340  . Convert report_path_error to take struct pathspec
341  . checkout: convert read_tree_some to take struct pathspec
342  . Convert unmerge_cache to take struct pathspec
343  . Convert read_cache_preload() to take struct pathspec
344  . add: convert to use parse_pathspec
345  . archive: convert to use parse_pathspec
346  . ls-files: convert to use parse_pathspec
347  . rm: convert to use parse_pathspec
348  . checkout: convert to use parse_pathspec
349  . rerere: convert to use parse_pathspec
350  . status: convert to use parse_pathspec
351  . commit: convert to use parse_pathspec
352  . clean: convert to use parse_pathspec
353  . Export parse_pathspec() and convert some get_pathspec() calls
354  . Add parse_pathspec() that converts cmdline args to struct pathspec
355  . pathspec: save the non-wildcard length part
357  Uses the parsed pathspec structure in more places where we used to
358  use the raw "array of strings" pathspec.
360  Ejected from 'pu' for now; will take a look at the rerolled one
361  later ($gmane/213340).
363 --------------------------------------------------
364 [Cooking]
366 * ft/transport-report-segv (2013-01-31) 1 commit
367   (merged to 'next' on 2013-02-02 at 6c450a7)
368  + push: fix segfault when HEAD points nowhere
370  A failure to push due to non-ff while on an unborn branch
371  dereferenced a NULL pointer when showing an error message.
373  Will merge to 'master'.
376 * sb/gpg-i18n (2013-01-31) 1 commit
377   (merged to 'next' on 2013-02-02 at 7a54574)
378  + gpg: allow translation of more error messages
380  Will merge to 'master'.
383 * sb/gpg-plug-fd-leak (2013-01-31) 1 commit
384   (merged to 'next' on 2013-02-02 at c271a31)
385  + gpg: close stderr once finished with it in verify_signed_buffer()
387  We forgot to close the file descriptor reading from "gpg" output,
388  killing "git log --show-signature" on a long history.
390  Will merge to 'master'.
393 * sb/run-command-fd-error-reporting (2013-02-01) 1 commit
394   (merged to 'next' on 2013-02-02 at be7e970)
395  + run-command: be more informative about what failed
397  Will merge to 'master'.
400 * jk/remote-helpers-doc (2013-02-01) 1 commit
401   (merged to 'next' on 2013-02-02 at ce1461a)
402  + Rename {git- => git}remote-helpers.txt
404  "git help remote-helpers" did not work; 'remote-helpers' is not
405  a subcommand name but a concept, so its documentation should have
406  been in gitremote-helpers, not git-remote-helpers.
408  Will merge to 'master'.
411 * sp/smart-http-content-type-check (2013-02-04) 1 commit
412   (merged to 'next' on 2013-02-04 at d0759cb)
413  + Verify Content-Type from smart HTTP servers
415  The smart HTTP clients forgot to verify the content-type that comes
416  back from the server side to make sure that the request is being
417  handled properly.
419  Will merge to 'master'.
422 * jc/mention-tracking-for-pull-default (2013-01-31) 1 commit
423  - doc: mention tracking for pull.default
425  We stopped mentioning `tracking` is a deprecated but supported
426  synonym for `upstream` in pull.default even though we have no
427  intention of removing the support for it.
429  This is my "don't list it to catch readers' eyes, but make sure it
430  can be found if the reader looks for it" version; I'm not married
431  to the layout and am willing to take a replacement patch.
434 * jc/fake-ancestor-with-non-blobs (2013-01-31) 3 commits
435   (merged to 'next' on 2013-02-02 at 86d457a)
436  + apply: diagnose incomplete submodule object name better
437  + apply: simplify build_fake_ancestor()
438  + git-am: record full index line in the patch used while rebasing
440  Rebasing the history of superproject with change in the submodule
441  has been broken since v1.7.12.
443  Will merge to 'master'.
446 * jk/doc-makefile-cleanup (2013-02-01) 1 commit
447   (merged to 'next' on 2013-02-02 at 86ff373)
448  + Documentation/Makefile: clean up MAN*_TXT lists
450  Will merge to 'master'.
453 * ab/gitweb-use-same-scheme (2013-01-28) 1 commit
454   (merged to 'next' on 2013-02-02 at 7e4a108)
455  + gitweb: refer to picon/gravatar images over the same scheme
457  Avoid mixed contents on a page coming via http and https when
458  gitweb is hosted on a https server.
460  Will merge to 'master'.
463 * jk/python-styles (2013-01-30) 1 commit
464   (merged to 'next' on 2013-02-02 at 293edc1)
465  + CodingGuidelines: add Python coding guidelines
467  Will merge to 'master'.
470 * mn/send-email-authinfo (2013-01-29) 1 commit
471  - git-send-email: add ~/.authinfo parsing
473  Expecting a reroll.
474  $gmane/215004, $gmane/215024.
477 * mp/complete-paths (2013-01-11) 1 commit
478   (merged to 'next' on 2013-01-30 at 70e4f1a)
479  + git-completion.bash: add support for path completion
480  (this branch is used by mk/tcsh-complete-only-known-paths.)
482  The completion script used to let the default completer to suggest
483  pathnames, which gave too many irrelevant choices (e.g. "git add"
484  would not want to add an unmodified path).  Teach it to use a more
485  git-aware logic to enumerate only relevant ones.
487  This is logically the right thing to do, and we would really love
488  to see people who have been involved in completion code to review
489  and comment on the implementation.
491  Will cook in 'next' to see if anybody screams.
494 * ss/mergetools-tortoise (2013-02-01) 2 commits
495   (merged to 'next' on 2013-02-03 at d306b83)
496  + mergetools: teach tortoisemerge to handle filenames with SP correctly
497  + mergetools: support TortoiseGitMerge
499  Update mergetools to work better with newer merge helper tortoise ships.
501  Will merge to 'master'.
504 * da/mergetool-docs (2013-02-02) 5 commits
505   (merged to 'next' on 2013-02-03 at f822dcf)
506  + doc: generate a list of valid merge tools
507  + mergetool--lib: list user configured tools in '--tool-help'
508  + mergetool--lib: add functions for finding available tools
509  + mergetool--lib: improve the help text in guess_merge_tool()
510  + mergetool--lib: simplify command expressions
511  (this branch uses jk/mergetool.)
513  Build on top of the clean-up done by jk/mergetool and automatically
514  generate the list of mergetool and difftool backends the build
515  supports to be included in the documentation.
517  Will merge to 'master'.
520 * nd/branch-error-cases (2013-01-31) 6 commits
521   (merged to 'next' on 2013-02-02 at cf5e745)
522  + branch: let branch filters imply --list
523  + docs: clarify git-branch --list behavior
524  + branch: mark more strings for translation
525  + Merge branch 'nd/edit-branch-desc-while-detached' into HEAD
526  + branch: give a more helpful message on redundant arguments
527  + branch: reject -D/-d without branch name
529  Fix various error messages and conditions in "git branch", e.g. we
530  advertised "branch -d/-D" to remove one or more branches but actually
531  implemented removal of zero or more branches---request to remove no
532  branches was not rejected.
534  Will merge to 'master'.
537 * jk/mergetool (2013-01-28) 8 commits
538   (merged to 'next' on 2013-02-03 at 2ff5dee)
539  + mergetools: simplify how we handle "vim" and "defaults"
540  + mergetool--lib: don't call "exit" in setup_tool
541  + mergetool--lib: improve show_tool_help() output
542  + mergetools/vim: remove redundant diff command
543  + git-difftool: use git-mergetool--lib for "--tool-help"
544  + git-mergetool: don't hardcode 'mergetool' in show_tool_help
545  + git-mergetool: remove redundant assignment
546  + git-mergetool: move show_tool_help to mergetool--lib
547  (this branch is used by da/mergetool-docs.)
549  Cleans up mergetool/difftool combo.
551  Will merge to 'master'.
554 * jc/hidden-refs (2013-01-30) 8 commits
555  - WIP: receive.allowupdatestohidden
556  - fetch: fetch objects by their exact SHA-1 object names
557  - upload-pack: optionally allow fetching from the tips of hidden refs
558  - fetch: use struct ref to represent refs to be fetched
559  - parse_fetch_refspec(): clarify the codeflow a bit
560  - upload/receive-pack: allow hiding ref hierarchies
561  - upload-pack: simplify request validation
562  - upload-pack: share more code
564  Allow the server side to unclutter the refs/ namespace it shows to
565  the client.  Optionally allow requests for histories leading to the
566  tips of hidden refs by updated clients.
568  Will merge to 'next' after dropping the tip.
571 * ta/doc-no-small-caps (2013-02-01) 6 commits
572   (merged to 'next' on 2013-02-02 at 77cbd0e)
573  + Documentation: StGit is the right spelling, not StGIT
574  + Documentation: describe the "repository" in repository-layout
575  + Documentation: add a description for 'gitfile' to glossary
576  + Documentation: do not use undefined terms git-dir and git-file
577  + Documentation: the name of the system is 'Git', not 'git'
578  + Documentation: avoid poor-man's small caps GIT
580  Update documentation to change "GIT" which was a poor-man's small
581  caps to "Git".  The latter was the intended spelling.
583  Also change "git" spelled in all-lowercase to "Git" when it refers
584  to the system as the whole or the concept it embodies, as opposed to
585  the command the end users would type.
587  Will merge to 'master'.
590 * jc/remove-treesame-parent-in-simplify-merges (2013-01-17) 1 commit
591   (merged to 'next' on 2013-01-30 at b639b47)
592  + simplify-merges: drop merge from irrelevant side branch
594  The --simplify-merges logic did not cull irrelevant parents from a
595  merge that is otherwise not interesting with respect to the paths
596  we are following.
598  This touches a fairly core part of the revision traversal
599  infrastructure; even though I think this change is correct, please
600  report immediately if you find any unintended side effect.
602  Will cook in 'next'.
605 * jc/push-2.0-default-to-simple (2013-01-16) 14 commits
606   (merged to 'next' on 2013-01-16 at 23f5df2)
607  + t5570: do not assume the "matching" push is the default
608  + t5551: do not assume the "matching" push is the default
609  + t5550: do not assume the "matching" push is the default
610   (merged to 'next' on 2013-01-09 at 74c3498)
611  + doc: push.default is no longer "matching"
612  + push: switch default from "matching" to "simple"
613  + t9401: do not assume the "matching" push is the default
614  + t9400: do not assume the "matching" push is the default
615  + t7406: do not assume the "matching" push is the default
616  + t5531: do not assume the "matching" push is the default
617  + t5519: do not assume the "matching" push is the default
618  + t5517: do not assume the "matching" push is the default
619  + t5516: do not assume the "matching" push is the default
620  + t5505: do not assume the "matching" push is the default
621  + t5404: do not assume the "matching" push is the default
623  Will cook in 'next' until Git 2.0 ;-).
626 * bc/append-signed-off-by (2013-01-27) 11 commits
627  - Unify appending signoff in format-patch, commit and sequencer
628  - format-patch: update append_signoff prototype
629  - t4014: more tests about appending s-o-b lines
630  - sequencer.c: teach append_signoff to avoid adding a duplicate newline
631  - sequencer.c: teach append_signoff how to detect duplicate s-o-b
632  - sequencer.c: always separate "(cherry picked from" from commit body
633  - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
634  - t/t3511: add some tests of 'cherry-pick -s' functionality
635  - t/test-lib-functions.sh: allow to specify the tag name to test_commit
636  - commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
637  - sequencer.c: rework search for start of footer to improve clarity
639  Waiting for the final round of reroll before merging to 'next'.
640  After that we will go incremental.