What's cooking (2009/11 #07)
[git/dscho.git] / whats-cooking.txt
blob2651c451cd7b0d5da3f0449cf3eb8afa5d2d5d7b
1 To: git@vger.kernel.org
2 Subject: What's cooking in git.git (Nov 2009, #07; Sun, 29)
3 X-master-at: 66abce05dd5b9da9c889034781dc3de38b6e231b
4 X-next-at: c4469778c3a4538c370b02fd190f6ed5a8139b58
6 What's cooking in git.git (Nov 2009, #07; Sun, 29)
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 planned 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  * "git diff -w/-b" won't even produce "diff --git" header when all changes
55    are about whitespaces.
57    http://thread.gmane.org/gmane.comp.version-control.git/133256
59 --------------------------------------------------
60 [New Topics]
62 * fc/maint-format-patch-pathspec-dashes (2009-11-26) 2 commits.
63  - format-patch: add test for parsing of "--"
64  - format-patch: fix parsing of "--" on the command line
66 * bw/diff-color-hunk-header (2009-11-27) 2 commits
67   (merged to 'next' on 2009-11-29 at c446977)
68  + Give the hunk comment its own color
69   (merged to 'next' on 2009-11-27 at 42ab131)
70  + emit_line(): don't emit an empty <SET><RESET> followed by a newline
72 * jc/maint-am-keep (2009-11-27) 1 commit.
73   (merged to 'next' on 2009-11-27 at 7663874)
74  + Remove dead code from "git am"
76 * tr/http-updates (2009-11-27) 2 commits
77  - Add an option for using any HTTP authentication scheme, not only basic
78  - http: maintain curl sessions
80 * jc/diff-whitespace-prepare (2009-11-28) 2 commits
81  - diff: flip the default diff.bwoutputonly to true
82  - diff: optionally allow traditional "-b/-w affects only output" semantics
83  (this branch uses gb/1.7.0-diff-whitespace-only-output and jc/1.7.0-diff-whitespace-only-status; is used by jc/1.7.0-diff-whitespace-prepare.)
85 This is to redo the two -b/-w semantic changes to prepare the migration of
86 existing users before 1.7.0 happens.
88 * jc/1.7.0-diff-whitespace-prepare (2009-11-28) 2 commits
89  - diff: disable diff.bwoutputonly warning
90  - diff: flip the diff.bwoutputonly default to false
91  (this branch uses gb/1.7.0-diff-whitespace-only-output, jc/1.7.0-diff-whitespace-only-status and jc/diff-whitespace-prepare.)
93 And this is to actually flip the default and eventually remove the warning.
95 * ns/send-email-no-chain-reply-to (2009-11-29) 1 commit
96  - prepare send-email for smoother change of --chain-reply-to default
97  (this branch is used by ns/1.7.0-send-email-no-chain-reply-to.)
99 Similarly, this is to start warning about the change to --no-chain-reply-to
100 in 1.7.0 for smoother transition.
102 * ns/1.7.0-send-email-no-chain-reply-to (2009-08-22) 1 commit
103  - send-email: make --no-chain-reply-to the default
104  (this branch uses ns/send-email-no-chain-reply-to.)
106 And this is to actually flip the default in 1.7.0.
108 --------------------------------------------------
109 [Stalled]
111 * je/send-email-no-subject (2009-08-05) 1 commit.
112   (merged to 'next' on 2009-10-11 at 1b99c56)
113  + send-email: confirm on empty mail subjects
115 The existing tests cover the positive case (i.e. as long as the user says
116 "yes" to the "do you really want to send this message that lacks subject",
117 the message is sent) of this feature, but the feature itself needs its own
118 test to verify the negative case (i.e. does it correctly stop if the user
119 says "no"?)
121 * jn/rfc-pull-rebase-error-message (2009-11-12) 1 commit
122  - git-pull.sh --rebase: overhaul error handling when no candidates are found
124 I heard this needs at least retitling among other changes?
126 * jh/notes (2009-11-20) 10 commits
127  - Add more testcases to test fast-import of notes
128  - Rename t9301 to t9350, to make room for more fast-import tests
129  - fast-import: Proper notes tree manipulation using the notes API
130  - Refactor notes concatenation into a flexible interface for combining notes
131  - Notes API: Allow multiple concurrent notes trees with new struct notes_tree
132  - Notes API: for_each_note(): Traverse the entire notes tree with a callback
133  - Notes API: get_note(): Return the note annotating the given object
134  - Notes API: add_note(): Add note objects to the internal notes tree structure
135  - Notes API: init_notes(): Initialize the notes tree from the given notes ref
136  - Notes API: get_commit_notes() -> format_note() + remove the commit restriction
138 Johan waits for an Ack from Shawn on "fast-import" one.
140 * tr/maint-merge-ours-clarification (2009-11-15) 1 commit
141   (merged to 'next' on 2009-11-21 at fadaf7b)
142  + rebase: refuse to rebase with -s ours
144 I do not think we reached a concensus for solving conflicts between "give
145 them rope" and "protect users from clearly meaningless combinations".  The
146 author obviously is for the latter (and I am inclined to agree); Dscho
147 seems to think otherwise.
149 * jc/fix-tree-walk (2009-10-22) 8 commits
150   (merged to 'next' on 2009-10-22 at 10c0c8f)
151  + Revert failed attempt since 353c5ee
152  + read-tree --debug-unpack
153   (merged to 'next' on 2009-10-11 at 0b058e2)
154  + unpack-trees.c: look ahead in the index
155  + unpack-trees.c: prepare for looking ahead in the index
156  + Aggressive three-way merge: fix D/F case
157  + traverse_trees(): handle D/F conflict case sanely
158  + more D/F conflict tests
159  + tests: move convenience regexp to match object names to test-lib.sh
161 This has some stupid bugs and reverted from 'next' until I can fix it, but
162 the "temporarily" turned out to be very loooong.  Sigh...
164 * sr/gfi-options (2009-09-06) 6 commits.
165  - fast-import: test the new option command
166  - fast-import: add option command
167  - fast-import: test the new feature command
168  - fast-import: add feature command
169  - fast-import: put marks reading in it's own function
170  - fast-import: put option parsing code in separate functions
172 Sverre is working on a re-roll to address comments from Shawn.
174 --------------------------------------------------
175 [Cooking]
177 * sr/vcs-helper (2009-11-18) 12 commits
178   (merged to 'next' on 2009-11-27 at 83268ab)
179  + Add Python support library for remote helpers
180  + Basic build infrastructure for Python scripts
181  + Allow helpers to report in "list" command that the ref is unchanged
182  + Fix various memory leaks in transport-helper.c
183  + Allow helper to map private ref names into normal names
184  + Add support for "import" helper command
185  + Allow specifying the remote helper in the url
186  + Add a config option for remotes to specify a foreign vcs
187  + Allow fetch to modify refs
188  + Use a function to determine whether a remote is valid
189  + Allow programs to not depend on remotes having urls
190  + Fix memory leak in helper method for disconnect
192 * jc/grep-full-tree (2009-11-24) 1 commit.
193  - grep: --full-tree
195 The interaction with this option and pathspecs need to be worked out
196 better.  I _think_ "grep --full-tree -e pattern -- '*.h'" should find from
197 all the header files in the tree, for example.
199 * uk/maint-shortlog-encoding (2009-11-25) 1 commit.
200  - shortlog: respect commit encoding
202 The fix is a maint material but the patch was against next, so I
203 back-rebased it myself.  I tried to be careful but please double check the
204 result.
206 Perhaps merge it to 'master' before 1.6.6-rc1?
208 * fc/send-email-envelope (2009-11-26) 2 commits.
209   (merged to 'next' on 2009-11-27 at 2d0257d)
210  + send-email: automatic envelope sender
211  + t9001: test --envelope-sender option of send-email
213 Perhaps merge it to 'master' before 1.6.6-rc1?
215 * jc/mailinfo-remove-brackets (2009-07-15) 1 commit.
216   (merged to 'next' on 2009-11-25 at 09d498f)
217  + mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
219 Jim Meyering sent a patch to do a subset of what this does; to allow
220 keeping '[SECURITY]' when the subject says '[SECURITY][PATCH]', you need
221 to also teach "am" to pass the new -b option, but that is independent of
222 what Jim showed the need in real-world, so I think this can go in as-is.
224 Perhaps merge it to 'master' before 1.6.6-rc1?
226 * jc/checkout-merge-base (2009-11-20) 2 commits
227  - "rebase --onto A...B" replays history on the merge base between A and B
228  - "checkout A...B" switches to the merge base between A and B
230 I've been using the first one for a while myself but do not see many users
231 want this (yet); the new feature is not urgent anyway.
233 * tr/reset-checkout-patch (2009-11-19) 1 commit.
234   (merged to 'next' on 2009-11-22 at b224950)
235  + {checkout,reset} -p: make patch direction configurable
237 I do not particularly like a configuration like this that changes the
238 behaviour of a command in a drastic way---it will make helping others much
239 harder.
241 Perhaps merge it to 'master' before 1.6.6-rc1?
243 * jn/gitweb-blame (2009-11-24) 8 commits.
244   (merged to 'next' on 2009-11-25 at 0a5b649)
245  + gitweb.js: fix padLeftStr() and its usage
246  + gitweb.js: Harden setting blamed commit info in incremental blame
247  + gitweb.js: fix null object exception in initials calculation
248  + gitweb: Minify gitweb.js if JSMIN is defined
249  + gitweb: Create links leading to 'blame_incremental' using JavaScript
250   (merged to 'next' on 2009-10-11 at 73c4a83)
251  + gitweb: Colorize 'blame_incremental' view during processing
252  + gitweb: Incremental blame (using JavaScript)
253  + gitweb: Add optional "time to generate page" info in footer
255 Ajax-y blame, with further fixes.  As this does not seem to break existing
256 features, I am inclined to say that we push this out early, as a new
257 feature with known breakages, to give it wider audience.
259 * em/commit-claim (2009-11-04) 1 commit
260   (merged to 'next' on 2009-11-23 at b5df6fd)
261  + commit -c/-C/--amend: reset timestamp and authorship to committer with --reset-author
263 I am not sure if the option name does a good job at explaining it to the
264 end users, but I think the code and feature is solid.
266 Perhaps merge it to 'master' before 1.6.6-rc1?
268 * cc/bisect-doc (2009-11-08) 1 commit
269   (merged to 'next' on 2009-11-27 at c46d648)
270  + Documentation: add "Fighting regressions with git bisect" article
272 Perhaps merge it to 'master' before 1.6.6-rc1?
274 * nd/sparse (2009-11-25) 20 commits.
275   (merged to 'next' on 2009-11-25 at 71380f5)
276  + tests: rename duplicate t1009
277   (merged to 'next' on 2009-11-23 at f712a41)
278  + sparse checkout: inhibit empty worktree
279  + Add tests for sparse checkout
280  + read-tree: add --no-sparse-checkout to disable sparse checkout support
281  + unpack-trees(): ignore worktree check outside checkout area
282  + unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
283  + unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
284  + unpack-trees.c: generalize verify_* functions
285  + unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
286  + Introduce "sparse checkout"
287  + dir.c: export excluded_1() and add_excludes_from_file_1()
288  + excluded_1(): support exclude files in index
289  + unpack-trees(): carry skip-worktree bit over in merged_entry()
290  + Read .gitignore from index if it is skip-worktree
291  + Avoid writing to buffer in add_excludes_from_file_1()
292  + Teach Git to respect skip-worktree bit (writing part)
293  + Teach Git to respect skip-worktree bit (reading part)
294  + Introduce "skip-worktree" bit in index, teach Git to get/set this bit
295  + Add test-index-version
296  + update-index: refactor mark_valid() in preparation for new options
298 * jc/pretty-lf (2009-10-04) 1 commit.
299   (merged to 'next' on 2009-11-27 at 73651c4)
300  + Pretty-format: %[+-]x to tweak inter-item newlines
302 Perhaps merge it to 'master' before 1.6.6-rc1?
304 --------------------------------------------------
305 [For 1.7.0]
307 * jk/1.7.0-status (2009-11-27) 7 commits.
308   (merged to 'next' on 2009-11-27 at 91691ec)
309  + t7508-status.sh: Add tests for status -s
310  + status -s: respect the status.relativePaths option
311   (merged to 'next' on 2009-11-21 at 884bb56)
312  + docs: note that status configuration affects only long format
313   (merged to 'next' on 2009-10-11 at 65c8513)
314  + commit: support alternate status formats
315  + status: add --porcelain output format
316  + status: refactor format option parsing
317  + status: refactor short-mode printing to its own function
318  (this branch uses jc/1.7.0-status.)
320 Gives the --short output format to post 1.7.0 "git commit --dry-run" that
321 is similar to that of post 1.7.0 "git status".
323 Immediately after 1.6.6 while rebuilding 'next', we may want to reorder a
324 few commits at the tip, as "docs: affects only long format" describes a
325 limitation that will disappear soon.
327 * jc/1.7.0-status (2009-09-05) 4 commits.
328   (merged to 'next' on 2009-10-11 at 9558627)
329  + status: typo fix in usage
330  + git status: not "commit --dry-run" anymore
331  + git stat -s: short status output
332  + git stat: the beginning of "status that is not a dry-run of commit"
333  (this branch is used by jk/1.7.0-status.)
335 With this, "git status" is no longer "git commit --dry-run".
337 * jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit.
338   (merged to 'next' on 2009-10-11 at 043acdf)
339  + send-email: make --no-chain-reply-to the default
341 * jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
342   (merged to 'next' on 2009-10-11 at 546c74d)
343  + diff.c: fix typoes in comments
344  + Make test case number unique
345  + diff: Rename QUIET internal option to QUICK
346  + diff: change semantics of "ignore whitespace" options
347  (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
349 This changes exit code from "git diff --ignore-whitespace" and friends
350 when there is no actual output.  It is a backward incompatible change,
351 and jc/diff-whitespace-prepare topic is meant to ease the transition.
353 * gb/1.7.0-diff-whitespace-only-output (2009-11-19) 1 commit
354   (merged to 'next' on 2009-11-21 at 3375bf4)
355  + No diff -b/-w output for all-whitespace changes
356  (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
358 Likewise.
360 * jc/1.7.0-push-safety (2009-02-09) 2 commits.
361   (merged to 'next' on 2009-10-11 at 81b8128)
362  + Refuse deleting the current branch via push
363  + Refuse updating the current branch in a non-bare repository via push
365 --------------------------------------------------
366 [Reverted from 'next']
368 * jc/botched-maint-cygwin-count-objects (2009-11-24) 2 commits
369   (merged to 'next' on 2009-11-25 at 8aa62a0)
370  + Revert "ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)"
371   (merged to 'next' on 2009-11-22 at 4ba5880)
372  + ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)
374 This is a revert of the tip one I merged prematurely to 'next'.  The real
375 fix from Ramsay is already in 'master'.
377 * ks/precompute-completion (2009-11-15) 4 commits.
378   (merged to 'next' on 2009-11-15 at 23cdb96)
379  + Revert ks/precompute-completion series
380   (merged to 'next' on 2009-10-28 at cd5177f)
381  + completion: ignore custom merge strategies when pre-generating
382   (merged to 'next' on 2009-10-22 at f46a28a)
383  + bug: precomputed completion includes scripts sources
384   (merged to 'next' on 2009-10-14 at adf722a)
385  + Speedup bash completion loading
387 Reverted out of 'next', to be replaced with jn/faster-completion-startup
388 topic.
390 --------------------------------------------------
391 [I have been too busy to purge these]
393 * jc/log-tz (2009-03-03) 1 commit.
394  - Allow --date=local --date=other-format to work as expected
396 Maybe some people care about this.  I dunno.
398 * jc/1.7.0-no-commit-no-ff-2 (2009-10-22) 1 commit.
399  . git-merge: forbid fast-forward and up-to-date when --no-commit is given
401 This makes "git merge --no-commit" fail when it results in fast-forward or
402 up-to-date.  It appears nobody wants to have this, so I dropped it.
404 * ne/rev-cache (2009-10-19) 7 commits.
405  . support for commit grafts, slight change to general mechanism
406  . support for path name caching in rev-cache
407  . full integration of rev-cache into git, completed test suite
408  . administrative functions for rev-cache, start of integration into git
409  . support for non-commit object caching in rev-cache
410  . basic revision cache system, no integration or features
411  . man page and technical discussion for rev-cache
413 The author indicated that there is another round coming.  Does not seem to
414 pass the tests when merged to 'pu', so it has been ejected for now.
416 * pb/gitweb-no-project-list (2009-11-06) 3 commits.
417  . gitweb: Polish the content tags support
418  . gitweb: Support for no project list on gitweb front page
419  . gitweb: Refactor project list routines
421 I picked these up but didn't queue as Warthog9's comments made certain
422 amount of sense to me.