What's cooking (2009/10 #01)
[git/dscho.git] / whats-cooking.txt
blob172bee0c759d59ef605dca0b9ea43d5f35e60914
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Oct 2009, #01; Wed, 07)
3 X-master-at: 8fd2cfa7accd6b8f877014bf3e4bf8547b8e0d2a
4 X-next-at: df7ac2094d6cd7280e3254a772061a64edac2d37
6 What's cooking in git.git (Oct 2009, #01; Wed, 07)
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 We are in pre-release feature freeze.  'next' will hold topics meant for
55 1.6.6 and 1.7.0.
57 Tonight's tip of 'master' is 1.6.5-rc3.
59 --------------------------------------------------
60 [New Topics]
62 * ch/am-header (2009-09-25) 2 commits
63   (merged to 'next' on 2009-09-25 at f86e197)
64  + git-am: force egrep to use correct characters set
65  + git-am: fixed patch_format detection according to RFC2822
67 * dk/blame-el (2009-09-29) 1 commit
68  - git-blame.el: Change how blame information is shown.
70 * ef/msvc-noreturn (2009-09-30) 2 commits
71   (merged to 'next' on 2009-10-07 at 66137a0)
72  + add NORETURN_PTR for function pointers
73  + increase portability of NORETURN declarations
75 jk: This is the latest round and I think should be ready for at least
76 'next' (maybe even 'master' as it is really about the build and not about
77 functionality).
79 * ef/msys-imap (2009-10-03) 7 commits
80  - mingw: enable OpenSSL
81  - mingw: wrap SSL_set_(w|r)fd to call _get_osfhandle
82  - imap-send: provide fall-back random-source
83  - imap-send: build imap-send on Windows
84  - imap-send: fix compilation-error on Windows
85  - imap-send: use run-command API for tunneling
86  - imap-send: use separate read and write fds
88 jk: This is from an RFC which has generated some comments. He should be
89 posting another round soon. 'pu' at best.
91 * fc/mutt-alias (2009-09-30) 1 commit
92   (merged to 'next' on 2009-10-07 at df7ac20)
93  + send-email: fix mutt regex for grouped aliases
95 jk: Latest round that addressed comments. Ready for 'next' if not
96 'master'.
98 * jk/reflog-date (2009-09-24) 1 commit
99   (merged to 'next' on 2009-09-29 at 43d444a)
100  + improve reflog date/number heuristic
102 * jn/gitweb-patch (2009-09-30) 1 commit
103  - gitweb: Do not show 'patch' link in 'commit' view for merges
105 jk: After some comments with Jakub, I think the code is right but he
106 promised a re-roll with more in the commit message.
108 * mr/gitweb-snapshot (2009-09-26) 2 commits
109  - gitweb: append short hash ids to snapshot files
110  - gitweb: check given hash before trying to create snapshot
112 jk: He posted a v5 of his series. I didn't look at it closely, but Jakub
113 ack'd it.
115 * mr/instaweb-cgid (2009-09-26) 1 commit
116   (merged to 'next' on 2009-09-29 at 3524604)
117  + instaweb: support mod_cgid for apache2
119 * tf/doc-pt-br (2009-09-23) 1 commit
120  - Documentation: update pt-BR
122 The current AsciiDoc may barf on NOME and SINOPSE, as pt_BR language
123 definition is not widely distributed yet (it just hit the development
124 tree).  Need to revert these headings (or change the length of the section
125 underlines to match the length of translated names).
127 * jc/pretty-lf (2009-10-04) 1 commit
128  - Pretty-format: %[+-]x to tweak inter-item newlines
130 I am not happy with this one yet.  I am contemplating to introduce a new
131 syntax "%[magic(param)<anything>%]" to generalize expressions of this and
132 line wrapping features in an extensible way.
134 * js/log-rewrap (2008-11-10) 3 commits
135  . Add "%w" to pretty formats, which rewraps the commit message
136  - Add strbuf_add_wrapped_text() to utf8.[ch]
137  - print_wrapped_text(): allow hard newlines
139 ... and the first two from this series will be useful to implement an
140 example magic "wrap", e.g. "%{wrap(i,j,w)%s%+b%]".
142 * jg/log-format-body-indent (2009-09-19) 1 commit
143  . git-log --format: Add %B tag with %B(x) option
145 I think we should redo this on top of the first two patches from
146 js/log-rewrap series; %B(x) is just a special case %B(x,x,0), no?  If a
147 magic value 0 (or negative) given to wrap-width does not disable wrapping,
148 we probably should make it so.  I merged this to 'pu' but then ejected it
149 because it seems to break at least t6006.
151 * bg/rebase-reword (2009-10-07) 1 commit
152  - Teach 'rebase -i' the command "reword"
154 * js/diff-verbose-submodule (2009-10-04) 1 commit
155  - Add the --submodule-summary option to the diff option family
157 Dscho sounded like he has some corrections after list comments, but I did
158 not pick up his interdiff in the middle.
160 --------------------------------------------------
161 [Stalled]
163 * je/send-email-no-subject (2009-08-05) 1 commit
164   (merged to 'next' on 2009-08-30 at b6455c2)
165  + send-email: confirm on empty mail subjects
167 The existing tests cover the positive case (i.e. as long as the user says
168 "yes" to the "do you really want to send this message that lacks subject",
169 the message is sent) of this feature, but the feature itself needs its own
170 test to verify the negative case (i.e. does it correctly stop if the user
171 says "no"?)
173 * jh/cvs-helper (2009-08-18) 8 commits
174  - More fixes to the git-remote-cvs installation procedure
175  - Fix the Makefile-generated path to the git_remote_cvs package in git-remote-cvs
176  - Add simple selftests of git-remote-cvs functionality
177  - git-remote-cvs: Remote helper program for CVS repositories
178  - 2/2: Add Python support library for CVS remote helper
179  - 1/2: Add Python support library for CVS remote helper
180  - Basic build infrastructure for Python scripts
181  - Allow helpers to request marks for fast-import
182  (this branch uses db/vcs-helper-rest.)
184 Builds on db/vcs-helper.  There is a re-roll planned.
186 * ne/rev-cache (2009-09-07) 7 commits
187  - support for commit grafts, slight change to general mechanism
188  - support for path name caching in rev-cache
189  - full integration of rev-cache into git, completed test suite
190  - administrative functions for rev-cache, start of integration into git
191  - support for non-commit object caching in rev-cache
192  - basic revision cache system, no integration or features
193  - man page and technical discussion for rev-cache
195 I merged this to 'pu' but then ejected it because it seems to break at
196 least t6001.
198 --------------------------------------------------
199 [Cooking]
201 * jl/submodule-add-noname (2009-09-22) 1 commit
202  - git submodule add: make the <path> parameter optional
204 Dscho started an interesting discussion regarding the larger workflow in
205 which the "submodule add" is used.  I think the patch itself makes sense
206 but at the same time it probably makes sense to also take the <path> and
207 infer the <repository> as Dscho suggested, probably in "git submodule
208 add", not in "git add" proper, at least initially.
210 * jc/fix-tree-walk (2009-09-14) 9 commits
211  - read-tree --debug-unpack
212  - unpack-trees.c: look ahead in the index
213  - unpack-trees.c: prepare for looking ahead in the index
214  - traverse_trees(): handle D/F conflict case sanely
215  - more D/F conflict tests
216  - tests: move convenience regexp to match object names to test-lib.sh
217  - unpack_callback(): use unpack_failed() consistently
218  - unpack-trees: typofix
219  - diff-lib.c: fix misleading comments on oneway_diff()
221 This is my replacement for Linus's lt/maint-traverse-trees-fix patch.  It
222 is not so much as a counter-proposal; I originally thought it might make
223 sense to walk the index and drive the walker to return the entries from
224 trees to match entries from the index, but I ended up doing pretty much
225 what Linus outlined --- walk the trees, and have the index walker follow
226 it.  It turned out that the index side also needed some hairy look-ahead,
227 and I am only half satisfied with the current status of the series.
229 To fix the resolve merge regression seen in t6035, git-merge-resolve needs
230 to be rewritten not to use the one-path-at-a-time "git merge-index".
232 * jp/fetch-tag-match (2009-09-17) 1 commit
233  - fetch: Speed up fetch by rewriting find_non_local_tags
235 I did not have much energy left while dealing with the "fix-tree-walk"
236 series, so I just queued this without reading nor thinking about it very
237 much.  I personally liked my version that had far smaller number of lines
238 changed (which means I can be fairly certain that it did not introduce any
239 regression), but perhaps the majorly rewritten logic this patch gives us
240 may be easier to follow and maintain.  We'll see.
242 * jc/maint-blank-at-eof (2009-09-15) 0 commits.
243  (this branch uses jc/maint-1.6.0-blank-at-eof.)
245 The series does not have a commit of its own but is a preparation for
246 merging the original jc/1.6.0-maint-blank-at-eof topic to 'maint' and then
247 'master'.  It is a fix for longstanding bug and 1.6.5 will not contain
248 this topic.
250 * db/vcs-helper-rest (2009-09-03) 6 commits
251  - Allow helpers to report in "list" command that the ref is unchanged
252  - Add support for "import" helper command
253  - Add a config option for remotes to specify a foreign vcs
254  - Allow programs to not depend on remotes having urls
255  - Allow fetch to modify refs
256  - Use a function to determine whether a remote is valid
257  (this branch is used by jh/cvs-helper.)
259 This holds the remainder of the db/vcs-helper topic that has already
260 merged for 1.6.5.
262 * jh/notes (2009-09-12) 13 commits
263  - Selftests verifying semantics when loading notes trees with various fanouts
264  - Teach the notes lookup code to parse notes trees with various fanout schemes
265  - notes.[ch] fixup: avoid old-style declaration
266  - Teach notes code to free its internal data structures on request.
267  - Add '%N'-format for pretty-printing commit notes
268  - Add flags to get_commit_notes() to control the format of the note string
269  - t3302-notes-index-expensive: Speed up create_repo()
270  - fast-import: Add support for importing commit notes
271  - Teach "-m <msg>" and "-F <file>" to "git notes edit"
272  - Add an expensive test for git-notes
273  - Speed up git notes lookup
274  - Add a script to edit/inspect notes
275  - Introduce commit notes
276  (this branch uses sr/gfi-options.)
278 Rerolled and queued.
280 * jn/gitweb-show-size (2009-09-07) 1 commit
281  - gitweb: Add 'show-sizes' feature to show blob sizes in tree view
283 * lt/maint-traverse-trees-fix (2009-09-06) 1 commit.
284  . Prepare 'traverse_trees()' for D/F conflict lookahead
286 Ejected from 'pu' (see jc/fix-tree-walk above).
288 * jc/maint-1.6.0-blank-at-eof (2009-09-14) 15 commits.
289   (merged to 'next' on 2009-09-15 at 9cbfa00)
290  + diff -B: colour whitespace errors
291  + diff.c: emit_add_line() takes only the rest of the line
292  + diff.c: split emit_line() from the first char and the rest of the line
293  + diff.c: shuffling code around
294  + diff --whitespace: fix blank lines at end
295   (merged to 'next' on 2009-09-07 at 165dc3c)
296  + core.whitespace: split trailing-space into blank-at-{eol,eof}
297  + diff --color: color blank-at-eof
298  + diff --whitespace=warn/error: fix blank-at-eof check
299  + diff --whitespace=warn/error: obey blank-at-eof
300  + diff.c: the builtin_diff() deals with only two-file comparison
301  + apply --whitespace: warn blank but not necessarily empty lines at EOF
302  + apply --whitespace=warn/error: diagnose blank at EOF
303  + apply.c: split check_whitespace() into two
304  + apply --whitespace=fix: detect new blank lines at eof correctly
305  + apply --whitespace=fix: fix handling of blank lines at the eof
306  (this branch is used by jc/maint-blank-at-eof.)
308 This is a fix for an ancient bug (or inconsistent set of features); the
309 topic is based on an ancient codebase and is designed to be merged
310 upwards.  jc/maint-blank-at-eof serves that purpose.
312 Will not be in 1.6.5.
314 * jn/gitweb-blame (2009-09-01) 5 commits
315  - gitweb: Minify gitweb.js if JSMIN is defined
316  - gitweb: Create links leading to 'blame_incremental' using JavaScript
317   (merged to 'next' on 2009-09-07 at 3622199)
318  + gitweb: Colorize 'blame_incremental' view during processing
319  + gitweb: Incremental blame (using JavaScript)
320  + gitweb: Add optional "time to generate page" info in footer
322 Ajax-y blame.
324 * sr/gfi-options (2009-09-06) 6 commits
325   (merged to 'next' on 2009-09-07 at 5f6b0ff)
326  + fast-import: test the new option command
327  + fast-import: add option command
328  + fast-import: test the new feature command
329  + fast-import: add feature command
330  + fast-import: put marks reading in it's own function
331  + fast-import: put option parsing code in separate functions
332  (this branch is used by jh/notes.)
334 Ping?
336 * nd/sparse (2009-08-20) 19 commits
337  - sparse checkout: inhibit empty worktree
338  - Add tests for sparse checkout
339  - read-tree: add --no-sparse-checkout to disable sparse checkout support
340  - unpack-trees(): ignore worktree check outside checkout area
341  - unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
342  - unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
343  - unpack-trees.c: generalize verify_* functions
344  - unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
345  - Introduce "sparse checkout"
346  - dir.c: export excluded_1() and add_excludes_from_file_1()
347  - excluded_1(): support exclude files in index
348  - unpack-trees(): carry skip-worktree bit over in merged_entry()
349  - Read .gitignore from index if it is skip-worktree
350  - Avoid writing to buffer in add_excludes_from_file_1()
351  - Teach Git to respect skip-worktree bit (writing part)
352  - Teach Git to respect skip-worktree bit (reading part)
353  - Introduce "skip-worktree" bit in index, teach Git to get/set this bit
354  - Add test-index-version
355  - update-index: refactor mark_valid() in preparation for new options
357 --------------------------------------------------
358 [For 1.7.0]
360 * jk/1.7.0-status (2009-09-05) 5 commits
361  - docs: note that status configuration affects only long format
362   (merged to 'next' on 2009-09-07 at 8a7c563)
363  + commit: support alternate status formats
364  + status: add --porcelain output format
365  + status: refactor format option parsing
366  + status: refactor short-mode printing to its own function
367  (this branch uses jc/1.7.0-status.)
369 Gives the --short output format to post 1.7.0 "git commit --dry-run" that
370 is similar to that of post 1.7.0 "git status".
372 * jc/1.7.0-status (2009-09-05) 4 commits
373   (merged to 'next' on 2009-09-06 at 19d4beb)
374  + status: typo fix in usage
375   (merged to 'next' on 2009-08-22 at b3507bb)
376  + git status: not "commit --dry-run" anymore
377  + git stat -s: short status output
378  + git stat: the beginning of "status that is not a dry-run of commit"
379  (this branch is used by jk/1.7.0-status.)
381 With this, "git status" is no longer "git commit --dry-run".
383 * jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit
384   (merged to 'next' on 2009-08-22 at 5106de8)
385  + send-email: make --no-chain-reply-to the default
387 * jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
388   (merged to 'next' on 2009-08-30 at 0623572)
389  + diff.c: fix typoes in comments
390   (merged to 'next' on 2009-08-27 at 81fb2bd)
391  + Make test case number unique
392   (merged to 'next' on 2009-08-02 at 9c08420)
393  + diff: Rename QUIET internal option to QUICK
394  + diff: change semantics of "ignore whitespace" options
396 This changes exit code from "git diff --ignore-whitespace" and friends
397 when there is no actual output.  It is a backward incompatible change, but
398 we could argue that it is a bugfix.
400 * jc/1.7.0-push-safety (2009-02-09) 2 commits
401   (merged to 'next' on 2009-08-02 at 38b82fe)
402  + Refuse deleting the current branch via push
403  + Refuse updating the current branch in a non-bare repository via push
405 --------------------------------------------------
406 [I have been too busy to purge these]
408 * jc/log-tz (2009-03-03) 1 commit.
409  - Allow --date=local --date=other-format to work as expected
411 Maybe some people care about this.  I dunno.
413 * jc/mailinfo-remove-brackets (2009-07-15) 1 commit.
414  - mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
416 Maybe some people care about this.  I dunno.
418 * lt/read-directory (2009-05-15) 3 commits.
419  . Add initial support for pathname conversion to UTF-8
420  . read_directory(): infrastructure for pathname character set conversion
421  . Add 'fill_directory()' helper function for directory traversal
423 * cc/reset-merge (2009-09-16) 4 commits
424  . reset: add test cases for "--merge-safe" option
425  . reset: add option "--merge-safe" to "git reset"
426  . reset: use "unpack_trees()" directly instead of "git read-tree"
427  . reset: add a few tests for "git reset --merge"
429 * cc/sequencer-rebase-i (2009-08-28) 15 commits
430  . rebase -i: use "git sequencer--helper --cherry-pick"
431  . sequencer: add "--cherry-pick" option to "git sequencer--helper"
432  . sequencer: add "do_commit()" and related functions working on "next_commit"
433  . pick: libify "pick_help_msg()"
434  . revert: libify cherry-pick and revert functionnality
435  . rebase -i: use "git sequencer--helper --fast-forward"
436  . sequencer: let "git sequencer--helper" callers set "allow_dirty"
437  . sequencer: add "--fast-forward" option to "git sequencer--helper"
438  . sequencer: add "do_fast_forward()" to perform a fast forward
439  . rebase -i: use "git sequencer--helper --reset-hard"
440  . sequencer: add "--reset-hard" option to "git sequencer--helper"
441  . sequencer: add "reset_almost_hard()" and related functions
442  . rebase -i: use "git sequencer--helper --make-patch"
443  . sequencer: add "make_patch" function to save a patch
444  . sequencer: add "builtin-sequencer--helper.c"