What's cooking
[git/dscho.git] / whats / cooking / 2009 / 11 / 01.txt
blobcbb3270e175cf9a1210c00f9c3ae2087990e7c3e
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Nov 2009, #01; Wed, 04)
3 X-master-at: 1b52ac5935c3773596fa41f6cf83578ab86b6b83
4 X-next-at: 13162391f0c3d2cbb810fc00a877496042919b10
6 What's cooking in git.git (Nov 2009, #01; Wed, 04)
7 --------------------------------------------------
9 Here are the topics that have been cooking.  Commits prefixed with '-' are
10 only in 'pu' while commits prefixed with '+' are in 'next'.  The ones
11 marked with '.' do not appear in any of the integration branches, but I am
12 still holding onto them.
14 In 1.7.0, we plan to correct handful of warts in the interfaces everybody
15 agrees that they were mistakes.  The resulting system may not be strictly
16 backward compatible.  Currently planeed changes are:
18  * refuse push to update the checked out branch in a non-bare repo by
19    default
21    Make "git push" into a repository to update the branch that is checked
22    out fail by default.  You can countermand this default by setting a
23    configuration variable in the receiving repository.
25    http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
27  * refuse push to delete the current branch by default
29    Make "git push $there :$killed" to delete the branch that is pointed at
30    by its HEAD fail by default.  You can countermand this default by
31    setting a configuration variable in the receiving repository.
33    http://thread.gmane.org/gmane.comp.version-control.git/108862/focus=108936
35  * git-send-email won't make deep threads by default
37    Many people said that by default when sending more than 2 patches the
38    threading git-send-email makes by default is hard to read, and they
39    prefer the default be one cover letter and each patch as a direct
40    follow-up to the cover letter.  You can countermand this by setting a
41    configuration variable.
43    http://article.gmane.org/gmane.comp.version-control.git/109790
45  * git-status won't be "git-commit --dry-run" anymore
47    http://thread.gmane.org/gmane.comp.version-control.git/125989/focus=125993
49  * "git-diff -w --exit-code" will exit success if only differences it
50    found are whitespace changes that are stripped away from the output.
52    http://thread.gmane.org/gmane.comp.version-control.git/119731/focus=119751
54 --------------------------------------------------
55 [New Topics]
57 * bw/autoconf-more (2009-11-04) 2 commits
58  - configure: add settings for gitconfig, editor and pager
59  - configure: add macro to set arbitrary make variables
61 * em/commit-claim (2009-11-04) 1 commit
62  - commit -c/-C/--amend: reset timestamp and authorship to committer with --reset-author
64 I just picked better bits from both versions.
66 * jk/maint-format-patch-p-suppress-stat (2009-11-04) 2 commits.
67  - format-patch: make "-p" suppress diffstat
68  - Revert "format-patch -p is now a no-op" series
69  (this branch uses bg/format-patch-p-noop.)
71 This corrects a mistake made soon after 1.6.0.
73 * rj/maint-simplify-cygwin-makefile (2009-10-27) 1 commit.
74  - Makefile: merge two Cygwin configuration sections into one
76 This is one of the most obviously correct bit from "Compiling on Cygwin
77 using MSVC fails" topic I didn't really look at.  If J6t is Ok with the
78 series, I don't mind queueing the whole thing myself.
80 * vl/maint-openssl-signature-change (2009-10-31) 1 commit.
81   (merged to 'next' on 2009-10-31 at 0e1ce6b)
82  + imap-send.c: fix compiler warnings for OpenSSL 1.0
84 Prepare ourselves before newer versions of OpenSSL hits more platforms.
86 --------------------------------------------------
87 [Stalled]
89 * tr/filter-branch (2009-10-28) 2 commits.
90  - filter-branch: nearest-ancestor rewriting outside subdir filter
91  - filter-branch: stop special-casing $filter_subdir argument
93 J6t had some comments on this.
95 * ne/rev-cache (2009-10-19) 7 commits.
96  - support for commit grafts, slight change to general mechanism
97  - support for path name caching in rev-cache
98  - full integration of rev-cache into git, completed test suite
99  - administrative functions for rev-cache, start of integration into git
100  - support for non-commit object caching in rev-cache
101  - basic revision cache system, no integration or features
102  - man page and technical discussion for rev-cache
104 The author indicated that there is another round coming.  Does not seem to
105 pass the tests when merged to 'pu'.
107 * jl/submodule-add-noname (2009-09-22) 1 commit.
108  - git submodule add: make the <path> parameter optional
110 Dscho started an interesting discussion regarding the larger workflow in
111 which the "submodule add" is used.  I think the patch itself makes sense
112 but at the same time it probably makes sense to also take the <path> and
113 infer the <repository> as Dscho suggested, probably in "git submodule
114 add", not in "git add" proper, at least initially.
116 * sr/gfi-options (2009-09-06) 6 commits.
117  - fast-import: test the new option command
118  - fast-import: add option command
119  - fast-import: test the new feature command
120  - fast-import: add feature command
121  - fast-import: put marks reading in it's own function
122  - fast-import: put option parsing code in separate functions
124 Seems to be moving again soon.
126 * je/send-email-no-subject (2009-08-05) 1 commit.
127   (merged to 'next' on 2009-10-11 at 1b99c56)
128  + send-email: confirm on empty mail subjects
130 The existing tests cover the positive case (i.e. as long as the user says
131 "yes" to the "do you really want to send this message that lacks subject",
132 the message is sent) of this feature, but the feature itself needs its own
133 test to verify the negative case (i.e. does it correctly stop if the user
134 says "no"?)
136 --------------------------------------------------
137 [Cooking]
139 * bg/merge-ff-only (2009-10-29) 1 commit
140   (merged to 'next' on 2009-10-31 at b6b49aa)
141  + Teach 'git merge' and 'git pull' the option --ff-only
143 * jk/maint-1.6.3-ls-files-i (2009-10-30) 1 commit.
144   (merged to 'next' on 2009-10-31 at 3a31fcc)
145  + ls-files: unbreak "ls-files -i"
147 * jn/editor-pager (2009-10-30) 8 commits
148  - Provide a build time default-pager setting
149  - Provide a build time default-editor setting
150  - am -i, git-svn: use "git var GIT_PAGER"
151  - add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR"
152  - Teach git var about GIT_PAGER
153  - Teach git var about GIT_EDITOR
154  - Do not use VISUAL editor on dumb terminals
155  - Handle more shell metacharacters in editor names
157 * js/maint-diff-color-words (2009-10-30) 3 commits.
158  - diff --color-words: bit of clean-up
159  - diff --color-words -U0: fix the location of hunk headers
160  - t4034-diff-words: add a test for word diff without context
162 Fixes a corner case of running --color-words with -U0.
164 * sc/difftool-p4merge (2009-10-28) 1 commit
165   (merged to 'next' on 2009-10-31 at 194b5c5)
166  + mergetool--lib: add p4merge as a pre-configured mergetool option
168 * sc/protocol-doc (2009-10-29) 1 commit
169  - Update packfile transfer protocol documentation
171 There is the final draft posted, but I haven't picked it up yet.
173 * sr/vcs-helper (2009-11-04) 13 commits
174  - Add Python support library for remote helpers
175  - Basic build infrastructure for Python scripts
176  - Allow helpers to request the path to the .git directory
177  - Allow helpers to report in "list" command that the ref is unchanged
178  - Honour the refspec when updating refs after import
179  - Write local refs written by the "import" helper command only once
180  - Add support for "import" helper command
181  - Allow specifying the remote helper in the url
182  - Add a config option for remotes to specify a foreign vcs
183  - Allow fetch to modify refs
184  - Use a function to determine whether a remote is valid
185  - Allow programs to not depend on remotes having urls
186  - Fix memory leak in helper method for disconnect
188 Supposed to replace db/vcs-helper-rest.  Still does not pass tests in
189 'pu'.
191 * tr/describe-advice (2009-10-28) 1 commit
192   (merged to 'next' on 2009-10-31 at 8084850)
193  + describe: when failing, tell the user about options that work
195 * mr/gitweb-snapshot (2009-10-29) 3 commits.
196  - gitweb: Smarter snapshot names
197  - t/gitweb-lib.sh: Split gitweb output into headers and body
198   (merged to 'next' on 2009-10-11 at 22ba047)
199  + gitweb: check given hash before trying to create snapshot
201 Replaced the tip with Jakub's updates.
203 * jp/dirty-describe (2009-10-21) 1 commit.
204   (merged to 'next' on 2009-10-30 at 19c7fc7)
205  + Teach "git describe" --dirty option
207 * jp/fetch-cull-many-refs (2009-10-25) 2 commits
208   (merged to 'next' on 2009-11-01 at 1f09ce9)
209  + fetch: Speed up fetch of large numbers of refs
210  + remote: Make ref_remove_duplicates faster for large numbers of refs
212 * bg/format-patch-p-noop (2009-10-25) 3 commits.
213   (merged to 'next' on 2009-10-30 at e34a3db)
214  + format-patch documentation: Fix formatting
215  + format-patch documentation: Remove diff options that are not useful
216  + format-patch: Make implementation and documentation agree
217  (this branch is used by jk/maint-format-patch-p-suppress-stat.)
219 Will revert from 'next' by merging Peff's fix.
221 * jk/gitignore-anchored (2009-10-26) 1 commit
222   (merged to 'next' on 2009-10-30 at 9391a93)
223  + gitignore: root most patterns at the top-level directory
225 * jk/maint-add-p-empty (2009-10-27) 1 commit.
226   (merged to 'next' on 2009-10-30 at 2bd302f)
227  + add-interactive: handle deletion of empty files
229 * jk/maint-push-config (2009-10-25) 1 commit.
230   (merged to 'next' on 2009-10-30 at 934e3c5)
231  + push: always load default config
233 * lt/revision-bisect (2009-10-27) 1 commit.
234   (merged to 'next' on 2009-10-30 at 81ee52b)
235  + Add '--bisect' revision machinery argument
237 * jc/pretty-lf (2009-10-04) 1 commit.
238  - Pretty-format: %[+-]x to tweak inter-item newlines
240 * rs/pretty-wrap (2009-10-17) 1 commit
241   (merged to 'next' on 2009-10-30 at 403bbfe)
242  + Implement wrap format %w() as if it is a mode switch
243  (this branch uses js/log-rewrap.)
245 * js/log-rewrap (2009-10-18) 3 commits
246   (merged to 'next' on 2009-10-30 at 403bbfe)
247  + Teach --wrap to only indent without wrapping
248  + Add strbuf_add_wrapped_text() to utf8.[ch]
249  + print_wrapped_text(): allow hard newlines
250  (this branch is used by rs/pretty-wrap.)
252 * sr/blame-incomplete (2009-10-19) 1 commit.
253   (merged to 'next' on 2009-10-22 at 133e0ce)
254  + blame: make sure that the last line ends in an LF
256 I think this is _good enough_ as-is; although it would be better if we
257 added some hint to the output for Porcelain implementations, that can be
258 done as a follow-up fix.
260 * fc/doc-fast-forward (2009-10-24) 1 commit.
261   (merged to 'next' on 2009-11-01 at faaad90)
262  + Use 'fast-forward' all over the place
264 * ks/precompute-completion (2009-10-26) 3 commits.
265   (merged to 'next' on 2009-10-28 at cd5177f)
266  + completion: ignore custom merge strategies when pre-generating
267   (merged to 'next' on 2009-10-22 at f46a28a)
268  + bug: precomputed completion includes scripts sources
269   (merged to 'next' on 2009-10-14 at adf722a)
270  + Speedup bash completion loading
272 * sp/smart-http (2009-11-04) 30 commits
273  - http-backend: Test configuration options
274  - http-backend: Use http.getanyfile to disable dumb HTTP serving
275  - test smart http fetch and push
276  - http tests: use /dumb/ URL prefix
277  - set httpd port before sourcing lib-httpd
278  - t5540-http-push: remove redundant fetches
279  - Smart HTTP fetch: gzip requests
280  - Smart fetch over HTTP: client side
281  - Smart push over HTTP: client side
282  - Discover refs via smart HTTP server when available
283  - http-backend: more explict LocationMatch
284  - http-backend: add example for gitweb on same URL
285  - http-backend: use mod_alias instead of mod_rewrite
286  - http-backend: reword some documentation
287  - http-backend: add GIT_PROJECT_ROOT environment var
288  - Smart fetch and push over HTTP: server side
289  - Add stateless RPC options to upload-pack, receive-pack
290  - Git-aware CGI to provide dumb HTTP transport
291  - remote-helpers: return successfully if everything up-to-date
292  - Move WebDAV HTTP push under remote-curl
293  - remote-helpers: Support custom transport options
294  - remote-helpers: Fetch more than one ref in a batch
295  - fetch: Allow transport -v -v -v to set verbosity to 3
296  - remote-curl: Refactor walker initialization
297  - Add multi_ack_detailed capability to fetch-pack/upload-pack
298  - Move "get_ack()" back to fetch-pack
299  - fetch-pack: Use a strbuf to compose the want list
300  - pkt-line: Make packet_read_line easier to debug
301  - pkt-line: Add strbuf based functions
302  - http-push: fix check condition on http.c::finish_http_pack_request()
304 v5 plus 3 more fix-up patches from today.
306 * ef/msys-imap (2009-10-22) 9 commits.
307   (merged to 'next' on 2009-10-31 at 8630603)
308  + Windows: use BLK_SHA1 again
309  + MSVC: Enable OpenSSL, and translate -lcrypto
310  + mingw: enable OpenSSL
311  + mingw: wrap SSL_set_(w|r)fd to call _get_osfhandle
312  + imap-send: build imap-send on Windows
313  + imap-send: fix compilation-error on Windows
314  + imap-send: use run-command API for tunneling
315  + imap-send: use separate read and write fds
316  + imap-send: remove useless uid code
318 * jc/fix-tree-walk (2009-10-22) 11 commits.
319   (merged to 'next' on 2009-10-22 at 10c0c8f)
320  + Revert failed attempt since 353c5ee
321  + read-tree --debug-unpack
322   (merged to 'next' on 2009-10-11 at 0b058e2)
323  + unpack-trees.c: look ahead in the index
324  + unpack-trees.c: prepare for looking ahead in the index
325  + Aggressive three-way merge: fix D/F case
326  + traverse_trees(): handle D/F conflict case sanely
327  + more D/F conflict tests
328  + tests: move convenience regexp to match object names to test-lib.sh
329  + unpack_callback(): use unpack_failed() consistently
330  + unpack-trees: typofix
331  + diff-lib.c: fix misleading comments on oneway_diff()
333 This has some stupid bugs and temporarily reverted from 'next' until I can
334 fix it, but the "temporarily" turned out to be very loooong.  Sigh...
336 * jh/notes (2009-10-09) 22 commits.
337  - fast-import: Proper notes tree manipulation using the notes API
338  - Refactor notes concatenation into a flexible interface for combining notes
339  - Notes API: Allow multiple concurrent notes trees with new struct notes_tree
340  - Notes API: for_each_note(): Traverse the entire notes tree with a callback
341  - Notes API: get_note(): Return the note annotating the given object
342  - Notes API: add_note(): Add note objects to the internal notes tree structure
343  - Notes API: init_notes(): Initialize the notes tree from the given notes ref
344  - Notes API: get_commit_notes() -> format_note() + remove the commit restriction
345   (merged to 'next' on 2009-11-01 at 948327a)
346  + Add selftests verifying concatenation of multiple notes for the same commit
347  + Refactor notes code to concatenate multiple notes annotating the same object
348  + Add selftests verifying that we can parse notes trees with various fanouts
349  + Teach the notes lookup code to parse notes trees with various fanout schemes
350  + Teach notes code to free its internal data structures on request
351  + Add '%N'-format for pretty-printing commit notes
352  + Add flags to get_commit_notes() to control the format of the note string
353  + t3302-notes-index-expensive: Speed up create_repo()
354  + fast-import: Add support for importing commit notes
355  + Teach "-m <msg>" and "-F <file>" to "git notes edit"
356  + Add an expensive test for git-notes
357  + Speed up git notes lookup
358  + Add a script to edit/inspect notes
359  + Introduce commit notes
361 * jn/gitweb-blame (2009-09-01) 5 commits.
362  - gitweb: Minify gitweb.js if JSMIN is defined
363  - gitweb: Create links leading to 'blame_incremental' using JavaScript
364   (merged to 'next' on 2009-10-11 at 73c4a83)
365  + gitweb: Colorize 'blame_incremental' view during processing
366  + gitweb: Incremental blame (using JavaScript)
367  + gitweb: Add optional "time to generate page" info in footer
369 Ajax-y blame.
371 * nd/sparse (2009-08-20) 19 commits.
372  - sparse checkout: inhibit empty worktree
373  - Add tests for sparse checkout
374  - read-tree: add --no-sparse-checkout to disable sparse checkout support
375  - unpack-trees(): ignore worktree check outside checkout area
376  - unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
377  - unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
378  - unpack-trees.c: generalize verify_* functions
379  - unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
380  - Introduce "sparse checkout"
381  - dir.c: export excluded_1() and add_excludes_from_file_1()
382  - excluded_1(): support exclude files in index
383  - unpack-trees(): carry skip-worktree bit over in merged_entry()
384  - Read .gitignore from index if it is skip-worktree
385  - Avoid writing to buffer in add_excludes_from_file_1()
386  - Teach Git to respect skip-worktree bit (writing part)
387  - Teach Git to respect skip-worktree bit (reading part)
388  - Introduce "skip-worktree" bit in index, teach Git to get/set this bit
389  - Add test-index-version
390  - update-index: refactor mark_valid() in preparation for new options
392 --------------------------------------------------
393 [For 1.7.0]
395 * jc/1.7.0-no-commit-no-ff-2 (2009-10-22) 1 commit.
396  - git-merge: forbid fast-forward and up-to-date when --no-commit is given
398 This makes "git merge --no-commit" fail when it results in fast-forward or
399 up-to-date.  I haven't described this at the beginning of this message
400 yet, as it is not clear if this change is even necessary.  Opinions?
402 * jk/1.7.0-status (2009-09-05) 5 commits.
403  - docs: note that status configuration affects only long format
404   (merged to 'next' on 2009-10-11 at 65c8513)
405  + commit: support alternate status formats
406  + status: add --porcelain output format
407  + status: refactor format option parsing
408  + status: refactor short-mode printing to its own function
409  (this branch uses jc/1.7.0-status.)
411 Gives the --short output format to post 1.7.0 "git commit --dry-run" that
412 is similar to that of post 1.7.0 "git status".
414 The tip one is not in 'next' as I have been hoping that somebody may want
415 to change the code to make it unnecessary, but it does not seem to be
416 happening, so probably it should also go to 'next'.
418 * jc/1.7.0-status (2009-09-05) 4 commits.
419   (merged to 'next' on 2009-10-11 at 9558627)
420  + status: typo fix in usage
421  + git status: not "commit --dry-run" anymore
422  + git stat -s: short status output
423  + git stat: the beginning of "status that is not a dry-run of commit"
424  (this branch is used by jk/1.7.0-status.)
426 With this, "git status" is no longer "git commit --dry-run".
428 * jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit.
429   (merged to 'next' on 2009-10-11 at 043acdf)
430  + send-email: make --no-chain-reply-to the default
432 * jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
433   (merged to 'next' on 2009-10-11 at 546c74d)
434  + diff.c: fix typoes in comments
435  + Make test case number unique
436  + diff: Rename QUIET internal option to QUICK
437  + diff: change semantics of "ignore whitespace" options
439 This changes exit code from "git diff --ignore-whitespace" and friends
440 when there is no actual output.  It is a backward incompatible change, but
441 we could argue that it is a bugfix.
443 * jc/1.7.0-push-safety (2009-02-09) 2 commits.
444   (merged to 'next' on 2009-10-11 at 81b8128)
445  + Refuse deleting the current branch via push
446  + Refuse updating the current branch in a non-bare repository via push
448 --------------------------------------------------
449 [I have been too busy to purge these]
451 * jc/log-tz (2009-03-03) 1 commit.
452  - Allow --date=local --date=other-format to work as expected
454 Maybe some people care about this.  I dunno.
456 * jc/mailinfo-remove-brackets (2009-07-15) 1 commit.
457  - mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
459 Maybe some people care about this.  I dunno.
461 * jg/log-format-body-indent (2009-09-19) 1 commit.
462  . git-log --format: Add %B tag with %B(x) option