What's cooking (2013/04 #09)
[alt-git.git] / whats-cooking.txt
blob77705d13fa957aeb784b4bfd48c533fe4575d563
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2013, #09; Fri, 26)
4 X-master-at: b75cdfaa882a00f2274e74b21c1a9927d184ed29
5 X-next-at: b1478c83563fcc2b22771ab08fa759a3972c365d
7 What's cooking in git.git (Apr 2013, #09; Fri, 26)
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 The release candidate preview 1.8.3-rc0 has been tagged. I'd like to
15 see people focus on catching and fixing last minute regressions and
16 incompleteness in the topics that have already in 'master' for the
17 upcoming release. New topics that are not relevant for the goal to
18 release a regression-free and complete 1.8.3 may not be queued even
19 on 'pu' until final to reduce hassles on integration testing (I do
20 not mean that it is forbidden to work on and discussing new topics
21 on the list. It is just the patches won't be considered as formal
22 submission and they won't hit 'pu').
24 As to the topics still cooking on 'next', I unfortunately do not see
25 anything that I feel comfortable merging for 1.8.3; but I am open to
26 suggestions.
28 You can find the changes described here in the integration branches
29 of the repositories listed at
31     http://git-blame.blogspot.com/p/git-public-repositories.html
33 --------------------------------------------------
34 [Graduated to "master"]
36 * fc/remote-hg (2013-04-22) 16 commits
37   (merged to 'next' on 2013-04-25 at 152cb06)
38  + remote-hg: strip extra newline
39  + remote-hg: use marks instead of inlined files
40  + remote-hg: small performance improvement
41  + remote-hg: allow refs with spaces
42  + remote-hg: don't update bookmarks unnecessarily
43  + remote-hg: add support for schemes extension
44  + remote-hg: improve email sanitation
45  + remote-hg: add custom local tag write code
46  + remote-hg: write tags in the appropriate branch
47  + remote-hg: custom method to write tags
48  + remote-hg: add support for tag objects
49  + remote-hg: add branch_tip() helper
50  + remote-hg: properly mark branches up-to-date
51  + remote-hg: use python urlparse
52  + remote-hg: safer bookmark pushing
53  + remote-helpers: avoid has_key
55  Further updates to remote-hg (in contrib/).
58 * jc/add-ignore-removal (2013-04-22) 2 commits
59   (merged to 'next' on 2013-04-24 at c85c5a7)
60  + git add: rephrase -A/--no-all warning
61  + git add: --ignore-removal is a better named --no-all
62  (this branch is used by jc/add-2.0-ignore-removal.)
64  Introduce "--ignore-removal" as a synonym to "--no-all" for "git
65  add", and improve the 2.0 migration warning with it.
68 * jk/remote-helper-with-signed-tags (2013-04-15) 3 commits
69   (merged to 'next' on 2013-04-21 at 0231d45)
70  + transport-helper: add 'signed-tags' capability
71  + transport-helper: pass --signed-tags=warn-strip to fast-export
72  + fast-export: add --signed-tags=warn-strip mode
74  Allows remote-helpers to declare they can handle signed tags, and
75  issue a warning when using those that don't.
78 * jn/glossary-revision (2013-04-21) 1 commit
79   (merged to 'next' on 2013-04-24 at 70efbe7)
80  + glossary: a revision is just a commit
82  The wording for "revision" in the glossary wanted to say it refers
83  to "commit (noun) as a concept" but it was badly phrased.
85  This may need further updates to hint that in contexts where it is
86  clear, the word may refer to an object name, not necessarily a
87  commit. But the patch as-is is already an improvement.
90 * ph/rebase-original (2013-04-23) 1 commit
91   (merged to 'next' on 2013-04-24 at c643dcd)
92  + rebase: find orig_head unambiguously
95 * rr/shortlog-doc (2013-04-22) 8 commits
96   (merged to 'next' on 2013-04-25 at a95a3fc)
97  + builtin/shortlog.c: make usage string consistent with log
98  + builtin/log.c: make usage string consistent with doc
99  + git-shortlog.txt: make SYNOPSIS match log, update OPTIONS
100  + git-log.txt: rewrite note on why "--" may be required
101  + git-log.txt: generalize <since>..<until>
102  + git-log.txt: order OPTIONS properly; move <since>..<until>
103  + revisions.txt: clarify the .. and ... syntax
104  + git-shortlog.txt: remove (-h|--help) from OPTIONS
106  Update documentation for "log" and "shortlog".
109 * th/bisect-skipped-log (2013-04-23) 1 commit
110   (merged to 'next' on 2013-04-25 at 1de189b)
111  + bisect: Log possibly bad, skipped commits at bisection end
113 --------------------------------------------------
114 [New Topics]
116 * kb/full-history-compute-treesame-carefully (2013-04-24) 2 commits
117  - t6012: update test for tweaked full-history traversal
118  - Make --full-history consider more merges
121 * tr/remote-tighten-commandline-parsing (2013-04-24) 3 commits
122  - remote: 'show' and 'prune' can take more than one remote
123  - remote: check for superfluous arguments in 'git remote add'
124  - remote: add a test for extra arguments, according to docs
126  Will merge to 'next'.
129 * zk/prompt-rebase-step (2013-04-25) 1 commit
130   (merged to 'next' on 2013-04-25 at a8264bf)
131  + bash-prompt.sh: show where rebase is at when stopped
134 * rr/pp-user-info-without-extra-allocation (2013-04-25) 3 commits
135  - pretty: remove intermediate strbufs from pp_user_info()
136  - pretty: simplify output line length calculation in pp_user_info()
137  - pretty: simplify input line length calculation in pp_user_info()
139  Will merge to 'next'.
141 --------------------------------------------------
142 [Stalled]
144 * jc/format-patch (2013-04-22) 2 commits
145  - format-patch: --inline-single
146  - format-patch: rename "no_inline" field
148  A new option to send a single patch to the standard output to be
149  appended at the bottom of a message.  I personally have no need for
150  this, but it was easy enough to cobble together.  Tests, docs and
151  stripping out more MIMEy stuff are left as exercises to interested
152  parties.
154  Not ready for inclusion.
157 * jk/gitweb-utf8 (2013-04-08) 4 commits
158  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
159  - gitweb: Don't append ';js=(0|1)' to external links
160  - gitweb: Make feed title valid utf8
161  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
163  Various fixes to gitweb.
165  Waiting for a reroll after a review.
168 * jk/commit-info-slab (2013-04-19) 3 commits
169  - commit-slab: introduce a macro to define a slab for new type
170  - commit-slab: avoid large realloc
171  - commit: allow associating auxiliary info on-demand
172  (this branch is used by jc/show-branch.)
174  Technology demonstration to show a way we could use unbound number
175  of flag bits on commit objects.
178 * jn/config-ignore-inaccessible (2013-04-15) 1 commit
179  - config: allow inaccessible configuration under $HOME
181  When $HOME is misconfigured to point at an unreadable directory, we
182  used to complain and die. This loosens the check.
184  I do not think we agreed that this is a good idea, though.
186 --------------------------------------------------
187 [Cooking]
189 * jh/checkout-auto-tracking (2013-04-21) 8 commits
190   (merged to 'next' on 2013-04-22 at 2356700)
191  + glossary: Update and rephrase the definition of a remote-tracking branch
192  + branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
193  + t9114.2: Don't use --track option against "svn-remote"-tracking branches
194  + t7201.24: Add refspec to keep --track working
195  + t3200.39: tracking setup should fail if there is no matching refspec.
196  + checkout: Use remote refspecs when DWIMming tracking branches
197  + t2024: Show failure to use refspec when DWIMming remote branch names
198  + t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
200  Updates "git checkout foo" that DWIMs the intended "upstream" and
201  turns it into "git checkout -t -b foo remotes/origin/foo" to
202  correctly take existing remote definitions into account.  The
203  remote "origin" may be what uniquely map its own branch to
204  remotes/some/where/foo but that some/where may not be "origin".
206  Will cook in 'next'.
209 * mg/more-textconv (2013-04-23) 7 commits
210  - git grep: honor textconv by default
211  - grep: honor --textconv for the case rev:path
212  - grep: allow to use textconv filters
213  - t7008: demonstrate behavior of grep with textconv
214  - cat-file: do not die on --textconv without textconv filters
215  - show: honor --textconv for blobs
216  - t4030: demonstrate behavior of show with textconv
218  Rerolled. I am not sure if I like "show <blob>" and "grep" that use
219  textconv by default, though.
222 * mh/multimail (2013-04-21) 1 commit
223  - git-multimail: a replacement for post-receive-email
225  Waiting for comments.
228 * jc/prune-all (2013-04-25) 4 commits
229   (merged to 'next' on 2013-04-26 at 97a7387)
230  + prune: introduce OPT_EXPIRY_DATE() and use it
231   (merged to 'next' on 2013-04-22 at b00ccf6)
232  + api-parse-options.txt: document "no-" for non-boolean options
233  + git-gc.txt, git-reflog.txt: document new expiry options
234  + date.c: add parse_expiry_date()
235  (this branch is tangled with mh/packed-refs-various.)
237  We used the approxidate() parser for "--expire=<timestamp>" options
238  of various commands, but it is better to treat --expire=all and
239  --expire=now a bit more specially than using the current timestamp.
240  Update "git gc" and "git reflog" with a new parsing function for
241  expiry dates.
243  Will cook in 'next'.
246 * as/check-ignore (2013-04-11) 5 commits
247   (merged to 'next' on 2013-04-21 at 7515aa8)
248  + Documentation: add caveats about I/O buffering for check-{attr,ignore}
249  + check-ignore: allow incremental streaming of queries via --stdin
250  + check-ignore: move setup into cmd_check_ignore()
251  + check-ignore: add -n / --non-matching option
252  + t0008: remove duplicated test fixture data
254  Enhance "check-ignore" (1.8.2 update) to work more like "check-attr"
255  over bidi-pipes.
257  Will wait for a follow-up.
258  $gmane/222235
260  The test in the second from the tip needs to be updated.
263 * mh/packed-refs-various (2013-04-24) 36 commits
264  - refs: handle the main ref_cache specially
265  - refs: change do_for_each_*() functions to take ref_cache arguments
266  - pack_one_ref(): do some cheap tests before a more expensive one
267  - pack_one_ref(): use write_packed_entry() to do the writing
268  - pack_one_ref(): use function peel_entry()
269  - refs: inline function do_not_prune()
270  - pack_refs(): change to use do_for_each_entry()
271  - refs: use same lock_file object for both ref-packing functions
272  - pack_one_ref(): rename "path" parameter to "refname"
273  - pack-refs: merge code from pack-refs.{c,h} into refs.{c,h}
274  - pack-refs: rename handle_one_ref() to pack_one_ref()
275  - refs: extract a function write_packed_entry()
276  - repack_without_ref(): write peeled refs in the rewritten file
277  - t3211: demonstrate loss of peeled refs if a packed ref is deleted
278  - refs: change how packed refs are deleted
279  - search_ref_dir(): return an index rather than a pointer
280  - repack_without_ref(): silence errors for dangling packed refs
281  - t3210: test for spurious error messages for dangling packed refs
282  - refs: change the internal reference-iteration API
283  - refs: extract a function peel_entry()
284  - peel_ref(): fix return value for non-peelable, not-current reference
285  - peel_object(): give more specific information in return value
286  - refs: extract function peel_object()
287  - refs: extract a function ref_resolves_to_object()
288  - repack_without_ref(): use function get_packed_ref()
289  - peel_ref(): use function get_packed_ref()
290  - get_packed_ref(): return a ref_entry
291  - do_for_each_ref_in_dirs(): remove dead code
292  - refs: define constant PEELED_LINE_LENGTH
293  - refs: document how current_ref is used
294  - refs: document do_for_each_ref() and do_one_ref()
295  - refs: document the fields of struct ref_value
296  - refs: document flags constants REF_*
297   (merged to 'next' on 2013-04-22 at b00ccf6)
298  + api-parse-options.txt: document "no-" for non-boolean options
299  + git-gc.txt, git-reflog.txt: document new expiry options
300  + date.c: add parse_expiry_date()
301  (this branch is tangled with jc/prune-all.)
303  Updates reading and updating packed-refs file, correcting corner
304  case bugs.
307 * fc/transport-helper-error-reporting (2013-04-25) 10 commits
308   (merged to 'next' on 2013-04-25 at 3358f1a)
309  + t5801: "VAR=VAL shell_func args" is forbidden
310   (merged to 'next' on 2013-04-22 at 5ba6467)
311  + transport-helper: update remote helper namespace
312  + transport-helper: trivial code shuffle
313  + transport-helper: warn when refspec is not used
314  + transport-helper: clarify pushing without refspecs
315  + transport-helper: update refspec documentation
316  + transport-helper: clarify *:* refspec
317  + transport-helper: improve push messages
318  + transport-helper: mention helper name when it dies
319  + transport-helper: report errors properly
321  Update transport helper to report errors and maintain ref hierarchy
322  used to keep track of remote helper state better.
324  J6t reports that the update to t5801 breaks on Windows by the
325  remote-testgit that is written in bash, and Windows port of bash
326  does not have process substitution so remote-testgit is unusable
327  there.
330 * jk/submodule-subdirectory-ok (2013-04-24) 3 commits
331   (merged to 'next' on 2013-04-24 at 6306b29)
332  + submodule: fix quoting in relative_path()
333   (merged to 'next' on 2013-04-22 at f211e25)
334  + submodule: drop the top-level requirement
335  + rev-parse: add --prefix option
337  Allow various subcommands of "git submodule" to be run not from the
338  top of the working tree of the superproject.
340  Will cook in 'next'.
343 * jl/submodule-mv (2013-04-23) 5 commits
344   (merged to 'next' on 2013-04-23 at c04f574)
345  + submodule.c: duplicate real_path's return value
346   (merged to 'next' on 2013-04-19 at 45ae3c9)
347  + rm: delete .gitmodules entry of submodules removed from the work tree
348  + Teach mv to update the path entry in .gitmodules for moved submodules
349  + Teach mv to move submodules using a gitfile
350  + Teach mv to move submodules together with their work trees
352  "git mv A B" when moving a submodule A does "the right thing",
353  inclusing relocating its working tree and adjusting the paths in
354  the .gitmodules file.
356  Will cook in 'next'.
359 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
360  - git add: -u/-A now affects the entire working tree
362  Will cook in 'next' until Git 2.0.
365 * nd/magic-pathspecs (2013-03-31) 45 commits
366  . Rename field "raw" to "_raw" in struct pathspec
367  . pathspec: support :(glob) syntax
368  . pathspec: make --literal-pathspecs disable pathspec magic
369  . pathspec: support :(literal) syntax for noglob pathspec
370  . Kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
371  . parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
372  . parse_pathspec: make sure the prefix part is wildcard-free
373  . tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
374  . Remove match_pathspec() in favor of match_pathspec_depth()
375  . Remove init_pathspec() in favor of parse_pathspec()
376  . Remove diff_tree_{setup,release}_paths
377  . Convert common_prefix() to use struct pathspec
378  . Convert add_files_to_cache to take struct pathspec
379  . Convert {read,fill}_directory to take struct pathspec
380  . Convert refresh_index to take struct pathspec
381  . Convert report_path_error to take struct pathspec
382  . checkout: convert read_tree_some to take struct pathspec
383  . Convert unmerge_cache to take struct pathspec
384  . Convert run_add_interactive to use struct pathspec
385  . Convert read_cache_preload() to take struct pathspec
386  . reset: convert to use parse_pathspec
387  . add: convert to use parse_pathspec
388  . check-ignore: convert to use parse_pathspec
389  . archive: convert to use parse_pathspec
390  . ls-files: convert to use parse_pathspec
391  . rm: convert to use parse_pathspec
392  . checkout: convert to use parse_pathspec
393  . rerere: convert to use parse_pathspec
394  . status: convert to use parse_pathspec
395  . commit: convert to use parse_pathspec
396  . clean: convert to use parse_pathspec
397  . Guard against new pathspec magic in pathspec matching code
398  . parse_pathspec: support prefixing original patterns
399  . parse_pathspec: support stripping/checking submodule paths
400  . parse_pathspec: support stripping submodule trailing slashes
401  . parse_pathspec: a special flag for max_depth feature
402  . Convert some get_pathspec() calls to parse_pathspec()
403  . parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL}
404  . parse_pathspec: save original pathspec for reporting
405  . Add parse_pathspec() that converts cmdline args to struct pathspec
406  . pathspec: add copy_pathspec
407  . pathspec: i18n-ize error strings in pathspec parsing code
408  . Move struct pathspec and related functions to pathspec.[ch]
409  . clean: remove unused variable "seen"
410  . setup.c: check that the pathspec magic ends with ")"
412  Migrate the rest of codebase to use "struct pathspec" more.
414  This has nasty conflicts with kb/status-ignored-optim-2,
415  as/check-ignore and tr/line-log; I've already asked Duy to hold
416  this and later rebase on top of them.
419 * tr/line-log (2013-04-22) 13 commits
420   (merged to 'next' on 2013-04-22 at 8f2c1de)
421  + git-log(1): remove --full-line-diff description
422   (merged to 'next' on 2013-04-21 at cd92620)
423  + line-log: fix documentation formatting
424   (merged to 'next' on 2013-04-15 at 504559e)
425  + log -L: improve comments in process_all_files()
426  + log -L: store the path instead of a diff_filespec
427  + log -L: test merge of parallel modify/rename
428  + t4211: pass -M to 'git log -M -L...' test
429   (merged to 'next' on 2013-04-05 at 5afb00c)
430  + log -L: fix overlapping input ranges
431  + log -L: check range set invariants when we look it up
432   (merged to 'next' on 2013-04-01 at 5be920c)
433  + Speed up log -L... -M
434  + log -L: :pattern:file syntax to find by funcname
435  + Implement line-history search (git log -L)
436  + Export rewrite_parents() for 'log -L'
437  + Refactor parse_loc
439  Will cook in 'next'.
442 * jc/push-2.0-default-to-simple (2013-04-03) 1 commit
443  - push: switch default from "matching" to "simple"
445  The early bits to adjust the tests have been merged to 'master'.
447  Will cook in 'next' until Git 2.0.
450 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
451  - git add <pathspec>... defaults to "-A"
453  Updated endgame for "git add <pathspec>" that defaults to "--all"
454  aka "--no-ignore-removal".
456  Will cook in 'next' until Git 2.0.