What's cooking (2009/09 #05)
[git/dscho.git] / whats-cooking.txt
blob57157e112705fff70d18a197cccd7451c5e1b847
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Sep 2009, #05; Wed, 23)
3 X-master-at: a6dbf8814f433a7fbfa9cde6333c98019f6db1e4
4 X-next-at: a9dd6c4e8ab38f5c4af9c0710381d3844f1d904f
6 What's cooking in git.git (Sep 2009, #05; Wed, 23)
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-rc2, and I'll disappear for about a
58 week.  Hopefully when I come back in early October all the regressions are
59 found and already squashed ;-)
61 --------------------------------------------------
62 [New Topics]
64 * jc/fix-tree-walk (2009-09-14) 9 commits
65  - read-tree --debug-unpack
66  - unpack-trees.c: look ahead in the index
67  - unpack-trees.c: prepare for looking ahead in the index
68  - traverse_trees(): handle D/F conflict case sanely
69  - more D/F conflict tests
70  - tests: move convenience regexp to match object names to test-lib.sh
71  - unpack_callback(): use unpack_failed() consistently
72  - unpack-trees: typofix
73  - diff-lib.c: fix misleading comments on oneway_diff()
75 This is my replacement for Linus's lt/maint-traverse-trees-fix patch.  It
76 is not so much as a counter-proposal; I originally thought it might make
77 sense to walk the index and drive the walker to return the entries from
78 trees to match entries from the index, but I ended up doing pretty much
79 what Linus outlined --- walk the trees, and have the index walker follow
80 it.  It turned out that the index side also needed some hairy look-ahead,
81 and I am only half satisfied with the current status of the series.
83 To fix the resolve merge regression seen in t6035, git-merge-resolve needs
84 to be rewritten not to use the one-path-at-a-time "git merge-index".
86 * jp/fetch-tag-match (2009-09-17) 1 commit
87  - fetch: Speed up fetch by rewriting find_non_local_tags
89 I did not have much energy left while dealing with the "fix-tree-walk"
90 series, so I just queued this without reading nor thinking about it very
91 much.  I personally liked my version that had far smaller number of lines
92 changed (which means I can be fairly certain that it did not introduce any
93 regression), but perhaps the majorly rewritten logic this patch gives us
94 may be easier to follow and maintain.  We'll see.
96 * jg/log-format-body-indent (2009-09-19) 1 commit
97  - [NEEDSWORK: tests] git-log --format: Add %B tag with %B(x) option
99 * jl/submodule-add-noname (2009-09-22) 1 commit
100  - git submodule add: make the <path> parameter optional
102 --------------------------------------------------
103 [Stalled]
105 * je/send-email-no-subject (2009-08-05) 1 commit
106   (merged to 'next' on 2009-08-30 at b6455c2)
107  + send-email: confirm on empty mail subjects
109 The existing tests cover the positive case (i.e. as long as the user says
110 "yes" to the "do you really want to send this message that lacks subject",
111 the message is sent) of this feature, but the feature itself needs its own
112 test to verify the negative case (i.e. does it correctly stop if the user
113 says "no"?)
115 * jh/cvs-helper (2009-08-18) 8 commits
116  - More fixes to the git-remote-cvs installation procedure
117  - Fix the Makefile-generated path to the git_remote_cvs package in git-remote-cvs
118  - Add simple selftests of git-remote-cvs functionality
119  - git-remote-cvs: Remote helper program for CVS repositories
120  - 2/2: Add Python support library for CVS remote helper
121  - 1/2: Add Python support library for CVS remote helper
122  - Basic build infrastructure for Python scripts
123  - Allow helpers to request marks for fast-import
124  (this branch uses db/vcs-helper-rest.)
126 Builds on db/vcs-helper.  There is a re-roll planned.
128 * ne/rev-cache (2009-09-07) 7 commits
129  - support for commit grafts, slight change to general mechanism
130  - support for path name caching in rev-cache
131  - full integration of rev-cache into git, completed test suite
132  - administrative functions for rev-cache, start of integration into git
133  - support for non-commit object caching in rev-cache
134  - basic revision cache system, no integration or features
135  - man page and technical discussion for rev-cache
137 Tonight's 'pu' ships with this and this series seems to break a few
138 tests.  I didn't debug.
140 --------------------------------------------------
141 [Cooking]
143 * jc/maint-blank-at-eof (2009-09-15) 0 commits.
144  (this branch uses jc/maint-1.6.0-blank-at-eof.)
146 The series does not have a commit of its own but is a preparation for
147 merging the original jc/1.6.0-maint-blank-at-eof topic to 'maint' and then
148 'master'.  It is a fix for longstanding bug and 1.6.5 will not contain
149 this topic.
151 * db/vcs-helper-rest (2009-09-03) 6 commits
152  - Allow helpers to report in "list" command that the ref is unchanged
153  - Add support for "import" helper command
154  - Add a config option for remotes to specify a foreign vcs
155  - Allow programs to not depend on remotes having urls
156  - Allow fetch to modify refs
157  - Use a function to determine whether a remote is valid
158  (this branch is used by jh/cvs-helper.)
160 This holds the remainder of the db/vcs-helper topic that has already
161 merged for 1.6.5.
163 * jh/notes (2009-09-12) 13 commits
164  - Selftests verifying semantics when loading notes trees with various fanouts
165  - Teach the notes lookup code to parse notes trees with various fanout schemes
166  - notes.[ch] fixup: avoid old-style declaration
167  - Teach notes code to free its internal data structures on request.
168  - Add '%N'-format for pretty-printing commit notes
169  - Add flags to get_commit_notes() to control the format of the note string
170  - t3302-notes-index-expensive: Speed up create_repo()
171  - fast-import: Add support for importing commit notes
172  - Teach "-m <msg>" and "-F <file>" to "git notes edit"
173  - Add an expensive test for git-notes
174  - Speed up git notes lookup
175  - Add a script to edit/inspect notes
176  - Introduce commit notes
177  (this branch uses sr/gfi-options.)
179 Rerolled and queued.
181 * jn/gitweb-show-size (2009-09-07) 1 commit
182  - gitweb: Add 'show-sizes' feature to show blob sizes in tree view
184 * lt/maint-traverse-trees-fix (2009-09-06) 1 commit.
185  . Prepare 'traverse_trees()' for D/F conflict lookahead
187 Ejected from 'pu' (see jc/fix-tree-walk above).
189 * jc/maint-1.6.0-blank-at-eof (2009-09-14) 15 commits.
190   (merged to 'next' on 2009-09-15 at 9cbfa00)
191  + diff -B: colour whitespace errors
192  + diff.c: emit_add_line() takes only the rest of the line
193  + diff.c: split emit_line() from the first char and the rest of the line
194  + diff.c: shuffling code around
195  + diff --whitespace: fix blank lines at end
196   (merged to 'next' on 2009-09-07 at 165dc3c)
197  + core.whitespace: split trailing-space into blank-at-{eol,eof}
198  + diff --color: color blank-at-eof
199  + diff --whitespace=warn/error: fix blank-at-eof check
200  + diff --whitespace=warn/error: obey blank-at-eof
201  + diff.c: the builtin_diff() deals with only two-file comparison
202  + apply --whitespace: warn blank but not necessarily empty lines at EOF
203  + apply --whitespace=warn/error: diagnose blank at EOF
204  + apply.c: split check_whitespace() into two
205  + apply --whitespace=fix: detect new blank lines at eof correctly
206  + apply --whitespace=fix: fix handling of blank lines at the eof
207  (this branch is used by jc/maint-blank-at-eof.)
209 This is a fix for an ancient bug (or inconsistent set of features); the
210 topic is based on an ancient codebase and is designed to be merged
211 upwards.  jc/maint-blank-at-eof serves that purpose.
213 Will not be in 1.6.5.
215 * jn/gitweb-blame (2009-09-01) 5 commits
216  - gitweb: Minify gitweb.js if JSMIN is defined
217  - gitweb: Create links leading to 'blame_incremental' using JavaScript
218   (merged to 'next' on 2009-09-07 at 3622199)
219  + gitweb: Colorize 'blame_incremental' view during processing
220  + gitweb: Incremental blame (using JavaScript)
221  + gitweb: Add optional "time to generate page" info in footer
223 Ajax-y blame.
225 * sr/gfi-options (2009-09-06) 6 commits
226   (merged to 'next' on 2009-09-07 at 5f6b0ff)
227  + fast-import: test the new option command
228  + fast-import: add option command
229  + fast-import: test the new feature command
230  + fast-import: add feature command
231  + fast-import: put marks reading in it's own function
232  + fast-import: put option parsing code in separate functions
233  (this branch is used by jh/notes.)
235 Ping?
237 * nd/sparse (2009-08-20) 19 commits
238  - sparse checkout: inhibit empty worktree
239  - Add tests for sparse checkout
240  - read-tree: add --no-sparse-checkout to disable sparse checkout support
241  - unpack-trees(): ignore worktree check outside checkout area
242  - unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
243  - unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
244  - unpack-trees.c: generalize verify_* functions
245  - unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
246  - Introduce "sparse checkout"
247  - dir.c: export excluded_1() and add_excludes_from_file_1()
248  - excluded_1(): support exclude files in index
249  - unpack-trees(): carry skip-worktree bit over in merged_entry()
250  - Read .gitignore from index if it is skip-worktree
251  - Avoid writing to buffer in add_excludes_from_file_1()
252  - Teach Git to respect skip-worktree bit (writing part)
253  - Teach Git to respect skip-worktree bit (reading part)
254  - Introduce "skip-worktree" bit in index, teach Git to get/set this bit
255  - Add test-index-version
256  - update-index: refactor mark_valid() in preparation for new options
258 --------------------------------------------------
259 [For 1.7.0]
261 * jk/1.7.0-status (2009-09-05) 5 commits
262  - docs: note that status configuration affects only long format
263   (merged to 'next' on 2009-09-07 at 8a7c563)
264  + commit: support alternate status formats
265  + status: add --porcelain output format
266  + status: refactor format option parsing
267  + status: refactor short-mode printing to its own function
268  (this branch uses jc/1.7.0-status.)
270 Gives the --short output format to post 1.7.0 "git commit --dry-run" that
271 is similar to that of post 1.7.0 "git status".
273 * jc/1.7.0-status (2009-09-05) 4 commits
274   (merged to 'next' on 2009-09-06 at 19d4beb)
275  + status: typo fix in usage
276   (merged to 'next' on 2009-08-22 at b3507bb)
277  + git status: not "commit --dry-run" anymore
278  + git stat -s: short status output
279  + git stat: the beginning of "status that is not a dry-run of commit"
280  (this branch is used by jk/1.7.0-status.)
282 With this, "git status" is no longer "git commit --dry-run".
284 * jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit
285   (merged to 'next' on 2009-08-22 at 5106de8)
286  + send-email: make --no-chain-reply-to the default
288 * jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
289   (merged to 'next' on 2009-08-30 at 0623572)
290  + diff.c: fix typoes in comments
291   (merged to 'next' on 2009-08-27 at 81fb2bd)
292  + Make test case number unique
293   (merged to 'next' on 2009-08-02 at 9c08420)
294  + diff: Rename QUIET internal option to QUICK
295  + diff: change semantics of "ignore whitespace" options
297 This changes exit code from "git diff --ignore-whitespace" and friends
298 when there is no actual output.  It is a backward incompatible change, but
299 we could argue that it is a bugfix.
301 * jc/1.7.0-push-safety (2009-02-09) 2 commits
302   (merged to 'next' on 2009-08-02 at 38b82fe)
303  + Refuse deleting the current branch via push
304  + Refuse updating the current branch in a non-bare repository via push
306 --------------------------------------------------
307 [I have been too busy to purge these]
309 * jc/log-tz (2009-03-03) 1 commit.
310  - Allow --date=local --date=other-format to work as expected
312 Maybe some people care about this.  I dunno.
314 * jc/mailinfo-remove-brackets (2009-07-15) 1 commit.
315  - mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
317 Maybe some people care about this.  I dunno.
319 * lt/read-directory (2009-05-15) 3 commits.
320  . Add initial support for pathname conversion to UTF-8
321  . read_directory(): infrastructure for pathname character set conversion
322  . Add 'fill_directory()' helper function for directory traversal
324 * cc/reset-merge (2009-09-16) 4 commits
325  . reset: add test cases for "--merge-safe" option
326  . reset: add option "--merge-safe" to "git reset"
327  . reset: use "unpack_trees()" directly instead of "git read-tree"
328  . reset: add a few tests for "git reset --merge"
330 * cc/sequencer-rebase-i (2009-08-28) 15 commits
331  . rebase -i: use "git sequencer--helper --cherry-pick"
332  . sequencer: add "--cherry-pick" option to "git sequencer--helper"
333  . sequencer: add "do_commit()" and related functions working on "next_commit"
334  . pick: libify "pick_help_msg()"
335  . revert: libify cherry-pick and revert functionnality
336  . rebase -i: use "git sequencer--helper --fast-forward"
337  . sequencer: let "git sequencer--helper" callers set "allow_dirty"
338  . sequencer: add "--fast-forward" option to "git sequencer--helper"
339  . sequencer: add "do_fast_forward()" to perform a fast forward
340  . rebase -i: use "git sequencer--helper --reset-hard"
341  . sequencer: add "--reset-hard" option to "git sequencer--helper"
342  . sequencer: add "reset_almost_hard()" and related functions
343  . rebase -i: use "git sequencer--helper --make-patch"
344  . sequencer: add "make_patch" function to save a patch
345  . sequencer: add "builtin-sequencer--helper.c"