What's cooking (2011/12 #02)
[git/jnareb-git.git] / whats-cooking.txt
blob796e6587a13349d04bb75706fce5588f28773f50
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Dec 2011, #02; Mon, 5)
3 X-master-at: 7e02a6c63a183270b726bb21640059ae16fa48ae
4 X-next-at: 9aa1b8aa9a5d12968b637b29c5a1d307f945171d
6 What's cooking in git.git (Dec 2011, #02; Mon, 5)
7 --------------------------------------------------
9 Here are the topics that have been cooking.  Commits prefixed with '-' are
10 only in 'pu' (proposed updates) while commits prefixed with '+' are in
11 'next'.
13 The tip of 'next' will be rewound soonish, kicking a handful of topics
14 back to 'pu' that are important enough to get them right rather than
15 piling "oops, that was a mistake" fix-ups in 'next'.
17 All of the topics in Stalled section will be purged without prejudice;
18 owners of respective topics are free to re-submit after addressing the
19 issues raised during the previous reviews and re-ignite the discussion.
21 Here are the repositories that have my integration branches:
23 With maint, master, next, pu, todo:
25         git://git.kernel.org/pub/scm/git/git.git
26         git://repo.or.cz/alt-git.git
27         https://code.google.com/p/git-core/
28         https://github.com/git/git
30 With only maint and master:
32         git://git.sourceforge.jp/gitroot/git-core/git.git
33         git://git-core.git.sourceforge.net/gitroot/git-core/git-core
35 With all the topics and integration branches:
37         https://github.com/gitster/git
39 The preformatted documentation in HTML and man format are found in:
41         git://git.kernel.org/pub/scm/git/git-{htmldocs,manpages}.git/
42         git://repo.or.cz/git-{htmldocs,manpages}.git/
43         https://code.google.com/p/git-{htmldocs,manpages}.git/
44         https://github.com/gitster/git-{htmldocs,manpages}.git/
46 --------------------------------------------------
47 [New Topics]
49 * bc/maint-apply-check-no-patch (2011-12-05) 2 commits
50  - builtin/apply.c: report error on failure to recognize input
51  - t/t4131-apply-fake-ancestor.sh: fix broken test
53 Will merge to 'next'.
55 --------------------------------------------------
56 [Graduated to "master"]
58 * ab/clang-lints (2011-11-06) 2 commits
59   (merged to 'next' on 2011-11-13 at a573aec)
60  + cast variable in call to free() in builtin/diff.c and submodule.c
61  + apply: get rid of useless x < 0 comparison on a size_t type
63 * gh/userdiff-matlab (2011-11-15) 1 commit
64   (merged to 'next' on 2011-11-18 at 10cd275)
65  + Add built-in diff patterns for MATLAB code
67 * jc/maint-pack-object-cycle (2011-11-16) 1 commit
68   (merged to 'next' on 2011-11-18 at 3715a81)
69  + pack-object: tolerate broken packs that have duplicated objects
71 Make the client side more robust against bogus pack stream; the problem
72 was discovered by accident while repacking a clone obtained from somewhat
73 buggy test server.
75 * jc/index-pack-reject-dups (2011-11-16) 1 commit
76   (merged to 'next' on 2011-11-18 at 2090221)
77  + receive-pack, fetch-pack: reject bogus pack that records objects twice
79 And this is the prevention to reject such pack stream in the first place.
81 * jk/refresh-porcelain-output (2011-11-18) 3 commits
82   (merged to 'next' on 2011-11-18 at 872f25e)
83  + refresh_index: make porcelain output more specific
84  + refresh_index: rename format variables
85  + read-cache: let refresh_cache_ent pass up changed flags
87 * mf/curl-select-fdset (2011-11-04) 4 commits
88   (merged to 'next' on 2011-11-06 at a49516f)
89  + http: drop "local" member from request struct
90  + http.c: Rely on select instead of tracking whether data was received
91  + http.c: Use timeout suggested by curl instead of fixed 50ms timeout
92  + http.c: Use curl_multi_fdset to select on curl fds instead of just sleeping
94 Reduces unnecessary waits.
96 * na/strtoimax (2011-11-05) 3 commits
97   (merged to 'next' on 2011-11-14 at b64e1cb)
98  + Support sizes >=2G in various config options accepting 'g' sizes.
99  + Compatibility: declare strtoimax() under NO_STRTOUMAX
100  + Add strtoimax() compatibility function.
102 * nd/fsck-progress (2011-11-06) 4 commits
103   (merged to 'next' on 2011-11-13 at 8831811)
104  + fsck: print progress
105  + fsck: avoid reading every object twice
106  + verify_packfile(): check as many object as possible in a pack
107  + fsck: return error code when verify_pack() goes wrong
109 * nd/maint-ignore-exclude (2011-11-28) 1 commit
110  + checkout,merge: loosen overwriting untracked file check based on info/exclude
111  (this branch is used by nd/ignore-might-be-precious.)
113 * nd/misc-cleanups (2011-10-27) 6 commits
114   (merged to 'next' on 2011-10-28 at 2527a49)
115  + unpack_object_header_buffer(): clear the size field upon error
116  + tree_entry_interesting: make use of local pointer "item"
117  + tree_entry_interesting(): give meaningful names to return values
118  + read_directory_recursive: reduce one indentation level
119  + get_tree_entry(): do not call find_tree_entry() on an empty tree
120  + tree-walk.c: do not leak internal structure in tree_entry_len()
122 * nd/prune-progress (2011-11-07) 3 commits
123   (merged to 'next' on 2011-11-13 at c5722ac)
124  + reachable: per-object progress
125  + prune: handle --progress/no-progress
126  + prune: show progress while marking reachable objects
128 * vr/git-merge-doc (2011-11-21) 1 commit
129  + Show error for 'git merge' with unset merge.defaultToUpstream
131 * vr/msvc (2011-10-31) 3 commits
132   (merged to 'next' on 2011-11-14 at f46d021)
133  + MSVC: Remove unneeded header stubs
134  + Compile fix for MSVC: Include <io.h>
135  + Compile fix for MSVC: Do not include sys/resources.h
137 --------------------------------------------------
138 [Stalled]
140 All of the topics in Stalled section will be discarded soonish (see the
141 cover).
143 * hv/submodule-merge-search (2011-10-13) 4 commits
144  - submodule.c: make two functions static
145  - allow multiple calls to submodule merge search for the same path
146  - push: Don't push a repository with unpushed submodules
147  - push: teach --recurse-submodules the on-demand option
149 What the topic aims to achieve may make sense, but the implementation
150 looked somewhat suboptimal.
152 * sr/transport-helper-fix-rfc (2011-07-19) 2 commits
153  - t5800: point out that deleting branches does not work
154  - t5800: document inability to push new branch with old content
156 See comments on sr/fix-fast-export-tips topic.
158 * sr/fix-fast-export-tips (2011-11-05) 3 commits
159  - fast-export: output reset command for commandline revs
160  - fast-export: do not refer to non-existing marks
161  - t9350: point out that refs are not updated correctly
163 The bottom commit from the stalled sr/transport-helper-fix-rfc topic is
164 fixed with this. It may make sense to drop the other topic and include
165 that commit in this series.
167 The command line parser is still too lax and accepts malformed input, but
168 this is a step in the right direction and tightening the command line now
169 should be doable without a low level surgery that touches codepaths that
170 are unrelated to the command line processing like the previous attempt
171 used to do.
173 * jc/lookup-object-hash (2011-08-11) 6 commits
174  - object hash: replace linear probing with 4-way cuckoo hashing
175  - object hash: we know the table size is a power of two
176  - object hash: next_size() helper for readability
177  - pack-objects --count-only
178  - object.c: remove duplicated code for object hashing
179  - object.c: code movement for readability
181 I do not think there is anything fundamentally wrong with this series, but
182 the risk of breakage far outweighs observed performance gain in one
183 particular workload.
185 * jc/verbose-checkout (2011-10-16) 2 commits
186  - checkout -v: give full status output after switching branches
187  - checkout: move the local changes report to the end
189 This is just to leave a record that the reason why we do not do this not
190 because we are incapable of coding this, but because it is not a good idea
191 to do this. I suspect people who are new to git that might think they need
192 it would soon realize the don't.
194 Will drop.
196 * eh/grep-scale-to-cpunum (2011-11-05) 1 commit
197  - grep: detect number of CPUs for thread spawning
199 Kills I/O parallelism and needs to be improved or discarded.
201 * jc/commit-tree-extra (2011-11-12) 2 commits
202  - commit-tree: teach -C <extra-commit>
203  - commit-tree: teach -x <extra>
204  (this branch uses jc/pull-signed-tag; is tangled with jc/signed-commit.)
206 Not absolutely needed; parked in 'pu' but may drop.
208 * cb/daemon-permission-errors (2011-10-17) 2 commits
209  - daemon: report permission denied error to clients
210  - daemon: add tests
212 The tip commit might be loosening things a bit too much.
214 --------------------------------------------------
215 [Cooking]
217 * sg/complete-refs (2011-10-21) 9 commits
218   (merged to 'next' on 2011-10-26 at d65e2b4)
219  + completion: remove broken dead code from __git_heads() and __git_tags()
220  + completion: fast initial completion for config 'remote.*.fetch' value
221  + completion: improve ls-remote output filtering in __git_refs_remotes()
222  + completion: query only refs/heads/ in __git_refs_remotes()
223  + completion: support full refs from remote repositories
224  + completion: improve ls-remote output filtering in __git_refs()
225  + completion: make refs completion consistent for local and remote repos
226  + completion: optimize refs completion
227  + completion: document __gitcomp()
229 Will merge to 'master.
231 * aw/rebase-i-stop-on-failure-to-amend (2011-11-30) 1 commit
232  - rebase -i: interrupt rebase when "commit --amend" failed during "reword"
234 Will merge to 'next'.
236 * jc/split-blob (2011-12-01) 6 commits
237  . WIP (streaming chunked)
238  - chunked-object: fallback checkout codepaths
239  - bulk-checkin: support chunked-object encoding
240  - bulk-checkin: allow the same data to be multiply hashed
241  - new representation types in the packstream
242  - varint-in-pack: refactor varint encoding/decoding
243  (this branch uses jc/stream-to-pack.)
245 Not ready.
247 * jh/fast-import-notes (2011-11-28) 3 commits
248  - fast-import: Fix incorrect fanout level when modifying existing notes refs
249  - t9301: Add 2nd testcase exposing bugs in fast-import's notes fanout handling
250  - t9301: Fix testcase covering up a bug in fast-import's notes fanout handling
252 Will merge to 'next'.
254 * ld/p4-labels-branches (2011-11-30) 4 commits
255  - git-p4: importing labels should cope with missing owner
256  - git-p4: add test for p4 labels
257  - git-p4: cope with labels with empty descriptions
258  - git-p4: handle p4 branches and labels containing shell chars
260 I understand this has been retracted---please correct me otherwise.
261 Will discard, expecting a reroll.
263 * tj/maint-imap-send-remove-unused (2011-11-23) 2 commits
264  - Merge branch 'maint' into tj/imap-send-remove-unused
265  - imap-send: Remove unused 'use_namespace' variable
267 Will merge to 'next'.
269 * cn/maint-lf-to-crlf-filter (2011-11-28) 1 commit
270  - convert: track state in LF-to-CRLF filter
272 Will merge to 'next' after taking another look.
274 * jn/branch-move-to-self (2011-11-28) 2 commits
275  - Allow checkout -B <current-branch> to update the current branch
276  - branch: allow a no-op "branch -M <current-branch> HEAD"
278 Will merge to 'next' after taking another look.
280 * jk/credentials (2011-11-28) 20 commits
281  - fixup! 034c066e
282  - compat/getpass: add a /dev/tty implementation
283  - credential: use git_prompt instead of git_getpass
284  - prompt: add PROMPT_ECHO flag
285  - stub out getpass_echo function
286  - refactor git_getpass into generic prompt function
287  - move git_getpass to its own source file
288  - t: add test harness for external credential helpers
289  - credentials: add "store" helper
290  - strbuf: add strbuf_add*_urlencode
291  - credentials: add "cache" helper
292  - docs: end-user documentation for the credential subsystem
293  - credential: make relevance of http path configurable
294  - credential: add credential.*.username
295  - credential: apply helper config
296  - http: use credential API to get passwords
297  - credential: add function for parsing url components
298  - introduce credentials API
299  - t5550: fix typo
300  - test-lib: add test_config_global variant
302 Expecting a reroll?
304 * nd/ignore-might-be-precious (2011-11-28) 2 commits
305  - checkout,merge: disallow overwriting ignored files with --no-overwrite-ignore
306  - Merge branch 'nd/maint-ignore-exclude' into nd/ignore-might-be-precious
308 Will merge to 'next' after taking another look.
310 * jk/upload-archive-use-start-command (2011-11-21) 1 commit
311  - upload-archive: use start_command instead of fork
313 What's the status of this one?
315 * jk/maint-1.6.2-upload-archive (2011-11-21) 1 commit
316  - archive: don't let remote clients get unreachable commits
317  (this branch is used by jk/maint-upload-archive.)
319 * jk/maint-upload-archive (2011-11-21) 1 commit
320  - Merge branch 'jk/maint-1.6.2-upload-archive' into jk/maint-upload-archive
321  (this branch uses jk/maint-1.6.2-upload-archive.)
323 Will merge to 'next' after taking another look.
325 * ab/enable-i18n (2011-12-05) 2 commits
326  - Makefile: Add missing "sparse object" to gettext target-specific rule
327  - i18n: add infrastructure for translating Git with gettext
329 Will merge to 'next' after squashing the two and re-sending to the list
330 for review comments.
332 * nd/resolve-ref (2011-12-05) 2 commits
333   (merged to 'next' on 2011-12-05 at cc79e86)
334  + Copy resolve_ref() return value for longer use
335  + Convert many resolve_ref() calls to read_ref*() and ref_exists()
337 Will merge to 'master'.
339 * jc/signed-commit (2011-11-29) 5 commits
340  - gpg-interface: allow use of a custom GPG binary
341  - pretty: %G[?GS] placeholders
342  - test "commit -S" and "log --show-signature"
343  - log: --show-signature
344  - commit: teach --gpg-sign option
345  (this branch uses jc/pull-signed-tag; is tangled with jc/commit-tree-extra.)
347 Not exactly urgent.
348 Will concentrate on getting jc/pull-signed-tag in first.
350 * jc/pull-signed-tag (2011-11-12) 15 commits
351   (merged to 'next' on 2011-11-14 at 25e8838)
352  + commit-tree: teach -m/-F options to read logs from elsewhere
353  + commit-tree: update the command line parsing
354  + commit: teach --amend to carry forward extra headers
355  + merge: force edit and no-ff mode when merging a tag object
356  + commit: copy merged signed tags to headers of merge commit
357  + merge: record tag objects without peeling in MERGE_HEAD
358  + merge: make usage of commit->util more extensible
359  + fmt-merge-msg: Add contents of merged tag in the merge message
360  + fmt-merge-msg: package options into a structure
361  + fmt-merge-msg: avoid early returns
362  + refs DWIMmery: use the same rule for both "git fetch" and others
363  + fetch: allow "git fetch $there v1.0" to fetch a tag
364  + merge: notice local merging of tags and keep it unwrapped
365  + fetch: do not store peeled tag object names in FETCH_HEAD
366  + Split GPG interface into its own helper library
367  (this branch is used by jc/commit-tree-extra and jc/signed-commit.)
369 Allow pulling/merging a signed tag instead of a branch tip, and record
370 the GPG signature in the merge commit for later audit.
372 Will merge to 'master'.
374 * jc/request-pull-show-head-4 (2011-11-09) 12 commits
375   (merged to 'next' on 2011-11-13 at e473fd2)
376  + request-pull: use the annotated tag contents
377   (merged to 'next' on 2011-10-15 at 7e340ff)
378  + fmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error
379   (merged to 'next' on 2011-10-10 at 092175e)
380  + environment.c: Fix an sparse "symbol not declared" warning
381  + builtin/log.c: Fix an "Using plain integer as NULL pointer" warning
382   (merged to 'next' on 2011-10-07 at fcaeca0)
383  + fmt-merge-msg: use branch.$name.description
384   (merged to 'next' on 2011-10-06 at fa5e0fe)
385  + request-pull: use the branch description
386  + request-pull: state what commit to expect
387  + request-pull: modernize style
388  + branch: teach --edit-description option
389  + format-patch: use branch description in cover letter
390  + branch: add read_branch_desc() helper function
391  + Merge branch 'bk/ancestry-path' into jc/branch-desc
393 Allow setting "description" for branches and use it to help communications
394 between humans in various workflow elements. It also allows requesting for
395 a signed tag to be pulled and shows the tag message in the generated message.
397 Will merge to 'master'.
399 * ab/pull-rebase-config (2011-11-07) 1 commit
400   (merged to 'next' on 2011-11-13 at 72bb2d5)
401  + pull: introduce a pull.rebase option to enable --rebase
403 Will merge to 'master'.
405 * jc/stream-to-pack (2011-12-01) 5 commits
406  - bulk-checkin: replace fast-import based implementation
407  - csum-file: introduce sha1file_checkpoint
408  - finish_tmp_packfile(): a helper function
409  - create_tmp_packfile(): a helper function
410  - write_pack_header(): a helper function
411  (this branch is used by jc/split-blob.)
413 Teaches "git add" to send large-ish blob data straight to a packfile.
414 This is a continuation to the "large file support" topic. The codepath to
415 move data from worktree to repository is made aware of streaming, just
416 like the checkout codepath that goes the other way, which was done in the
417 previous "large file support" topic in the 1.7.7 cycle.
419 Will merge to 'next'.
421 * jn/gitweb-side-by-side-diff (2011-10-31) 8 commits
422  - gitweb: Add navigation to select side-by-side diff
423  - gitweb: Use href(-replay=>1,...) for formats links in "commitdiff"
424  - t9500: Add basic sanity tests for side-by-side diff in gitweb
425  - t9500: Add test for handling incomplete lines in diff by gitweb
426  - gitweb: Give side-by-side diff extra CSS styling
427  - gitweb: Add a feature to show side-by-side diff
428  - gitweb: Extract formatting of diff chunk header
429  - gitweb: Refactor diff body line classification
431 Replaces a series from Kato Kazuyoshi on the same topic.
432 Is this ready for 'next'?
434 * rs/allocate-cache-entry-individually (2011-10-26) 2 commits
435   (merged to 'next' on 2011-10-27 at 2e4acd6)
436  + cache.h: put single NUL at end of struct cache_entry
437  + read-cache.c: allocate index entries individually
439 Will merge to 'master'.
441 * rr/revert-cherry-pick (2011-10-23) 5 commits
442   (merged to 'next' on 2011-10-26 at 27b7496)
443  + revert: simplify communicating command-line arguments
444  + revert: allow mixed pick and revert instructions
445  + revert: make commit subjects in insn sheet optional
446  + revert: simplify getting commit subject in format_todo()
447  + revert: free msg in format_todo()
449 The internals of "git revert/cherry-pick" has been further refactored to
450 serve as the basis for the sequencer.
452 Is this ready for 'master', or should we eject it to 'pu', expecing a
453 re-roll?
455 * mh/ref-api-2 (2011-11-16) 15 commits
456   (merged to 'next' on 2011-11-16 at 511457f)
457  + refs: loosen over-strict "format" check
458   (merged to 'next' on 2011-10-19 at cc89f0e)
459  + resolve_gitlink_ref_recursive(): change to work with struct ref_cache
460  + Pass a (ref_cache *) to the resolve_gitlink_*() helper functions
461  + resolve_gitlink_ref(): improve docstring
462  + get_ref_dir(): change signature
463  + refs: change signatures of get_packed_refs() and get_loose_refs()
464  + is_dup_ref(): extract function from sort_ref_array()
465  + add_ref(): add docstring
466  + parse_ref_line(): add docstring
467  + is_refname_available(): remove the "quiet" argument
468  + clear_ref_array(): rename from free_ref_array()
469  + refs: rename parameters result -> sha1
470  + refs: rename "refname" variables
471  + struct ref_entry: document name member
472  + cache.h: add comments for git_path() and git_path_submodule()
473  (this branch is tangled with mh/ref-api-3.)
475 Expecting a re-roll; will eject from 'pu' so that the topic can lose the
476 hot-fix at the tip.
478 * mh/ref-api-3 (2011-11-16) 26 commits
479   (merged to 'next' on 2011-11-16 at cc76151)
480  + refs: loosen over-strict "format" check
481   (merged to 'next' on 2011-10-23 at 92e2d35)
482  + is_refname_available(): reimplement using do_for_each_ref_in_array()
483  + names_conflict(): simplify implementation
484  + names_conflict(): new function, extracted from is_refname_available()
485  + repack_without_ref(): reimplement using do_for_each_ref_in_array()
486  + do_for_each_ref_in_array(): new function
487  + do_for_each_ref(): correctly terminate while processesing extra_refs
488  + add_ref(): take a (struct ref_entry *) parameter
489  + create_ref_entry(): extract function from add_ref()
490  + parse_ref_line(): add a check that the refname is properly formatted
491  + repack_without_ref(): remove temporary
492  + Rename another local variable name -> refname
493   (merged to 'next' on 2011-10-19 at cc89f0e)
494  + resolve_gitlink_ref_recursive(): change to work with struct ref_cache
495  + Pass a (ref_cache *) to the resolve_gitlink_*() helper functions
496  + resolve_gitlink_ref(): improve docstring
497  + get_ref_dir(): change signature
498  + refs: change signatures of get_packed_refs() and get_loose_refs()
499  + is_dup_ref(): extract function from sort_ref_array()
500  + add_ref(): add docstring
501  + parse_ref_line(): add docstring
502  + is_refname_available(): remove the "quiet" argument
503  + clear_ref_array(): rename from free_ref_array()
504  + refs: rename parameters result -> sha1
505  + refs: rename "refname" variables
506  + struct ref_entry: document name member
507  + cache.h: add comments for git_path() and git_path_submodule()
508  (this branch is tangled with mh/ref-api-2.)
510 Expecting a re-roll; will eject from 'pu' so that the topioc can lose the
511 hot-fix at the tip.