What's cooking (2011/11 #02)
[alt-git.git] / whats-cooking.txt
blob14d1fe6385a09b5ba333e265d11b6a4c13593b0c
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Nov 2011, #02; Sun, 6)
3 X-master-at: ee6dfb2d83ba1b057943e705f707fa27e34e47f9
4 X-next-at: a49516f7bc4c2895be5b0abffee87963c65486fa
6 What's cooking in git.git (Nov 2011, #02; Sun, 6)
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 'next'.
12 Here are the repositories that have my integration branches:
14 With maint, master, next, pu, todo:
16         git://git.kernel.org/pub/scm/git/git.git
17         git://repo.or.cz/alt-git.git
18         https://code.google.com/p/git-core/
19         https://github.com/git/git
21 With only maint and master:
23         git://git.sourceforge.jp/gitroot/git-core/git.git
24         git://git-core.git.sourceforge.net/gitroot/git-core/git-core
26 With all the topics and integration branches but not todo, html or man:
28         https://github.com/gitster/git
30 I will stop pushing the generated documentation branches to the above
31 repositories, as they are not sources. The only reason the source
32 repository at k.org has hosted these branches was because it was the only
33 repository over there that was writable by me; it was an ugly historical
34 and administrative workaround and not a demonstration of the best
35 practice.
37 These branches are pushed to their own separate repositories instead:
39         git://git.kernel.org/pub/scm/git/git-{htmldocs,manpages}.git/
40         git://repo.or.cz/git-{htmldocs,manpages}.git/
41         https://code.google.com/p/git-{htmldocs,manpages}.git/
42         https://github.com/gitster/git-{htmldocs,manpages}.git/
44 --------------------------------------------------
45 [New Topics]
47 * jc/pull-signed-tag (2011-11-04) 10 commits
48  - merge: force edit mode when merging a tag object
49  - fmt-merge-msg: Add contents of merged tag in the merge message
50  - fmt-merge-msg: package options into a structure
51  - fmt-merge-msg: avoid early returns
52  - refs DWIMmery: use the same rule for both "git fetch" and others
53  - tests: distinguish merges of tags and commits
54  - fetch: allow "git fetch $there v1.0" to fetch a tag
55  - merge: notice local merging of tags and keep it unwrapped
56  - fetch: do not store peeled tag object names in FETCH_HEAD
57  - Split GPG interface into its own helper library
59 Fourth round but needs further updates.
60 Will keep in 'pu' for now.
62 * sn/http-auth-with-netrc-fix (2011-11-04) 1 commit
63   (merged to 'next' on 2011-11-06 at 60b7f96)
64  + http: don't always prompt for password
66 Regression fix for the upcoming release.
67 Will merge by 1.7.8 final.
69 * ab/clang-lints (2011-11-06) 2 commits
70  - cast variable in call to free() in builtin/diff.c and submodule.c
71  - apply: get rid of useless x < 0 comparison on a size_t type
73 Not urgent.
75 * ab/i18n-test-fix (2011-11-05) 2 commits
76   (merged to 'next' on 2011-11-06 at f1de9a6)
77  + t/t7508-status.sh: use test_i18ncmp
78  + t/t6030-bisect-porcelain.sh: use test_i18ngrep
80 Will merge by 1.7.8 final.
82 * ab/pull-rebase-config (2011-11-06) 1 commit
83  - pull: introduce a pull.rebase option to enable --rebase
85 Not urgent.
87 * eh/grep-scale-to-cpunum (2011-11-05) 1 commit
88  - grep: detect number of CPUs for thread spawning
90 Kills I/O parallelism and needs to be improved or discarded.
92 * nd/fsck-progress (2011-11-05) 4 commits
93  - fsck: print progress
94  - fsck: avoid reading every object twice
95  - Stop verify_packfile() as soon as an error occurs
96  - fsck: return error code when verify_pack() goes wrong
98 Not urgent.
100 * nd/prune-progress (2011-11-05) 1 commit
101  - prune: show progress while marking reachable objects
103 Not urgent.
105 * pw/p4-appledouble-fix (2011-11-05) 1 commit
106   (merged to 'next' on 2011-11-06 at 2ec0af3)
107  + git-p4: ignore apple filetype
109 Regression fix for the upcoming release.
110 Will merge by 1.7.8 final.
112 * sr/fix-fast-export-tips (2011-11-05) 3 commits
113  - fast-export: output reset command for commandline revs
114  - fast-export: do not refer to non-existing marks
115  - t9350: point out that refs are not updated correctly
117 --------------------------------------------------
118 [Stalled]
120 * hv/submodule-merge-search (2011-10-13) 4 commits
121  - submodule.c: make two functions static
122  - allow multiple calls to submodule merge search for the same path
123  - push: Don't push a repository with unpushed submodules
124  - push: teach --recurse-submodules the on-demand option
126 What the topic aims to achieve may make sense, but the implementation
127 looked somewhat suboptimal.
129 * sr/transport-helper-fix-rfc (2011-07-19) 2 commits
130  - t5800: point out that deleting branches does not work
131  - t5800: document inability to push new branch with old content
133 Perhaps 281eee4 (revision: keep track of the end-user input from the
134 command line, 2011-08-25) would help.
136 * jc/lookup-object-hash (2011-08-11) 6 commits
137  - object hash: replace linear probing with 4-way cuckoo hashing
138  - object hash: we know the table size is a power of two
139  - object hash: next_size() helper for readability
140  - pack-objects --count-only
141  - object.c: remove duplicated code for object hashing
142  - object.c: code movement for readability
144 I do not think there is anything fundamentally wrong with this series, but
145 the risk of breakage far outweighs observed performance gain in one
146 particular workload.
148 * jc/verbose-checkout (2011-10-16) 2 commits
149  - checkout -v: give full status output after switching branches
150  - checkout: move the local changes report to the end
152 This is just to leave a record that the reason why we do not do this not
153 because we are incapable of coding this, but because it is not a good idea
154 to do this. I suspect people who are new to git that might think they need
155 it would soon realize the don't.
157 Will keep in 'pu' as a showcase for a while and then will drop.
159 --------------------------------------------------
160 [Cooking]
162 * jc/stream-to-pack (2011-11-03) 4 commits
163  - Bulk check-in
164  - finish_tmp_packfile(): a helper function
165  - create_tmp_packfile(): a helper function
166  - write_pack_header(): a helper function
168 Teaches "git add" to send large-ish blob data straight to a packfile.
169 This is a continuation to the "large file support" topic. I think this
170 codepath to move data from worktree to repository needs to become aware of
171 streaming, just like the checkout codepath that goes the other way, which
172 was done in the previous "large file support" topic in the 1.7.7 cycle.
174 * jn/gitweb-side-by-side-diff (2011-10-31) 8 commits
175  - gitweb: Add navigation to select side-by-side diff
176  - gitweb: Use href(-replay=>1,...) for formats links in "commitdiff"
177  - t9500: Add basic sanity tests for side-by-side diff in gitweb
178  - t9500: Add test for handling incomplete lines in diff by gitweb
179  - gitweb: Give side-by-side diff extra CSS styling
180  - gitweb: Add a feature to show side-by-side diff
181  - gitweb: Extract formatting of diff chunk header
182  - gitweb: Refactor diff body line classification
184 Replaces a series from Kato Kazuyoshi on the same topic.
186 * vr/msvc (2011-10-31) 3 commits
187  - MSVC: Remove unneeded header stubs
188  - Compile fix for MSVC: Include <io.h>
189  - Compile fix for MSVC: Do not include sys/resources.h
191 It seems this needs to be rehashed with msysgit folks.
193 * mf/curl-select-fdset (2011-11-04) 4 commits
194   (merged to 'next' on 2011-11-06 at a49516f)
195  + http: drop "local" member from request struct
196  + http.c: Rely on select instead of tracking whether data was received
197  + http.c: Use timeout suggested by curl instead of fixed 50ms timeout
198  + http.c: Use curl_multi_fdset to select on curl fds instead of just sleeping
200 Reduces unnecessary waits.
202 * na/strtoimax (2011-11-05) 3 commits
203  - Support sizes >=2G in various config options accepting 'g' sizes.
204  - Compatibility: declare strtoimax() under NO_STRTOUMAX
205  - Add strtoimax() compatibility function.
207 * nd/misc-cleanups (2011-10-27) 6 commits
208   (merged to 'next' on 2011-10-28 at 2527a49)
209  + unpack_object_header_buffer(): clear the size field upon error
210  + tree_entry_interesting: make use of local pointer "item"
211  + tree_entry_interesting(): give meaningful names to return values
212  + read_directory_recursive: reduce one indentation level
213  + get_tree_entry(): do not call find_tree_entry() on an empty tree
214  + tree-walk.c: do not leak internal structure in tree_entry_len()
216 These are unquestionably good parts taken out of a larger series, so that
217 we can focus more on the other changes in later rounds of review.
219 Will keep in 'next' during this cycle.
221 * rs/allocate-cache-entry-individually (2011-10-26) 2 commits
222   (merged to 'next' on 2011-10-27 at 2e4acd6)
223  + cache.h: put single NUL at end of struct cache_entry
224  + read-cache.c: allocate index entries individually
226 Will keep in 'next' during this cycle.
228 * mh/ref-api-3 (2011-10-19) 11 commits
229   (merged to 'next' on 2011-10-23 at 92e2d35)
230  + is_refname_available(): reimplement using do_for_each_ref_in_array()
231  + names_conflict(): simplify implementation
232  + names_conflict(): new function, extracted from is_refname_available()
233  + repack_without_ref(): reimplement using do_for_each_ref_in_array()
234  + do_for_each_ref_in_array(): new function
235  + do_for_each_ref(): correctly terminate while processesing extra_refs
236  + add_ref(): take a (struct ref_entry *) parameter
237  + create_ref_entry(): extract function from add_ref()
238  + parse_ref_line(): add a check that the refname is properly formatted
239  + repack_without_ref(): remove temporary
240  + Rename another local variable name -> refname
241  (this branch uses mh/ref-api-2.)
243 Will keep in 'next' during this cycle.
245 * rr/revert-cherry-pick (2011-10-23) 5 commits
246   (merged to 'next' on 2011-10-26 at 27b7496)
247  + revert: simplify communicating command-line arguments
248  + revert: allow mixed pick and revert instructions
249  + revert: make commit subjects in insn sheet optional
250  + revert: simplify getting commit subject in format_todo()
251  + revert: free msg in format_todo()
253 The internals of "git revert/cherry-pick" has been further refactored to
254 serve as the basis for the sequencer.
256 Will keep in 'next' during this cycle.
258 * jc/check-ref-format-fixup (2011-10-19) 2 commits
259   (merged to 'next' on 2011-10-19 at 98981be)
260  + Revert "Restrict ref-like names immediately below $GIT_DIR"
261   (merged to 'next' on 2011-10-15 at 8e89bc5)
262  + Restrict ref-like names immediately below $GIT_DIR
264 This became a no-op except for the bottom one which is part of the other
265 topic now.
266 Will discard once the other topic graduates to 'master'.
268 * cb/daemon-permission-errors (2011-10-17) 2 commits
269  - daemon: report permission denied error to clients
270  - daemon: add tests
272 The tip commit might be loosening things a bit too much.
273 Will keep in 'pu' until hearing a convincing argument for the patch.
275 * mh/ref-api-2 (2011-10-17) 14 commits
276   (merged to 'next' on 2011-10-19 at cc89f0e)
277  + resolve_gitlink_ref_recursive(): change to work with struct ref_cache
278  + Pass a (ref_cache *) to the resolve_gitlink_*() helper functions
279  + resolve_gitlink_ref(): improve docstring
280  + get_ref_dir(): change signature
281  + refs: change signatures of get_packed_refs() and get_loose_refs()
282  + is_dup_ref(): extract function from sort_ref_array()
283  + add_ref(): add docstring
284  + parse_ref_line(): add docstring
285  + is_refname_available(): remove the "quiet" argument
286  + clear_ref_array(): rename from free_ref_array()
287  + refs: rename parameters result -> sha1
288  + refs: rename "refname" variables
289  + struct ref_entry: document name member
290  + cache.h: add comments for git_path() and git_path_submodule()
291  (this branch is used by mh/ref-api-3.)
293 Will keep in 'next' during this cycle.
295 * jc/signed-commit (2011-10-21) 7 commits
296   (merged to 'next' on 2011-10-23 at 03eec25)
297  + pretty: %G[?GS] placeholders
298  + parse_signed_commit: really use the entire commit log message
299  + test "commit -S" and "log --show-signature"
300  + t7004: extract generic "GPG testing" bits
301  + log: --show-signature
302  + commit: teach --gpg-sign option
303  + Split GPG interface into its own helper library
305 This is to replace the earlier "signed push" experiments.
306 Will keep in 'next' during this cycle.
308 * sg/complete-refs (2011-10-21) 9 commits
309   (merged to 'next' on 2011-10-26 at d65e2b4)
310  + completion: remove broken dead code from __git_heads() and __git_tags()
311  + completion: fast initial completion for config 'remote.*.fetch' value
312  + completion: improve ls-remote output filtering in __git_refs_remotes()
313  + completion: query only refs/heads/ in __git_refs_remotes()
314  + completion: support full refs from remote repositories
315  + completion: improve ls-remote output filtering in __git_refs()
316  + completion: make refs completion consistent for local and remote repos
317  + completion: optimize refs completion
318  + completion: document __gitcomp()
320 Will keep in 'next' until an Ack or two from completion folks.
322 * jc/request-pull-show-head-4 (2011-10-15) 11 commits
323   (merged to 'next' on 2011-10-15 at 7e340ff)
324  + fmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error
325   (merged to 'next' on 2011-10-10 at 092175e)
326  + environment.c: Fix an sparse "symbol not declared" warning
327  + builtin/log.c: Fix an "Using plain integer as NULL pointer" warning
328   (merged to 'next' on 2011-10-07 at fcaeca0)
329  + fmt-merge-msg: use branch.$name.description
330   (merged to 'next' on 2011-10-06 at fa5e0fe)
331  + request-pull: use the branch description
332  + request-pull: state what commit to expect
333  + request-pull: modernize style
334  + branch: teach --edit-description option
335  + format-patch: use branch description in cover letter
336  + branch: add read_branch_desc() helper function
337  + Merge branch 'bk/ancestry-path' into jc/branch-desc
339 Allow setting "description" for branches and use it to help communications
340 between humans in various workflow elements.
342 Will keep in 'next' during this cycle.
344 --------------------------------------------------
345 [Discarded]
347 * kk/gitweb-side-by-side-diff (2011-10-17) 2 commits
348  . gitweb: add a feature to show side-by-side diff
349  . gitweb: change format_diff_line() to remove leading SP from $diff_class