What's cooking (2013/04 #10)
[git/jrn.git] / whats-cooking.txt
bloba5b3693f75c7db65490137f87020d82a1228c7d3
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2013, #10; Mon, 29)
4 X-master-at: 7e6a0cc47da79dd22c0338aee8750fda92ced5d9
5 X-next-at: 06c29dc5775bfd65329e6072358821bb781a6deb
7 What's cooking in git.git (Apr 2013, #10; Mon, 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 There are a few more topics in flight that look sane and trivially
15 correct that I would feel safe to merge down to 'master', but what
16 we have in 'master' should be a pretty similar to the final, from
17 the point of view of features and new fixes.  I'd like to see people
18 focus on catching and fixing last minute regressions and
19 incompleteness in the topics that have already in 'master' for the
20 upcoming release.
22 New topics that are not relevant for the goal to release a complete
23 and regression-free 1.8.3 may not be queued even on 'pu' until final
24 to reduce hassles on integration testing (I do not mean that it is
25 forbidden to work on and discussing new topics on the list. It is
26 just the patches won't be considered as formal submission and they
27 won't hit 'pu').
29 You can find the changes described here in the integration branches
30 of the repositories listed at
32     http://git-blame.blogspot.com/p/git-public-repositories.html
34 --------------------------------------------------
35 [Graduated to "master"]
37 * fc/zsh-completion (2013-04-28) 2 commits
38  + complete: zsh: use zsh completion for the main cmd
39  + complete: zsh: trivial simplification
42 --------------------------------------------------
43 [New Topics]
45 * fc/completion (2013-04-27) 9 commits
46  - completion: remove __git_index_file_list_filter()
47  - completion: add space after completed filename
48  - completion: add hack to enable file mode in bash < 4
49  - completion: refactor __git_complete_index_file()
50  - completion: refactor diff_index wrappers
51  - completion: use __gitcompadd for __gitcomp_file
52  - completion; remove unuseful comments
53  - completion: document tilde expansion failure in tests
54  - completion: add file completion tests
56  I saw this discussed somewhat. Is everybody happy with this
57  version?  This is its v2, in the $gmane/222682 thread.
60 * jk/test-output (2013-04-29) 2 commits
61  - test output: respect $TEST_OUTPUT_DIRECTORY
62  - t/Makefile: fix result handling with TEST_OUTPUT_DIRECTORY
64  Allows "sh tXXXX-*.sh --root=$there" to correctly use the moved
65  output directory when summarizing the results.
67  Will merge to 'next'.
70 * rj/mingw-cygwin (2013-04-28) 2 commits
71  - cygwin: Remove the CYGWIN_V15_WIN32API build variable
72  - mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE
74  Cygwin portability; both were reviewed by Jonathan, and the tip one
75  seems to want a bit further explanation.  Needs positive report
76  from Cygwin 1.7 users who have been on 1.7 to make sure it does not
77  regress for them.
80 * rj/sparse (2013-04-28) 10 commits
81  - sparse: Fix mingw_main() argument number/type errors
82  - compat/mingw.c: Fix some sparse warnings
83  - compat/win32mmap.c: Fix some sparse warnings
84  - compat/poll/poll.c: Fix a sparse warning
85  - compat/win32/pthread.c: Fix a sparse warning
86  - compat/unsetenv.c: Fix a sparse warning
87  - compat/nedmalloc: Fix compiler warnings on linux
88  - compat/nedmalloc: Fix some sparse warnings
89  - compat/fnmatch/fnmatch.c: Fix a sparse error
90  - compat/regex/regexec.c: Fix some sparse warnings
92  Will merge to 'next'.
95 * rs/pp-user-info-without-extra-allocation (2013-04-25) 3 commits
96   (merged to 'next' on 2013-04-29 at 13eafc3)
97  + pretty: remove intermediate strbufs from pp_user_info()
98  + pretty: simplify output line length calculation in pp_user_info()
99  + pretty: simplify input line length calculation in pp_user_info()
101  Will merge to 'master'.
104 * hb/git-pm-tempfile (2013-04-29) 1 commit
105   (merged to 'next' on 2013-04-29 at fecc6b0)
106  + Git.pm: call tempfile from File::Temp as a regular function
108  Will merge to 'master'.
111 * js/transport-helper-error-reporting-fix (2013-04-28) 3 commits
112   (merged to 'next' on 2013-04-29 at 8cc4bb8)
113  + git-remote-testgit: build it to run under $SHELL_PATH
114  + git-remote-testgit: further remove some bashisms
115  + git-remote-testgit: avoid process substitution
116  (this branch uses fc/transport-helper-error-reporting.)
118  Finishing touches to fc/transport-helper-error-reporting topic.
119  Will cook in 'next'.
122 * mh/fetch-into-shallow (2013-04-28) 1 commit
123   (merged to 'next' on 2013-04-29 at a167d3e)
124  + upload-pack: ignore 'shallow' lines with unknown obj-ids
126  May want to have a few tests. $gmane/222774
127  Will cook in 'next'.
130 --------------------------------------------------
131 [Stalled]
133 * mg/more-textconv (2013-04-23) 7 commits
134  - git grep: honor textconv by default
135  - grep: honor --textconv for the case rev:path
136  - grep: allow to use textconv filters
137  - t7008: demonstrate behavior of grep with textconv
138  - cat-file: do not die on --textconv without textconv filters
139  - show: honor --textconv for blobs
140  - t4030: demonstrate behavior of show with textconv
142  Rerolled. I am not sure if I like "show <blob>" and "grep" that use
143  textconv by default, though.
146 * mh/multimail (2013-04-21) 1 commit
147  - git-multimail: a replacement for post-receive-email
149  Waiting for comments.
152 * jc/format-patch (2013-04-22) 2 commits
153  - format-patch: --inline-single
154  - format-patch: rename "no_inline" field
156  A new option to send a single patch to the standard output to be
157  appended at the bottom of a message.  I personally have no need for
158  this, but it was easy enough to cobble together.  Tests, docs and
159  stripping out more MIMEy stuff are left as exercises to interested
160  parties.
162  Not ready for inclusion.
165 * jk/gitweb-utf8 (2013-04-08) 4 commits
166  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
167  - gitweb: Don't append ';js=(0|1)' to external links
168  - gitweb: Make feed title valid utf8
169  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
171  Various fixes to gitweb.
173  Waiting for a reroll after a review.
176 * jk/commit-info-slab (2013-04-19) 3 commits
177  - commit-slab: introduce a macro to define a slab for new type
178  - commit-slab: avoid large realloc
179  - commit: allow associating auxiliary info on-demand
180  (this branch is used by jc/show-branch.)
182  Technology demonstration to show a way we could use unbound number
183  of flag bits on commit objects.
186 * jn/config-ignore-inaccessible (2013-04-15) 1 commit
187  - config: allow inaccessible configuration under $HOME
189  When $HOME is misconfigured to point at an unreadable directory, we
190  used to complain and die. This loosens the check.
192  I do not think we agreed that this is a good idea, though.
194 --------------------------------------------------
195 [Cooking]
197 * kb/full-history-compute-treesame-carefully (2013-04-27) 3 commits
198  - simplify-merges: drop merge from irrelevant side branch
199  - simplify-merges: never remove all TREESAME parents
200  - revision.c: tighten up TREESAME handling of merges
202  Another improved redesign coming.  This touches a very core part of
203  the system and will not be a 1.8.3 material.
206 * tr/remote-tighten-commandline-parsing (2013-04-24) 3 commits
207   (merged to 'next' on 2013-04-29 at 46a1043)
208  + remote: 'show' and 'prune' can take more than one remote
209  + remote: check for superfluous arguments in 'git remote add'
210  + remote: add a test for extra arguments, according to docs
212  Will merge to 'master'.
215 * zk/prompt-rebase-step (2013-04-25) 1 commit
216   (merged to 'next' on 2013-04-25 at a8264bf)
217  + bash-prompt.sh: show where rebase is at when stopped
219  Will merge to 'master'.
222 * jh/checkout-auto-tracking (2013-04-21) 8 commits
223   (merged to 'next' on 2013-04-22 at 2356700)
224  + glossary: Update and rephrase the definition of a remote-tracking branch
225  + branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
226  + t9114.2: Don't use --track option against "svn-remote"-tracking branches
227  + t7201.24: Add refspec to keep --track working
228  + t3200.39: tracking setup should fail if there is no matching refspec.
229  + checkout: Use remote refspecs when DWIMming tracking branches
230  + t2024: Show failure to use refspec when DWIMming remote branch names
231  + t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
233  Updates "git checkout foo" that DWIMs the intended "upstream" and
234  turns it into "git checkout -t -b foo remotes/origin/foo" to
235  correctly take existing remote definitions into account.  The
236  remote "origin" may be what uniquely map its own branch to
237  remotes/some/where/foo but that some/where may not be "origin".
239  Will cook in 'next'.
242 * jc/prune-all (2013-04-25) 4 commits
243   (merged to 'next' on 2013-04-26 at 97a7387)
244  + prune: introduce OPT_EXPIRY_DATE() and use it
245   (merged to 'next' on 2013-04-22 at b00ccf6)
246  + api-parse-options.txt: document "no-" for non-boolean options
247  + git-gc.txt, git-reflog.txt: document new expiry options
248  + date.c: add parse_expiry_date()
249  (this branch is tangled with mh/packed-refs-various.)
251  We used the approxidate() parser for "--expire=<timestamp>" options
252  of various commands, but it is better to treat --expire=all and
253  --expire=now a bit more specially than using the current timestamp.
254  Update "git gc" and "git reflog" with a new parsing function for
255  expiry dates.
257  Will cook in 'next'.
260 * as/check-ignore (2013-04-11) 5 commits
261   (merged to 'next' on 2013-04-21 at 7515aa8)
262  + Documentation: add caveats about I/O buffering for check-{attr,ignore}
263  + check-ignore: allow incremental streaming of queries via --stdin
264  + check-ignore: move setup into cmd_check_ignore()
265  + check-ignore: add -n / --non-matching option
266  + t0008: remove duplicated test fixture data
268  Enhance "check-ignore" (1.8.2 update) to work more like "check-attr"
269  over bidi-pipes.
271  Waiting for a follow-up.
272  $gmane/222235
274  The test in the second from the tip needs to be updated.
277 * mh/packed-refs-various (2013-04-24) 36 commits
278  - refs: handle the main ref_cache specially
279  - refs: change do_for_each_*() functions to take ref_cache arguments
280  - pack_one_ref(): do some cheap tests before a more expensive one
281  - pack_one_ref(): use write_packed_entry() to do the writing
282  - pack_one_ref(): use function peel_entry()
283  - refs: inline function do_not_prune()
284  - pack_refs(): change to use do_for_each_entry()
285  - refs: use same lock_file object for both ref-packing functions
286  - pack_one_ref(): rename "path" parameter to "refname"
287  - pack-refs: merge code from pack-refs.{c,h} into refs.{c,h}
288  - pack-refs: rename handle_one_ref() to pack_one_ref()
289  - refs: extract a function write_packed_entry()
290  - repack_without_ref(): write peeled refs in the rewritten file
291  - t3211: demonstrate loss of peeled refs if a packed ref is deleted
292  - refs: change how packed refs are deleted
293  - search_ref_dir(): return an index rather than a pointer
294  - repack_without_ref(): silence errors for dangling packed refs
295  - t3210: test for spurious error messages for dangling packed refs
296  - refs: change the internal reference-iteration API
297  - refs: extract a function peel_entry()
298  - peel_ref(): fix return value for non-peelable, not-current reference
299  - peel_object(): give more specific information in return value
300  - refs: extract function peel_object()
301  - refs: extract a function ref_resolves_to_object()
302  - repack_without_ref(): use function get_packed_ref()
303  - peel_ref(): use function get_packed_ref()
304  - get_packed_ref(): return a ref_entry
305  - do_for_each_ref_in_dirs(): remove dead code
306  - refs: define constant PEELED_LINE_LENGTH
307  - refs: document how current_ref is used
308  - refs: document do_for_each_ref() and do_one_ref()
309  - refs: document the fields of struct ref_value
310  - refs: document flags constants REF_*
311   (merged to 'next' on 2013-04-22 at b00ccf6)
312  + api-parse-options.txt: document "no-" for non-boolean options
313  + git-gc.txt, git-reflog.txt: document new expiry options
314  + date.c: add parse_expiry_date()
315  (this branch is tangled with jc/prune-all.)
317  Updates reading and updating packed-refs file, correcting corner
318  case bugs.
320  Will merge to 'next' after rebasing on the tip of jc/prune-all.
323 * fc/transport-helper-error-reporting (2013-04-25) 10 commits
324   (merged to 'next' on 2013-04-25 at 3358f1a)
325  + t5801: "VAR=VAL shell_func args" is forbidden
326   (merged to 'next' on 2013-04-22 at 5ba6467)
327  + transport-helper: update remote helper namespace
328  + transport-helper: trivial code shuffle
329  + transport-helper: warn when refspec is not used
330  + transport-helper: clarify pushing without refspecs
331  + transport-helper: update refspec documentation
332  + transport-helper: clarify *:* refspec
333  + transport-helper: improve push messages
334  + transport-helper: mention helper name when it dies
335  + transport-helper: report errors properly
336  (this branch is used by js/transport-helper-error-reporting-fix.)
338  Update transport helper to report errors and maintain ref hierarchy
339  used to keep track of remote helper state better.
341  Will cook in 'next', but may be 1.8.3 material depending on how things go.
344 * jk/submodule-subdirectory-ok (2013-04-24) 3 commits
345   (merged to 'next' on 2013-04-24 at 6306b29)
346  + submodule: fix quoting in relative_path()
347   (merged to 'next' on 2013-04-22 at f211e25)
348  + submodule: drop the top-level requirement
349  + rev-parse: add --prefix option
351  Allow various subcommands of "git submodule" to be run not from the
352  top of the working tree of the superproject.
354  Will cook in 'next'.
357 * jl/submodule-mv (2013-04-23) 5 commits
358   (merged to 'next' on 2013-04-23 at c04f574)
359  + submodule.c: duplicate real_path's return value
360   (merged to 'next' on 2013-04-19 at 45ae3c9)
361  + rm: delete .gitmodules entry of submodules removed from the work tree
362  + Teach mv to update the path entry in .gitmodules for moved submodules
363  + Teach mv to move submodules using a gitfile
364  + Teach mv to move submodules together with their work trees
366  "git mv A B" when moving a submodule A does "the right thing",
367  inclusing relocating its working tree and adjusting the paths in
368  the .gitmodules file.
370  Will cook in 'next'.
373 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
374  - git add: -u/-A now affects the entire working tree
376  Will cook in 'next' until Git 2.0.
379 * nd/magic-pathspecs (2013-03-31) 45 commits
380  . Rename field "raw" to "_raw" in struct pathspec
381  . pathspec: support :(glob) syntax
382  . pathspec: make --literal-pathspecs disable pathspec magic
383  . pathspec: support :(literal) syntax for noglob pathspec
384  . Kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
385  . parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
386  . parse_pathspec: make sure the prefix part is wildcard-free
387  . tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
388  . Remove match_pathspec() in favor of match_pathspec_depth()
389  . Remove init_pathspec() in favor of parse_pathspec()
390  . Remove diff_tree_{setup,release}_paths
391  . Convert common_prefix() to use struct pathspec
392  . Convert add_files_to_cache to take struct pathspec
393  . Convert {read,fill}_directory to take struct pathspec
394  . Convert refresh_index to take struct pathspec
395  . Convert report_path_error to take struct pathspec
396  . checkout: convert read_tree_some to take struct pathspec
397  . Convert unmerge_cache to take struct pathspec
398  . Convert run_add_interactive to use struct pathspec
399  . Convert read_cache_preload() to take struct pathspec
400  . reset: convert to use parse_pathspec
401  . add: convert to use parse_pathspec
402  . check-ignore: convert to use parse_pathspec
403  . archive: convert to use parse_pathspec
404  . ls-files: convert to use parse_pathspec
405  . rm: convert to use parse_pathspec
406  . checkout: convert to use parse_pathspec
407  . rerere: convert to use parse_pathspec
408  . status: convert to use parse_pathspec
409  . commit: convert to use parse_pathspec
410  . clean: convert to use parse_pathspec
411  . Guard against new pathspec magic in pathspec matching code
412  . parse_pathspec: support prefixing original patterns
413  . parse_pathspec: support stripping/checking submodule paths
414  . parse_pathspec: support stripping submodule trailing slashes
415  . parse_pathspec: a special flag for max_depth feature
416  . Convert some get_pathspec() calls to parse_pathspec()
417  . parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL}
418  . parse_pathspec: save original pathspec for reporting
419  . Add parse_pathspec() that converts cmdline args to struct pathspec
420  . pathspec: add copy_pathspec
421  . pathspec: i18n-ize error strings in pathspec parsing code
422  . Move struct pathspec and related functions to pathspec.[ch]
423  . clean: remove unused variable "seen"
424  . setup.c: check that the pathspec magic ends with ")"
426  Migrate the rest of codebase to use "struct pathspec" more.
428  This has nasty conflicts with kb/status-ignored-optim-2,
429  as/check-ignore and tr/line-log; I've already asked Duy to hold
430  this and later rebase on top of them.
432  Will defer.
435 * tr/line-log (2013-04-22) 13 commits
436   (merged to 'next' on 2013-04-22 at 8f2c1de)
437  + git-log(1): remove --full-line-diff description
438   (merged to 'next' on 2013-04-21 at cd92620)
439  + line-log: fix documentation formatting
440   (merged to 'next' on 2013-04-15 at 504559e)
441  + log -L: improve comments in process_all_files()
442  + log -L: store the path instead of a diff_filespec
443  + log -L: test merge of parallel modify/rename
444  + t4211: pass -M to 'git log -M -L...' test
445   (merged to 'next' on 2013-04-05 at 5afb00c)
446  + log -L: fix overlapping input ranges
447  + log -L: check range set invariants when we look it up
448   (merged to 'next' on 2013-04-01 at 5be920c)
449  + Speed up log -L... -M
450  + log -L: :pattern:file syntax to find by funcname
451  + Implement line-history search (git log -L)
452  + Export rewrite_parents() for 'log -L'
453  + Refactor parse_loc
455  Will cook in 'next'.
458 * jc/push-2.0-default-to-simple (2013-04-03) 1 commit
459  - push: switch default from "matching" to "simple"
461  The early bits to adjust the tests have been merged to 'master'.
463  Will cook in 'next' until Git 2.0.
466 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
467  - git add <pathspec>... defaults to "-A"
469  Updated endgame for "git add <pathspec>" that defaults to "--all"
470  aka "--no-ignore-removal".
472  Will cook in 'next' until Git 2.0.